From d5708718458313c754349c34aed725863d16ac80 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 9 May 2023 05:18:26 +0000 Subject: [PATCH] import supermin-5.3.3-1.el9 --- .gitignore | 2 +- .supermin.metadata | 2 +- ...ile-to-avoid-lstat-Value-too-large-f.patch | 180 ------------------ ...0002-Ignore-zfcpdump-kernel-on-s390x.patch | 28 --- ...re-unbootable-kernels-in-lib-modules.patch | 108 ----------- SOURCES/0004-Ignore-debug-kernels.patch | 34 ---- SOURCES/supermin-5.2.1.tar.gz.sig | 17 -- SOURCES/supermin-5.3.3.tar.gz.sig | 17 ++ SPECS/supermin.spec | 44 +++-- 9 files changed, 46 insertions(+), 386 deletions(-) delete mode 100644 SOURCES/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch delete mode 100644 SOURCES/0002-Ignore-zfcpdump-kernel-on-s390x.patch delete mode 100644 SOURCES/0003-Ignore-unbootable-kernels-in-lib-modules.patch delete mode 100644 SOURCES/0004-Ignore-debug-kernels.patch delete mode 100644 SOURCES/supermin-5.2.1.tar.gz.sig create mode 100644 SOURCES/supermin-5.3.3.tar.gz.sig diff --git a/.gitignore b/.gitignore index fd8e426..2ef439d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ SOURCES/libguestfs.keyring -SOURCES/supermin-5.2.1.tar.gz +SOURCES/supermin-5.3.3.tar.gz diff --git a/.supermin.metadata b/.supermin.metadata index 9b30f0a..c58d97e 100644 --- a/.supermin.metadata +++ b/.supermin.metadata @@ -1,2 +1,2 @@ 1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring -7a5a5ee7c9b13b88bc3e7719f4639da52a84aafd SOURCES/supermin-5.2.1.tar.gz +0d6c5baa0dc7f535bea18611e11d5590be28d168 SOURCES/supermin-5.3.3.tar.gz diff --git a/SOURCES/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch b/SOURCES/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch deleted file mode 100644 index 245a63b..0000000 --- a/SOURCES/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch +++ /dev/null @@ -1,180 +0,0 @@ -From 90251e796a14cd7ce77ad7f07fd1fbe5d3a43664 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 1 Feb 2021 10:07:02 +0000 -Subject: [PATCH 1/4] Open Unix.LargeFile to avoid "lstat: Value too large for - defined data type". - -On 32 bit platforms, because OCaml native ints are limited to 31 bits, -there is a trap in the normal Unix.stat, Unix.lstat functions where -any field in the stat struct may overflow. The result is random -errors like: - - supermin: error: lstat: Value too large for defined data type: /tmp/tmp.Ss9aYEBASm/d2/root - -You would probably only see this on armv7. - -The OCaml Unix module has a "LargeFile" submodule which fixes this by -using int64 for some (unfortunately not all) fields. - -For more information see the OCaml sources, file -otherlibs/unix/stat.c, all instances of "EOVERFLOW". ---- - src/format_chroot.ml | 1 + - src/format_ext2.ml | 1 + - src/format_ext2_initrd.ml | 1 + - src/format_ext2_kernel.ml | 5 +++-- - src/mode_build.ml | 1 + - src/package_handler.ml | 1 + - src/ph_dpkg.ml | 1 + - src/ph_pacman.ml | 1 + - src/ph_rpm.ml | 1 + - src/supermin.ml | 1 + - src/utils.ml | 1 + - 11 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/src/format_chroot.ml b/src/format_chroot.ml -index 346c24b..34606f7 100644 ---- a/src/format_chroot.ml -+++ b/src/format_chroot.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/format_ext2.ml b/src/format_ext2.ml -index 6348c29..e311ea6 100644 ---- a/src/format_ext2.ml -+++ b/src/format_ext2.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/format_ext2_initrd.ml b/src/format_ext2_initrd.ml -index 38977e6..6268442 100644 ---- a/src/format_ext2_initrd.ml -+++ b/src/format_ext2_initrd.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml -index 98bff3a..3be4413 100644 ---- a/src/format_ext2_kernel.ml -+++ b/src/format_ext2_kernel.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -@@ -95,8 +96,8 @@ and find_kernel_from_lib_modules debug = - let kernels = - filter_map ( - fun kernel_file -> -- let size = try (stat kernel_file).st_size with Unix_error _ -> 0 in -- if size < 10000 then None -+ let size = try (stat kernel_file).st_size with Unix_error _ -> 0L in -+ if size < 10000_L then None - else ( - let kernel_name = Filename.basename kernel_file in - let modpath = Filename.dirname kernel_file in -diff --git a/src/mode_build.ml b/src/mode_build.ml -index ed47366..ff7733e 100644 ---- a/src/mode_build.ml -+++ b/src/mode_build.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/package_handler.ml b/src/package_handler.ml -index 0409438..f0d6db3 100644 ---- a/src/package_handler.ml -+++ b/src/package_handler.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/ph_dpkg.ml b/src/ph_dpkg.ml -index 1e785de..6d4fce1 100644 ---- a/src/ph_dpkg.ml -+++ b/src/ph_dpkg.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/ph_pacman.ml b/src/ph_pacman.ml -index 67f7512..50500a5 100644 ---- a/src/ph_pacman.ml -+++ b/src/ph_pacman.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml -index 9745efd..183b5f3 100644 ---- a/src/ph_rpm.ml -+++ b/src/ph_rpm.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Utils -diff --git a/src/supermin.ml b/src/supermin.ml -index e923111..9f838d9 100644 ---- a/src/supermin.ml -+++ b/src/supermin.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - open Types -diff --git a/src/utils.ml b/src/utils.ml -index b25df88..f5990ef 100644 ---- a/src/utils.ml -+++ b/src/utils.ml -@@ -17,6 +17,7 @@ - *) - - open Unix -+open Unix.LargeFile - open Printf - - let (+^) = Int64.add --- -2.31.1 - diff --git a/SOURCES/0002-Ignore-zfcpdump-kernel-on-s390x.patch b/SOURCES/0002-Ignore-zfcpdump-kernel-on-s390x.patch deleted file mode 100644 index dcfd4f0..0000000 --- a/SOURCES/0002-Ignore-zfcpdump-kernel-on-s390x.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 629069fb8c4101d21ec7883e2a137cb280fbe448 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 29 Nov 2021 14:40:15 +0000 -Subject: [PATCH 2/4] Ignore zfcpdump kernel on s390x - -Reported-by: Sebastian Mitterle -Thanks: Cornelia Huck -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2027375 ---- - src/format_ext2_kernel.ml | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml -index 3be4413..ea69ade 100644 ---- a/src/format_ext2_kernel.ml -+++ b/src/format_ext2_kernel.ml -@@ -157,6 +157,8 @@ and kernel_filter patterns is_arm all_files = - ) all_files in - let files = - List.filter (fun filename -> find filename "xen" = -1) files in -+ let files = -+ List.filter (fun filename -> find filename "zfcpdump" = -1) files in - let files = - if not is_arm then files - else ( --- -2.31.1 - diff --git a/SOURCES/0003-Ignore-unbootable-kernels-in-lib-modules.patch b/SOURCES/0003-Ignore-unbootable-kernels-in-lib-modules.patch deleted file mode 100644 index 3093fb0..0000000 --- a/SOURCES/0003-Ignore-unbootable-kernels-in-lib-modules.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 664ef10ae4fe0f6070f43f2cf1efd1a05d5514d9 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Wed, 1 Dec 2021 10:28:36 +0000 -Subject: [PATCH 3/4] Ignore unbootable kernels in /lib/modules - -The previous commit didn't ignore zfcpdump kernels if found in -/lib/modules because we didn't apply the kernel filter to those paths. - -Also this commit cleans up the code in general, splitting up the -multi-purpose "kernel_filter" function into two parts with clearer -roles. - -Fixes: commit 9fbe476d4df0b01568d3668e6121cae7c779c8c7 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2027375 -Reported-by: Yongkui Guo ---- - src/format_ext2_kernel.ml | 44 +++++++++++++++++++++++---------------- - 1 file changed, 26 insertions(+), 18 deletions(-) - -diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml -index ea69ade..79d636b 100644 ---- a/src/format_ext2_kernel.ml -+++ b/src/format_ext2_kernel.ml -@@ -38,7 +38,7 @@ let rec build_kernel debug host_cpu copy_kernel kernel = - | None -> - if debug >= 1 then - printf "supermin: kernel: looking for kernels in /lib/modules/*/vmlinuz ...\n%!"; -- match find_kernel_from_lib_modules debug with -+ match find_kernel_from_lib_modules debug host_cpu with - | Some k -> k - | None -> - if debug >= 1 then -@@ -89,10 +89,13 @@ and find_kernel_from_env_vars debug = - Some (kernel_env, kernel_name, kernel_version, modpath) - with Not_found -> None - --and find_kernel_from_lib_modules debug = -+and find_kernel_from_lib_modules debug host_cpu = -+ let files = glob "/lib/modules/*/vmlinuz" [GLOB_NOSORT; GLOB_NOESCAPE] in -+ let files = Array.to_list files in -+ -+ let files = ignore_unbootable_kernels host_cpu files in -+ - let kernels = -- let files = glob "/lib/modules/*/vmlinuz" [GLOB_NOSORT; GLOB_NOESCAPE] in -- let files = Array.to_list files in - let kernels = - filter_map ( - fun kernel_file -> -@@ -114,22 +117,22 @@ and find_kernel_from_lib_modules debug = - | [] -> None - - and find_kernel_from_boot debug host_cpu = -- let is_arm = -- String.length host_cpu >= 3 && -- host_cpu.[0] = 'a' && host_cpu.[1] = 'r' && host_cpu.[2] = 'm' in -- - let all_files = Sys.readdir "/boot" in - let all_files = Array.to_list all_files in - - (* In original: ls -1dvr /boot/vmlinuz-*.$arch* 2>/dev/null | grep -v xen *) - let patterns = patt_of_cpu host_cpu in -- let files = kernel_filter patterns is_arm all_files in -+ let files = files_matching_globs patterns all_files in -+ let files = ignore_unbootable_kernels host_cpu files in - - let files = - if files <> [] then files -- else -+ else ( - (* In original: ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen *) -- kernel_filter ["vmlinu?-*"] is_arm all_files in -+ let files = files_matching_globs ["vmlinu?-*"] all_files in -+ let files = ignore_unbootable_kernels host_cpu files in -+ files -+ ) in - - let files = List.sort (fun a b -> compare_version b a) files in - let kernels = -@@ -148,13 +151,18 @@ and find_kernel_from_boot debug host_cpu = - | kernel :: _ -> Some kernel - | [] -> None - --and kernel_filter patterns is_arm all_files = -- let files = -- List.filter -- (fun filename -> -- List.exists -- (fun patt -> fnmatch patt filename [FNM_NOESCAPE]) patterns -- ) all_files in -+and files_matching_globs patterns files = -+ List.filter -+ (fun filename -> -+ List.exists -+ (fun patt -> fnmatch patt filename [FNM_NOESCAPE]) patterns -+ ) files -+ -+and ignore_unbootable_kernels host_cpu files = -+ let is_arm = -+ String.length host_cpu >= 3 && -+ host_cpu.[0] = 'a' && host_cpu.[1] = 'r' && host_cpu.[2] = 'm' in -+ - let files = - List.filter (fun filename -> find filename "xen" = -1) files in - let files = --- -2.31.1 - diff --git a/SOURCES/0004-Ignore-debug-kernels.patch b/SOURCES/0004-Ignore-debug-kernels.patch deleted file mode 100644 index fb3b9e1..0000000 --- a/SOURCES/0004-Ignore-debug-kernels.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0b3ae5be86025f4902cb558f377e446baf49bc6d Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 28 Feb 2022 16:54:33 -0500 -Subject: [PATCH 4/4] Ignore debug kernels - -On RHEL 8.2 with RT, these kernels are not bootable. The kernel in -that instance was called -/lib/modules/4.18.0-193.70.1.rt13.120.el8_2.x86_64+debug/vmlinuz -installed from the package -kernel-rt-debug-core-4.18.0-193.70.1.rt13.120.el8_2.x86_64 - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2051332 -(cherry picked from commit c44d685e662e001f5fe70f0a98d0964cb561e1ec) -(cherry picked from commit 7f91755424299fde5dec1af83c7c99b107a94a9d) ---- - src/format_ext2_kernel.ml | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml -index 79d636b..c592703 100644 ---- a/src/format_ext2_kernel.ml -+++ b/src/format_ext2_kernel.ml -@@ -167,6 +167,8 @@ and ignore_unbootable_kernels host_cpu files = - List.filter (fun filename -> find filename "xen" = -1) files in - let files = - List.filter (fun filename -> find filename "zfcpdump" = -1) files in -+ let files = -+ List.filter (fun filename -> find filename "+debug" = -1) files in - let files = - if not is_arm then files - else ( --- -2.31.1 - diff --git a/SOURCES/supermin-5.2.1.tar.gz.sig b/SOURCES/supermin-5.2.1.tar.gz.sig deleted file mode 100644 index 3aa05b4..0000000 --- a/SOURCES/supermin-5.2.1.tar.gz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmAXzH4RHHJpY2hAYW5u -ZXhpYS5vcmcACgkQkXOPc+G3aKDLlxAAuqTnWZF8M4KYwSY1XydtgsF4CGjUmhHM -/L6KRsVOR7+hc/yevg/ZJMYieRs1jSW0FHh/16AdRjLRuLhV4BFZGd3wybbYsNUe -aIrbG4dna7pjRYN6wKZIWTNfiYnf7Mqd0MvTfU6rUN0P8O0skbI1xUpcDnViP+GR -sI+yIhM/EpithouoRBqz3sSDtkImXbepSphhnxMb64At6eLWDD09F32uHSqMBALI -ThFeu6mGWNvdsbJAVzDjoXGOynthMLGSb4mE0+uPDP3rFs0FhygNtcdn2KQDTG1S -Jd7MQ2/3w/BilSDTUY/sxqED04GSARxKINgFIOcmHvDnyPltLRX8ET8hCtCkNT1Y -6DgOvUpf77cRKZR6PiQYwor7/bvCwWmOF4AtEaq1x6aWm4D/qFrtN+ofWYsJC5Kz -qBEas7lR40SiiE8EKFDdEoyazps4ZVl5RpZO6Re4yhPbtLhiT8hwzyyNaia9MTyU -k6hU8fivnvnMCAwksJwBN35HxCRgHpOK/CP1IvoxuGA0Q5zwDp7KiHqQjszI5LIa -i2N4VNVwRi/MRrtu7l+B63elKH52SFOJhnLUdUhAJFVhB1jqXZ2y8kOWiZwB2dFc -7KPfkyGRoK39U7ipoI5sUThxl7tfkJSHpbo9/SEL7wFx2fL64oCqdz6t5T4ERPia -6ZGfgCLJNMU= -=aVXZ ------END PGP SIGNATURE----- diff --git a/SOURCES/supermin-5.3.3.tar.gz.sig b/SOURCES/supermin-5.3.3.tar.gz.sig new file mode 100644 index 0000000..f98d3ec --- /dev/null +++ b/SOURCES/supermin-5.3.3.tar.gz.sig @@ -0,0 +1,17 @@ +-----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----- diff --git a/SPECS/supermin.spec b/SPECS/supermin.spec index 7ee4cd6..9a2e165 100644 --- a/SPECS/supermin.spec +++ b/SPECS/supermin.spec @@ -1,3 +1,5 @@ +%undefine _package_note_flags + # On platforms and architectures that support it, the default is # ‘--with dietlibc’. # @@ -24,12 +26,12 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 5.2-stable +%global source_directory 5.3-development Summary: Tool for creating supermin appliances Name: supermin -Version: 5.2.1 -Release: 8%{?dist} +Version: 5.3.3 +Release: 1%{?dist} License: GPLv2+ ExclusiveArch: %{kernel_arches} @@ -44,15 +46,9 @@ Source1: http://download.libguestfs.org/supermin/%{source_directory}/%{nam # Keyring used to verify tarball signature. Source2: libguestfs.keyring -# Patches are stored here: -# https://github.com/libguestfs/supermin/tree/rhel-9.1 - -Patch0001: 0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch -Patch0002: 0002-Ignore-zfcpdump-kernel-on-s390x.patch -Patch0003: 0003-Ignore-unbootable-kernels-in-lib-modules.patch -Patch0004: 0004-Ignore-debug-kernels.patch - +BuildRequires: gcc BuildRequires: make +BuildRequires: autoconf, automake BuildRequires: /usr/bin/pod2man BuildRequires: /usr/bin/pod2html BuildRequires: rpm @@ -92,19 +88,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: http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator +# See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html Source3: supermin.attr Source4: supermin-find-requires @@ -115,18 +111,27 @@ 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 +Requires: dnf +Requires: dnf-plugins-core +Requires: findutils + %description devel %{name}-devel contains development tools for %{name}. -It just contains tools for automatic RPM dependency generation -from supermin appliances. +It contains extra dependencies needed for 'supermin --prepare' to +work, as well as tools for automatic RPM dependency generation from +supermin appliances. %prep @@ -138,6 +143,7 @@ from supermin appliances. %build +autoreconf -fi %configure --disable-network-tests %if %{with dietlibc} @@ -181,6 +187,10 @@ make check || { %changelog +* Tue Oct 18 2022 Richard W.M. Jones - 5.3.3-1 +- Rebase to Fedora Rawhide + resolves: rhbz#2135767 + * Tue Mar 15 2022 Richard W.M. Jones - 5.2.1-8 - Fix ignore +debug kernels when choosing a kernel to boot resolves: rhbz#2059397