From 69da207e325d22990df676ce7c25bfc3c1d4d543 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 05 2022 10:46:12 +0000 Subject: import libguestfs-1.46.1-3.el9_0 --- diff --git a/SOURCES/0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-L.patch b/SOURCES/0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-L.patch new file mode 100644 index 0000000..3611c98 --- /dev/null +++ b/SOURCES/0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-L.patch @@ -0,0 +1,39 @@ +From 336ecfab3bb1e14deea9ade891fb772e0698f8d8 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Fri, 1 Oct 2021 14:53:38 +0200 +Subject: [PATCH] daemon/inspect_fs_unix: recognize modern Pardus GNU/Linux + releases + +Recent Pardus releases seem to have abandoned the original +"/etc/pardus-release" file, which the current Pardus detection, from +commit 233530d3541d ("inspect: Add detection of Pardus.", 2010-10-29), is +based upon. + +Instead, Pardus apparently adopted the "/etc/os-release" specification +, with +"ID=pardus". Extend the "distro_of_os_release_id" function accordingly. +Keep the original method for recognizing earlier releases. + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1993842 +Signed-off-by: Laszlo Ersek +Message-Id: <20211001125338.8956-1-lersek@redhat.com> +Acked-by: Richard W.M. Jones +--- + daemon/inspect_fs_unix.ml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/daemon/inspect_fs_unix.ml b/daemon/inspect_fs_unix.ml +index 557f32833..652bacc0f 100644 +--- a/daemon/inspect_fs_unix.ml ++++ b/daemon/inspect_fs_unix.ml +@@ -151,6 +151,7 @@ and distro_of_os_release_id = function + | "openmandriva" -> Some DISTRO_OPENMANDRIVA + | "opensuse" -> Some DISTRO_OPENSUSE + | s when String.is_prefix s "opensuse-" -> Some DISTRO_OPENSUSE ++ | "pardus" -> Some DISTRO_PARDUS + | "pld" -> Some DISTRO_PLD_LINUX + | "rhel" -> Some DISTRO_RHEL + | "sles" | "sled" -> Some DISTRO_SLES +-- +2.31.1 + diff --git a/SOURCES/0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-Linux-releases.patch b/SOURCES/0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-Linux-releases.patch deleted file mode 100644 index bce4ddb..0000000 --- a/SOURCES/0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-Linux-releases.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 336ecfab3bb1e14deea9ade891fb772e0698f8d8 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 1 Oct 2021 14:53:38 +0200 -Subject: [PATCH] daemon/inspect_fs_unix: recognize modern Pardus GNU/Linux - releases - -Recent Pardus releases seem to have abandoned the original -"/etc/pardus-release" file, which the current Pardus detection, from -commit 233530d3541d ("inspect: Add detection of Pardus.", 2010-10-29), is -based upon. - -Instead, Pardus apparently adopted the "/etc/os-release" specification -, with -"ID=pardus". Extend the "distro_of_os_release_id" function accordingly. -Keep the original method for recognizing earlier releases. - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1993842 -Signed-off-by: Laszlo Ersek -Message-Id: <20211001125338.8956-1-lersek@redhat.com> -Acked-by: Richard W.M. Jones ---- - daemon/inspect_fs_unix.ml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/daemon/inspect_fs_unix.ml b/daemon/inspect_fs_unix.ml -index 557f32833..652bacc0f 100644 ---- a/daemon/inspect_fs_unix.ml -+++ b/daemon/inspect_fs_unix.ml -@@ -151,6 +151,7 @@ and distro_of_os_release_id = function - | "openmandriva" -> Some DISTRO_OPENMANDRIVA - | "opensuse" -> Some DISTRO_OPENSUSE - | s when String.is_prefix s "opensuse-" -> Some DISTRO_OPENSUSE -+ | "pardus" -> Some DISTRO_PARDUS - | "pld" -> Some DISTRO_PLD_LINUX - | "rhel" -> Some DISTRO_RHEL - | "sles" | "sled" -> Some DISTRO_SLES --- -2.19.1.3.g30247aa5d201 - diff --git a/SOURCES/0002-daemon-inspection-Add-support-for-Kylin-RHBZ-1995391.patch b/SOURCES/0002-daemon-inspection-Add-support-for-Kylin-RHBZ-1995391.patch index 1c38b40..653afc7 100644 --- a/SOURCES/0002-daemon-inspection-Add-support-for-Kylin-RHBZ-1995391.patch +++ b/SOURCES/0002-daemon-inspection-Add-support-for-Kylin-RHBZ-1995391.patch @@ -96,5 +96,5 @@ index 690afd460..0c6d39b43 100644 Linux Mint. -- -2.19.1.3.g30247aa5d201 +2.31.1 diff --git a/SOURCES/0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-li.patch b/SOURCES/0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-li.patch new file mode 100644 index 0000000..c08b9f0 --- /dev/null +++ b/SOURCES/0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-li.patch @@ -0,0 +1,209 @@ +From a98532ac7d6c79889703603d9f4ab008f0febd53 Mon Sep 17 00:00:00 2001 +From: Neil Hanlon +Date: Fri, 10 Dec 2021 08:50:48 +0000 +Subject: [PATCH] Add detection support for Rocky Linux (CentOS/RHEL-like) + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2030709 +Thanks: label@rockylinux.org + +--- + +RWMJ notes: I fixed the original patch so it compiled. This patch +sets osinfo to "rocky8", which doesn't exist in the osinfo db yet. +Arguably we might want to set this to "centos8", but we can see what +libosinfo decides to do. Here is partial virt-inspector output on a +Rocky Linux disk image: + +$ ./run virt-inspector -a disk.img + + + + /dev/rl/root + linux + x86_64 + rocky + Rocky Linux 8.5 (Green Obsidian) + 8 + 5 + rpm + dnf + localhost.localdomain + rocky8 + + / + /boot + + + + xfs + fed8331f-9f25-40cd-883e-090cd640559d + + + swap + 6da2c121-ea7d-49ce-98a3-14a37fceaadd + + + xfs + 4efafe61-2d20-4d93-8055-537e09bfd033 + + +(cherry picked from commit 631962c0e88a321646846be91d0fbea1ba14e263) +--- + daemon/inspect_fs.ml | 2 ++ + daemon/inspect_fs_unix.ml | 13 ++++++++++++- + daemon/inspect_types.ml | 2 ++ + daemon/inspect_types.mli | 1 + + generator/actions_inspection.ml | 4 ++++ + lib/inspect-icon.c | 1 + + lib/inspect-osinfo.c | 4 ++++ + 7 files changed, 26 insertions(+), 1 deletion(-) + +diff --git a/daemon/inspect_fs.ml b/daemon/inspect_fs.ml +index 77f0f6aea..9c73d97ef 100644 +--- a/daemon/inspect_fs.ml ++++ b/daemon/inspect_fs.ml +@@ -259,6 +259,7 @@ and check_package_format { distro } = + | None -> None + | Some DISTRO_ALTLINUX + | Some DISTRO_CENTOS ++ | Some DISTRO_ROCKY + | Some DISTRO_FEDORA + | Some DISTRO_MAGEIA + | Some DISTRO_MANDRIVA +@@ -329,6 +330,7 @@ and check_package_management { distro; version } = + Some PACKAGE_MANAGEMENT_DNF + + | Some DISTRO_CENTOS ++ | Some DISTRO_ROCKY + | Some DISTRO_ORACLE_LINUX + | Some DISTRO_REDHAT_BASED + | Some DISTRO_RHEL +diff --git a/daemon/inspect_fs_unix.ml b/daemon/inspect_fs_unix.ml +index 7f6eb92e9..63cb279d0 100644 +--- a/daemon/inspect_fs_unix.ml ++++ b/daemon/inspect_fs_unix.ml +@@ -32,6 +32,8 @@ let re_rhel_no_minor = PCRE.compile "Red Hat.*release (\\d+)" + let re_centos_old = PCRE.compile "CentOS.*release (\\d+).*Update (\\d+)" + let re_centos = PCRE.compile "CentOS.*release (\\d+)\\.(\\d+)" + let re_centos_no_minor = PCRE.compile "CentOS.*release (\\d+)" ++let re_rocky = PCRE.compile "Rocky Linux.*release (\\d+)\\.(\\d+)" ++let re_rocky_no_minor = PCRE.compile "Rocky Linux.*release (\\d+)" + let re_scientific_linux_old = + PCRE.compile "Scientific Linux.*release (\\d+).*Update (\\d+)" + let re_scientific_linux = +@@ -106,7 +108,7 @@ let rec parse_os_release release_file data = + * we detect that situation then bail out and use the release + * files instead. + *) +- | { distro = Some (DISTRO_DEBIAN|DISTRO_CENTOS); ++ | { distro = Some (DISTRO_DEBIAN|DISTRO_CENTOS|DISTRO_ROCKY); + version = Some (_, 0) } -> + false + +@@ -155,6 +157,7 @@ and distro_of_os_release_id = function + | "pardus" -> Some DISTRO_PARDUS + | "pld" -> Some DISTRO_PLD_LINUX + | "rhel" -> Some DISTRO_RHEL ++ | "rocky" -> Some DISTRO_ROCKY + | "sles" | "sled" -> Some DISTRO_SLES + | "ubuntu" -> Some DISTRO_UBUNTU + | "void" -> Some DISTRO_VOID_LINUX +@@ -405,6 +408,10 @@ let linux_root_tests : tests = [ + DISTRO_CENTOS; + "/etc/centos-release", parse_generic ~rex:re_centos_no_minor + DISTRO_CENTOS; ++ "/etc/rocky-release", parse_generic ~rex:re_rocky ++ DISTRO_ROCKY; ++ "/etc/rocky-release", parse_generic ~rex:re_rocky_no_minor ++ DISTRO_ROCKY; + "/etc/altlinux-release", parse_generic DISTRO_ALTLINUX; + "/etc/redhat-release", parse_generic ~rex:re_fedora + DISTRO_FEDORA; +@@ -420,6 +427,10 @@ let linux_root_tests : tests = [ + DISTRO_CENTOS; + "/etc/redhat-release", parse_generic ~rex:re_centos_no_minor + DISTRO_CENTOS; ++ "/etc/redhat-release", parse_generic ~rex:re_rocky ++ DISTRO_ROCKY; ++ "/etc/redhat-release", parse_generic ~rex:re_rocky_no_minor ++ DISTRO_ROCKY; + "/etc/redhat-release", parse_generic ~rex:re_scientific_linux_old + DISTRO_SCIENTIFIC_LINUX; + "/etc/redhat-release", parse_generic ~rex:re_scientific_linux +diff --git a/daemon/inspect_types.ml b/daemon/inspect_types.ml +index e2bc7165c..9395c51f9 100644 +--- a/daemon/inspect_types.ml ++++ b/daemon/inspect_types.ml +@@ -95,6 +95,7 @@ and distro = + | DISTRO_PLD_LINUX + | DISTRO_REDHAT_BASED + | DISTRO_RHEL ++ | DISTRO_ROCKY + | DISTRO_SCIENTIFIC_LINUX + | DISTRO_SLACKWARE + | DISTRO_SLES +@@ -228,6 +229,7 @@ and string_of_distro = function + | DISTRO_PLD_LINUX -> "pldlinux" + | DISTRO_REDHAT_BASED -> "redhat-based" + | DISTRO_RHEL -> "rhel" ++ | DISTRO_ROCKY -> "rocky" + | DISTRO_SCIENTIFIC_LINUX -> "scientificlinux" + | DISTRO_SLACKWARE -> "slackware" + | DISTRO_SLES -> "sles" +diff --git a/daemon/inspect_types.mli b/daemon/inspect_types.mli +index 43c79818f..29c76e8ab 100644 +--- a/daemon/inspect_types.mli ++++ b/daemon/inspect_types.mli +@@ -102,6 +102,7 @@ and distro = + | DISTRO_PLD_LINUX + | DISTRO_REDHAT_BASED + | DISTRO_RHEL ++ | DISTRO_ROCKY + | DISTRO_SCIENTIFIC_LINUX + | DISTRO_SLACKWARE + | DISTRO_SLES +diff --git a/generator/actions_inspection.ml b/generator/actions_inspection.ml +index 0c6d39b43..f8b744993 100644 +--- a/generator/actions_inspection.ml ++++ b/generator/actions_inspection.ml +@@ -278,6 +278,10 @@ Some Red Hat-derived distro. + + Red Hat Enterprise Linux. + ++=item \"rocky\" ++ ++Rocky Linux. ++ + =item \"scientificlinux\" + + Scientific Linux. +diff --git a/lib/inspect-icon.c b/lib/inspect-icon.c +index 725af574b..3bffa4f80 100644 +--- a/lib/inspect-icon.c ++++ b/lib/inspect-icon.c +@@ -138,6 +138,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t *size_r, + else if (STREQ (distro, "rhel") || + STREQ (distro, "redhat-based") || + STREQ (distro, "centos") || ++ STREQ (distro, "rocky") || + STREQ (distro, "scientificlinux") || + STREQ (distro, "oraclelinux")) { + r = icon_rhel (g, guestfs_inspect_get_major_version (g, root), &size); +diff --git a/lib/inspect-osinfo.c b/lib/inspect-osinfo.c +index db38d87f7..90e57e6df 100644 +--- a/lib/inspect-osinfo.c ++++ b/lib/inspect-osinfo.c +@@ -47,6 +47,10 @@ guestfs_impl_inspect_get_osinfo (guestfs_h *g, const char *root) + else if (major == 6) + return safe_asprintf (g, "%s%d.%d", distro, major, minor); + } ++ else if (STREQ (distro, "rocky")) { ++ if (major >= 8) ++ return safe_asprintf (g, "%s%d", distro, major); ++ } + else if (STREQ (distro, "debian")) { + if (major >= 4) + return safe_asprintf (g, "%s%d", distro, major); +-- +2.31.1 + diff --git a/SOURCES/0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-like.patch b/SOURCES/0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-like.patch deleted file mode 100644 index 1915b38..0000000 --- a/SOURCES/0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-like.patch +++ /dev/null @@ -1,209 +0,0 @@ -From a98532ac7d6c79889703603d9f4ab008f0febd53 Mon Sep 17 00:00:00 2001 -From: Neil Hanlon -Date: Fri, 10 Dec 2021 08:50:48 +0000 -Subject: [PATCH] Add detection support for Rocky Linux (CentOS/RHEL-like) - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2030709 -Thanks: label@rockylinux.org - ---- - -RWMJ notes: I fixed the original patch so it compiled. This patch -sets osinfo to "rocky8", which doesn't exist in the osinfo db yet. -Arguably we might want to set this to "centos8", but we can see what -libosinfo decides to do. Here is partial virt-inspector output on a -Rocky Linux disk image: - -$ ./run virt-inspector -a disk.img - - - - /dev/rl/root - linux - x86_64 - rocky - Rocky Linux 8.5 (Green Obsidian) - 8 - 5 - rpm - dnf - localhost.localdomain - rocky8 - - / - /boot - - - - xfs - fed8331f-9f25-40cd-883e-090cd640559d - - - swap - 6da2c121-ea7d-49ce-98a3-14a37fceaadd - - - xfs - 4efafe61-2d20-4d93-8055-537e09bfd033 - - -(cherry picked from commit 631962c0e88a321646846be91d0fbea1ba14e263) ---- - daemon/inspect_fs.ml | 2 ++ - daemon/inspect_fs_unix.ml | 13 ++++++++++++- - daemon/inspect_types.ml | 2 ++ - daemon/inspect_types.mli | 1 + - generator/actions_inspection.ml | 4 ++++ - lib/inspect-icon.c | 1 + - lib/inspect-osinfo.c | 4 ++++ - 7 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/daemon/inspect_fs.ml b/daemon/inspect_fs.ml -index 77f0f6aea..9c73d97ef 100644 ---- a/daemon/inspect_fs.ml -+++ b/daemon/inspect_fs.ml -@@ -259,6 +259,7 @@ and check_package_format { distro } = - | None -> None - | Some DISTRO_ALTLINUX - | Some DISTRO_CENTOS -+ | Some DISTRO_ROCKY - | Some DISTRO_FEDORA - | Some DISTRO_MAGEIA - | Some DISTRO_MANDRIVA -@@ -329,6 +330,7 @@ and check_package_management { distro; version } = - Some PACKAGE_MANAGEMENT_DNF - - | Some DISTRO_CENTOS -+ | Some DISTRO_ROCKY - | Some DISTRO_ORACLE_LINUX - | Some DISTRO_REDHAT_BASED - | Some DISTRO_RHEL -diff --git a/daemon/inspect_fs_unix.ml b/daemon/inspect_fs_unix.ml -index 7f6eb92e9..63cb279d0 100644 ---- a/daemon/inspect_fs_unix.ml -+++ b/daemon/inspect_fs_unix.ml -@@ -32,6 +32,8 @@ let re_rhel_no_minor = PCRE.compile "Red Hat.*release (\\d+)" - let re_centos_old = PCRE.compile "CentOS.*release (\\d+).*Update (\\d+)" - let re_centos = PCRE.compile "CentOS.*release (\\d+)\\.(\\d+)" - let re_centos_no_minor = PCRE.compile "CentOS.*release (\\d+)" -+let re_rocky = PCRE.compile "Rocky Linux.*release (\\d+)\\.(\\d+)" -+let re_rocky_no_minor = PCRE.compile "Rocky Linux.*release (\\d+)" - let re_scientific_linux_old = - PCRE.compile "Scientific Linux.*release (\\d+).*Update (\\d+)" - let re_scientific_linux = -@@ -106,7 +108,7 @@ let rec parse_os_release release_file data = - * we detect that situation then bail out and use the release - * files instead. - *) -- | { distro = Some (DISTRO_DEBIAN|DISTRO_CENTOS); -+ | { distro = Some (DISTRO_DEBIAN|DISTRO_CENTOS|DISTRO_ROCKY); - version = Some (_, 0) } -> - false - -@@ -155,6 +157,7 @@ and distro_of_os_release_id = function - | "pardus" -> Some DISTRO_PARDUS - | "pld" -> Some DISTRO_PLD_LINUX - | "rhel" -> Some DISTRO_RHEL -+ | "rocky" -> Some DISTRO_ROCKY - | "sles" | "sled" -> Some DISTRO_SLES - | "ubuntu" -> Some DISTRO_UBUNTU - | "void" -> Some DISTRO_VOID_LINUX -@@ -405,6 +408,10 @@ let linux_root_tests : tests = [ - DISTRO_CENTOS; - "/etc/centos-release", parse_generic ~rex:re_centos_no_minor - DISTRO_CENTOS; -+ "/etc/rocky-release", parse_generic ~rex:re_rocky -+ DISTRO_ROCKY; -+ "/etc/rocky-release", parse_generic ~rex:re_rocky_no_minor -+ DISTRO_ROCKY; - "/etc/altlinux-release", parse_generic DISTRO_ALTLINUX; - "/etc/redhat-release", parse_generic ~rex:re_fedora - DISTRO_FEDORA; -@@ -420,6 +427,10 @@ let linux_root_tests : tests = [ - DISTRO_CENTOS; - "/etc/redhat-release", parse_generic ~rex:re_centos_no_minor - DISTRO_CENTOS; -+ "/etc/redhat-release", parse_generic ~rex:re_rocky -+ DISTRO_ROCKY; -+ "/etc/redhat-release", parse_generic ~rex:re_rocky_no_minor -+ DISTRO_ROCKY; - "/etc/redhat-release", parse_generic ~rex:re_scientific_linux_old - DISTRO_SCIENTIFIC_LINUX; - "/etc/redhat-release", parse_generic ~rex:re_scientific_linux -diff --git a/daemon/inspect_types.ml b/daemon/inspect_types.ml -index e2bc7165c..9395c51f9 100644 ---- a/daemon/inspect_types.ml -+++ b/daemon/inspect_types.ml -@@ -95,6 +95,7 @@ and distro = - | DISTRO_PLD_LINUX - | DISTRO_REDHAT_BASED - | DISTRO_RHEL -+ | DISTRO_ROCKY - | DISTRO_SCIENTIFIC_LINUX - | DISTRO_SLACKWARE - | DISTRO_SLES -@@ -228,6 +229,7 @@ and string_of_distro = function - | DISTRO_PLD_LINUX -> "pldlinux" - | DISTRO_REDHAT_BASED -> "redhat-based" - | DISTRO_RHEL -> "rhel" -+ | DISTRO_ROCKY -> "rocky" - | DISTRO_SCIENTIFIC_LINUX -> "scientificlinux" - | DISTRO_SLACKWARE -> "slackware" - | DISTRO_SLES -> "sles" -diff --git a/daemon/inspect_types.mli b/daemon/inspect_types.mli -index 43c79818f..29c76e8ab 100644 ---- a/daemon/inspect_types.mli -+++ b/daemon/inspect_types.mli -@@ -102,6 +102,7 @@ and distro = - | DISTRO_PLD_LINUX - | DISTRO_REDHAT_BASED - | DISTRO_RHEL -+ | DISTRO_ROCKY - | DISTRO_SCIENTIFIC_LINUX - | DISTRO_SLACKWARE - | DISTRO_SLES -diff --git a/generator/actions_inspection.ml b/generator/actions_inspection.ml -index 0c6d39b43..f8b744993 100644 ---- a/generator/actions_inspection.ml -+++ b/generator/actions_inspection.ml -@@ -278,6 +278,10 @@ Some Red Hat-derived distro. - - Red Hat Enterprise Linux. - -+=item \"rocky\" -+ -+Rocky Linux. -+ - =item \"scientificlinux\" - - Scientific Linux. -diff --git a/lib/inspect-icon.c b/lib/inspect-icon.c -index 725af574b..3bffa4f80 100644 ---- a/lib/inspect-icon.c -+++ b/lib/inspect-icon.c -@@ -138,6 +138,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t *size_r, - else if (STREQ (distro, "rhel") || - STREQ (distro, "redhat-based") || - STREQ (distro, "centos") || -+ STREQ (distro, "rocky") || - STREQ (distro, "scientificlinux") || - STREQ (distro, "oraclelinux")) { - r = icon_rhel (g, guestfs_inspect_get_major_version (g, root), &size); -diff --git a/lib/inspect-osinfo.c b/lib/inspect-osinfo.c -index db38d87f7..90e57e6df 100644 ---- a/lib/inspect-osinfo.c -+++ b/lib/inspect-osinfo.c -@@ -47,6 +47,10 @@ guestfs_impl_inspect_get_osinfo (guestfs_h *g, const char *root) - else if (major == 6) - return safe_asprintf (g, "%s%d.%d", distro, major, minor); - } -+ else if (STREQ (distro, "rocky")) { -+ if (major >= 8) -+ return safe_asprintf (g, "%s%d", distro, major); -+ } - else if (STREQ (distro, "debian")) { - if (major >= 4) - return safe_asprintf (g, "%s%d", distro, major); --- -2.19.1.3.g30247aa5d201 - diff --git a/SOURCES/0004-launch-libvirt-place-our-virtio-net-pci-device-in-sl.patch b/SOURCES/0004-launch-libvirt-place-our-virtio-net-pci-device-in-sl.patch new file mode 100644 index 0000000..20bbb75 --- /dev/null +++ b/SOURCES/0004-launch-libvirt-place-our-virtio-net-pci-device-in-sl.patch @@ -0,0 +1,65 @@ +From 43e0fdd6cb94370e74b1214c7550aa98b8307409 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Thu, 23 Dec 2021 11:36:59 +0100 +Subject: [PATCH] launch-libvirt: place our virtio-net-pci device in slot 0x1e + +The trick we use for adding our virtio-net-pci device +in the libvirt backend can conflict with libvirtd's and QEMU's PCI address +assignment. Try to mitigate that by placing our device in slot 0x1e on the +root bus. In practice this could only conflict with a "dmi-to-pci-bridge" +device model, which libvirtd itself places in slot 0x1e. However, given +the XMLs we generate, and modern QEMU versions, libvirtd has no reason to +auto-add "dmi-to-pci-bridge". Refer to +. + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2034160 +Signed-off-by: Laszlo Ersek +Message-Id: <20211223103701.12702-2-lersek@redhat.com> +Reviewed-by: Richard W.M. Jones +Tested-by: Richard W.M. Jones +(cherry picked from commit 5ce5ef6a97a58c5e906083ad4e944545712b3f3f) +--- + lib/guestfs-internal.h | 11 +++++++++++ + lib/launch-libvirt.c | 4 +++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h +index 4097b33fd..8eb2dd3ad 100644 +--- a/lib/guestfs-internal.h ++++ b/lib/guestfs-internal.h +@@ -172,6 +172,17 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) + #define VIRTIO_DEVICE_NAME(type) type "-pci" + #endif + ++/* Place the virtio-net controller in slot 0x1e on the root bus, on normal ++ * hardware with PCI. Refer to RHBZ#2034160. ++ */ ++#ifdef HAVE_LIBVIRT_BACKEND ++#if defined(__arm__) || defined(__s390x__) ++#define VIRTIO_NET_PCI_ADDR "" ++#else ++#define VIRTIO_NET_PCI_ADDR ",addr=1e.0" ++#endif ++#endif ++ + /* Guestfs handle and associated structures. */ + + /* State. */ +diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c +index 194530c49..9e8336938 100644 +--- a/lib/launch-libvirt.c ++++ b/lib/launch-libvirt.c +@@ -1851,7 +1851,9 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, + } end_element (); + + start_element ("qemu:arg") { +- attribute ("value", VIRTIO_DEVICE_NAME ("virtio-net") ",netdev=usernet"); ++ attribute ("value", (VIRTIO_DEVICE_NAME ("virtio-net") ++ ",netdev=usernet" ++ VIRTIO_NET_PCI_ADDR)); + } end_element (); + } + +-- +2.31.1 + diff --git a/SOURCES/0004-launch-libvirt-place-our-virtio-net-pci-device-in-slot-0x1e.patch b/SOURCES/0004-launch-libvirt-place-our-virtio-net-pci-device-in-slot-0x1e.patch deleted file mode 100644 index c223681..0000000 --- a/SOURCES/0004-launch-libvirt-place-our-virtio-net-pci-device-in-slot-0x1e.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 43e0fdd6cb94370e74b1214c7550aa98b8307409 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Thu, 23 Dec 2021 11:36:59 +0100 -Subject: [PATCH] launch-libvirt: place our virtio-net-pci device in slot 0x1e - -The trick we use for adding our virtio-net-pci device -in the libvirt backend can conflict with libvirtd's and QEMU's PCI address -assignment. Try to mitigate that by placing our device in slot 0x1e on the -root bus. In practice this could only conflict with a "dmi-to-pci-bridge" -device model, which libvirtd itself places in slot 0x1e. However, given -the XMLs we generate, and modern QEMU versions, libvirtd has no reason to -auto-add "dmi-to-pci-bridge". Refer to -. - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2034160 -Signed-off-by: Laszlo Ersek -Message-Id: <20211223103701.12702-2-lersek@redhat.com> -Reviewed-by: Richard W.M. Jones -Tested-by: Richard W.M. Jones -(cherry picked from commit 5ce5ef6a97a58c5e906083ad4e944545712b3f3f) ---- - lib/guestfs-internal.h | 11 +++++++++++ - lib/launch-libvirt.c | 4 +++- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h -index 4097b33fd..8eb2dd3ad 100644 ---- a/lib/guestfs-internal.h -+++ b/lib/guestfs-internal.h -@@ -172,6 +172,17 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) - #define VIRTIO_DEVICE_NAME(type) type "-pci" - #endif - -+/* Place the virtio-net controller in slot 0x1e on the root bus, on normal -+ * hardware with PCI. Refer to RHBZ#2034160. -+ */ -+#ifdef HAVE_LIBVIRT_BACKEND -+#if defined(__arm__) || defined(__s390x__) -+#define VIRTIO_NET_PCI_ADDR "" -+#else -+#define VIRTIO_NET_PCI_ADDR ",addr=1e.0" -+#endif -+#endif -+ - /* Guestfs handle and associated structures. */ - - /* State. */ -diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c -index 194530c49..9e8336938 100644 ---- a/lib/launch-libvirt.c -+++ b/lib/launch-libvirt.c -@@ -1851,7 +1851,9 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, - } end_element (); - - start_element ("qemu:arg") { -- attribute ("value", VIRTIO_DEVICE_NAME ("virtio-net") ",netdev=usernet"); -+ attribute ("value", (VIRTIO_DEVICE_NAME ("virtio-net") -+ ",netdev=usernet" -+ VIRTIO_NET_PCI_ADDR)); - } end_element (); - } - --- -2.19.1.3.g30247aa5d201 - diff --git a/SOURCES/0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-ma.patch b/SOURCES/0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-ma.patch new file mode 100644 index 0000000..8ec3435 --- /dev/null +++ b/SOURCES/0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-ma.patch @@ -0,0 +1,70 @@ +From 80899629519139a7eb86842942a9471d05eb4112 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Thu, 23 Dec 2021 11:37:00 +0100 +Subject: [PATCH] lib: extract NETWORK_ADDRESS and NETWORK_PREFIX as macros + +The 169.254.0.0/16 network specification (for the appliance) is currently +duplicated between the direct backend and the libvirt backend. In a +subsequent patch, we're going to need the network specification in yet +another spot; extract it now to the NETWORK_ADDRESS and NETWORK_PREFIX +macros (simply as strings). + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2034160 +Signed-off-by: Laszlo Ersek +Message-Id: <20211223103701.12702-3-lersek@redhat.com> +Reviewed-by: Richard W.M. Jones +Tested-by: Richard W.M. Jones +(cherry picked from commit 216de164e091a5c36403f24901698044a43ae0d9) +--- + lib/guestfs-internal.h | 6 ++++++ + lib/launch-direct.c | 2 +- + lib/launch-libvirt.c | 3 ++- + 3 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h +index 8eb2dd3ad..e24d570f5 100644 +--- a/lib/guestfs-internal.h ++++ b/lib/guestfs-internal.h +@@ -183,6 +183,12 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) + #endif + #endif + ++/* Network address and network mask (expressed as address prefix) that the ++ * appliance will see (if networking is enabled). ++ */ ++#define NETWORK_ADDRESS "169.254.0.0" ++#define NETWORK_PREFIX "16" ++ + /* Guestfs handle and associated structures. */ + + /* State. */ +diff --git a/lib/launch-direct.c b/lib/launch-direct.c +index e5b9a5611..4f038f4f0 100644 +--- a/lib/launch-direct.c ++++ b/lib/launch-direct.c +@@ -689,7 +689,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg) + start_list ("-netdev") { + append_list ("user"); + append_list ("id=usernet"); +- append_list ("net=169.254.0.0/16"); ++ append_list ("net=" NETWORK_ADDRESS "/" NETWORK_PREFIX); + } end_list (); + start_list ("-device") { + append_list (VIRTIO_DEVICE_NAME ("virtio-net")); +diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c +index 9e8336938..266d88824 100644 +--- a/lib/launch-libvirt.c ++++ b/lib/launch-libvirt.c +@@ -1843,7 +1843,8 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, + } end_element (); + + start_element ("qemu:arg") { +- attribute ("value", "user,id=usernet,net=169.254.0.0/16"); ++ attribute ("value", ++ "user,id=usernet,net=" NETWORK_ADDRESS "/" NETWORK_PREFIX); + } end_element (); + + start_element ("qemu:arg") { +-- +2.31.1 + diff --git a/SOURCES/0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-macros.patch b/SOURCES/0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-macros.patch deleted file mode 100644 index a6c1dd1..0000000 --- a/SOURCES/0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-macros.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 80899629519139a7eb86842942a9471d05eb4112 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Thu, 23 Dec 2021 11:37:00 +0100 -Subject: [PATCH] lib: extract NETWORK_ADDRESS and NETWORK_PREFIX as macros - -The 169.254.0.0/16 network specification (for the appliance) is currently -duplicated between the direct backend and the libvirt backend. In a -subsequent patch, we're going to need the network specification in yet -another spot; extract it now to the NETWORK_ADDRESS and NETWORK_PREFIX -macros (simply as strings). - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2034160 -Signed-off-by: Laszlo Ersek -Message-Id: <20211223103701.12702-3-lersek@redhat.com> -Reviewed-by: Richard W.M. Jones -Tested-by: Richard W.M. Jones -(cherry picked from commit 216de164e091a5c36403f24901698044a43ae0d9) ---- - lib/guestfs-internal.h | 6 ++++++ - lib/launch-direct.c | 2 +- - lib/launch-libvirt.c | 3 ++- - 3 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h -index 8eb2dd3ad..e24d570f5 100644 ---- a/lib/guestfs-internal.h -+++ b/lib/guestfs-internal.h -@@ -183,6 +183,12 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) - #endif - #endif - -+/* Network address and network mask (expressed as address prefix) that the -+ * appliance will see (if networking is enabled). -+ */ -+#define NETWORK_ADDRESS "169.254.0.0" -+#define NETWORK_PREFIX "16" -+ - /* Guestfs handle and associated structures. */ - - /* State. */ -diff --git a/lib/launch-direct.c b/lib/launch-direct.c -index e5b9a5611..4f038f4f0 100644 ---- a/lib/launch-direct.c -+++ b/lib/launch-direct.c -@@ -689,7 +689,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg) - start_list ("-netdev") { - append_list ("user"); - append_list ("id=usernet"); -- append_list ("net=169.254.0.0/16"); -+ append_list ("net=" NETWORK_ADDRESS "/" NETWORK_PREFIX); - } end_list (); - start_list ("-device") { - append_list (VIRTIO_DEVICE_NAME ("virtio-net")); -diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c -index 9e8336938..266d88824 100644 ---- a/lib/launch-libvirt.c -+++ b/lib/launch-libvirt.c -@@ -1843,7 +1843,8 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, - } end_element (); - - start_element ("qemu:arg") { -- attribute ("value", "user,id=usernet,net=169.254.0.0/16"); -+ attribute ("value", -+ "user,id=usernet,net=" NETWORK_ADDRESS "/" NETWORK_PREFIX); - } end_element (); - - start_element ("qemu:arg") { --- -2.19.1.3.g30247aa5d201 - diff --git a/SOURCES/0006-launch-libvirt-add-virtio-net-via-the-standard-inter.patch b/SOURCES/0006-launch-libvirt-add-virtio-net-via-the-standard-inter.patch new file mode 100644 index 0000000..0c829aa --- /dev/null +++ b/SOURCES/0006-launch-libvirt-add-virtio-net-via-the-standard-inter.patch @@ -0,0 +1,91 @@ +From a18bc12081bcebf2d78883d1c6981c454149bb39 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek +Date: Thu, 23 Dec 2021 11:37:01 +0100 +Subject: [PATCH] launch-libvirt: add virtio-net via the standard + element + +Starting with version 3.8.0, libvirt allows us to specify the network +address and network mask (as prefix) for SLIRP directly via the + element in the domain XML: +. This means +we don't need the hack for virtio-net on such versions. + +Restrict the hack in construct_libvirt_xml_qemu_cmdline() to +libvirt<3.8.0, and generate the proper element in +construct_libvirt_xml_devices() on libvirt>=3.8.0. + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2034160 +Suggested-by: Richard W.M. Jones +Signed-off-by: Laszlo Ersek +Message-Id: <20211223103701.12702-4-lersek@redhat.com> +Reviewed-by: Richard W.M. Jones +Tested-by: Richard W.M. Jones +(cherry picked from commit 5858c2cf6c24b3776e3867eafd9d86a1f4912d9c) +--- + lib/guestfs-internal.h | 3 ++- + lib/launch-libvirt.c | 27 +++++++++++++++++++++++++-- + 2 files changed, 27 insertions(+), 3 deletions(-) + +diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h +index e24d570f5..4a19e5c6b 100644 +--- a/lib/guestfs-internal.h ++++ b/lib/guestfs-internal.h +@@ -173,7 +173,8 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) + #endif + + /* Place the virtio-net controller in slot 0x1e on the root bus, on normal +- * hardware with PCI. Refer to RHBZ#2034160. ++ * hardware with PCI. Necessary only before libvirt 3.8.0. Refer to ++ * RHBZ#2034160. + */ + #ifdef HAVE_LIBVIRT_BACKEND + #if defined(__arm__) || defined(__s390x__) +diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c +index 266d88824..cc714c02e 100644 +--- a/lib/launch-libvirt.c ++++ b/lib/launch-libvirt.c +@@ -1413,6 +1413,28 @@ construct_libvirt_xml_devices (guestfs_h *g, + } end_element (); + } end_element (); + ++ /* Virtio-net NIC with SLIRP (= userspace) back-end, if networking is ++ * enabled. Starting with libvirt 3.8.0, we can specify the network address ++ * and prefix for SLIRP in the domain XML. Therefore, we can add the NIC ++ * via the standard element rather than , and ++ * so libvirt can manage the PCI address of the virtio-net NIC like the PCI ++ * addresses of all other devices. Refer to RHBZ#2034160. ++ */ ++ if (g->enable_network && ++ guestfs_int_version_ge (¶ms->data->libvirt_version, 3, 8, 0)) { ++ start_element ("interface") { ++ attribute ("type", "user"); ++ start_element ("model") { ++ attribute ("type", "virtio"); ++ } end_element (); ++ start_element ("ip") { ++ attribute ("family", "ipv4"); ++ attribute ("address", NETWORK_ADDRESS); ++ attribute ("prefix", NETWORK_PREFIX); ++ } end_element (); ++ } end_element (); ++ } ++ + /* Libvirt adds some devices by default. Indicate to libvirt + * that we don't want them. + */ +@@ -1835,9 +1857,10 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, + } end_element (); + + /* Workaround because libvirt user networking cannot specify "net=" +- * parameter. ++ * parameter. Necessary only before libvirt 3.8.0; refer to RHBZ#2034160. + */ +- if (g->enable_network) { ++ if (g->enable_network && ++ !guestfs_int_version_ge (¶ms->data->libvirt_version, 3, 8, 0)) { + start_element ("qemu:arg") { + attribute ("value", "-netdev"); + } end_element (); +-- +2.31.1 + diff --git a/SOURCES/0006-launch-libvirt-add-virtio-net-via-the-standard-interface-element.patch b/SOURCES/0006-launch-libvirt-add-virtio-net-via-the-standard-interface-element.patch deleted file mode 100644 index cf9f36c..0000000 --- a/SOURCES/0006-launch-libvirt-add-virtio-net-via-the-standard-interface-element.patch +++ /dev/null @@ -1,91 +0,0 @@ -From a18bc12081bcebf2d78883d1c6981c454149bb39 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Thu, 23 Dec 2021 11:37:01 +0100 -Subject: [PATCH] launch-libvirt: add virtio-net via the standard - element - -Starting with version 3.8.0, libvirt allows us to specify the network -address and network mask (as prefix) for SLIRP directly via the - element in the domain XML: -. This means -we don't need the hack for virtio-net on such versions. - -Restrict the hack in construct_libvirt_xml_qemu_cmdline() to -libvirt<3.8.0, and generate the proper element in -construct_libvirt_xml_devices() on libvirt>=3.8.0. - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2034160 -Suggested-by: Richard W.M. Jones -Signed-off-by: Laszlo Ersek -Message-Id: <20211223103701.12702-4-lersek@redhat.com> -Reviewed-by: Richard W.M. Jones -Tested-by: Richard W.M. Jones -(cherry picked from commit 5858c2cf6c24b3776e3867eafd9d86a1f4912d9c) ---- - lib/guestfs-internal.h | 3 ++- - lib/launch-libvirt.c | 27 +++++++++++++++++++++++++-- - 2 files changed, 27 insertions(+), 3 deletions(-) - -diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h -index e24d570f5..4a19e5c6b 100644 ---- a/lib/guestfs-internal.h -+++ b/lib/guestfs-internal.h -@@ -173,7 +173,8 @@ cleanup_mutex_unlock (pthread_mutex_t **ptr) - #endif - - /* Place the virtio-net controller in slot 0x1e on the root bus, on normal -- * hardware with PCI. Refer to RHBZ#2034160. -+ * hardware with PCI. Necessary only before libvirt 3.8.0. Refer to -+ * RHBZ#2034160. - */ - #ifdef HAVE_LIBVIRT_BACKEND - #if defined(__arm__) || defined(__s390x__) -diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c -index 266d88824..cc714c02e 100644 ---- a/lib/launch-libvirt.c -+++ b/lib/launch-libvirt.c -@@ -1413,6 +1413,28 @@ construct_libvirt_xml_devices (guestfs_h *g, - } end_element (); - } end_element (); - -+ /* Virtio-net NIC with SLIRP (= userspace) back-end, if networking is -+ * enabled. Starting with libvirt 3.8.0, we can specify the network address -+ * and prefix for SLIRP in the domain XML. Therefore, we can add the NIC -+ * via the standard element rather than , and -+ * so libvirt can manage the PCI address of the virtio-net NIC like the PCI -+ * addresses of all other devices. Refer to RHBZ#2034160. -+ */ -+ if (g->enable_network && -+ guestfs_int_version_ge (¶ms->data->libvirt_version, 3, 8, 0)) { -+ start_element ("interface") { -+ attribute ("type", "user"); -+ start_element ("model") { -+ attribute ("type", "virtio"); -+ } end_element (); -+ start_element ("ip") { -+ attribute ("family", "ipv4"); -+ attribute ("address", NETWORK_ADDRESS); -+ attribute ("prefix", NETWORK_PREFIX); -+ } end_element (); -+ } end_element (); -+ } -+ - /* Libvirt adds some devices by default. Indicate to libvirt - * that we don't want them. - */ -@@ -1835,9 +1857,10 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, - } end_element (); - - /* Workaround because libvirt user networking cannot specify "net=" -- * parameter. -+ * parameter. Necessary only before libvirt 3.8.0; refer to RHBZ#2034160. - */ -- if (g->enable_network) { -+ if (g->enable_network && -+ !guestfs_int_version_ge (¶ms->data->libvirt_version, 3, 8, 0)) { - start_element ("qemu:arg") { - attribute ("value", "-netdev"); - } end_element (); --- -2.19.1.3.g30247aa5d201 - diff --git a/SOURCES/0007-RHEL-Remove-libguestfs-live-RHBZ-798980.patch b/SOURCES/0007-RHEL-Remove-libguestfs-live-RHBZ-798980.patch index 62c8b50..5b83340 100644 --- a/SOURCES/0007-RHEL-Remove-libguestfs-live-RHBZ-798980.patch +++ b/SOURCES/0007-RHEL-Remove-libguestfs-live-RHBZ-798980.patch @@ -51,5 +51,5 @@ index 690e09b5e..919e2f248 100644 daemon/test-daemon-start.pl \ daemon/test-btrfs.pl -- -2.19.1.3.g30247aa5d201 +2.31.1 diff --git a/SOURCES/0008-RHEL-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch b/SOURCES/0008-RHEL-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch index 0c63a56..4a95522 100644 --- a/SOURCES/0008-RHEL-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch +++ b/SOURCES/0008-RHEL-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch @@ -325,5 +325,5 @@ index 919e2f248..e3613fec4 100644 SLOW_TESTS += bigdirs/test-big-dirs.pl -- -2.19.1.3.g30247aa5d201 +2.31.1 diff --git a/SOURCES/0009-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ-962113.patch b/SOURCES/0009-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ-962113.patch deleted file mode 100644 index 637d80c..0000000 --- a/SOURCES/0009-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ-962113.patch +++ /dev/null @@ -1,609 +0,0 @@ -From cb18280888d6ab9e840b79ec93eeecf11127b6e6 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 29 Jul 2013 14:47:56 +0100 -Subject: [PATCH] RHEL: Disable unsupported remote drive protocols - (RHBZ#962113). - -This disables support for unsupported remote drive protocols: - - * ftp - * ftps - * http - * https - * tftp - * gluster - * iscsi - * sheepdog - * ssh - -Note 'nbd' is not disabled, and of course 'file' works. - -We hope to gradually add some of these back over the lifetime of RHEL. ---- - docs/guestfs-testing.pod | 20 ----- - fish/guestfish.pod | 66 ++-------------- - fish/test-add-uri.sh | 32 -------- - generator/actions_core.ml | 50 +------------ - lib/drives.c | 8 ++ - lib/guestfs.pod | 100 ------------------------- - tests/disks/test-qemu-drive-libvirt.sh | 28 ------- - tests/disks/test-qemu-drive.sh | 60 --------------- - 8 files changed, 16 insertions(+), 348 deletions(-) - -diff --git a/docs/guestfs-testing.pod b/docs/guestfs-testing.pod -index f558964bf..8f264ed17 100644 ---- a/docs/guestfs-testing.pod -+++ b/docs/guestfs-testing.pod -@@ -109,26 +109,6 @@ image. To exit, type C. - If you get an error, try enabling debugging (add C<-v> to the command - line). Also make sure that L succeeds. - --=head2 Try to open a remote guest image with guestfish. -- --You may also have to disable libvirt by setting this: -- -- export LIBGUESTFS_BACKEND=direct -- --If you have a disk image available over HTTP/FTP, try to open it. -- -- guestfish --ro -i --format=raw -a http://www.example.com/disk.img -- --For SSH you will need to make sure that ssh-agent is set up so you --don't need a password to log in to the remote machine. Then a command --similar to this should work: -- -- guestfish --ro -i --format=raw \ -- -a ssh://remote.example.com/path/to/disk.img -- --If you get an error, try enabling debugging (add C<-v> to the command --line). Also make sure that L succeeds. -- - =head2 Run virt-alignment-scan on all your guests. - - Run L on guests or disk images: -diff --git a/fish/guestfish.pod b/fish/guestfish.pod -index 9f086f110..bb4167b06 100644 ---- a/fish/guestfish.pod -+++ b/fish/guestfish.pod -@@ -131,9 +131,9 @@ To list what is available do: - - =head2 Remote drives - --Access a remote disk using ssh: -+Access a remote disk using NBD: - -- guestfish -a ssh://example.com/path/to/disk.img -+ guestfish -a nbd://example.com - - =head2 Remote control - -@@ -1134,12 +1134,12 @@ L>. - On the command line, you can use the I<-a> option to add network - block devices using a URI-style format, for example: - -- guestfish -a ssh://root@example.com/disk.img -+ guestfish -a nbd://example.com - - URIs I be used with the L command. The equivalent - command using the API directly is: - -- > add /disk.img protocol:ssh server:tcp:example.com username:root -+ > add /disk.img protocol:nbd server:tcp:example.com - - The possible I<-a URI> formats are described below. - -@@ -1149,40 +1149,6 @@ The possible I<-a URI> formats are described below. - - Add the local disk image (or device) called F. - --=head2 B<-a ftp://[user@]example.com[:port]/disk.img> -- --=head2 B<-a ftps://[user@]example.com[:port]/disk.img> -- --=head2 B<-a http://[user@]example.com[:port]/disk.img> -- --=head2 B<-a https://[user@]example.com[:port]/disk.img> -- --=head2 B<-a tftp://[user@]example.com[:port]/disk.img> -- --Add a disk located on a remote FTP, HTTP or TFTP server. -- --The equivalent API command would be: -- -- > add /disk.img protocol:(ftp|...) server:tcp:example.com -- --=head2 B<-a gluster://example.com[:port]/volname/image> -- --Add a disk image located on GlusterFS storage. -- --The server is the one running C, and may be C. -- --The equivalent API command would be: -- -- > add volname/image protocol:gluster server:tcp:example.com -- --=head2 B<-a iscsi://example.com[:port]/target-iqn-name[/lun]> -- --Add a disk located on an iSCSI server. -- --The equivalent API command would be: -- -- > add target-iqn-name/lun protocol:iscsi server:tcp:example.com -- - =head2 B<-a nbd://example.com[:port]> - - =head2 B<-a nbd://example.com[:port]/exportname> -@@ -1217,35 +1183,13 @@ The equivalent API command would be: - - > add pool/disk protocol:rbd server:tcp:example.com:port - --=head2 B<-a sheepdog://[example.com[:port]]/volume/image> -- --Add a disk image located on a Sheepdog volume. -- --The server name is optional. Although libguestfs and Sheepdog --supports multiple servers, only at most one server can be specified --when using this URI syntax. -- --The equivalent API command would be: -- -- > add volume protocol:sheepdog [server:tcp:example.com] -- --=head2 B<-a ssh://[user@]example.com[:port]/disk.img> -- --Add a disk image located on a remote server, accessed using the Secure --Shell (ssh) SFTP protocol. SFTP is supported out of the box by all --major SSH servers. -- --The equivalent API command would be: -- -- > add /disk protocol:ssh server:tcp:example.com [username:user] -- - Note that the URIs follow the syntax of - L: in particular, there - are restrictions on the allowed characters for the various components - of the URI. Characters such as C<:>, C<@>, and C B be - percent-encoded: - -- $ guestfish -a ssh://user:pass%40word@example.com/disk.img -+ $ guestfish -a rbd://user:pass%40word@example.com[:port]/pool/disk - - In this case, the password is C. - -diff --git a/fish/test-add-uri.sh b/fish/test-add-uri.sh -index 21d424984..ddabeb639 100755 ---- a/fish/test-add-uri.sh -+++ b/fish/test-add-uri.sh -@@ -40,14 +40,6 @@ function fail () - $VG guestfish -x -a file://$abs_builddir/test-add-uri.img test-add-uri.out 2>&1 - grep -sq 'add_drive ".*/test-add-uri.img"' test-add-uri.out || fail - --# curl --$VG guestfish -x -a ftp://user@example.com/disk.img test-add-uri.out 2>&1 --grep -sq 'add_drive "/disk.img" "protocol:ftp" "server:tcp:example.com" "username:user"' test-add-uri.out || fail -- --# gluster --$VG guestfish -x -a gluster://example.com/disk test-add-uri.out 2>&1 --grep -sq 'add_drive "disk" "protocol:gluster" "server:tcp:example.com"' test-add-uri.out || fail -- - # NBD - $VG guestfish -x -a nbd://example.com test-add-uri.out 2>&1 - grep -sq 'add_drive "" "protocol:nbd" "server:tcp:example.com"' test-add-uri.out || fail -@@ -67,29 +59,5 @@ grep -sq 'add_drive "pool/disk" "protocol:rbd" "server:tcp:example.com:6789"' te - $VG guestfish -x -a rbd:///pool/disk test-add-uri.out 2>&1 - grep -sq 'add_drive "pool/disk" "protocol:rbd"' test-add-uri.out || fail - --# sheepdog --$VG guestfish -x -a sheepdog:///volume/image test-add-uri.out 2>&1 --grep -sq 'add_drive "volume/image" "protocol:sheepdog"' test-add-uri.out || fail -- --$VG guestfish -x -a sheepdog://example.com:3000/volume/image test-add-uri.out 2>&1 --grep -sq 'add_drive "volume/image" "protocol:sheepdog" "server:tcp:example.com:3000"' test-add-uri.out || fail -- --# ssh --$VG guestfish -x -a ssh://example.com/disk.img test-add-uri.out 2>&1 --grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com"' test-add-uri.out || fail -- --$VG guestfish -x -a ssh://user@example.com/disk.img test-add-uri.out 2>&1 --grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com" "username:user"' test-add-uri.out || fail -- --$VG guestfish -x -a ssh://user@example.com:2000/disk.img test-add-uri.out 2>&1 --grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com:2000" "username:user"' test-add-uri.out || fail -- --# iSCSI --$VG guestfish -x -a iscsi://example.com/iqn.2015-12.com.libguestfs:test1/0 test-add-uri.out 2>&1 --grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test1/0" "protocol:iscsi" "server:tcp:example.com"' test-add-uri.out || fail -- --$VG guestfish -x -a iscsi://user:password@example.com/iqn.2015-12.com.libguestfs:test2/0 test-add-uri.out 2>&1 --grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test2/0" "protocol:iscsi" "server:tcp:example.com" "username:user" "secret:password"' test-add-uri.out || fail -- - rm test-add-uri.out - rm test-add-uri.img -diff --git a/generator/actions_core.ml b/generator/actions_core.ml -index 05320fcd3..155d739fe 100644 ---- a/generator/actions_core.ml -+++ b/generator/actions_core.ml -@@ -297,29 +297,6 @@ F is interpreted as a local file or device. - This is the default if the optional protocol parameter - is omitted. - --=item C -- --Connect to a remote FTP, HTTP or TFTP server. --The C parameter must also be supplied - see below. -- --See also: L -- --=item C -- --Connect to the GlusterFS server. --The C parameter must also be supplied - see below. -- --See also: L -- --=item C -- --Connect to the iSCSI server. --The C parameter must also be supplied - see below. --The C parameter may be supplied. See below. --The C parameter may be supplied. See below. -- --See also: L. -- - =item C - - Connect to the Network Block Device server. -@@ -336,22 +313,6 @@ The C parameter may be supplied. See below. - - See also: L. - --=item C -- --Connect to the Sheepdog server. --The C parameter may also be supplied - see below. -- --See also: L. -- --=item C -- --Connect to the Secure Shell (ssh) server. -- --The C parameter must be supplied. --The C parameter may be supplied. See below. -- --See also: L. -- - =back - - =item C -@@ -362,13 +323,8 @@ is a list of server(s). - Protocol Number of servers required - -------- -------------------------- - file List must be empty or param not used at all -- ftp|ftps|http|https|tftp Exactly one -- gluster Exactly one -- iscsi Exactly one - nbd Exactly one - rbd Zero or more -- sheepdog Zero or more -- ssh Exactly one - - Each list element is a string specifying a server. The string must be - in one of the following formats: -@@ -384,10 +340,10 @@ for the protocol is used (see F). - - =item C - --For the C, C, C, C, C, C, C --and C protocols, this specifies the remote username. -+For the C -+protocol, this specifies the remote username. - --If not given, then the local username is used for C, and no authentication -+If not given, then no authentication - is attempted for ceph. But note this sometimes may give unexpected results, for - example if using the libvirt backend and if the libvirt backend is configured to - start the qemu appliance as a special user such as C. If in doubt, -diff --git a/lib/drives.c b/lib/drives.c -index 46af66db4..c81ded5d7 100644 ---- a/lib/drives.c -+++ b/lib/drives.c -@@ -168,6 +168,7 @@ create_drive_non_file (guestfs_h *g, - return drv; - } - -+#if 0 /* DISABLED IN RHEL 8 */ - static struct drive * - create_drive_curl (guestfs_h *g, - const struct drive_create_data *data) -@@ -226,6 +227,7 @@ create_drive_gluster (guestfs_h *g, - - return create_drive_non_file (g, data); - } -+#endif /* DISABLED IN RHEL 8 */ - - static int - nbd_port (void) -@@ -294,6 +296,7 @@ create_drive_rbd (guestfs_h *g, - return create_drive_non_file (g, data); - } - -+#if 0 /* DISABLED IN RHEL 8 */ - static struct drive * - create_drive_sheepdog (guestfs_h *g, - const struct drive_create_data *data) -@@ -394,6 +397,7 @@ create_drive_iscsi (guestfs_h *g, - - return create_drive_non_file (g, data); - } -+#endif /* DISABLED IN RHEL 8 */ - - /** - * Create the special F drive. -@@ -856,6 +860,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, - drv = create_drive_file (g, &data); - } - } -+#if 0 /* DISABLED IN RHEL 8 */ - else if (STREQ (protocol, "ftp")) { - data.protocol = drive_protocol_ftp; - drv = create_drive_curl (g, &data); -@@ -880,6 +885,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, - data.protocol = drive_protocol_iscsi; - drv = create_drive_iscsi (g, &data); - } -+#endif /* DISABLED IN RHEL 8 */ - else if (STREQ (protocol, "nbd")) { - data.protocol = drive_protocol_nbd; - drv = create_drive_nbd (g, &data); -@@ -888,6 +894,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, - data.protocol = drive_protocol_rbd; - drv = create_drive_rbd (g, &data); - } -+#if 0 /* DISABLED IN RHEL 8 */ - else if (STREQ (protocol, "sheepdog")) { - data.protocol = drive_protocol_sheepdog; - drv = create_drive_sheepdog (g, &data); -@@ -900,6 +907,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, - data.protocol = drive_protocol_tftp; - drv = create_drive_curl (g, &data); - } -+#endif /* DISABLED IN RHEL 8 */ - else { - error (g, _("unknown protocol ā€˜%sā€™"), protocol); - drv = NULL; /*FALLTHROUGH*/ -diff --git a/lib/guestfs.pod b/lib/guestfs.pod -index ff58aa0bb..1af00f1bb 100644 ---- a/lib/guestfs.pod -+++ b/lib/guestfs.pod -@@ -715,70 +715,6 @@ servers. The server string is documented in - L. The C and C parameters are - also optional, and if not given, then no authentication will be used. - --=head3 FTP, HTTP AND TFTP -- --Libguestfs can access remote disks over FTP, FTPS, HTTP, HTTPS --or TFTP protocols. -- --To do this, set the optional C and C parameters of --L like this: -- -- char **servers = { "www.example.org", NULL }; -- guestfs_add_drive_opts (g, "/disk.img", -- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "http", -- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, -- -1); -- --The C can be one of C<"ftp">, C<"ftps">, C<"http">, --C<"https"> or C<"tftp">. -- --C (the C parameter) is a list which must have a --single element. The single element is a string defining the web, --FTP or TFTP server. The format of this string is documented in --L. -- --=head3 GLUSTER -- --Libguestfs can access Gluster disks. -- --To do this, set the optional C and C parameters of --L like this: -- -- char **servers = { "gluster.example.org:24007", NULL }; -- guestfs_add_drive_opts (g, "volname/image", -- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "gluster", -- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, -- -1); -- --C (the C parameter) is a list which must have a --single element. The single element is a string defining the Gluster --server. The format of this string is documented in --L. -- --Note that gluster usually requires the client process (ie. libguestfs) --to run as B and will give unfathomable errors if it is not --(eg. "No data available"). -- --=head3 ISCSI -- --Libguestfs can access iSCSI disks remotely. -- --To do this, set the optional C and C parameters like --this: -- -- char **server = { "iscsi.example.org:3000", NULL }; -- guestfs_add_drive_opts (g, "target-iqn-name/lun", -- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "iscsi", -- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, -- -1); -- --The C parameter is a list which must have a single element. --The single element is a string defining the iSCSI server. The format --of this string is documented in L. -- - =head3 NETWORK BLOCK DEVICE - - Libguestfs can access Network Block Device (NBD) disks remotely. -@@ -841,42 +777,6 @@ L - - =back - --=head3 SHEEPDOG -- --Libguestfs can access Sheepdog disks. -- --To do this, set the optional C and C parameters of --L like this: -- -- char **servers = { /* optional servers ... */ NULL }; -- guestfs_add_drive_opts (g, "volume", -- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "sheepdog", -- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, -- -1); -- --The optional list of C may be zero or more server addresses --(C<"hostname:port">). The format of the server strings is documented --in L. -- --=head3 SSH -- --Libguestfs can access disks over a Secure Shell (SSH) connection. -- --To do this, set the C and C and (optionally) --C parameters of L like this: -- -- char **server = { "remote.example.com", NULL }; -- guestfs_add_drive_opts (g, "/path/to/disk.img", -- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "ssh", -- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, -- GUESTFS_ADD_DRIVE_OPTS_USERNAME, "remoteuser", -- -1); -- --The format of the server string is documented in --L. -- - =head2 INSPECTION - - Libguestfs has APIs for inspecting an unknown disk image to find out -diff --git a/tests/disks/test-qemu-drive-libvirt.sh b/tests/disks/test-qemu-drive-libvirt.sh -index 595a95a5e..b49534c94 100755 ---- a/tests/disks/test-qemu-drive-libvirt.sh -+++ b/tests/disks/test-qemu-drive-libvirt.sh -@@ -65,34 +65,6 @@ check_output - grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail ceph2 - rm "$DEBUG_QEMU_FILE" - --# Gluster. -- --$guestfish -d gluster run ||: --check_output --grep -sq -- '-drive file=gluster://1.2.3.4:1234/volname/image,' "$DEBUG_QEMU_FILE" || fail gluster --rm "$DEBUG_QEMU_FILE" -- --# iSCSI. -- --$guestfish -d iscsi run ||: --check_output --grep -sq -- '-drive file=iscsi://1.2.3.4:1234/iqn.2003-01.org.linux-iscsi.fedora' "$DEBUG_QEMU_FILE" || fail iscsi --rm "$DEBUG_QEMU_FILE" -- --# NBD. -- --$guestfish -d nbd run ||: --check_output --grep -sq -- '-drive file=nbd:1.2.3.4:1234,' "$DEBUG_QEMU_FILE" || fail nbd --rm "$DEBUG_QEMU_FILE" -- --# Sheepdog. -- --$guestfish -d sheepdog run ||: --check_output --grep -sq -- '-drive file=sheepdog:volume,' "$DEBUG_QEMU_FILE" || fail sheepdog --rm "$DEBUG_QEMU_FILE" -- - # Local, stored in a pool. - - $guestfish -d pool1 run ||: -diff --git a/tests/disks/test-qemu-drive.sh b/tests/disks/test-qemu-drive.sh -index 12937fb30..b3e4f9903 100755 ---- a/tests/disks/test-qemu-drive.sh -+++ b/tests/disks/test-qemu-drive.sh -@@ -62,45 +62,6 @@ check_output - grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail - rm "$DEBUG_QEMU_FILE" - --# HTTP. -- --guestfish < +Date: Mon, 29 Jul 2013 14:47:56 +0100 +Subject: [PATCH] RHEL: Disable unsupported remote drive protocols + (RHBZ#962113). + +This disables support for unsupported remote drive protocols: + + * ftp + * ftps + * http + * https + * tftp + * gluster + * iscsi + * sheepdog + * ssh + +Note 'nbd' is not disabled, and of course 'file' works. + +We hope to gradually add some of these back over the lifetime of RHEL. +--- + docs/guestfs-testing.pod | 20 ----- + fish/guestfish.pod | 66 ++-------------- + fish/test-add-uri.sh | 32 -------- + generator/actions_core.ml | 50 +------------ + lib/drives.c | 8 ++ + lib/guestfs.pod | 100 ------------------------- + tests/disks/test-qemu-drive-libvirt.sh | 28 ------- + tests/disks/test-qemu-drive.sh | 60 --------------- + 8 files changed, 16 insertions(+), 348 deletions(-) + +diff --git a/docs/guestfs-testing.pod b/docs/guestfs-testing.pod +index f558964bf..8f264ed17 100644 +--- a/docs/guestfs-testing.pod ++++ b/docs/guestfs-testing.pod +@@ -109,26 +109,6 @@ image. To exit, type C. + If you get an error, try enabling debugging (add C<-v> to the command + line). Also make sure that L succeeds. + +-=head2 Try to open a remote guest image with guestfish. +- +-You may also have to disable libvirt by setting this: +- +- export LIBGUESTFS_BACKEND=direct +- +-If you have a disk image available over HTTP/FTP, try to open it. +- +- guestfish --ro -i --format=raw -a http://www.example.com/disk.img +- +-For SSH you will need to make sure that ssh-agent is set up so you +-don't need a password to log in to the remote machine. Then a command +-similar to this should work: +- +- guestfish --ro -i --format=raw \ +- -a ssh://remote.example.com/path/to/disk.img +- +-If you get an error, try enabling debugging (add C<-v> to the command +-line). Also make sure that L succeeds. +- + =head2 Run virt-alignment-scan on all your guests. + + Run L on guests or disk images: +diff --git a/fish/guestfish.pod b/fish/guestfish.pod +index 9f086f110..bb4167b06 100644 +--- a/fish/guestfish.pod ++++ b/fish/guestfish.pod +@@ -131,9 +131,9 @@ To list what is available do: + + =head2 Remote drives + +-Access a remote disk using ssh: ++Access a remote disk using NBD: + +- guestfish -a ssh://example.com/path/to/disk.img ++ guestfish -a nbd://example.com + + =head2 Remote control + +@@ -1134,12 +1134,12 @@ L>. + On the command line, you can use the I<-a> option to add network + block devices using a URI-style format, for example: + +- guestfish -a ssh://root@example.com/disk.img ++ guestfish -a nbd://example.com + + URIs I be used with the L command. The equivalent + command using the API directly is: + +- > add /disk.img protocol:ssh server:tcp:example.com username:root ++ > add /disk.img protocol:nbd server:tcp:example.com + + The possible I<-a URI> formats are described below. + +@@ -1149,40 +1149,6 @@ The possible I<-a URI> formats are described below. + + Add the local disk image (or device) called F. + +-=head2 B<-a ftp://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a ftps://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a http://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a https://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a tftp://[user@]example.com[:port]/disk.img> +- +-Add a disk located on a remote FTP, HTTP or TFTP server. +- +-The equivalent API command would be: +- +- > add /disk.img protocol:(ftp|...) server:tcp:example.com +- +-=head2 B<-a gluster://example.com[:port]/volname/image> +- +-Add a disk image located on GlusterFS storage. +- +-The server is the one running C, and may be C. +- +-The equivalent API command would be: +- +- > add volname/image protocol:gluster server:tcp:example.com +- +-=head2 B<-a iscsi://example.com[:port]/target-iqn-name[/lun]> +- +-Add a disk located on an iSCSI server. +- +-The equivalent API command would be: +- +- > add target-iqn-name/lun protocol:iscsi server:tcp:example.com +- + =head2 B<-a nbd://example.com[:port]> + + =head2 B<-a nbd://example.com[:port]/exportname> +@@ -1217,35 +1183,13 @@ The equivalent API command would be: + + > add pool/disk protocol:rbd server:tcp:example.com:port + +-=head2 B<-a sheepdog://[example.com[:port]]/volume/image> +- +-Add a disk image located on a Sheepdog volume. +- +-The server name is optional. Although libguestfs and Sheepdog +-supports multiple servers, only at most one server can be specified +-when using this URI syntax. +- +-The equivalent API command would be: +- +- > add volume protocol:sheepdog [server:tcp:example.com] +- +-=head2 B<-a ssh://[user@]example.com[:port]/disk.img> +- +-Add a disk image located on a remote server, accessed using the Secure +-Shell (ssh) SFTP protocol. SFTP is supported out of the box by all +-major SSH servers. +- +-The equivalent API command would be: +- +- > add /disk protocol:ssh server:tcp:example.com [username:user] +- + Note that the URIs follow the syntax of + L: in particular, there + are restrictions on the allowed characters for the various components + of the URI. Characters such as C<:>, C<@>, and C B be + percent-encoded: + +- $ guestfish -a ssh://user:pass%40word@example.com/disk.img ++ $ guestfish -a rbd://user:pass%40word@example.com[:port]/pool/disk + + In this case, the password is C. + +diff --git a/fish/test-add-uri.sh b/fish/test-add-uri.sh +index 21d424984..ddabeb639 100755 +--- a/fish/test-add-uri.sh ++++ b/fish/test-add-uri.sh +@@ -40,14 +40,6 @@ function fail () + $VG guestfish -x -a file://$abs_builddir/test-add-uri.img test-add-uri.out 2>&1 + grep -sq 'add_drive ".*/test-add-uri.img"' test-add-uri.out || fail + +-# curl +-$VG guestfish -x -a ftp://user@example.com/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ftp" "server:tcp:example.com" "username:user"' test-add-uri.out || fail +- +-# gluster +-$VG guestfish -x -a gluster://example.com/disk test-add-uri.out 2>&1 +-grep -sq 'add_drive "disk" "protocol:gluster" "server:tcp:example.com"' test-add-uri.out || fail +- + # NBD + $VG guestfish -x -a nbd://example.com test-add-uri.out 2>&1 + grep -sq 'add_drive "" "protocol:nbd" "server:tcp:example.com"' test-add-uri.out || fail +@@ -67,29 +59,5 @@ grep -sq 'add_drive "pool/disk" "protocol:rbd" "server:tcp:example.com:6789"' te + $VG guestfish -x -a rbd:///pool/disk test-add-uri.out 2>&1 + grep -sq 'add_drive "pool/disk" "protocol:rbd"' test-add-uri.out || fail + +-# sheepdog +-$VG guestfish -x -a sheepdog:///volume/image test-add-uri.out 2>&1 +-grep -sq 'add_drive "volume/image" "protocol:sheepdog"' test-add-uri.out || fail +- +-$VG guestfish -x -a sheepdog://example.com:3000/volume/image test-add-uri.out 2>&1 +-grep -sq 'add_drive "volume/image" "protocol:sheepdog" "server:tcp:example.com:3000"' test-add-uri.out || fail +- +-# ssh +-$VG guestfish -x -a ssh://example.com/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com"' test-add-uri.out || fail +- +-$VG guestfish -x -a ssh://user@example.com/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com" "username:user"' test-add-uri.out || fail +- +-$VG guestfish -x -a ssh://user@example.com:2000/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com:2000" "username:user"' test-add-uri.out || fail +- +-# iSCSI +-$VG guestfish -x -a iscsi://example.com/iqn.2015-12.com.libguestfs:test1/0 test-add-uri.out 2>&1 +-grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test1/0" "protocol:iscsi" "server:tcp:example.com"' test-add-uri.out || fail +- +-$VG guestfish -x -a iscsi://user:password@example.com/iqn.2015-12.com.libguestfs:test2/0 test-add-uri.out 2>&1 +-grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test2/0" "protocol:iscsi" "server:tcp:example.com" "username:user" "secret:password"' test-add-uri.out || fail +- + rm test-add-uri.out + rm test-add-uri.img +diff --git a/generator/actions_core.ml b/generator/actions_core.ml +index 05320fcd3..155d739fe 100644 +--- a/generator/actions_core.ml ++++ b/generator/actions_core.ml +@@ -297,29 +297,6 @@ F is interpreted as a local file or device. + This is the default if the optional protocol parameter + is omitted. + +-=item C +- +-Connect to a remote FTP, HTTP or TFTP server. +-The C parameter must also be supplied - see below. +- +-See also: L +- +-=item C +- +-Connect to the GlusterFS server. +-The C parameter must also be supplied - see below. +- +-See also: L +- +-=item C +- +-Connect to the iSCSI server. +-The C parameter must also be supplied - see below. +-The C parameter may be supplied. See below. +-The C parameter may be supplied. See below. +- +-See also: L. +- + =item C + + Connect to the Network Block Device server. +@@ -336,22 +313,6 @@ The C parameter may be supplied. See below. + + See also: L. + +-=item C +- +-Connect to the Sheepdog server. +-The C parameter may also be supplied - see below. +- +-See also: L. +- +-=item C +- +-Connect to the Secure Shell (ssh) server. +- +-The C parameter must be supplied. +-The C parameter may be supplied. See below. +- +-See also: L. +- + =back + + =item C +@@ -362,13 +323,8 @@ is a list of server(s). + Protocol Number of servers required + -------- -------------------------- + file List must be empty or param not used at all +- ftp|ftps|http|https|tftp Exactly one +- gluster Exactly one +- iscsi Exactly one + nbd Exactly one + rbd Zero or more +- sheepdog Zero or more +- ssh Exactly one + + Each list element is a string specifying a server. The string must be + in one of the following formats: +@@ -384,10 +340,10 @@ for the protocol is used (see F). + + =item C + +-For the C, C, C, C, C, C, C +-and C protocols, this specifies the remote username. ++For the C ++protocol, this specifies the remote username. + +-If not given, then the local username is used for C, and no authentication ++If not given, then no authentication + is attempted for ceph. But note this sometimes may give unexpected results, for + example if using the libvirt backend and if the libvirt backend is configured to + start the qemu appliance as a special user such as C. If in doubt, +diff --git a/lib/drives.c b/lib/drives.c +index 46af66db4..c81ded5d7 100644 +--- a/lib/drives.c ++++ b/lib/drives.c +@@ -168,6 +168,7 @@ create_drive_non_file (guestfs_h *g, + return drv; + } + ++#if 0 /* DISABLED IN RHEL 8 */ + static struct drive * + create_drive_curl (guestfs_h *g, + const struct drive_create_data *data) +@@ -226,6 +227,7 @@ create_drive_gluster (guestfs_h *g, + + return create_drive_non_file (g, data); + } ++#endif /* DISABLED IN RHEL 8 */ + + static int + nbd_port (void) +@@ -294,6 +296,7 @@ create_drive_rbd (guestfs_h *g, + return create_drive_non_file (g, data); + } + ++#if 0 /* DISABLED IN RHEL 8 */ + static struct drive * + create_drive_sheepdog (guestfs_h *g, + const struct drive_create_data *data) +@@ -394,6 +397,7 @@ create_drive_iscsi (guestfs_h *g, + + return create_drive_non_file (g, data); + } ++#endif /* DISABLED IN RHEL 8 */ + + /** + * Create the special F drive. +@@ -856,6 +860,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + drv = create_drive_file (g, &data); + } + } ++#if 0 /* DISABLED IN RHEL 8 */ + else if (STREQ (protocol, "ftp")) { + data.protocol = drive_protocol_ftp; + drv = create_drive_curl (g, &data); +@@ -880,6 +885,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + data.protocol = drive_protocol_iscsi; + drv = create_drive_iscsi (g, &data); + } ++#endif /* DISABLED IN RHEL 8 */ + else if (STREQ (protocol, "nbd")) { + data.protocol = drive_protocol_nbd; + drv = create_drive_nbd (g, &data); +@@ -888,6 +894,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + data.protocol = drive_protocol_rbd; + drv = create_drive_rbd (g, &data); + } ++#if 0 /* DISABLED IN RHEL 8 */ + else if (STREQ (protocol, "sheepdog")) { + data.protocol = drive_protocol_sheepdog; + drv = create_drive_sheepdog (g, &data); +@@ -900,6 +907,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + data.protocol = drive_protocol_tftp; + drv = create_drive_curl (g, &data); + } ++#endif /* DISABLED IN RHEL 8 */ + else { + error (g, _("unknown protocol ā€˜%sā€™"), protocol); + drv = NULL; /*FALLTHROUGH*/ +diff --git a/lib/guestfs.pod b/lib/guestfs.pod +index ff58aa0bb..1af00f1bb 100644 +--- a/lib/guestfs.pod ++++ b/lib/guestfs.pod +@@ -715,70 +715,6 @@ servers. The server string is documented in + L. The C and C parameters are + also optional, and if not given, then no authentication will be used. + +-=head3 FTP, HTTP AND TFTP +- +-Libguestfs can access remote disks over FTP, FTPS, HTTP, HTTPS +-or TFTP protocols. +- +-To do this, set the optional C and C parameters of +-L like this: +- +- char **servers = { "www.example.org", NULL }; +- guestfs_add_drive_opts (g, "/disk.img", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "http", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, +- -1); +- +-The C can be one of C<"ftp">, C<"ftps">, C<"http">, +-C<"https"> or C<"tftp">. +- +-C (the C parameter) is a list which must have a +-single element. The single element is a string defining the web, +-FTP or TFTP server. The format of this string is documented in +-L. +- +-=head3 GLUSTER +- +-Libguestfs can access Gluster disks. +- +-To do this, set the optional C and C parameters of +-L like this: +- +- char **servers = { "gluster.example.org:24007", NULL }; +- guestfs_add_drive_opts (g, "volname/image", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "gluster", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, +- -1); +- +-C (the C parameter) is a list which must have a +-single element. The single element is a string defining the Gluster +-server. The format of this string is documented in +-L. +- +-Note that gluster usually requires the client process (ie. libguestfs) +-to run as B and will give unfathomable errors if it is not +-(eg. "No data available"). +- +-=head3 ISCSI +- +-Libguestfs can access iSCSI disks remotely. +- +-To do this, set the optional C and C parameters like +-this: +- +- char **server = { "iscsi.example.org:3000", NULL }; +- guestfs_add_drive_opts (g, "target-iqn-name/lun", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "iscsi", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, +- -1); +- +-The C parameter is a list which must have a single element. +-The single element is a string defining the iSCSI server. The format +-of this string is documented in L. +- + =head3 NETWORK BLOCK DEVICE + + Libguestfs can access Network Block Device (NBD) disks remotely. +@@ -841,42 +777,6 @@ L + + =back + +-=head3 SHEEPDOG +- +-Libguestfs can access Sheepdog disks. +- +-To do this, set the optional C and C parameters of +-L like this: +- +- char **servers = { /* optional servers ... */ NULL }; +- guestfs_add_drive_opts (g, "volume", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "sheepdog", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, +- -1); +- +-The optional list of C may be zero or more server addresses +-(C<"hostname:port">). The format of the server strings is documented +-in L. +- +-=head3 SSH +- +-Libguestfs can access disks over a Secure Shell (SSH) connection. +- +-To do this, set the C and C and (optionally) +-C parameters of L like this: +- +- char **server = { "remote.example.com", NULL }; +- guestfs_add_drive_opts (g, "/path/to/disk.img", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "ssh", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, +- GUESTFS_ADD_DRIVE_OPTS_USERNAME, "remoteuser", +- -1); +- +-The format of the server string is documented in +-L. +- + =head2 INSPECTION + + Libguestfs has APIs for inspecting an unknown disk image to find out +diff --git a/tests/disks/test-qemu-drive-libvirt.sh b/tests/disks/test-qemu-drive-libvirt.sh +index 595a95a5e..b49534c94 100755 +--- a/tests/disks/test-qemu-drive-libvirt.sh ++++ b/tests/disks/test-qemu-drive-libvirt.sh +@@ -65,34 +65,6 @@ check_output + grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail ceph2 + rm "$DEBUG_QEMU_FILE" + +-# Gluster. +- +-$guestfish -d gluster run ||: +-check_output +-grep -sq -- '-drive file=gluster://1.2.3.4:1234/volname/image,' "$DEBUG_QEMU_FILE" || fail gluster +-rm "$DEBUG_QEMU_FILE" +- +-# iSCSI. +- +-$guestfish -d iscsi run ||: +-check_output +-grep -sq -- '-drive file=iscsi://1.2.3.4:1234/iqn.2003-01.org.linux-iscsi.fedora' "$DEBUG_QEMU_FILE" || fail iscsi +-rm "$DEBUG_QEMU_FILE" +- +-# NBD. +- +-$guestfish -d nbd run ||: +-check_output +-grep -sq -- '-drive file=nbd:1.2.3.4:1234,' "$DEBUG_QEMU_FILE" || fail nbd +-rm "$DEBUG_QEMU_FILE" +- +-# Sheepdog. +- +-$guestfish -d sheepdog run ||: +-check_output +-grep -sq -- '-drive file=sheepdog:volume,' "$DEBUG_QEMU_FILE" || fail sheepdog +-rm "$DEBUG_QEMU_FILE" +- + # Local, stored in a pool. + + $guestfish -d pool1 run ||: +diff --git a/tests/disks/test-qemu-drive.sh b/tests/disks/test-qemu-drive.sh +index 12937fb30..b3e4f9903 100755 +--- a/tests/disks/test-qemu-drive.sh ++++ b/tests/disks/test-qemu-drive.sh +@@ -62,45 +62,6 @@ check_output + grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail + rm "$DEBUG_QEMU_FILE" + +-# HTTP. +- +-guestfish < +Date: Tue, 7 Jul 2015 09:28:03 -0400 +Subject: [PATCH] RHEL: Reject use of libguestfs-winsupport features except for + virt-* tools (RHBZ#1240276). + +Fix the tests: it doesn't let us use guestfish for arbitrary Windows +edits. +--- + generator/c.ml | 16 ++++++++++++++++ + test-data/phony-guests/make-windows-img.sh | 1 + + tests/charsets/test-charset-fidelity.c | 2 ++ + 3 files changed, 19 insertions(+) + +diff --git a/generator/c.ml b/generator/c.ml +index ea69abf76..56ee38aa4 100644 +--- a/generator/c.ml ++++ b/generator/c.ml +@@ -1846,6 +1846,22 @@ and generate_client_actions actions () = + check_args_validity c_name style; + trace_call name c_name style; + ++ (* RHEL 8 *) ++ if name = "mount" || name = "mount_ro" || name = "mount_options" || ++ name = "mount_vfs" then ( ++ pr " if (g->program && !STRPREFIX (g->program, \"virt-\")) {\n"; ++ pr " CLEANUP_FREE char *vfs_type = guestfs_vfs_type (g, mountable);\n"; ++ pr " if (vfs_type && STREQ (vfs_type, \"ntfs\")) {\n"; ++ pr " error (g, \"mount: unsupported filesystem type\");\n"; ++ pr " if (trace_flag)\n"; ++ pr " guestfs_int_trace (g, \"%%s = %%s (error)\",\n"; ++ pr " \"%s\", \"-1\");\n" name; ++ pr " return %s;\n" (string_of_errcode errcode); ++ pr " }\n"; ++ pr " }\n"; ++ pr "\n"; ++ ); ++ + (* Calculate the total size of all FileIn arguments to pass + * as a progress bar hint. + *) +diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh +index 30908a918..73cf5144e 100755 +--- a/test-data/phony-guests/make-windows-img.sh ++++ b/test-data/phony-guests/make-windows-img.sh +@@ -37,6 +37,7 @@ fi + + # Create a disk image. + guestfish < -Date: Tue, 7 Jul 2015 09:28:03 -0400 -Subject: [PATCH] RHEL: Reject use of libguestfs-winsupport features except for - virt-* tools (RHBZ#1240276). - -Fix the tests: it doesn't let us use guestfish for arbitrary Windows -edits. ---- - generator/c.ml | 16 ++++++++++++++++ - test-data/phony-guests/make-windows-img.sh | 1 + - tests/charsets/test-charset-fidelity.c | 2 ++ - 3 files changed, 19 insertions(+) - -diff --git a/generator/c.ml b/generator/c.ml -index ea69abf76..56ee38aa4 100644 ---- a/generator/c.ml -+++ b/generator/c.ml -@@ -1846,6 +1846,22 @@ and generate_client_actions actions () = - check_args_validity c_name style; - trace_call name c_name style; - -+ (* RHEL 8 *) -+ if name = "mount" || name = "mount_ro" || name = "mount_options" || -+ name = "mount_vfs" then ( -+ pr " if (g->program && !STRPREFIX (g->program, \"virt-\")) {\n"; -+ pr " CLEANUP_FREE char *vfs_type = guestfs_vfs_type (g, mountable);\n"; -+ pr " if (vfs_type && STREQ (vfs_type, \"ntfs\")) {\n"; -+ pr " error (g, \"mount: unsupported filesystem type\");\n"; -+ pr " if (trace_flag)\n"; -+ pr " guestfs_int_trace (g, \"%%s = %%s (error)\",\n"; -+ pr " \"%s\", \"-1\");\n" name; -+ pr " return %s;\n" (string_of_errcode errcode); -+ pr " }\n"; -+ pr " }\n"; -+ pr "\n"; -+ ); -+ - (* Calculate the total size of all FileIn arguments to pass - * as a progress bar hint. - *) -diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh -index 30908a918..73cf5144e 100755 ---- a/test-data/phony-guests/make-windows-img.sh -+++ b/test-data/phony-guests/make-windows-img.sh -@@ -37,6 +37,7 @@ fi - - # Create a disk image. - guestfish < -Date: Tue, 29 Jun 2021 15:29:11 +0100 -Subject: [PATCH] RHEL: Create /etc/crypto-policies/back-ends/opensslcnf.config - -https://bugzilla.redhat.com/show_bug.cgi?id=1977214#c13 ---- - appliance/init | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/appliance/init b/appliance/init -index 7076821d2..fe6497b4d 100755 ---- a/appliance/init -+++ b/appliance/init -@@ -76,6 +76,14 @@ if ! test -e /etc/mtab; then - ln -s /proc/mounts /etc/mtab - fi - -+# openssl 3 requires /etc/crypto-policies/back-ends/opensslcnf.config -+# to exist, but it is created in a %post script in crypto-policies -+# https://bugzilla.redhat.com/show_bug.cgi?id=1977214#c13 -+if ! test -r /etc/crypto-policies/back-ends/opensslcnf.config && -+ test -f /usr/share/crypto-policies/DEFAULT/opensslcnf.txt; then -+ ln -s /usr/share/crypto-policies/DEFAULT/opensslcnf.txt /etc/crypto-policies/back-ends/opensslcnf.config -+fi -+ - # Static nodes must happen before udev is started. - - # Set up kmod static-nodes (RHBZ#1011907). --- -2.19.1.3.g30247aa5d201 - diff --git a/SOURCES/0012-RHEL-Create-etc-crypto-policies-back-ends-opensslcnf.patch b/SOURCES/0012-RHEL-Create-etc-crypto-policies-back-ends-opensslcnf.patch new file mode 100644 index 0000000..ea0509a --- /dev/null +++ b/SOURCES/0012-RHEL-Create-etc-crypto-policies-back-ends-opensslcnf.patch @@ -0,0 +1,32 @@ +From c50bb81e40b36a74c15f9bc515a2f04a1eb00673 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 29 Jun 2021 15:29:11 +0100 +Subject: [PATCH] RHEL: Create /etc/crypto-policies/back-ends/opensslcnf.config + +https://bugzilla.redhat.com/show_bug.cgi?id=1977214#c13 +--- + appliance/init | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/appliance/init b/appliance/init +index 7076821d2..fe6497b4d 100755 +--- a/appliance/init ++++ b/appliance/init +@@ -76,6 +76,14 @@ if ! test -e /etc/mtab; then + ln -s /proc/mounts /etc/mtab + fi + ++# openssl 3 requires /etc/crypto-policies/back-ends/opensslcnf.config ++# to exist, but it is created in a %post script in crypto-policies ++# https://bugzilla.redhat.com/show_bug.cgi?id=1977214#c13 ++if ! test -r /etc/crypto-policies/back-ends/opensslcnf.config && ++ test -f /usr/share/crypto-policies/DEFAULT/opensslcnf.txt; then ++ ln -s /usr/share/crypto-policies/DEFAULT/opensslcnf.txt /etc/crypto-policies/back-ends/opensslcnf.config ++fi ++ + # Static nodes must happen before udev is started. + + # Set up kmod static-nodes (RHBZ#1011907). +-- +2.31.1 + diff --git a/SOURCES/0013-daemon-rpm-c.c-Disable-signature-checking-in-librpm.patch b/SOURCES/0013-daemon-rpm-c.c-Disable-signature-checking-in-librpm.patch new file mode 100644 index 0000000..f134d1a --- /dev/null +++ b/SOURCES/0013-daemon-rpm-c.c-Disable-signature-checking-in-librpm.patch @@ -0,0 +1,47 @@ +From 46c0694ce0b9a2fe357403c998d30ec807e07015 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 15 Mar 2022 10:22:49 +0000 +Subject: [PATCH] daemon/rpm-c.c: Disable signature checking in librpm + +Older distros (eg CentOS 6) used SHA-1 RPM package signatures which +some newer distros (eg RHEL 9.0) prevent us from verifying. + +This resulted in packages with SHA-1 signatures being skipped by +librpm (there is a warning in debug output, but if you're not looking +at that then the package is silently ignored). In some cases +essential packages like the kernel were skipped, which would be +visible as a failure of virt-v2v. In other cases (eg virt-inspector) +you'd just see fewer installed packages in the list. + +Since verifying package signatures is not essential for inspection, +disable this feature in librpm. + +Reported-by: Xiaodai Wang +Thanks: Panu Matilainen +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2064182 +Signed-off-by: Richard W.M. Jones +(cherry picked from commit aa6f8038f826bfb37ddbbb575e6962e1e181c5e8) +--- + daemon/rpm-c.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/daemon/rpm-c.c b/daemon/rpm-c.c +index be0e81e22..020fc588e 100644 +--- a/daemon/rpm-c.c ++++ b/daemon/rpm-c.c +@@ -90,7 +90,12 @@ value + guestfs_int_daemon_rpm_start_iterator (value unitv) + { + CAMLparam1 (unitv); ++ + ts = rpmtsCreate (); ++ ++ /* Disable signature checking (RHBZ#2064182). */ ++ rpmtsSetVSFlags (ts, rpmtsVSFlags (ts) | RPMVSF_MASK_NOSIGNATURES); ++ + iter = rpmtsInitIterator (ts, RPMDBI_PACKAGES, NULL, 0); + CAMLreturn (Val_unit); + } +-- +2.31.1 + diff --git a/SPECS/libguestfs.spec b/SPECS/libguestfs.spec index 0798b31..c9e31fb 100644 --- a/SPECS/libguestfs.spec +++ b/SPECS/libguestfs.spec @@ -57,7 +57,7 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 Version: 1.46.1 -Release: 2%{?dist} +Release: 3%{?dist} License: LGPLv2+ # Build only for architectures that have a kernel @@ -95,18 +95,19 @@ Source8: copy-patches.sh # https://github.com/libguestfs/libguestfs/commits/rhel-9.0.0 # Patches. -Patch0001: 0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-Linux-releases.patch +Patch0001: 0001-daemon-inspect_fs_unix-recognize-modern-Pardus-GNU-L.patch Patch0002: 0002-daemon-inspection-Add-support-for-Kylin-RHBZ-1995391.patch -Patch0003: 0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-like.patch -Patch0004: 0004-launch-libvirt-place-our-virtio-net-pci-device-in-slot-0x1e.patch -Patch0005: 0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-macros.patch -Patch0006: 0006-launch-libvirt-add-virtio-net-via-the-standard-interface-element.patch +Patch0003: 0003-Add-detection-support-for-Rocky-Linux-CentOS-RHEL-li.patch +Patch0004: 0004-launch-libvirt-place-our-virtio-net-pci-device-in-sl.patch +Patch0005: 0005-lib-extract-NETWORK_ADDRESS-and-NETWORK_PREFIX-as-ma.patch +Patch0006: 0006-launch-libvirt-add-virtio-net-via-the-standard-inter.patch Patch0007: 0007-RHEL-Remove-libguestfs-live-RHBZ-798980.patch Patch0008: 0008-RHEL-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch -Patch0009: 0009-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ-962113.patch +Patch0009: 0009-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch Patch0010: 0010-RHEL-Remove-User-Mode-Linux-RHBZ-1144197.patch -Patch0011: 0011-RHEL-Reject-use-of-libguestfs-winsupport-features-except-for-virt-tools-RHBZ-1240276.patch -Patch0012: 0012-RHEL-Create-etc-crypto-policies-back-ends-opensslcnf.config.patch +Patch0011: 0011-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch +Patch0012: 0012-RHEL-Create-etc-crypto-policies-back-ends-opensslcnf.patch +Patch0013: 0013-daemon-rpm-c.c-Disable-signature-checking-in-librpm.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool, gettext-devel @@ -1146,6 +1147,10 @@ rm ocaml/html/.gitignore %changelog +* Thu Mar 17 2022 Richard W.M. Jones - 1:1.46.1-3 +- Disable signature checking in librpm + resolves: rhbz#2064182 + * Thu Dec 23 2021 Laszlo Ersek - 1:1.46.1-2 - Add detection support for Rocky Linux resolves: rhbz#2030709