SHA256
1
0
forked from pool/supermin

- Update to 5.2.2 bug fix release

* Open Unix.LargeFile to avoid "lstat: Value too large for
    defined data type"
  * pacman: Skip over detached signatures when unpacking
  * ext2, rpm: Don't redefine Val_none or Some_val.
  * Don't attempt to build man page if perldoc is not available
  * Ignore zfcpdump kernel on s390x
  * Ignore unbootable kernels in /lib/modules
  * Ignore debug kernels
  * maintainer: Add our usual maintainer rules
- Drop
  Avoid-lstat-Value-too-large-for-defined-data-type.patch
  detect-aarch64-kernel.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/supermin?expand=0&rev=75
This commit is contained in:
Charles Arnold 2022-04-25 19:31:26 +00:00 committed by Git OBS Bridge
parent 68a0650790
commit f0bd32279f
9 changed files with 43 additions and 227 deletions

View File

@ -1,165 +0,0 @@
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

View File

@ -1,34 +0,0 @@
References: bsc#1187532 - virt-make-fs hangs forever
Index: supermin-5.2.1/src/format_ext2_kernel.ml
===================================================================
--- supermin-5.2.1.orig/src/format_ext2_kernel.ml
+++ supermin-5.2.1/src/format_ext2_kernel.ml
@@ -128,6 +128,10 @@ and find_kernel_from_boot debug host_cpu
let files =
if files <> [] then files
else
+ kernel_filter ["Image-*"] is_arm all_files in
+ let files =
+ if files <> [] then files
+ else
(* In original: ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen *)
kernel_filter ["vmlinu?-*"] is_arm all_files in
@@ -223,9 +227,14 @@ and get_kernel_version debug kernel_file
else (
basename
) in
- if string_prefix "vmlinuz-" basename || string_prefix "vmlinux-" basename
+ if string_prefix "vmlinuz-" basename || string_prefix "vmlinux-" basename || string_prefix "Image-" basename
then (
- let version = String.sub basename 8 (String.length basename - 8) in
+ let version =
+ if string_prefix "Image-" basename then (
+ String.sub basename 6 (String.length basename - 6)
+ ) else (
+ String.sub basename 8 (String.length basename - 8)
+ ) in
(* Does the version look reasonable? *)
let modpath = "/lib/modules" // version in
if has_modpath modpath then (

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c45d8479b6da8ea55ca2c4b82b2c8bc7c2e6f724cf59c980df1dec93fb578ffb
size 548550

View File

@ -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-----

3
supermin-5.2.2.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce3921d3635c8168cfb7ca0c5a82b9d5cef5b2b271f84b776d63b8bbbeec358e
size 555389

17
supermin-5.2.2.tar.gz.sig Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmIiFAQRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKDI5A//e7Gf3SWLg3AVOS1lY5zanPcTkVlwsL5I
zc+EU+srbCi4ksW4qDjT9PH7aqgMg5U+p3NvbLyoCwudn3fTzcUVI6KxfkBsjGPz
kAqF863lWjx1HSy3IltCIPRhtT0TdcZi5+FhNRJB77+84CkZNWdp0gZqhULN8A+C
1wrCBdC0PWtXpV0J1pYb29ZilseLnPQUmenUcBKgdRpyN8ukdeFOlemtjHH87bMW
XnJKO29tFTO/hC9nb4qBExuYs0gGQeozDX4HsxM/nl/NgTuPT3FI91hDwUSo6utx
Cieaz76gKr8BEGzNC+32jQSMF0TOaWIwik1Y38QU5zEQJ48zIBDFtwGi6JD6AWk2
C8mEk++KrFQCv3rcxcciRzVZRM6xuyJU7zeL+yiu6F8LwbqUtLOuWbWCRb2L5VdW
+VACuODrtGpvS1umoak+M/UxRTb0pz4wXHLUtKW1KxaE5qNX0LiKo8zyPGlW0WrV
/43vy2K0uTZ0i00I6Yx4Fo1/KIUKI3KgzAjT0ofT2XDPIUgstXZ/Jr7VJUrSS66U
xqXN9XUg/1n8sRKDGKA2GArlmuyOrXcYdw94SKGz1SFgkCqF4+VgBs4F6URwFLmh
vYrVZxAkMpY2ktmH/hjcZH3dD8Sq5DOoFNgZ9+NlOqIYfimFQeW+/O2o+HdFzznz
eEmfLaH3r34=
=cKOD
-----END PGP SIGNATURE-----

View File

@ -1,6 +1,6 @@
--- supermin-5.2.1.orig/src/format_ext2_kernel.ml --- a/src/format_ext2_kernel.ml
+++ supermin-5.2.1/src/format_ext2_kernel.ml +++ b/src/format_ext2_kernel.ml
@@ -213,6 +213,16 @@ and get_kernel_version debug kernel_file @@ -225,6 +225,16 @@ and get_kernel_version debug kernel_file
| None -> | None ->
(* Try to work it out from the filename instead. *) (* Try to work it out from the filename instead. *)
let basename = Filename.basename kernel_file in let basename = Filename.basename kernel_file in

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Mon Apr 25 13:03:38 MDT 2022 - carnold@suse.com
- Update to 5.2.2 bug fix release
* Open Unix.LargeFile to avoid "lstat: Value too large for
defined data type"
* pacman: Skip over detached signatures when unpacking
* ext2, rpm: Don't redefine Val_none or Some_val.
* Don't attempt to build man page if perldoc is not available
* Ignore zfcpdump kernel on s390x
* Ignore unbootable kernels in /lib/modules
* Ignore debug kernels
* maintainer: Add our usual maintainer rules
- Drop
Avoid-lstat-Value-too-large-for-defined-data-type.patch
detect-aarch64-kernel.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Mar 7 14:54:48 MST 2022 - carnold@suse.com Mon Mar 7 14:54:48 MST 2022 - carnold@suse.com

View File

@ -17,23 +17,21 @@
Name: supermin Name: supermin
Version: 5.2.1 Version: 5.2.2
Release: 0 Release: 0
Summary: Bootstrapping tool for creating supermin appliances Summary: Bootstrapping tool for creating supermin appliances
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: System/Filesystems Group: System/Filesystems
URL: https://libguestfs.org/ URL: https://libguestfs.org/
Source0: https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.1.tar.gz 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.1.tar.gz.sig Source1: https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.2.tar.gz.sig
Source9: supermin.keyring Source9: supermin.keyring
# Pending upstream review # Pending upstream review
Patch0: Avoid-lstat-Value-too-large-for-defined-data-type.patch
Patch10: suse_release.patch Patch10: suse_release.patch
Patch11: supermin-kernel_version_compressed.patch Patch11: supermin-kernel_version_compressed.patch
Patch12: disable-test-if-newer-ext2.patch Patch12: disable-test-if-newer-ext2.patch
# Backport of https://github.com/libguestfs/supermin/commit/4306a131c6cde92f8d0a2dd9376f4096ee538eff.patch # Backport of https://github.com/libguestfs/supermin/commit/4306a131c6cde92f8d0a2dd9376f4096ee538eff.patch
Patch13: initrd_support_ztd-compressed_modules.patch Patch13: initrd_support_ztd-compressed_modules.patch
Patch14: detect-aarch64-kernel.patch
BuildRequires: augeas BuildRequires: augeas
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake