Добавлена поддержка маскировки драйверов через calculate/ini.env

parent 75862b4a1e
commit 2dec9752ae

@ -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)

Loading…
Cancel
Save