Исправление calculate-client

atratsevskiy
parent b5c712b381
commit 93ab1e8e89

@ -2,6 +2,7 @@ AUX calculate-client-3.1.5-r1.patch 926 SHA256 fe190cffc8ece2d872f1c841765e99340
AUX calculate-client-3.1.5-r2.patch 4352 SHA256 491029c99a09a0fdbb0f9fb6eed92467551e676797729ede4712cc50c45836f0 SHA512 933551ef53225e264eed061e9dc6826b441e72e92c9f4ff14a9eacc6438f932430a8d68018a115deb102b75708b918a6f96abbee0e71c6bd8371e27abb9edfa3 WHIRLPOOL f4d73a5861205d48e4b327620991a97ce51b8c47d37e15af99cf44207c003658c778f57a9a05f4c7ff6a3c10ba14ab19898c27a29e3ab6841033cdc3e494e54f
AUX calculate-client-3.1.5-r4.patch 7077 SHA256 f33abcaee8ad3b9ca2f740226b9b315a14044ba13a4219a9b39e6e60f2dd86ac SHA512 6d5158ab8329973dfe2798ef9c27b561d9da39146569de3f99ba2930403c2176ce05c237c6c6acb40593a9012d7b1ef2574e280dfbb3fe5b22f7f03f060f302c WHIRLPOOL 93fd1fc0eead89f3c86796d61899d4db53f15f2521b00936130fac446af781c294a46cfba7d2b373a954f1d84ef8b3902117b7a404ca4b0d4e7a540a7310137e
AUX calculate-client-3.1.5-r5.patch 7530 SHA256 4cc5afbec9655fca3bb0bb7b598924cab00e8bfd59365c9721754fdeead5b89d SHA512 4c21cfcc14de7db13dc751575fc5238149917e29414d73e5a61006f29ed88e447699f5d1d12fd6e11a74a271c371fc85122a949639250f3b6bb521cdb0e195c5 WHIRLPOOL 8d85f694050118f68388abb92d5b247b0fe33c2196aad130774113a96e3cebcab400e7ff3d2d28a29b2dc3ff50730f88bd971f93b2368f4f1654c45327b08f93
AUX calculate-client-3.1.5-r6.patch 7910 SHA256 1c3ae82b820e13942511ca4f1d4bf470239b9d02c68c1cf5805fc5758ddf0cc0 SHA512 eca9504d2689aaa75db27a0b8c11267c88e377855a96c4d868dc38a4985c52d24a234466f833510ffc38a1b1bed47e36a5ca13cdbab0d7b3506e84e4c674d535 WHIRLPOOL c366368695aac6ce1bddd04508b021a59eeccdda98daba5e3c0befe9fd7536284ffba3b4ee34e2ab06da97e91ded7e00fdb076c9b1fc499cbaf43cf3b926bc09
AUX calculate-client-3.1.5_beta1-r1.patch 1044 SHA256 e0e49973f076b3e62617f977db388a78a689e14273de58c86a03f0fa4b273210 SHA512 3e400c25fb2b6f749c75daed2b5d652a511a5538330fba16ab9ec365622b5a1e8a1e067316fbfdab164e2f71806b883fb4f5c1d50462b7890a1d5f7554754971 WHIRLPOOL bd37fbedcc3f492b3233ab0a72a9ee821d010d4d7b1c509e651c4bdd0b791b83eec73a63d14cfd9007ac580f89c75452d25cbb13b8a71516156a61bf1aadb317
DIST calculate-client-3.1.3.tar.bz2 31329 SHA256 4cdc5cfaa840a23fff1ac2d144aaf1605b400d2c9a8edb89bc1eae497e06cb34 SHA512 dcd11f9045edebc71bda157e734474b4fa2e0ead9ea12a6678f1949b9c80da941f636114263d9381268b152da88764e94570ca89368684d62e65d0f30a140621 WHIRLPOOL 5d18d5dfa0016d2553c9adc0b9b4a35a12f8e3376afb6b1f622d099d2827224bdb0242e80cea3c451c8a343a1fef33a29559888b5e732548d7665149910ab9c3
DIST calculate-client-3.1.5.tar.bz2 31578 SHA256 4837b7c296bf4b3a1caa3e0e05156248ec5c32bd5c2e1dd7ae00391fb43f7a02 SHA512 9e3c88764fa7145b649e8348cba140a201de8715f60e48270e4da494fac03619314b9003761c43182d0a3665aba1af76344ca1defeac4b324de8d7c195d7844a WHIRLPOOL 75d00fa10b89be49d6449c24b3a53514ef761f227adb7bf6ef64fbb26ca29489badc6adcf7bba222adbca6a1451003efc39f947005f37aba46fddbabb36628fb
@ -12,6 +13,7 @@ EBUILD calculate-client-3.1.5-r2.ebuild 921 SHA256 e768b1194ef171f9bc08de9a825f1
EBUILD calculate-client-3.1.5-r3.ebuild 942 SHA256 090a39098a28426dbbe90446837a58c183f0308933a8eaadc8904c8ca36cfce4 SHA512 5b4c8b5c9cd1072f451d1ce555240aa8cc098f249d51e82713bdb64b5c55bfcef194ecea1a8854b4a0fbcf42c0a35d110c329da77d29e5add348f8012213ec4c WHIRLPOOL 97dd3e05ea8f189e375bb93cb6afe2300536b383f0df5c7aae446f08473616db617d7bb6c0d003108cb477348fed44e1d778884d44094b0ef1cabe4342221f77
EBUILD calculate-client-3.1.5-r4.ebuild 942 SHA256 9bae7206cee477db4a545c33fc52d026c5a195d53ac32926c9912e296b033c1a SHA512 2fe8c66c940940f26fbcaf51932564ab2c685417c8db381da15b563a0f6e3ab83b125793632a6e568ba9533daed6a6ef63d0bb3304e237935cc97ff081bd83b1 WHIRLPOOL ff8ad92ec56d661cf2334daa391225f9fdd41cf174fa30b34da5e98e5028818412e013816ba1d6a82067a75f72d10d0649f5df4aa6c7530701a2f2952d46a0b5
EBUILD calculate-client-3.1.5-r5.ebuild 942 SHA256 433123feed873b9133f89370104445cf22a6ad513f5de13b0579c7a9f009c4ba SHA512 fc0fc0b367f7b9de96aff9146accaacace5363967749ca74eb07dc63ddaafdba9890cdd8990f243aa3e6884ff6c168cf1c3707b3d390d8b2d4fba3e2d1e71b80 WHIRLPOOL b64527e0a57761b72ff235c91b1305a988c1eed6ed9ad0713eb6717b70888c3274fcee8a4b396c91c12224caf03b967bb96dc5968aaec58ea44587ecc657255a
EBUILD calculate-client-3.1.5-r6.ebuild 942 SHA256 578157ce1917c50cbabe5dac852623597496d1888b3d2e9b8cd2dc3d724ee231 SHA512 675b50804e76ce17f522f5a24b546b1e2d2fdc6d04b2fee1418586d09b8c3778c0d13f782c7a92c42bfc6b29e829bf53e5c7cb279e1bbd3a2000273e2b0673d2 WHIRLPOOL 2cc432879f5c583cd81ef2d179a133abf089613a94125a7556bbb5f004df2cf335049a082ae3d559d93bf90972a4b2d43a997a9d8b5bbcceb4b2ba639055fb02
EBUILD calculate-client-3.1.5.ebuild 785 SHA256 29c2e470164379ef8cc8310d20516dcb1ad43dd70fd6147a0b0e0816be321a47 SHA512 5fb0ae4de94c1d4caf3a1ee562e82c7cdfb2a93867670a04c16d0494728cf2c376d259d4366e55ec83f7c7f6459058072f13134cc9c90f2712ecdf1495c88006 WHIRLPOOL 480c48d1092a7a9c992a2ce2d2fd1b1db3e42dfedde285cfe052193c5c325f0dd6e6399d4cb66a2998acbdc65fe7d913c00894e04dfeb9faf599facbf5664966
EBUILD calculate-client-3.1.5_beta1-r1.ebuild 933 SHA256 fead2f86dcef23cd76a9601f372406282031aa1a36933ce652036909ec0e3d3c SHA512 15fa26d3846362fa3e597ec5adb5e89f7e0b21b126e166a08b1baa91baf8024c1e464ed1d4cd624de5c74f12f3001a40b703796a50c565f6d1ab84ae86d26db4 WHIRLPOOL 6123a0cc4a1a79638e1f18141a22c714f451220b160974d9897eb3d33eca9ba62d370f0280fe2379c00c2a5850c706c36e721023431e9a520db95baeeca1749e
EBUILD calculate-client-3.1.9999.ebuild 879 SHA256 37385187f78bb708669b5cd2742173b117bb482c784f8f481ab7388554476d65 SHA512 87ebc2dfa965a9bb9d24af13a611e83e412cbabb12957bb14e2a1cd8b9f1951efbf690dcfa8f73711a02cfd0afbc9e9f37209ba9a3884b018c41b3a46e2e847b WHIRLPOOL 349da1bcb076af176079473ccb2fd1a4e3d8eb3ec2a7a6102272d1dd1073a8c181c49e02c89ede4b5cd829856f0c0f5db877b89eb0c6335ad678e58902db293b

@ -0,0 +1,38 @@
# 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 setting and storing the user account in the domain"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
DEPEND="~sys-apps/calculate-desktop-3.1.5
!<sys-apps/calculate-client-3.1.0
>=dev-python/python-ldap-2.0[ssl]
>=sys-auth/pam_ldap-180[ssl]
>=sys-auth/nss_ldap-239
>=sys-apps/keyexec-0.1.2
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-client-3.1.5-r6.patch"
}

@ -0,0 +1,197 @@
diff --git client/cl_client.py client/cl_client.py
index 393f185..71298d8 100644
--- client/cl_client.py
+++ client/cl_client.py
@@ -460,12 +460,14 @@ class Client(commandServer, encrypt):
"""Mount samba resource"""
if res in mountUidList:
# mount by uid
- mountStr = "mount -t cifs -o user=%s,uid=%s,gid=%s,noperm"\
+ mountStr = \
+ "mount -t cifs -o cache=loose,user=%s,uid=%s,gid=%s,noperm"\
%(userName,uid,gid) +\
" //%s/%s %s" %(host, res, rpath)
else:
# mount by root
- mountStr = "mount -t cifs -o user=%s"%(userName)+\
+ mountStr = \
+ "mount -t cifs -o cache=loose,user=%s"%(userName)+\
" //%s/%s %s" %(host, res, rpath)
textLine = self.execProg(mountStr, envProg={"PASSWD":userPwd})
return textLine
@@ -523,7 +525,7 @@ class Client(commandServer, encrypt):
return True
def syncUser(self, userName, userHome, sync, homeTemplate, \
- host="default"):
+ host="default",skipList=[]):
"""
Sync user profile from server or to server
"""
@@ -539,7 +541,7 @@ class Client(commandServer, encrypt):
deletePaths = []
excludePaths = " ".join(map(lambda x: '--exclude="/%s"'\
%x.replace('"',"").replace("'",""),
- skipPaths + deletePaths))
+ skipPaths + deletePaths + skipList))
if sync == "login":
if os.path.exists(userHome) and\
os.path.exists(homeTemplate):
@@ -1277,14 +1279,15 @@ class Client(commandServer, encrypt):
def tarSymLinks(self,userHome,uid,gid):
"""Create tar archive of symlinks"""
linkArch = pathJoin(userHome,".calculate/links.tar.bz2")
+ symList = []
try:
- for filename in tarLinks(userHome,linkArch,
+ symList = list(tarLinks(userHome,linkArch,
skip=self.clVars.Get("cl_sync_del_path")+
- self.clVars.Get("cl_sync_skip_path")):
- try:
- os.unlink(filename)
- except OSError:
- self.printWARNING(_("Failed to remove %s")%filename)
+ self.clVars.Get("cl_sync_skip_path")))
+ #try:
+ # os.unlink(filename)
+ #except OSError:
+ # self.printWARNING(_("Failed to remove %s")%filename)
except:
self.printWARNING(_("Failed to make a links archive"))
try:
@@ -1292,6 +1295,7 @@ class Client(commandServer, encrypt):
os.chown(linkArch,uid,gid)
except:
self.printWARNING(_("Failed to make a links archive"))
+ return symList
def unpackLinks(self,userHome):
"""Unpack archive of symlinks"""
@@ -1598,10 +1602,13 @@ class Client(commandServer, encrypt):
configFileName = os.path.join(self.homeDir, self.configFileDesktop)
self.setVarToConfig("main", {"date_logout":currentDateStr},
configFileName)
+ skipList = []
if os.path.exists(self.homeDir):
self.moveHomeDir(self.homeDir)
if self.sync:
- self.tarSymLinks(self.homeDir,self.uid,self.gid)
+ skipList = self.tarSymLinks(self.homeDir,self.uid,self.gid)
+ lHomeDir = len(self.homeDir)+1
+ skipList = map(lambda x:x[lHomeDir:],skipList)
else:
raise ClientError(_("Directory %s not found") % self.homeDir)
# get status sync
@@ -1626,7 +1633,8 @@ class Client(commandServer, encrypt):
if self.sync:
# sync profiles local to domain
if not self.syncUser(self.userName, self.homeDir, "logout",
- homeProfile,host=self.domain):
+ homeProfile,host=self.domain,
+ skipList=skipList):
return False
finally:
# remove files, which hinder correct dm work
@@ -1831,6 +1839,9 @@ class Client(commandServer, encrypt):
def restartDBus(self):
"""Restart D-Bus service"""
+ # перезапуск dbus выключен, в связи с переходом
+ # на новую схему ввода/вывода в домен
+ return True
dbusDaemon = '/sbin/rc-service -i dbus'
existsDaemon = '/sbin/rc-service -e dbus'
# if exists dbus and running
@@ -1911,6 +1922,7 @@ class Client(commandServer, encrypt):
return False
reFoundHostSamba = re.compile("Server=\[Samba.+\]")
resSmbClient = self.execProg("smbclient -N -L %s" %domain)
+ foundHostSamba = False
if not resSmbClient is False:
for string in resSmbClient:
if reFoundHostSamba.search(string):
diff --git data/logout data/logout
new file mode 100644
index 0000000..09abf5d
--- /dev/null
+++ data/logout
@@ -0,0 +1,50 @@
+# Calculate chmod=0755
+#!/bin/bash
+
+source /lib/rc/sh/functions.sh
+
+variable_value()
+{
+ local varname=$1
+ /usr/sbin/cl-core-variables-show --only-value $varname
+}
+
+ONLINE_USERS="`variable_value desktop.cl_desktop_online_user`"
+
+# если есть пользователи в сеансе или выполняется выход
+if [[ -n $ONLINE_USERS ]] || pgrep -f 'xdm/xdm --logout' &>/dev/null
+then
+ # есть пользователи в сеансе
+ if [[ -n $ONLINE_USERS ]]
+ then
+ ebegin "Logout users"
+ # переменная online_data возвращает строки пользователь,дисплей
+ for user_disp in $(variable_value desktop.cl_desktop_online_data | sed -r "s/;/ /g")
+ do
+ user=$(echo $user_disp | cut -d, -f1)
+ disp=$(echo $user_disp | cut -d, -f2)
+ # завершаем сессию пользователя
+ /usr/sbin/cl-core --method desktop_logout $user &>/dev/null
+ # удаляем запить о пользователе
+ /usr/bin/sessreg -d -l :$disp $user &>/dev/null
+ # выполняем принудительный выход из сеанса
+ USER="$user" /usr/share/calculate/xdm/xdm --logout &>/dev/null &
+ done
+ eend 0
+ fi
+ # ожидаение завершения процесса выхода пользователя из сеанса
+ if pgrep -f 'xdm/xdm --logout' &>/dev/null
+ then
+ ebegin "Please wait for complete logout"
+ for i in {1..500}
+ do
+ if pgrep -f 'xdm/xdm --logout' &>/dev/null
+ then
+ sleep 1
+ else
+ break
+ fi
+ done
+ eend 0
+ fi
+fi
diff --git setup.py setup.py
index a29ca1f..94a48bd 100755
--- setup.py
+++ setup.py
@@ -18,7 +18,7 @@
# limitations under the License.
__app__ = "calculate-client"
-__version__ = "3.1.4"
+__version__ = "3.1.5"
import os
import stat
@@ -33,6 +33,7 @@ import sys
data_files = []
data_files += [('/etc/init.d', ['data/client'])]
+data_files += [('/usr/sbin', ['data/logout'])]
data_files += [('/usr/share/calculate/xdm/login.d',
['data/login.d/10client'])] +\
[('/usr/share/calculate/xdm/logout.d',
@@ -74,6 +75,7 @@ class cl_install_data(install_data):
def run (self):
install_data.run(self)
data_file = [("/etc/init.d/client",0755),
+ ("/usr/sbin/logout",0755),
("/usr/share/calculate/xdm/wait_domain",0755)]
fileNames = map(lambda x: os.path.split(x[0])[1], data_file)
listNames = map(lambda x: filter(lambda y: y, x[0].split("/")),

@ -26,6 +26,7 @@ EBUILD calculate-utilities-3.1.5-r23.ebuild 771 SHA256 fb5eca08c69425b0b6bcf148f
EBUILD calculate-utilities-3.1.5-r24.ebuild 771 SHA256 3671eca6ef73d80b30f76fbee2524cc2527680dbde7929ae7dddd552b22b7cc7 SHA512 a574f067ad84e2f7c550230eea010a9d63872032d516c388b8a4e704d493a9ba2fbac2bca107f18ba289a7f8891034febe1e90ab02bb9a4b7cc1475f48ca349b WHIRLPOOL 5d53351c1c28d177fcf1e8d138a7922fd157358fbb5d49991a00aaef387eb53caa3c04a10847c55995c053e1ad4a69b6edabeacd0407a062078e5445b31689e2
EBUILD calculate-utilities-3.1.5-r25.ebuild 771 SHA256 a832e5586da9cc7dd19654ab322e910a13c38feae878b40279f9f176c08cba5b SHA512 8f25e0665869307555b77b33a9a78d4a6e064e01b89c51bc2c7d2576c611472bbf59f5ff329fe4ddfa5578396389fc361d84eaa848172280a4bac2be746820a4 WHIRLPOOL 0379a71887bcc9435e838f6b15f3af0bd6543f1bc68ae1bc3ce32a8594da37ccef2ba5722f86f18ebf81542322833497148dd32a29ef2c6c961a4b636f539e50
EBUILD calculate-utilities-3.1.5-r26.ebuild 771 SHA256 2559a629a3ab2cea5faddf1cb42f6702983ecc86c7f8de9fa020feb2070cecf1 SHA512 4310e5648888788ebdc58e9d7dd00331dbb75cef7cdf1dcc09a1a8bab58426d3801111e880e5b43da4935a7e7bdeda3f6a3e1411939449e8072f753d67aa89bf WHIRLPOOL 4164b6b0f154a0ca07154f2da6f394f721ce6f7e8bf09d74a16caeb0d1d78171498ba0a559b0c0bab88110921c99a1072e490fc204dcc94b8be55857db3855d5
EBUILD calculate-utilities-3.1.5-r27.ebuild 771 SHA256 6f38a47daf9573c4980ca92e4654ecdd364dfa1a936db8586bcea500bd261070 SHA512 7b7f9f23ce262bf1ecf4254129cfc76ea57a9abca9c3a72b3afab446d12e962e6214c54f1a5b8fc6e61ac09d21e83f5b16764bfb5dc3728654cae82287a4db05 WHIRLPOOL 60eae72ea5a6ed7d3649d14d7bb1de9d602c80b013cbf57898b91d7735770d34e621d32936c97d6141c3e42945c0ddcefebf5e8c52f64e3b7c5ff82e6daba6a6
EBUILD calculate-utilities-3.1.5-r3.ebuild 761 SHA256 9b97a2a3b45b65da291bf4845ed2b4b022a43b656dc402d5f5cfc78f1d5a44ec SHA512 fb6a0a35db4d9059bf24d88875b3f49bc8b255b018e2be02acd2cabcbb12830aecd30b1d6774f94fa079ffa370292c543bd6c7cc93c9eb2fc41280a2a03ac2d2 WHIRLPOOL 736bd31de1e7af15b3e35ee7cdee54fb6a656d988980b82d04cb2b6063ccd7eec5cde2e61a247c8d5392a3de213ca4783a750dcde5b8100cca98dbe1d02600bb
EBUILD calculate-utilities-3.1.5-r4.ebuild 764 SHA256 7e538d36e0b2fe880717dafd7c1335b18b0f1104ad1b81159cf4b8e7d33b6523 SHA512 bdc639603a5b0b756d080bdcc9130cc3afb70952d159fafd0c2a10348771bb12ed3cd65e5a6242174e6e1c2f6a844471d08f828ab46433304871beed9b76ed42 WHIRLPOOL c87d413a58d98f31bf058e4871fb91ddfe26f9d62c00a947a78ae3114f330896935795809f311a5fa9a211702384a12c3ec6fad1fbf9d845b068b9198f38d5d2
EBUILD calculate-utilities-3.1.5-r5.ebuild 764 SHA256 7f0b1e95fa4709b01b85d46edf2dd548c73c4aaca3efc45820943ff80fd4e20c SHA512 d03de503c540f31888747e1b664502ebe4f3667fca277156d9d3babbedf996a9e42df087a2783a0efd2f6ae3068d7111a98ac2c23b12c2564d470b806d290520 WHIRLPOOL 77f719e710686069f7e26fe8bc205a337e9141e5834dadc3d9ccab5fbc78d0e71450ef49b25a506219c084c8e9e91787689b6406d8dffc1e3a75425ee8587d54

@ -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.5-r15
=sys-apps/calculate-i18n-3.1.5-r1
=sys-apps/calculate-lib-3.1.5-r3
=sys-apps/calculate-core-3.1.5-r2
=sys-apps/calculate-update-3.1.5
cl_client? ( =sys-apps/calculate-client-3.1.5-r6 )
cl_desktop? ( =sys-apps/calculate-desktop-3.1.5-r4 )
cl_consolegui? ( =sys-apps/calculate-console-gui-3.1.5-r2 )
cl_console? ( =sys-apps/calculate-console-3.1.5 )
"
Loading…
Cancel
Save