Обновление зависимостей бинарных пакетов, учитывая переменную with_bdeps

mhiretskiy
parent c80fe4ccda
commit 2d003fe095

@ -1,15 +0,0 @@
# Calculate run=/bin/bash ini(overlay-calculate.revision)=>20191116.3,#-cut(0,-,#-cl_pass_file-#)-#
#-ini(overlay-calculate.revision,#-cut(0,-,#-cl_pass_file-#)-#)-#
find /var/db/pkg -name BINPKGMD5 -print |
while read line
do
PKGDN="$(dirname $line)"
bdependfile="$PKGDN/BDEPEND"
dependfile="$PKGDN/DEPEND"
[[ -f $bdependfile ]] && mv $bdependfile $bdependfile.binary
[[ -f $dependfile ]] && mv $dependfile $dependfile.binary
done
exit 0

@ -1,4 +1,4 @@
# Calculate run=/bin/bash ini(overlay-calculate.revision)=>20191116.3,#-cut(0,-,#-cl_pass_file-#)-#
# Calculate run=/bin/bash ini(overlay-calculate.revision)=>20191116.3,20200529
#-ini(overlay-calculate.revision,#-cut(0,-,#-cl_pass_file-#)-#)-#

@ -0,0 +1,90 @@
# Calculate run=/usr/bin/python2 ini(overlay-calculate.revision)=>20191116.3,#-cut(0,-,#-cl_pass_file-#)-# merge=sys-apps/calculate-utils
#-ini(overlay-calculate.revision,#-cut(0,-,#-cl_pass_file-#)-#)-#
from os import path
import bz2
import os
from calculate.lib.utils.files import readFile, listDirectory
class VardbPackage(object):
def __init__(self, infodn):
self.infodn = infodn
self.CATEGORY, self.PF = path.split(infodn)
self.CATEGORY = path.basename(self.CATEGORY)
self.environment = path.join(self.infodn, "environment.bz2")
self.depend = path.join(self.infodn, "DEPEND")
self.bdepend = path.join(self.infodn, "BDEPEND")
self.depend_binary = path.join(self.infodn, "DEPEND.binary")
self.bdepend_binary = path.join(self.infodn, "BDEPEND.binary")
self.detected_mark = path.join(self.infodn, "EMERGE_FROM")
def __repr__(self):
return "%s/%s"%(self.CATEGORY, self.PF)
def set_detected(self, binary):
with open(self.detected_mark, 'w') as f:
f.write("binary" if binary else "ebuild")
@property
def binary(self):
# detect by mark file
if path.exists(self.detected_mark):
return readFile(self.detected_mark).strip() == "binary"
# detect by old detect
if path.exists(self.bdepend_binary) or path.exists(self.depend_binary):
self.set_detected(True)
return True
buf = None
# detect by environment.bz2
with bz2.BZ2File(self.environment, 'r') as f:
for n in xrange(0,3):
if buf is None:
buf = f.read(10000)
else:
buf += f.read(10000)
if "isz=" in buf:
self.set_detected(True)
return True
self.set_detected(False)
return False
def hide_depends(self):
for dep, depb in [(self.depend, self.depend_binary),
(self.bdepend, self.bdepend_binary)]:
if path.exists(dep):
os.rename(dep, depb)
def unhide_depends(self):
for dep, depb in [(self.depend, self.depend_binary),
(self.bdepend, self.bdepend_binary)]:
if path.exists(depb):
os.rename(depb, dep)
class Vardb(object):
def __init__(self, dbdn):
self.dbdn = dbdn
def __iter__(self):
for category in listDirectory(self.dbdn, fullPath=True):
if path.isdir(category):
for pkg in listDirectory(category, fullPath=True):
if "MERGING-" not in pkg and path.isdir(pkg):
yield VardbPackage(pkg)
def hide_binary_depends(self):
for pkg in self:
if pkg.binary:
pkg.hide_depends()
def unhide_binary_depends(self):
for pkg in self:
if pkg.binary:
pkg.unhide_depends()
#?update.cl_update_with_bdeps_opt_set==auto#
Vardb('/var/db/pkg').hide_binary_depends()
#!update.cl_update_with_bdeps_opt_set#
Vardb('/var/db/pkg').unhide_binary_depends()
#update.cl_update_with_bdeps_opt_set#
Loading…
Cancel
Save