From a6764ad8dbe9175ddcb2754f89307a9f41735eb7ed97c13a1562e419086abed8 Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Wed, 25 Aug 2021 17:02:57 +0000 Subject: [PATCH 1/2] - Update to 5.2.1 bug fix release. Include post 5.2.1 upstream fix. Avoid-lstat-Value-too-large-for-defined-data-type.patch disable-test-if-newer-ext2.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/supermin?expand=0&rev=64 --- ...alue-too-large-for-defined-data-type.patch | 165 ++++++++++++++++++ disable-test-if-newer-ext2.patch | 11 ++ supermin-5.2.0.tar.gz | 3 - supermin-5.2.0.tar.gz.sig | 17 -- supermin-5.2.1.tar.gz | 3 + supermin-5.2.1.tar.gz.sig | 17 ++ supermin-kernel_version_compressed.patch | 6 +- supermin.changes | 7 + supermin.spec | 12 +- suse_release.patch | 2 +- 10 files changed, 214 insertions(+), 29 deletions(-) create mode 100644 Avoid-lstat-Value-too-large-for-defined-data-type.patch create mode 100644 disable-test-if-newer-ext2.patch delete mode 100644 supermin-5.2.0.tar.gz delete mode 100644 supermin-5.2.0.tar.gz.sig create mode 100644 supermin-5.2.1.tar.gz create mode 100644 supermin-5.2.1.tar.gz.sig diff --git a/Avoid-lstat-Value-too-large-for-defined-data-type.patch b/Avoid-lstat-Value-too-large-for-defined-data-type.patch new file mode 100644 index 0000000..e268b99 --- /dev/null +++ b/Avoid-lstat-Value-too-large-for-defined-data-type.patch @@ -0,0 +1,165 @@ +Subject: Open Unix.LargeFile to avoid "lstat: Value too large for defined data type". +From: Richard W.M. Jones rjones@redhat.com Mon Feb 1 10:07:02 2021 +0000 +Date: Mon Feb 1 10:22:45 2021 +0000: +Git: ea2935342326893257c74098e7df0835ee495b82 + +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". + +(cherry picked from commit fd9f17c7eb63979af882533a0d234bfc8ca42de3) + +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 diff --git a/disable-test-if-newer-ext2.patch b/disable-test-if-newer-ext2.patch new file mode 100644 index 0000000..35bf4af --- /dev/null +++ b/disable-test-if-newer-ext2.patch @@ -0,0 +1,11 @@ +--- 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 + + # Try removing any of the files, and check that supermin will detect that. diff --git a/supermin-5.2.0.tar.gz b/supermin-5.2.0.tar.gz deleted file mode 100644 index 6dc484d..0000000 --- a/supermin-5.2.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fac7e128198b9b05afca99041fa9d5256cc80c1e3cd97eb3130a794b185cf107 -size 552540 diff --git a/supermin-5.2.0.tar.gz.sig b/supermin-5.2.0.tar.gz.sig deleted file mode 100644 index ba54428..0000000 --- a/supermin-5.2.0.tar.gz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAl5nbmMRHHJpY2hAYW5u -ZXhpYS5vcmcACgkQkXOPc+G3aKAXIw/8D+GUgBRpbiV/+mqYIhkNdtyEfqKEiqKl -scZVCiRxlwElyjYs6azmNrLMArqjwjJuwalzXp7NbYe06ddFaEgvy/0i124cPUdk -Q8Z1aQ6ktLNSJgoQCpCOaTRiEDF/Zsy3itqXXk8n+XPfaGs1GEieEaxUcXQP6X9h -huLqIDC6zwhyUK11u4cagmxGuSyuUIEkFVNCbSuDGxmuIf/qUtj5o/LQG4aE1SRw -iQAk3mGs0ipa1nfpBAdTnted/KscPLbOgzBU3Dg02QeeUZKG67pm/Fl/MMaRB4HM -rhbko0M/jSkn8zB6ggF0U3kcy16EVc6ANMvXvuD5MC4op5iIretj2Y2tcbYpfT4f -aOpfquq/scXvVugoK77CzxCBLKWkTglPTPGXT1T4i0dh4t8jl4wvqi1IykriKNAc -FIukM3ZHU460M78oWr0pWtr1qyuXeKE4IjV6PiUh2wr2YEmiy1d4Rf7M9hKV4ACs -Dm1ONnrMcAN0W6brkfr8Vo/3ud3gXlJjEY7HRk9GzPs3lZk6d+MtDxe25qLQmM3Y -+KbVsi937gUi4lB27GfZTBxEhqw6OQZegQW/DD6kB6UARVrG/n4TPQe25KgIkZ0w -iTj2qs3MQfx+zAGwFO7ihFLd8kGmEMryn+wldPKbK2Li5m5oMEByQVi+jhIt+cSr -jj8ls0NuDHU= -=LLM6 ------END PGP SIGNATURE----- diff --git a/supermin-5.2.1.tar.gz b/supermin-5.2.1.tar.gz new file mode 100644 index 0000000..f331c9c --- /dev/null +++ b/supermin-5.2.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c45d8479b6da8ea55ca2c4b82b2c8bc7c2e6f724cf59c980df1dec93fb578ffb +size 548550 diff --git a/supermin-5.2.1.tar.gz.sig b/supermin-5.2.1.tar.gz.sig new file mode 100644 index 0000000..67be179 --- /dev/null +++ b/supermin-5.2.1.tar.gz.sig @@ -0,0 +1,17 @@ +-----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/supermin-kernel_version_compressed.patch b/supermin-kernel_version_compressed.patch index eca43cd..5810b4b 100644 --- a/supermin-kernel_version_compressed.patch +++ b/supermin-kernel_version_compressed.patch @@ -1,6 +1,6 @@ ---- supermin-5.2.0/src/format_ext2_kernel.ml 2021/02/05 16:10:36 1.1 -+++ supermin-5.2.0/src/format_ext2_kernel.ml 2021/02/05 16:12:46 -@@ -212,6 +212,16 @@ +--- supermin-5.2.1.orig/src/format_ext2_kernel.ml ++++ supermin-5.2.1/src/format_ext2_kernel.ml +@@ -213,6 +213,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 diff --git a/supermin.changes b/supermin.changes index 9f9ecb2..76b1e2b 100644 --- a/supermin.changes +++ b/supermin.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Aug 25 08:48:22 MDT 2021 - carnold@suse.com + +- Update to 5.2.1 bug fix release. Include post 5.2.1 upstream fix. + Avoid-lstat-Value-too-large-for-defined-data-type.patch + disable-test-if-newer-ext2.patch + ------------------------------------------------------------------- Thu Apr 1 13:56:13 UTC 2021 - Andreas Schwab diff --git a/supermin.spec b/supermin.spec index d14d7d2..24aa8ec 100644 --- a/supermin.spec +++ b/supermin.spec @@ -17,18 +17,20 @@ Name: supermin -Version: 5.2.0 +Version: 5.2.1 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.0.tar.gz -Source1: https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.0.tar.gz.sig +Source0: https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.1.tar.gz +Source1: https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.1.tar.gz.sig Source9: supermin.keyring # Pending upstream review -Patch0: suse_release.patch -Patch1: supermin-kernel_version_compressed.patch +Patch0: Avoid-lstat-Value-too-large-for-defined-data-type.patch +Patch10: suse_release.patch +Patch11: supermin-kernel_version_compressed.patch +Patch12: disable-test-if-newer-ext2.patch BuildRequires: augeas BuildRequires: autoconf BuildRequires: automake diff --git a/suse_release.patch b/suse_release.patch index 194eb11..4f92e99 100644 --- a/suse_release.patch +++ b/suse_release.patch @@ -53,7 +53,7 @@ + be read or the ID_LIKE field is not defined. *) --- a/src/ph_rpm.ml +++ b/src/ph_rpm.ml -@@ -42,6 +42,7 @@ let opensuse_detect () = +@@ -43,6 +43,7 @@ let opensuse_detect () = Config.zypper <> "no" && (List.mem (Os_release.get_id ()) [ "sled"; "sles" ] || string_prefix "opensuse" (Os_release.get_id ()) || From ab2f232dc469a69e45cb09ddcaa794a01026b191ec32ef78c4b96d5b67713d8c Mon Sep 17 00:00:00 2001 From: Olaf Hering Date: Tue, 31 Aug 2021 08:24:17 +0000 Subject: [PATCH 2/2] - s390x may have a kernel named /boot/image OBS-URL: https://build.opensuse.org/package/show/Virtualization/supermin?expand=0&rev=65 --- supermin.changes | 5 +++++ supermin.spec | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/supermin.changes b/supermin.changes index 76b1e2b..4b4a74e 100644 --- a/supermin.changes +++ b/supermin.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Aug 31 08:08:08 UTC 2021 - ohering@suse.de + +- s390x may have a kernel named /boot/image + ------------------------------------------------------------------- Wed Aug 25 08:48:22 MDT 2021 - carnold@suse.com diff --git a/supermin.spec b/supermin.spec index 24aa8ec..8d41020 100644 --- a/supermin.spec +++ b/supermin.spec @@ -91,7 +91,7 @@ find %{buildroot} -ls ls -alt /boot /lib/modules || : ls -altd /lib/modules/*/* || : -for i in /boot/Image* /boot/vmlinu* +for i in /boot/image* /boot/Image* /boot/vmlinu* do test -f "$i" || continue if get_kernel_version "${i}" > $$