From 6321842742214bddeffa55ad4130019cd59ad3a6 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jan 11 2022 16:49:05 +0000 Subject: import supermin-5.2.1-7.el9 --- diff --git a/SOURCES/0001-Ignore-zfcpdump-kernel-on-s390x.patch b/SOURCES/0001-Ignore-zfcpdump-kernel-on-s390x.patch new file mode 100644 index 0000000..9876d68 --- /dev/null +++ b/SOURCES/0001-Ignore-zfcpdump-kernel-on-s390x.patch @@ -0,0 +1,28 @@ +From 9fbe476d4df0b01568d3668e6121cae7c779c8c7 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 29 Nov 2021 14:40:15 +0000 +Subject: [PATCH 1/2] 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.32.0 + diff --git a/SOURCES/0002-Ignore-unbootable-kernels-in-lib-modules.patch b/SOURCES/0002-Ignore-unbootable-kernels-in-lib-modules.patch new file mode 100644 index 0000000..255ee8e --- /dev/null +++ b/SOURCES/0002-Ignore-unbootable-kernels-in-lib-modules.patch @@ -0,0 +1,108 @@ +From f53868ce875fc17527696a85b48c67fefa3176e7 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Wed, 1 Dec 2021 10:28:36 +0000 +Subject: [PATCH 2/2] 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.32.0 + diff --git a/SPECS/supermin.spec b/SPECS/supermin.spec index f37982e..bbc1e87 100644 --- a/SPECS/supermin.spec +++ b/SPECS/supermin.spec @@ -29,7 +29,7 @@ Summary: Tool for creating supermin appliances Name: supermin Version: 5.2.1 -Release: 4%{?dist} +Release: 7%{?dist} License: GPLv2+ ExclusiveArch: %{kernel_arches} @@ -47,6 +47,10 @@ Source2: libguestfs.keyring # Upstream fix for stat field overflow on armv7. Patch1: 0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch +# Ignore zfcpdump kernel on s390x, upstream in 5.3.2 +Patch2: 0001-Ignore-zfcpdump-kernel-on-s390x.patch +Patch3: 0002-Ignore-unbootable-kernels-in-lib-modules.patch + BuildRequires: make BuildRequires: /usr/bin/pod2man BuildRequires: /usr/bin/pod2html @@ -71,6 +75,14 @@ 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/ subdirectory (in Fedora >= 23). Read the @@ -168,6 +180,13 @@ make check || { %changelog +* Wed Dec 01 2021 Richard W.M. Jones - 5.2.1-7 +- Further fix to ignore zfcpdump kernel on s390x + +* Tue Nov 30 2021 Richard W.M. Jones - 5.2.1-6 +- Ignore zfcpdump kernel on s390x + resolves: rhbz#2027375 + * Tue Aug 10 2021 Mohan Boddu - 5.2.1-4 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688