New release 4.1.27
This commit is contained in:
parent
fc89aac70c
commit
a3e297804f
@ -1,7 +1,7 @@
|
||||
From 9dc20c455df71f95a7f131ac10b7013042c5f71d Mon Sep 17 00:00:00 2001
|
||||
From 36a88c877baa0be5ff3318ddcf9b97cf2057d748 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
|
||||
Date: Wed, 11 Apr 2018 09:18:59 +0200
|
||||
Subject: [PATCH 1/5] Revert "Move ostree phase and pipelines for running
|
||||
Subject: [PATCH 1/3] Revert "Move ostree phase and pipelines for running
|
||||
phases"
|
||||
|
||||
This reverts commit 660c04368ba1abed310f121d01f0fa029eea5f11.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 883a69645b92b243787312af232aeb804cf53292 Mon Sep 17 00:00:00 2001
|
||||
From 208c5e88a14a0caea8180b5958d41ffd5f046bc6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
|
||||
Date: Wed, 11 Apr 2018 09:19:53 +0200
|
||||
Subject: [PATCH 2/5] Revert "Other repo for OstreeInstaller"
|
||||
Subject: [PATCH 2/3] Revert "Other repo for OstreeInstaller"
|
||||
|
||||
This reverts commit 5c081cb545715c2a912ff50fa57554e89d905868.
|
||||
---
|
||||
@ -12,10 +12,10 @@ This reverts commit 5c081cb545715c2a912ff50fa57554e89d905868.
|
||||
4 files changed, 29 insertions(+), 67 deletions(-)
|
||||
|
||||
diff --git a/pungi/checks.py b/pungi/checks.py
|
||||
index 017fab23..61d42b89 100644
|
||||
index 53fc615e..35390022 100644
|
||||
--- a/pungi/checks.py
|
||||
+++ b/pungi/checks.py
|
||||
@@ -1009,7 +1009,7 @@ def make_schema():
|
||||
@@ -1020,7 +1020,7 @@ def make_schema():
|
||||
"tag_ref": {"type": "boolean"},
|
||||
"ostree_ref": {"type": "string"},
|
||||
},
|
||||
@ -24,7 +24,7 @@ index 017fab23..61d42b89 100644
|
||||
"additionalProperties": False,
|
||||
}),
|
||||
]
|
||||
@@ -1030,6 +1030,7 @@ def make_schema():
|
||||
@@ -1041,6 +1041,7 @@ def make_schema():
|
||||
"template_repo": {"type": "string"},
|
||||
"template_branch": {"type": "string"},
|
||||
},
|
||||
@ -69,10 +69,10 @@ index 587ff2c5..861d9db1 100644
|
||||
output_dir = os.path.join(compose.paths.work.topdir(arch), variant.uid, 'ostree_installer')
|
||||
util.makedirs(os.path.dirname(output_dir))
|
||||
diff --git a/pungi/util.py b/pungi/util.py
|
||||
index 78a9c9be..31e763b5 100644
|
||||
index 65f3fe61..f878febe 100644
|
||||
--- a/pungi/util.py
|
||||
+++ b/pungi/util.py
|
||||
@@ -688,8 +688,6 @@ def get_repo_url(compose, repo, arch='$basearch'):
|
||||
@@ -691,8 +691,6 @@ def get_repo_url(compose, repo, arch='$basearch'):
|
||||
Convert repo to repo URL.
|
||||
|
||||
@param compose - required for access to variants
|
||||
@ -81,7 +81,7 @@ index 78a9c9be..31e763b5 100644
|
||||
@param repo - string or a dict which at least contains 'baseurl' key
|
||||
@param arch - string to be used as arch in repo url
|
||||
"""
|
||||
@@ -700,17 +698,14 @@ def get_repo_url(compose, repo, arch='$basearch'):
|
||||
@@ -703,17 +701,14 @@ def get_repo_url(compose, repo, arch='$basearch'):
|
||||
raise RuntimeError('Baseurl is required in repo dict %s' % str(repo))
|
||||
if '://' not in repo:
|
||||
# this is a variant name
|
||||
@ -103,7 +103,7 @@ index 78a9c9be..31e763b5 100644
|
||||
"""
|
||||
Convert repos to a list of repo URLs.
|
||||
|
||||
@@ -721,11 +716,7 @@ def get_repo_urls(compose, repos, arch='$basearch', logger=None):
|
||||
@@ -724,11 +719,7 @@ def get_repo_urls(compose, repos, arch='$basearch', logger=None):
|
||||
urls = []
|
||||
for repo in repos:
|
||||
repo = get_repo_url(compose, repo, arch=arch)
|
||||
@ -116,7 +116,7 @@ index 78a9c9be..31e763b5 100644
|
||||
return urls
|
||||
|
||||
|
||||
@@ -783,7 +774,7 @@ def get_repo_dicts(repos, logger=None):
|
||||
@@ -786,7 +777,7 @@ def get_repo_dicts(repos, logger=None):
|
||||
repo_dict = get_repo_dict(repo)
|
||||
if repo_dict == {}:
|
||||
if logger:
|
||||
@ -126,7 +126,7 @@ index 78a9c9be..31e763b5 100644
|
||||
repo_dicts.append(repo_dict)
|
||||
return repo_dicts
|
||||
diff --git a/tests/test_ostree_installer_phase.py b/tests/test_ostree_installer_phase.py
|
||||
index 7569e348..25227689 100644
|
||||
index 80e68d42..459ae063 100644
|
||||
--- a/tests/test_ostree_installer_phase.py
|
||||
+++ b/tests/test_ostree_installer_phase.py
|
||||
@@ -14,7 +14,6 @@ sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 079177c5bf498fe21c1f0b03d127bfa25fa09fe0 Mon Sep 17 00:00:00 2001
|
||||
From 1fc1fe8a84417d213a9ed6f787c3a61e0f859df5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
|
||||
Date: Wed, 11 Apr 2018 09:20:51 +0200
|
||||
Subject: [PATCH 3/5] Revert "Ostree can use pkgset repos"
|
||||
Subject: [PATCH 3/3] Revert "Ostree can use pkgset repos"
|
||||
|
||||
This reverts commit c7cc200246300c6a3946b2e3a9f5f7693896a7d6.
|
||||
---
|
||||
@ -31,10 +31,10 @@ index 2918fff8..0550b18c 100644
|
||||
# copy the original config and update before save to a json file
|
||||
new_config = copy.copy(config)
|
||||
diff --git a/pungi/util.py b/pungi/util.py
|
||||
index 31e763b5..9f0aab69 100644
|
||||
index f878febe..d8eac880 100644
|
||||
--- a/pungi/util.py
|
||||
+++ b/pungi/util.py
|
||||
@@ -728,16 +728,19 @@ def _translate_url_to_repo_id(url):
|
||||
@@ -731,16 +731,19 @@ def _translate_url_to_repo_id(url):
|
||||
return ''.join([s if s in list(_REPOID_CHARS) else '_' for s in url])
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ index 31e763b5..9f0aab69 100644
|
||||
"""
|
||||
repo_dict = {}
|
||||
if isinstance(repo, dict):
|
||||
@@ -747,8 +750,10 @@ def get_repo_dict(repo):
|
||||
@@ -750,8 +753,10 @@ def get_repo_dict(repo):
|
||||
if name is None:
|
||||
name = _translate_url_to_repo_id(url)
|
||||
else:
|
||||
@ -72,7 +72,7 @@ index 31e763b5..9f0aab69 100644
|
||||
repo['name'] = name
|
||||
repo['baseurl'] = url
|
||||
return repo
|
||||
@@ -759,24 +764,24 @@ def get_repo_dict(repo):
|
||||
@@ -762,24 +767,24 @@ def get_repo_dict(repo):
|
||||
repo_dict['name'] = _translate_url_to_repo_id(repo)
|
||||
repo_dict['baseurl'] = repo
|
||||
else:
|
||||
@ -128,7 +128,7 @@ index 031a15a4..c73fe126 100644
|
||||
interp = 'python2' if six.PY2 else 'python3'
|
||||
p = subprocess.Popen([interp, PUNGI_CONFIG_VALIDATE, DUMMY_CONFIG],
|
||||
diff --git a/tests/test_ostree_phase.py b/tests/test_ostree_phase.py
|
||||
index ad14eca4..3a9ebf32 100644
|
||||
index c2986bc8..4ce66bbd 100644
|
||||
--- a/tests/test_ostree_phase.py
|
||||
+++ b/tests/test_ostree_phase.py
|
||||
@@ -118,7 +118,7 @@ class OSTreeThreadTest(helpers.PungiTestCase):
|
||||
@ -226,10 +226,10 @@ index ad14eca4..3a9ebf32 100644
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
diff --git a/tests/test_util.py b/tests/test_util.py
|
||||
index 739ea9e1..ab4f3459 100644
|
||||
index 9e247cde..2b93e496 100644
|
||||
--- a/tests/test_util.py
|
||||
+++ b/tests/test_util.py
|
||||
@@ -587,35 +587,43 @@ class GetRepoFuncsTestCase(unittest.TestCase):
|
||||
@@ -624,35 +624,43 @@ class GetRepoFuncsTestCase(unittest.TestCase):
|
||||
self.assertEqual(util.get_repo_urls(self.compose, repos), expect)
|
||||
|
||||
def test_get_repo_dict_from_normal_url(self):
|
||||
|
@ -1,84 +0,0 @@
|
||||
From 97787114f6b081c1761560663dd8b3ad80305def Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kaluza <jkaluza@redhat.com>
|
||||
Date: Wed, 18 Jul 2018 10:22:33 +0200
|
||||
Subject: [PATCH 4/5] Fix Koji search for modules with dash in stream
|
||||
|
||||
MBS replaces the dash by underscore. We have to match that.
|
||||
|
||||
Merges: https://pagure.io/pungi/pull-request/1005
|
||||
Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
|
||||
---
|
||||
pungi/phases/pkgset/sources/source_koji.py | 12 +++++++++---
|
||||
tests/test_pkgset_source_koji.py | 10 +++++-----
|
||||
2 files changed, 14 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/pungi/phases/pkgset/sources/source_koji.py b/pungi/phases/pkgset/sources/source_koji.py
|
||||
index 3381d792..8c76e1ba 100644
|
||||
--- a/pungi/phases/pkgset/sources/source_koji.py
|
||||
+++ b/pungi/phases/pkgset/sources/source_koji.py
|
||||
@@ -114,9 +114,15 @@ def get_koji_modules(compose, koji_wrapper, module_info_str):
|
||||
|
||||
module_info = variant_dict_from_str(compose, module_info_str)
|
||||
|
||||
- # we need to format the query string to koji reguirements
|
||||
- query_str = "%s-%s-%s.%s" % (module_info["name"], module_info["stream"],
|
||||
- module_info.get("version", "*"), module_info.get("context", "*"))
|
||||
+ # We need to format the query string to koji reguirements. The
|
||||
+ # transformation to NVR for use in Koji has to match what MBS is doing when
|
||||
+ # importing the build.
|
||||
+ query_str = "%s-%s-%s.%s" % (
|
||||
+ module_info["name"],
|
||||
+ module_info["stream"].replace("-", "_"),
|
||||
+ module_info.get("version", "*"),
|
||||
+ module_info.get("context", "*"),
|
||||
+ )
|
||||
query_str = query_str.replace('*.*', '*')
|
||||
|
||||
koji_builds = koji_proxy.search(query_str, "build", "glob")
|
||||
diff --git a/tests/test_pkgset_source_koji.py b/tests/test_pkgset_source_koji.py
|
||||
index b6a85f93..a24d2e27 100644
|
||||
--- a/tests/test_pkgset_source_koji.py
|
||||
+++ b/tests/test_pkgset_source_koji.py
|
||||
@@ -341,7 +341,7 @@ class TestGetPackageSetFromKoji(helpers.PungiTestCase):
|
||||
self.assertEqual(pkgsets, expected)
|
||||
|
||||
def test_get_koji_modules(self):
|
||||
- mock_build_ids = [{'id': 1065873, 'name': 'testmodule2-master-20180406051653.96c371af'}]
|
||||
+ mock_build_ids = [{'id': 1065873, 'name': 'testmodule2-master_dash-20180406051653.96c371af'}]
|
||||
mock_extra = {
|
||||
'typeinfo': {
|
||||
'module': {
|
||||
@@ -355,10 +355,10 @@ class TestGetPackageSetFromKoji(helpers.PungiTestCase):
|
||||
'epoch': None,
|
||||
'extra': mock_extra,
|
||||
'name': 'testmodule2',
|
||||
- 'nvr': 'testmodule2-master-20180406051653.2e6f5e0a',
|
||||
+ 'nvr': 'testmodule2-master_dash-20180406051653.2e6f5e0a',
|
||||
'release': '20180406051653.2e6f5e0a',
|
||||
'state': 1,
|
||||
- 'version': 'master',
|
||||
+ 'version': 'master_dash',
|
||||
}
|
||||
]
|
||||
mock_archives = [
|
||||
@@ -392,7 +392,7 @@ class TestGetPackageSetFromKoji(helpers.PungiTestCase):
|
||||
self.koji_wrapper.koji_proxy.listArchives.return_value = mock_archives
|
||||
self.koji_wrapper.koji_proxy.listRPMs.return_value = mock_rpms
|
||||
|
||||
- module_info_str = "testmodule2:master:20180406051653:96c371af"
|
||||
+ module_info_str = "testmodule2:master-dash:20180406051653:96c371af"
|
||||
result = source_koji.get_koji_modules(self.compose, self.koji_wrapper, module_info_str)
|
||||
|
||||
assert type(result) is list
|
||||
@@ -405,7 +405,7 @@ class TestGetPackageSetFromKoji(helpers.PungiTestCase):
|
||||
assert "stream" in module
|
||||
assert "context" in module
|
||||
|
||||
- expected_query = "testmodule2-master-20180406051653.96c371af"
|
||||
+ expected_query = "testmodule2-master_dash-20180406051653.96c371af"
|
||||
self.koji_wrapper.koji_proxy.search.assert_called_once_with(expected_query, "build",
|
||||
"glob")
|
||||
self.koji_wrapper.koji_proxy.getBuild.assert_called_once_with(mock_build_ids[0]["id"])
|
||||
--
|
||||
2.14.4
|
||||
|
@ -1,80 +0,0 @@
|
||||
From 346bf883593e3d4a3531c1dce15abbc696130c6e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
|
||||
Date: Wed, 4 Jul 2018 09:16:51 +0200
|
||||
Subject: [PATCH 5/5] Fix tests for DNF 3
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The configuration for modules has changed.
|
||||
|
||||
Lookaside handling has changed, and there are now test failures. This
|
||||
is a not a bug in DNF, so we need to fix it on our side.
|
||||
|
||||
Relates: https://bugzilla.redhat.com/show_bug.cgi?id=1603123
|
||||
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
|
||||
---
|
||||
pungi/gather_dnf.py | 19 ++++++++++++++++++-
|
||||
tests/test_gather.py | 6 +++++-
|
||||
2 files changed, 23 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pungi/gather_dnf.py b/pungi/gather_dnf.py
|
||||
index 328d69c8..1d6c510a 100644
|
||||
--- a/pungi/gather_dnf.py
|
||||
+++ b/pungi/gather_dnf.py
|
||||
@@ -227,10 +227,27 @@ class Gather(GatherBase):
|
||||
if not package_list:
|
||||
return []
|
||||
|
||||
+ # The list can contain packages from lookaside and outside of
|
||||
+ # lookaside. If the package is in both, we want to prefer the version
|
||||
+ # from lookaside. This can be achieved by removing any package that is
|
||||
+ # also in lookaside from the list.
|
||||
+ lookaside_pkgs = set()
|
||||
+ for pkg in package_list:
|
||||
+ if pkg.repoid in self.opts.lookaside_repos:
|
||||
+ lookaside_pkgs.add("{0.name}-{0.evr}".format(pkg))
|
||||
+
|
||||
if self.opts.greedy_method == "all":
|
||||
return list(package_list)
|
||||
|
||||
- all_pkgs = list(package_list)
|
||||
+ all_pkgs = []
|
||||
+ for pkg in package_list:
|
||||
+ # Remove packages that are also in lookaside
|
||||
+ if (
|
||||
+ "{0.name}-{0.evr}".format(pkg) not in lookaside_pkgs
|
||||
+ or pkg.repoid in self.opts.lookaside_repos
|
||||
+ ):
|
||||
+ all_pkgs.append(pkg)
|
||||
+
|
||||
native_pkgs = self.q_native_binary_packages.filter(pkg=all_pkgs).apply()
|
||||
multilib_pkgs = self.q_multilib_binary_packages.filter(pkg=all_pkgs).apply()
|
||||
|
||||
diff --git a/tests/test_gather.py b/tests/test_gather.py
|
||||
index 25dfc399..60085b89 100644
|
||||
--- a/tests/test_gather.py
|
||||
+++ b/tests/test_gather.py
|
||||
@@ -22,6 +22,7 @@ os.environ['PATH'] = '%s:%s' % (BINDIR, os.environ['PATH'])
|
||||
|
||||
from pungi.wrappers.pungi import PungiWrapper
|
||||
try:
|
||||
+ from dnf import __version__ as dnf_version
|
||||
from pungi.dnf_wrapper import DnfWrapper, Conf
|
||||
from pungi.gather_dnf import Gather, GatherOptions, PkgFlag
|
||||
HAS_DNF = True
|
||||
@@ -1810,7 +1811,10 @@ class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
|
||||
conf = Conf(base_arch)
|
||||
conf.persistdir = persistdir
|
||||
conf.cachedir = self.cachedir
|
||||
- conf.modulesdir = os.path.join(persistdir, 'modules.d')
|
||||
+ if int(dnf_version.split('.')[0]) < 3:
|
||||
+ conf.modulesdir = os.path.join(persistdir, 'modules.d')
|
||||
+ else:
|
||||
+ conf.modulesdir._set(os.path.join(persistdir, 'modules.d'))
|
||||
if exclude:
|
||||
conf.exclude = exclude
|
||||
dnf = DnfWrapper(conf)
|
||||
--
|
||||
2.14.4
|
||||
|
32
pungi.spec
32
pungi.spec
@ -1,6 +1,6 @@
|
||||
Name: pungi
|
||||
Version: 4.1.26
|
||||
Release: 2%{?dist}
|
||||
Version: 4.1.27
|
||||
Release: 1%{?dist}
|
||||
Summary: Distribution compose tool
|
||||
|
||||
Group: Development/Tools
|
||||
@ -10,8 +10,6 @@ Source0: https://pagure.io/releases/%{name}/%{name}-%{version}.tar.bz2
|
||||
Patch0: 0001-Revert-Move-ostree-phase-and-pipelines-for-running-p.patch
|
||||
Patch1: 0002-Revert-Other-repo-for-OstreeInstaller.patch
|
||||
Patch2: 0003-Revert-Ostree-can-use-pkgset-repos.patch
|
||||
Patch3: 0004-Fix-Koji-search-for-modules-with-dash-in-stream.patch
|
||||
Patch4: 0005-Fix-tests-for-DNF-3.patch
|
||||
|
||||
BuildRequires: python3-nose
|
||||
BuildRequires: python3-mock
|
||||
@ -75,6 +73,7 @@ Requires: libmodulemd >= 1.3.0
|
||||
Requires: python3-gobject
|
||||
Requires: python3-pdc-client
|
||||
Requires: python3-createrepo_c
|
||||
Requires: python3-PyYAML
|
||||
|
||||
Requires: python3-%{name} = %{version}-%{release}
|
||||
|
||||
@ -181,6 +180,31 @@ nosetests-3 --exe
|
||||
%{_bindir}/%{name}-wait-for-signed-ostree-handler
|
||||
|
||||
%changelog
|
||||
* Fri Aug 17 2018 Lubomír Sedlář <lsedlar@redhat.com> - 4.1.27-1
|
||||
- extra-iso: Rename test data file (lsedlar)
|
||||
- createiso: Use correct python version (lsedlar)
|
||||
- ostree: Update tests for working with YAML file (lsedlar)
|
||||
- pungi/ostree: Convert rpm-ostree YAML to JSON (walters)
|
||||
- createrepo: Allow passing arbitrary arguments (lsedlar)
|
||||
- gather: Get modular packages from fus (lsedlar)
|
||||
- util: Remove escaping spaces from volume ID (lsedlar)
|
||||
- Allow removing non-alnum chars from volid (lsedlar)
|
||||
- extra-isos: Include treeinfo pointing to all variants (lsedlar)
|
||||
- createiso: Use unique paths for breaking hardlinks (lsedlar)
|
||||
- gather: Detect hybrid variant with additional packages (lsedlar)
|
||||
- Include exact version of pungi in the logs (mboddu)
|
||||
- gather: Allow empty result for gather (lsedlar)
|
||||
- gather: Add langpacks in hybrid solver (lsedlar)
|
||||
- comps: Add get_langpacks function (lsedlar)
|
||||
- pungi-legacy: Add --joliet-long option (lsedlar)
|
||||
- gather: Early exit for non-comps sources (lsedlar)
|
||||
- tests: Use unittest2 when available (lsedlar)
|
||||
- buildinstall: Make output world readable (lsedlar)
|
||||
- buildinstall: Copy file without preserving owner (lsedlar)
|
||||
- Report failed failable deliverables as errors (lsedlar)
|
||||
- Stop importing PDCClient (lsedlar)
|
||||
- spec: build require python-multilib (lsedlar)
|
||||
|
||||
* Fri Jul 20 2018 Lubomír Sedlář <lsedlar@redhat.com> - 4.1.26-2
|
||||
- Backport patch for DNF 3 compatibility
|
||||
- Fix querying Koji about modules with dash in stream
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (pungi-4.1.26.tar.bz2) = 8b6aef74ea27b6e64f8d64297f0f6014dd7280f74754cf955f3e9680122e987ca0dedde5c96eeccb105958ced40133d62d9e52aa19097f33067ada9275d8dcd4
|
||||
SHA512 (pungi-4.1.27.tar.bz2) = 110da14aec38fba0c6b07a843fc6c67e261d06258cfea291f513736d489f3a4a16d7144c5dd8986ed8d36d2b8022ae9f78fd5f07e8cde1a13ea6aacf636c3b8e
|
||||
|
Loading…
Reference in New Issue
Block a user