Исправлен desktop

atratsevskiy
Mike khiretskiy 11 years ago
parent 76cf737c5a
commit 416b0fd178

@ -3,6 +3,7 @@ AUX calculate-desktop-3.1.8-r3.patch 4821 SHA256 1e7477931c02cb32e1f5d1db3165dba
AUX calculate-desktop-3.1.8-r4.patch 4821 SHA256 1e7477931c02cb32e1f5d1db3165dba7bd35b5a69b4b12f45faf3a26491d4b5d SHA512 48ce6d9d1df282bc61eb5244f24526aae54a5b5c3108d9763573905a07ccf164c135e454bf2ecd5e009cf4d45d68c1c56f816dcc2312362c85434a69b814aa6c WHIRLPOOL 788e1508d5967c6916e76b8b812d6da9ea24ea84f2d955e1b8101a706c255a0a02ffeaf16448eec32c8dda8406de985b33804c56112f8336b1f0ba00a326d7e8
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
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
@ -14,6 +15,7 @@ EBUILD calculate-desktop-3.1.8-r4.ebuild 901 SHA256 9f09c35c21dc81ce2ba68b8b8472
EBUILD calculate-desktop-3.1.8.ebuild 763 SHA256 6bd05b4a17c4da8c67dca8f111c22b40c79c7cf05e1d0fa620069182f787a6a7 SHA512 7e2a48245e5e89826502cd4dfa3d36e55ee6847e9d36d434d4f1eba5fea0ec3d0cae2323a1aa2746cdd0e3ef01416abf7e4328f43c587b0771cccc8d16f8b78f WHIRLPOOL c79fc7e1ec973cb2d26777e82ac1915c7d14f170a7416d26dbc2cd7ff1515954155e8afa8cd502cfb9f314f3682a90732b832ca47697338b7b862de7c2a7710e
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.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-r3.patch"
}

@ -0,0 +1,177 @@
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..0da85fe
--- /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
+ fi
+fi
+
+exit 0
diff --git data/xdm data/xdm
index cfe5033..13a81bf 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
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):

@ -23,6 +23,7 @@ EBUILD calculate-utilities-3.1.8-r8.ebuild 761 SHA256 49c332f3b672e0719fd28187e1
EBUILD calculate-utilities-3.1.8-r9.ebuild 761 SHA256 83704ff8464e94cfd31967655dd14bb6e38428ae89d5ae87d51126897ee35768 SHA512 bec768fa8ba8dd5453de2ca4623e0e9328a841fb5e9471bf8863b0370f420b1f8914e0f65f3bc7c12749d91954a990ed328c3a1046ffb4aea31d5a8c3ec10fcd WHIRLPOOL 5765e900601a2c2f201e2457f344d7aa742269ac791cf0fa5167f84b7d1b162c3230eefd131c47204e31113c6aa5a8d134efd786007a65c60f1c4bea31d5018e
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-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-r3 )
cl_consolegui? ( =sys-apps/calculate-console-gui-3.1.9-r1 )
cl_console? ( =sys-apps/calculate-console-3.1.9-r1 )
"
Loading…
Cancel
Save