Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package supermin for openSUSE:Factory checked in at 2024-01-05 21:43:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/supermin (Old) and /work/SRC/openSUSE:Factory/.supermin.new.28375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "supermin" Fri Jan 5 21:43:23 2024 rev:21 rq:1136944 version:5.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/supermin/supermin.changes 2023-01-03 18:49:30.882193013 +0100 +++ /work/SRC/openSUSE:Factory/.supermin.new.28375/supermin.changes 2024-01-05 21:45:47.827901813 +0100 @@ -1,0 +2,25 @@ +Thu Jan 4 11:07:03 MST 2024 - carn...@suse.com + +- Update to version 5.3.3 + * initrd: Support ztd-compressed modules + * pacman: Recognise Artix, an Arch derivative + * Add a separate variable to store link flags, and use that to + supply + * Add appropriate globs for arm based kernels. The file names end + in -arm64 but the architecture is named aarch64. + * Add support for OCaml 5.0 + * Add LFS support for fts functions + * Numerous bug fixes +- Upstream bug fixes and features + 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 +- Dropped initrd_support_ztd-compressed_modules.patch + +------------------------------------------------------------------- Old: ---- initrd_support_ztd-compressed_modules.patch supermin-5.2.2.tar.gz supermin-5.2.2.tar.gz.sig New: ---- 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 supermin-5.3.3.tar.gz supermin-5.3.3.tar.gz.sig BETA DEBUG BEGIN: Old: 009-New-mailing-list-email-address.patch - Dropped initrd_support_ztd-compressed_modules.patch BETA DEBUG END: BETA DEBUG BEGIN: New:- Upstream bug fixes and features 001-Improved-debugging-of-the-supermin-if-newer-calculation.patch 002-Fix-if-newer-copy-kernel.patch New: 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 New: 002-Fix-if-newer-copy-kernel.patch 003-Fix-kernel-filtering-for-aarch64-architecture.patch 004-Use-output-complete-exe-instead-of-custom.patch New: 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 New: 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 New: 005-Only-supply-output-complete-exe-to-final-link.patch 006-Rename-function-file-kernel.patch 007-Uncompress-kernel-on-RISC-V.patch New: 006-Rename-function-file-kernel.patch 007-Uncompress-kernel-on-RISC-V.patch 008-Fix-link-to-renamed-kernel-documentation.patch New: 007-Uncompress-kernel-on-RISC-V.patch 008-Fix-link-to-renamed-kernel-documentation.patch 009-New-mailing-list-email-address.patch New: 008-Fix-link-to-renamed-kernel-documentation.patch 009-New-mailing-list-email-address.patch - Dropped initrd_support_ztd-compressed_modules.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ supermin.spec ++++++ --- /var/tmp/diff_new_pack.UNtoS8/_old 2024-01-05 21:45:50.103985107 +0100 +++ /var/tmp/diff_new_pack.UNtoS8/_new 2024-01-05 21:45:50.107985253 +0100 @@ -1,7 +1,7 @@ # # spec file for package supermin # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,22 +17,28 @@ Name: supermin -Version: 5.2.2 +Version: 5.3.3 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.2-stable/supermin-5.2.2.tar.gz -Source1: https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.2.tar.gz.sig +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 Source9: supermin.keyring -# Pending upstream review -Patch10: suse_release.patch -Patch11: supermin-kernel_version_compressed.patch -Patch12: disable-test-if-newer-ext2.patch -# Backport of https://github.com/libguestfs/supermin/commit/4306a131c6cde92f8d0a2dd9376f4096ee538eff.patch -Patch13: initrd_support_ztd-compressed_modules.patch -Patch14: detect-aarch64-kernel.patch +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 +Patch33: detect-aarch64-kernel.patch BuildRequires: augeas BuildRequires: autoconf BuildRequires: automake ++++++ 001-Improved-debugging-of-the-supermin-if-newer-calculation.patch ++++++ Subject: src: Improved debugging of the supermin if-newer calculation From: Richard W.M. Jones rjo...@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 ++++++ 002-Fix-if-newer-copy-kernel.patch ++++++ Subject: src: Fix --if-newer --copy-kernel From: Richard W.M. Jones rjo...@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 ) ++++++ 003-Fix-kernel-filtering-for-aarch64-architecture.patch ++++++ Subject: src/format_ext2_kernel.ml: Fix kernel filtering for aarch64 architecture From: Simon Fischer 1522981+fischer-si...@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] ++++++ 004-Use-output-complete-exe-instead-of-custom.patch ++++++ Subject: ocamlc: Use -output-complete-exe instead of -custom From: Richard W.M. Jones rjo...@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 ++++++ 005-Only-supply-output-complete-exe-to-final-link.patch ++++++ Subject: ocamlc: Only supply -output-complete-exe to final link From: Richard W.M. Jones rjo...@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: ++++++ 006-Rename-function-file-kernel.patch ++++++ Subject: src/format_ext2_kernel.ml: Rename function file -> kernel From: Richard W.M. Jones rjo...@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 ( ++++++ 007-Uncompress-kernel-on-RISC-V.patch ++++++ Subject: src: Uncompress kernel on RISC-V From: Richard W.M. Jones rjo...@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 ++++++ 008-Fix-link-to-renamed-kernel-documentation.patch ++++++ Subject: init: Fix link to renamed kernel documentation From: Richard W.M. Jones rjo...@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"); ++++++ 009-New-mailing-list-email-address.patch ++++++ Subject: New mailing list email address From: Richard W.M. Jones rjo...@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 libgues...@redhat.com. You can file bugs in +Send feedback to gues...@lists.libguestfs.org. You can file bugs in https://bugzilla.redhat.com/ (under "Fedora", "supermin") Alternate libc ++++++ detect-aarch64-kernel.patch ++++++ --- /var/tmp/diff_new_pack.UNtoS8/_old 2024-01-05 21:45:50.299992280 +0100 +++ /var/tmp/diff_new_pack.UNtoS8/_new 2024-01-05 21:45:50.307992573 +0100 @@ -1,10 +1,10 @@ References: bsc#1187532 - virt-make-fs hangs forever -Index: supermin-5.2.2/src/format_ext2_kernel.ml +Index: supermin-5.3.3/src/format_ext2_kernel.ml =================================================================== ---- supermin-5.2.2.orig/src/format_ext2_kernel.ml -+++ supermin-5.2.2/src/format_ext2_kernel.ml -@@ -129,7 +129,7 @@ and find_kernel_from_boot debug host_cpu +--- supermin-5.3.3.orig/src/format_ext2_kernel.ml ++++ supermin-5.3.3/src/format_ext2_kernel.ml +@@ -155,7 +155,7 @@ and find_kernel_from_boot debug host_cpu if files <> [] then files else ( (* In original: ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen *) @@ -13,7 +13,7 @@ let files = ignore_unbootable_kernels host_cpu files in files ) in -@@ -235,9 +235,14 @@ and get_kernel_version debug kernel_file +@@ -262,9 +262,14 @@ and get_kernel_version debug kernel_file else ( basename ) in ++++++ supermin-5.2.2.tar.gz -> supermin-5.3.3.tar.gz ++++++ ++++ 64960 lines of diff (skipped) ++++++ supermin-kernel_version_compressed.patch ++++++ --- /var/tmp/diff_new_pack.UNtoS8/_old 2024-01-05 21:45:50.596003112 +0100 +++ /var/tmp/diff_new_pack.UNtoS8/_new 2024-01-05 21:45:50.600003259 +0100 @@ -1,6 +1,6 @@ --- a/src/format_ext2_kernel.ml +++ b/src/format_ext2_kernel.ml -@@ -225,6 +225,16 @@ and get_kernel_version debug kernel_file +@@ -252,6 +252,16 @@ and get_kernel_version debug kernel_file | None -> (* Try to work it out from the filename instead. *) let basename = Filename.basename kernel_file in ++++++ suse_release.patch ++++++ --- /var/tmp/diff_new_pack.UNtoS8/_old 2024-01-05 21:45:50.620003991 +0100 +++ /var/tmp/diff_new_pack.UNtoS8/_new 2024-01-05 21:45:50.624004137 +0100 @@ -53,7 +53,7 @@ + be read or the ID_LIKE field is not defined. *) --- a/src/ph_rpm.ml +++ b/src/ph_rpm.ml -@@ -43,6 +43,7 @@ let opensuse_detect () = +@@ -45,6 +45,7 @@ let opensuse_detect () = Config.zypper <> "no" && (List.mem (Os_release.get_id ()) [ "sled"; "sles" ] || string_prefix "opensuse" (Os_release.get_id ()) ||