Release 4.1.26

This commit is contained in:
Lubomír Sedlář 2018-07-16 10:52:39 +02:00
parent ad7a42e1cf
commit 900266f1e1
9 changed files with 125 additions and 264 deletions

View File

@ -1,21 +1,24 @@
From 622ba38a84d3e748ee1fa8b278f22af74c8aa393 Mon Sep 17 00:00:00 2001
From a6c0cf38c05e67e616a424dad16194d5de36134a 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] Skip tests involving lookaside with new DNF
Subject: [PATCH] Fix tests for DNF 3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
DNF 3 seems to work differently than previous versions in terms of
handling lookaside. Disable the the tests for now.
The configuration for modules has changed.
Lookaside handling has changed, and there are now test failures. This
could be a bug in DNF, or maybe Pungi is not setting things up
correctly. As a temporary workaround we can skip the tests.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
---
tests/test_gather.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
tests/test_gather.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests/test_gather.py b/tests/test_gather.py
index 25dfc399..2ea3e324 100644
index 25dfc399..8ccbf2f8 100644
--- a/tests/test_gather.py
+++ b/tests/test_gather.py
@@ -22,6 +22,7 @@ os.environ['PATH'] = '%s:%s' % (BINDIR, os.environ['PATH'])
@ -26,15 +29,19 @@ index 25dfc399..2ea3e324 100644
from pungi.dnf_wrapper import DnfWrapper, Conf
from pungi.gather_dnf import Gather, GatherOptions, PkgFlag
HAS_DNF = True
@@ -1810,7 +1811,6 @@ class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
@@ -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)
@@ -1888,6 +1888,7 @@ class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
@@ -1888,6 +1892,7 @@ class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
"dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm",
])
@ -42,7 +49,7 @@ index 25dfc399..2ea3e324 100644
def test_firefox_selfhosting_with_krb5_lookaside(self):
super(DNFDepsolvingTestCase, self).test_firefox_selfhosting_with_krb5_lookaside()
self.assertFlags("dummy-krb5-devel-1.10-5.x86_64", [PkgFlag.lookaside])
@@ -1910,3 +1911,7 @@ class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
@@ -1910,3 +1915,7 @@ class DNFDepsolvingTestCase(DepsolvingBase, unittest.TestCase):
])
self.assertItemsEqual(pkg_map["debuginfo"], [
])

View File

@ -1,7 +1,7 @@
From c6bb04041867c242629c9becd83d47f2722b2432 Mon Sep 17 00:00:00 2001
From 9dc20c455df71f95a7f131ac10b7013042c5f71d 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/6] 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.
@ -15,10 +15,10 @@ This reverts commit 660c04368ba1abed310f121d01f0fa029eea5f11.
delete mode 100644 pungi/phases/weaver.py
diff --git a/bin/pungi-koji b/bin/pungi-koji
index b3b49de5..e797ce86 100755
index 42dcb424..f6971591 100755
--- a/bin/pungi-koji
+++ b/bin/pungi-koji
@@ -365,27 +365,41 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
@@ -367,27 +367,41 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
# Store the password
compose.conf["signing_key_password"] = signing_key_password
@ -71,7 +71,7 @@ index b3b49de5..e797ce86 100755
# write treeinfo before ISOs are created
for variant in compose.get_variants():
@@ -401,17 +415,12 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
@@ -403,17 +417,12 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
pungi.metadata.write_media_repo(compose, arch, variant, timestamp)
# Start all phases for image artifacts
@ -95,7 +95,7 @@ index b3b49de5..e797ce86 100755
image_checksum_phase.start()
image_checksum_phase.stop()
@@ -420,6 +429,7 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
@@ -422,6 +431,7 @@ def run_compose(compose, create_latest_link=True, latest_link_status=None):
compose.im.dump(compose.paths.compose.metadata("images.json"))
osbs_phase.dump_metadata()
@ -615,5 +615,5 @@ index ba80afe3..a8b9469a 100644
if __name__ == "__main__":
--
2.14.3
2.14.4

View File

@ -1,21 +1,21 @@
From 376f52f1c18e5c8500fa8afd9c91ba9a6e4c4ae0 Mon Sep 17 00:00:00 2001
From 883a69645b92b243787312af232aeb804cf53292 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/6] Revert "Other repo for OstreeInstaller"
Subject: [PATCH 2/3] Revert "Other repo for OstreeInstaller"
This reverts commit 5c081cb545715c2a912ff50fa57554e89d905868.
---
pungi/checks.py | 3 ++-
pungi/phases/ostree_installer.py | 11 ++------
pungi/util.py | 21 +++++----------
tests/test_ostree_installer_phase.py | 50 +++++++++++++-----------------------
4 files changed, 28 insertions(+), 57 deletions(-)
pungi/checks.py | 3 +-
pungi/phases/ostree_installer.py | 18 ++----------
pungi/util.py | 21 ++++----------
tests/test_ostree_installer_phase.py | 54 +++++++++++++-----------------------
4 files changed, 29 insertions(+), 67 deletions(-)
diff --git a/pungi/checks.py b/pungi/checks.py
index 2ddd7164..03cab460 100644
index 017fab23..61d42b89 100644
--- a/pungi/checks.py
+++ b/pungi/checks.py
@@ -998,7 +998,7 @@ def make_schema():
@@ -1009,7 +1009,7 @@ def make_schema():
"tag_ref": {"type": "boolean"},
"ostree_ref": {"type": "string"},
},
@ -24,7 +24,7 @@ index 2ddd7164..03cab460 100644
"additionalProperties": False,
}),
]
@@ -1019,6 +1019,7 @@ def make_schema():
@@ -1030,6 +1030,7 @@ def make_schema():
"template_repo": {"type": "string"},
"template_branch": {"type": "string"},
},
@ -33,7 +33,7 @@ index 2ddd7164..03cab460 100644
}),
diff --git a/pungi/phases/ostree_installer.py b/pungi/phases/ostree_installer.py
index 2eac49f7..abcb1572 100644
index 587ff2c5..861d9db1 100644
--- a/pungi/phases/ostree_installer.py
+++ b/pungi/phases/ostree_installer.py
@@ -9,7 +9,7 @@ from kobo import shortcuts
@ -45,27 +45,34 @@ index 2eac49f7..abcb1572 100644
from ..wrappers import kojiwrapper, iso, lorax, scm
@@ -62,14 +62,7 @@ class OstreeInstallerThread(WorkerThread):
@@ -62,21 +62,7 @@ class OstreeInstallerThread(WorkerThread):
self.pool.log_info('[BEGIN] %s' % msg)
self.logdir = compose.paths.log.topdir('%s/%s/ostree_installer-%s' % (arch, variant, self.num))
- repo_baseurl = compose.paths.work.arch_repo('$basearch', create_dir=False)
- comps_baseurl = compose.paths.work.comps_repo('$basearch', variant=variant, create_dir=False)
- repos = get_repo_urls(None, # compose==None. Special value says that method should ignore deprecated variant-type repo
- shortcuts.force_list(config['repo'])
- + shortcuts.force_list(translate_path(compose, repo_baseurl))
- + shortcuts.force_list(translate_path(compose, comps_baseurl)),
- + shortcuts.force_list(translate_path(compose, repo_baseurl)),
- arch=arch,
- logger=self.pool)
- if compose.has_comps:
- repos.append(
- translate_path(
- compose,
- compose.paths.work.comps_repo(
- '$basearch', variant=variant, create_dir=False
- ),
- )
- )
+ repos = get_repo_urls(compose, shortcuts.force_list(config['repo']), arch=arch)
repos = [url.replace('$arch', arch) for url in repos]
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 ea0f6e48..3150e26c 100644
index 78a9c9be..31e763b5 100644
--- a/pungi/util.py
+++ b/pungi/util.py
@@ -686,8 +686,6 @@ def get_repo_url(compose, repo, arch='$basearch'):
@@ -688,8 +688,6 @@ def get_repo_url(compose, repo, arch='$basearch'):
Convert repo to repo URL.
@param compose - required for access to variants
@ -74,7 +81,7 @@ index ea0f6e48..3150e26c 100644
@param repo - string or a dict which at least contains 'baseurl' key
@param arch - string to be used as arch in repo url
"""
@@ -698,17 +696,14 @@ def get_repo_url(compose, repo, arch='$basearch'):
@@ -700,17 +698,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
@ -96,7 +103,7 @@ index ea0f6e48..3150e26c 100644
"""
Convert repos to a list of repo URLs.
@@ -719,11 +714,7 @@ def get_repo_urls(compose, repos, arch='$basearch', logger=None):
@@ -721,11 +716,7 @@ def get_repo_urls(compose, repos, arch='$basearch', logger=None):
urls = []
for repo in repos:
repo = get_repo_url(compose, repo, arch=arch)
@ -109,7 +116,7 @@ index ea0f6e48..3150e26c 100644
return urls
@@ -781,7 +772,7 @@ def get_repo_dicts(repos, logger=None):
@@ -783,7 +774,7 @@ def get_repo_dicts(repos, logger=None):
repo_dict = get_repo_dict(repo)
if repo_dict == {}:
if logger:
@ -119,7 +126,7 @@ index ea0f6e48..3150e26c 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 ee3294e5..f44ca4ef 100644
index 7569e348..25227689 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__), '..'))
@ -130,7 +137,7 @@ index ee3294e5..f44ca4ef 100644
LOG_PATH = 'logs/x86_64/Everything/ostree_installer-1'
@@ -96,9 +95,6 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -98,9 +97,6 @@ class OstreeThreadTest(helpers.PungiTestCase):
'koji_profile': 'koji',
'runroot_tag': 'rrt',
'image_volid_formats': ['{release_short}-{variant}-{arch}'],
@ -140,7 +147,7 @@ index ee3294e5..f44ca4ef 100644
})
def assertImageAdded(self, compose, ImageCls, iso):
@@ -125,7 +121,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -127,7 +123,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
]
for s in force_list(sources):
@ -149,7 +156,7 @@ index ee3294e5..f44ca4ef 100644
lorax_cmd.append('--variant=Everything')
lorax_cmd.append('--nomacboot')
@@ -179,7 +175,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -182,7 +178,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
self.compose.supported = False
pool = mock.Mock()
cfg = {
@ -158,7 +165,7 @@ index ee3294e5..f44ca4ef 100644
'release': '20160321.n.0',
}
koji = KojiWrapper.return_value
@@ -197,8 +193,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -200,8 +196,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
t.process((self.compose, self.compose.variants['Everything'], 'x86_64', cfg), 1)
self.assertRunrootCall(koji,
@ -168,7 +175,7 @@ index ee3294e5..f44ca4ef 100644
cfg['release'],
extra=['--logfile=%s/%s/lorax.log' % (self.topdir, LOG_PATH)])
self.assertIsoLinked(link, get_file_size, get_mtime, final_iso_path)
@@ -233,12 +228,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -236,12 +231,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
t.process((self.compose, self.compose.variants['Everything'], 'x86_64', cfg), 1)
@ -182,7 +189,7 @@ index ee3294e5..f44ca4ef 100644
extra=['--logfile=%s/%s/lorax.log' % (self.topdir, LOG_PATH)])
self.assertIsoLinked(link, get_file_size, get_mtime, final_iso_path)
self.assertImageAdded(self.compose, ImageCls, iso)
@@ -257,7 +247,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -260,7 +250,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
cfg = {
'release': '20160321.n.0',
'repo': [
@ -191,7 +198,7 @@ index ee3294e5..f44ca4ef 100644
'https://example.com/extra-repo1.repo',
'https://example.com/extra-repo2.repo',
],
@@ -274,10 +264,9 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -277,10 +267,9 @@ class OstreeThreadTest(helpers.PungiTestCase):
t.process((self.compose, self.compose.variants['Everything'], 'x86_64', cfg), 1)
sources = [
@ -204,7 +211,7 @@ index ee3294e5..f44ca4ef 100644
]
self.assertRunrootCall(koji, sources, cfg['release'], isfinal=True,
@@ -296,8 +285,8 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -299,8 +288,8 @@ class OstreeThreadTest(helpers.PungiTestCase):
cfg = {
'release': '20160321.n.0',
'repo': [
@ -215,7 +222,7 @@ index ee3294e5..f44ca4ef 100644
'https://example.com/extra-repo1.repo',
'https://example.com/extra-repo2.repo',
],
@@ -314,10 +303,10 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -317,10 +306,10 @@ class OstreeThreadTest(helpers.PungiTestCase):
t.process((self.compose, self.compose.variants['Everything'], 'x86_64', cfg), 1)
sources = [
@ -229,7 +236,18 @@ index ee3294e5..f44ca4ef 100644
]
self.assertRunrootCall(koji, sources, cfg['release'], isfinal=True,
@@ -368,7 +357,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -353,9 +342,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
t.process((self.compose, self.compose.variants['Everything'], 'x86_64', cfg), 1)
- sources = [
- 'http://example.com/work/$basearch/repo',
- ]
+ sources = []
self.assertRunrootCall(koji, sources, cfg['release'], isfinal=True,
extra=['--logfile=%s/%s/lorax.log' % (self.topdir, LOG_PATH)])
@@ -405,7 +392,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
get_dir_from_scm):
pool = mock.Mock()
cfg = {
@ -238,7 +256,7 @@ index ee3294e5..f44ca4ef 100644
'release': '20160321.n.0',
'add_template': ['some_file.txt'],
'add_arch_template': ['other_file.txt'],
@@ -395,8 +384,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -432,8 +419,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
'branch': 'f24', 'dir': '.'},
templ_dir, logger=pool._logger)])
self.assertRunrootCall(koji,
@ -248,7 +266,7 @@ index ee3294e5..f44ca4ef 100644
cfg['release'],
isfinal=True,
extra=['--add-template=%s/some_file.txt' % templ_dir,
@@ -417,7 +405,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -454,7 +440,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
get_file_size, get_mtime, ImageCls, copy_all):
pool = mock.Mock()
cfg = {
@ -257,7 +275,7 @@ index ee3294e5..f44ca4ef 100644
'release': '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN',
"installpkgs": ["fedora-productimg-atomic"],
"add_template": ["/spin-kickstarts/atomic-installer/lorax-configure-repo.tmpl"],
@@ -449,8 +437,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -486,8 +472,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
self.assertRunrootCall(
koji,
@ -267,7 +285,7 @@ index ee3294e5..f44ca4ef 100644
'20151203.t.0',
isfinal=True,
extra=['--installpkgs=fedora-productimg-atomic',
@@ -479,7 +466,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -516,7 +501,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
get_file_size, get_mtime, ImageCls, copy_all):
pool = mock.Mock()
cfg = {
@ -276,7 +294,7 @@ index ee3294e5..f44ca4ef 100644
'release': None,
"installpkgs": ["fedora-productimg-atomic"],
"add_template": ["/spin-kickstarts/atomic-installer/lorax-configure-repo.tmpl"],
@@ -511,8 +498,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
@@ -548,8 +533,7 @@ class OstreeThreadTest(helpers.PungiTestCase):
self.assertRunrootCall(
koji,
@ -287,5 +305,5 @@ index ee3294e5..f44ca4ef 100644
isfinal=True,
extra=['--installpkgs=fedora-productimg-atomic',
--
2.14.3
2.14.4

View File

@ -1,7 +1,7 @@
From 836750b9c53aa4c6330b986e7fb28f92d940df55 Mon Sep 17 00:00:00 2001
From 079177c5bf498fe21c1f0b03d127bfa25fa09fe0 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/6] 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 3150e26c..7cfbb4e6 100644
index 31e763b5..9f0aab69 100644
--- a/pungi/util.py
+++ b/pungi/util.py
@@ -726,16 +726,19 @@ def _translate_url_to_repo_id(url):
@@ -728,16 +728,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 3150e26c..7cfbb4e6 100644
"""
repo_dict = {}
if isinstance(repo, dict):
@@ -745,8 +748,10 @@ def get_repo_dict(repo):
@@ -747,8 +750,10 @@ def get_repo_dict(repo):
if name is None:
name = _translate_url_to_repo_id(url)
else:
@ -72,7 +72,7 @@ index 3150e26c..7cfbb4e6 100644
repo['name'] = name
repo['baseurl'] = url
return repo
@@ -757,24 +762,24 @@ def get_repo_dict(repo):
@@ -759,24 +764,24 @@ def get_repo_dict(repo):
repo_dict['name'] = _translate_url_to_repo_id(repo)
repo_dict['baseurl'] = repo
else:
@ -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 1f22b63e..322301ff 100644
index 739ea9e1..ab4f3459 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -588,35 +588,43 @@ class GetRepoFuncsTestCase(unittest.TestCase):
@@ -587,35 +587,43 @@ class GetRepoFuncsTestCase(unittest.TestCase):
self.assertEqual(util.get_repo_urls(self.compose, repos), expect)
def test_get_repo_dict_from_normal_url(self):
@ -283,5 +283,5 @@ index 1f22b63e..322301ff 100644
--
2.14.3
2.14.4

View File

@ -1,107 +0,0 @@
From c8e03cfba196719e80c953c3d197653ef84716ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
Date: Tue, 29 May 2018 08:38:09 +0200
Subject: [PATCH 4/6] kojiwrapper: Make result of runroot world readable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The commands in runroot run as root every time. If they create files
that are not readable to other users, the reset of compose could have
problems with it if it does not run as root too. Particularly updates
composes in Bodhi run under apache user.
Relates: https://pagure.io/pungi/issue/932
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
---
pungi/phases/ostree_installer.py | 3 ++-
pungi/wrappers/kojiwrapper.py | 7 ++++++-
tests/test_koji_wrapper.py | 18 ++++++++++++++++++
tests/test_ostree_installer_phase.py | 3 ++-
4 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/pungi/phases/ostree_installer.py b/pungi/phases/ostree_installer.py
index abcb1572..572edbbb 100644
--- a/pungi/phases/ostree_installer.py
+++ b/pungi/phases/ostree_installer.py
@@ -174,7 +174,8 @@ class OstreeInstallerThread(WorkerThread):
channel=runroot_channel,
use_shell=True, task_id=True,
packages=packages, mounts=[compose.topdir],
- weight=compose.conf['runroot_weights'].get('ostree_installer'))
+ weight=compose.conf['runroot_weights'].get('ostree_installer'),
+ destdir=output_dir)
output = koji.run_runroot_cmd(koji_cmd, log_file=log_file)
if output["retcode"] != 0:
raise RuntimeError("Runroot task failed: %s. See %s for more details."
diff --git a/pungi/wrappers/kojiwrapper.py b/pungi/wrappers/kojiwrapper.py
index f89640ca..b8d56791 100644
--- a/pungi/wrappers/kojiwrapper.py
+++ b/pungi/wrappers/kojiwrapper.py
@@ -66,7 +66,9 @@ class KojiWrapper(object):
def _get_cmd(self, *args):
return ["koji", "--profile=%s" % self.profile] + list(args)
- def get_runroot_cmd(self, target, arch, command, quiet=False, use_shell=True, channel=None, packages=None, mounts=None, weight=None, task_id=True, new_chroot=False):
+ def get_runroot_cmd(self, target, arch, command, quiet=False, use_shell=True,
+ channel=None, packages=None, mounts=None, weight=None,
+ task_id=True, new_chroot=False, destdir=None):
cmd = self._get_cmd("runroot")
if quiet:
@@ -109,6 +111,9 @@ class KojiWrapper(object):
# HACK: remove rpmdb and yum cache
command = "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; " + command
+
+ if destdir:
+ command += "; chmod a+r %s" % shlex_quote(destdir)
cmd.append(command)
return cmd
diff --git a/tests/test_koji_wrapper.py b/tests/test_koji_wrapper.py
index 7bf13773..4a14aed6 100644
--- a/tests/test_koji_wrapper.py
+++ b/tests/test_koji_wrapper.py
@@ -416,6 +416,24 @@ class RunrootKojiWrapperTest(KojiWrapperBaseTestCase):
'--task-id', '--weight=1000', '--package=some_other_package',
'--package=lorax', '--mount=/tmp'])
+ def test_with_destdir(self):
+ cmd = self.koji.get_runroot_cmd('tgt', 's390x', ['/bin/echo', '&'],
+ quiet=True, channel='chan',
+ packages=['lorax', 'some_other_package'],
+ mounts=['/tmp'], weight=1000, destdir="/output dir")
+ self.assertEqual(len(cmd), 14)
+ self.assertEqual(cmd[:3], ['koji', '--profile=custom-koji', 'runroot'])
+ self.assertEqual(cmd[-3], 'tgt')
+ self.assertEqual(cmd[-2], 's390x')
+ self.assertEqual(
+ cmd[-1],
+ "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&'; chmod a+r '/output dir'"
+ )
+ self.assertItemsEqual(cmd[3:-3],
+ ['--channel-override=chan', '--quiet', '--use-shell',
+ '--task-id', '--weight=1000', '--package=some_other_package',
+ '--package=lorax', '--mount=/tmp'])
+
@mock.patch('pungi.wrappers.kojiwrapper.run')
def test_run_runroot_cmd_no_task_id(self, run):
cmd = ['koji', 'runroot']
diff --git a/tests/test_ostree_installer_phase.py b/tests/test_ostree_installer_phase.py
index f44ca4ef..859b18da 100644
--- a/tests/test_ostree_installer_phase.py
+++ b/tests/test_ostree_installer_phase.py
@@ -142,7 +142,8 @@ class OstreeThreadTest(helpers.PungiTestCase):
'rm -rf %s && %s' % (outdir, ' '.join(lorax_cmd)),
channel=None, mounts=[self.topdir],
packages=['pungi', 'lorax', 'ostree'],
- task_id=True, use_shell=True, weight=weight)])
+ task_id=True, use_shell=True, weight=weight,
+ destdir=outdir)])
self.assertEqual(koji.run_runroot_cmd.call_args_list,
[mock.call(koji.get_runroot_cmd.return_value,
log_file='%s/%s/runroot.log' % (self.topdir, LOG_PATH))])
--
2.14.3

View File

@ -1,43 +0,0 @@
From 80cb233b2225abd8fcb687aa61a522e6e8280617 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
Date: Thu, 31 May 2018 14:50:03 +0200
Subject: [PATCH 5/6] kojiwrapper: Don't mark runroot as successful by chmod
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
---
pungi/wrappers/kojiwrapper.py | 2 +-
tests/test_koji_wrapper.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/pungi/wrappers/kojiwrapper.py b/pungi/wrappers/kojiwrapper.py
index b8d56791..bcfb5303 100644
--- a/pungi/wrappers/kojiwrapper.py
+++ b/pungi/wrappers/kojiwrapper.py
@@ -113,7 +113,7 @@ class KojiWrapper(object):
command = "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; " + command
if destdir:
- command += "; chmod a+r %s" % shlex_quote(destdir)
+ command += " && chmod a+r %s" % shlex_quote(destdir)
cmd.append(command)
return cmd
diff --git a/tests/test_koji_wrapper.py b/tests/test_koji_wrapper.py
index 4a14aed6..30037b27 100644
--- a/tests/test_koji_wrapper.py
+++ b/tests/test_koji_wrapper.py
@@ -427,7 +427,7 @@ class RunrootKojiWrapperTest(KojiWrapperBaseTestCase):
self.assertEqual(cmd[-2], 's390x')
self.assertEqual(
cmd[-1],
- "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&'; chmod a+r '/output dir'"
+ "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&' && chmod a+r '/output dir'"
)
self.assertItemsEqual(cmd[3:-3],
['--channel-override=chan', '--quiet', '--use-shell',
--
2.14.3

View File

@ -1,44 +0,0 @@
From 210037ad48aa7f91d0391dc7c9330d4fd5c7172e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= <lsedlar@redhat.com>
Date: Mon, 4 Jun 2018 08:31:08 +0200
Subject: [PATCH 6/6] kojiwrapper: Call chmod recursively
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Related: https://pagure.io/pungi/issue/932
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
---
pungi/wrappers/kojiwrapper.py | 2 +-
tests/test_koji_wrapper.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/pungi/wrappers/kojiwrapper.py b/pungi/wrappers/kojiwrapper.py
index bcfb5303..abcdecb9 100644
--- a/pungi/wrappers/kojiwrapper.py
+++ b/pungi/wrappers/kojiwrapper.py
@@ -113,7 +113,7 @@ class KojiWrapper(object):
command = "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; " + command
if destdir:
- command += " && chmod a+r %s" % shlex_quote(destdir)
+ command += " && chmod -R a+r %s" % shlex_quote(destdir)
cmd.append(command)
return cmd
diff --git a/tests/test_koji_wrapper.py b/tests/test_koji_wrapper.py
index 30037b27..0f20562a 100644
--- a/tests/test_koji_wrapper.py
+++ b/tests/test_koji_wrapper.py
@@ -427,7 +427,7 @@ class RunrootKojiWrapperTest(KojiWrapperBaseTestCase):
self.assertEqual(cmd[-2], 's390x')
self.assertEqual(
cmd[-1],
- "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&' && chmod a+r '/output dir'"
+ "rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&' && chmod -R a+r '/output dir'"
)
self.assertItemsEqual(cmd[3:-3],
['--channel-override=chan', '--quiet', '--use-shell',
--
2.14.3

View File

@ -1,6 +1,6 @@
Name: pungi
Version: 4.1.25
Release: 7%{?dist}
Version: 4.1.26
Release: 1%{?dist}
Summary: Distribution compose tool
Group: Development/Tools
@ -10,10 +10,7 @@ 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-kojiwrapper-Make-result-of-runroot-world-readable.patch
Patch4: 0005-kojiwrapper-Don-t-mark-runroot-as-successful-by-chmo.patch
Patch5: 0006-kojiwrapper-Call-chmod-recursively.patch
Patch6: 0001-Skip-tests-involving-lookaside-with-new-DNF.patch
Patch3: 0001-Fix-tests-for-DNF-3.patch
BuildRequires: python3-nose
BuildRequires: python3-mock
@ -41,6 +38,7 @@ BuildRequires: python3-PyYAML
BuildRequires: libmodulemd >= 1.3.0
BuildRequires: python3-gobject
BuildRequires: python3-pdc-client
BuildRequires: python3-createrepo_c
#deps for doc building
BuildRequires: python3-sphinx, texlive-collection-fontsrecommended
@ -75,6 +73,7 @@ Requires: python3-koji
Requires: libmodulemd >= 1.3.0
Requires: python3-gobject
Requires: python3-pdc-client
Requires: python3-createrepo_c
Requires: python3-%{name} = %{version}-%{release}
@ -181,6 +180,37 @@ nosetests-3 --exe
%{_bindir}/%{name}-wait-for-signed-ostree-handler
%changelog
* Mon Jul 16 2018 Lubomír Sedlář <lsedlar@redhat.com> - 4.1.26-1
- gather: Add a hybrid depsolver backend (lsedlar)
- Always use lookasides for repoclosure (lsedlar)
- doc: closing parentheses for require_all_comps_packages (kdreyer)
- osbs: Generate unique repo names (lsedlar)
- Expand version field during image_build using version_generator (sinny)
- createrepo: Stop including modulemd in debug repos (lsedlar)
- Simplify iterating over module defaults (lsedlar)
- pkgset: Apply module filters on pkgset level (lsedlar)
- init: Validate whitespace in comps groups (lsedlar)
- createrepo: Include empty modules (lsedlar)
- createiso: Break hardlinks by copying files (lsedlar)
- pkgset: Query Koji instead of PDC (mcurlej)
- config: Report variants validity issues (lsedlar)
- variants: Reject values with whitespace (lsedlar)
- osbs: Fresh koji session for getting metadata (lsedlar)
- gather: Ignore comps in lookaside repo (lsedlar)
- init: Test that init phase correctly clones defaults (lsedlar)
- init: Add tests for cloning module defaults (lsedlar)
- init: Add validation for module defaults (lsedlar)
- ostree-installer: Skip comps repo if there are no comps (lsedlar)
- Add test for getting licenses from a repo (lsedlar)
- Add content_licenses to module metadata (sgallagh)
- Update virtualenv instructions (lsedlar)
- Allow extracting koji event from another compose (lsedlar)
- Copy modules instead of reparsing them (sgallagh)
- Silence config warnings in quiet mode (lsedlar)
- osbs: Add nvr to metadata (lsedlar)
- Always get old compose with release type suffix (patrick)
- Make ostree_installer check if buildinstall is skipped correctly (puiterwijk)
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.25-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (pungi-4.1.25.tar.bz2) = 6f58f6693619345fd517cab9ad833f961a544772d9f16ed75cf37d3c9b3905ea9c7c372c1906c1900bd18311a0ed0c182100e2017716db65f80595b51914ba96
SHA512 (pungi-4.1.26.tar.bz2) = 8b6aef74ea27b6e64f8d64297f0f6014dd7280f74754cf955f3e9680122e987ca0dedde5c96eeccb105958ced40133d62d9e52aa19097f33067ada9275d8dcd4