Compare commits
No commits in common. "rawhide" and "f30" have entirely different histories.
16 changed files with 767 additions and 271 deletions
|
|
@ -1,33 +0,0 @@
|
|||
From 7a80a6eec799841b828ba7f617709562d8061435 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 21 Oct 2024 11:55:53 +0100
|
||||
Subject: [PATCH] prepare: Use stable owner, group and mtime in base.tar.gz
|
||||
|
||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2320025
|
||||
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
---
|
||||
src/mode_prepare.ml | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/mode_prepare.ml b/src/mode_prepare.ml
|
||||
index 70f9dd4..6af47b1 100644
|
||||
--- a/src/mode_prepare.ml
|
||||
+++ b/src/mode_prepare.ml
|
||||
@@ -166,9 +166,12 @@ let prepare debug (copy_kernel, format, host_cpu,
|
||||
let base = outputdir // "base.tar.gz" in
|
||||
if debug >= 1 then printf "supermin: writing %s\n%!" base;
|
||||
let cmd =
|
||||
- sprintf "tar%s -C %s -zcf %s -T %s"
|
||||
+ let mtime =
|
||||
+ try sprintf "--mtime=@%s" (quote (Sys.getenv "SOURCE_DATE_EPOCH"))
|
||||
+ with Not_found -> "" in
|
||||
+ sprintf "tar%s -C %s -z --owner=0 --group=0 %s -cf %s -T %s"
|
||||
(if debug >=1 then " -v" else "")
|
||||
- (quote dir) (quote base) (quote files_from) in
|
||||
+ (quote dir) mtime (quote base) (quote files_from) in
|
||||
run_command cmd;
|
||||
)
|
||||
else (
|
||||
--
|
||||
2.46.0
|
||||
|
||||
89
0001-rpm-extend-the-Multiple_matches-exception.patch
Normal file
89
0001-rpm-extend-the-Multiple_matches-exception.patch
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
From 42955541dc3aa8ae3361f3bd6eb0ae338f307545 Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Wed, 23 Jan 2019 12:22:19 +0100
|
||||
Subject: [PATCH 01/12] rpm: extend the Multiple_matches exception
|
||||
|
||||
Add the package that raised the issue, so it can be used to provide
|
||||
better diagnostic.
|
||||
---
|
||||
src/librpm-c.c | 15 ++++++++++-----
|
||||
src/librpm.ml | 4 ++--
|
||||
src/librpm.mli | 2 +-
|
||||
3 files changed, 13 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/librpm-c.c b/src/librpm-c.c
|
||||
index 3bd25a2..75ca4d7 100644
|
||||
--- a/src/librpm-c.c
|
||||
+++ b/src/librpm-c.c
|
||||
@@ -66,10 +66,15 @@ librpm_handle_closed (void)
|
||||
}
|
||||
|
||||
static void
|
||||
-librpm_raise_multiple_matches (int occurrences)
|
||||
+librpm_raise_multiple_matches (value pkgv, int occurrences)
|
||||
{
|
||||
- caml_raise_with_arg (*caml_named_value ("librpm_multiple_matches"),
|
||||
- Val_int (occurrences));
|
||||
+ CAMLparam1 (pkgv);
|
||||
+
|
||||
+ value args[] = { pkgv, Val_int (occurrences) };
|
||||
+ caml_raise_with_args (*caml_named_value ("librpm_multiple_matches"),
|
||||
+ 2, args);
|
||||
+
|
||||
+ CAMLnoreturn;
|
||||
}
|
||||
|
||||
#define Librpm_val(v) (*((struct librpm_data *)Data_custom_val(v)))
|
||||
@@ -296,7 +301,7 @@ supermin_rpm_pkg_requires (value rpmv, value pkgv)
|
||||
fflush (stdout);
|
||||
}
|
||||
if (count != 1)
|
||||
- librpm_raise_multiple_matches (count);
|
||||
+ librpm_raise_multiple_matches (pkgv, count);
|
||||
|
||||
h = rpmdbNextIterator (iter);
|
||||
assert (h != NULL);
|
||||
@@ -413,7 +418,7 @@ supermin_rpm_pkg_filelist (value rpmv, value pkgv)
|
||||
fflush (stdout);
|
||||
}
|
||||
if (count != 1)
|
||||
- librpm_raise_multiple_matches (count);
|
||||
+ librpm_raise_multiple_matches (pkgv, count);
|
||||
|
||||
h = rpmdbNextIterator (iter);
|
||||
assert (h != NULL);
|
||||
diff --git a/src/librpm.ml b/src/librpm.ml
|
||||
index 4eeba77..b6f9ff8 100644
|
||||
--- a/src/librpm.ml
|
||||
+++ b/src/librpm.ml
|
||||
@@ -23,7 +23,7 @@ external rpm_vercmp : string -> string -> int = "supermin_rpm_vercmp" "noalloc"
|
||||
|
||||
type t
|
||||
|
||||
-exception Multiple_matches of int
|
||||
+exception Multiple_matches of string * int
|
||||
|
||||
external rpm_open : ?debug:int -> t = "supermin_rpm_open"
|
||||
external rpm_close : t -> unit = "supermin_rpm_close"
|
||||
@@ -49,4 +49,4 @@ external rpm_pkg_whatprovides : t -> string -> string array = "supermin_rpm_pkg_
|
||||
external rpm_pkg_filelist : t -> string -> rpmfile_t array = "supermin_rpm_pkg_filelist"
|
||||
|
||||
let () =
|
||||
- Callback.register_exception "librpm_multiple_matches" (Multiple_matches 0)
|
||||
+ Callback.register_exception "librpm_multiple_matches" (Multiple_matches ("", 0))
|
||||
diff --git a/src/librpm.mli b/src/librpm.mli
|
||||
index 5229be6..53b4b2c 100644
|
||||
--- a/src/librpm.mli
|
||||
+++ b/src/librpm.mli
|
||||
@@ -31,7 +31,7 @@ val rpm_vercmp : string -> string -> int
|
||||
type t
|
||||
(** The librpm handle. *)
|
||||
|
||||
-exception Multiple_matches of int
|
||||
+exception Multiple_matches of string * int
|
||||
|
||||
val rpm_open : ?debug:int -> t
|
||||
(** Open the librpm (transaction set) handle. *)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
27
0002-Print-Librpm.Multiple_matches-exceptions.patch
Normal file
27
0002-Print-Librpm.Multiple_matches-exceptions.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
From 36878992ebdd08f0f9b37017f347f5eab18ce9ed Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Wed, 23 Jan 2019 12:23:02 +0100
|
||||
Subject: [PATCH 02/12] Print Librpm.Multiple_matches exceptions
|
||||
|
||||
Print a better diagnostic for them, so it is more clear which package
|
||||
is detected as present multiple times.
|
||||
---
|
||||
src/supermin.ml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/supermin.ml b/src/supermin.ml
|
||||
index f9798f9..71d8b64 100644
|
||||
--- a/src/supermin.ml
|
||||
+++ b/src/supermin.ml
|
||||
@@ -298,6 +298,8 @@ let () =
|
||||
error "error: %s: %s: %s" fname (Unix.error_message code) param
|
||||
| Failure msg -> (* from failwith/failwithf *)
|
||||
error "failure: %s" msg
|
||||
+ | Librpm.Multiple_matches (package, count) -> (* from librpm *)
|
||||
+ error "RPM error: %d occurrences for %s" count package
|
||||
| Invalid_argument msg -> (* probably should never happen *)
|
||||
error "internal error: invalid argument: %s" msg
|
||||
| Assert_failure (file, line, char) -> (* should never happen *)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
From 6579cf5f72d5de345ae1cc97d0344dfa1771460a Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 28 Jan 2019 22:20:33 +0000
|
||||
Subject: [PATCH 03/12] Use external command mv to rename old output directory
|
||||
(RHBZ#1670191).
|
||||
|
||||
See https://bugzilla.redhat.com/show_bug.cgi?id=1670191#c0
|
||||
for explanation.
|
||||
|
||||
Thanks: Sam Eiderman
|
||||
---
|
||||
src/supermin.ml | 10 ++++------
|
||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/supermin.ml b/src/supermin.ml
|
||||
index 71d8b64..7c7135b3 100644
|
||||
--- a/src/supermin.ml
|
||||
+++ b/src/supermin.ml
|
||||
@@ -264,12 +264,10 @@ appliance automatically.
|
||||
|
||||
(* Delete the old output directory if it exists. *)
|
||||
let old_outputdir =
|
||||
- try
|
||||
- let old_outputdir = outputdir ^ "." ^ string_random8 () in
|
||||
- rename outputdir old_outputdir;
|
||||
- Some old_outputdir
|
||||
- with
|
||||
- Unix_error _ -> None in
|
||||
+ let old_outputdir = outputdir ^ "." ^ string_random8 () in
|
||||
+ let cmd = sprintf "mv %s %s 2>/dev/null"
|
||||
+ (quote outputdir) (quote old_outputdir) in
|
||||
+ if Sys.command cmd == 0 then Some old_outputdir else None in
|
||||
|
||||
if debug >= 1 then
|
||||
printf "supermin: renaming %s to %s\n%!" new_outputdir outputdir;
|
||||
--
|
||||
2.23.0
|
||||
|
||||
128
0004-Add-OpenMandriva-support-RHBZ-1694267.patch
Normal file
128
0004-Add-OpenMandriva-support-RHBZ-1694267.patch
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
From bca633bfd14aeeb8ae1331d468db75d1ef31f9ff Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@lindev.ch>
|
||||
Date: Tue, 2 Apr 2019 08:28:06 +0100
|
||||
Subject: [PATCH 04/12] Add OpenMandriva support (RHBZ#1694267).
|
||||
|
||||
---
|
||||
src/ph_rpm.ml | 28 +++++++++++++++++++++++++---
|
||||
tests/test-harder.sh | 31 +++++++++++++++++++++++++++++++
|
||||
2 files changed, 56 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
|
||||
index 46b7f1f..3ff5c94 100644
|
||||
--- a/src/ph_rpm.ml
|
||||
+++ b/src/ph_rpm.ml
|
||||
@@ -50,6 +50,12 @@ let mageia_detect () =
|
||||
(Os_release.get_id () = "mageia" ||
|
||||
try (stat "/etc/mageia-release").st_kind = S_REG with Unix_error _ -> false)
|
||||
|
||||
+let openmandriva_detect () =
|
||||
+ Config.rpm <> "no" && Config.rpm2cpio <> "no" && rpm_is_available () &&
|
||||
+ ((Config.urpmi <> "no" && Config.fakeroot <> "no") || Config.dnf <> "no") &&
|
||||
+ (Os_release.get_id () = "openmandriva" ||
|
||||
+ try (stat "/etc/openmandriva-release").st_kind = S_REG with Unix_error _ -> false)
|
||||
+
|
||||
let ibm_powerkvm_detect () =
|
||||
Config.rpm <> "no" && Config.rpm2cpio <> "no" && rpm_is_available () &&
|
||||
Config.yumdownloader <> "no" &&
|
||||
@@ -386,17 +392,27 @@ and opensuse_download_all_packages pkgs dir =
|
||||
|
||||
rpm_unpack tdir dir
|
||||
|
||||
+and openmandriva_download_all_packages pkgs dir =
|
||||
+ let tdir = !settings.tmpdir // string_random8 () in
|
||||
+
|
||||
+ if Config.dnf <> "no" then
|
||||
+ download_all_packages_with_dnf pkgs dir tdir
|
||||
+ else (* Config.urpmi <> "no" && Config.fakeroot <> "no" *)
|
||||
+ download_all_packages_with_urpmi pkgs dir tdir;
|
||||
+
|
||||
+ rpm_unpack tdir dir
|
||||
+
|
||||
and mageia_download_all_packages pkgs dir =
|
||||
let tdir = !settings.tmpdir // string_random8 () in
|
||||
|
||||
if Config.dnf <> "no" then
|
||||
download_all_packages_with_dnf pkgs dir tdir
|
||||
else (* Config.urpmi <> "no" && Config.fakeroot <> "no" *)
|
||||
- mageia_download_all_packages_with_urpmi pkgs dir tdir;
|
||||
+ download_all_packages_with_urpmi pkgs dir tdir;
|
||||
|
||||
rpm_unpack tdir dir
|
||||
|
||||
-and mageia_download_all_packages_with_urpmi pkgs dir tdir =
|
||||
+and download_all_packages_with_urpmi pkgs dir tdir =
|
||||
let rpms = List.map rpm_package_name (PackageSet.elements pkgs) in
|
||||
|
||||
let cmd =
|
||||
@@ -484,4 +500,10 @@ let () =
|
||||
ph_detect = mageia_detect;
|
||||
ph_download_package = PHDownloadAllPackages mageia_download_all_packages;
|
||||
} in
|
||||
- register_package_handler "mageia" "rpm" mageia
|
||||
+ register_package_handler "mageia" "rpm" mageia;
|
||||
+ let openmandriva = {
|
||||
+ fedora with
|
||||
+ ph_detect = openmandriva_detect;
|
||||
+ ph_download_package = PHDownloadAllPackages openmandriva_download_all_packages;
|
||||
+ } in
|
||||
+ register_package_handler "openmandriva" "rpm" openmandriva
|
||||
diff --git a/tests/test-harder.sh b/tests/test-harder.sh
|
||||
index c827f13..aceef21 100755
|
||||
--- a/tests/test-harder.sh
|
||||
+++ b/tests/test-harder.sh
|
||||
@@ -31,6 +31,7 @@ if [ -f /etc/os-release ]; then
|
||||
fedora|rhel|centos) distro=redhat ;;
|
||||
opensuse*|sled|sles) distro=suse ;;
|
||||
ubuntu) distro=debian ;;
|
||||
+ openmandriva) distro=openmandriva ;;
|
||||
esac
|
||||
elif [ -f /etc/arch-release ]; then
|
||||
distro=arch
|
||||
@@ -77,6 +78,9 @@ case $distro in
|
||||
ibm-powerkvm)
|
||||
pkgs="augeas hivex tar"
|
||||
;;
|
||||
+ openmandriva)
|
||||
+ pkgs="augeas hivex rpm"
|
||||
+ ;;
|
||||
*)
|
||||
echo "Unhandled distro '$distro'"
|
||||
exit 77
|
||||
@@ -153,6 +157,33 @@ case $distro in
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
+ openmandriva)
|
||||
+ if [ ! -x $d2/usr/bin/augtool ]; then
|
||||
+ echo "$0: $distro: augtool binary not installed in chroot"
|
||||
+ ls -lR $d2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ if [ "$(find $d2/lib* $d2/usr/lib* -name libaugeas.so.0 | wc -l)" -lt 1 ]; then
|
||||
+ echo "$0: $distro: augeas library not installed in chroot"
|
||||
+ ls -lR $d2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ if [ ! -x $d2/usr/bin/hivexget ]; then
|
||||
+ echo "$0: $distro: hivexget binary not installed in chroot"
|
||||
+ ls -lR $d2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ if [ "$(find $d2/usr/lib* -name libhivex.so.0 | wc -l)" -lt 1 ]; then
|
||||
+ echo "$0: $distro: hivex library not installed in chroot"
|
||||
+ ls -lR $d2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ if [ ! -x $d2/bin/rpm ]; then
|
||||
+ echo "$0: $distro: rpm binary not installed in chroot"
|
||||
+ ls -lR $d2
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ ;;
|
||||
redhat)
|
||||
if [ ! -x $d2/usr/bin/augtool ]; then
|
||||
echo "$0: $distro: augtool binary not installed in chroot"
|
||||
--
|
||||
2.23.0
|
||||
|
||||
33
0005-rpm-do-not-unpack-parameters.patch
Normal file
33
0005-rpm-do-not-unpack-parameters.patch
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
From 941f72d05302d265af763c7f8ed6b999e4f85eeb Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Fri, 12 Apr 2019 11:58:49 +0200
|
||||
Subject: [PATCH 05/12] rpm: do not unpack parameters
|
||||
|
||||
They will be used as parameters again soon.
|
||||
|
||||
This has no behaviour changes.
|
||||
---
|
||||
src/ph_rpm.ml | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
|
||||
index 3ff5c94..6769e7b 100644
|
||||
--- a/src/ph_rpm.ml
|
||||
+++ b/src/ph_rpm.ml
|
||||
@@ -144,10 +144,10 @@ let rpm_package_of_string str =
|
||||
* interested in the highest version with the best
|
||||
* architecture.
|
||||
*)
|
||||
- let cmp { version = v1; arch = a1 } { version = v2; arch = a2 } =
|
||||
- let i = rpm_vercmp v2 v1 in
|
||||
+ let cmp pkg1 pkg2 =
|
||||
+ let i = rpm_vercmp pkg2.version pkg1.version in
|
||||
if i <> 0 then i
|
||||
- else compare_architecture a2 a1
|
||||
+ else compare_architecture pkg2.arch pkg1.arch
|
||||
in
|
||||
let rpms = List.sort cmp rpms in
|
||||
List.hd rpms
|
||||
--
|
||||
2.23.0
|
||||
|
||||
70
0006-rpm-fix-version-comparison.patch
Normal file
70
0006-rpm-fix-version-comparison.patch
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
From de075776722741a67b0956f36a6357fcedd66ae0 Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Fri, 12 Apr 2019 12:13:07 +0200
|
||||
Subject: [PATCH 06/12] rpm: fix version comparison
|
||||
|
||||
When comparing two RPMs, also the epoch, and the release must be taken
|
||||
into account. Hence, add a new helper to get the EVR string of a
|
||||
package, and use it when sorting each list of installed packages.
|
||||
|
||||
The mapping is done to avoid recreating the EVR strings at every
|
||||
comparison.
|
||||
---
|
||||
src/ph_rpm.ml | 29 ++++++++++++++++++++++++++---
|
||||
1 file changed, 26 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
|
||||
index 6769e7b..a8bcf7c 100644
|
||||
--- a/src/ph_rpm.ml
|
||||
+++ b/src/ph_rpm.ml
|
||||
@@ -136,21 +136,44 @@ let rpm_of_pkg, pkg_of_rpm = get_memo_functions ()
|
||||
(* Memo of rpm_package_of_string. *)
|
||||
let rpmh = Hashtbl.create 13
|
||||
|
||||
+let rpm_to_evr_string rpm =
|
||||
+ (* In RPM < 4.11 query commands that use the epoch number in the
|
||||
+ * package name did not work.
|
||||
+ *
|
||||
+ * For example:
|
||||
+ * RHEL 6 (rpm 4.8.0):
|
||||
+ * $ rpm -q tar-2:1.23-11.el6.x86_64
|
||||
+ * package tar-2:1.23-11.el6.x86_64 is not installed
|
||||
+ * Fedora 20 (rpm 4.11.2):
|
||||
+ * $ rpm -q tar-2:1.26-30.fc20.x86_64
|
||||
+ * tar-1.26-30.fc20.x86_64
|
||||
+ *
|
||||
+ *)
|
||||
+ let is_rpm_lt_4_11 =
|
||||
+ !rpm_major < 4 || (!rpm_major = 4 && !rpm_minor < 11) in
|
||||
+
|
||||
+ if is_rpm_lt_4_11 || rpm.epoch = 0 then
|
||||
+ sprintf "%s-%s" rpm.version rpm.release
|
||||
+ else
|
||||
+ sprintf "%d:%s-%s"
|
||||
+ rpm.epoch rpm.version rpm.release
|
||||
+
|
||||
let rpm_package_of_string str =
|
||||
let query rpm =
|
||||
let rpms = Array.to_list (rpm_installed (get_rpm ()) rpm) in
|
||||
+ let rpms = List.map (fun rpm -> (rpm, rpm_to_evr_string rpm)) rpms in
|
||||
(* RPM will return multiple hits when either multiple versions or
|
||||
* multiple arches are installed at the same time. We are only
|
||||
* interested in the highest version with the best
|
||||
* architecture.
|
||||
*)
|
||||
- let cmp pkg1 pkg2 =
|
||||
- let i = rpm_vercmp pkg2.version pkg1.version in
|
||||
+ let cmp (pkg1, evr1) (pkg2, evr2) =
|
||||
+ let i = rpm_vercmp evr2 evr2 in
|
||||
if i <> 0 then i
|
||||
else compare_architecture pkg2.arch pkg1.arch
|
||||
in
|
||||
let rpms = List.sort cmp rpms in
|
||||
- List.hd rpms
|
||||
+ fst (List.hd rpms)
|
||||
in
|
||||
|
||||
try
|
||||
--
|
||||
2.23.0
|
||||
|
||||
90
0007-rpm-query-the-RPM-architecture.patch
Normal file
90
0007-rpm-query-the-RPM-architecture.patch
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
From e57e988c39aca015100fb92377dbd8d114c0bece Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Fri, 12 Apr 2019 12:26:11 +0200
|
||||
Subject: [PATCH 07/12] rpm: query the RPM architecture
|
||||
|
||||
Query the RPM library for the current architecture of RPM, storing it
|
||||
for later use, and printing it to the debug output.
|
||||
---
|
||||
src/librpm-c.c | 10 ++++++++++
|
||||
src/librpm.ml | 1 +
|
||||
src/librpm.mli | 3 +++
|
||||
src/ph_rpm.ml | 8 ++++++--
|
||||
4 files changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/librpm-c.c b/src/librpm-c.c
|
||||
index 75ca4d7..2e2f048 100644
|
||||
--- a/src/librpm-c.c
|
||||
+++ b/src/librpm-c.c
|
||||
@@ -132,6 +132,16 @@ supermin_rpm_vercmp (value av, value bv)
|
||||
return Val_int (rpmvercmp (String_val (av), String_val (bv)));
|
||||
}
|
||||
|
||||
+value
|
||||
+supermin_rpm_get_arch (value unit)
|
||||
+{
|
||||
+ const char *str;
|
||||
+
|
||||
+ rpmGetArchInfo (&str, NULL);
|
||||
+
|
||||
+ return caml_copy_string (str);
|
||||
+}
|
||||
+
|
||||
value
|
||||
supermin_rpm_open (value debugv)
|
||||
{
|
||||
diff --git a/src/librpm.ml b/src/librpm.ml
|
||||
index b6f9ff8..c987e21 100644
|
||||
--- a/src/librpm.ml
|
||||
+++ b/src/librpm.ml
|
||||
@@ -20,6 +20,7 @@ external rpm_is_available : unit -> bool = "supermin_rpm_is_available" "noalloc"
|
||||
|
||||
external rpm_version : unit -> string = "supermin_rpm_version"
|
||||
external rpm_vercmp : string -> string -> int = "supermin_rpm_vercmp" "noalloc"
|
||||
+external rpm_get_arch : unit -> string = "supermin_rpm_get_arch"
|
||||
|
||||
type t
|
||||
|
||||
diff --git a/src/librpm.mli b/src/librpm.mli
|
||||
index 53b4b2c..c0d7bdf 100644
|
||||
--- a/src/librpm.mli
|
||||
+++ b/src/librpm.mli
|
||||
@@ -28,6 +28,9 @@ val rpm_version : unit -> string
|
||||
val rpm_vercmp : string -> string -> int
|
||||
(** Compare two RPM version strings using RPM version compare rules. *)
|
||||
|
||||
+val rpm_get_arch : unit -> string
|
||||
+(** The current main RPM architecture. *)
|
||||
+
|
||||
type t
|
||||
(** The librpm handle. *)
|
||||
|
||||
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
|
||||
index a8bcf7c..e27d226 100644
|
||||
--- a/src/ph_rpm.ml
|
||||
+++ b/src/ph_rpm.ml
|
||||
@@ -64,7 +64,7 @@ let ibm_powerkvm_detect () =
|
||||
with Unix_error _ -> false
|
||||
|
||||
let settings = ref no_settings
|
||||
-let rpm_major, rpm_minor = ref 0, ref 0
|
||||
+let rpm_major, rpm_minor, rpm_arch = ref 0, ref 0, ref ""
|
||||
let zypper_major, zypper_minor, zypper_patch = ref 0, ref 0, ref 0
|
||||
let t = ref None
|
||||
|
||||
@@ -93,7 +93,11 @@ let rec rpm_init s =
|
||||
if !settings.debug >= 1 then
|
||||
printf "supermin: rpm: detected RPM version %d.%d\n" major minor;
|
||||
|
||||
- t := Some (rpm_open ~debug:!settings.debug)
|
||||
+ t := Some (rpm_open ~debug:!settings.debug);
|
||||
+
|
||||
+ rpm_arch := rpm_get_arch ();
|
||||
+ if !settings.debug >= 1 then
|
||||
+ printf "supermin: rpm: detected RPM architecture %s\n" !rpm_arch
|
||||
|
||||
and opensuse_init s =
|
||||
rpm_init s;
|
||||
--
|
||||
2.23.0
|
||||
|
||||
49
0008-rpm-fix-package-sorting-RHBZ-1696822.patch
Normal file
49
0008-rpm-fix-package-sorting-RHBZ-1696822.patch
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
From 72735dd11c83eb59d90e04b3c1e580af43b1ba0a Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Fri, 12 Apr 2019 12:38:46 +0200
|
||||
Subject: [PATCH 08/12] rpm: fix package sorting (RHBZ#1696822)
|
||||
|
||||
The sorting algorithm for RPMs sorted this way:
|
||||
- before the packages with the higher versions
|
||||
- among the packages with the version version, first noarch packages,
|
||||
then 64bit packages, and then 32bit packages
|
||||
This was broken in at least two ways:
|
||||
- the higher installed version may not be of the same host architecture
|
||||
- if the host architecture is 32bit, and there is a 64bit package of a
|
||||
32bit installed one, the 64bit version was preferred
|
||||
|
||||
Instead:
|
||||
- first sort by architecture, preferring noarch packages, and
|
||||
packages of the host architecture
|
||||
- then sort by version
|
||||
|
||||
This way, the higher version of the host architecture is preferred,
|
||||
otherwise the higher version of any foreign architecture is chosen.
|
||||
---
|
||||
src/ph_rpm.ml | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
|
||||
index e27d226..dbe3bda 100644
|
||||
--- a/src/ph_rpm.ml
|
||||
+++ b/src/ph_rpm.ml
|
||||
@@ -172,9 +172,14 @@ let rpm_package_of_string str =
|
||||
* architecture.
|
||||
*)
|
||||
let cmp (pkg1, evr1) (pkg2, evr2) =
|
||||
- let i = rpm_vercmp evr2 evr2 in
|
||||
+ let weight_of_arch = function
|
||||
+ | "noarch" -> 100
|
||||
+ | a when a = !rpm_arch -> 50
|
||||
+ | _ -> 0
|
||||
+ in
|
||||
+ let i = compare (weight_of_arch pkg2.arch) (weight_of_arch pkg1.arch) in
|
||||
if i <> 0 then i
|
||||
- else compare_architecture pkg2.arch pkg1.arch
|
||||
+ else rpm_vercmp evr2 evr2
|
||||
in
|
||||
let rpms = List.sort cmp rpms in
|
||||
fst (List.hd rpms)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
66
0009-utils-remove-unused-compare_architecture-function.patch
Normal file
66
0009-utils-remove-unused-compare_architecture-function.patch
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
From b2401285cd3e3d42006fc164ef1f046cc35a50c4 Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Fri, 12 Apr 2019 12:47:52 +0200
|
||||
Subject: [PATCH 09/12] utils: remove unused 'compare_architecture' function
|
||||
|
||||
This was used only in the RPM package handler.
|
||||
---
|
||||
src/utils.ml | 27 ---------------------------
|
||||
src/utils.mli | 3 ---
|
||||
2 files changed, 30 deletions(-)
|
||||
|
||||
diff --git a/src/utils.ml b/src/utils.ml
|
||||
index f85418f..b25df88 100644
|
||||
--- a/src/utils.ml
|
||||
+++ b/src/utils.ml
|
||||
@@ -172,33 +172,6 @@ and split_version = function
|
||||
) in
|
||||
first :: split_version rest
|
||||
|
||||
-let compare_architecture a1 a2 =
|
||||
- let index_of_architecture = function
|
||||
- | "noarch" | "all" -> 100
|
||||
- | "i386" | "i486" | "i586" | "i686" | "x86_32" | "x86-32" -> 32
|
||||
- | "x86_64" | "x86-64" | "amd64" -> 64
|
||||
- | "armel" | "armhf" -> 32
|
||||
- | "aarch64" -> 64
|
||||
- | a when string_prefix "armv5" a -> 32
|
||||
- | a when string_prefix "armv6" a -> 32
|
||||
- | a when string_prefix "armv7" a -> 32
|
||||
- | a when string_prefix "armv8" a -> 64
|
||||
- | "hppa" | "parisc" -> 32
|
||||
- | "hppa64" | "parisc64" -> 64
|
||||
- | "ppc" | "ppc32" -> 32
|
||||
- | a when string_prefix "ppc64" a -> 64
|
||||
- | "sparc" | "sparc32" -> 32
|
||||
- | "sparc64" -> 64
|
||||
- | "ia64" -> 64
|
||||
- | "s390" -> 32
|
||||
- | "s390x" -> 64
|
||||
- | "alpha" -> 64
|
||||
- | a ->
|
||||
- error "missing support for architecture '%s'\nIt may need to be added to supermin."
|
||||
- a
|
||||
- in
|
||||
- compare (index_of_architecture a1) (index_of_architecture a2)
|
||||
-
|
||||
(* Parse a size field, eg. "10G". *)
|
||||
let parse_size =
|
||||
let const_re = Str.regexp "^\\([.0-9]+\\)\\([bKMG]\\)$" in
|
||||
diff --git a/src/utils.mli b/src/utils.mli
|
||||
index 7837dbb..b86586a 100644
|
||||
--- a/src/utils.mli
|
||||
+++ b/src/utils.mli
|
||||
@@ -86,9 +86,6 @@ val filter_map : ('a -> 'b option) -> 'a list -> 'b list
|
||||
val compare_version : string -> string -> int
|
||||
(** Compare two version-like strings. *)
|
||||
|
||||
-val compare_architecture : string -> string -> int
|
||||
- (** Compare two architecture strings. *)
|
||||
-
|
||||
val parse_size : string -> int64
|
||||
(** Parse a size field, eg. [10G] *)
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From c97b3917068597a0e68e88d9a905da766ade40da Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Fri, 24 May 2019 13:31:07 +0200
|
||||
Subject: [PATCH 10/12] rpm: provide a dummy supermin_rpm_get_arch
|
||||
implementation
|
||||
|
||||
Make sure supermin builds fine also without the RPM development files.
|
||||
|
||||
Fixes commit e57e988c39aca015100fb92377dbd8d114c0bece.
|
||||
---
|
||||
src/librpm-c.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/librpm-c.c b/src/librpm-c.c
|
||||
index 2e2f048..523fe0b 100644
|
||||
--- a/src/librpm-c.c
|
||||
+++ b/src/librpm-c.c
|
||||
@@ -483,6 +483,12 @@ supermin_rpm_vercmp (value av, value bv)
|
||||
abort ();
|
||||
}
|
||||
|
||||
+value
|
||||
+supermin_rpm_get_arch (value unit)
|
||||
+{
|
||||
+ abort ();
|
||||
+}
|
||||
+
|
||||
value
|
||||
supermin_rpm_open (value debugv)
|
||||
{
|
||||
--
|
||||
2.23.0
|
||||
|
||||
58
0011-ext2-Build-symbolic-links-correctly-RHBZ-1770304.patch
Normal file
58
0011-ext2-Build-symbolic-links-correctly-RHBZ-1770304.patch
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
From 487e8c964078f823646d3b0584745ab7d0ef99ca Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 26 Nov 2019 09:01:21 +0000
|
||||
Subject: [PATCH 11/12] ext2: Build symbolic links correctly (RHBZ#1770304).
|
||||
|
||||
We created symlinks in two steps, by creating the empty inode and then
|
||||
calling ext2fs_symlink to populate it. This created broken symlinks
|
||||
where the directory name contained a / character, eg:
|
||||
|
||||
lrwxrwxrwx 1 root root 7 Nov 26 08:43 /bin -> usr/bin
|
||||
lrwxrwxrwx 1 root root 7 Nov 26 08:43 /lib -> usr/lib
|
||||
lrwxrwxrwx 1 root root 9 Nov 26 08:43 /lib64 -> usr/lib64
|
||||
lrwxrwxrwx 1 root root 8 Nov 26 08:43 /sbin -> usr/sbin
|
||||
lrwxrwxrwx 1 root root 7 Nov 26 08:38 bin -> usr/bin
|
||||
|
||||
This breaks with Linux >= 5.3.8, most likely because of extra
|
||||
validation now being done at the VFS layer:
|
||||
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/readdir.c?id=8a23eb804ca4f2be909e372cf5a9e7b30ae476cd
|
||||
|
||||
It's unnecessary to create the empty inode since ext2fs_symlink can
|
||||
create the inode for us perfectly fine if we simply pass ino == 0, and
|
||||
it creates them correctly too.
|
||||
|
||||
Thanks: Toolybird for identifying the problem and kernel patch.
|
||||
---
|
||||
src/ext2fs-c.c | 8 +-------
|
||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/ext2fs-c.c b/src/ext2fs-c.c
|
||||
index e8ab972..8903f74 100644
|
||||
--- a/src/ext2fs-c.c
|
||||
+++ b/src/ext2fs-c.c
|
||||
@@ -782,12 +782,6 @@ ext2_copy_file (struct ext2_data *data, const char *src, const char *dest)
|
||||
}
|
||||
/* Create a symlink. */
|
||||
else if (S_ISLNK (statbuf.st_mode)) {
|
||||
- ext2_ino_t ino;
|
||||
- ext2_empty_inode (data->fs, dir_ino, dirname, basename,
|
||||
- statbuf.st_mode, statbuf.st_uid, statbuf.st_gid,
|
||||
- statbuf.st_ctime, statbuf.st_atime, statbuf.st_mtime,
|
||||
- 0, 0, EXT2_FT_SYMLINK, &ino);
|
||||
-
|
||||
char *buf = malloc (statbuf.st_size+1);
|
||||
if (buf == NULL)
|
||||
caml_raise_out_of_memory ();
|
||||
@@ -797,7 +791,7 @@ ext2_copy_file (struct ext2_data *data, const char *src, const char *dest)
|
||||
if (r > statbuf.st_size)
|
||||
r = statbuf.st_size;
|
||||
buf[r] = '\0';
|
||||
- ext2fs_symlink (data->fs, dir_ino, ino, dest, buf);
|
||||
+ ext2fs_symlink (data->fs, dir_ino, 0, basename, buf);
|
||||
free (buf);
|
||||
}
|
||||
/* Create directory. */
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
From 62d5c774d6c8fcac11e28fcba99754b5478e5088 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 10 Dec 2019 18:43:00 +0000
|
||||
Subject: [PATCH 12/12] ext2: Expand directory when adding symlinks
|
||||
(RHBZ#1770304).
|
||||
|
||||
This produced very weird bugs with missing symlinks under
|
||||
certain conditions, see:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1781803
|
||||
|
||||
Fixes commit 487e8c964078f823646d3b0584745ab7d0ef99ca.
|
||||
---
|
||||
src/ext2fs-c.c | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/ext2fs-c.c b/src/ext2fs-c.c
|
||||
index 8903f74..0000865 100644
|
||||
--- a/src/ext2fs-c.c
|
||||
+++ b/src/ext2fs-c.c
|
||||
@@ -791,7 +791,18 @@ ext2_copy_file (struct ext2_data *data, const char *src, const char *dest)
|
||||
if (r > statbuf.st_size)
|
||||
r = statbuf.st_size;
|
||||
buf[r] = '\0';
|
||||
- ext2fs_symlink (data->fs, dir_ino, 0, basename, buf);
|
||||
+ symlink_again:
|
||||
+ err = ext2fs_symlink (data->fs, dir_ino, 0, basename, buf);
|
||||
+ if (err) {
|
||||
+ if (err == EXT2_ET_DIR_NO_SPACE) {
|
||||
+ err = ext2fs_expand_dir (data->fs, dir_ino);
|
||||
+ if (err)
|
||||
+ ext2_error_to_exception ("ext2fs_expand_dir", err, dirname);
|
||||
+ goto symlink_again;
|
||||
+ }
|
||||
+ else
|
||||
+ ext2_error_to_exception ("ext2fs_symlink", err, basename);
|
||||
+ }
|
||||
free (buf);
|
||||
}
|
||||
/* Create directory. */
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: xen-ci.brew-build.tier1.functional}
|
||||
4
sources
4
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (supermin-5.3.5.tar.gz) = e410bafe06805880f0f701e78d743a6e22e9d25e57bd70a020d583dba6d710ba9917d7afc37be714d9bde410c7ff35f4198300b3af0858d761b0b3e07af58dc0
|
||||
SHA512 (supermin-5.3.5.tar.gz.sig) = 88f446c3855367dd8917a6eb44d926f8a09dac9913d9098757951ccb3300f9e3544689a45d661382ae24221f8558bbfc188976f4db288829c28379b87949ed7e
|
||||
SHA512 (supermin-5.1.20.tar.gz) = ccc9ada98593f91399b323f0beb027185874f82547a1df4274c1206a9b6d4465e98b7aef5618274d41fb902747f6843fd2cc6192a4ea8526811261ac5a16848e
|
||||
SHA512 (supermin-5.1.20.tar.gz.sig) = e7c46fdf4105ffa3f6e02d6ed0b895a9af71470f5c650d129304187b977516343d17a861a9c53934eee559de374623f100f4736426de37ee78d5f5bc82d56096
|
||||
|
|
|
|||
272
supermin.spec
272
supermin.spec
|
|
@ -1,76 +1,71 @@
|
|||
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
|
||||
ExcludeArch: %{ix86}
|
||||
%ifnarch %{ocaml_native_compiler}
|
||||
%global __strip /bin/true
|
||||
%global debug_package %{nil}
|
||||
%endif
|
||||
|
||||
# On platforms and architectures that support it, the default is
|
||||
# ‘--with dietlibc’.
|
||||
# On architectures that support it, the default is ``--with dietlibc''.
|
||||
#
|
||||
# To use glibc-static instead, do ‘--without dietlibc’. This results
|
||||
# in a much larger (about 40 times larger) init binary.
|
||||
# To use glibc-static instead, do ``--without dietlibc''. This
|
||||
# results in a much larger (about 40 times larger) init binary.
|
||||
#
|
||||
# On other platforms, there is no dietlibc, so the default for those
|
||||
# is ‘--without dietlibc’.
|
||||
# is ``--without dietlibc''.
|
||||
#
|
||||
# See also:
|
||||
# https://github.com/libguestfs/supermin/commit/9bb57e1a8d0f3b57eb09f65dd574f702b67e1c2f
|
||||
|
||||
%if 0%{?rhel}
|
||||
%bcond_with dietlibc
|
||||
%else
|
||||
%ifarch aarch64 %{arm} %{ix86} %{power} s390x x86_64
|
||||
%bcond_without dietlibc
|
||||
%else
|
||||
%bcond_with dietlibc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} > 40 || 0%{?rhel} > 10
|
||||
%bcond_without dnf5
|
||||
%else
|
||||
%bcond_with dnf5
|
||||
%endif
|
||||
|
||||
# Whether we should verify tarball signature with GPGv2.
|
||||
%global verify_tarball_signature 1
|
||||
|
||||
# The source directory.
|
||||
%global source_directory 5.3-development
|
||||
|
||||
Summary: Tool for creating supermin appliances
|
||||
Name: supermin
|
||||
Version: 5.3.5
|
||||
Release: 7%{?dist}
|
||||
License: GPL-2.0-or-later
|
||||
Version: 5.1.20
|
||||
Release: 11%{?dist}
|
||||
License: GPLv2+
|
||||
|
||||
ExclusiveArch: %{kernel_arches}
|
||||
%if 0%{?rhel}
|
||||
# No qemu-kvm on POWER (RHBZ#1946532).
|
||||
ExcludeArch: %{power64}
|
||||
%if 0%{?rhel} >= 7
|
||||
ExclusiveArch: x86_64
|
||||
%endif
|
||||
|
||||
ExcludeArch: %{ix86}
|
||||
|
||||
URL: http://people.redhat.com/~rjones/supermin/
|
||||
Source0: http://download.libguestfs.org/supermin/%{source_directory}/%{name}-%{version}.tar.gz
|
||||
Source1: http://download.libguestfs.org/supermin/%{source_directory}/%{name}-%{version}.tar.gz.sig
|
||||
Source0: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz
|
||||
%if 0%{verify_tarball_signature}
|
||||
Source1: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz.sig
|
||||
%endif
|
||||
|
||||
# Keyring used to verify tarball signature.
|
||||
%if 0%{verify_tarball_signature}
|
||||
Source2: libguestfs.keyring
|
||||
%endif
|
||||
|
||||
# Use stable owner, group and mtime in base.tar.gz
|
||||
# Upstream in > 5.3.5
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2320025
|
||||
Patch1: 0001-prepare-Use-stable-owner-group-and-mtime-in-base.tar.patch
|
||||
# Upstream patches since 5.1.20 was released.
|
||||
Patch0001: 0001-rpm-extend-the-Multiple_matches-exception.patch
|
||||
Patch0002: 0002-Print-Librpm.Multiple_matches-exceptions.patch
|
||||
Patch0003: 0003-Use-external-command-mv-to-rename-old-output-directo.patch
|
||||
Patch0004: 0004-Add-OpenMandriva-support-RHBZ-1694267.patch
|
||||
Patch0005: 0005-rpm-do-not-unpack-parameters.patch
|
||||
Patch0006: 0006-rpm-fix-version-comparison.patch
|
||||
Patch0007: 0007-rpm-query-the-RPM-architecture.patch
|
||||
Patch0008: 0008-rpm-fix-package-sorting-RHBZ-1696822.patch
|
||||
Patch0009: 0009-utils-remove-unused-compare_architecture-function.patch
|
||||
Patch0010: 0010-rpm-provide-a-dummy-supermin_rpm_get_arch-implementa.patch
|
||||
Patch0011: 0011-ext2-Build-symbolic-links-correctly-RHBZ-1770304.patch
|
||||
Patch0012: 0012-ext2-Expand-directory-when-adding-symlinks-RHBZ-1770.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
BuildRequires: autoconf, automake
|
||||
BuildRequires: /usr/bin/pod2man
|
||||
BuildRequires: /usr/bin/pod2html
|
||||
BuildRequires: rpm
|
||||
BuildRequires: rpm-devel
|
||||
%if %{with dnf5}
|
||||
BuildRequires: dnf5
|
||||
%else
|
||||
BuildRequires: dnf
|
||||
BuildRequires: dnf-plugins-core
|
||||
%endif
|
||||
BuildRequires: /usr/sbin/mke2fs
|
||||
BuildRequires: e2fsprogs-devel
|
||||
BuildRequires: findutils
|
||||
|
|
@ -88,14 +83,6 @@ BuildRequires: gnupg2
|
|||
# tests to not require these packages.
|
||||
BuildRequires: augeas hivex kernel tar
|
||||
|
||||
%if 0%{?rhel}
|
||||
%ifarch s390x
|
||||
# On RHEL 9 s390x, kernel incorrectly pulls in kernel-zfcpdump-core
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2027654
|
||||
BuildRequires: kernel-core
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# For complicated reasons, this is required so that
|
||||
# /bin/kernel-install puts the kernel directly into /boot, instead of
|
||||
# into a /boot/<machine-id> subdirectory (in Fedora >= 23). Read the
|
||||
|
|
@ -104,19 +91,19 @@ BuildRequires: grubby
|
|||
# https://bugzilla.redhat.com/show_bug.cgi?id=1331012
|
||||
BuildRequires: systemd-udev
|
||||
|
||||
# This only includes the dependencies needed at runtime, ie. supermin
|
||||
# --build. For supermin --prepare, dependencies like dnf are placed
|
||||
# in the -devel subpackage.
|
||||
Requires: rpm
|
||||
Requires: dnf
|
||||
Requires: dnf-plugins-core
|
||||
Requires: util-linux-ng
|
||||
Requires: cpio
|
||||
Requires: tar
|
||||
Requires: /usr/sbin/mke2fs
|
||||
# RHBZ#771310
|
||||
Requires: e2fsprogs-libs >= 1.42
|
||||
Requires: findutils
|
||||
|
||||
# For automatic RPM dependency generation.
|
||||
# See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html
|
||||
# See: http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator
|
||||
Source3: supermin.attr
|
||||
Source4: supermin-find-requires
|
||||
|
||||
|
|
@ -127,31 +114,18 @@ appliances (similar to virtual machines), usually around 100KB in
|
|||
size, which get fully instantiated on-the-fly in a fraction of a
|
||||
second when you need to boot one of them.
|
||||
|
||||
Note that if you want to run 'supermin --prepare' you will need the
|
||||
extra dependencies provided by %{name}-devel.
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: Development tools for %{name}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: rpm-build
|
||||
|
||||
# Dependencies needed for supermin --prepare
|
||||
%if %{with dnf5}
|
||||
Requires: dnf5
|
||||
%else
|
||||
Requires: dnf
|
||||
Requires: dnf-plugins-core
|
||||
%endif
|
||||
Requires: findutils
|
||||
|
||||
|
||||
%description devel
|
||||
%{name}-devel contains development tools for %{name}.
|
||||
|
||||
It contains extra dependencies needed for 'supermin --prepare' to
|
||||
work, as well as tools for automatic RPM dependency generation from
|
||||
supermin appliances.
|
||||
It just contains tools for automatic RPM dependency generation
|
||||
from supermin appliances.
|
||||
|
||||
|
||||
%prep
|
||||
|
|
@ -163,12 +137,7 @@ supermin appliances.
|
|||
|
||||
|
||||
%build
|
||||
autoreconf -fi
|
||||
# Setting DNF is temporarily required for Rawhide. We should be able
|
||||
# to remove this later. See:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2209412
|
||||
# https://fedoraproject.org/wiki/Changes/ReplaceDnfWithDnf5
|
||||
%configure %{?with_dnf5:DNF=%{_bindir}/dnf5} --disable-network-tests
|
||||
%configure --disable-network-tests
|
||||
|
||||
%if %{with dietlibc}
|
||||
make -C init CC="diet gcc"
|
||||
|
|
@ -211,163 +180,6 @@ make check || {
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Oct 13 2025 Richard W.M. Jones <rjones@redhat.com> - 5.3.5-7
|
||||
- OCaml 5.4.0 rebuild
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.5-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Fri Jul 11 2025 Jerry James <loganjerry@gmail.com> - 5.3.5-5
|
||||
- Rebuild to fix OCaml dependencies
|
||||
|
||||
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.5-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jan 9 2025 Jerry James <loganjerry@gmail.com> - 5.3.5-3
|
||||
- OCaml 5.3.0 rebuild for Fedora 42
|
||||
|
||||
* Mon Oct 21 2024 Richard W.M. Jones <rjones@redhat.com> - 5.3.5-2
|
||||
- Use stable owner, group and mtime in base.tar.gz (RHBZ#2320025)
|
||||
|
||||
* Sat Aug 31 2024 Richard W.M. Jones <rjones@redhat.com> - 5.3.5-1
|
||||
- New upstream version 5.3.5
|
||||
|
||||
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.4-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 5.3.4-4
|
||||
- OCaml 5.2.0 ppc64le fix
|
||||
|
||||
* Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 5.3.4-3
|
||||
- OCaml 5.2.0 for Fedora 41
|
||||
|
||||
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Jan 11 2024 Richard W.M. Jones <rjones@redhat.com> - 5.3.4-1
|
||||
- New upstream version 5.3.4
|
||||
- Remove patches which are now all upstream.
|
||||
|
||||
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-19
|
||||
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
|
||||
|
||||
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-18
|
||||
- OCaml 5.1.1 rebuild for Fedora 40
|
||||
|
||||
* Fri Nov 10 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-17
|
||||
- Fix RISC-V gzip compressed kernels
|
||||
|
||||
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-16
|
||||
- OCaml 5.1 rebuild for Fedora 40
|
||||
|
||||
* Wed Aug 02 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 5.3.3-15
|
||||
- Defer dnf5 until Fedora 41
|
||||
|
||||
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.3-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Wed Jul 12 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-13
|
||||
- OCaml 5.0 rebuild for Fedora 39
|
||||
|
||||
* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 5.3.3-10
|
||||
- OCaml 5.0.0 rebuild
|
||||
|
||||
* Mon Jun 12 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-9
|
||||
- Fix --if-newer
|
||||
|
||||
* Mon Jun 05 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-8
|
||||
- Migrated to SPDX license
|
||||
|
||||
* Wed May 31 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-7
|
||||
- Further fix for dnf5 (RHBZ#2211386)
|
||||
|
||||
* Tue May 30 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-6
|
||||
- Add support for dnf5 (RHBZ#2209412)
|
||||
|
||||
* Fri May 19 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-5
|
||||
- Rebuild against librpm 10
|
||||
|
||||
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-4
|
||||
- Rebuild OCaml packages for F38
|
||||
|
||||
* Sat Jan 21 2023 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-3
|
||||
- Deal with new RPM database location
|
||||
- https://fedoraproject.org/wiki/Changes/RelocateRPMToUsr
|
||||
|
||||
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Tue Oct 18 2022 Richard W.M. Jones <rjones@redhat.com> - 5.3.3-1
|
||||
- New upstream development version 5.3.3
|
||||
|
||||
* Wed Sep 07 2022 Richard W.M. Jones <rjones@redhat.com> - 5.3.2-5
|
||||
- Include all upstream patches since 5.3.2
|
||||
- Add debugging and accurate exception backtraces (RHBZ#2124571).
|
||||
|
||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Sat Jun 18 2022 Richard W.M. Jones <rjones@redhat.com> - 5.3.2-3
|
||||
- OCaml 4.14.0 rebuild
|
||||
|
||||
* Sun May 15 2022 Richard W.M. Jones <rjones@redhat.com> - 5.3.2-2
|
||||
- Move dependency on dnf to -devel subpackage (RHBZ#2086302)
|
||||
|
||||
* Fri Mar 04 2022 Richard W.M. Jones <rjones@redhat.com> - 5.3.2-1
|
||||
- New upstream development version 5.3.2
|
||||
|
||||
* Fri Feb 04 2022 Richard W.M. Jones <rjones@redhat.com> - 5.3.1-5
|
||||
- OCaml 4.13.1 rebuild to remove package notes
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Dec 01 2021 Richard W.M. Jones <rjones@redhat.com> - 5.3.1-3
|
||||
- Further fix to ignore zfcpdump kernel on s390x
|
||||
|
||||
* Tue Nov 30 2021 Richard W.M. Jones <rjones@redhat.com> - 5.3.1-2
|
||||
- Ignore zfcpdump kernel on s390x
|
||||
|
||||
* Thu Aug 26 2021 Richard W.M. Jones <rjones@redhat.com> - 5.3.1-1
|
||||
- New upstream development version 5.3.1.
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Wed Jun 2 2021 Richard W.M. Jones <rjones@redhat.com> - 5.2.1-3
|
||||
- Add gating tests (for RHEL 9)
|
||||
|
||||
* Fri May 07 2021 Richard W.M. Jones <rjones@redhat.com> - 5.2.1-2
|
||||
- Do not include the package on POWER on RHEL 9
|
||||
resolves: rhbz#1956934
|
||||
|
||||
* Mon Feb 01 2021 Richard W.M. Jones <rjones@redhat.com> - 5.2.1-1
|
||||
- New upstream version 5.2.1.
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Thu Jan 14 2021 Richard W.M. Jones <rjones@redhat.com> - 5.2.0-6
|
||||
- Remove inactive strip override (see RHBZ#1915570).
|
||||
|
||||
* Mon Nov 23 2020 Richard W.M. Jones <rjones@redhat.com> - 5.2.0-5
|
||||
- Disable dietlibc on RHEL 9.
|
||||
|
||||
* Fri Aug 07 2020 Troy Dawson <tdawson@redhat.com> - 5.2.0-4
|
||||
- Use ExclusiveArch: %{kernel_arches}
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Fri Apr 03 2020 Richard W.M. Jones <rjones@redhat.com> - 5.2.0-2
|
||||
- ppc64le: ibmvscsi driver missing from supermin appliance (RHBZ#1819019).
|
||||
|
||||
* Tue Mar 10 2020 Richard W.M. Jones <rjones@redhat.com> - 5.2.0-1
|
||||
- New upstream stable version 5.2.0.
|
||||
|
||||
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.20-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Tue Dec 10 2019 Richard W.M. Jones <rjones@redhat.com> - 5.1.20-11
|
||||
- Add further patch to fix symlinks (RHBZ#1770304).
|
||||
- Add all patches since 5.1.20 was released.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue