Sync from SUSE:ALP:Source:Standard:1.0 supermin revision 7f8024e7dce69dfc244dc1b727510ae8
This commit is contained in:
commit
2fe1cad01b
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
@ -0,0 +1,47 @@
|
||||
Subject: src: Improved debugging of the supermin if-newer calculation
|
||||
From: Richard W.M. Jones rjones@redhat.com Mon Jun 12 12:51:56 2023 +0100
|
||||
Date: Mon Jun 12 12:57:32 2023 +0100:
|
||||
Git: 8dd37da1b5979842b0db44b44655eeaf621f7ac9
|
||||
|
||||
Also I expanded the code to make it easier to read. There is no
|
||||
change to the calculation intended.
|
||||
|
||||
--- a/src/supermin.ml
|
||||
+++ b/src/supermin.ml
|
||||
@@ -239,10 +239,33 @@ appliance automatically.
|
||||
try
|
||||
let outputs = Mode_build.get_outputs args inputs in
|
||||
let outputs = List.map ((//) outputdir) outputs in
|
||||
- let odates = List.map (fun d -> (lstat d).st_mtime) (outputdir :: outputs) in
|
||||
- let idates = List.map (fun d -> (lstat d).st_mtime) inputs in
|
||||
+ let outputs = outputdir :: outputs in
|
||||
+ let odates = List.map (fun f -> (lstat f).st_mtime) outputs in
|
||||
+ if debug >= 2 then (
|
||||
+ List.iter (
|
||||
+ fun f ->
|
||||
+ printf "supermin: if-newer: output %s => %.2f\n"
|
||||
+ f (lstat f).st_mtime
|
||||
+ ) outputs;
|
||||
+ );
|
||||
+ let idates = List.map (fun f -> (lstat f).st_mtime) inputs in
|
||||
+ if debug >= 2 then (
|
||||
+ List.iter (
|
||||
+ fun f ->
|
||||
+ printf "supermin: if-newer: input %s => %.2f\n"
|
||||
+ f (lstat f).st_mtime
|
||||
+ ) inputs;
|
||||
+ );
|
||||
let pdate = (get_package_handler ()).ph_get_package_database_mtime () in
|
||||
- if List.for_all (fun idate -> List.for_all (fun odate -> idate < odate) odates) (pdate :: idates) then (
|
||||
+ if debug >= 2 then (
|
||||
+ printf "supermin: if-newer: package database date: %.2f\n" pdate;
|
||||
+ );
|
||||
+ let older =
|
||||
+ List.for_all (
|
||||
+ fun idate ->
|
||||
+ List.for_all (fun odate -> idate < odate) odates
|
||||
+ ) (pdate :: idates) in
|
||||
+ if older then (
|
||||
if debug >= 1 then
|
||||
printf "supermin: if-newer: output does not need rebuilding\n%!";
|
||||
exit 0
|
33
002-Fix-if-newer-copy-kernel.patch
Normal file
33
002-Fix-if-newer-copy-kernel.patch
Normal file
@ -0,0 +1,33 @@
|
||||
Subject: src: Fix --if-newer --copy-kernel
|
||||
From: Richard W.M. Jones rjones@redhat.com Mon Jun 12 13:02:37 2023 +0100
|
||||
Date: Mon Jun 12 13:07:51 2023 +0100:
|
||||
Git: 8c38641042e274a713a18daf7fc85584ca0fc9bb
|
||||
|
||||
We previously copied the kernel into the appliance using 'cp -p' which
|
||||
preserves the datestamps of the installed kernel. This can confuse
|
||||
the --if-newer calculation, if for example the package database is
|
||||
newer than the date on the installed kernel (which quite often is the
|
||||
case). This makes it think that the appliance is always older than
|
||||
the package database, thus forcing a rebuild.
|
||||
|
||||
We can fix this using 'cp' instead of 'cp -p'. We don't need the
|
||||
permissions and datestamps on the copied kernel to be preserved anyway
|
||||
(in fact, it could cause problems if the permissions are restrictive).
|
||||
|
||||
Fixes: commit 30de2cb603cdde33524a66d5466f6a9b986ce8a6
|
||||
|
||||
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
|
||||
index c592703..6d2e699 100644
|
||||
--- a/src/format_ext2_kernel.ml
|
||||
+++ b/src/format_ext2_kernel.ml
|
||||
@@ -311,6 +311,9 @@ and copy_or_symlink_file copy_kernel src dest =
|
||||
if not copy_kernel then
|
||||
symlink src dest
|
||||
else (
|
||||
- let cmd = sprintf "cp -p %s %s" (quote src) (quote dest) in
|
||||
+ (* NB: Do not use -p here, we want the kernel to appear newer
|
||||
+ * so that --if-newer works.
|
||||
+ *)
|
||||
+ let cmd = sprintf "cp %s %s" (quote src) (quote dest) in
|
||||
run_command cmd
|
||||
)
|
18
003-Fix-kernel-filtering-for-aarch64-architecture.patch
Normal file
18
003-Fix-kernel-filtering-for-aarch64-architecture.patch
Normal file
@ -0,0 +1,18 @@
|
||||
Subject: src/format_ext2_kernel.ml: Fix kernel filtering for aarch64 architecture
|
||||
From: Simon Fischer 1522981+Fischer-Simon@users.noreply.github.com Wed Jul 12 17:10:53 2023 +0200
|
||||
Date: Wed Jul 12 17:10:53 2023 +0200:
|
||||
Git: 4b3922feb65150f3423d0877038c5ba6e16d910c
|
||||
|
||||
Add appropriate globs for arm based kernels. The file names end in -arm64 but the architecture is named aarch64.
|
||||
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
|
||||
index 6d2e699..4589552 100644
|
||||
--- a/src/format_ext2_kernel.ml
|
||||
+++ b/src/format_ext2_kernel.ml
|
||||
@@ -187,6 +187,7 @@ and patt_of_cpu host_cpu =
|
||||
| "amd64" | "x86_64" -> ["amd64"; "x86_64"]
|
||||
| "parisc" | "parisc64" -> ["hppa"; "hppa64"]
|
||||
| "ppc64el" -> ["powerpc64le"]
|
||||
+ | "aarch64" -> ["aarch64"; "arm64"]
|
||||
| _ when host_cpu.[0] = 'i' && host_cpu.[2] = '8' && host_cpu.[3] = '6' -> ["?86"]
|
||||
| _ when String.length host_cpu >= 5 && String.sub host_cpu 0 5 = "armv7" -> ["armmp"]
|
||||
| _ -> [host_cpu]
|
27
004-Use-output-complete-exe-instead-of-custom.patch
Normal file
27
004-Use-output-complete-exe-instead-of-custom.patch
Normal file
@ -0,0 +1,27 @@
|
||||
Subject: ocamlc: Use -output-complete-exe instead of -custom
|
||||
From: Richard W.M. Jones rjones@redhat.com Wed Jul 12 22:37:58 2023 +0100
|
||||
Date: Wed Jul 12 22:40:27 2023 +0100:
|
||||
Git: dc80dbbef60d5d81a7d4321683a8c7305dc04972
|
||||
|
||||
This prevents bytecode executables from being broken by strip and
|
||||
similar tools. Note this is incompatible with OCaml < 4.10 (so breaks
|
||||
RHEL 8). However this only affects bytecode builds which we prefer
|
||||
not to use in RHEL. I left the old option in the Makefile so that it
|
||||
could be uncommented by someone using older OCaml + bytecode. We need
|
||||
this for OCaml 5.0 since that drops native backends (temporarily) for
|
||||
riscv64, s390x and ppc64le.
|
||||
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 5b07e5d..5a1c671 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -132,7 +132,8 @@ OCAMLFLAGS = -g -warn-error +C+D+E+F+L+M+P+S+U+V+X+Y+Z-3
|
||||
if !HAVE_OCAMLOPT
|
||||
OBJECTS = $(BOBJECTS)
|
||||
BEST = c
|
||||
-OCAMLFLAGS += -custom
|
||||
+#OCAMLFLAGS += -custom # for OCaml < 4.10
|
||||
+OCAMLFLAGS += -output-complete-exe
|
||||
else
|
||||
OBJECTS = $(XOBJECTS)
|
||||
BEST = opt
|
36
005-Only-supply-output-complete-exe-to-final-link.patch
Normal file
36
005-Only-supply-output-complete-exe-to-final-link.patch
Normal file
@ -0,0 +1,36 @@
|
||||
Subject: ocamlc: Only supply -output-complete-exe to final link
|
||||
From: Richard W.M. Jones rjones@redhat.com Wed Jul 12 22:51:43 2023 +0100
|
||||
Date: Wed Jul 12 22:51:43 2023 +0100:
|
||||
Git: 59a8ffc40db94a38879d9c923520e0bd70ffa271
|
||||
|
||||
Add a separate variable to store link flags, and use that to supply
|
||||
-output-complete-exe. Apparently ocamlc ignores -custom in the wrong
|
||||
place.
|
||||
|
||||
Fixes: dc80dbbef60d5d81a7d4321683a8c7305dc04972
|
||||
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 5a1c671..1268aa5 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -132,8 +132,8 @@ OCAMLFLAGS = -g -warn-error +C+D+E+F+L+M+P+S+U+V+X+Y+Z-3
|
||||
if !HAVE_OCAMLOPT
|
||||
OBJECTS = $(BOBJECTS)
|
||||
BEST = c
|
||||
-#OCAMLFLAGS += -custom # for OCaml < 4.10
|
||||
-OCAMLFLAGS += -output-complete-exe
|
||||
+#OCAMLLINKFLAGS = -custom # for OCaml < 4.10
|
||||
+OCAMLLINKFLAGS = -output-complete-exe
|
||||
else
|
||||
OBJECTS = $(XOBJECTS)
|
||||
BEST = opt
|
||||
@@ -143,7 +143,8 @@ supermin_DEPENDENCIES = $(OBJECTS)
|
||||
|
||||
supermin_LINK = \
|
||||
./supermin-link.sh \
|
||||
- $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) \
|
||||
+ $(OCAMLFIND) $(BEST) $(OCAMLLINKFLAGS) $(OCAMLFLAGS) \
|
||||
+ $(OCAMLPACKAGES) \
|
||||
$(OBJECTS) -o $@
|
||||
|
||||
.mli.cmi:
|
29
006-Rename-function-file-kernel.patch
Normal file
29
006-Rename-function-file-kernel.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Subject: src/format_ext2_kernel.ml: Rename function file -> kernel
|
||||
From: Richard W.M. Jones rjones@redhat.com Fri Nov 10 08:55:25 2023 +0000
|
||||
Date: Fri Nov 10 08:55:25 2023 +0000:
|
||||
Git: 9a0d078dc35fde7a715666bce6c765ed5fe5e916
|
||||
|
||||
No change, just rename the function.
|
||||
|
||||
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
|
||||
index 4589552..36514c6 100644
|
||||
--- a/src/format_ext2_kernel.ml
|
||||
+++ b/src/format_ext2_kernel.ml
|
||||
@@ -54,7 +54,7 @@ let rec build_kernel debug host_cpu copy_kernel kernel =
|
||||
printf "supermin: kernel: modpath %s\n%!" modpath;
|
||||
);
|
||||
|
||||
- copy_or_symlink_file copy_kernel kernel_file kernel;
|
||||
+ copy_or_symlink_kernel copy_kernel kernel_file kernel;
|
||||
|
||||
(kernel_version, modpath)
|
||||
|
||||
@@ -308,7 +308,7 @@ and read_string chan offset len =
|
||||
really_input chan buf 0 len;
|
||||
Bytes.to_string buf
|
||||
|
||||
-and copy_or_symlink_file copy_kernel src dest =
|
||||
+and copy_or_symlink_kernel copy_kernel src dest =
|
||||
if not copy_kernel then
|
||||
symlink src dest
|
||||
else (
|
66
007-Uncompress-kernel-on-RISC-V.patch
Normal file
66
007-Uncompress-kernel-on-RISC-V.patch
Normal file
@ -0,0 +1,66 @@
|
||||
Subject: src: Uncompress kernel on RISC-V
|
||||
From: Richard W.M. Jones rjones@redhat.com Fri Nov 10 10:20:49 2023 +0000
|
||||
Date: Fri Nov 10 10:28:21 2023 +0000:
|
||||
Git: 5230e2c3cd07e82bd6431e871e239f7056bf25ad
|
||||
|
||||
|
||||
diff --git a/src/format_ext2_kernel.ml b/src/format_ext2_kernel.ml
|
||||
index 36514c6..09a3f21 100644
|
||||
--- a/src/format_ext2_kernel.ml
|
||||
+++ b/src/format_ext2_kernel.ml
|
||||
@@ -25,6 +25,20 @@ open Ext2fs
|
||||
open Fnmatch
|
||||
open Glob
|
||||
|
||||
+(* Similar but not the same as get_file_type in mode_build. There
|
||||
+ * is a case for deriving a common base utility. XXX
|
||||
+ *)
|
||||
+type compression_type = GZip | Uncompressed
|
||||
+let get_compression_type file =
|
||||
+ let chan = open_in file in
|
||||
+ let buf = Bytes.create 512 in
|
||||
+ let len = input chan buf 0 (Bytes.length buf) in
|
||||
+ close_in chan;
|
||||
+ let buf = Bytes.to_string buf in
|
||||
+ if len >= 3 && buf.[0] = '\x1f' && buf.[1] = '\x8b' && buf.[2] = '\x08'
|
||||
+ then GZip
|
||||
+ else Uncompressed (* or other unknown compression type *)
|
||||
+
|
||||
let rec build_kernel debug host_cpu copy_kernel kernel =
|
||||
(* Locate the kernel.
|
||||
* SUPERMIN_* environment variables override everything. If those
|
||||
@@ -54,7 +68,19 @@ let rec build_kernel debug host_cpu copy_kernel kernel =
|
||||
printf "supermin: kernel: modpath %s\n%!" modpath;
|
||||
);
|
||||
|
||||
- copy_or_symlink_kernel copy_kernel kernel_file kernel;
|
||||
+ (* RISC-V relies on the bootloader or firmware to uncompress the
|
||||
+ * kernel and doesn't have a concept of self-extracting kernels.
|
||||
+ * On Arm which is similar, qemu -kernel will automatically uncompress
|
||||
+ * the kernel, but qemu-system-riscv won't do that and the code is a
|
||||
+ * big mess so I don't fancy fixing it. So we have to detect that
|
||||
+ * case here and uncompress the kernel.
|
||||
+ *)
|
||||
+ let kernel_compression_type = get_compression_type kernel_file in
|
||||
+ if string_prefix "riscv" host_cpu && kernel_compression_type <> Uncompressed
|
||||
+ then
|
||||
+ copy_and_uncompress_kernel kernel_compression_type kernel_file kernel
|
||||
+ else
|
||||
+ copy_or_symlink_kernel copy_kernel kernel_file kernel;
|
||||
|
||||
(kernel_version, modpath)
|
||||
|
||||
@@ -308,6 +334,13 @@ and read_string chan offset len =
|
||||
really_input chan buf 0 len;
|
||||
Bytes.to_string buf
|
||||
|
||||
+and copy_and_uncompress_kernel compression_type src dest =
|
||||
+ let cmd =
|
||||
+ match compression_type with
|
||||
+ | GZip -> sprintf "zcat %s > %s" (quote src) (quote dest)
|
||||
+ | Uncompressed -> sprintf "cp %s %s" (quote src) (quote dest) in
|
||||
+ run_command cmd
|
||||
+
|
||||
and copy_or_symlink_kernel copy_kernel src dest =
|
||||
if not copy_kernel then
|
||||
symlink src dest
|
21
008-Fix-link-to-renamed-kernel-documentation.patch
Normal file
21
008-Fix-link-to-renamed-kernel-documentation.patch
Normal file
@ -0,0 +1,21 @@
|
||||
Subject: init: Fix link to renamed kernel documentation
|
||||
From: Richard W.M. Jones rjones@redhat.com Mon Nov 13 10:13:26 2023 +0000
|
||||
Date: Mon Nov 13 10:13:26 2023 +0000:
|
||||
Git: c8e79b7d62730f850f9e5d46c3747f414198b902
|
||||
|
||||
|
||||
diff --git a/init/init.c b/init/init.c
|
||||
index bc28c69..4cc72f7 100644
|
||||
--- a/init/init.c
|
||||
+++ b/init/init.c
|
||||
@@ -279,8 +279,8 @@ main ()
|
||||
fprintf (stderr, "supermin: deleting initramfs files\n");
|
||||
delete_initramfs_files ();
|
||||
|
||||
- /* Note that pivot_root won't work. See the note in
|
||||
- * Documentation/filesystems/ramfs-rootfs-initramfs.txt
|
||||
+ /* Note that pivot_root won't work. See the note in Linux
|
||||
+ * Documentation/filesystems/ramfs-rootfs-initramfs.rst
|
||||
*/
|
||||
if (!quiet)
|
||||
fprintf (stderr, "supermin: chroot\n");
|
19
009-New-mailing-list-email-address.patch
Normal file
19
009-New-mailing-list-email-address.patch
Normal file
@ -0,0 +1,19 @@
|
||||
Subject: New mailing list email address
|
||||
From: Richard W.M. Jones rjones@redhat.com Thu Nov 16 10:43:11 2023 +0000
|
||||
Date: Thu Nov 16 10:43:11 2023 +0000:
|
||||
Git: 7e4f0931e1ee47c7fbe7e1a9917fff68a18d9235
|
||||
|
||||
|
||||
diff --git a/README b/README
|
||||
index a74993b..fe298b4 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -143,7 +143,7 @@ See the examples/ subdirectory.
|
||||
Feedback and bugs
|
||||
-----------------
|
||||
|
||||
-Send feedback to libguestfs@redhat.com. You can file bugs in
|
||||
+Send feedback to guestfs@lists.libguestfs.org. You can file bugs in
|
||||
https://bugzilla.redhat.com/ (under "Fedora", "supermin")
|
||||
|
||||
Alternate libc
|
32
detect-aarch64-kernel.patch
Normal file
32
detect-aarch64-kernel.patch
Normal file
@ -0,0 +1,32 @@
|
||||
References: bsc#1187532 - virt-make-fs hangs forever
|
||||
|
||||
Index: supermin-5.3.3/src/format_ext2_kernel.ml
|
||||
===================================================================
|
||||
--- supermin-5.3.3.orig/src/format_ext2_kernel.ml
|
||||
+++ supermin-5.3.3/src/format_ext2_kernel.ml
|
||||
@@ -155,7 +155,7 @@ and find_kernel_from_boot debug host_cpu
|
||||
if files <> [] then files
|
||||
else (
|
||||
(* In original: ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen *)
|
||||
- let files = files_matching_globs ["vmlinu?-*"] all_files in
|
||||
+ let files = files_matching_globs ["vmlinu?-*"; "Image-*"] all_files in
|
||||
let files = ignore_unbootable_kernels host_cpu files in
|
||||
files
|
||||
) in
|
||||
@@ -262,9 +262,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 (
|
11
disable-test-if-newer-ext2.patch
Normal file
11
disable-test-if-newer-ext2.patch
Normal 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.
|
BIN
supermin-5.3.3.tar.gz
(Stored with Git LFS)
Normal file
BIN
supermin-5.3.3.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
17
supermin-5.3.3.tar.gz.sig
Normal file
17
supermin-5.3.3.tar.gz.sig
Normal file
@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmNOrGARHHJpY2hAYW5u
|
||||
ZXhpYS5vcmcACgkQkXOPc+G3aKAgHA/9EFGRdvIryS5UUcXz9yvaYs5WvMtuPn9s
|
||||
Dcb7lVwLsMkVpcMulOyN1sPTI4WkgqKeXSvSJXfby/Loon8p8aTlSDZkEhivMpDG
|
||||
TliKX5P8kySC+9KXSKfzHyVwKd6j/pmLtw3QvpgwuZPYdkIHzVluWKd1ql6nbLh/
|
||||
LsSg2YNyJi48i/W64xEGN0ENviYMmHoNnE56nFEApwHfG26j5bHvLZJqjFYS5ClF
|
||||
CJtoaAOEEAySbJmbKTxCByk44CxjfpUHHwupJ+QKoXIJmYFVAQO2jrW3zvR7zRyI
|
||||
rA1Woaqmft3PDszH9565AD34FFmXQ70+GOanO7tH1uk0wgK+lgpZpb0UMzcNBSPh
|
||||
6cU4wY4nvxww39HdGLQ95au54Lp4I90S8MGrtO7XD0N2fA6QlbcSMnpM3LM4CZDi
|
||||
g7SUeqWy6PRoqd6vEvO9MgAOIg/YbcnRCFZsUe2na04FvKI0jWFwor1Xm0RJIQrf
|
||||
ufpLjKG1hpjbQa0Hu0RISVKBMMnLfCg3Z5xMWq0mVysdGrJzWrTqYT5Os8KOU+04
|
||||
0Ni1DWw+o3CNacTVmOroRvsUYPzQiivutNgPovRaVIL4u6OwWw+tUtxRCpZlxzc/
|
||||
m00IGHLgKwdbHTShRqzp6P2QcuXS7SGv9EqNL7yJL3kvc5INp4XJ3QHDdpO2hz5S
|
||||
10cJfC6ph1o=
|
||||
=FSUE
|
||||
-----END PGP SIGNATURE-----
|
19
supermin-kernel_version_compressed.patch
Normal file
19
supermin-kernel_version_compressed.patch
Normal file
@ -0,0 +1,19 @@
|
||||
--- a/src/format_ext2_kernel.ml
|
||||
+++ b/src/format_ext2_kernel.ml
|
||||
@@ -252,6 +252,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
|
||||
+ let basename =
|
||||
+ let len = String.length basename in
|
||||
+ if Filename.check_suffix basename ".xz" || Filename.check_suffix basename ".gz"
|
||||
+ then (
|
||||
+ let basename = String.sub basename 0 (len-3) in
|
||||
+ basename
|
||||
+ )
|
||||
+ else (
|
||||
+ basename
|
||||
+ ) in
|
||||
if string_prefix "vmlinuz-" basename || string_prefix "vmlinux-" basename
|
||||
then (
|
||||
let version = String.sub basename 8 (String.length basename - 8) in
|
219
supermin.changes
Normal file
219
supermin.changes
Normal file
@ -0,0 +1,219 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 4 11:07:03 MST 2024 - carnold@suse.com
|
||||
|
||||
- Update to version 5.3.3 (jsc#PED-6305)
|
||||
* initrd: Support ztd-compressed modules
|
||||
* pacman: Recognise Artix, an Arch derivative
|
||||
* Add a separate variable to store link flags, and use that to
|
||||
supply
|
||||
* Add appropriate globs for arm based kernels. The file names end
|
||||
in -arm64 but the architecture is named aarch64.
|
||||
* Add support for OCaml 5.0
|
||||
* Add LFS support for fts functions
|
||||
* Numerous bug fixes
|
||||
- Upstream bug fixes and features
|
||||
001-Improved-debugging-of-the-supermin-if-newer-calculation.patch
|
||||
002-Fix-if-newer-copy-kernel.patch
|
||||
003-Fix-kernel-filtering-for-aarch64-architecture.patch
|
||||
004-Use-output-complete-exe-instead-of-custom.patch
|
||||
005-Only-supply-output-complete-exe-to-final-link.patch
|
||||
006-Rename-function-file-kernel.patch
|
||||
007-Uncompress-kernel-on-RISC-V.patch
|
||||
008-Fix-link-to-renamed-kernel-documentation.patch
|
||||
009-New-mailing-list-email-address.patch
|
||||
- Dropped initrd_support_ztd-compressed_modules.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 27 15:59:57 UTC 2022 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
- Enable build on riscv64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 9 09:22:50 UTC 2022 - Thorsten Kukuk <kukuk@suse.com>
|
||||
|
||||
- Include sysconfig-netconfig only until SLE15, newer versions
|
||||
don't use it anymore [jsc#PED-1734]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 4 14:00:46 MDT 2022 - carnold@suse.com
|
||||
|
||||
- jsc#PED-2113 [Virt Tools] Refresh Virtualization Tools for Xen
|
||||
and KVM Management
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 7 14:54:48 MST 2022 - carnold@suse.com
|
||||
|
||||
- bsc#1187532 - virt-make-fs hangs forever
|
||||
detect-aarch64-kernel.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 21 15:33:22 UTC 2021 - Benoît Monin <benoit.monin@gmx.fr>
|
||||
|
||||
- Add initrd_support_ztd-compressed_modules.patch:
|
||||
backport of 4306a131c6cd to add support of zstd compressed kernel
|
||||
modules.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 12 10:20:30 UTC 2021 - ohering@suse.de
|
||||
|
||||
- Restore ExclusiveArch, continue to follow libguestfs
|
||||
The 'almost' below is the reason.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 9 19:19:19 UTC 2021 - ohering@suse.de
|
||||
|
||||
- arm32 may have a kernel named /boot/zImage
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 9 11:38:07 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Remove arch exclusion, almost all of them build.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- Fix typo risc64 -> riscv64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 5 16:59:34 CET 2021 - ro@suse.de
|
||||
|
||||
- add patch supermin-kernel_version_compressed.patch
|
||||
find kernel module path even for compressed kernels
|
||||
like on aarch64 and s390x (bsc#1182112, bsc#1138258)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 23 18:45:45 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 5.2.0:
|
||||
* rpm: extend the Multiple_matches exception
|
||||
* Use external command mv to rename old output directory (RHBZ#1670191).
|
||||
* rpm: do not unpack parameters
|
||||
* rpm: fix version comparison
|
||||
* rpm: provide a dummy supermin_rpm_get_arch implementation
|
||||
* ext2: Build symbolic links correctly (RHBZ#1770304).
|
||||
* Update gnulib to latest.
|
||||
- switch to release tarball, use keyring for gpg validation
|
||||
- run tests
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 1 12:34:56 UTC 2019 - ohering@suse.de
|
||||
|
||||
- Update to version 5.1.20, via _service file
|
||||
No changelog provided by upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 31 16:52:14 UTC 2019 - Larry Dewey <ldewey@suse.com>
|
||||
|
||||
- Adding sysconfig-netconfig to list of required dependencie
|
||||
(BSC#136878)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 7 14:49:41 UTC 2019 - Larry Dewey <ldewey@suse.com>
|
||||
|
||||
- Added tar as software dependency.
|
||||
(BSC#1134334)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 31 14:09:58 UTC 2017 - cbosdonnat@suse.com
|
||||
|
||||
- Distro detection: also use ID_LIKE to catch suse distros
|
||||
add patch: suse_release.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 13 14:17:07 UTC 2017 - cbosdonnat@suse.com
|
||||
|
||||
- Update to version 5.1.18
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 30 13:45:27 UTC 2017 - olaf@aepfle.de
|
||||
|
||||
- Update to version 5.1.17
|
||||
remove 0001-add_simple_handling_of_os-release.patch
|
||||
remove 0002-use_os-release_to_detect_the_distro.patch
|
||||
remove 0003-tests_use__etc_os-release_in_test-harder.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 8 15:01:41 UTC 2016 - cbosdonnat@suse.com
|
||||
|
||||
- Remove use of SuSE-release and use os-release instead. (bsc#997936)
|
||||
0001-add_simple_handling_of_os-release.patch
|
||||
0002-use_os-release_to_detect_the_distro.patch
|
||||
0003-tests_use__etc_os-release_in_test-harder.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 26 09:24:57 UTC 2016 - cbosdonnat@suse.com
|
||||
|
||||
- fate#316274
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 25 14:26:48 UTC 2016 - olaf@aepfle.de
|
||||
|
||||
- Preserve bytecode
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 23 15:16:31 UTC 2015 - olaf@aepfle.de
|
||||
|
||||
- Update to version 5.1.13
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 20 10:08:25 UTC 2014 - ohering@suse.com
|
||||
|
||||
- Update to version 5.1.10
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 13 15:54:34 CEST 2014 - ohering@suse.de
|
||||
|
||||
- Update to version 5.1.8
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 19 18:58:20 CEST 2013 - ohering@suse.de
|
||||
|
||||
- Update to version 4.1.3
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 4 16:59:21 CEST 2013 - ohering@suse.de
|
||||
|
||||
- zypp: Only compile zypper support if OCaml inifiles module is found.
|
||||
- zypp: Trailing whitespace.
|
||||
- Handle --packager-config in zypp_rpm
|
||||
- helper: Add a note that cpio might not be able to read -f cpio files.
|
||||
- helper: Add megaraid drivers to the initrd.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 9 19:21:47 CEST 2013 - ohering@suse.de
|
||||
|
||||
- add changes to support zypper
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 9 17:44:29 CET 2013 - ohering@suse.de
|
||||
|
||||
- initial package version 4.1.1
|
||||
|
BIN
supermin.keyring
Normal file
BIN
supermin.keyring
Normal file
Binary file not shown.
141
supermin.spec
Normal file
141
supermin.spec
Normal file
@ -0,0 +1,141 @@
|
||||
#
|
||||
# spec file for package supermin
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: supermin
|
||||
Version: 5.3.3
|
||||
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.3-development/supermin-5.3.3.tar.gz
|
||||
Source1: https://download.libguestfs.org/supermin/5.3-development/supermin-5.3.3.tar.gz.sig
|
||||
Source9: supermin.keyring
|
||||
Patch1: 001-Improved-debugging-of-the-supermin-if-newer-calculation.patch
|
||||
Patch2: 002-Fix-if-newer-copy-kernel.patch
|
||||
Patch3: 003-Fix-kernel-filtering-for-aarch64-architecture.patch
|
||||
Patch4: 004-Use-output-complete-exe-instead-of-custom.patch
|
||||
Patch5: 005-Only-supply-output-complete-exe-to-final-link.patch
|
||||
Patch6: 006-Rename-function-file-kernel.patch
|
||||
Patch7: 007-Uncompress-kernel-on-RISC-V.patch
|
||||
Patch8: 008-Fix-link-to-renamed-kernel-documentation.patch
|
||||
Patch9: 009-New-mailing-list-email-address.patch
|
||||
Patch30: suse_release.patch
|
||||
Patch31: supermin-kernel_version_compressed.patch
|
||||
Patch32: disable-test-if-newer-ext2.patch
|
||||
Patch33: detect-aarch64-kernel.patch
|
||||
BuildRequires: augeas
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: distribution-release
|
||||
BuildRequires: e2fsprogs
|
||||
BuildRequires: glibc-devel-static
|
||||
BuildRequires: gzip
|
||||
BuildRequires: hivex
|
||||
BuildRequires: kernel-default
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: ocaml
|
||||
BuildRequires: ocaml-findlib
|
||||
BuildRequires: ocaml-rpm-macros >= 4.02.1
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: xz
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: zstd
|
||||
BuildRequires: zypper
|
||||
BuildRequires: pkgconfig(com_err)
|
||||
BuildRequires: pkgconfig(ext2fs)
|
||||
BuildRequires: pkgconfig(rpm)
|
||||
Requires: distribution-release
|
||||
%if 0%{?suse_version} < 1599
|
||||
Requires: sysconfig-netconfig
|
||||
%endif
|
||||
Requires: tar
|
||||
Requires: xmlstarlet
|
||||
Requires: zypper
|
||||
Provides: febootstrap
|
||||
%{?ocaml_preserve_bytecode}
|
||||
# this must follow libguestfs, which is the only consumer of this pkg
|
||||
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64 riscv64
|
||||
|
||||
%description
|
||||
supermin is a tool for building supermin appliances. These are tiny
|
||||
appliances (similar to virtual machines), usually around 100KB in size,
|
||||
which get fully instantiated on-the-fly in a fraction of a second when
|
||||
you need to boot one of them.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
export ZYPPER=zypper
|
||||
export ZYPPER=%{_bindir}/zypper
|
||||
touch INSTALL NEWS AUTHORS ChangeLog
|
||||
#.gnulib/gnulib-tool --update
|
||||
autoreconf -fi
|
||||
%configure --help
|
||||
%configure --disable-network-tests
|
||||
%make_build \
|
||||
%{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%make_install
|
||||
find %{buildroot} -ls
|
||||
|
||||
%check
|
||||
ls -alt /boot /lib/modules || :
|
||||
ls -altd /lib/modules/*/* || :
|
||||
|
||||
for i in /boot/image* /boot/Image* /boot/vmlinu* /boot/zImage*
|
||||
do
|
||||
test -f "$i" || continue
|
||||
if get_kernel_version "${i}" > $$
|
||||
then
|
||||
if test -s $$
|
||||
then
|
||||
read SUPERMIN_KERNEL_VERSION < $$
|
||||
export "SUPERMIN_KERNEL=$i"
|
||||
export "SUPERMIN_KERNEL_VERSION=$SUPERMIN_KERNEL_VERSION"
|
||||
export "SUPERMIN_MODULES=/lib/modules/${SUPERMIN_KERNEL_VERSION}"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -fv $$
|
||||
test -n "${SUPERMIN_KERNEL}"
|
||||
test -n "${SUPERMIN_KERNEL_VERSION}"
|
||||
test -d "${SUPERMIN_MODULES}"
|
||||
%ifnarch s390x
|
||||
if make check
|
||||
then
|
||||
rc=0
|
||||
else
|
||||
: rc $?
|
||||
rc=1
|
||||
fi
|
||||
cat tests/test-suite.log
|
||||
exit ${rc}
|
||||
%endif
|
||||
|
||||
%files
|
||||
%doc README
|
||||
%doc TODO
|
||||
%{_bindir}/*
|
||||
%{_mandir}/*/*
|
||||
|
||||
%changelog
|
63
suse_release.patch
Normal file
63
suse_release.patch
Normal file
@ -0,0 +1,63 @@
|
||||
--- a/src/os_release.ml
|
||||
+++ b/src/os_release.ml
|
||||
@@ -29,6 +29,7 @@ let split sep str =
|
||||
|
||||
type os_release = {
|
||||
id : string;
|
||||
+ id_like : string list;
|
||||
}
|
||||
|
||||
let data = ref None
|
||||
@@ -52,6 +53,7 @@ and parse () =
|
||||
let lines = List.filter (fun s -> s.[0] <> '#') lines in
|
||||
|
||||
let id = ref "" in
|
||||
+ let id_like = ref [] in
|
||||
|
||||
List.iter (
|
||||
fun line ->
|
||||
@@ -65,10 +67,11 @@ and parse () =
|
||||
else value in
|
||||
match field with
|
||||
| "ID" -> id := value
|
||||
+ | "ID_LIKE" -> id_like := string_split " " value
|
||||
| _ -> ()
|
||||
) lines;
|
||||
|
||||
- Some { id = !id; }
|
||||
+ Some { id = !id; id_like = !id_like }
|
||||
) else
|
||||
None
|
||||
|
||||
@@ -76,3 +79,8 @@ let get_id () =
|
||||
match get_data () with
|
||||
| None -> ""
|
||||
| Some d -> d.id
|
||||
+
|
||||
+let get_id_like () =
|
||||
+ match get_data () with
|
||||
+ | None -> []
|
||||
+ | Some d -> d.id_like
|
||||
--- a/src/os_release.mli
|
||||
+++ b/src/os_release.mli
|
||||
@@ -24,3 +24,10 @@ val get_id : unit -> string
|
||||
|
||||
An empty string is returned if the file does not exist or cannot
|
||||
be read. *)
|
||||
+
|
||||
+val get_id_like : unit -> string list
|
||||
+(** Get the value of the "ID_LIKE" field from the /etc/os-release file
|
||||
+ on the current system.
|
||||
+
|
||||
+ An empty list is returned if the file does not exist, cannot
|
||||
+ be read or the ID_LIKE field is not defined. *)
|
||||
--- a/src/ph_rpm.ml
|
||||
+++ b/src/ph_rpm.ml
|
||||
@@ -45,6 +45,7 @@ let opensuse_detect () =
|
||||
Config.zypper <> "no" &&
|
||||
(List.mem (Os_release.get_id ()) [ "sled"; "sles" ] ||
|
||||
string_prefix "opensuse" (Os_release.get_id ()) ||
|
||||
+ List.mem "suse" (Os_release.get_id_like ()) ||
|
||||
try (stat "/etc/SuSE-release").st_kind = S_REG with Unix_error _ -> false)
|
||||
|
||||
let mageia_detect () =
|
Loading…
Reference in New Issue
Block a user