diff --git a/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch b/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch new file mode 100644 index 0000000..c5d4ea3 --- /dev/null +++ b/0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch @@ -0,0 +1,180 @@ +From fd9f17c7eb63979af882533a0d234bfc8ca42de3 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 1 Feb 2021 10:07:02 +0000 +Subject: [PATCH] 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.29.0.rc2 + diff --git a/0001-supermin-Fix-IBM-Virtual-SCSI-driver-name.patch b/0001-supermin-Fix-IBM-Virtual-SCSI-driver-name.patch deleted file mode 100644 index 583fabc..0000000 --- a/0001-supermin-Fix-IBM-Virtual-SCSI-driver-name.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3f831d30d87658d362e9b4f25fa569937fa1c23f Mon Sep 17 00:00:00 2001 -From: Gustavo Luiz Duarte -Date: Tue, 31 Mar 2020 23:11:44 -0300 -Subject: [PATCH] supermin: Fix IBM Virtual SCSI driver name - -The driver was renamed from ibmvscsic to ibmvscsi on kernel 3.7. -See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9965c2f19be470c452357ae4f6304467cdeada55 - -The old name is kept so supermin works with recent kernels as well as kernel -version older than 3.7. ---- - src/format_ext2_initrd.ml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/format_ext2_initrd.ml b/src/format_ext2_initrd.ml -index b67bb55..38977e6 100644 ---- a/src/format_ext2_initrd.ml -+++ b/src/format_ext2_initrd.ml -@@ -44,6 +44,7 @@ let kmods = [ - "crc*.ko*"; - "libcrc*.ko*"; - "ibmvscsic.ko*"; -+ "ibmvscsi.ko*"; - "libnvdimm.ko*"; - "nd_pmem.ko*"; - "nd_btt.ko*"; --- -2.24.1 - diff --git a/sources b/sources index cb05cec..5a6b3a7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (supermin-5.2.0.tar.gz) = 782d00f95a37ad75833b659300b085b5c7bfa1c795eae9aa57b3c52cab0332d6e6b8e1bddc5b1c0075cc64b60e22b64387771cd9f457568408889244a4628467 -SHA512 (supermin-5.2.0.tar.gz.sig) = 425a1a7277f48bc837d290c43af025f1e39cdd2da2d5460bebe27c9b86c2b8f57a23172c1fa3d45bbb749b1bb96486f59a8363443825f27d86297b22435b46f3 +SHA512 (supermin-5.2.1.tar.gz) = f10ea404e0b27238ea3c25cb68f44e716aa180a45a420e63c1958768032f0710e8e3e7f1346cda780ea1f916f499499da2c02df4019d91ea3b3a69b75cfda545 +SHA512 (supermin-5.2.1.tar.gz.sig) = bde7907ea61e8bb3e59fac235c7bd8e22ef2e16831b80344c4574fdff873a5fc8b8972716143ee9d9bd745ac99b72f11aa4530a8d184a3f287b3212ef85c7a13 diff --git a/supermin.spec b/supermin.spec index f455c2c..7c394c9 100644 --- a/supermin.spec +++ b/supermin.spec @@ -21,15 +21,15 @@ %endif # Whether we should verify tarball signature with GPGv2. -%global verify_tarball_signature %{nil} +%global verify_tarball_signature 1 # The source directory. %global source_directory 5.2-stable Summary: Tool for creating supermin appliances Name: supermin -Version: 5.2.0 -Release: 6%{?dist} +Version: 5.2.1 +Release: 1%{?dist} License: GPLv2+ ExclusiveArch: %{kernel_arches} @@ -40,9 +40,8 @@ Source1: http://download.libguestfs.org/supermin/%{source_directory}/%{nam # Keyring used to verify tarball signature. Source2: libguestfs.keyring -# Fix: ppc64le: ibmvscsi driver missing from supermin appliance. -# Upstream patch, fixes RHBZ#1819019 -Patch1: 0001-supermin-Fix-IBM-Virtual-SCSI-driver-name.patch +# Upstream fix for stat field overflow on armv7. +Patch1: 0001-Open-Unix.LargeFile-to-avoid-lstat-Value-too-large-f.patch BuildRequires: make BuildRequires: /usr/bin/pod2man @@ -165,6 +164,12 @@ make check || { %changelog +* Mon Feb 01 2021 Richard W.M. Jones - 5.2.1-1 +- New upstream version 5.2.1. + +* Wed Jan 27 2021 Fedora Release Engineering - 5.2.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Thu Jan 14 2021 Richard W.M. Jones - 5.2.0-6 - Remove inactive strip override (see RHBZ#1915570).