|
|
|
@ -31,6 +31,7 @@ from calculate.lib.utils.common import CmdlineParams, getTupleVersion
|
|
|
|
|
from calculate.lib.utils.portage import (BinaryPackage, get_binary_file,
|
|
|
|
|
EixVersionParser,
|
|
|
|
|
clear_binhost_garbage, WorldFile)
|
|
|
|
|
from calculate.lib.utils.text import _u
|
|
|
|
|
from calculate.lib.utils.binhosts import Binhosts
|
|
|
|
|
from calculate.lib.utils.files import (
|
|
|
|
|
pathJoin, PercentProgress, getProgPath, process, STDOUT, removeDir,
|
|
|
|
@ -831,15 +832,16 @@ class Builder(Update):
|
|
|
|
|
Package = None
|
|
|
|
|
Id = None
|
|
|
|
|
|
|
|
|
|
def __init__(self, builder_path="/"):
|
|
|
|
|
def __init__(self, builder_path="/", system_ini=None):
|
|
|
|
|
self.builder_path = builder_path
|
|
|
|
|
self.system_ini = system_ini
|
|
|
|
|
|
|
|
|
|
def generate(self):
|
|
|
|
|
raise StopIteration
|
|
|
|
|
|
|
|
|
|
def __iter__(self):
|
|
|
|
|
yield (self.Id, '', self.Package)
|
|
|
|
|
for x in self.generate():
|
|
|
|
|
for x in self.generate(self.system_ini):
|
|
|
|
|
yield x
|
|
|
|
|
|
|
|
|
|
class NvidiaDriver(Driver):
|
|
|
|
@ -847,8 +849,9 @@ class Builder(Update):
|
|
|
|
|
Package = 'x11-drivers/nvidia-drivers'
|
|
|
|
|
Eclass = 'usr/portage/eclass/nvidia-driver.eclass'
|
|
|
|
|
SkipVers = ('72.0.0', '97.0.0', '177.0.0', '305.0.0', '341.0.0')
|
|
|
|
|
SkipVersNew = ('71', '96', '173', '304', '340', '367')
|
|
|
|
|
|
|
|
|
|
def generate(self):
|
|
|
|
|
def generate_legacy(self):
|
|
|
|
|
nvidia_eclass = path.join(self.builder_path, self.Eclass)
|
|
|
|
|
eclassdata = readFile(nvidia_eclass)
|
|
|
|
|
reBlock = re.compile(
|
|
|
|
@ -865,6 +868,21 @@ class Builder(Update):
|
|
|
|
|
continue
|
|
|
|
|
yield (self.Id, mask_str, mask_str.replace('>=', '\\<'))
|
|
|
|
|
|
|
|
|
|
def generate_new(self, system_ini):
|
|
|
|
|
for nvidia_serie in system_ini.getKeys('nvidia'):
|
|
|
|
|
if _u(nvidia_serie) in self.SkipVersNew:
|
|
|
|
|
continue
|
|
|
|
|
mask_str = ">=x11-drivers/nvidia-drivers-{}".format(int(nvidia_serie)+1)
|
|
|
|
|
yield (self.Id, mask_str, mask_str.replace('>=', '\\<'))
|
|
|
|
|
|
|
|
|
|
def generate(self, system_ini):
|
|
|
|
|
if system_ini.getKeys('nvidia'):
|
|
|
|
|
for x in self.generate_new(system_ini):
|
|
|
|
|
yield x
|
|
|
|
|
else:
|
|
|
|
|
for x in self.generate_legacy():
|
|
|
|
|
yield x
|
|
|
|
|
|
|
|
|
|
def pretend_package_install(self, atom, chroot_path, logfile=None):
|
|
|
|
|
"""
|
|
|
|
|
Получить список пакетов для установки
|
|
|
|
@ -927,7 +945,8 @@ class Builder(Update):
|
|
|
|
|
logfile = self._get_log_file()
|
|
|
|
|
deo = self.get_default_emerge_opts()
|
|
|
|
|
|
|
|
|
|
driver_list = list(self.NvidiaDriver(builder_path))
|
|
|
|
|
system_ini = SystemIni(self.clVars.Get('cl_builder_linux_datavars'))
|
|
|
|
|
driver_list = list(self.NvidiaDriver(builder_path, system_ini))
|
|
|
|
|
distrdir = path.join(builder_path, 'usr/portage/distfiles')
|
|
|
|
|
pkgdir = path.join(builder_path, 'usr/portage/packages')
|
|
|
|
|
for target_dn in (distrdir, pkgdir):
|
|
|
|
@ -1006,7 +1025,8 @@ class Builder(Update):
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def create_video_data(self, builder_path, repository_data):
|
|
|
|
|
driver_list = list(chain(self.NvidiaDriver(builder_path)))
|
|
|
|
|
system_ini = SystemIni(self.clVars.Get('cl_builder_linux_datavars'))
|
|
|
|
|
driver_list = list(chain(self.NvidiaDriver(builder_path, system_ini)))
|
|
|
|
|
logfile = self._get_log_file()
|
|
|
|
|
cache_file = self.clVars.Get('builder.cl_builder_video_driver_path')
|
|
|
|
|
map_rep = dict(repository_data)
|
|
|
|
|