Исправлен desktop, добавлена перенастройка kdm

atratsevskiy
Mike khiretskiy 11 years ago
parent 40f6398cef
commit 5277600c1e

@ -0,0 +1,5 @@
# Calculate ini(update.rev)<66 format=samba path=/etc/calculate name=ini.env merge=kde-base/kdm
# update kdm config
[update]
rev = 66

@ -4,6 +4,7 @@ AUX calculate-desktop-3.1.8-r4.patch 4821 SHA256 1e7477931c02cb32e1f5d1db3165dba
AUX calculate-desktop-3.1.9-r1.patch 662 SHA256 34a54b3cf3ec00b8b5d103fe5bd4b64004ccba7d73cbc1ea763cf193034a4a21 SHA512 bc44e9ca190e4d0187b6998c666d4742370b726be22ad29db87b92ecf80b0eb8d21b37ffb4c8f429325484b8f4bcf44ba30aef0c33cb0004495b00285067e428 WHIRLPOOL 3ceadef33434b0ee77a36bbd09771d0dc8e8fff55f9f639b9321efbd78a55856db81cf5712908fb37930f98e78ea16b89748961c2a235b49d300bd4ff68fe882
AUX calculate-desktop-3.1.9-r2.patch 6608 SHA256 c0cbe65ed0a4cc67a0b3f9b6e21da9c3378c2caf553c0ab2037fb8b6635e6101 SHA512 3cc6fdea6a55ef90c093100faa5ea035bf00ee99b4b7cfb00f5faf7d9f03ad8fe64ab4aaf4b9799eacf0957e191685c8498cae83993f169b9e72c6d794f9ed58 WHIRLPOOL 82bd5ddd712dc4b2e7ea90170cec6d27958710fa2ddca8683f5255a04221f436f2dbb258ff2fe5d9714306b5ee9310b5c54e8be8fbda76b988685dc36cd24ca8
AUX calculate-desktop-3.1.9-r3.patch 7198 SHA256 c773a2bfbc6be2e6ca121d53bf4cfbadd11e7b62fcae8c06faa04ec62a7f2c2f SHA512 7da9e9db57269ac3f8454524665062beb7d1952635e757b5e409c7522b2931c38a5087bf7248c9415875f9f8f3498591d17fcf158f86868aeb09cfa484c42365 WHIRLPOOL 29723e664dc4056300322bd44043c14d3c3924ab47354227bdead3007b9d03d52fb795f66c39b1fbe1eee3c9e2de508f359fd798a97a953e67c48884aeda20fa
AUX calculate-desktop-3.1.9-r4.patch 7705 SHA256 b041a86d5631d1658cae553ef09a7c56bc2dae78bce4be3938d058dfd496e778 SHA512 af03b300676e9e88fa92902635a1d2908d11aeb6f39ed25f2e6eedc109ea9e40ba5bbc90d9597f11b6109f0ca990f035f94f361d6eb09d5f5ddcf5f6a593b885 WHIRLPOOL 14825ab2ff34f72c327423c175a027b04928c7d0e8e304729a85bd97a96514f8f158f4d3e01a5aa1a7f209b9bf590b83837071d5ad32bf2f26b211eee0d7a604
DIST calculate-desktop-3.1.6.tar.bz2 15486 SHA256 46782f98e36239851cbc6c4f51003b0eccd319cb86f9eccfce3b87009b217954 SHA512 61ce9a4df56a2f745ea754aba6284c3a23cd7268424c4f4a18bc0ed11d39b8c0fbacf59c7c49aa68addb16ecaa16640ac0ba430aef22ab9b186b8f7e7d63e0b4 WHIRLPOOL d039df01e9abb76590dc72212719579dab14db9398d8a961f8c82c88e6ac1b65787dc70713bc593782b8582f1e2d12e7bbb1c216b92b7b2f47581916bd394812
DIST calculate-desktop-3.1.8.tar.bz2 16696 SHA256 c90ad97383b0c7810cbac6d9f1eaf754377f407758a4df4fe7ba3acfbb3b83ca SHA512 58bf9f98d86433a5c2ae3e8d5db0a825d60740b616b59077754568b4857a1dc2cdcc818ccbafa6a3f0b0eb67a7ebc017063756a425f556e43cce7bc063074bbe WHIRLPOOL 9f05c320e93f8ce73012a1faa3ab540d8eba8e12b5d18c656eddd320ca2cdcf99e0145925258486568c7e1b5aa9c5bd95732d4ad6919c16687152f2ff8f4858a
DIST calculate-desktop-3.1.9.tar.bz2 16877 SHA256 1557cec5d6f50c38f356198220814998354da94c925f4001f08bcd96ed42734f SHA512 f5e7a0fdad977cdc7b24c57ee8f0d0348f35eaf199bbda02949e183b6ceee4e1b53c6309fa1bc92f794fb9a3eca6f90bc6fbd15509bb3d16878e39392fbc0500 WHIRLPOOL 7c17f00a9c788d05cd85921ef1fcab8c683938eec0536cdfa448ceace52f3d4b7bdb7991028e89abf9b974cea6b2c0c6c57c9916320ba4460937d75b3617bd36
@ -16,6 +17,7 @@ EBUILD calculate-desktop-3.1.8.ebuild 763 SHA256 6bd05b4a17c4da8c67dca8f111c22b4
EBUILD calculate-desktop-3.1.9-r1.ebuild 901 SHA256 fa09b99f6fb7959c4810d236d657f1a50e06f681615f6d35c4cd6ae79fad2c2a SHA512 26983f7acb0d52ce91be32ca930e010b2acdbf7743543d05a1e8b6c655a68a2e7e01b098475ae782d3558351a8681b5407aa180008bb7e00a63aafd61f1d9441 WHIRLPOOL 01b7966c9d5f59b783a87332ddadc4b6291a9a062f501d37807ae135a3379e8a95f7fe4fb953c4f9678e68489bc8e14d3507ab28c793ac45b116177f35c4504a
EBUILD calculate-desktop-3.1.9-r2.ebuild 901 SHA256 cf241b21729814192d963c6d1bd8e4cd4769182c7d842e1c170fda4fbe5a021c SHA512 978558261466413858d9e1f86bd377660439d31a642170459e346d5b014d03dd084ad8748772efac938488daaf2979354f961b1827d0d1bf599ba97f6c1c9a5f WHIRLPOOL 7b7cc7f05229096d0e0e848f8526a2beb3aedba1f7b073b47546740fbc0037b362e8675479b6fe8baf340b874691fe6b1a3958d805fc32e7eb2651551bb836d4
EBUILD calculate-desktop-3.1.9-r3.ebuild 901 SHA256 b112908fb2e1bed3325c7fb5639e8767e1b3cbd29cbf0186adea455718422c80 SHA512 1c6a525fb8d6a780c5c2d856d2c19bcc88ea13e2c9ece892bea550237bed76bb539df5fa2a57ac5936cc0d29b056e0f5914df8abc1dd5aced5c51fe6389e44a7 WHIRLPOOL 2b2e61b9a30455a78e93c8b2ebc949f5ffaf6aae5b54b68bb77bd9251701e4a127c28f78cbf42a3bbe9bacb4f958fb381262d0f05b49f48444db86d42a30ed4d
EBUILD calculate-desktop-3.1.9-r4.ebuild 901 SHA256 277acf5be5a406a8533efaa7ef68a72682e8b5d51532f2a2c8d7fd2100cf3f01 SHA512 b541fab7e8494a5d562b491d776b0b0876ef699af89833badde2e53ee866bfa15c391c3280d1c61f69818d98599810ca4f8bae603714afea4f08eca8de20119f WHIRLPOOL 6bf53d40ae6003a710d2b80301e79e66719bc84d02d76953a3caca900ce14474c1c105f7961a8250e3ad585d148ba65300dddbc912a32604161c6d858b80d87f
EBUILD calculate-desktop-3.1.9.ebuild 763 SHA256 4c3221c34217c796451422f0e25ce65563dba659d942bc02470f3ddd3f53ac4a SHA512 fb874dd66972ae485d4c0e6547d33ced68b0d2e31d41e99419c8f04ca38a1d03cb5579fbfd67aeab7cbbefc1ea06f08812bc2e1bf88f23f753f13500b2583993 WHIRLPOOL bc7d5fae4330bc962edd5f1f2f33a080513bd3b9ff07a3c5faf95ab6c93fd48869d4950364d181ba00ce071e55fbd7701f144d109150cd6b415b3edb2c64584b
EBUILD calculate-desktop-3.1.9999.ebuild 976 SHA256 405de66b0f54804d4bc025fe786c21ca1a040d6a25928a535efbf84cacd7f505 SHA512 69ebfdc4c04f7c236f728c9938a5538b3822369cc1e1de2593a6e83178b5441ea2e37068ffcd9cf17aa92bcf00ee133ee98da0be5a5f591d69755e1159eeadac WHIRLPOOL c61f805379983ca23af188ff60a99511251a8afb27b75d0c1f08595012a579c42c2ef36603d837865a155706780ba413f0cac74457425eea0e0a59488e3dfda2
MISC ChangeLog 16440 SHA256 2a1c3211586d5dd10a249b61e4a8abf96a27a0c4d1706715b8a563bfa8aabf07 SHA512 962d9b69daeef659f2e1d6f2a5c974d6ed152d22fa9f0ed8c35d4c27e901f976167a2fc260a71c798be29d0161c7e90fa030957b2f74e25dcf35ecdb8fdc69e4 WHIRLPOOL df646b1f4c914fcb7142365b2110eb5112f7653cfddaf1b8a79f4a8f4ac99d50b6be59d3d593a8fb9e754ed92ebbe9a2cdebe320b0941d2ddd1bb9fba85c20b0

@ -0,0 +1,39 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
SUPPORT_PYTHON_ABIS="1"
PYTHON_DEPEND="2:2.7"
RESTRICT_PYTHON_ABIS="2.4 2.5 2.6 3.*"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="The program of the desktop configuration Calculate Linux"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND="~sys-apps/calculate-core-3.1.9
>=dev-python/python-ldap-2.0[ssl]
media-gfx/feh
x11-apps/xmessage
!<sys-apps/calculate-desktop-3.1.0_alpha1
sys-apps/keyutils
sys-auth/pam_keystore
sys-auth/pam_client
dev-lang/swig"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# apply revision changes
epatch "${FILESDIR}/calculate-desktop-3.1.9-r4.patch"
}

@ -0,0 +1,189 @@
diff --git data/login.d/20desktop data/login.d/20desktop
index 85c0ecf..8ec8ace 100644
--- data/login.d/20desktop
+++ data/login.d/20desktop
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-env-update
+/usr/sbin/env-update
source /etc/profile
source /usr/share/calculate/xdm/functions
diff --git data/logout.d/95syncface data/logout.d/95syncface
new file mode 100644
index 0000000..10f57f4
--- /dev/null
+++ data/logout.d/95syncface
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Syncronize icon face from local user to kdm
+# (c) 2013 Calculate Ltd. http://www.calculate-linux.org
+
+# get icon face directory from kdm config
+get_icon_face_dir() {
+ local config_file=/usr/share/config/kdm/kdmrc
+ [[ -f $config_file ]] && sed -rn 's/^FaceDir=(.*)/\1/p' $config_file
+}
+
+# copy .face.icon from user home directory to kdm face directory
+if [[ $DOMAIN_USER == "off" ]] && [[ -f $HOME_DIR/.face.icon ]]; then
+ FACE_DIR=$(get_icon_face_dir)
+ if [[ -n $FACE_DIR ]] && [[ -d $FACE_DIR ]];then
+ cp $HOME_DIR/.face.icon $FACE_DIR/${USER}.face
+ fi
+fi
+
+exit 0
diff --git data/xdm data/xdm
index cfe5033..b5b346d 100755
--- data/xdm
+++ data/xdm
@@ -76,7 +76,7 @@ umount_user_res(){
KILL_PIDS=`fuser ${MOUNT_DIR} 2>/dev/null`
if [[ -n $KILL_PIDS ]];
then
- kill -9 KILL_PIDS
+ kill -9 $KILL_PIDS
fi
umount "${MOUNT_DIR}"
done
@@ -147,9 +147,10 @@ FILELIST=$(find ${EXECDIR} -type f | sort)
gtk_background
DOMAIN_USER="`desktop_variable_value desktop.ur_domain_set`"
+HOME_DIR=`getent passwd $USER | awk -F: '{ print( $6 ); }'`
for script in $FILELIST
do
- FILE_LOG=$FILE_LOG DOMAIN_USER=$DOMAIN_USER /bin/bash $script || die_xmes "failed on execute $script"
+ FILE_LOG=$FILE_LOG HOME_DIR=$HOME_DIR USER=$USER DOMAIN_USER=$DOMAIN_USER /bin/bash $script || die_xmes "failed on execute $script"
done
sleep_kill()
diff --git desktop/desktop.py desktop/desktop.py
index fd7b8a7..7d87b3e 100644
--- desktop/desktop.py
+++ desktop/desktop.py
@@ -291,3 +291,24 @@ class Desktop:
time.sleep(1)
else:
return False
+
+ def prepareFace(self,ur_home_path):
+ """Подготовить каталог пользователя с шифрованием для работы с .face
+
+ Для шифрованных профилей в корне домашней директории
+ создается симлинк на .ecryptfs/.face. В зашифрованном профиле
+ такой симлинк будет создаваться шаблонами
+
+ Args:
+ ur_home_path: домашняя директория пользователя
+
+ Returns:
+ True/False в зависимости от успешности
+ """
+ if path.exists(ur_home_path):
+ symlink_path = path.join(ur_home_path,'.face')
+ if not path.lexists(symlink_path):
+ os.symlink('.ecryptfs/.face', symlink_path)
+ return True
+ else:
+ return False
diff --git desktop/utils/cl_desktop.py desktop/utils/cl_desktop.py
index 3533e2e..a4cc6e6 100644
--- desktop/utils/cl_desktop.py
+++ desktop/utils/cl_desktop.py
@@ -65,16 +65,24 @@ class ClDesktopAction(Action):
'method':'Desktop.createUserDir(ur_login,ur_uid,ur_gid,ur_home_path)',
'condition':lambda dv:not path.exists(dv.Get('ur_home_path'))
},
- # подключить шифрованные данные
- {'name':'ecryptfs',
- 'message':__("Mounting encrypted data"),
- 'method':'Desktop.createCryptDir(ur_login,ur_uid,ur_gid,'
- 'ur_home_path,False)',
+ # используется ли шифрование
+ {'name':'crypt',
'condition':lambda dv:(not isMount(dv.Get('ur_home_path')) and \
dv.Get('ur_home_crypt_set') == 'on' and
(not dv.isModuleInstalled("install") or
dv.Get('install.cl_autologin') != dv.Get('ur_login')))
},
+ # подготовить шифрованный профиль пользователя для работы с .icon
+ {'name':'crypt:prepare_icon',
+ 'method':'Desktop.prepareFace(ur_home_path)',
+ 'condition':lambda Get:Get('ur_domain_set') == 'off'
+ },
+ # подключить шифрованные данные
+ {'name':'crypt:ecryptfs',
+ 'message':__("Mounting encrypted data"),
+ 'method':'Desktop.createCryptDir(ur_login,ur_uid,ur_gid,'
+ 'ur_home_path,False)'
+ },
# настроить пользовательских профиль шаблонами
{'name':'user_profile',
'message':__("Setting up the user profile"),
diff --git desktop/variables/desktop.py desktop/variables/desktop.py
index 30ae7bb..b90e61f 100644
--- desktop/variables/desktop.py
+++ desktop/variables/desktop.py
@@ -22,10 +22,12 @@ import pwd
from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable, \
ReadonlyTableVariable,FieldValue
from calculate.lib.variables.user import VariableUrLogin
-from calculate.lib.utils.files import readLinesFile,process,isMount
+from calculate.lib.utils.files import (readLinesFile,process,isMount,
+ listDirectory)
from calculate.desktop._cl_keys import getKey
from itertools import *
from calculate.lib.cl_template import (templateFunction,iniParser)
+import hashlib
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_desktop3',sys.modules[__name__])
@@ -372,3 +374,31 @@ class VariableClDesktopForceSetupSet(Variable):
def init(self):
self.label = _("Force setup")
self.help = _("force setup")
+
+class VariableClDesktopFacePath(Variable):
+ """Путь к стандартным иконкам пользователей"""
+ value = "/usr/share/pixmaps/faces"
+
+class VariableClDesktopFaceList(Variable):
+ """Список доступных иконок по умолчанию для пользователей"""
+ type = "list"
+
+ def get(self):
+ return sorted(
+ filter(lambda x:x.endswith('.png'),
+ listDirectory(self.Get('cl_desktop_face_path'))))
+
+class VariableClDesktopHashFace(Variable):
+ """Номер иконки пользователя
+
+ Номер вычисляется по контрольной сумму md5 логина пользователя
+ """
+ def get(self):
+ login = self.Get('ur_login')
+ icon_list = self.Get('cl_desktop_face_list')
+ if icon_list:
+ return path.join(self.Get('cl_desktop_face_path'),
+ icon_list[sum(map(lambda x:ord(x),
+ hashlib.md5(login).digest()))%len(icon_list)])
+ else:
+ return ""
diff --git setup.py setup.py
index 1567e89..d2982f6 100755
--- setup.py
+++ setup.py
@@ -42,6 +42,7 @@ data_files += [('/usr/share/calculate/xdm', ['data/cmd_login',
'data/login.d/99final'])] + \
[('/usr/share/calculate/xdm/logout.d',
['data/logout.d/00init',
+ 'data/logout.d/95syncface',
'data/logout.d/98umount'])]
def __scanDir(scanDir, prefix, replace_dirname, dirData, flagDir=False):

@ -24,6 +24,7 @@ EBUILD calculate-utilities-3.1.8-r9.ebuild 761 SHA256 83704ff8464e94cfd31967655d
EBUILD calculate-utilities-3.1.9-r1.ebuild 752 SHA256 4e2e867f54528f8a9bc2f66e214d39c26bcbb56456b5309ddfed4e4140e7df59 SHA512 a87f85e58713bc153302bb889ffa569ffb82648ec82717a104177b483b36032ad806c7794d046594be39117c673b2d73092518d59e9b9bb35a8fbd5acf46197a WHIRLPOOL 72d33065ef295706ec78d0bff942acfbb1b8da3b0c8c1bb242ed3fe55b7a4819d7ba15ce0ac650c979d35a69dd803140230b0e65e39253b580956d319a40fbb9
EBUILD calculate-utilities-3.1.9-r10.ebuild 770 SHA256 89627950cd5b55242f10d21b80e7af970b87c0c93d84d2ac34e14a0d3fcd3c4f SHA512 fdc972da918e93d552411a75eefadc109e3d8a644e03f9ec4a28ff454acb9b02355bd87fa9d6281436a96b43a0abaa986425f79ac592535c8a891a7fb1acb557 WHIRLPOOL 0b576850aa47a5efb215cf473006991b95d59da2b5b17b2a901b70fefc300e8246d212d19f02d9fb8c5acc039be4148667d7347edde194356322461e7cdbf8e6
EBUILD calculate-utilities-3.1.9-r11.ebuild 770 SHA256 5c9954c9dc5f9a40d7a7c8c93a5fd6d668f210c9ab0c030129dfdc144e9aa3fc SHA512 6c855be7ff517c71478f7eaa4cb46a0057fc8b93cf99c444d51fb8fcec14533fd79ab9e8d8d2f79185fcc69bb4f870a6c8cdef656642a1d65c3c86eabb16e9cf WHIRLPOOL d5747f80d0dbd7a2a7aa59ba80ea043934046d00e8140ae7aaa72f9e5f837887cca438e56915b1f2d0360503824f697b65fca832d9d04ff5add1bff0f7923330
EBUILD calculate-utilities-3.1.9-r12.ebuild 770 SHA256 536e591b62ffadab9997d244c79cb275155c82f7ab706d6128a16d33b9b5acb6 SHA512 ab38107db46546ef9ca9cb3c1e04ce021f4655b9fcbbe91c72e624465e4a3ab514c509c5cea0ea8b1d8ecdbf25fe35e35e008b5c80a91a3c1756143d0464b935 WHIRLPOOL ae6c69b56565a05e1b480707b83092d542e2017eae9afdb70b1cd9093df4bd28f0939672843cc5edb9a15f1c3e1d68f55da8ed7792d7343acfbd6b7b51557347
EBUILD calculate-utilities-3.1.9-r2.ebuild 755 SHA256 d8ddfbab1db607f85edbc87db7010c0ab2c5653d52bec1c45448d0ee73be73a5 SHA512 9915e5edb2cf659f64ac1bb2f495c06b15e3e66f4df04ddef31d6da0cc275778d4ec574fb276ef7999677abd986da40862720f69b44625e699c673ae4dc3d717 WHIRLPOOL deb8fc8969e6c9e2898205762d99e3ce295d53c2b8829ffc3c9590452b0a16b0b003e0d2e19ae8c2d17b9b29c6f74b7c03b878a848f481d1bbe6d4b40ba924ba
EBUILD calculate-utilities-3.1.9-r3.ebuild 758 SHA256 7bdb0132b728c1a0b8ea57f0ea585afdc82f9d80aff5a13909bc152321a7ec28 SHA512 228155e8264c47456a5b375ef160e64557a87aa7e32adcb6136ef0df78f6a5b93c83d1293bf682bb00c7caa39821560ebf7c0c07200c5b65cf385b26e9607e64 WHIRLPOOL a2b35dd15636e6528f7828c9ebc1b1084c8cc3ba5384e68aea826f0c3b0220cd4376b35220eec77b40194c2ba62be1bc652407b45efab5ee999167d6c9cc90c7
EBUILD calculate-utilities-3.1.9-r4.ebuild 761 SHA256 14ec84c6cad91bc692b12b8ba2f3f78698f76a1570faf6cbf84f644aac6baecf SHA512 a51fa4a937eb13eb6ad7048f68e86903fcdbf37531668def216a3f745c253e353b5f893e91982bc16c874bfe82146dea2165c24ef26a9a28164923a772b72f40 WHIRLPOOL 4b185030c44756d36afda759a4d5f83156b42c7b9378f4045ba5cb9cbd3e9a1f1cb337184d642be9f844962fbfe4aa1d40086c07226b8688b7ea1e1078301845

@ -0,0 +1,26 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
DESCRIPTION="Calculate Utilities meta package"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
SRC_URI=""
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE="cl_consolegui cl_client cl_desktop cl_console"
RDEPEND="${RDEPEND}
=sys-apps/calculate-install-3.1.9-r3
=sys-apps/calculate-i18n-3.1.9
=sys-apps/calculate-lib-3.1.9-r5
=sys-apps/calculate-core-3.1.9-r3
=sys-apps/calculate-update-3.1.9
cl_client? ( =sys-apps/calculate-client-3.1.9-r2 )
cl_desktop? ( =sys-apps/calculate-desktop-3.1.9-r4 )
cl_consolegui? ( =sys-apps/calculate-console-gui-3.1.9-r1 )
cl_console? ( =sys-apps/calculate-console-3.1.9-r1 )
"
Loading…
Cancel
Save