Fix: изменение DISTDIR для emerge
master 3.7.3.3
root 1 year ago
parent 0317ef4900
commit 82e95eeef2

@ -970,7 +970,6 @@ class Builder(Update):
deo = self.get_default_emerge_opts()
system_ini = SystemIni(self.clVars.Get('cl_builder_linux_datavars'))
driver_list = list(self.NvidiaDriver(builder_path, system_ini))
zz_builder_data = ''
if os.path.isdir(path.join(self.clVars.Get('cl_chroot_path'), 'var/db/repos/gentoo')):
distrdir = path.join(builder_path, 'var/calculate/distfiles')
pkgdir = path.join(builder_path, 'var/calculate/packages')
@ -985,13 +984,7 @@ class Builder(Update):
pkgdir_files = []
distdir_files = []
repeat_driver_list = []
try:
with open(path.join(builder_path, 'etc/portage/make.conf/zz-builder')) as inf:
zz_builder_data = inf.read()
with open(path.join(builder_path, 'etc/portage/make.conf/zz-builder'), 'w') as ouf:
ouf.write(zz_builder_data.replace(self.clVars.Get('cl_builder_pkgdir'), '/var/calculate/packages'))
except Exception:
self.printWARNING(_('Unable to change chroot pkgdir for video drivers'))
while driver_list or repeat_driver_list:
drv_name, drv_mask, drv_atom = driver_list.pop(0)
self.startTask(_("Calculating dependencies for %s") %
@ -1009,7 +1002,8 @@ class Builder(Update):
ef = EmergeFetcher(self.chrootize(builder_path, EmergeCommand(
["=%s" % x for x in package_list], emerge_default_opts=deo,
extra_params=["-Of", "--ask=n"], logfile="%s.2" % logfile)))
extra_params=["-Of", "--ask=n"], logfile="%s.2" % logfile,
env={'DISTDIR': 'var/calculate/distfiles', 'PKGDIR': 'var/calculate/packages'})))
try:
for package in ef:
pkg_name = str(package)
@ -1019,13 +1013,6 @@ class Builder(Update):
fn))
else:
for fn in package.files:
d_path = path.join(builder_path, distrdir)
try:
for file_name in find(path.join(builder_path, pkgdir)):
if fn in file_name:
shutil.move(file_name, d_path)
except (shutil.Error, FileNotFoundError):
pass
distdir_files.append(fn)
if ef.failed():
raise BuilderError(_("Failed to get %s") % drv_name)
@ -1036,10 +1023,6 @@ class Builder(Update):
raise BuilderError(
_("Failed to fetch files for %s") % drv_name)
repeat_driver_list.append([drv_name, drv_mask, drv_atom])
finally:
if zz_builder_data:
with open(path.join(builder_path, 'etc/portage/make.conf/zz-builder'), 'w') as ouf:
ouf.write(zz_builder_data)
if not driver_list and repeat_driver_list:
driver_list = repeat_driver_list
@ -1063,6 +1046,14 @@ class Builder(Update):
if fn not in source:
removeFileWithEmptyDirectory(path.join(target_dn, fn),
stopDirectory=target_dn)
for dir in find(pkgdir, filetype='d'):
for fn in os.listdir(dir):
try:
shutil.move(path.join(dir, fn), pkgdir)
except (shutil.Error, FileNotFoundError):
continue
removeDir(dir)
return True
def create_video_data(self, builder_path, repository_data):

Loading…
Cancel
Save