Toggle multilib per variant
There is now a single option `multilib`, that maps variants and arches to multilib methods. This replaces old `multilib_methods` option. Multilib arches are implicitly deduced instead of using the `multilib_arches` option. The test compose is updated to only enable multilib on Server and its addons. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
6e0f6ee73e
commit
8b4ad1ea02
@ -38,7 +38,6 @@ Minimal Config Example
|
||||
gather_source = "comps"
|
||||
gather_method = "deps"
|
||||
greedy_method = "build"
|
||||
multilib_methods = []
|
||||
check_deps = False
|
||||
|
||||
# BUILDINSTALL
|
||||
@ -377,11 +376,25 @@ Options
|
||||
**greedy_method**
|
||||
(*str*) -- see :doc:`gather`, recommended value: "build"
|
||||
|
||||
**multilib_methods** = []
|
||||
([*str*]) -- see :doc:`gather`, recommended value: ["devel", "runtime"]
|
||||
**multilib_methods** [deprecated]
|
||||
([*str*]) -- use ``multilib`` instead to configure this per-variant
|
||||
|
||||
**multilib_arches**
|
||||
([*str*] or None) -- list of compose architectures entitled for multilib; set to None to apply multilib on all compose arches
|
||||
**multilib_arches** [deprecated]
|
||||
([*str*] or None) -- use ``multilib`` to implicitly configure this: if a
|
||||
variant on any arch has non-empty multilib methods, it is automatically
|
||||
eligible
|
||||
|
||||
**multilib**
|
||||
(*list*) -- mapping of variant regexes and arches to list of multilib
|
||||
methods
|
||||
|
||||
Available methods are:
|
||||
* ``none``
|
||||
* ``all``
|
||||
* ``runtime``
|
||||
* ``file``
|
||||
* ``kernel``
|
||||
* ``yaboot``
|
||||
|
||||
**additional_packages**
|
||||
(*list*) -- additional packages to be included in a variant and architecture; format: [(variant_uid_regex, {arch|*: [package_globs]})]
|
||||
@ -414,8 +427,6 @@ Example
|
||||
gather_source = "comps"
|
||||
gather_method = "deps"
|
||||
greedy_method = "build"
|
||||
multilib_methods = ["devel", "runtime"]
|
||||
multilib_arches = ["ppc64", "s390x", "x86_64"]
|
||||
check_deps = False
|
||||
hashed_directories = True
|
||||
|
||||
@ -438,6 +449,12 @@ Example
|
||||
}),
|
||||
]
|
||||
|
||||
multilib = [
|
||||
('^Server$', {
|
||||
'x86_64': ['devel', 'runtime']
|
||||
})
|
||||
]
|
||||
|
||||
multilib_blacklist = {
|
||||
"*": [
|
||||
"gcc",
|
||||
|
@ -52,20 +52,11 @@ class GatherPhase(PhaseBase):
|
||||
name = "gather"
|
||||
|
||||
config_options = (
|
||||
{
|
||||
"name": "multilib_arches",
|
||||
"expected_types": [list],
|
||||
"optional": True,
|
||||
},
|
||||
{
|
||||
"name": "gather_lookaside_repos",
|
||||
"expected_types": [list],
|
||||
"optional": True,
|
||||
},
|
||||
{
|
||||
"name": "multilib_methods",
|
||||
"expected_types": [list],
|
||||
},
|
||||
{
|
||||
"name": "greedy_method",
|
||||
"expected_values": ["none", "all", "build"],
|
||||
@ -91,7 +82,22 @@ class GatherPhase(PhaseBase):
|
||||
"expected_types": [bool],
|
||||
"optional": True,
|
||||
},
|
||||
{
|
||||
"name": "multilib",
|
||||
"expected_types": [list],
|
||||
"optional": True,
|
||||
},
|
||||
# DEPRECATED OPTIONS
|
||||
{
|
||||
"name": "multilib_arches",
|
||||
"deprecated": True,
|
||||
"comment": "Use multilib instead",
|
||||
},
|
||||
{
|
||||
"name": "multilib_methods",
|
||||
"deprecated": True,
|
||||
"comment": "Use multilib instead",
|
||||
},
|
||||
{
|
||||
"name": "additional_packages_multiarch",
|
||||
"deprecated": True,
|
||||
|
@ -15,7 +15,6 @@
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
|
||||
import os
|
||||
|
||||
import kobo.rpmlib
|
||||
|
@ -20,13 +20,12 @@ import tempfile
|
||||
|
||||
from kobo.shortcuts import run
|
||||
|
||||
from pungi.util import rmtree
|
||||
from pungi.util import rmtree, get_arch_variant_data
|
||||
from pungi.wrappers.pungi import PungiWrapper
|
||||
|
||||
from pungi.arch import tree_arch_to_yum_arch
|
||||
import pungi.phases.gather
|
||||
|
||||
|
||||
import pungi.phases.gather.method
|
||||
|
||||
|
||||
@ -116,11 +115,7 @@ def resolve_deps(compose, arch, variant):
|
||||
compose.log_info("[BEGIN] %s" % msg)
|
||||
pungi_conf = compose.paths.work.pungi_conf(arch, variant)
|
||||
|
||||
multilib_methods = compose.conf.get("multilib_methods", None)
|
||||
multilib_methods = compose.conf.get("multilib_methods", None)
|
||||
is_multilib = arch in compose.conf["multilib_arches"]
|
||||
if not is_multilib:
|
||||
multilib_methods = None
|
||||
multilib_methods = get_arch_variant_data(compose.conf, 'multilib', arch, variant)
|
||||
|
||||
greedy_method = compose.conf.get("greedy_method", "none")
|
||||
|
||||
|
@ -109,11 +109,6 @@ class InitPhase(PhaseBase):
|
||||
"expected_types": [list],
|
||||
"optional": True,
|
||||
},
|
||||
{
|
||||
"name": "multilib_arches",
|
||||
"expected_types": [list],
|
||||
"optional": True,
|
||||
},
|
||||
|
||||
# CREATEREPO SETTINGS
|
||||
{
|
||||
|
@ -22,6 +22,7 @@ from kobo.shortcuts import force_list
|
||||
import pungi.phases.pkgset.pkgsets
|
||||
from pungi.arch import get_valid_arches
|
||||
from pungi.phases.base import PhaseBase
|
||||
from pungi.util import is_arch_multilib
|
||||
|
||||
|
||||
class PkgsetPhase(PhaseBase):
|
||||
@ -33,10 +34,6 @@ class PkgsetPhase(PhaseBase):
|
||||
"name": "pkgset_source",
|
||||
"expected_types": [str],
|
||||
},
|
||||
{
|
||||
"name": "multilib_arches",
|
||||
"expected_types": [list],
|
||||
},
|
||||
)
|
||||
|
||||
def run(self):
|
||||
@ -54,7 +51,7 @@ def populate_arch_pkgsets(compose, path_prefix, global_pkgset):
|
||||
result = {}
|
||||
for arch in compose.get_arches():
|
||||
compose.log_info("Populating package set for arch: %s" % arch)
|
||||
is_multilib = arch in compose.conf["multilib_arches"]
|
||||
is_multilib = is_arch_multilib(compose.conf, arch)
|
||||
arches = get_valid_arches(arch, is_multilib, add_src=True)
|
||||
pkgset = pungi.phases.pkgset.pkgsets.PackageSetBase(compose.conf["sigkeys"], logger=compose._logger, arches=arches)
|
||||
pkgset.merge(global_pkgset, arch, arches)
|
||||
|
@ -22,6 +22,7 @@ from kobo.shortcuts import run, force_list, relative_path
|
||||
import pungi.phases.pkgset.pkgsets
|
||||
from pungi.arch import get_valid_arches
|
||||
from pungi.wrappers.createrepo import CreaterepoWrapper
|
||||
from pungi.util import is_arch_multilib
|
||||
|
||||
|
||||
# TODO: per arch?
|
||||
@ -29,7 +30,7 @@ def populate_arch_pkgsets(compose, path_prefix, global_pkgset):
|
||||
result = {}
|
||||
for arch in compose.get_arches():
|
||||
compose.log_info("Populating package set for arch: %s" % arch)
|
||||
is_multilib = arch in compose.conf["multilib_arches"]
|
||||
is_multilib = is_arch_multilib(compose.conf, arch)
|
||||
arches = get_valid_arches(arch, is_multilib, add_src=True)
|
||||
pkgset = pungi.phases.pkgset.pkgsets.PackageSetBase(compose.conf["sigkeys"], logger=compose._logger, arches=arches)
|
||||
pkgset.merge(global_pkgset, arch, arches)
|
||||
|
@ -24,6 +24,7 @@ import koji
|
||||
import pungi.wrappers.kojiwrapper
|
||||
import pungi.phases.pkgset.pkgsets
|
||||
from pungi.arch import get_valid_arches
|
||||
from pungi.util import is_arch_multilib
|
||||
|
||||
from pungi.phases.pkgset.common import create_arch_repos, create_global_repo, populate_arch_pkgsets
|
||||
|
||||
@ -85,7 +86,7 @@ def populate_global_pkgset(compose, koji_wrapper, path_prefix, compose_tag, even
|
||||
koji_proxy = koji_wrapper.koji_proxy
|
||||
ALL_ARCHES = set(["src"])
|
||||
for arch in compose.get_arches():
|
||||
is_multilib = arch in compose.conf["multilib_arches"]
|
||||
is_multilib = is_arch_multilib(compose.conf, arch)
|
||||
arches = get_valid_arches(arch, is_multilib)
|
||||
ALL_ARCHES.update(arches)
|
||||
|
||||
|
@ -22,7 +22,7 @@ from kobo.shortcuts import run
|
||||
|
||||
import pungi.phases.pkgset.pkgsets
|
||||
from pungi.arch import get_valid_arches
|
||||
from pungi.util import makedirs
|
||||
from pungi.util import makedirs, is_arch_multilib
|
||||
from pungi.wrappers.pungi import PungiWrapper
|
||||
|
||||
from pungi.phases.pkgset.common import create_global_repo, create_arch_repos, populate_arch_pkgsets
|
||||
@ -125,7 +125,7 @@ def get_pkgset_from_repos(compose):
|
||||
def populate_global_pkgset(compose, file_list, path_prefix):
|
||||
ALL_ARCHES = set(["src"])
|
||||
for arch in compose.get_arches():
|
||||
is_multilib = arch in compose.conf["multilib_arches"]
|
||||
is_multilib = is_arch_multilib(compose.conf, arch)
|
||||
arches = get_valid_arches(arch, is_multilib)
|
||||
ALL_ARCHES.update(arches)
|
||||
|
||||
|
@ -23,7 +23,7 @@ from pungi.wrappers.repoclosure import RepoclosureWrapper
|
||||
from pungi.arch import get_valid_arches
|
||||
from pungi.phases.base import PhaseBase
|
||||
from pungi.phases.gather import get_lookaside_repos
|
||||
from pungi.util import rmtree
|
||||
from pungi.util import rmtree, is_arch_multilib
|
||||
|
||||
|
||||
class TestPhase(PhaseBase):
|
||||
@ -45,7 +45,7 @@ def run_repoclosure(compose):
|
||||
all_repos = {} # to be used as lookaside for the self-hosting check
|
||||
all_arches = set()
|
||||
for arch in compose.get_arches():
|
||||
is_multilib = arch in compose.conf["multilib_arches"]
|
||||
is_multilib = is_arch_multilib(compose.conf, arch)
|
||||
arches = get_valid_arches(arch, is_multilib)
|
||||
all_arches.update(arches)
|
||||
for variant in compose.get_variants(arch=arch):
|
||||
|
@ -215,6 +215,11 @@ def get_arch_variant_data(conf, var_name, arch, variant):
|
||||
return result
|
||||
|
||||
|
||||
def is_arch_multilib(conf, arch):
|
||||
"""Check if at least one variant has multilib enabled on this variant."""
|
||||
return bool(get_arch_variant_data(conf, 'multilib', arch, None))
|
||||
|
||||
|
||||
def resolve_git_url(url):
|
||||
"""Given a url to a Git repo specifying HEAD as a ref, replace that
|
||||
specifier with actual SHA1 of the commit.
|
||||
|
@ -42,8 +42,11 @@ greedy_method = "build"
|
||||
check_deps = False
|
||||
hashed_directories = True
|
||||
|
||||
multilib_arches = ["ppc64", "x86_64", "s390x"]
|
||||
multilib_methods = ["devel", "runtime"]
|
||||
multilib = [
|
||||
('^Server.*$', {
|
||||
'*': ['devel', 'runtime']
|
||||
}),
|
||||
]
|
||||
|
||||
additional_packages = [
|
||||
('^Server$', {
|
||||
|
Loading…
Reference in New Issue
Block a user