lorax: Update how the release package is chosen
Previously the release package was chosen by picking the first package that provides 'system-release' that isn't named generic. This can cause branding issues with repos containing multiple system-release packages. This patch changes _install_branding so that it will give preference to a system-release package that ends with lowercase --variant name. If there isn't one it will fall back to the previous behavior. Resolves: rhbz#1826479
This commit is contained in:
parent
78e525fa80
commit
3613c12464
@ -96,6 +96,7 @@ class RuntimeBuilder(object):
|
|||||||
The *best* way to control this is to have a single package in the repo provide 'system-release'
|
The *best* way to control this is to have a single package in the repo provide 'system-release'
|
||||||
When there are more than 1 package it will:
|
When there are more than 1 package it will:
|
||||||
- Make a list of the available packages
|
- Make a list of the available packages
|
||||||
|
- If variant is set look for a package ending with lower(variant) and use that
|
||||||
- If there are one or more non-generic packages, use the first one after sorting
|
- If there are one or more non-generic packages, use the first one after sorting
|
||||||
"""
|
"""
|
||||||
if self._skip_branding:
|
if self._skip_branding:
|
||||||
@ -104,18 +105,20 @@ class RuntimeBuilder(object):
|
|||||||
release = None
|
release = None
|
||||||
q = self.dbo.sack.query()
|
q = self.dbo.sack.query()
|
||||||
a = q.available()
|
a = q.available()
|
||||||
for pkg in a.filter(provides='system-release'):
|
pkgs = sorted([p.name for p in a.filter(provides='system-release')
|
||||||
logger.debug("Found release package %s", pkg)
|
if not p.name.startswith("generic")])
|
||||||
if pkg.name.startswith('generic'):
|
if not pkgs:
|
||||||
continue
|
logger.error("No system-release packages found, could not get the release")
|
||||||
else:
|
|
||||||
release = pkg.name
|
|
||||||
break
|
|
||||||
|
|
||||||
if not release:
|
|
||||||
logger.error('could not get the release')
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
logger.debug("system-release packages: %s", pkgs)
|
||||||
|
if self.vars.product.variant:
|
||||||
|
variant = [p for p in pkgs if p.endswith("-"+self.vars.product.variant.lower())]
|
||||||
|
if variant:
|
||||||
|
release = variant[0]
|
||||||
|
if not release:
|
||||||
|
release = pkgs[0]
|
||||||
|
|
||||||
# release
|
# release
|
||||||
logger.info('got release: %s', release)
|
logger.info('got release: %s', release)
|
||||||
self._runner.installpkg(release)
|
self._runner.installpkg(release)
|
||||||
|
Loading…
Reference in New Issue
Block a user