Add further patch to fix symlinks (RHBZ#1770304).

Add all patches since 5.1.20 was released.
This commit is contained in:
Richard W.M. Jones 2019-12-10 18:49:01 +00:00
parent ad7511ce31
commit 29afe98686
13 changed files with 572 additions and 14 deletions

View File

@ -1,7 +1,7 @@
From 42955541dc3aa8ae3361f3bd6eb0ae338f307545 Mon Sep 17 00:00:00 2001 From 42955541dc3aa8ae3361f3bd6eb0ae338f307545 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com> From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 23 Jan 2019 12:22:19 +0100 Date: Wed, 23 Jan 2019 12:22:19 +0100
Subject: [PATCH 1/2] rpm: extend the Multiple_matches exception Subject: [PATCH 01/12] rpm: extend the Multiple_matches exception
Add the package that raised the issue, so it can be used to provide Add the package that raised the issue, so it can be used to provide
better diagnostic. better diagnostic.
@ -85,5 +85,5 @@ index 5229be6..53b4b2c 100644
val rpm_open : ?debug:int -> t val rpm_open : ?debug:int -> t
(** Open the librpm (transaction set) handle. *) (** Open the librpm (transaction set) handle. *)
-- --
2.20.1 2.23.0

View File

@ -1,7 +1,7 @@
From 36878992ebdd08f0f9b37017f347f5eab18ce9ed Mon Sep 17 00:00:00 2001 From 36878992ebdd08f0f9b37017f347f5eab18ce9ed Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com> From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 23 Jan 2019 12:23:02 +0100 Date: Wed, 23 Jan 2019 12:23:02 +0100
Subject: [PATCH 2/2] Print Librpm.Multiple_matches exceptions Subject: [PATCH 02/12] Print Librpm.Multiple_matches exceptions
Print a better diagnostic for them, so it is more clear which package Print a better diagnostic for them, so it is more clear which package
is detected as present multiple times. is detected as present multiple times.
@ -23,5 +23,5 @@ index f9798f9..71d8b64 100644
error "internal error: invalid argument: %s" msg error "internal error: invalid argument: %s" msg
| Assert_failure (file, line, char) -> (* should never happen *) | Assert_failure (file, line, char) -> (* should never happen *)
-- --
2.20.1 2.23.0

View File

@ -0,0 +1,38 @@
From 6579cf5f72d5de345ae1cc97d0344dfa1771460a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 28 Jan 2019 22:20:33 +0000
Subject: [PATCH 03/12] Use external command mv to rename old output directory
(RHBZ#1670191).
See https://bugzilla.redhat.com/show_bug.cgi?id=1670191#c0
for explanation.
Thanks: Sam Eiderman
---
src/supermin.ml | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/supermin.ml b/src/supermin.ml
index 71d8b64..7c7135b3 100644
--- a/src/supermin.ml
+++ b/src/supermin.ml
@@ -264,12 +264,10 @@ appliance automatically.
(* Delete the old output directory if it exists. *)
let old_outputdir =
- try
- let old_outputdir = outputdir ^ "." ^ string_random8 () in
- rename outputdir old_outputdir;
- Some old_outputdir
- with
- Unix_error _ -> None in
+ let old_outputdir = outputdir ^ "." ^ string_random8 () in
+ let cmd = sprintf "mv %s %s 2>/dev/null"
+ (quote outputdir) (quote old_outputdir) in
+ if Sys.command cmd == 0 then Some old_outputdir else None in
if debug >= 1 then
printf "supermin: renaming %s to %s\n%!" new_outputdir outputdir;
--
2.23.0

View File

@ -0,0 +1,128 @@
From bca633bfd14aeeb8ae1331d468db75d1ef31f9ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@lindev.ch>
Date: Tue, 2 Apr 2019 08:28:06 +0100
Subject: [PATCH 04/12] Add OpenMandriva support (RHBZ#1694267).
---
src/ph_rpm.ml | 28 +++++++++++++++++++++++++---
tests/test-harder.sh | 31 +++++++++++++++++++++++++++++++
2 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
index 46b7f1f..3ff5c94 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -50,6 +50,12 @@ let mageia_detect () =
(Os_release.get_id () = "mageia" ||
try (stat "/etc/mageia-release").st_kind = S_REG with Unix_error _ -> false)
+let openmandriva_detect () =
+ Config.rpm <> "no" && Config.rpm2cpio <> "no" && rpm_is_available () &&
+ ((Config.urpmi <> "no" && Config.fakeroot <> "no") || Config.dnf <> "no") &&
+ (Os_release.get_id () = "openmandriva" ||
+ try (stat "/etc/openmandriva-release").st_kind = S_REG with Unix_error _ -> false)
+
let ibm_powerkvm_detect () =
Config.rpm <> "no" && Config.rpm2cpio <> "no" && rpm_is_available () &&
Config.yumdownloader <> "no" &&
@@ -386,17 +392,27 @@ and opensuse_download_all_packages pkgs dir =
rpm_unpack tdir dir
+and openmandriva_download_all_packages pkgs dir =
+ let tdir = !settings.tmpdir // string_random8 () in
+
+ if Config.dnf <> "no" then
+ download_all_packages_with_dnf pkgs dir tdir
+ else (* Config.urpmi <> "no" && Config.fakeroot <> "no" *)
+ download_all_packages_with_urpmi pkgs dir tdir;
+
+ rpm_unpack tdir dir
+
and mageia_download_all_packages pkgs dir =
let tdir = !settings.tmpdir // string_random8 () in
if Config.dnf <> "no" then
download_all_packages_with_dnf pkgs dir tdir
else (* Config.urpmi <> "no" && Config.fakeroot <> "no" *)
- mageia_download_all_packages_with_urpmi pkgs dir tdir;
+ download_all_packages_with_urpmi pkgs dir tdir;
rpm_unpack tdir dir
-and mageia_download_all_packages_with_urpmi pkgs dir tdir =
+and download_all_packages_with_urpmi pkgs dir tdir =
let rpms = List.map rpm_package_name (PackageSet.elements pkgs) in
let cmd =
@@ -484,4 +500,10 @@ let () =
ph_detect = mageia_detect;
ph_download_package = PHDownloadAllPackages mageia_download_all_packages;
} in
- register_package_handler "mageia" "rpm" mageia
+ register_package_handler "mageia" "rpm" mageia;
+ let openmandriva = {
+ fedora with
+ ph_detect = openmandriva_detect;
+ ph_download_package = PHDownloadAllPackages openmandriva_download_all_packages;
+ } in
+ register_package_handler "openmandriva" "rpm" openmandriva
diff --git a/tests/test-harder.sh b/tests/test-harder.sh
index c827f13..aceef21 100755
--- a/tests/test-harder.sh
+++ b/tests/test-harder.sh
@@ -31,6 +31,7 @@ if [ -f /etc/os-release ]; then
fedora|rhel|centos) distro=redhat ;;
opensuse*|sled|sles) distro=suse ;;
ubuntu) distro=debian ;;
+ openmandriva) distro=openmandriva ;;
esac
elif [ -f /etc/arch-release ]; then
distro=arch
@@ -77,6 +78,9 @@ case $distro in
ibm-powerkvm)
pkgs="augeas hivex tar"
;;
+ openmandriva)
+ pkgs="augeas hivex rpm"
+ ;;
*)
echo "Unhandled distro '$distro'"
exit 77
@@ -153,6 +157,33 @@ case $distro in
exit 1
fi
;;
+ openmandriva)
+ if [ ! -x $d2/usr/bin/augtool ]; then
+ echo "$0: $distro: augtool binary not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ "$(find $d2/lib* $d2/usr/lib* -name libaugeas.so.0 | wc -l)" -lt 1 ]; then
+ echo "$0: $distro: augeas library not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ ! -x $d2/usr/bin/hivexget ]; then
+ echo "$0: $distro: hivexget binary not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ "$(find $d2/usr/lib* -name libhivex.so.0 | wc -l)" -lt 1 ]; then
+ echo "$0: $distro: hivex library not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ if [ ! -x $d2/bin/rpm ]; then
+ echo "$0: $distro: rpm binary not installed in chroot"
+ ls -lR $d2
+ exit 1
+ fi
+ ;;
redhat)
if [ ! -x $d2/usr/bin/augtool ]; then
echo "$0: $distro: augtool binary not installed in chroot"
--
2.23.0

View File

@ -0,0 +1,33 @@
From 941f72d05302d265af763c7f8ed6b999e4f85eeb Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 12 Apr 2019 11:58:49 +0200
Subject: [PATCH 05/12] rpm: do not unpack parameters
They will be used as parameters again soon.
This has no behaviour changes.
---
src/ph_rpm.ml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
index 3ff5c94..6769e7b 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -144,10 +144,10 @@ let rpm_package_of_string str =
* interested in the highest version with the best
* architecture.
*)
- let cmp { version = v1; arch = a1 } { version = v2; arch = a2 } =
- let i = rpm_vercmp v2 v1 in
+ let cmp pkg1 pkg2 =
+ let i = rpm_vercmp pkg2.version pkg1.version in
if i <> 0 then i
- else compare_architecture a2 a1
+ else compare_architecture pkg2.arch pkg1.arch
in
let rpms = List.sort cmp rpms in
List.hd rpms
--
2.23.0

View File

@ -0,0 +1,70 @@
From de075776722741a67b0956f36a6357fcedd66ae0 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 12 Apr 2019 12:13:07 +0200
Subject: [PATCH 06/12] rpm: fix version comparison
When comparing two RPMs, also the epoch, and the release must be taken
into account. Hence, add a new helper to get the EVR string of a
package, and use it when sorting each list of installed packages.
The mapping is done to avoid recreating the EVR strings at every
comparison.
---
src/ph_rpm.ml | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
index 6769e7b..a8bcf7c 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -136,21 +136,44 @@ let rpm_of_pkg, pkg_of_rpm = get_memo_functions ()
(* Memo of rpm_package_of_string. *)
let rpmh = Hashtbl.create 13
+let rpm_to_evr_string rpm =
+ (* In RPM < 4.11 query commands that use the epoch number in the
+ * package name did not work.
+ *
+ * For example:
+ * RHEL 6 (rpm 4.8.0):
+ * $ rpm -q tar-2:1.23-11.el6.x86_64
+ * package tar-2:1.23-11.el6.x86_64 is not installed
+ * Fedora 20 (rpm 4.11.2):
+ * $ rpm -q tar-2:1.26-30.fc20.x86_64
+ * tar-1.26-30.fc20.x86_64
+ *
+ *)
+ let is_rpm_lt_4_11 =
+ !rpm_major < 4 || (!rpm_major = 4 && !rpm_minor < 11) in
+
+ if is_rpm_lt_4_11 || rpm.epoch = 0 then
+ sprintf "%s-%s" rpm.version rpm.release
+ else
+ sprintf "%d:%s-%s"
+ rpm.epoch rpm.version rpm.release
+
let rpm_package_of_string str =
let query rpm =
let rpms = Array.to_list (rpm_installed (get_rpm ()) rpm) in
+ let rpms = List.map (fun rpm -> (rpm, rpm_to_evr_string rpm)) rpms in
(* RPM will return multiple hits when either multiple versions or
* multiple arches are installed at the same time. We are only
* interested in the highest version with the best
* architecture.
*)
- let cmp pkg1 pkg2 =
- let i = rpm_vercmp pkg2.version pkg1.version in
+ let cmp (pkg1, evr1) (pkg2, evr2) =
+ let i = rpm_vercmp evr2 evr2 in
if i <> 0 then i
else compare_architecture pkg2.arch pkg1.arch
in
let rpms = List.sort cmp rpms in
- List.hd rpms
+ fst (List.hd rpms)
in
try
--
2.23.0

View File

@ -0,0 +1,90 @@
From e57e988c39aca015100fb92377dbd8d114c0bece Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 12 Apr 2019 12:26:11 +0200
Subject: [PATCH 07/12] rpm: query the RPM architecture
Query the RPM library for the current architecture of RPM, storing it
for later use, and printing it to the debug output.
---
src/librpm-c.c | 10 ++++++++++
src/librpm.ml | 1 +
src/librpm.mli | 3 +++
src/ph_rpm.ml | 8 ++++++--
4 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/librpm-c.c b/src/librpm-c.c
index 75ca4d7..2e2f048 100644
--- a/src/librpm-c.c
+++ b/src/librpm-c.c
@@ -132,6 +132,16 @@ supermin_rpm_vercmp (value av, value bv)
return Val_int (rpmvercmp (String_val (av), String_val (bv)));
}
+value
+supermin_rpm_get_arch (value unit)
+{
+ const char *str;
+
+ rpmGetArchInfo (&str, NULL);
+
+ return caml_copy_string (str);
+}
+
value
supermin_rpm_open (value debugv)
{
diff --git a/src/librpm.ml b/src/librpm.ml
index b6f9ff8..c987e21 100644
--- a/src/librpm.ml
+++ b/src/librpm.ml
@@ -20,6 +20,7 @@ external rpm_is_available : unit -> bool = "supermin_rpm_is_available" "noalloc"
external rpm_version : unit -> string = "supermin_rpm_version"
external rpm_vercmp : string -> string -> int = "supermin_rpm_vercmp" "noalloc"
+external rpm_get_arch : unit -> string = "supermin_rpm_get_arch"
type t
diff --git a/src/librpm.mli b/src/librpm.mli
index 53b4b2c..c0d7bdf 100644
--- a/src/librpm.mli
+++ b/src/librpm.mli
@@ -28,6 +28,9 @@ val rpm_version : unit -> string
val rpm_vercmp : string -> string -> int
(** Compare two RPM version strings using RPM version compare rules. *)
+val rpm_get_arch : unit -> string
+(** The current main RPM architecture. *)
+
type t
(** The librpm handle. *)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
index a8bcf7c..e27d226 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -64,7 +64,7 @@ let ibm_powerkvm_detect () =
with Unix_error _ -> false
let settings = ref no_settings
-let rpm_major, rpm_minor = ref 0, ref 0
+let rpm_major, rpm_minor, rpm_arch = ref 0, ref 0, ref ""
let zypper_major, zypper_minor, zypper_patch = ref 0, ref 0, ref 0
let t = ref None
@@ -93,7 +93,11 @@ let rec rpm_init s =
if !settings.debug >= 1 then
printf "supermin: rpm: detected RPM version %d.%d\n" major minor;
- t := Some (rpm_open ~debug:!settings.debug)
+ t := Some (rpm_open ~debug:!settings.debug);
+
+ rpm_arch := rpm_get_arch ();
+ if !settings.debug >= 1 then
+ printf "supermin: rpm: detected RPM architecture %s\n" !rpm_arch
and opensuse_init s =
rpm_init s;
--
2.23.0

View File

@ -0,0 +1,49 @@
From 72735dd11c83eb59d90e04b3c1e580af43b1ba0a Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 12 Apr 2019 12:38:46 +0200
Subject: [PATCH 08/12] rpm: fix package sorting (RHBZ#1696822)
The sorting algorithm for RPMs sorted this way:
- before the packages with the higher versions
- among the packages with the version version, first noarch packages,
then 64bit packages, and then 32bit packages
This was broken in at least two ways:
- the higher installed version may not be of the same host architecture
- if the host architecture is 32bit, and there is a 64bit package of a
32bit installed one, the 64bit version was preferred
Instead:
- first sort by architecture, preferring noarch packages, and
packages of the host architecture
- then sort by version
This way, the higher version of the host architecture is preferred,
otherwise the higher version of any foreign architecture is chosen.
---
src/ph_rpm.ml | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
index e27d226..dbe3bda 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
@@ -172,9 +172,14 @@ let rpm_package_of_string str =
* architecture.
*)
let cmp (pkg1, evr1) (pkg2, evr2) =
- let i = rpm_vercmp evr2 evr2 in
+ let weight_of_arch = function
+ | "noarch" -> 100
+ | a when a = !rpm_arch -> 50
+ | _ -> 0
+ in
+ let i = compare (weight_of_arch pkg2.arch) (weight_of_arch pkg1.arch) in
if i <> 0 then i
- else compare_architecture pkg2.arch pkg1.arch
+ else rpm_vercmp evr2 evr2
in
let rpms = List.sort cmp rpms in
fst (List.hd rpms)
--
2.23.0

View File

@ -0,0 +1,66 @@
From b2401285cd3e3d42006fc164ef1f046cc35a50c4 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 12 Apr 2019 12:47:52 +0200
Subject: [PATCH 09/12] utils: remove unused 'compare_architecture' function
This was used only in the RPM package handler.
---
src/utils.ml | 27 ---------------------------
src/utils.mli | 3 ---
2 files changed, 30 deletions(-)
diff --git a/src/utils.ml b/src/utils.ml
index f85418f..b25df88 100644
--- a/src/utils.ml
+++ b/src/utils.ml
@@ -172,33 +172,6 @@ and split_version = function
) in
first :: split_version rest
-let compare_architecture a1 a2 =
- let index_of_architecture = function
- | "noarch" | "all" -> 100
- | "i386" | "i486" | "i586" | "i686" | "x86_32" | "x86-32" -> 32
- | "x86_64" | "x86-64" | "amd64" -> 64
- | "armel" | "armhf" -> 32
- | "aarch64" -> 64
- | a when string_prefix "armv5" a -> 32
- | a when string_prefix "armv6" a -> 32
- | a when string_prefix "armv7" a -> 32
- | a when string_prefix "armv8" a -> 64
- | "hppa" | "parisc" -> 32
- | "hppa64" | "parisc64" -> 64
- | "ppc" | "ppc32" -> 32
- | a when string_prefix "ppc64" a -> 64
- | "sparc" | "sparc32" -> 32
- | "sparc64" -> 64
- | "ia64" -> 64
- | "s390" -> 32
- | "s390x" -> 64
- | "alpha" -> 64
- | a ->
- error "missing support for architecture '%s'\nIt may need to be added to supermin."
- a
- in
- compare (index_of_architecture a1) (index_of_architecture a2)
-
(* Parse a size field, eg. "10G". *)
let parse_size =
let const_re = Str.regexp "^\\([.0-9]+\\)\\([bKMG]\\)$" in
diff --git a/src/utils.mli b/src/utils.mli
index 7837dbb..b86586a 100644
--- a/src/utils.mli
+++ b/src/utils.mli
@@ -86,9 +86,6 @@ val filter_map : ('a -> 'b option) -> 'a list -> 'b list
val compare_version : string -> string -> int
(** Compare two version-like strings. *)
-val compare_architecture : string -> string -> int
- (** Compare two architecture strings. *)
-
val parse_size : string -> int64
(** Parse a size field, eg. [10G] *)
--
2.23.0

View File

@ -0,0 +1,33 @@
From c97b3917068597a0e68e88d9a905da766ade40da Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 24 May 2019 13:31:07 +0200
Subject: [PATCH 10/12] rpm: provide a dummy supermin_rpm_get_arch
implementation
Make sure supermin builds fine also without the RPM development files.
Fixes commit e57e988c39aca015100fb92377dbd8d114c0bece.
---
src/librpm-c.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/librpm-c.c b/src/librpm-c.c
index 2e2f048..523fe0b 100644
--- a/src/librpm-c.c
+++ b/src/librpm-c.c
@@ -483,6 +483,12 @@ supermin_rpm_vercmp (value av, value bv)
abort ();
}
+value
+supermin_rpm_get_arch (value unit)
+{
+ abort ();
+}
+
value
supermin_rpm_open (value debugv)
{
--
2.23.0

View File

@ -1,7 +1,7 @@
From 487e8c964078f823646d3b0584745ab7d0ef99ca Mon Sep 17 00:00:00 2001 From 487e8c964078f823646d3b0584745ab7d0ef99ca Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 26 Nov 2019 09:01:21 +0000 Date: Tue, 26 Nov 2019 09:01:21 +0000
Subject: [PATCH] ext2: Build symbolic links correctly (RHBZ#1770304). Subject: [PATCH 11/12] ext2: Build symbolic links correctly (RHBZ#1770304).
We created symlinks in two steps, by creating the empty inode and then We created symlinks in two steps, by creating the empty inode and then
calling ext2fs_symlink to populate it. This created broken symlinks calling ext2fs_symlink to populate it. This created broken symlinks

View File

@ -0,0 +1,42 @@
From 62d5c774d6c8fcac11e28fcba99754b5478e5088 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 10 Dec 2019 18:43:00 +0000
Subject: [PATCH 12/12] ext2: Expand directory when adding symlinks
(RHBZ#1770304).
This produced very weird bugs with missing symlinks under
certain conditions, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1781803
Fixes commit 487e8c964078f823646d3b0584745ab7d0ef99ca.
---
src/ext2fs-c.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/ext2fs-c.c b/src/ext2fs-c.c
index 8903f74..0000865 100644
--- a/src/ext2fs-c.c
+++ b/src/ext2fs-c.c
@@ -791,7 +791,18 @@ ext2_copy_file (struct ext2_data *data, const char *src, const char *dest)
if (r > statbuf.st_size)
r = statbuf.st_size;
buf[r] = '\0';
- ext2fs_symlink (data->fs, dir_ino, 0, basename, buf);
+ symlink_again:
+ err = ext2fs_symlink (data->fs, dir_ino, 0, basename, buf);
+ if (err) {
+ if (err == EXT2_ET_DIR_NO_SPACE) {
+ err = ext2fs_expand_dir (data->fs, dir_ino);
+ if (err)
+ ext2_error_to_exception ("ext2fs_expand_dir", err, dirname);
+ goto symlink_again;
+ }
+ else
+ ext2_error_to_exception ("ext2fs_symlink", err, basename);
+ }
free (buf);
}
/* Create directory. */
--
2.23.0

View File

@ -26,7 +26,7 @@
Summary: Tool for creating supermin appliances Summary: Tool for creating supermin appliances
Name: supermin Name: supermin
Version: 5.1.20 Version: 5.1.20
Release: 10%{?dist} Release: 11%{?dist}
License: GPLv2+ License: GPLv2+
%if 0%{?rhel} >= 7 %if 0%{?rhel} >= 7
@ -46,14 +46,19 @@ Source1: http://libguestfs.org/download/supermin/%{name}-%{version}.tar.gz
Source2: libguestfs.keyring Source2: libguestfs.keyring
%endif %endif
# Upstream patches to diagnose possible F29 issue: # Upstream patches since 5.1.20 was released.
# https://www.redhat.com/archives/libguestfs/2019-January/thread.html#00168 Patch0001: 0001-rpm-extend-the-Multiple_matches-exception.patch
Patch1: 0001-rpm-extend-the-Multiple_matches-exception.patch Patch0002: 0002-Print-Librpm.Multiple_matches-exceptions.patch
Patch2: 0002-Print-Librpm.Multiple_matches-exceptions.patch Patch0003: 0003-Use-external-command-mv-to-rename-old-output-directo.patch
Patch0004: 0004-Add-OpenMandriva-support-RHBZ-1694267.patch
# Upstream patch to fix symlinks. Patch0005: 0005-rpm-do-not-unpack-parameters.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1770304 Patch0006: 0006-rpm-fix-version-comparison.patch
Patch3: 0001-ext2-Build-symbolic-links-correctly-RHBZ-1770304.patch Patch0007: 0007-rpm-query-the-RPM-architecture.patch
Patch0008: 0008-rpm-fix-package-sorting-RHBZ-1696822.patch
Patch0009: 0009-utils-remove-unused-compare_architecture-function.patch
Patch0010: 0010-rpm-provide-a-dummy-supermin_rpm_get_arch-implementa.patch
Patch0011: 0011-ext2-Build-symbolic-links-correctly-RHBZ-1770304.patch
Patch0012: 0012-ext2-Expand-directory-when-adding-symlinks-RHBZ-1770.patch
BuildRequires: /usr/bin/pod2man BuildRequires: /usr/bin/pod2man
BuildRequires: /usr/bin/pod2html BuildRequires: /usr/bin/pod2html
@ -175,6 +180,10 @@ make check || {
%changelog %changelog
* Tue Dec 10 2019 Richard W.M. Jones <rjones@redhat.com> - 5.1.20-11
- Add further patch to fix symlinks (RHBZ#1770304).
- Add all patches since 5.1.20 was released.
* Thu Nov 28 2019 Richard W.M. Jones <rjones@redhat.com> - 5.1.20-10 * Thu Nov 28 2019 Richard W.M. Jones <rjones@redhat.com> - 5.1.20-10
- Add upstream patch to fix symlinks on recent kernels (RHBZ#1770304). - Add upstream patch to fix symlinks on recent kernels (RHBZ#1770304).