Исправление update

mhiretskiy
Mike Khiretskiy 10 years ago
parent 4c19437f51
commit 9844785582

@ -10,11 +10,13 @@ AUX calculate-update-3.2.0_alpha10-r8.patch 34043 SHA256 a9415e815c112273782e45a
AUX calculate-update-3.2.0_alpha10-r9.patch 35323 SHA256 8d376ed89aa905e07981b764084376ebd52cfbe526a8a89f75ab21abf15b117c SHA512 a9ebaf6b74591cfcb0e4c91a8e4d5caa79481fbc67c3cede73cbf1b1f9adec51189df7b04017e9edbb37cd9eb3ce452f6820cd9fcdf5a99e92b92e63725b0623 WHIRLPOOL a431dfa3f207192337efd077aacd549c1bc1cdd799740e230af614a81c07d6ba44489401bbd7173b2997eb1b8ef22277a4c9d7a48a156d082f42a810792a24a3
AUX calculate-update-3.2.0_alpha11-r1.patch 1611 SHA256 49ab8105240cd0d3c68343d2288f2e31ebb8fa57e12e29fa28dab43b990a69e9 SHA512 209b5f10f3b696db3d642834f819f60e9243505bc33fdf4f92f9e501a6407d54e4ec0d8d3d8789d30880cddacf871d38f08386a38ba0e2f5c718535488127217 WHIRLPOOL 6d7154bcac41de9a5f1d851fd70418d9618215e8fa8480c3f0b6c728a751fb6f670862652b6cef7f9b588f12f0b145de4f9d7f772aa9783479be36c813b5c3fa
AUX calculate-update-3.2.0_alpha11-r2.patch 6557 SHA256 33a8fd344fa6b88d7b347d70fdbf057d5adc9ee7874f7b4fb6170fb61d25acd6 SHA512 cebe9ca8d8c03d1ec993cbadf4e8811a5ad700c6c746b3e6c6c9e0287b82c92bddbf144ddad039fac570cc531a3a7447230447cc38b5f225cfc47cb3e642465d WHIRLPOOL f3816597f98962adc0ba264947ecca309d7a7048a088918e9b0bc5471101a3f16201e9a51ca363f3cd310645452f027e67915b710b28ea4201e19fdef97db966
AUX calculate-update-3.2.0_alpha11-r3.patch 8775 SHA256 a76e3c0b0cbacea644efb6924626c2a67b9b0778dbf778dcc5d999308c42548b SHA512 310d5d788d63a8c0e7e56e22324fc02399f897d7274e64337e8eaf6f7b35f721b054cac28ce91acdea63f75fb551156754914d50daca470b7c3d699ff110239c WHIRLPOOL dd2ce25c2758e3a7ee7208615ff5ef0529b35d0466ed2ce64fd3dc1e95410eb54a118e348ca0bddef0a8279ced98dbfc3704e6b6a5bc032b84d56fd532df9e75
AUX calculate-update-3.2.0_alpha7-r1.patch 1086 SHA256 4de503ac11c623bae15c770e2d8a66679972dd3d358cb1852c34c553ebde77aa SHA512 eaa0e099441e4e55e0d98818c679590bdc421ac3029df4111ac280847921bb100fbc2af7886917e48582f3d1220e0b3e221d5537cf1a029265d790f1077b209a WHIRLPOOL 6b00347e85c4ee747a43e4cf0ad6dc411b9529d62c8296f0ed82291ccdd68823f45f110d3f23347a637e822f9a4407c57a3f3dd4aafbd0953ba83f935d4f3b1f
DIST calculate-update-3.2.0_alpha10.tar.bz2 25298 SHA256 8a20822ceea8fee9fc5cd9c790463f389f776ccb8cd80a9ddc56019913e48805 SHA512 ea66987e0e276f8050c218f863f6bb2b9c3fbc604c1427982f740a929a85a8dabe4fbdf1e776e61320642e47a117c301c5fe63b4f3ebc69d190dcd33bc00749f WHIRLPOOL 4910453edce2d21e020dbd7558e718983b1547efbce99e94f151980a0a8c09fd1bb8d4870d4f04c8e0d421696cb31977b422506a05249bff880d4b4c4b046135
DIST calculate-update-3.2.0_alpha11.tar.bz2 26372 SHA256 22e73eb2f14454a4812798715ba48ab342f6b842a41b712b6a73cf1740d132ff SHA512 6ee6dea6b977b627786e4bc84718119215d661e5bc07328c56d3b969c5b9c7a6fbe29ac2ab044e15007fac8136c65376a7fadd06e8407bdd280c97e18fd7a590 WHIRLPOOL 430ad743fbad00be523fd8b83fd9fcc6e0023130adacc99b1f4a6f9be8fa542cefa904b4989c4d72f268363298c6891898b99f7eeb59257ad1888d4da5b18dda
EBUILD calculate-update-3.2.0_alpha10-r10.ebuild 771 SHA256 b89c8afdcefb724703b7683745feafdb84fdb7e65b1b3928e18827d72beaa154 SHA512 c57886bd206ade8e2896bd019f462fd978f4bf45c89e8f0dcac33827a2c9dab886476da7ce93d4053e4303cfad6756ed868342ca0d28fd4972ee1b12e3032be5 WHIRLPOOL b369c5c8abea6142290efa919f7f71cd5d9f358ee79ac2372b2e53e08f701d5d812cea11d27440369c3bb3b3900d8509c88221253e0625fe5178a15912d0c6d4
EBUILD calculate-update-3.2.0_alpha11-r1.ebuild 770 SHA256 c1944b400831e4a6ffdd6fa0a1ca305f8d4181c09e1aa020b2700c4b2e1f6bf0 SHA512 2534b900d7453896b9ce1e96ca20e4eb951dc4c43f4a1b443e2b47e2a3440151ef499d3a31d5799d085d934aaa13782f382ebaf6794ba9cfae8965e4cc93e9b2 WHIRLPOOL 1fb125d3b584c0749d4a02ccef397abf6b17d6aaec6f285ce786aeaf29f19544b961177821fc68b64252eb3e420e105bc9f18a4d2657a8e2ff4157ff7fa9a427
EBUILD calculate-update-3.2.0_alpha11-r2.ebuild 770 SHA256 d96c2c2fbd41230d8f1ed4db70eb9a906b903fe77f52fd508c38889c95c07506 SHA512 090c9087085ed1fae13ed3641dbc19f5f78e4dfac88327badc1360b78b177cf153b1ca333817114cd2993ff8cfb956e15d54a7ff103c107e937b330395ec1271 WHIRLPOOL 50b5f141d8ff379e8c2e6e61389f622b10f5e603910aec76eb851d5d012d665240ea161c52fa838e1ed964e2e74182e2a348ffb3ea9125ea101a498ea9d62345
EBUILD calculate-update-3.2.0_alpha11-r3.ebuild 770 SHA256 7cfe34c00fc2465cfb4d82a9dfa365b75c45872ee6d8587efafdd455da8ac649 SHA512 00060edd988badf1c474c2e3283d0629693488394dd2a54d1ea553b6be7195fbb82d5173cd10fff4723529ca57beccd6dac9ff130a9f8422ddf1c0ad2b09c895 WHIRLPOOL 066904e75e8c8a089213b496b5daf1b260020d8b03e7ad7598a4cf356829388560dcc237251f27a744c0b5158d2ab43a580887c00d80919c444752fe28b396d3
EBUILD calculate-update-3.2.0_alpha11.ebuild 625 SHA256 11bc2ee16dd27e80ca4ec5ab60fe4ac4ccf463abfe389b6b65a5a3a560f930b6 SHA512 247795e5281dda420b89eef257b712b338ae07e638dca90de1f51bd177970e6dc813b10cc51a0bb7cb50a0117e39b8ca42b3e6a87667f44c3beffee4320074a5 WHIRLPOOL d615fb60309ca6e67051df7a89ba75dc60fd14a8c6d1acba79b4858c731e54aa6a2a2a0c2f89d1c5254f89448d4e389aa276e94e991851bfa702ffbb938fdbd7
EBUILD calculate-update-3.2.9999.ebuild 520 SHA256 13be99f26482c5ef9097b758b66c25024df1850963b1c7dbacab71bd50ea4815 SHA512 7b077570676855b0cc3fa87ec329f14d2a94cf90bebab80ab03e9b0711f21fa7c578e8c063d05bc07e32031b48c342523a2344f06face54af455d885a9a8836a WHIRLPOOL 8443a7028edec83ccd6a870116b5fadc1b22e668e0df179bed9e4be06307f0c37834eed788e5ae620d619e6a6ca1dc09ed75fccd6cd0e4e46c77f480077189af

@ -0,0 +1,33 @@
# 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 update 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.2.0_alpha11
~sys-apps/calculate-install-3.2.0_alpha11
dev-python/pexpect"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# apply revision changes
epatch "${FILESDIR}/calculate-update-3.2.0_alpha11-r3.patch"
}

@ -0,0 +1,196 @@
diff --git update/package_tools.py update/package_tools.py
index a99af36..22ed72f 100644
--- update/package_tools.py
+++ update/package_tools.py
@@ -658,13 +658,14 @@ class EmergeUpdateInfo(Mapping):
Информация об обновлении одного пакета
"""
- install_info = "\[(binary|ebuild)[^\]]+\]"
+ install_info = "\[(binary|ebuild)([^\]]+)\]"
atom_info = r"\S+"
use_info = 'USE="[^"]+"'
prev_version = "\[([^\]]+)\]"
pkg_size = r"[\d,]+ \w+"
- attrs = ['binary', 'REPLACING_VERSIONS', 'SIZE']
+ attrs = ['binary', 'REPLACING_VERSIONS', 'SIZE', 'new', 'newslot',
+ 'updating', 'downgrading', 'reinstall']
def __init__(self, data):
self._data = data
@@ -675,9 +676,16 @@ class EmergeUpdateInfo(Mapping):
r = self.update_info.search(self._data)
if r:
self._info['binary'] = r.group(2) == 'binary'
- self._package = EmergePackage(r.group(3))
- self._info['REPLACING_VERSIONS'] = r.group(4) or ""
- self._info['SIZE'] = r.group(6) or ""
+ install_flag = r.group(3)
+ self._info['newslot'] = "S" in install_flag
+ self._info['new'] = "N" in install_flag and not "S" in install_flag
+ self._info['updating'] = ("U" in install_flag and
+ not "D" in install_flag)
+ self._info['downgrading'] = "D" in install_flag
+ self._info['reinstall'] = "R" in install_flag
+ self._package = EmergePackage(r.group(4))
+ self._info['REPLACING_VERSIONS'] = r.group(5) or ""
+ self._info['SIZE'] = r.group(7) or ""
def __iter__(self):
return chain(EmergePackage.attrs, self.attrs)
@@ -725,7 +733,7 @@ class EmergeRemoveInfo(EmergeUpdateInfo):
"""
Информация об удалении одного пакета (в списке обновляемых пакетов)
"""
- install_info = "\[(uninstall)[^\]]+\]"
+ install_info = "\[(uninstall)([^\]]+)\]"
class Eix:
diff --git update/update.py update/update.py
index 19a1fe2..eaf030a 100644
--- update/update.py
+++ update/update.py
@@ -35,7 +35,7 @@ from package_tools import Git, Layman,\
Colors = TextState.Colors
from calculate.lib.utils.files import (getProgPath, STDOUT, removeDir,
- PercentProgress, process)
+ PercentProgress, process, getRunCommands)
from calculate.lib.cl_lang import (setLocalTranslate, getLazyLocalTranslate,
RegexpLocalization, _)
import emerge_parser
@@ -115,24 +115,34 @@ class Update:
"""
Проверить повторный запуск
"""
+ update_running = lambda: any(os.getpid() != x
+ for x in search_worked_process('update', dv))
dv = self.clVars
- if filter(lambda x: os.getpid() != x,
- search_worked_process('update', dv)):
+ if update_running():
if not wait_update:
raise UpdateError(_("Update is already running. "
"Try to run later."))
else:
self.startTask(_("Waiting for another update to be complete"))
- while filter(lambda x: os.getpid() != x,
- search_worked_process('update', dv)):
+ while update_running():
self.pauseProcess()
- while any(ifilter(lambda x: os.getpid() != x,
- search_worked_process('update', dv))):
+ while update_running():
time.sleep(0.3)
self.resumeProcess()
time.sleep(random.random()*3)
+ self.endTask()
+ emerge_running = lambda: any("/usr/bin/emerge" in x
+ for x in getRunCommands())
+ if emerge_running():
+ if not wait_update:
+ raise UpdateError(_("Emerge is running. "
+ "Try to run later."))
+ else:
+ self.startTask(_("Waiting for emerge to be complete"))
+ while emerge_running():
+ time.sleep(1)
self.endTask()
return True
@@ -169,10 +179,10 @@ class Update:
branch, cb_progress=self.setProgress)
removeDir(rpath)
os.rename(rpath_new, rpath)
- except OSError:
- raise UpdateError(_("Permission denied to modify the "
+ except OSError as e:
+ raise UpdateError(_("Failed to modify the "
"{repname} repository").format(
- repname=repname))
+ repname=repname)+":"+str(e))
finally:
if path.exists(rpath_new):
removeDir(rpath_new)
@@ -234,11 +244,15 @@ class Update:
if not emerge:
raise UpdateError(_("The Emerge tool is not found"))
self.addProgress()
- p = PercentProgress(emerge, "--metadata", part=1, atty=True)
+ p = PercentProgress(emerge, "--ask=n", "--metadata", part=1, atty=True)
for perc in p.progress():
self.setProgress(perc)
if p.failed():
- raise UpdateError(_("Failed to update metadata"), addon=p.read())
+ data = p.read()
+ with open('/var/log/calculate/failed-metadata-%d.log' % time.time(),
+ 'w') as f:
+ f.write(data+p.alldata)
+ raise UpdateError(_("Failed to update metadata"), addon=data)
return True
def eixUpdate(self):
@@ -385,12 +399,28 @@ class Update:
ebuild_color = TextState.Colors.GREEN
binary_color = TextState.Colors.PURPLE
remove_color = TextState.Colors.LIGHT_RED
+ flag_map = {"updating":
+ _print.foreground(TextState.Colors.LIGHT_CYAN)("U"),
+ "reinstall":
+ _print.foreground(TextState.Colors.YELLOW)("rR"),
+ "new":
+ _print.foreground(TextState.Colors.LIGHT_GREEN)("N"),
+ "newslot":
+ _print.foreground(TextState.Colors.LIGHT_GREEN)("NS"),
+ "downgrading": (
+ _print.foreground(TextState.Colors.LIGHT_CYAN)("U") +
+ _print.foreground(TextState.Colors.LIGHT_BLUE)("D"))}
for pkg in sorted([PackageInformation.add_info(x) for x in
pkglist],
key=lambda y: y['CATEGORY/PN']):
+ install_flag = ""
if remove_list:
pkgcolor = _print.foreground(remove_color)
else:
+ for flag in flag_map:
+ if pkg[flag]:
+ install_flag = "(%s) " % flag_map[flag]
+ break
if self.is_binary_pkg(pkg):
pkgcolor = _print.foreground(binary_color)
else:
@@ -407,8 +437,10 @@ class Update:
else:
size = ""
mult = _print.bold("*")
- self.printDefault(" {mult} {fullname}{shortname}{size}".format(
- mult=mult, fullname=fullname, shortname=shortname, size=size))
+ self.printDefault(
+ " {mult} {fullname}{flag}{shortname}{size}".format(
+ mult=mult, fullname=fullname, shortname=shortname, size=size,
+ flag=install_flag))
def _display_install_package(self, emerge):
"""
diff --git update/utils/cl_update.py update/utils/cl_update.py
index d300ea0..0a815ff 100644
--- update/utils/cl_update.py
+++ update/utils/cl_update.py
@@ -192,6 +192,13 @@ class ClUpdateAction(Action):
'condition': was_installed('.*', log_names['revdep']),
'decoration': 'Update.update_task("%s")' % log_names['revdep']
},
+ {'name': 'update_other:dispatch_conf_end',
+ 'message': __("Updating configuration files"),
+ 'method':'Update.dispatchConf()',
+ 'condition': lambda Get: ((Get('cl_update_rev_set') == 'on' or
+ Get('cl_rebuild_world_set') == 'on') and
+ Get('cl_update_pretend_set') == 'off')
+ },
]
},
{'name': 'update:set_upto_date_cache',

@ -2,4 +2,5 @@ EBUILD calculate-utilities-3.2.0_alpha10-r21.ebuild 844 SHA256 465f0b760a5a683a9
EBUILD calculate-utilities-3.2.0_alpha11-r1.ebuild 824 SHA256 4f63d2f1d254bc1c63e04a245cdb49c8ffb3ca684e39ff9d387509a8c70d5656 SHA512 4f443ff9920a54837a9c765538f398b0edc10300c3f3f7d7a4ccf945943f873a5c0a3b80a10c019776bda1153e5d639f67a8dd042cdebc2fc8c43f93f89ebbda WHIRLPOOL 218ac121ce5b37eca5955afdfb15f3491f00d8c338bef0bf26f6103b26cb4cb004b5bcdd0f0789f484f12ee58d96fc13e873416d645208ab9b36701a83970b79
EBUILD calculate-utilities-3.2.0_alpha11-r2.ebuild 842 SHA256 aebe19af280bc6b08452445512a559215104fad40300ffcca55f0db46fe62856 SHA512 3df48e29bace9f9a742172f9f37ba873b9e07f5b6319d60e89024a9e59e026e85f7cdad384757ee0ff536d5f0521ce559da11462f425e2b7e0a7e81c82e835d6 WHIRLPOOL f28c5fd92c9d3edd0c568300768c000d310491cac5c041677b157a73915d032a779f56331fee4144bc0cfe7e76f0b56a023b396ba2c91bcab63b1e15b58d2712
EBUILD calculate-utilities-3.2.0_alpha11-r3.ebuild 842 SHA256 ac522e62c5ca35e7ca9ca91daea7f6878af147e9584111953eaa77a620e15c1c SHA512 ff9fec90628179bbf35f61cf8b393d0502937f72e3be21541203161344f5f62b8e718d81c1c55a23be145c9be36dc7d619deafe5589f100f07878e7e5c0869ee WHIRLPOOL 6fa6f7e50b0a6a5c77e7863826be8548d7f50af56298a3877bd86ee6923b458a386f1b95dafa066212ae39e0ec92803d051c60d8da00c49b820ac0d694d0eec1
EBUILD calculate-utilities-3.2.0_alpha11-r4.ebuild 842 SHA256 0d57954073951d856ceb8bc91f9d6c0256c4a6a2c109817ffc9355db0625b1a9 SHA512 bcf4f70ebde52517049413f3e7254c8b4d5e34f66cf019f37afe505f28a17ea6e05e560f86773f64ae95f26852cd201df477313c0f8fb954d5c6caa990f8d80d WHIRLPOOL 876d2d3ac2392569bed8fa5167e36917de65982817c5671b2ce06e2e76dfa31de70a1804d1919100ba1078c137f040d3c5d8c4c878b239d22c9a7edcdc583823
EBUILD calculate-utilities-3.2.9999.ebuild 800 SHA256 acbb7a4e34387baa1ade9bf97637972fbfc97afa56367381d622198b5237e983 SHA512 9e0c74eb499157b6d3ace20d7e9da630660e46b74a6d575e222e1638c87f85660635187489b9312a45f193780c301d87c1dbb9a0f60414e178e8f54080c71ffd WHIRLPOOL 9b56f590f36d29d3518c66c453f97b14d083e36b62adb70a8916ae4e30b527431602a9edd40d703e5cb4296a01f8c982157b602651ee57a9c0ddb7a4c6aa2fe1

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