New upstream release 4.3.6
This commit is contained in:
parent
d0d84279be
commit
960180cbe7
51
1587.patch
51
1587.patch
@ -1,51 +0,0 @@
|
|||||||
From 38810b3f13861aa36f832d9e8f7ac14276d181a1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Petr Písař <ppisar@redhat.com>
|
|
||||||
Date: Feb 04 2022 10:15:31 +0000
|
|
||||||
Subject: modules: Correct a typo in loading obsoletes
|
|
||||||
|
|
||||||
|
|
||||||
Pungi failed:
|
|
||||||
|
|
||||||
TypeError: argument obsoletes: Expected Modulemd.Obsoletes, but got list
|
|
||||||
Frame collect_module_obsoletes in /usr/lib/python3.10/site-packages/pungi/module_util.py at line 91
|
|
||||||
<CODE>
|
|
||||||
84 mod_index = mod_index or Modulemd.ModuleIndex()
|
|
||||||
85
|
|
||||||
86 for module_name, obsoletes in iter_module_defaults_or_obsoletes(
|
|
||||||
87 obsoletes_dir, obsoletes=True
|
|
||||||
88 ):
|
|
||||||
89 for obsolete in obsoletes:
|
|
||||||
90 if not modules_to_load or module_name in modules_to_load:
|
|
||||||
--> 91 mod_index.add_obsoletes(obsoletes)
|
|
||||||
92
|
|
||||||
93 return mod_index
|
|
||||||
</CODE>
|
|
||||||
<LOCALS>
|
|
||||||
mod_index = <Modulemd.ModuleIndex object at 0x7f01a40fae40 (ModulemdModuleIndex at 0x7f0484338f90)>
|
|
||||||
module_name = 'perl'
|
|
||||||
modules_to_load = {'perl-Date-Manip', 'subversion', 'sway', 'nginx', 'perl-YAML', 'ghc', 'perl-App-cpanminus', 'perl-XML-Parser', 'varnish', 'nodejs', 'cri-o', 'perl-DBD-Pg', 'perl-DBI', 'perl', 'swig', 'perl-FCGI', 'p
|
|
||||||
obsolete = <Modulemd.Obsoletes object at 0x7f00c0fe4a00 (ModulemdObsoletes at 0x7f024c0268b0)>
|
|
||||||
obsoletes = [<Modulemd.Obsoletes object at 0x7f00c0fe4a00 (ModulemdObsoletes at 0x7f024c0268b0)>]
|
|
||||||
obsoletes_dir = '/mnt/koji/compose/rawhide/Fedora-Rawhide-20220203.n.1/work/global/module_obsoletes'
|
|
||||||
</LOCALS>
|
|
||||||
|
|
||||||
This patches fixes the typo in add_obsoletes() argument.
|
|
||||||
|
|
||||||
https://pagure.io/releng/failed-composes/issue/3058
|
|
||||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/pungi/module_util.py b/pungi/module_util.py
|
|
||||||
index 94a0ec5..a25cb36 100644
|
|
||||||
--- a/pungi/module_util.py
|
|
||||||
+++ b/pungi/module_util.py
|
|
||||||
@@ -88,6 +88,6 @@ def collect_module_obsoletes(obsoletes_dir, modules_to_load, mod_index=None):
|
|
||||||
):
|
|
||||||
for obsolete in obsoletes:
|
|
||||||
if not modules_to_load or module_name in modules_to_load:
|
|
||||||
- mod_index.add_obsoletes(obsoletes)
|
|
||||||
+ mod_index.add_obsoletes(obsolete)
|
|
||||||
|
|
||||||
return mod_index
|
|
||||||
|
|
213
1613.patch
213
1613.patch
@ -1,213 +0,0 @@
|
|||||||
From 27e39deafcec56947d46b023b3e9395d6042c479 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lubomír Sedlář <lsedlar@redhat.com>
|
|
||||||
Date: Jul 25 2022 12:42:02 +0000
|
|
||||||
Subject: Create DVDs with xorriso
|
|
||||||
|
|
||||||
|
|
||||||
Use a different approach for building DVDs when xorriso is enabled.
|
|
||||||
|
|
||||||
The default of using genisoimage is not changed at all. When the config
|
|
||||||
option is set to use xorriso, the actual execution is different between
|
|
||||||
bootable and non-bootable images.
|
|
||||||
|
|
||||||
The non-bootable images are still created by running xorrisofs (which is
|
|
||||||
a compatibility tool with same UI as genisoimage). Since the image is
|
|
||||||
not bootable, there should be no problems with boot options.
|
|
||||||
|
|
||||||
For bootable images, Pungi will instead take the boot.iso generated by
|
|
||||||
Lorax, and use xorriso to inject all the extra files into the image.
|
|
||||||
|
|
||||||
The shell script that used to invoke all the commands to build the ISO
|
|
||||||
now runs the `xorriso` command in interactive mode and feeds another
|
|
||||||
file into it. The new file contains the xorriso commands to add the
|
|
||||||
required files to the image.
|
|
||||||
|
|
||||||
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/pungi/createiso.py b/pungi/createiso.py
|
|
||||||
index 4e1a533..4d80678 100644
|
|
||||||
--- a/pungi/createiso.py
|
|
||||||
+++ b/pungi/createiso.py
|
|
||||||
@@ -15,6 +15,7 @@ CreateIsoOpts = namedtuple(
|
|
||||||
"CreateIsoOpts",
|
|
||||||
[
|
|
||||||
"buildinstall_method",
|
|
||||||
+ "boot_iso",
|
|
||||||
"arch",
|
|
||||||
"output_dir",
|
|
||||||
"jigdo_dir",
|
|
||||||
@@ -26,6 +27,7 @@ CreateIsoOpts = namedtuple(
|
|
||||||
"hfs_compat",
|
|
||||||
"use_xorrisofs",
|
|
||||||
"iso_level",
|
|
||||||
+ "script_dir",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
CreateIsoOpts.__new__.__defaults__ = (None,) * len(CreateIsoOpts._fields)
|
|
||||||
@@ -116,6 +118,27 @@ def make_jigdo(f, opts):
|
|
||||||
emit(f, cmd)
|
|
||||||
|
|
||||||
|
|
||||||
+def write_xorriso_commands(opts):
|
|
||||||
+ script = os.path.join(opts.script_dir, "xorriso-%s.txt" % id(opts))
|
|
||||||
+ with open(script, "w") as f:
|
|
||||||
+ emit(f, "-indev %s" % opts.boot_iso)
|
|
||||||
+ emit(f, "-outdev %s" % os.path.join(opts.output_dir, opts.iso_name))
|
|
||||||
+ emit(f, "-boot_image any replay")
|
|
||||||
+ emit(f, "-volid %s" % opts.volid)
|
|
||||||
+
|
|
||||||
+ with open(opts.graft_points) as gp:
|
|
||||||
+ for line in gp:
|
|
||||||
+ iso_path, fs_path = line.strip().split("=", 1)
|
|
||||||
+ emit(f, "-map %s %s" % (fs_path, iso_path))
|
|
||||||
+
|
|
||||||
+ if opts.arch == "ppc64le":
|
|
||||||
+ # This is needed for the image to be bootable.
|
|
||||||
+ emit(f, "-as mkisofs -U --")
|
|
||||||
+
|
|
||||||
+ emit(f, "-end")
|
|
||||||
+ return script
|
|
||||||
+
|
|
||||||
+
|
|
||||||
def write_script(opts, f):
|
|
||||||
if bool(opts.jigdo_dir) != bool(opts.os_tree):
|
|
||||||
raise RuntimeError("jigdo_dir must be used together with os_tree")
|
|
||||||
@@ -123,8 +146,14 @@ def write_script(opts, f):
|
|
||||||
emit(f, "#!/bin/bash")
|
|
||||||
emit(f, "set -ex")
|
|
||||||
emit(f, "cd %s" % opts.output_dir)
|
|
||||||
- make_image(f, opts)
|
|
||||||
- run_isohybrid(f, opts)
|
|
||||||
+
|
|
||||||
+ if opts.use_xorrisofs and opts.buildinstall_method:
|
|
||||||
+ script = write_xorriso_commands(opts)
|
|
||||||
+ emit(f, "xorriso -dialog on <%s" % script)
|
|
||||||
+ else:
|
|
||||||
+ make_image(f, opts)
|
|
||||||
+ run_isohybrid(f, opts)
|
|
||||||
+
|
|
||||||
implant_md5(f, opts)
|
|
||||||
make_manifest(f, opts)
|
|
||||||
if opts.jigdo_dir:
|
|
||||||
diff --git a/pungi/phases/createiso.py b/pungi/phases/createiso.py
|
|
||||||
index e237cf7..722cfb0 100644
|
|
||||||
--- a/pungi/phases/createiso.py
|
|
||||||
+++ b/pungi/phases/createiso.py
|
|
||||||
@@ -343,7 +343,10 @@ class CreateisoPhase(PhaseLoggerMixin, PhaseBase):
|
|
||||||
|
|
||||||
if bootable:
|
|
||||||
opts = opts._replace(
|
|
||||||
- buildinstall_method=self.compose.conf["buildinstall_method"]
|
|
||||||
+ buildinstall_method=self.compose.conf[
|
|
||||||
+ "buildinstall_method"
|
|
||||||
+ ],
|
|
||||||
+ boot_iso=os.path.join(os_tree, "images", "boot.iso"),
|
|
||||||
)
|
|
||||||
|
|
||||||
if self.compose.conf["create_jigdo"]:
|
|
||||||
@@ -355,10 +358,9 @@ class CreateisoPhase(PhaseLoggerMixin, PhaseBase):
|
|
||||||
# Reuse was successful, go to next ISO
|
|
||||||
continue
|
|
||||||
|
|
||||||
- script_file = os.path.join(
|
|
||||||
- self.compose.paths.work.tmp_dir(arch, variant),
|
|
||||||
- "createiso-%s.sh" % filename,
|
|
||||||
- )
|
|
||||||
+ script_dir = self.compose.paths.work.tmp_dir(arch, variant)
|
|
||||||
+ opts = opts._replace(script_dir=script_dir)
|
|
||||||
+ script_file = os.path.join(script_dir, "createiso-%s.sh" % filename)
|
|
||||||
with open(script_file, "w") as f:
|
|
||||||
createiso.write_script(opts, f)
|
|
||||||
cmd["cmd"] = ["bash", script_file]
|
|
||||||
diff --git a/pungi/phases/extra_isos.py b/pungi/phases/extra_isos.py
|
|
||||||
index 56c5f28..45d06b6 100644
|
|
||||||
--- a/pungi/phases/extra_isos.py
|
|
||||||
+++ b/pungi/phases/extra_isos.py
|
|
||||||
@@ -132,14 +132,15 @@ class ExtraIsosThread(WorkerThread):
|
|
||||||
use_xorrisofs=compose.conf.get("createiso_use_xorrisofs"),
|
|
||||||
iso_level=compose.conf.get("iso_level"),
|
|
||||||
)
|
|
||||||
+ os_tree = compose.paths.compose.os_tree(arch, variant)
|
|
||||||
if compose.conf["create_jigdo"]:
|
|
||||||
jigdo_dir = compose.paths.compose.jigdo_dir(arch, variant)
|
|
||||||
- os_tree = compose.paths.compose.os_tree(arch, variant)
|
|
||||||
opts = opts._replace(jigdo_dir=jigdo_dir, os_tree=os_tree)
|
|
||||||
|
|
||||||
if bootable:
|
|
||||||
opts = opts._replace(
|
|
||||||
- buildinstall_method=compose.conf["buildinstall_method"]
|
|
||||||
+ buildinstall_method=compose.conf["buildinstall_method"],
|
|
||||||
+ boot_iso=os.path.join(os_tree, "images", "boot.iso"),
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check if it can be reused.
|
|
||||||
@@ -148,9 +149,9 @@ class ExtraIsosThread(WorkerThread):
|
|
||||||
config_hash = hash.hexdigest()
|
|
||||||
|
|
||||||
if not self.try_reuse(compose, variant, arch, config_hash, opts):
|
|
||||||
- script_file = os.path.join(
|
|
||||||
- compose.paths.work.tmp_dir(arch, variant), "extraiso-%s.sh" % filename
|
|
||||||
- )
|
|
||||||
+ script_dir = compose.paths.work.tmp_dir(arch, variant)
|
|
||||||
+ opts = opts._replace(script_dir=script_dir)
|
|
||||||
+ script_file = os.path.join(script_dir, "extraiso-%s.sh" % filename)
|
|
||||||
with open(script_file, "w") as f:
|
|
||||||
createiso.write_script(opts, f)
|
|
||||||
|
|
||||||
diff --git a/tests/test_createiso_phase.py b/tests/test_createiso_phase.py
|
|
||||||
index 02ccd8b..3948cc6 100644
|
|
||||||
--- a/tests/test_createiso_phase.py
|
|
||||||
+++ b/tests/test_createiso_phase.py
|
|
||||||
@@ -124,6 +124,7 @@ class CreateisoPhaseTest(helpers.PungiTestCase):
|
|
||||||
os_tree=None,
|
|
||||||
hfs_compat=True,
|
|
||||||
use_xorrisofs=False,
|
|
||||||
+ script_dir="%s/work/x86_64/tmp-Server" % self.topdir,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
@@ -240,6 +241,9 @@ class CreateisoPhaseTest(helpers.PungiTestCase):
|
|
||||||
[
|
|
||||||
CreateIsoOpts(
|
|
||||||
output_dir="%s/compose/Server/x86_64/iso" % self.topdir,
|
|
||||||
+ boot_iso=(
|
|
||||||
+ "%s/compose/Server/x86_64/os/images/boot.iso" % self.topdir
|
|
||||||
+ ),
|
|
||||||
iso_name="image-name",
|
|
||||||
volid="test-1.0 Server.x86_64",
|
|
||||||
graft_points="dummy-graft-points",
|
|
||||||
@@ -250,6 +254,7 @@ class CreateisoPhaseTest(helpers.PungiTestCase):
|
|
||||||
os_tree=None,
|
|
||||||
hfs_compat=True,
|
|
||||||
use_xorrisofs=False,
|
|
||||||
+ script_dir="%s/work/x86_64/tmp-Server" % self.topdir,
|
|
||||||
),
|
|
||||||
CreateIsoOpts(
|
|
||||||
output_dir="%s/compose/Server/source/iso" % self.topdir,
|
|
||||||
@@ -262,6 +267,7 @@ class CreateisoPhaseTest(helpers.PungiTestCase):
|
|
||||||
os_tree=None,
|
|
||||||
hfs_compat=True,
|
|
||||||
use_xorrisofs=False,
|
|
||||||
+ script_dir="%s/work/src/tmp-Server" % self.topdir,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
@@ -394,6 +400,7 @@ class CreateisoPhaseTest(helpers.PungiTestCase):
|
|
||||||
os_tree=None,
|
|
||||||
hfs_compat=True,
|
|
||||||
use_xorrisofs=False,
|
|
||||||
+ script_dir="%s/work/src/tmp-Server" % self.topdir,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
@@ -501,6 +508,7 @@ class CreateisoPhaseTest(helpers.PungiTestCase):
|
|
||||||
os_tree=None,
|
|
||||||
hfs_compat=False,
|
|
||||||
use_xorrisofs=False,
|
|
||||||
+ script_dir="%s/work/x86_64/tmp-Server" % self.topdir,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
51
1621.patch
51
1621.patch
@ -1,51 +0,0 @@
|
|||||||
From 0abf937b0eeafa96e2cbdce0c47c350a88789d5f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lubomír Sedlář <lsedlar@redhat.com>
|
|
||||||
Date: Aug 10 2022 07:52:23 +0000
|
|
||||||
Subject: Fix compatibility with jsonschema >= 4.0.0
|
|
||||||
|
|
||||||
|
|
||||||
Fedora Rawhide (to be 37) packages jsonschema 4.9.0 at the moment, so we
|
|
||||||
can no longer get by with limiting the requirements. This patch makes
|
|
||||||
the validation work with both old and new version.
|
|
||||||
|
|
||||||
Fixes: rhbz#2113607
|
|
||||||
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/pungi/checks.py b/pungi/checks.py
|
|
||||||
index bc5d908..6d4465e 100644
|
|
||||||
--- a/pungi/checks.py
|
|
||||||
+++ b/pungi/checks.py
|
|
||||||
@@ -229,7 +229,6 @@ def validate(config, offline=False, schema=None):
|
|
||||||
)
|
|
||||||
validator = DefaultValidator(
|
|
||||||
schema,
|
|
||||||
- {"array": (tuple, list), "regex": six.string_types, "url": six.string_types},
|
|
||||||
)
|
|
||||||
errors = []
|
|
||||||
warnings = []
|
|
||||||
@@ -445,6 +444,16 @@ def _extend_with_default_and_alias(validator_class, offline=False):
|
|
||||||
context=all_errors,
|
|
||||||
)
|
|
||||||
|
|
||||||
+ def is_array(checker, instance):
|
|
||||||
+ return isinstance(instance, (tuple, list))
|
|
||||||
+
|
|
||||||
+ def is_string_type(checker, instance):
|
|
||||||
+ return isinstance(instance, six.string_types)
|
|
||||||
+
|
|
||||||
+ type_checker = validator_class.TYPE_CHECKER.redefine_many(
|
|
||||||
+ {"array": is_array, "regex": is_string_type, "url": is_string_type}
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
return jsonschema.validators.extend(
|
|
||||||
validator_class,
|
|
||||||
{
|
|
||||||
@@ -455,6 +464,7 @@ def _extend_with_default_and_alias(validator_class, offline=False):
|
|
||||||
"additionalProperties": _validate_additional_properties,
|
|
||||||
"anyOf": _validate_any_of,
|
|
||||||
},
|
|
||||||
+ type_checker=type_checker,
|
|
||||||
)
|
|
||||||
|
|
23
pungi.spec
23
pungi.spec
@ -1,17 +1,13 @@
|
|||||||
%{?python_enable_dependency_generator}
|
%{?python_enable_dependency_generator}
|
||||||
|
|
||||||
Name: pungi
|
Name: pungi
|
||||||
Version: 4.3.5
|
Version: 4.3.6
|
||||||
Release: 8%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Distribution compose tool
|
Summary: Distribution compose tool
|
||||||
|
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: https://pagure.io/pungi
|
URL: https://pagure.io/pungi
|
||||||
Source0: https://pagure.io/releases/%{name}/%{name}-%{version}.tar.bz2
|
Source0: https://pagure.io/releases/%{name}/%{name}-%{version}.tar.bz2
|
||||||
Patch0: https://pagure.io/pungi/pull-request/1613.patch
|
|
||||||
# Downloaded from https://pagure.io/pungi/pull-request/1621.patch and removed
|
|
||||||
# irrelevant hunk.
|
|
||||||
Patch1: 1621.patch
|
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: python3-pytest
|
BuildRequires: python3-pytest
|
||||||
@ -142,6 +138,21 @@ rm %{buildroot}%{_bindir}/pungi
|
|||||||
%{_bindir}/%{name}-wait-for-signed-ostree-handler
|
%{_bindir}/%{name}-wait-for-signed-ostree-handler
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 26 2022 Lubomír Sedlář <lsedlar@redhat.com> - 4.3.6-1
|
||||||
|
- pkgset: Report better error when module is missing an arch (lsedlar)
|
||||||
|
- osbuild: add support for building ostree artifacts (ondrej)
|
||||||
|
- ostree: Add unified core mode for compose in rpm-ostree (tim)
|
||||||
|
- createiso: Make ISO level more granular (lsedlar)
|
||||||
|
- Create DVDs with xorriso (lsedlar)
|
||||||
|
- Fix compatibility with jsonschema >= 4.0.0 (lsedlar)
|
||||||
|
- Fix black complaint (lsedlar)
|
||||||
|
- doc: fix osbuild's image_types field name (ondrej)
|
||||||
|
- Convert _ssh_run output to str for python3 (hlin)
|
||||||
|
- Print more logs for git_ls_remote (hlin)
|
||||||
|
- Log time taken of each phase (hlin)
|
||||||
|
- Avoid crash when loading pickle file failed (hlin)
|
||||||
|
- extra_isos: Fix detection of changed packages (lsedlar)
|
||||||
|
|
||||||
* Thu Aug 11 2022 Lubomír Sedlář <lsedlar@redhat.com> - 4.3.5-8
|
* Thu Aug 11 2022 Lubomír Sedlář <lsedlar@redhat.com> - 4.3.5-8
|
||||||
- Backport jsonschema compatibility patch (rhbz#2113607)
|
- Backport jsonschema compatibility patch (rhbz#2113607)
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (pungi-4.3.5.tar.bz2) = e77dbdacddc4930bcad3916e86f34b9c003400dfb47141d0e8677e317c22706760559aee4556ff60185e39dd1864cd76598b3582c89def9388f2028d43fd1fa5
|
SHA512 (pungi-4.3.6.tar.bz2) = cbeb9b1064c0d0883fff9822a668fd76d166b183b163eddba9aec8aa548cdf0ad63e12ad5c04dd2973b0c35010af7482e64368e01ffa7b4875c36a273573fbe6
|
||||||
|
Loading…
Reference in New Issue
Block a user