|
|
|
@ -968,9 +968,9 @@ class Builder(Update):
|
|
|
|
|
root_user = 0
|
|
|
|
|
logfile = self._get_log_file()
|
|
|
|
|
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,6 +985,13 @@ 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") %
|
|
|
|
@ -999,6 +1006,7 @@ class Builder(Update):
|
|
|
|
|
self.startTask(_("Fetching binary packages and sources tarballs") %
|
|
|
|
|
[x for x in package_list if x['PN'] == drv_name][0])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)))
|
|
|
|
@ -1011,6 +1019,12 @@ class Builder(Update):
|
|
|
|
|
fn))
|
|
|
|
|
else:
|
|
|
|
|
for fn in package.files:
|
|
|
|
|
d_path = path.join(builder_path, distrdir)
|
|
|
|
|
p_path = path.join(builder_path, pkgdir, fn)
|
|
|
|
|
try:
|
|
|
|
|
shutil.move(p_path, d_path)
|
|
|
|
|
except shutil.Error:
|
|
|
|
|
pass
|
|
|
|
|
distdir_files.append(fn)
|
|
|
|
|
if ef.failed():
|
|
|
|
|
raise BuilderError(_("Failed to get %s") % drv_name)
|
|
|
|
@ -1021,6 +1035,10 @@ 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
|
|
|
|
@ -1044,7 +1062,6 @@ class Builder(Update):
|
|
|
|
|
if fn not in source:
|
|
|
|
|
removeFileWithEmptyDirectory(path.join(target_dn, fn),
|
|
|
|
|
stopDirectory=target_dn)
|
|
|
|
|
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def create_video_data(self, builder_path, repository_data):
|
|
|
|
|