SHA256
1
0
forked from pool/supermin

Accepting request 917230 from Virtualization

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/917230
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/supermin?expand=0&rev=12
This commit is contained in:
Dominique Leuenberger 2021-09-07 19:21:35 +00:00 committed by Git OBS Bridge
commit 1757b9d244
10 changed files with 220 additions and 30 deletions

View File

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

View File

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

View File

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

View File

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

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

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

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

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

View File

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

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
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
- 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 <schwab@suse.de>

View File

@ -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
@ -89,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}" > $$

View File

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