|
|
|
@ -846,19 +846,24 @@ class Builder(Update):
|
|
|
|
|
Id = 'nvidia-drivers'
|
|
|
|
|
Package = 'x11-drivers/nvidia-drivers'
|
|
|
|
|
Eclass = 'usr/portage/eclass/nvidia-driver.eclass'
|
|
|
|
|
SkipVers = ('71', '96', '173', '304', '340')
|
|
|
|
|
SkipVers = ('72.0.0', '97.0.0', '177.0.0', '305.0.0', '341.0.0')
|
|
|
|
|
|
|
|
|
|
def generate(self):
|
|
|
|
|
nvidia_eclass = path.join(self.builder_path, self.Eclass)
|
|
|
|
|
mask_prefix = "mask_"
|
|
|
|
|
for mask in (x for x in readLinesFile(nvidia_eclass)
|
|
|
|
|
if x.startswith(mask_prefix)):
|
|
|
|
|
# пропустить сборку для 71, 96 и 173
|
|
|
|
|
if any(mask.startswith("%s%s" % (mask_prefix, x))
|
|
|
|
|
for x in self.SkipVers):
|
|
|
|
|
continue
|
|
|
|
|
mask = mask.partition('=')[2].strip("\n")
|
|
|
|
|
yield (self.Id, mask, mask.replace('>=', '<'))
|
|
|
|
|
eclassdata = readFile(nvidia_eclass)
|
|
|
|
|
reBlock = re.compile(
|
|
|
|
|
r"if has \$\{nvidia_gpu\}\s+\\([^;]+);\s*then(.*?)fi", re.S)
|
|
|
|
|
reMask = re.compile('>=x11-drivers/nvidia-drivers[^"]+')
|
|
|
|
|
for block in reBlock.findall(eclassdata):
|
|
|
|
|
nvidia_ids, mask_data = block
|
|
|
|
|
m = reMask.search(mask_data)
|
|
|
|
|
if m:
|
|
|
|
|
mask_str = m.group()
|
|
|
|
|
maskver = mask_str.rpartition("-")[2].strip()
|
|
|
|
|
# пропустить сборку для 71, 96, 304,. 340
|
|
|
|
|
if maskver in self.SkipVers:
|
|
|
|
|
continue
|
|
|
|
|
yield (self.Id, mask_str, mask_str.replace('>=', '\\<'))
|
|
|
|
|
|
|
|
|
|
def pretend_package_install(self, atom, chroot_path, logfile=None):
|
|
|
|
|
"""
|
|
|
|
@ -936,7 +941,7 @@ class Builder(Update):
|
|
|
|
|
while driver_list or repeat_driver_list:
|
|
|
|
|
drv_name, drv_mask, drv_atom = driver_list.pop(0)
|
|
|
|
|
self.startTask(_("Calculating dependencies for %s") %
|
|
|
|
|
drv_atom.strip('"').replace("<", "<"))
|
|
|
|
|
drv_atom.strip('"').replace("\\","").replace("<", "<"))
|
|
|
|
|
package_list = self.pretend_package_install(drv_atom, builder_path,
|
|
|
|
|
logfile=logfile)
|
|
|
|
|
|
|
|
|
|