SHA256
1
0
forked from pool/supermin

Accepting request 1187213 from Virtualization

Update supermin to version 5.3.4

OBS-URL: https://build.opensuse.org/request/show/1187213
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/supermin?expand=0&rev=24
This commit is contained in:
Ana Guerrero 2024-07-15 17:46:37 +00:00 committed by Git OBS Bridge
commit 1fd5edecf9
17 changed files with 56 additions and 339 deletions

View File

@ -1,47 +0,0 @@
Subject: src: Improved debugging of the supermin if-newer calculation
From: Richard W.M. Jones rjones@redhat.com Mon Jun 12 12:51:56 2023 +0100
Date: Mon Jun 12 12:57:32 2023 +0100:
Git: 8dd37da1b5979842b0db44b44655eeaf621f7ac9
Also I expanded the code to make it easier to read. There is no
change to the calculation intended.
--- a/src/supermin.ml
+++ b/src/supermin.ml
@@ -239,10 +239,33 @@ appliance automatically.
try
let outputs = Mode_build.get_outputs args inputs in
let outputs = List.map ((//) outputdir) outputs in
- let odates = List.map (fun d -> (lstat d).st_mtime) (outputdir :: outputs) in
- let idates = List.map (fun d -> (lstat d).st_mtime) inputs in
+ let outputs = outputdir :: outputs in
+ let odates = List.map (fun f -> (lstat f).st_mtime) outputs in
+ if debug >= 2 then (
+ List.iter (
+ fun f ->
+ printf "supermin: if-newer: output %s => %.2f\n"
+ f (lstat f).st_mtime
+ ) outputs;
+ );
+ let idates = List.map (fun f -> (lstat f).st_mtime) inputs in
+ if debug >= 2 then (
+ List.iter (
+ fun f ->
+ printf "supermin: if-newer: input %s => %.2f\n"
+ f (lstat f).st_mtime
+ ) inputs;
+ );
let pdate = (get_package_handler ()).ph_get_package_database_mtime () in
- if List.for_all (fun idate -> List.for_all (fun odate -> idate < odate) odates) (pdate :: idates) then (
+ if debug >= 2 then (
+ printf "supermin: if-newer: package database date: %.2f\n" pdate;
+ );
+ let older =
+ List.for_all (
+ fun idate ->
+ List.for_all (fun odate -> idate < odate) odates
+ ) (pdate :: idates) in
+ if older then (
if debug >= 1 then
printf "supermin: if-newer: output does not need rebuilding\n%!";
exit 0

View File

@ -1,33 +0,0 @@
Subject: src: Fix --if-newer --copy-kernel
From: Richard W.M. Jones rjones@redhat.com Mon Jun 12 13:02:37 2023 +0100
Date: Mon Jun 12 13:07:51 2023 +0100:
Git: 8c38641042e274a713a18daf7fc85584ca0fc9bb
We previously copied the kernel into the appliance using 'cp -p' which
preserves the datestamps of the installed kernel. This can confuse
the --if-newer calculation, if for example the package database is
newer than the date on the installed kernel (which quite often is the
case). This makes it think that the appliance is always older than
the package database, thus forcing a rebuild.
We can fix this using 'cp' instead of 'cp -p'. We don't need the
permissions and datestamps on the copied kernel to be preserved anyway
(in fact, it could cause problems if the permissions are restrictive).
Fixes: commit 30de2cb603cdde33524a66d5466f6a9b986ce8a6
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
index c592703..6d2e699 100644
--- a/src/format_ext2_kernel.ml
+++ b/src/format_ext2_kernel.ml
@@ -311,6 +311,9 @@ and copy_or_symlink_file copy_kernel src dest =
if not copy_kernel then
symlink src dest
else (
- let cmd = sprintf "cp -p %s %s" (quote src) (quote dest) in
+ (* NB: Do not use -p here, we want the kernel to appear newer
+ * so that --if-newer works.
+ *)
+ let cmd = sprintf "cp %s %s" (quote src) (quote dest) in
run_command cmd
)

View File

@ -1,18 +0,0 @@
Subject: src/format_ext2_kernel.ml: Fix kernel filtering for aarch64 architecture
From: Simon Fischer 1522981+Fischer-Simon@users.noreply.github.com Wed Jul 12 17:10:53 2023 +0200
Date: Wed Jul 12 17:10:53 2023 +0200:
Git: 4b3922feb65150f3423d0877038c5ba6e16d910c
Add appropriate globs for arm based kernels. The file names end in -arm64 but the architecture is named aarch64.
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
index 6d2e699..4589552 100644
--- a/src/format_ext2_kernel.ml
+++ b/src/format_ext2_kernel.ml
@@ -187,6 +187,7 @@ and patt_of_cpu host_cpu =
| "amd64" | "x86_64" -> ["amd64"; "x86_64"]
| "parisc" | "parisc64" -> ["hppa"; "hppa64"]
| "ppc64el" -> ["powerpc64le"]
+ | "aarch64" -> ["aarch64"; "arm64"]
| _ when host_cpu.[0] = 'i' && host_cpu.[2] = '8' && host_cpu.[3] = '6' -> ["?86"]
| _ when String.length host_cpu >= 5 && String.sub host_cpu 0 5 = "armv7" -> ["armmp"]
| _ -> [host_cpu]

View File

@ -1,27 +0,0 @@
Subject: ocamlc: Use -output-complete-exe instead of -custom
From: Richard W.M. Jones rjones@redhat.com Wed Jul 12 22:37:58 2023 +0100
Date: Wed Jul 12 22:40:27 2023 +0100:
Git: dc80dbbef60d5d81a7d4321683a8c7305dc04972
This prevents bytecode executables from being broken by strip and
similar tools. Note this is incompatible with OCaml < 4.10 (so breaks
RHEL 8). However this only affects bytecode builds which we prefer
not to use in RHEL. I left the old option in the Makefile so that it
could be uncommented by someone using older OCaml + bytecode. We need
this for OCaml 5.0 since that drops native backends (temporarily) for
riscv64, s390x and ppc64le.
diff --git a/src/Makefile.am b/src/Makefile.am
index 5b07e5d..5a1c671 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -132,7 +132,8 @@ OCAMLFLAGS = -g -warn-error +C+D+E+F+L+M+P+S+U+V+X+Y+Z-3
if !HAVE_OCAMLOPT
OBJECTS = $(BOBJECTS)
BEST = c
-OCAMLFLAGS += -custom
+#OCAMLFLAGS += -custom # for OCaml < 4.10
+OCAMLFLAGS += -output-complete-exe
else
OBJECTS = $(XOBJECTS)
BEST = opt

View File

@ -1,36 +0,0 @@
Subject: ocamlc: Only supply -output-complete-exe to final link
From: Richard W.M. Jones rjones@redhat.com Wed Jul 12 22:51:43 2023 +0100
Date: Wed Jul 12 22:51:43 2023 +0100:
Git: 59a8ffc40db94a38879d9c923520e0bd70ffa271
Add a separate variable to store link flags, and use that to supply
-output-complete-exe. Apparently ocamlc ignores -custom in the wrong
place.
Fixes: dc80dbbef60d5d81a7d4321683a8c7305dc04972
diff --git a/src/Makefile.am b/src/Makefile.am
index 5a1c671..1268aa5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -132,8 +132,8 @@ OCAMLFLAGS = -g -warn-error +C+D+E+F+L+M+P+S+U+V+X+Y+Z-3
if !HAVE_OCAMLOPT
OBJECTS = $(BOBJECTS)
BEST = c
-#OCAMLFLAGS += -custom # for OCaml < 4.10
-OCAMLFLAGS += -output-complete-exe
+#OCAMLLINKFLAGS = -custom # for OCaml < 4.10
+OCAMLLINKFLAGS = -output-complete-exe
else
OBJECTS = $(XOBJECTS)
BEST = opt
@@ -143,7 +143,8 @@ supermin_DEPENDENCIES = $(OBJECTS)
supermin_LINK = \
./supermin-link.sh \
- $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) \
+ $(OCAMLFIND) $(BEST) $(OCAMLLINKFLAGS) $(OCAMLFLAGS) \
+ $(OCAMLPACKAGES) \
$(OBJECTS) -o $@
.mli.cmi:

View File

@ -1,29 +0,0 @@
Subject: src/format_ext2_kernel.ml: Rename function file -> kernel
From: Richard W.M. Jones rjones@redhat.com Fri Nov 10 08:55:25 2023 +0000
Date: Fri Nov 10 08:55:25 2023 +0000:
Git: 9a0d078dc35fde7a715666bce6c765ed5fe5e916
No change, just rename the function.
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
index 4589552..36514c6 100644
--- a/src/format_ext2_kernel.ml
+++ b/src/format_ext2_kernel.ml
@@ -54,7 +54,7 @@ let rec build_kernel debug host_cpu copy_kernel kernel =
printf "supermin: kernel: modpath %s\n%!" modpath;
);
- copy_or_symlink_file copy_kernel kernel_file kernel;
+ copy_or_symlink_kernel copy_kernel kernel_file kernel;
(kernel_version, modpath)
@@ -308,7 +308,7 @@ and read_string chan offset len =
really_input chan buf 0 len;
Bytes.to_string buf
-and copy_or_symlink_file copy_kernel src dest =
+and copy_or_symlink_kernel copy_kernel src dest =
if not copy_kernel then
symlink src dest
else (

View File

@ -1,66 +0,0 @@
Subject: src: Uncompress kernel on RISC-V
From: Richard W.M. Jones rjones@redhat.com Fri Nov 10 10:20:49 2023 +0000
Date: Fri Nov 10 10:28:21 2023 +0000:
Git: 5230e2c3cd07e82bd6431e871e239f7056bf25ad
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
index 36514c6..09a3f21 100644
--- a/src/format_ext2_kernel.ml
+++ b/src/format_ext2_kernel.ml
@@ -25,6 +25,20 @@ open Ext2fs
open Fnmatch
open Glob
+(* Similar but not the same as get_file_type in mode_build. There
+ * is a case for deriving a common base utility. XXX
+ *)
+type compression_type = GZip | Uncompressed
+let get_compression_type file =
+ let chan = open_in file in
+ let buf = Bytes.create 512 in
+ let len = input chan buf 0 (Bytes.length buf) in
+ close_in chan;
+ let buf = Bytes.to_string buf in
+ if len >= 3 && buf.[0] = '\x1f' && buf.[1] = '\x8b' && buf.[2] = '\x08'
+ then GZip
+ else Uncompressed (* or other unknown compression type *)
+
let rec build_kernel debug host_cpu copy_kernel kernel =
(* Locate the kernel.
* SUPERMIN_* environment variables override everything. If those
@@ -54,7 +68,19 @@ let rec build_kernel debug host_cpu copy_kernel kernel =
printf "supermin: kernel: modpath %s\n%!" modpath;
);
- copy_or_symlink_kernel copy_kernel kernel_file kernel;
+ (* RISC-V relies on the bootloader or firmware to uncompress the
+ * kernel and doesn't have a concept of self-extracting kernels.
+ * On Arm which is similar, qemu -kernel will automatically uncompress
+ * the kernel, but qemu-system-riscv won't do that and the code is a
+ * big mess so I don't fancy fixing it. So we have to detect that
+ * case here and uncompress the kernel.
+ *)
+ let kernel_compression_type = get_compression_type kernel_file in
+ if string_prefix "riscv" host_cpu && kernel_compression_type <> Uncompressed
+ then
+ copy_and_uncompress_kernel kernel_compression_type kernel_file kernel
+ else
+ copy_or_symlink_kernel copy_kernel kernel_file kernel;
(kernel_version, modpath)
@@ -308,6 +334,13 @@ and read_string chan offset len =
really_input chan buf 0 len;
Bytes.to_string buf
+and copy_and_uncompress_kernel compression_type src dest =
+ let cmd =
+ match compression_type with
+ | GZip -> sprintf "zcat %s > %s" (quote src) (quote dest)
+ | Uncompressed -> sprintf "cp %s %s" (quote src) (quote dest) in
+ run_command cmd
+
and copy_or_symlink_kernel copy_kernel src dest =
if not copy_kernel then
symlink src dest

View File

@ -1,21 +0,0 @@
Subject: init: Fix link to renamed kernel documentation
From: Richard W.M. Jones rjones@redhat.com Mon Nov 13 10:13:26 2023 +0000
Date: Mon Nov 13 10:13:26 2023 +0000:
Git: c8e79b7d62730f850f9e5d46c3747f414198b902
diff --git a/init/init.c b/init/init.c
index bc28c69..4cc72f7 100644
--- a/init/init.c
+++ b/init/init.c
@@ -279,8 +279,8 @@ main ()
fprintf (stderr, "supermin: deleting initramfs files\n");
delete_initramfs_files ();
- /* Note that pivot_root won't work. See the note in
- * Documentation/filesystems/ramfs-rootfs-initramfs.txt
+ /* Note that pivot_root won't work. See the note in Linux
+ * Documentation/filesystems/ramfs-rootfs-initramfs.rst
*/
if (!quiet)
fprintf (stderr, "supermin: chroot\n");

View File

@ -1,19 +0,0 @@
Subject: New mailing list email address
From: Richard W.M. Jones rjones@redhat.com Thu Nov 16 10:43:11 2023 +0000
Date: Thu Nov 16 10:43:11 2023 +0000:
Git: 7e4f0931e1ee47c7fbe7e1a9917fff68a18d9235
diff --git a/README b/README
index a74993b..fe298b4 100644
--- a/README
+++ b/README
@@ -143,7 +143,7 @@ See the examples/ subdirectory.
Feedback and bugs
-----------------
-Send feedback to libguestfs@redhat.com. You can file bugs in
+Send feedback to guestfs@lists.libguestfs.org. You can file bugs in
https://bugzilla.redhat.com/ (under "Fedora", "supermin")
Alternate libc

View File

@ -1,11 +1,12 @@
--- supermin-5.2.1/tests/test-if-newer-ext2.sh.orig 2021-08-25 10:58:41.452745319 -0600
+++ supermin-5.2.1/tests/test-if-newer-ext2.sh 2021-08-25 10:59:35.324746603 -0600
@@ -43,7 +43,7 @@ run_supermin
# No changes, hence nothing to do.
run_supermin > test-if-newer-ext2.out
cat test-if-newer-ext2.out
-grep 'if-newer: output does not need rebuilding' test-if-newer-ext2.out
+#grep 'if-newer: output does not need rebuilding' test-if-newer-ext2.out
rm test-if-newer-ext2.out
--- supermin-5.3.4/tests/Makefile.am.orig 2024-07-12 09:00:00.700673571 -0600
+++ supermin-5.3.4/tests/Makefile.am 2024-07-12 09:00:14.828673908 -0600
@@ -28,8 +28,7 @@ TESTS = \
test-execstack.sh \
test-build-bash.sh \
test-binaries-exist.sh \
- test-harder.sh \
- test-if-newer-ext2.sh
+ test-harder.sh
# Try removing any of the files, and check that supermin will detect that.
if NETWORK_TESTS
TESTS += \

BIN
supermin-5.3.3.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmNOrGARHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKAgHA/9EFGRdvIryS5UUcXz9yvaYs5WvMtuPn9s
Dcb7lVwLsMkVpcMulOyN1sPTI4WkgqKeXSvSJXfby/Loon8p8aTlSDZkEhivMpDG
TliKX5P8kySC+9KXSKfzHyVwKd6j/pmLtw3QvpgwuZPYdkIHzVluWKd1ql6nbLh/
LsSg2YNyJi48i/W64xEGN0ENviYMmHoNnE56nFEApwHfG26j5bHvLZJqjFYS5ClF
CJtoaAOEEAySbJmbKTxCByk44CxjfpUHHwupJ+QKoXIJmYFVAQO2jrW3zvR7zRyI
rA1Woaqmft3PDszH9565AD34FFmXQ70+GOanO7tH1uk0wgK+lgpZpb0UMzcNBSPh
6cU4wY4nvxww39HdGLQ95au54Lp4I90S8MGrtO7XD0N2fA6QlbcSMnpM3LM4CZDi
g7SUeqWy6PRoqd6vEvO9MgAOIg/YbcnRCFZsUe2na04FvKI0jWFwor1Xm0RJIQrf
ufpLjKG1hpjbQa0Hu0RISVKBMMnLfCg3Z5xMWq0mVysdGrJzWrTqYT5Os8KOU+04
0Ni1DWw+o3CNacTVmOroRvsUYPzQiivutNgPovRaVIL4u6OwWw+tUtxRCpZlxzc/
m00IGHLgKwdbHTShRqzp6P2QcuXS7SGv9EqNL7yJL3kvc5INp4XJ3QHDdpO2hz5S
10cJfC6ph1o=
=FSUE
-----END PGP SIGNATURE-----

3
supermin-5.3.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc0322991bea1fcc6355518474b39e2d4a341f1e2c36fd98f14c3446ef79ff70
size 226468

17
supermin-5.3.4.tar.gz.sig Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmWf3ZIRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKA6YBAApKMian3rGdXB4NDYC4lluPhDPKhlVYax
hVZGuhqFXnTIzH0djjiKKe1jkPCPjDzCfp8OIFdgzj4HUaHI2N5gUeBHINa7HJi/
AlsR33v+Wgw82I/oiEZiwAyDP+gX29M6j7tQnJEo8yj+sSOWEWp/sKTi6u1v/Za0
N7DkRFf2mLeOo/W2MPkkA9YtUbjr/TzJBVv1OSo1ufOH9yZI+fx9B5lO1NMojcsG
Km34sCzx0exv9DzkSOzhzMox7fCmBMpUDrx12Z1LX416dLMiiHVBc7SeTDTz8rPu
jwRzF7WJpkAJxCKQc7vwNQb+XOGOh8SoEhwqMeGc/96y/IGf0h67Cz8TEm2DSdcq
AvfaHlzsRObO9ZfeBPe5IdUMgZWBrAUD4jg4bWZVn0Fk9ibEZmaNNxY9Aa0nGCJc
tjj7tzmriwYI7Rfu3jP9DmBH6CBaXd54eMxQMgZGaqJi2ad7aVWDTbTKKk5bgfhw
bzplpnklIFomGwh4T7EkmiJiDbHlUEAGnulH6eQb26DCnzhQvaqo6J1/QA/XSK0L
PzrzcW8n2gRmzdxKZhXd2TxYkcbZYSeUuf0z0TfZijLn+lz5hM8sNdTHnoU1p60h
cuO3835oNI+j+4HdHhqPnjM9lurnPmIEb1b9bugQrP5PxrXTEADyNccwWZbAOKur
fOgPyWyATTA=
=2lcO
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Wed Jul 10 15:34:55 MDT 2024 - carnold@suse.com
- Update to version 5.3.4 (jsc#PED-6305)
* Add support for OCaml 5
* Add kylinsecos support
* rpm: Detect dnf5 and omit missing options
* ocamlc: Use -output-complete-exe instead of -custom
* Fix kernel filtering for aarch64 architecture
* Uncompress kernel on RISC-V
- Drop patches contained in new tarball
001-Improved-debugging-of-the-supermin-if-newer-calculation.patch
002-Fix-if-newer-copy-kernel.patch
003-Fix-kernel-filtering-for-aarch64-architecture.patch
004-Use-output-complete-exe-instead-of-custom.patch
005-Only-supply-output-complete-exe-to-final-link.patch
006-Rename-function-file-kernel.patch
007-Uncompress-kernel-on-RISC-V.patch
008-Fix-link-to-renamed-kernel-documentation.patch
009-New-mailing-list-email-address.patch
-------------------------------------------------------------------
Mon May 6 15:27:43 MDT 2024 - carnold@suse.com

View File

@ -17,24 +17,15 @@
Name: supermin
Version: 5.3.3
Version: 5.3.4
Release: 0
Summary: Bootstrapping tool for creating supermin appliances
License: GPL-3.0-or-later
Group: System/Filesystems
URL: https://libguestfs.org/
Source0: https://download.libguestfs.org/supermin/5.3-development/supermin-5.3.3.tar.gz
Source1: https://download.libguestfs.org/supermin/5.3-development/supermin-5.3.3.tar.gz.sig
Source0: https://download.libguestfs.org/supermin/5.3-development/supermin-5.3.4.tar.gz
Source1: https://download.libguestfs.org/supermin/5.3-development/supermin-5.3.4.tar.gz.sig
Source9: supermin.keyring
Patch1: 001-Improved-debugging-of-the-supermin-if-newer-calculation.patch
Patch2: 002-Fix-if-newer-copy-kernel.patch
Patch3: 003-Fix-kernel-filtering-for-aarch64-architecture.patch
Patch4: 004-Use-output-complete-exe-instead-of-custom.patch
Patch5: 005-Only-supply-output-complete-exe-to-final-link.patch
Patch6: 006-Rename-function-file-kernel.patch
Patch7: 007-Uncompress-kernel-on-RISC-V.patch
Patch8: 008-Fix-link-to-renamed-kernel-documentation.patch
Patch9: 009-New-mailing-list-email-address.patch
Patch30: suse_release.patch
Patch31: supermin-kernel_version_compressed.patch
Patch32: disable-test-if-newer-ext2.patch

View File

@ -53,7 +53,7 @@
+ be read or the ID_LIKE field is not defined. *)
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -45,6 +45,7 @@ let opensuse_detect () =
@@ -46,6 +46,7 @@ let opensuse_detect () =
Config.zypper <> "no" &&
(List.mem (Os_release.get_id ()) [ "sled"; "sles" ] ||
string_prefix "opensuse" (Os_release.get_id ()) ||