From 6097cf95c4345c9af8e42444758d10a0a1a1d9da Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 13 Apr 2026 15:48:21 +0100 Subject: [PATCH] Rebase to virt-v2v 2.11.5 Synchronize spec file with Fedora resolves: RHEL-153361 Fixes incorrect driver location for Windows 2008 SP2 resolves: RHEL-159888 Create sentinel file after all firstboot scripts have finished running resolves: RHEL-152939 Obey cgroups when computing SMP resolves: RHEL-152766 Fix encrypted Ubuntu guest fail to boot after conversion resolves: RHEL-137121 --- ...Enhance-inspection-with-filesystems-.patch | 37 + ...d-Document-Windows-vTPM-and-BitLocke.patch | 46 - ...RHEL-Fixes-for-libguestfs-winsupport.patch | 6 +- ...-debugging-around-remote_file_exists.patch | 24 - ...correct-qemu-binary-for-o-qemu-mode-.patch | 2 +- ...ut-ssh.ml-Fix-Ssh.remote_file_exists.patch | 47 - ...-the-qemu-boot-oo-qemu-boot-option-R.patch | 12 +- 0004-Update-common-submodule.patch | 120 - ...-supported-sound-cards-to-match-RHEL.patch | 4 +- ...pection-with-filesystems-information.patch | 177 - ...sk-force-VNC-as-display-RHBZ-1372671.patch | 2 +- ...e-virt-v2v-inspector-output-with-fil.patch | 131 - ...-for-supported-v2v-hypervisors-guest.patch | 2 +- ...-convert_linux.ml-Add-debian-12-UEFI.patch | 57 - ...=> 0008-RHEL-tests-Remove-btrfs-test.patch | 4 +- ...-double-uri_encode-dcPath-and-dsName.patch | 45 - ...-about-virt-v2v-in-place-not-being-s.patch | 8 +- ...it-file-cache-none-with-reduce-memor.patch | 112 - ...ut.ml-Remove-reduce-memory-pressure-.patch | 2 +- ...linux.ml-Condense-device-regex-handl.patch | 36 - ...place-etc-crypttab-dev-sdX-with-UUID.patch | 75 - ..._GNU_GETTEXT-with-simpler-LIBINTL-ch.patch | 4099 ----------------- ...eferences-to-virtio-win-osinfo-usage.patch | 44 - ...update-virtio-win-exploded-tree-docs.patch | 30 - ...in-pass-explicit-guestfs-search-path.patch | 54 - 0016-output-introduce-disk_name-helper.patch | 85 - 0017-output-Replace-in-VM-names-with-_.patch | 71 - ...e-guest-names-in-metadata-file-paths.patch | 55 - ...put-sanitize-VM-names-in-libvirt-XML.patch | 27 - 0029-Update-common-submodule.patch | 62 - ...rt-linux-properly-match-etc-crypttab.patch | 30 - ...tion-to-disable-fstrim-during-conver.patch | 302 -- sources | 4 +- virt-v2v.spec | 64 +- 34 files changed, 89 insertions(+), 5787 deletions(-) create mode 100644 0001-RHEL-Update-v2v-Enhance-inspection-with-filesystems-.patch delete mode 100644 0001-docs-virt-v2v.pod-Document-Windows-vTPM-and-BitLocke.patch rename 0020-RHEL-Fixes-for-libguestfs-winsupport.patch => 0002-RHEL-Fixes-for-libguestfs-winsupport.patch (97%) delete mode 100644 0002-input-ssh.ml-Add-debugging-around-remote_file_exists.patch rename 0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch => 0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch (94%) delete mode 100644 0003-input-ssh.ml-Fix-Ssh.remote_file_exists.patch rename 0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch => 0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch (90%) delete mode 100644 0004-Update-common-submodule.patch rename 0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch => 0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch (88%) delete mode 100644 0005-v2v-Enhance-inspection-with-filesystems-information.patch rename 0024-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch => 0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch (93%) delete mode 100644 0006-inspector-Enhance-virt-v2v-inspector-output-with-fil.patch rename 0025-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch => 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch (97%) delete mode 100644 0007-convert-convert_linux.ml-Add-debian-12-UEFI.patch rename 0026-RHEL-tests-Remove-btrfs-test.patch => 0008-RHEL-tests-Remove-btrfs-test.patch (86%) delete mode 100644 0008-input-vcenter-double-uri_encode-dcPath-and-dsName.patch rename 0027-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch => 0009-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch (88%) delete mode 100644 0009-lib-Replace-nbdkit-file-cache-none-with-reduce-memor.patch rename 0028-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch => 0010-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch (96%) delete mode 100644 0010-convert-convert_linux.ml-Condense-device-regex-handl.patch delete mode 100644 0011-convert-linux-replace-etc-crypttab-dev-sdX-with-UUID.patch delete mode 100644 0012-build-replace-AM_GNU_GETTEXT-with-simpler-LIBINTL-ch.patch delete mode 100644 0013-docs-Drop-references-to-virtio-win-osinfo-usage.patch delete mode 100644 0014-docs-update-virtio-win-exploded-tree-docs.patch delete mode 100644 0015-ocaml-link.sh.in-pass-explicit-guestfs-search-path.patch delete mode 100644 0016-output-introduce-disk_name-helper.patch delete mode 100644 0017-output-Replace-in-VM-names-with-_.patch delete mode 100644 0018-output-sanitize-guest-names-in-metadata-file-paths.patch delete mode 100644 0019-output-sanitize-VM-names-in-libvirt-XML.patch delete mode 100644 0029-Update-common-submodule.patch delete mode 100644 0030-convert-linux-properly-match-etc-crypttab.patch delete mode 100644 0031-Add-no-fstrim-option-to-disable-fstrim-during-conver.patch diff --git a/0001-RHEL-Update-v2v-Enhance-inspection-with-filesystems-.patch b/0001-RHEL-Update-v2v-Enhance-inspection-with-filesystems-.patch new file mode 100644 index 0000000..240622a --- /dev/null +++ b/0001-RHEL-Update-v2v-Enhance-inspection-with-filesystems-.patch @@ -0,0 +1,37 @@ +From ad61f699fe3e730d47069007a2e6e3a838cf3f31 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 26 Jan 2026 16:26:27 +0000 +Subject: [PATCH] RHEL: Update v2v: Enhance inspection with filesystems + information + +For RHEL 10: + +This is an update for commit 6bd4ab3a5da9bf3bb3b22585d2226d6e338f23ba. + +Adjust minimum version of libguestfs since we will backport the new +API to libguestfs 1.58.1-2.el10. + +Original commit message: + + Add the list of filesystems found by inspection to the internal + inspection struct. This is not actually used by virt-v2v itself (it + is used by virt-v2v-inspector), so this change should have no effect. +--- + m4/guestfs-libraries.m4 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/m4/guestfs-libraries.m4 b/m4/guestfs-libraries.m4 +index a7a279e8..11c9974c 100644 +--- a/m4/guestfs-libraries.m4 ++++ b/m4/guestfs-libraries.m4 +@@ -19,8 +19,8 @@ dnl Any C libraries required by virt-v2v. + + dnl Of course we need libguestfs. + dnl +-dnl We need libguestfs 1.59.2 for guestfs_xfs_info2. +-PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.59.2]) ++dnl We need libguestfs >= 1.58.1-2.el10 for guestfs_xfs_info2. ++PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.58.1]) + printf "libguestfs version is "; $PKG_CONFIG --modversion libguestfs + + dnl And libnbd. diff --git a/0001-docs-virt-v2v.pod-Document-Windows-vTPM-and-BitLocke.patch b/0001-docs-virt-v2v.pod-Document-Windows-vTPM-and-BitLocke.patch deleted file mode 100644 index 8b799ad..0000000 --- a/0001-docs-virt-v2v.pod-Document-Windows-vTPM-and-BitLocke.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 859c43b1eb81cfdcb5f481b571e2c387860f8a27 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 13 Jan 2026 12:33:11 +0000 -Subject: [PATCH] docs/virt-v2v.pod: Document Windows vTPM and BitLocker - Recovery - -Reported-by: Ming Xie -Fixes: https://issues.redhat.com/browse/RHEL-103915 ---- - docs/virt-v2v.pod | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index a3cacb82..f751f4e7 100644 ---- a/docs/virt-v2v.pod -+++ b/docs/virt-v2v.pod -@@ -1600,6 +1600,29 @@ L - and - L - -+=head2 Windows: "Enter the recovery key for this drive" -+ -+After conversion, you may be presented with a Windows boot screen showing: -+ -+ BitLocker recovery -+ Enter the recovery key for this drive -+ [|___________________] -+ -+(See screenshot on L) -+ -+This happens when the Windows BitLocker disk encryption key is -+contained in the VMware Virtual Trusted Platform Module (vTPM). The -+vTPM is working I. It is preventing the -+encrypted disk from being moved from one machine to another by storing -+the encryption key in trusted storage on the source. By design, we -+cannot access or move this key to the target. -+ -+To start the VM you will need to enter the BitLocker recovery key. -+This will also register the disk against the new vTPM on the target, -+so it should only be necessary to do this once. -+ -+For help finding the recovery key: L -+ - =head2 Networks and bridges - - Guests are usually connected to one or more networks, and when diff --git a/0020-RHEL-Fixes-for-libguestfs-winsupport.patch b/0002-RHEL-Fixes-for-libguestfs-winsupport.patch similarity index 97% rename from 0020-RHEL-Fixes-for-libguestfs-winsupport.patch rename to 0002-RHEL-Fixes-for-libguestfs-winsupport.patch index 71e3e07..e62645f 100644 --- a/0020-RHEL-Fixes-for-libguestfs-winsupport.patch +++ b/0002-RHEL-Fixes-for-libguestfs-winsupport.patch @@ -1,4 +1,4 @@ -From 5bb9b83c288b0c4bdac081e123f2fa54c840a6ca Mon Sep 17 00:00:00 2001 +From efba4ab8bad8980598834d43e13e3af44afc5dce Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 30 Aug 2015 03:21:57 -0400 Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport. @@ -19,10 +19,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1 7 files changed, 40 insertions(+), 5 deletions(-) diff --git a/convert/convert.ml b/convert/convert.ml -index e3fd41b8..eb51e9b9 100644 +index f077e1f6..2150abb7 100644 --- a/convert/convert.ml +++ b/convert/convert.ml -@@ -55,6 +55,7 @@ let rec convert input_disks options source = +@@ -56,6 +56,7 @@ let rec convert input_disks options source = message (f_"Opening the source"); let g = open_guestfs ~identifier:"v2v" () in diff --git a/0002-input-ssh.ml-Add-debugging-around-remote_file_exists.patch b/0002-input-ssh.ml-Add-debugging-around-remote_file_exists.patch deleted file mode 100644 index b8d0c5d..0000000 --- a/0002-input-ssh.ml-Add-debugging-around-remote_file_exists.patch +++ /dev/null @@ -1,24 +0,0 @@ -From b6d5f9dc47fa57836215a698a1ed9df20f90dabc Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 13 Jan 2026 14:11:49 +0000 -Subject: [PATCH] input/ssh.ml: Add debugging around remote_file_exists - function - -It's hard to tell when this function was called and if it returned -success or failure, so add some debugging. ---- - input/ssh.ml | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/input/ssh.ml b/input/ssh.ml -index 9b93df7b..51276156 100644 ---- a/input/ssh.ml -+++ b/input/ssh.ml -@@ -60,4 +60,6 @@ let remote_file_exists ~server ?port ?user ?password path = - * prove the remote file exists. - *) - let cmd = [ Config.nbdinfo; "--can"; "connect"; uri ] in -- run_command cmd = 0 -+ let r = run_command cmd = 0 in -+ debug "ssh: remote_file_exists: testing %s -> %b" path r; -+ r diff --git a/0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch b/0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch similarity index 94% rename from 0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch rename to 0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch index 8bf91a6..50a5389 100644 --- a/0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch +++ b/0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch @@ -1,4 +1,4 @@ -From 38516e4b16f2148db9d16c352e4bec6c9235e52a Mon Sep 17 00:00:00 2001 +From 84f190814e0277647adc42946bfeb0ed3881c16e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 28 Sep 2014 19:14:43 +0100 Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode diff --git a/0003-input-ssh.ml-Fix-Ssh.remote_file_exists.patch b/0003-input-ssh.ml-Fix-Ssh.remote_file_exists.patch deleted file mode 100644 index eeeacac..0000000 --- a/0003-input-ssh.ml-Fix-Ssh.remote_file_exists.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 986edd3e609cc33e0004e41447b74b93572bd61e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 13 Jan 2026 14:20:18 +0000 -Subject: [PATCH] input/ssh.ml: Fix Ssh.remote_file_exists - -This function was inadvertently broken in commit 970d7123c2 -("input/ssh: Use nbdinfo --can connect (instead of --size)"), since -'nbdinfo --can connect' just says that nbdinfo managed to connect at -all, even if the connection failed to fully negotiate the NBD -handshake. (This is possibly a bug in nbdinfo.) - -Using --size means we must have negotiated the NBD handshake. - -However this leaves the problem that commit 970d7123c2 was originally -intended to fix, that 'nbdinfo --size' prints the size on stdout. To -fix this, replace use of run_command with shell_command so we can -redirect stdout. - -Reported-by: Ming Xie -Thanks: Ming Xie -Updates: commit fb72e059863a60503b6011b8590c25c3a010a58f -Reverts: commit 970d7123c2025bc148870f4bc6fa75fa9e95905f ---- - input/ssh.ml | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/input/ssh.ml b/input/ssh.ml -index 51276156..2393965c 100644 ---- a/input/ssh.ml -+++ b/input/ssh.ml -@@ -56,10 +56,13 @@ let download_file ~server ?port ?user ?password path output = - let remote_file_exists ~server ?port ?user ?password path = - let uri = start_nbdkit ~server ?port ?user ?password path in - -- (* Testing that we can connect to the nbdkit server is enough to -+ (* Testing that the nbdkit server can get the size is enough to - * prove the remote file exists. - *) -- let cmd = [ Config.nbdinfo; "--can"; "connect"; uri ] in -- let r = run_command cmd = 0 in -+ let cmd = sprintf "%s --size %s >/dev/null %s" -+ Config.nbdinfo (quote uri) -+ (* If verbose then allow stderr to go to the log, else hide it *) -+ (if verbose () then "" else "2>&1") in -+ let r = shell_command cmd = 0 in - debug "ssh: remote_file_exists: testing %s -> %b" path r; - r diff --git a/0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch b/0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch similarity index 90% rename from 0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch rename to 0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch index 39c50b3..852dd8a 100644 --- a/0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch +++ b/0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch @@ -1,4 +1,4 @@ -From b00922090f704e97388dbc96f6f710fd5e22af92 Mon Sep 17 00:00:00 2001 +From cc667070c19d8ff55ebdeaa50263911d220d9c11 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 30 Sep 2014 10:50:27 +0100 Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option @@ -43,10 +43,10 @@ index 49f00754..bdf12c5d 100644 =item B<-o null> diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index 04764832..eb550da0 100644 +index 432611e5..fa0c674a 100644 --- a/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod -@@ -169,11 +169,6 @@ Since F contains the path(s) to the guest disk +@@ -170,11 +170,6 @@ Since F contains the path(s) to the guest disk image(s) you do not need to specify the name of the disk image on the command line. @@ -58,7 +58,7 @@ index 04764832..eb550da0 100644 =head1 OPTIONS =over 4 -@@ -578,9 +573,6 @@ This is similar to I<-o local>, except that a shell script is written +@@ -587,9 +582,6 @@ This is similar to I<-o local>, except that a shell script is written which you can use to boot the guest in qemu. The converted disks and shell script are written to the directory specified by I<-os>. @@ -66,9 +66,9 @@ index 04764832..eb550da0 100644 -option which boots the guest under qemu immediately. - ifelse(ENABLE_OVIRT, yes, ` - =item B<-o> B -@@ -653,11 +645,6 @@ For I<-o openstack> (L) only, set a guest ID + =item B<-o> B +@@ -663,11 +655,6 @@ For I<-o openstack> (L) only, set a guest ID which is saved on each Cinder volume in the C volume property. diff --git a/0004-Update-common-submodule.patch b/0004-Update-common-submodule.patch deleted file mode 100644 index a7256fd..0000000 --- a/0004-Update-common-submodule.patch +++ /dev/null @@ -1,120 +0,0 @@ -From aec2e0a6e6861a2b895d27001e009650f6227dfe Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 26 Jan 2026 16:20:50 +0000 -Subject: [PATCH] Update common submodule - -This pulls in the following commits: - - Richard W.M. Jones (4): - mlcustomize/firstboot.ml: Print %USERNAME% and %USERDOMAIN% - mlcustomize/firstboot.ml: Fix %-encoding in previous commit - mlpcre: Add optional PCRE_ANCHORED flag when compiling expressions - mlstdutils: Export List.assoc_opt - -(cherry picked from commit e3e5cbcf45a0c9a523b8389b2fd8835d5ab684ee) ---- - common | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Submodule common b54ba203..1005f4a6: -diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml -index 360c33d6..f29884c8 100644 ---- a/common/mlcustomize/firstboot.ml -+++ b/common/mlcustomize/firstboot.ml -@@ -295,6 +295,7 @@ exit /b - - :main - echo starting firstboot service -+echo effective user: %%USERNAME%% domain: %%USERDOMAIN%% - - if not exist "%%scripts_done%%" ( - mkdir "%%scripts_done%%" -diff --git a/common/mlpcre/PCRE.ml b/common/mlpcre/PCRE.ml -index 077290ef..33074af1 100644 ---- a/common/mlpcre/PCRE.ml -+++ b/common/mlpcre/PCRE.ml -@@ -22,7 +22,7 @@ exception Error of string * int - - type regexp - --external compile : ?caseless:bool -> ?dotall:bool -> ?extended:bool -> ?multiline:bool -> string -> regexp = "guestfs_int_pcre_compile" -+external compile : ?anchored:bool -> ?caseless:bool -> ?dotall:bool -> ?extended:bool -> ?multiline:bool -> string -> regexp = "guestfs_int_pcre_compile_byte" "guestfs_int_pcre_compile" - external matches : ?offset:int -> regexp -> string -> bool = "guestfs_int_pcre_matches" - external sub : int -> string = "guestfs_int_pcre_sub" - external subi : int -> int * int = "guestfs_int_pcre_subi" -diff --git a/common/mlpcre/PCRE.mli b/common/mlpcre/PCRE.mli -index b69a56ba..0fdc2bd5 100644 ---- a/common/mlpcre/PCRE.mli -+++ b/common/mlpcre/PCRE.mli -@@ -52,11 +52,12 @@ exception Error of string * int - type regexp - (** The type of a compiled regular expression. *) - --val compile : ?caseless:bool -> ?dotall:bool -> ?extended:bool -> ?multiline:bool -> string -> regexp -+val compile : ?anchored:bool -> ?caseless:bool -> ?dotall:bool -> -+ ?extended:bool -> ?multiline:bool -> string -> regexp - (** Compile a regular expression. This can raise {!Error}. - -- The flags [?caseless], [?dotall], [?extended], [?multiline] -- correspond to the [pcre_compile] flags [PCRE_CASELESS] etc. -+ The flags [?anchored], [?caseless], [?dotall], [?extended], [?multiline] -+ correspond to the [pcre_compile] flags [PCRE_ANCHORED] etc. - See pcre2api(3) for details of what they do. - All flags default to false. *) - -diff --git a/common/mlpcre/pcre-c.c b/common/mlpcre/pcre-c.c -index 3959fd56..11be1577 100644 ---- a/common/mlpcre/pcre-c.c -+++ b/common/mlpcre/pcre-c.c -@@ -154,11 +154,12 @@ Optint_val (value intv, int defval) - } - - value --guestfs_int_pcre_compile (value caselessv, value dotallv, -- value extendedv, value multilinev, -+guestfs_int_pcre_compile (value anchoredv, value caselessv, -+ value dotallv, value extendedv, -+ value multilinev, - value pattv) - { -- CAMLparam4 (caselessv, dotallv, extendedv, multilinev); -+ CAMLparam5 (anchoredv, caselessv, dotallv, extendedv, multilinev); - CAMLxparam1 (pattv); - const char *patt; - int options = 0; -@@ -167,6 +168,8 @@ guestfs_int_pcre_compile (value caselessv, value dotallv, - PCRE2_SIZE errnum; - - /* Flag parameters are all ‘bool option’, defaulting to false. */ -+ if (is_Some_true (anchoredv)) -+ options |= PCRE2_ANCHORED; - if (is_Some_true (caselessv)) - options |= PCRE2_CASELESS; - if (is_Some_true (dotallv)) -@@ -186,6 +189,14 @@ guestfs_int_pcre_compile (value caselessv, value dotallv, - CAMLreturn (Val_regexp (re)); - } - -+value -+guestfs_int_pcre_compile_byte (value *argv, int argn) -+{ -+ assert (argn == 6); -+ return guestfs_int_pcre_compile (argv[0], argv[1], argv[2], -+ argv[3], argv[4], argv[5]); -+} -+ - value - guestfs_int_pcre_matches (value offsetv, value rev, value strv) - { -diff --git a/common/mlstdutils/std_utils.mli b/common/mlstdutils/std_utils.mli -index 6c1911da..77cf107e 100644 ---- a/common/mlstdutils/std_utils.mli -+++ b/common/mlstdutils/std_utils.mli -@@ -51,6 +51,7 @@ module List : sig - val find_all : ('a -> bool) -> 'a list -> 'a list - val partition : ('a -> bool) -> 'a list -> 'a list * 'a list - val assoc : 'a -> ('a * 'b) list -> 'b -+ val assoc_opt : 'a -> ('a * 'b) list -> 'b option - val assq : 'a -> ('a * 'b) list -> 'b - val mem_assoc : 'a -> ('a * 'b) list -> bool - val mem_assq : 'a -> ('a * 'b) list -> bool diff --git a/0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch b/0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch similarity index 88% rename from 0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch rename to 0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch index ea99cce..165636b 100644 --- a/0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch +++ b/0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch @@ -1,4 +1,4 @@ -From f19e71394757c9f44ed3367addbe694140f34fea Mon Sep 17 00:00:00 2001 +From 6b45fe15284f0660554c1d1f38b69453e08e2c4d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 24 Apr 2015 09:45:41 -0400 Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu @@ -9,7 +9,7 @@ Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/utils.ml b/lib/utils.ml -index 15af5b1a..f5afa58f 100644 +index 7eb4ec38..8a06bbd4 100644 --- a/lib/utils.ml +++ b/lib/utils.ml @@ -83,13 +83,14 @@ let kvm_arch = function diff --git a/0005-v2v-Enhance-inspection-with-filesystems-information.patch b/0005-v2v-Enhance-inspection-with-filesystems-information.patch deleted file mode 100644 index 381c28e..0000000 --- a/0005-v2v-Enhance-inspection-with-filesystems-information.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 3e60eef83ed072b605a3c34f3bf3acbc89a876bb Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 26 Jan 2026 16:26:27 +0000 -Subject: [PATCH] v2v: Enhance inspection with filesystems information - -Add the list of filesystems found by inspection to the internal -inspection struct. This is not actually used by virt-v2v itself (it -is used by virt-v2v-inspector), so this change should have no effect. - -(cherry picked from commit 6bd4ab3a5da9bf3bb3b22585d2226d6e338f23ba) - -For RHEL 10: Adjust minimum version of libguestfs since we will -backport the new API to libguestfs 1.58.1-2.el10. ---- - convert/mount_filesystems.ml | 49 ++++++++++++++++++++++++++++++++++++ - lib/types.ml | 9 +++++++ - lib/types.mli | 9 +++++++ - m4/guestfs-libraries.m4 | 5 ++-- - v2v/v2v_unit_tests.ml | 1 + - 5 files changed, 70 insertions(+), 3 deletions(-) - -diff --git a/convert/mount_filesystems.ml b/convert/mount_filesystems.ml -index e7974359..aa117e51 100644 ---- a/convert/mount_filesystems.ml -+++ b/convert/mount_filesystems.ml -@@ -30,6 +30,42 @@ let rec mount_filesystems g root = - reject_if_not_installed_image g root; - reject_if_unknown_fields g root; - -+ (* Get the list of filesystems. This is not actually used by -+ * virt-v2v (only used by virt-v2v-inspector) so try hard not -+ * to fail here. -+ *) -+ let fses = g#inspect_get_filesystems root in -+ let fses = Array.to_list fses in -+ let fses = List.sort compare fses in -+ let fses = -+ List.map ( -+ fun dev -> -+ let dev = g#canonical_device_name dev -+ and fs_type = ref None -+ and fs_version = ref None -+ and fs_label = ref None -+ and fs_uuid = ref None in -+ -+ (try -+ let v = g#vfs_type dev in -+ if v <> "" then ( -+ fs_type := Some v; -+ fs_version := get_filesystem_version g dev v; -+ ) -+ with G.Error msg -> debug "vfs_type: %s: %s (ignored)" dev msg); -+ (try -+ let v = g#vfs_label dev in -+ if v <> "" then fs_label := Some v -+ with G.Error msg -> debug "vfs_label: %s: %s (ignored)" dev msg); -+ (try -+ let v = g#vfs_uuid dev in -+ if v <> "" then fs_uuid := Some v -+ with G.Error msg -> debug "vfs_uuid: %s: %s (ignored)" dev msg); -+ -+ { fs_dev = dev; fs_type = !fs_type; fs_version = !fs_version; -+ fs_label = !fs_label; fs_uuid = !fs_uuid } -+ ) fses in -+ - (* Mount up the filesystems. *) - let mps = g#inspect_get_mountpoints root in - let cmp (a,_) (b,_) = compare (String.length a) (String.length b) in -@@ -121,6 +157,7 @@ let rec mount_filesystems g root = - i_product_name = g#inspect_get_product_name root; - i_product_variant = g#inspect_get_product_variant root; - i_mountpoints = mps; -+ i_filesystems = fses; - i_apps = apps; - i_apps_map = apps_map; - i_windows_systemroot = systemroot; -@@ -164,6 +201,18 @@ and error_if_unknown fieldname value = - Inspection field ‘%s’ was ‘unknown’.") - fieldname - -+(* See equivalent function in guestfs-tools.git:inspector/inspector.c *) -+and get_filesystem_version g dev = function -+ | "xfs" -> -+ let hash = g#xfs_info2 dev in -+ (match List.assoc_opt "meta-data.crc" hash with -+ | None -> None -+ | Some "0" -> (* XFS version *) Some "4" -+ | Some "1" -> (* XFS version *) Some "5" -+ | Some _ -> None -+ ) -+ | _ -> None -+ - (* Wrapper around g#inspect_list_applications2 which, for RPM - * guests, on failure tries to rebuild the RPM database before - * repeating the operation. -diff --git a/lib/types.ml b/lib/types.ml -index 9ba580e4..d727af89 100644 ---- a/lib/types.ml -+++ b/lib/types.ml -@@ -300,6 +300,7 @@ type inspect = { - i_product_name : string; - i_product_variant : string; - i_mountpoints : (string * string) list; -+ i_filesystems : filesystem list; - i_apps : Guestfs.application2 list; - i_apps_map : Guestfs.application2 list StringMap.t; - i_windows_systemroot : string; -@@ -310,6 +311,14 @@ type inspect = { - i_drive_mappings : (string * string) list; - } - -+and filesystem = { -+ fs_dev : string; -+ fs_type : string option; -+ fs_version : string option; -+ fs_label : string option; -+ fs_uuid : string option; -+} -+ - let string_of_inspect inspect = - sprintf "\ - i_root = %s -diff --git a/lib/types.mli b/lib/types.mli -index 4c705a73..64b6336f 100644 ---- a/lib/types.mli -+++ b/lib/types.mli -@@ -207,6 +207,7 @@ type inspect = { - i_product_name : string; - i_product_variant : string; - i_mountpoints : (string * string) list; -+ i_filesystems : filesystem list; - i_apps : Guestfs.application2 list; (** List of packages installed. *) - i_apps_map : Guestfs.application2 list StringMap.t; - (** This is a map from the app name to the application object. -@@ -220,6 +221,14 @@ type inspect = { - i_drive_mappings : (string * string) list; - } - -+and filesystem = { -+ fs_dev : string; -+ fs_type : string option; -+ fs_version : string option; -+ fs_label : string option; -+ fs_uuid : string option; -+} -+ - val string_of_inspect : inspect -> string - - (** {2 Disk stats} *) -diff --git a/m4/guestfs-libraries.m4 b/m4/guestfs-libraries.m4 -index db11cff6..c4237438 100644 ---- a/m4/guestfs-libraries.m4 -+++ b/m4/guestfs-libraries.m4 -@@ -19,9 +19,8 @@ dnl Any C libraries required by virt-v2v. - - dnl Of course we need libguestfs. - dnl --dnl We need libguestfs 1.57.3 for guestfs_ntfs_chmod. --dnl We need libguestfs 1.57.6 for guestfs_inspect_get_windows_group_policy. --PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.57.6]) -+dnl We need libguestfs >= 1.58.1-2.el10 for guestfs_xfs_info2. -+PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.58.1]) - printf "libguestfs version is "; $PKG_CONFIG --modversion libguestfs - - dnl And libnbd. -diff --git a/v2v/v2v_unit_tests.ml b/v2v/v2v_unit_tests.ml -index 892bf190..efbadc80 100644 ---- a/v2v/v2v_unit_tests.ml -+++ b/v2v/v2v_unit_tests.ml -@@ -38,6 +38,7 @@ let inspect_defaults = { - i_major_version = 0; i_minor_version = 0; - i_root = ""; i_package_format = ""; i_package_management = ""; - i_product_name = ""; i_product_variant = ""; i_mountpoints = []; -+ i_filesystems = []; - i_apps = []; i_apps_map = StringMap.empty; - i_windows_systemroot = ""; - i_windows_software_hive = ""; i_windows_system_hive = ""; diff --git a/0024-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch b/0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch similarity index 93% rename from 0024-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch rename to 0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch index f73d045..9619ca5 100644 --- a/0024-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch +++ b/0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch @@ -1,4 +1,4 @@ -From 2e69a53b203968d77eb0a0447bdb347bd34481c6 Mon Sep 17 00:00:00 2001 +From 3f52a3f1d7874759f27f914e8ce2dae10ce44dff Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 2 Mar 2017 14:21:37 +0100 Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671) diff --git a/0006-inspector-Enhance-virt-v2v-inspector-output-with-fil.patch b/0006-inspector-Enhance-virt-v2v-inspector-output-with-fil.patch deleted file mode 100644 index ba043ff..0000000 --- a/0006-inspector-Enhance-virt-v2v-inspector-output-with-fil.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 3eef674a08ca904baff2e4d6a0f871e303d08e6e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 26 Jan 2026 16:27:42 +0000 -Subject: [PATCH] inspector: Enhance virt-v2v-inspector output with filesystems - information - -RHEL 7.0, 7.1 and (possibly*) 7.2 used XFS version 4. New versions of -RHEL use XFS v5. - -Support even for opening version 4 filesystems was removed in RHEL 10 -(and will be removed altogether from the Linux kernel in 2030). This -prevents virt-v2v conversions. - -Therefore it's a good idea to be able to tell the XFS filesystem -version and print that in virt-inspector output, so that management -tools can warn about it. - -Since we didn't have the virt-inspector section at all -before, we have to add that whole section, sticking as close as -possible to the virt-inspector output. - -Example output for a RHEL 7.0 guest: - - - - - virt-v2v-inspector - ... - - linux - ... - - / - /boot - - - - ext4 - 15e8838c-136e-4a1f-ac01-97b4fa6b0fe4 - - - swap - 8e966377-86f1-45a1-bdff-28724530818d - - - xfs - 67ae8aeb-a9f4-4639-a201-c02b7dbb5d98 - - - - - -Example output for a RHEL 7.3 guest: - - - - - virt-v2v-inspector - ... - - linux - ... - - / - /boot - - - - ext4 - e0467228-8727-482d-bd7a-6741885fe7ed - - - swap - 9c2e6658-c600-4fbd-8731-864ff987553c - - - xfs - 9692610c-0025-4a8c-b806-8a78de2ec2eb - - - - - -To work this requires libguestfs >= 1.59.2 (with guestfs_xfs_info2). - -The version field may be missing, for non-XFS filesystems, but also if -we cannot tell the XFS version for some reason. - -* = The virt-builder rhel-7.2 image definitely uses XFS v4, but it may -have been built from an early (pre-)release of 7.2. Later RHEL 7.2 -seems to use XFS v5. - -Fixes: https://issues.redhat.com/browse/RHEL-144075 -(cherry picked from commit d6b2e643b174fff7d3442865da047bf3d3f9aac9) ---- - inspector/create_inspector_xml.ml | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/inspector/create_inspector_xml.ml b/inspector/create_inspector_xml.ml -index fb434227..a531cecc 100644 ---- a/inspector/create_inspector_xml.ml -+++ b/inspector/create_inspector_xml.ml -@@ -126,6 +126,28 @@ let rec create_inspector_xml input_disks inspect target_meta = - ) inspect.i_mountpoints; - List.push_back os (e "mountpoints" [] !mps); - -+ let fses = ref [] in -+ List.iter ( -+ fun { fs_dev; fs_type; fs_version; fs_label; fs_uuid } -> -+ let fs = ref [] in -+ (match fs_type, fs_version with -+ | None, _ -> () -+ | Some typ, None -> List.push_back fs (e "type" [] [PCData typ]) -+ | Some typ, Some ver -> -+ List.push_back fs (e "type" [ "version", ver] [PCData typ]) -+ ); -+ (match fs_label with -+ | None -> () -+ | Some label -> List.push_back fs (e "label" [] [PCData label]) -+ ); -+ (match fs_uuid with -+ | None -> () -+ | Some uuid -> List.push_back fs (e "uuid" [] [PCData uuid]) -+ ); -+ List.push_back fses (e "filesystem" [ "dev", fs_dev] !fs) -+ ) inspect.i_filesystems; -+ List.push_back os (e "filesystems" [] !fses); -+ - List.push_back body (e "operatingsystem" [] !os); - - (* Construct the final document. *) diff --git a/0025-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch b/0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch similarity index 97% rename from 0025-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch rename to 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch index d17aa31..936c3c7 100644 --- a/0025-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch +++ b/0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch @@ -1,4 +1,4 @@ -From 19cd953d2b43f1d385845ed86c1802d4343093e7 Mon Sep 17 00:00:00 2001 +From 76e5a264a578f40917e4afb96069de97e8141c23 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Tue, 26 Mar 2019 09:42:25 +0100 Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests diff --git a/0007-convert-convert_linux.ml-Add-debian-12-UEFI.patch b/0007-convert-convert_linux.ml-Add-debian-12-UEFI.patch deleted file mode 100644 index 0807950..0000000 --- a/0007-convert-convert_linux.ml-Add-debian-12-UEFI.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 3ef1078cd3cf5a56dc8023ed113838533d9cea09 Mon Sep 17 00:00:00 2001 -From: Martin Necas -Date: Tue, 27 Jan 2026 21:56:41 +0900 -Subject: [PATCH] convert/convert_linux.ml: Add debian 12 UEFI - -When migrating Debian 12 VM with UEFI the VM fails to boot as we don't -preserve the UEFI configuration. Debian has similar mechanism as ubuntu -so we can reuse it. - -Fixes: https://issues.redhat.com/browse/RHEL-144467 - -Signed-off-by: Martin Necas -(cherry picked from commit 161679267f2100e3604dca3f5bfa0827e9a5de30) ---- - convert/convert_linux.ml | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml -index 6c021efb..ce02b04a 100644 ---- a/convert/convert_linux.ml -+++ b/convert/convert_linux.ml -@@ -1324,13 +1324,15 @@ fi - g inspect.i_root "fix uefi boot" fix_script) - else - cant_fix_uefi () -- | "ubuntu", 14 -> -+ | ("ubuntu", 14) | ("debian", 12)-> - (* to make a bootable uefi ubuntu 14 we need to - * copy shim.efi to UEFI fallback path - * and rename it to BOOT.efi, also we copy - * grub.efi and grub.cfg to UEFI fallback path without renaming *) - let arch_suffix = String.lowercase_ascii suffix in - -+ let distro = inspect.i_distro in -+ - let shim = - String.concat "" [grub_path; "/shim"; arch_suffix; ".efi"] in - let uefi_grub_name = -@@ -1346,14 +1348,14 @@ fi - * if not, then just don't clean up and leave the temp loader - * at UEFI fallback path for simplicity - *) -- if String.find shim "/boot/efi/EFI/ubuntu/shim" >= 0 then -+ if String.find shim (sprintf "/boot/efi/EFI/%s/shim" distro) >= 0 then - let fix_script = - sprintf - "#!/bin/bash\n\ -- sudo efibootmgr -c -L ubuntu \ -- -l \\\\EFI\\\\ubuntu\\\\shim%s.efi\n\ -+ sudo efibootmgr -c -L %s \ -+ -l \\\\EFI\\\\%s\\\\shim%s.efi\n\ - rm -rf %s" -- arch_suffix uefi_fallback_path in -+ distro distro arch_suffix uefi_fallback_path in - Firstboot.add_firstboot_script - g inspect.i_root "fix uefi boot" fix_script - else diff --git a/0026-RHEL-tests-Remove-btrfs-test.patch b/0008-RHEL-tests-Remove-btrfs-test.patch similarity index 86% rename from 0026-RHEL-tests-Remove-btrfs-test.patch rename to 0008-RHEL-tests-Remove-btrfs-test.patch index e034c38..a507e01 100644 --- a/0026-RHEL-tests-Remove-btrfs-test.patch +++ b/0008-RHEL-tests-Remove-btrfs-test.patch @@ -1,4 +1,4 @@ -From 57a29e5f33a5035917ef0bfffaa61326148c7afa Mon Sep 17 00:00:00 2001 +From 679424f25440deafed4be23c4bd6e4752e897cf0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 5 Jul 2022 11:58:09 +0100 Subject: [PATCH] RHEL: tests: Remove btrfs test @@ -9,7 +9,7 @@ RHEL does not have btrfs so this test always fails. 1 file changed, 1 deletion(-) diff --git a/tests/Makefile.am b/tests/Makefile.am -index 54cfd124..8e142b09 100644 +index 19bdbe51..be6e1cd5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -64,7 +64,6 @@ TESTS = \ diff --git a/0008-input-vcenter-double-uri_encode-dcPath-and-dsName.patch b/0008-input-vcenter-double-uri_encode-dcPath-and-dsName.patch deleted file mode 100644 index 514b233..0000000 --- a/0008-input-vcenter-double-uri_encode-dcPath-and-dsName.patch +++ /dev/null @@ -1,45 +0,0 @@ -From c532b2c1d14b22b540cced337ad26473aa5b6648 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Tue, 27 Jan 2026 09:14:29 -0500 -Subject: [PATCH] input: vcenter: double uri_encode `dcPath` and `dsName` - -Special characters like `+` in vmware datastore names aren't accessible -by expected URLs: - -https://knowledge.broadcom.com/external/article/386368/vcenter-inventory-object-name-with-speci.html - -Turns out they need to passed through URI encoding twice. -Libvirt fixed this here: - -https://gitlab.com/libvirt/libvirt/-/commit/6c9d2591c668732eb05cf17d27c9102ef3d40b39 - -But we need a similar fix for non-vddk vCenter conversions - -Fixes: https://issues.redhat.com/browse/RHEL-133729 - -Signed-off-by: Cole Robinson -(cherry picked from commit f13e85f9ce3bb51f65c0afbaae009b5a3e6af9c7) ---- - input/vCenter.ml | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/input/vCenter.ml b/input/vCenter.ml -index f9b6ab07..fef113cd 100644 ---- a/input/vCenter.ml -+++ b/input/vCenter.ml -@@ -137,9 +137,14 @@ and get_https_url dcPath uri server path = - (* XXX Need to handle templates. The file is called "-delta.vmdk" in - * place of "-flat.vmdk". - *) -+ (* dcPath and dsName need to be double quoted: -+ * https://gitlab.com/libvirt/libvirt/-/commit/6c9d2591c6 -+ *) - sprintf "https://%s%s/folder/%s-flat.vmdk?dcPath=%s&dsName=%s" - server port -- (uri_quote path) (uri_quote dcPath) (uri_quote datastore) -+ (uri_quote path) -+ (uri_quote (uri_quote dcPath)) -+ (uri_quote (uri_quote datastore)) - ) - - (* Fetch the status from a URL. *) diff --git a/0027-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch b/0009-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch similarity index 88% rename from 0027-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch rename to 0009-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch index b3d3a31..7c65367 100644 --- a/0027-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch +++ b/0009-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch @@ -1,4 +1,4 @@ -From 61eac56a5cb787d591b9338324513b94f0f51b74 Mon Sep 17 00:00:00 2001 +From 2683e8b2544180fec8ce0ebde667132031647704 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 9 Jul 2024 11:30:09 +0100 Subject: [PATCH] RHEL: Add warning about virt-v2v-in-place not being supported @@ -10,10 +10,10 @@ Fixes: https://issues.redhat.com/browse/RHEL-40903 2 files changed, 7 insertions(+) diff --git a/in-place/in_place.ml b/in-place/in_place.ml -index 7e490867..6c2790af 100644 +index e84266ab..a96d55d9 100644 --- a/in-place/in_place.ml +++ b/in-place/in_place.ml -@@ -229,6 +229,9 @@ read the man page virt-v2v-in-place(1). +@@ -232,6 +232,9 @@ read the man page virt-v2v-in-place(1). let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in Getopt.parse opthandle.getopt; @@ -24,7 +24,7 @@ index 7e490867..6c2790af 100644 debug "info: %s: %s %s (%s)" prog Config.package_name Config.package_version_full diff --git a/in-place/virt-v2v-in-place.pod b/in-place/virt-v2v-in-place.pod -index 69d2092e..7c0a4d90 100644 +index 540635d2..24e32afb 100644 --- a/in-place/virt-v2v-in-place.pod +++ b/in-place/virt-v2v-in-place.pod @@ -16,6 +16,10 @@ virt-v2v-in-place - Convert a guest to use KVM in-place diff --git a/0009-lib-Replace-nbdkit-file-cache-none-with-reduce-memor.patch b/0009-lib-Replace-nbdkit-file-cache-none-with-reduce-memor.patch deleted file mode 100644 index 827f267..0000000 --- a/0009-lib-Replace-nbdkit-file-cache-none-with-reduce-memor.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 3b6f7752ab8c8879426518c7ab290db79e4f6571 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 27 Jan 2026 08:56:11 +0000 -Subject: [PATCH] lib: Replace nbdkit file cache=none with - reduce-memory-pressure=on - -nbdkit 1.46 replaced the cache=none option with the -same option renamed as 'reduce-memory-pressure', taking a boolean -value, see: - -https://gitlab.com/nbdkit/nbdkit/-/commit/98a5ddc835ba520c949b31328aef7b7987462faa - -The old option caused customer confusion. cache=none still works, but -to reduce confusion we should also prefer reduce-memory-pressure=on -when that option is available. - -(cherry picked from commit 7aab8a85f2f1a6d01d5e62dabe1839483abd0401) ---- - input/input_disk.ml | 2 +- - input/input_libvirt.ml | 2 +- - lib/nbdkit.ml | 9 +++++++++ - lib/nbdkit.mli | 8 ++++++++ - output/output.ml | 4 ++-- - 5 files changed, 21 insertions(+), 4 deletions(-) - -diff --git a/input/input_disk.ml b/input/input_disk.ml -index 8a71a3d9..a5291031 100644 ---- a/input/input_disk.ml -+++ b/input/input_disk.ml -@@ -110,7 +110,7 @@ module Disk = struct - if options.read_only then - Nbdkit.add_filter cmd "cow"; - Nbdkit.add_arg cmd "file" disk; -- Nbdkit.add_arg cmd "cache" "none"; -+ Nbdkit.reduce_memory_pressure cmd; - let _, pid = Nbdkit.run_unix socket cmd in - - (* --exit-with-parent should ensure nbdkit is cleaned -diff --git a/input/input_libvirt.ml b/input/input_libvirt.ml -index f566ff5c..4c1a6eef 100644 ---- a/input/input_libvirt.ml -+++ b/input/input_libvirt.ml -@@ -129,7 +129,7 @@ and setup_servers options dir disks = - if options.read_only then - Nbdkit.add_filter cmd "cow"; - Nbdkit.add_arg cmd "file" filename; -- Nbdkit.add_arg cmd "cache" "none"; -+ Nbdkit.reduce_memory_pressure cmd; - let _, pid = Nbdkit.run_unix socket cmd in - - (* --exit-with-parent should ensure nbdkit is cleaned -diff --git a/lib/nbdkit.ml b/lib/nbdkit.ml -index 9e42b607..e975bddf 100644 ---- a/lib/nbdkit.ml -+++ b/lib/nbdkit.ml -@@ -134,6 +134,15 @@ let add_env cmd name value = cmd.env <- (name, value) :: cmd.env - let add_filter_if_available cmd filter = - if probe_filter filter then add_filter cmd filter - -+let reduce_memory_pressure cmd = -+ assert (cmd.plugin = "file"); -+ if probe_plugin_parameter cmd.plugin "reduce-memory-pressure=" then -+ add_arg cmd "reduce-memory-pressure" "on" -+ else if probe_plugin_parameter cmd.plugin "cache=" then -+ add_arg cmd "cache" "none" -+ else -+ assert false -+ - let run_unix socket cmd = - (* Create a temporary directory where we place the PID file. *) - let piddir = Mkdtemp.temp_dir "v2vnbdkit." in -diff --git a/lib/nbdkit.mli b/lib/nbdkit.mli -index ea40b612..eaf65f05 100644 ---- a/lib/nbdkit.mli -+++ b/lib/nbdkit.mli -@@ -109,6 +109,14 @@ val add_args : cmd -> (string * string) list -> unit - - The arguments are added left to right. *) - -+val reduce_memory_pressure : cmd -> unit -+(** This is short-hand for detecting if the file plugin supports the -+ [reduce-memory-pressure=on] option, and adding it to the nbdkit -+ command line. Otherwise it adds the old, confusing [cache=none] -+ option instead. -+ -+ Only use this with the file plugin. *) -+ - val add_env : cmd -> string -> string -> unit - (** Add name=value environment variable. *) - -diff --git a/output/output.ml b/output/output.ml -index 3067b920..7e096278 100644 ---- a/output/output.ml -+++ b/output/output.ml -@@ -102,7 +102,7 @@ let output_to_local_file ?name - | "raw" -> - let cmd = Nbdkit.create ?name "file" in - Nbdkit.add_arg cmd "file" filename; -- Nbdkit.add_arg cmd "cache" "none"; -+ Nbdkit.reduce_memory_pressure cmd; - if verbose () then Nbdkit.add_filter_if_available cmd "count"; - let _, pid = Nbdkit.run_unix socket cmd in - pid -@@ -205,7 +205,7 @@ let create_local_output_disks dir - (* Create the single nbdkit-file-plugin instance. *) - let cmd = Nbdkit.create ~name:"out" "file" in - Nbdkit.add_arg cmd "dir" output_storage; -- Nbdkit.add_arg cmd "cache" "none"; -+ Nbdkit.reduce_memory_pressure cmd; - if verbose () then Nbdkit.add_filter_if_available cmd "count"; - let _, pid = Nbdkit.run_unix socket cmd in - On_exit.kill pid; diff --git a/0028-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch b/0010-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch similarity index 96% rename from 0028-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch rename to 0010-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch index 1eda78d..a8b3cd4 100644 --- a/0028-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch +++ b/0010-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch @@ -1,4 +1,4 @@ -From 9e9546aa983337e197407ce25ef3d3cd0a3cf173 Mon Sep 17 00:00:00 2001 +From 5009d5dec647b1081645c543b513020fdb225f19 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 12 Dec 2025 16:18:15 +0000 Subject: [PATCH] RHEL: output/output.ml: Remove reduce-memory-pressure=on diff --git a/0010-convert-convert_linux.ml-Condense-device-regex-handl.patch b/0010-convert-convert_linux.ml-Condense-device-regex-handl.patch deleted file mode 100644 index f95f5be..0000000 --- a/0010-convert-convert_linux.ml-Condense-device-regex-handl.patch +++ /dev/null @@ -1,36 +0,0 @@ -From e7922450fa61f3280fbd9c429379e95bbde47787 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Fri, 6 Feb 2026 15:17:05 -0500 -Subject: [PATCH] convert/convert_linux.ml: Condense device regex handling - -Signed-off-by: Cole Robinson -(cherry picked from commit cf8b872c3eb7009cb399bdd395f9894ac288b9db) ---- - convert/convert_linux.ml | 14 +++----------- - 1 file changed, 3 insertions(+), 11 deletions(-) - -diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml -index ce02b04a..d93036f9 100644 ---- a/convert/convert_linux.ml -+++ b/convert/convert_linux.ml -@@ -1194,17 +1194,9 @@ fi - device - in - -- if PCRE.matches rex_device_cciss value then ( -- let device = PCRE.sub 1 -- and part = try PCRE.sub 2 with Not_found -> "" in -- "/dev/" ^ replace device ^ part -- ) -- else if PCRE.matches rex_device_nvme value then ( -- let device = PCRE.sub 1 -- and part = try PCRE.sub 2 with Not_found -> "" in -- "/dev/" ^ replace device ^ part -- ) -- else if PCRE.matches rex_device value then ( -+ if PCRE.matches rex_device_cciss value || -+ PCRE.matches rex_device_nvme value || -+ PCRE.matches rex_device value then ( - let device = PCRE.sub 1 - and part = try PCRE.sub 2 with Not_found -> "" in - "/dev/" ^ replace device ^ part diff --git a/0011-convert-linux-replace-etc-crypttab-dev-sdX-with-UUID.patch b/0011-convert-linux-replace-etc-crypttab-dev-sdX-with-UUID.patch deleted file mode 100644 index 43ecbb3..0000000 --- a/0011-convert-linux-replace-etc-crypttab-dev-sdX-with-UUID.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 29dc8ba93237d7d70f5c39c28d74ec9bae0f9c00 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Sun, 26 Oct 2025 12:53:58 -0400 -Subject: [PATCH] convert: linux: replace /etc/crypttab /dev/sdX with UUID= - -sles12sp5 installer luks setup will put a /dev/sdX style path -in /etc/crypttab. Example: - - $ cat /etc/crypttab - cr_sda2 /dev/sda2 none none - -For v2v conversion, switching that path to eg. /dev/vda2 is not enough: -initrd rebuild does not work correctly with systemd-cryptsetup, -because that new path doesn't exist at v2v conversion time, and -the converted guest doesn't boot correctly. - -What we really want is to replace the unstable path with -UUID=, to make this unambiguous. Do that for /dev/sdX -paths, where the appliance disk ordering should match, so a -vfs_uuid call gives us the UUID we want. - -Fixes: https://issues.redhat.com/browse/RHEL-93583 - -Signed-off-by: Cole Robinson -(cherry picked from commit 25b36dd60ada5a924b0d40a13d92c5e693cbe1a8) ---- - convert/convert_linux.ml | 28 +++++++++++++++++++++++++++- - 1 file changed, 27 insertions(+), 1 deletion(-) - -diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml -index d93036f9..4462e6cf 100644 ---- a/convert/convert_linux.ml -+++ b/convert/convert_linux.ml -@@ -1165,6 +1165,7 @@ fi - let paths = [ - (* /etc/fstab *) - "/files/etc/fstab/*/spec"; -+ "/files/etc/crypttab/*/device"; - ] in - (* Bootloader config *) - let paths = paths @ bootloader#augeas_device_patterns in -@@ -1199,7 +1200,32 @@ fi - PCRE.matches rex_device value then ( - let device = PCRE.sub 1 - and part = try PCRE.sub 2 with Not_found -> "" in -- "/dev/" ^ replace device ^ part -+ let adjusted_dev = "/dev/" ^ replace device ^ part in -+ -+ (* On sles12sp5, the installer puts a non-stable path into -+ /etc/crypttab, like /dev/sda2. If we replace it with eg. /dev/vda2, -+ and then regenerate dracut initrd, systemd cryptab integration -+ doesn't happen correctly, because it all expects /dev/vda2 to -+ exist at initrd creation time.. -+ -+ We can avoid this by filling in a stable `UUID=` value. -+ This depends on /dev/sdXX in the guest having the same /dev/sdXX -+ name in the appliance. -+ *) -+ if String.starts_with "/etc/crypttab" path && -+ String.starts_with "/dev/sd" value then ( -+ try -+ let uuid = g#vfs_uuid value in -+ "UUID=" ^ uuid -+ with ex -> -+ warning (f_"failed to translate encrypted device name %s to a UUID \ -+ in /etc/crypttab. This may prevent the guest from booting \ -+ after conversion. You may have to manually change the file and \ -+ reconvert. The original error was: %s") -+ value (Printexc.to_string ex); -+ adjusted_dev -+ ) else -+ adjusted_dev - ) - else (* doesn't look like a known device name *) - value diff --git a/0012-build-replace-AM_GNU_GETTEXT-with-simpler-LIBINTL-ch.patch b/0012-build-replace-AM_GNU_GETTEXT-with-simpler-LIBINTL-ch.patch deleted file mode 100644 index 172cae0..0000000 --- a/0012-build-replace-AM_GNU_GETTEXT-with-simpler-LIBINTL-ch.patch +++ /dev/null @@ -1,4099 +0,0 @@ -From 97c9a2a57adab5ca4ae9c6a7190edb1603443b1c Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Mon, 9 Feb 2026 19:37:39 -0500 -Subject: [PATCH] build: replace AM_GNU_GETTEXT with simpler LIBINTL check - -This reverts "m4: Add junk required to make 'AM_GNU_GETTEXT' work" -commit b9f75ca5b8d091c91187720cd52210117718c693 - -Switch to a simpler LIBINTL check and delete config.rpath while -we are touching it. - -This is the virt-v2v version of what was done in these libguestfs -commits: - -https://github.com/libguestfs/libguestfs/commit/12acfa7de33 -https://github.com/libguestfs/libguestfs/commit/a497a24ecfa -https://github.com/libguestfs/libguestfs/commit/a419076bd3d -(cherry picked from commit 2df2aeb119abf4b26066af20209f48d8ed1ca75f) ---- - Makefile.am | 1 - - build-aux/config.rpath | 751 ------------------------------------ - m4/build-to-host.m4 | 274 -------------- - m4/gettext.m4 | 393 ------------------- - m4/guestfs-libraries.m4 | 10 +- - m4/host-cpu-c-abi.m4 | 532 -------------------------- - m4/iconv.m4 | 324 ---------------- - m4/intlmacosx.m4 | 71 ---- - m4/lib-ld.m4 | 170 --------- - m4/lib-link.m4 | 815 ---------------------------------------- - m4/lib-prefix.m4 | 334 ---------------- - m4/nls.m4 | 33 -- - m4/po.m4 | 157 -------- - m4/progtest.m4 | 93 ----- - 14 files changed, 9 insertions(+), 3949 deletions(-) - delete mode 100755 build-aux/config.rpath - delete mode 100644 m4/build-to-host.m4 - delete mode 100644 m4/gettext.m4 - delete mode 100644 m4/host-cpu-c-abi.m4 - delete mode 100644 m4/iconv.m4 - delete mode 100644 m4/intlmacosx.m4 - delete mode 100644 m4/lib-ld.m4 - delete mode 100644 m4/lib-link.m4 - delete mode 100644 m4/lib-prefix.m4 - delete mode 100644 m4/nls.m4 - delete mode 100644 m4/po.m4 - delete mode 100644 m4/progtest.m4 - -diff --git a/Makefile.am b/Makefile.am -index c66f9656..d2e645c9 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -66,7 +66,6 @@ EXTRA_DIST = \ - .github/workflows/main.yml \ - .gitignore \ - bugs-in-changelog.sh \ -- build-aux/config.rpath \ - check-mli.sh \ - common/.gitignore \ - common/README \ -diff --git a/build-aux/config.rpath b/build-aux/config.rpath -deleted file mode 100755 -index e42a98cb..00000000 ---- a/build-aux/config.rpath -+++ /dev/null -@@ -1,751 +0,0 @@ --#!/usr/bin/sh --# Output a system dependent set of variables, describing how to set the --# run time search path of shared libraries in a binary (executable or --# shared library). --# --# Copyright 1996-2025 Free Software Foundation, Inc. --# Taken from GNU libtool, 2001 --# Originally by Gordon Matzigkeit , 1996 --# --# This file is free software; the Free Software Foundation gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. -- --# Known limitations: --# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer --# than 256 bytes, otherwise the compiler driver will dump core. The only --# known workaround is to choose shorter directory names for the build --# directory and/or the installation directory. -- --# func_usage --# outputs to stdout the --help usage message. --func_usage () --{ -- echo "\ --Usage: config.rpath [OPTION] HOST -- --Prints shell variable assignments that describe how to hardcode a directory --for the lookup of shared libraries into a binary (executable or shared library). -- --The first argument passed to this file is the canonical host specification, -- CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM --or -- CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -- --The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld --should be set by the caller. -- --The set of defined variables is at the end of this script. -- --Options: -- --help print this help and exit -- --version print version information and exit -- --Send patches and bug reports to ." --} -- --# func_version --# outputs to stdout the --version message. --func_version () --{ -- echo "config.rpath (GNU gnulib, module havelib)" -- echo "Copyright (C) 2025 Free Software Foundation, Inc. --License: All-Permissive. --This is free software: you are free to change and redistribute it. --There is NO WARRANTY, to the extent permitted by law." -- echo -- printf 'Written by %s.\n' "Bruno Haible" --} -- --# func_fatal_error message --# outputs to stderr a fatal error message, and terminates the program. --func_fatal_error () --{ -- echo "config.rpath: *** $1" 1>&2 -- echo "config.rpath: *** Stop." 1>&2 -- exit 1 --} -- --# Command-line option processing. --while test $# -gt 0; do -- case "$1" in -- --help | --hel | --he | --h ) -- func_usage -- exit 0 ;; -- --version | --versio | --versi | --vers | --ver | --ve | --v ) -- func_version -- exit 0 ;; -- -- ) # Stop option processing -- shift; break ;; -- -* ) -- func_fatal_error "unrecognized option: $1" -- ;; -- * ) -- break ;; -- esac --done -- --if test $# -gt 1; then -- func_fatal_error "too many arguments" --fi --if test $# -lt 1; then -- func_fatal_error "too few arguments" --fi -- --# All known linkers require a '.a' archive for static linking (except MSVC, --# which needs '.lib'). --libext=a --shrext=.so -- --host="$1" --host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` --host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` --host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -- --# Code taken from libtool.m4's _LT_CC_BASENAME. -- --for cc_temp in $CC""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` -- --# Code taken from libtool.m4's _LT_COMPILER_PIC. -- --wl= --if test "$GCC" = yes; then -- wl='-Wl,' --else -- case "$host_os" in -- aix*) -- wl='-Wl,' -- ;; -- mingw* | cygwin* | pw32* | os2* | cegcc*) -- ;; -- hpux9* | hpux10* | hpux11*) -- wl='-Wl,' -- ;; -- irix5* | irix6* | nonstopux*) -- wl='-Wl,' -- ;; -- linux* | k*bsd*-gnu | kopensolaris*-gnu) -- case $cc_basename in -- ecc*) -- wl='-Wl,' -- ;; -- icc* | ifort*) -- wl='-Wl,' -- ;; -- lf95*) -- wl='-Wl,' -- ;; -- nagfor*) -- wl='-Wl,-Wl,,' -- ;; -- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) -- wl='-Wl,' -- ;; -- ccc*) -- wl='-Wl,' -- ;; -- xl* | bgxl* | bgf* | mpixl*) -- wl='-Wl,' -- ;; -- como) -- wl='-lopt=' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ F* | *Sun*Fortran*) -- wl= -- ;; -- *Sun\ C*) -- wl='-Wl,' -- ;; -- esac -- ;; -- esac -- ;; -- newsos6) -- ;; -- *nto* | *qnx*) -- ;; -- osf3* | osf4* | osf5*) -- wl='-Wl,' -- ;; -- rdos*) -- ;; -- solaris*) -- case $cc_basename in -- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) -- wl='-Qoption ld ' -- ;; -- *) -- wl='-Wl,' -- ;; -- esac -- ;; -- sunos4*) -- wl='-Qoption ld ' -- ;; -- sysv4 | sysv4.2uw2* | sysv4.3*) -- wl='-Wl,' -- ;; -- sysv4*MP*) -- ;; -- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- wl='-Wl,' -- ;; -- unicos*) -- wl='-Wl,' -- ;; -- uts4*) -- ;; -- esac --fi -- --# Code taken from libtool.m4's _LT_LINKER_SHLIBS. -- --hardcode_libdir_flag_spec= --hardcode_libdir_separator= --hardcode_direct=no --hardcode_minus_L=no -- --case "$host_os" in -- cygwin* | mingw* | pw32* | cegcc*) -- # FIXME: the MSVC++ port hasn't been tested in a loooong time -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- if test "$GCC" != yes; then -- with_gnu_ld=no -- fi -- ;; -- interix*) -- # we just hope/assume this is gcc and not c89 (= MSVC++) -- with_gnu_ld=yes -- ;; -- openbsd*) -- with_gnu_ld=no -- ;; --esac -- --ld_shlibs=yes --if test "$with_gnu_ld" = yes; then -- # Set some defaults for GNU ld with shared library support. These -- # are reset later if shared libraries are not supported. Putting them -- # here allows them to be overridden if necessary. -- # Unlike libtool, we use -rpath here, not --rpath, since the documented -- # option of GNU ld is called -rpath, not --rpath. -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- case "$host_os" in -- aix[3-9]*) -- # On AIX/PPC, the GNU linker is very broken -- if test "$host_cpu" != ia64; then -- ld_shlibs=no -- fi -- ;; -- amigaos*) -- case "$host_cpu" in -- powerpc) -- ;; -- m68k) -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_minus_L=yes -- ;; -- esac -- ;; -- beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- : -- else -- ld_shlibs=no -- fi -- ;; -- cygwin* | mingw* | pw32* | cegcc*) -- # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- hardcode_libdir_flag_spec='-L$libdir' -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- : -- else -- ld_shlibs=no -- fi -- ;; -- haiku*) -- ;; -- interix[3-9]*) -- hardcode_direct=no -- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -- ;; -- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- : -- else -- ld_shlibs=no -- fi -- ;; -- netbsd*) -- ;; -- solaris*) -- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -- ld_shlibs=no -- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- : -- else -- ld_shlibs=no -- fi -- ;; -- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) -- case `$LD -v 2>&1` in -- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) -- ld_shlibs=no -- ;; -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' -- else -- ld_shlibs=no -- fi -- ;; -- esac -- ;; -- sunos4*) -- hardcode_direct=yes -- ;; -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- : -- else -- ld_shlibs=no -- fi -- ;; -- esac -- if test "$ld_shlibs" = no; then -- hardcode_libdir_flag_spec= -- fi --else -- case "$host_os" in -- aix3*) -- # Note: this linker hardcodes the directories in LIBPATH if there -- # are no directories specified by -L. -- hardcode_minus_L=yes -- if test "$GCC" = yes; then -- # Neither direct hardcoding nor static linking is supported with a -- # broken collect2. -- hardcode_direct=unsupported -- fi -- ;; -- aix[4-9]*) -- if test "$host_cpu" = ia64; then -- # On IA64, the linker does run time linking by default, so we don't -- # have to do anything special. -- aix_use_runtimelinking=no -- else -- aix_use_runtimelinking=no -- # Test if we are trying to use run time linking or normal -- # AIX style linking. If -brtl is somewhere in LDFLAGS, we -- # need to do runtime linking. -- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) -- for ld_flag in $LDFLAGS; do -- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -- aix_use_runtimelinking=yes -- break -- fi -- done -- ;; -- esac -- fi -- hardcode_direct=yes -- hardcode_libdir_separator=':' -- if test "$GCC" = yes; then -- case $host_os in aix4.[012]|aix4.[012].*) -- collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -- then -- # We have reworked collect2 -- : -- else -- # We have old collect2 -- hardcode_direct=unsupported -- hardcode_minus_L=yes -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_libdir_separator= -- fi -- ;; -- esac -- fi -- # Begin _LT_AC_SYS_LIBPATH_AIX. -- echo 'int main () { return 0; }' > conftest.c -- ${CC} ${LDFLAGS} conftest.c -o conftest -- aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } --}'` -- if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } --}'` -- fi -- if test -z "$aix_libpath"; then -- aix_libpath="/usr/lib:/lib" -- fi -- rm -f conftest.c conftest -- # End _LT_AC_SYS_LIBPATH_AIX. -- if test "$aix_use_runtimelinking" = yes; then -- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -- else -- if test "$host_cpu" = ia64; then -- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' -- else -- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -- fi -- fi -- ;; -- amigaos*) -- case "$host_cpu" in -- powerpc) -- ;; -- m68k) -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_minus_L=yes -- ;; -- esac -- ;; -- bsdi[45]*) -- ;; -- cygwin* | mingw* | pw32* | cegcc*) -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- libext=lib -- ;; -- darwin* | rhapsody*) -- hardcode_direct=no -- if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then -- : -- else -- ld_shlibs=no -- fi -- ;; -- dgux*) -- hardcode_libdir_flag_spec='-L$libdir' -- ;; -- freebsd2.[01]*) -- hardcode_direct=yes -- hardcode_minus_L=yes -- ;; -- freebsd* | dragonfly* | midnightbsd*) -- hardcode_libdir_flag_spec='-R$libdir' -- hardcode_direct=yes -- ;; -- hpux9*) -- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator=: -- hardcode_direct=yes -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L=yes -- ;; -- hpux10*) -- if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator=: -- hardcode_direct=yes -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L=yes -- fi -- ;; -- hpux11*) -- if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator=: -- case $host_cpu in -- hppa*64*|ia64*) -- hardcode_direct=no -- ;; -- *) -- hardcode_direct=yes -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L=yes -- ;; -- esac -- fi -- ;; -- irix5* | irix6* | nonstopux*) -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator=: -- ;; -- netbsd*) -- hardcode_libdir_flag_spec='-R$libdir' -- hardcode_direct=yes -- ;; -- newsos6) -- hardcode_direct=yes -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator=: -- ;; -- *nto* | *qnx*) -- ;; -- openbsd*) -- if test -f /usr/libexec/ld.so; then -- hardcode_direct=yes -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -- else -- case "$host_os" in -- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -- hardcode_libdir_flag_spec='-R$libdir' -- ;; -- *) -- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -- ;; -- esac -- fi -- else -- ld_shlibs=no -- fi -- ;; -- os2*) -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_minus_L=yes -- ;; -- osf3*) -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator=: -- ;; -- osf4* | osf5*) -- if test "$GCC" = yes; then -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- else -- # Both cc and cxx compiler support -rpath directly -- hardcode_libdir_flag_spec='-rpath $libdir' -- fi -- hardcode_libdir_separator=: -- ;; -- solaris*) -- hardcode_libdir_flag_spec='-R$libdir' -- ;; -- sunos4*) -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_direct=yes -- hardcode_minus_L=yes -- ;; -- sysv4) -- case $host_vendor in -- sni) -- hardcode_direct=yes # is this really true??? -- ;; -- siemens) -- hardcode_direct=no -- ;; -- motorola) -- hardcode_direct=no #Motorola manual says yes, but my tests say they lie -- ;; -- esac -- ;; -- sysv4.3*) -- ;; -- sysv4*MP*) -- if test -d /usr/nec; then -- ld_shlibs=yes -- fi -- ;; -- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) -- ;; -- sysv5* | sco3.2v5* | sco5v6*) -- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- hardcode_libdir_separator=':' -- ;; -- uts4*) -- hardcode_libdir_flag_spec='-L$libdir' -- ;; -- *) -- ld_shlibs=no -- ;; -- esac --fi -- --# Check dynamic linker characteristics --# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. --# Unlike libtool.m4, here we don't care about _all_ names of the library, but --# only about the one the linker finds when passed -lNAME. This is the last --# element of library_names_spec in libtool.m4, or possibly two of them if the --# linker has special search rules. --library_names_spec= # the last element of library_names_spec in libtool.m4 --libname_spec='lib$name' --case "$host_os" in -- aix3*) -- library_names_spec='$libname.a' -- ;; -- aix[4-9]*) -- library_names_spec='$libname$shrext' -- ;; -- amigaos*) -- case "$host_cpu" in -- powerpc*) -- library_names_spec='$libname$shrext' ;; -- m68k) -- library_names_spec='$libname.a' ;; -- esac -- ;; -- beos*) -- library_names_spec='$libname$shrext' -- ;; -- bsdi[45]*) -- library_names_spec='$libname$shrext' -- ;; -- cygwin* | mingw* | pw32* | cegcc*) -- shrext=.dll -- library_names_spec='$libname.dll.a $libname.lib' -- ;; -- darwin* | rhapsody*) -- shrext=.dylib -- library_names_spec='$libname$shrext' -- ;; -- dgux*) -- library_names_spec='$libname$shrext' -- ;; -- freebsd[23].*) -- library_names_spec='$libname$shrext$versuffix' -- ;; -- freebsd* | dragonfly* | midnightbsd*) -- library_names_spec='$libname$shrext' -- ;; -- gnu*) -- library_names_spec='$libname$shrext' -- ;; -- haiku*) -- library_names_spec='$libname$shrext' -- ;; -- hpux9* | hpux10* | hpux11*) -- case $host_cpu in -- ia64*) -- shrext=.so -- ;; -- hppa*64*) -- shrext=.sl -- ;; -- *) -- shrext=.sl -- ;; -- esac -- library_names_spec='$libname$shrext' -- ;; -- interix[3-9]*) -- library_names_spec='$libname$shrext' -- ;; -- irix5* | irix6* | nonstopux*) -- library_names_spec='$libname$shrext' -- case "$host_os" in -- irix5* | nonstopux*) -- libsuff= shlibsuff= -- ;; -- *) -- case $LD in -- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; -- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; -- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; -- *) libsuff= shlibsuff= ;; -- esac -- ;; -- esac -- ;; -- linux*oldld* | linux*aout* | linux*coff*) -- ;; -- linux* | k*bsd*-gnu | kopensolaris*-gnu) -- library_names_spec='$libname$shrext' -- ;; -- knetbsd*-gnu) -- library_names_spec='$libname$shrext' -- ;; -- netbsd*) -- library_names_spec='$libname$shrext' -- ;; -- newsos6) -- library_names_spec='$libname$shrext' -- ;; -- *nto* | *qnx*) -- library_names_spec='$libname$shrext' -- ;; -- openbsd*) -- library_names_spec='$libname$shrext$versuffix' -- ;; -- os2*) -- libname_spec='$name' -- shrext=.dll -- library_names_spec='$libname.a' -- ;; -- osf3* | osf4* | osf5*) -- library_names_spec='$libname$shrext' -- ;; -- rdos*) -- ;; -- solaris*) -- library_names_spec='$libname$shrext' -- ;; -- sunos4*) -- library_names_spec='$libname$shrext$versuffix' -- ;; -- sysv4 | sysv4.3*) -- library_names_spec='$libname$shrext' -- ;; -- sysv4*MP*) -- library_names_spec='$libname$shrext' -- ;; -- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- library_names_spec='$libname$shrext' -- ;; -- tpf*) -- library_names_spec='$libname$shrext' -- ;; -- uts4*) -- library_names_spec='$libname$shrext' -- ;; --esac -- --sed_quote_subst='s/\(["`$\\]\)/\\\1/g' --escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` --shlibext=`echo "$shrext" | sed -e 's,^\.,,'` --escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` --escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` --escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -- --LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < C:\foo\bar --dnl /usr/local/share -> C:\cygwin64\usr\local\share --dnl --dnl gl_BUILD_TO_HOST([somedir]) --dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must --dnl already have its final value assigned, and produces two additional --dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the --dnl same file name value, just in different syntax: --dnl - somedir_c is the file name in target runtime environment syntax, --dnl as a C string (starting and ending with a double-quote, --dnl and with escaped backslashes and double-quotes in --dnl between). --dnl - somedir_c_make is the same thing, escaped for use in a Makefile. -- --AC_DEFUN([gl_BUILD_TO_HOST], --[ -- AC_REQUIRE([AC_CANONICAL_BUILD]) -- AC_REQUIRE([AC_CANONICAL_HOST]) -- AC_REQUIRE([gl_BUILD_TO_HOST_INIT]) -- -- dnl Define somedir_c. -- gl_final_[$1]="$[$1]" -- dnl Translate it from build syntax to host syntax. -- case "$build_os" in -- cygwin*) -- case "$host_os" in -- mingw* | windows*) -- gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;; -- esac -- ;; -- esac -- dnl Convert it to C string syntax. -- [$1]_c=`printf '%s\n' "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"` -- [$1]_c='"'"$[$1]_c"'"' -- AC_SUBST([$1_c]) -- -- dnl Define somedir_c_make. -- [$1]_c_make=`printf '%s\n' "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"` -- dnl Use the substituted somedir variable, when possible, so that the user -- dnl may adjust somedir a posteriori when there are no special characters. -- if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then -- [$1]_c_make='\"$([$1])\"' -- fi -- AC_SUBST([$1_c_make]) --]) -- --dnl Some initializations for gl_BUILD_TO_HOST. --AC_DEFUN([gl_BUILD_TO_HOST_INIT], --[ -- gl_sed_double_backslashes='s/\\/\\\\/g' -- gl_sed_escape_doublequotes='s/"/\\"/g' --changequote(,)dnl -- gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" --changequote([,])dnl -- gl_sed_escape_for_make_2='s,\$,\\$$,g' -- dnl Find out how to remove carriage returns from output. Solaris /usr/ucb/tr -- dnl does not understand '\r'. -- case `echo r | tr -d '\r'` in -- '') gl_tr_cr='\015' ;; -- *) gl_tr_cr='\r' ;; -- esac --]) -- -- --dnl The following macros are convenience invocations of gl_BUILD_TO_HOST --dnl for some of the variables that are defined by Autoconf. --dnl To do so for _all_ the possible variables, use the module 'configmake'. -- --dnl Defines bindir_c and bindir_c_make. --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_BINDIR], --[ -- dnl Find the final value of bindir. -- gl_saved_prefix="${prefix}" -- gl_saved_exec_prefix="${exec_prefix}" -- gl_saved_bindir="${bindir}" -- dnl Unfortunately, prefix and exec_prefix get only finally determined -- dnl at the end of configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- if test "X$exec_prefix" = "XNONE"; then -- exec_prefix='${prefix}' -- fi -- eval exec_prefix="$exec_prefix" -- eval bindir="$bindir" -- gl_BUILD_TO_HOST([bindir]) -- bindir="${gl_saved_bindir}" -- exec_prefix="${gl_saved_exec_prefix}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines datadir_c and datadir_c_make, --dnl where datadir = $(datarootdir) --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_DATADIR], --[ -- dnl Find the final value of datadir. -- gl_saved_prefix="${prefix}" -- gl_saved_datarootdir="${datarootdir}" -- gl_saved_datadir="${datadir}" -- dnl Unfortunately, prefix gets only finally determined at the end of -- dnl configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- eval datarootdir="$datarootdir" -- eval datadir="$datadir" -- gl_BUILD_TO_HOST([datadir]) -- datadir="${gl_saved_datadir}" -- datarootdir="${gl_saved_datarootdir}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines libdir_c and libdir_c_make. --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LIBDIR], --[ -- dnl Find the final value of libdir. -- gl_saved_prefix="${prefix}" -- gl_saved_exec_prefix="${exec_prefix}" -- gl_saved_libdir="${libdir}" -- dnl Unfortunately, prefix and exec_prefix get only finally determined -- dnl at the end of configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- if test "X$exec_prefix" = "XNONE"; then -- exec_prefix='${prefix}' -- fi -- eval exec_prefix="$exec_prefix" -- eval libdir="$libdir" -- gl_BUILD_TO_HOST([libdir]) -- libdir="${gl_saved_libdir}" -- exec_prefix="${gl_saved_exec_prefix}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines libexecdir_c and libexecdir_c_make. --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LIBEXECDIR], --[ -- dnl Find the final value of libexecdir. -- gl_saved_prefix="${prefix}" -- gl_saved_exec_prefix="${exec_prefix}" -- gl_saved_libexecdir="${libexecdir}" -- dnl Unfortunately, prefix and exec_prefix get only finally determined -- dnl at the end of configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- if test "X$exec_prefix" = "XNONE"; then -- exec_prefix='${prefix}' -- fi -- eval exec_prefix="$exec_prefix" -- eval libexecdir="$libexecdir" -- gl_BUILD_TO_HOST([libexecdir]) -- libexecdir="${gl_saved_libexecdir}" -- exec_prefix="${gl_saved_exec_prefix}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines localedir_c and localedir_c_make. --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LOCALEDIR], --[ -- dnl Find the final value of localedir. -- gl_saved_prefix="${prefix}" -- gl_saved_datarootdir="${datarootdir}" -- gl_saved_localedir="${localedir}" -- dnl Unfortunately, prefix gets only finally determined at the end of -- dnl configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- eval datarootdir="$datarootdir" -- eval localedir="$localedir" -- gl_BUILD_TO_HOST([localedir]) -- localedir="${gl_saved_localedir}" -- datarootdir="${gl_saved_datarootdir}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines pkgdatadir_c and pkgdatadir_c_make, --dnl where pkgdatadir = $(datadir)/$(PACKAGE) --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGDATADIR], --[ -- dnl Find the final value of pkgdatadir. -- gl_saved_prefix="${prefix}" -- gl_saved_datarootdir="${datarootdir}" -- gl_saved_datadir="${datadir}" -- gl_saved_pkgdatadir="${pkgdatadir}" -- dnl Unfortunately, prefix gets only finally determined at the end of -- dnl configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- eval datarootdir="$datarootdir" -- eval datadir="$datadir" -- eval pkgdatadir="$pkgdatadir" -- gl_BUILD_TO_HOST([pkgdatadir]) -- pkgdatadir="${gl_saved_pkgdatadir}" -- datadir="${gl_saved_datadir}" -- datarootdir="${gl_saved_datarootdir}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines pkglibdir_c and pkglibdir_c_make, --dnl where pkglibdir = $(libdir)/$(PACKAGE) --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGLIBDIR], --[ -- dnl Find the final value of pkglibdir. -- gl_saved_prefix="${prefix}" -- gl_saved_exec_prefix="${exec_prefix}" -- gl_saved_libdir="${libdir}" -- gl_saved_pkglibdir="${pkglibdir}" -- dnl Unfortunately, prefix and exec_prefix get only finally determined -- dnl at the end of configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- if test "X$exec_prefix" = "XNONE"; then -- exec_prefix='${prefix}' -- fi -- eval exec_prefix="$exec_prefix" -- eval libdir="$libdir" -- eval pkglibdir="$pkglibdir" -- gl_BUILD_TO_HOST([pkglibdir]) -- pkglibdir="${gl_saved_pkglibdir}" -- libdir="${gl_saved_libdir}" -- exec_prefix="${gl_saved_exec_prefix}" -- prefix="${gl_saved_prefix}" --]) -- --dnl Defines pkglibexecdir_c and pkglibexecdir_c_make, --dnl where pkglibexecdir = $(libexecdir)/$(PACKAGE) --AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGLIBEXECDIR], --[ -- dnl Find the final value of pkglibexecdir. -- gl_saved_prefix="${prefix}" -- gl_saved_exec_prefix="${exec_prefix}" -- gl_saved_libexecdir="${libexecdir}" -- gl_saved_pkglibexecdir="${pkglibexecdir}" -- dnl Unfortunately, prefix and exec_prefix get only finally determined -- dnl at the end of configure. -- if test "X$prefix" = "XNONE"; then -- prefix="$ac_default_prefix" -- fi -- if test "X$exec_prefix" = "XNONE"; then -- exec_prefix='${prefix}' -- fi -- eval exec_prefix="$exec_prefix" -- eval libexecdir="$libexecdir" -- eval pkglibexecdir="$pkglibexecdir" -- gl_BUILD_TO_HOST([pkglibexecdir]) -- pkglibexecdir="${gl_saved_pkglibexecdir}" -- libexecdir="${gl_saved_libexecdir}" -- exec_prefix="${gl_saved_exec_prefix}" -- prefix="${gl_saved_prefix}" --]) -diff --git a/m4/gettext.m4 b/m4/gettext.m4 -deleted file mode 100644 -index 7de17f99..00000000 ---- a/m4/gettext.m4 -+++ /dev/null -@@ -1,393 +0,0 @@ --# gettext.m4 --# serial 81 (gettext-0.24) --dnl Copyright (C) 1995-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. --dnl --dnl This file can be used in projects which are not available under --dnl the GNU General Public License or the GNU Lesser General Public --dnl License but which still want to provide support for the GNU gettext --dnl functionality. --dnl Please note that the actual code of the GNU gettext library is covered --dnl by the GNU Lesser General Public License, and the rest of the GNU --dnl gettext package is covered by the GNU General Public License. --dnl They are *not* in the public domain. -- --dnl Authors: --dnl Ulrich Drepper , 1995-2000. --dnl Bruno Haible , 2000-2024. -- --dnl Macro to add for using GNU gettext. -- --dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). --dnl INTLSYMBOL must be one of 'external', 'use-libtool', 'here'. --dnl INTLSYMBOL should be 'external' for packages other than GNU gettext. --dnl It should be 'use-libtool' for the packages 'gettext-runtime' and --dnl 'gettext-tools'. --dnl It should be 'here' for the package 'gettext-runtime/intl'. --dnl If INTLSYMBOL is 'here', then a libtool library --dnl $(top_builddir)/libintl.la will be created (shared and/or static, --dnl depending on --{enable,disable}-{shared,static} and on the presence of --dnl AM-DISABLE-SHARED). --dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext --dnl implementations (in libc or libintl) without the ngettext() function --dnl will be ignored. If NEEDSYMBOL is specified and is --dnl 'need-formatstring-macros', then GNU gettext implementations that don't --dnl support the ISO C 99 formatstring macros will be ignored. --dnl INTLDIR is used to find the intl libraries. If empty, --dnl the value '$(top_builddir)/intl/' is used. --dnl --dnl The result of the configuration is one of three cases: --dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled --dnl and used. --dnl Catalog format: GNU --> install in $(datadir) --dnl Catalog extension: .mo after installation, .gmo in source tree --dnl 2) GNU gettext has been found in the system's C library. --dnl Catalog format: GNU --> install in $(datadir) --dnl Catalog extension: .mo after installation, .gmo in source tree --dnl 3) No internationalization, always use English msgid. --dnl Catalog format: none --dnl Catalog extension: none --dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. --dnl The use of .gmo is historical (it was needed to avoid overwriting the --dnl GNU format catalogs when building on a platform with an X/Open gettext), --dnl but we keep it in order not to force irrelevant filename changes on the --dnl maintainers. --dnl --AC_DEFUN([AM_GNU_GETTEXT], --[ -- dnl Argument checking. -- m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], , [m4_if([$1], [here], , -- [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT --])])])])]) -- m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old], -- [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. --])]) -- m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], , -- [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT --])])])]) -- define([gt_building_libintl_in_same_build_tree], -- m4_if([$1], [use-libtool], [yes], [m4_if([$1], [here], [yes], [no])])) -- gt_NEEDS_INIT -- AM_GNU_GETTEXT_NEED([$2]) -- -- AC_REQUIRE([AM_PO_SUBDIRS])dnl -- -- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. -- AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) -- AC_REQUIRE([AC_LIB_RPATH]) -- -- dnl Sometimes libintl requires libiconv, so first search for libiconv. -- dnl Ideally we would do this search only after the -- dnl if test "$USE_NLS" = "yes"; then -- dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then -- dnl tests. But if configure.ac invokes AM_ICONV after AM_GNU_GETTEXT -- dnl the configure script would need to contain the same shell code -- dnl again, outside any 'if'. There are two solutions: -- dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. -- dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. -- dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. -- m4_if(gt_building_libintl_in_same_build_tree, yes, , [ -- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) -- ]) -- -- dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. -- gt_INTL_MACOSX -- -- dnl Set USE_NLS. -- AC_REQUIRE([AM_NLS]) -- -- m4_if(gt_building_libintl_in_same_build_tree, yes, [ -- USE_INCLUDED_LIBINTL=no -- ]) -- LIBINTL= -- LTLIBINTL= -- POSUB= -- -- dnl Add a version number to the cache macros. -- case " $gt_needs " in -- *" need-formatstring-macros "*) gt_api_version=3 ;; -- *" need-ngettext "*) gt_api_version=2 ;; -- *) gt_api_version=1 ;; -- esac -- gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" -- gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" -- -- dnl If we use NLS figure out what method -- if test "$USE_NLS" = "yes"; then -- gt_use_preinstalled_gnugettext=no -- m4_if(gt_building_libintl_in_same_build_tree, yes, [ -- AC_MSG_CHECKING([whether included gettext is requested]) -- AC_ARG_WITH([included-gettext], -- [ --with-included-gettext use the GNU gettext library included here], -- nls_cv_force_use_gnu_gettext=$withval, -- nls_cv_force_use_gnu_gettext=no) -- AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) -- -- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" -- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then -- ]) -- dnl User does not insist on using GNU NLS library. Figure out what -- dnl to use. If GNU gettext is available we use this. Else we have -- dnl to fall back to GNU NLS library. -- -- if test $gt_api_version -ge 3; then -- gt_revision_test_code=' --#ifndef __GNU_GETTEXT_SUPPORTED_REVISION --#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) --#endif --changequote(,)dnl --typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; --changequote([,])dnl --' -- else -- gt_revision_test_code= -- fi -- if test $gt_api_version -ge 2; then -- gt_expression_test_code=' + * ngettext ("", "", 0)' -- else -- gt_expression_test_code= -- fi -- -- AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], -- [AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#ifndef __GNU_GETTEXT_SUPPORTED_REVISION --extern int _nl_msg_cat_cntr; --extern int *_nl_domain_bindings; --#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) --#else --#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 --#endif --$gt_revision_test_code -- ]], -- [[ --bindtextdomain ("", ""); --return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION -- ]])], -- [eval "$gt_func_gnugettext_libc=yes"], -- [eval "$gt_func_gnugettext_libc=no"])]) -- -- if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then -- dnl Sometimes libintl requires libiconv, so first search for libiconv. -- m4_if(gt_building_libintl_in_same_build_tree, yes, , [ -- AM_ICONV_LINK -- ]) -- dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL -- dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) -- dnl because that would add "-liconv" to LIBINTL and LTLIBINTL -- dnl even if libiconv doesn't exist. -- AC_LIB_LINKFLAGS_BODY([intl]) -- AC_CACHE_CHECK([for GNU gettext in libintl], -- [$gt_func_gnugettext_libintl], -- [gt_saved_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS $INCINTL" -- gt_saved_LIBS="$LIBS" -- LIBS="$LIBS $LIBINTL" -- dnl Now see whether libintl exists and does not depend on libiconv. -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#ifndef __GNU_GETTEXT_SUPPORTED_REVISION --extern int _nl_msg_cat_cntr; --extern --#ifdef __cplusplus --"C" --#endif --const char *_nl_expand_alias (const char *); --#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) --#else --#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 --#endif --$gt_revision_test_code -- ]], -- [[ --bindtextdomain ("", ""); --return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION -- ]])], -- [eval "$gt_func_gnugettext_libintl=yes"], -- [eval "$gt_func_gnugettext_libintl=no"]) -- dnl Now see whether libintl exists and depends on libiconv or other -- dnl OS dependent libraries, specifically on macOS and AIX. -- gt_LIBINTL_EXTRA="$INTL_MACOSX_LIBS" -- AC_REQUIRE([AC_CANONICAL_HOST]) -- case "$host_os" in -- aix*) gt_LIBINTL_EXTRA="-lpthread" ;; -- esac -- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } \ -- && { test -n "$LIBICONV" || test -n "$gt_LIBINTL_EXTRA"; }; then -- LIBS="$LIBS $LIBICONV $gt_LIBINTL_EXTRA" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#ifndef __GNU_GETTEXT_SUPPORTED_REVISION --extern int _nl_msg_cat_cntr; --extern --#ifdef __cplusplus --"C" --#endif --const char *_nl_expand_alias (const char *); --#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) --#else --#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 --#endif --$gt_revision_test_code -- ]], -- [[ --bindtextdomain ("", ""); --return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION -- ]])], -- [LIBINTL="$LIBINTL $LIBICONV $gt_LIBINTL_EXTRA" -- LTLIBINTL="$LTLIBINTL $LTLIBICONV $gt_LIBINTL_EXTRA" -- eval "$gt_func_gnugettext_libintl=yes" -- ]) -- fi -- CPPFLAGS="$gt_saved_CPPFLAGS" -- LIBS="$gt_saved_LIBS"]) -- fi -- -- dnl If an already present or preinstalled GNU gettext() is found, -- dnl use it. But if this macro is used in GNU gettext, and GNU -- dnl gettext is already preinstalled in libintl, we update this -- dnl libintl. (Cf. the install rule in intl/Makefile.in.) -- if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ -- || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ -- && test "$PACKAGE" != gettext-runtime \ -- && test "$PACKAGE" != gettext-tools \ -- && test "$PACKAGE" != libintl; }; then -- gt_use_preinstalled_gnugettext=yes -- else -- dnl Reset the values set by searching for libintl. -- LIBINTL= -- LTLIBINTL= -- INCINTL= -- fi -- -- m4_if(gt_building_libintl_in_same_build_tree, yes, [ -- if test "$gt_use_preinstalled_gnugettext" != "yes"; then -- dnl GNU gettext is not found in the C library. -- dnl Fall back on included GNU gettext library. -- nls_cv_use_gnu_gettext=yes -- fi -- fi -- -- if test "$nls_cv_use_gnu_gettext" = "yes"; then -- dnl Mark actions used to generate GNU NLS library. -- USE_INCLUDED_LIBINTL=yes -- LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" -- LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" -- LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` -- fi -- -- CATOBJEXT= -- if test "$gt_use_preinstalled_gnugettext" = "yes" \ -- || test "$nls_cv_use_gnu_gettext" = "yes"; then -- dnl Mark actions to use GNU gettext tools. -- CATOBJEXT=.gmo -- fi -- ]) -- -- if test -n "$INTL_MACOSX_LIBS"; then -- if test "$gt_use_preinstalled_gnugettext" = "yes" \ -- || test "$nls_cv_use_gnu_gettext" = "yes"; then -- dnl Some extra flags are needed during linking. -- LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" -- LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" -- fi -- fi -- -- if test "$gt_use_preinstalled_gnugettext" = "yes" \ -- || test "$nls_cv_use_gnu_gettext" = "yes"; then -- AC_DEFINE([ENABLE_NLS], [1], -- [Define to 1 if translation of program messages to the user's native language -- is requested.]) -- else -- USE_NLS=no -- fi -- fi -- -- AC_MSG_CHECKING([whether to use NLS]) -- AC_MSG_RESULT([$USE_NLS]) -- if test "$USE_NLS" = "yes"; then -- AC_MSG_CHECKING([where the gettext function comes from]) -- if test "$gt_use_preinstalled_gnugettext" = "yes"; then -- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then -- gt_source="external libintl" -- else -- gt_source="libc" -- fi -- else -- gt_source="included intl directory" -- fi -- AC_MSG_RESULT([$gt_source]) -- fi -- -- if test "$USE_NLS" = "yes"; then -- -- if test "$gt_use_preinstalled_gnugettext" = "yes"; then -- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then -- AC_MSG_CHECKING([how to link with libintl]) -- AC_MSG_RESULT([$LIBINTL]) -- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) -- fi -- -- dnl For backward compatibility. Some packages may be using this. -- AC_DEFINE([HAVE_GETTEXT], [1], -- [Define if the GNU gettext() function is already present or preinstalled.]) -- AC_DEFINE([HAVE_DCGETTEXT], [1], -- [Define if the GNU dcgettext() function is already present or preinstalled.]) -- fi -- -- dnl We need to process the po/ directory. -- POSUB=po -- fi -- -- m4_if(gt_building_libintl_in_same_build_tree, yes, [ -- dnl Make all variables we use known to autoconf. -- AC_SUBST([USE_INCLUDED_LIBINTL]) -- AC_SUBST([CATOBJEXT]) -- ]) -- -- m4_if(gt_building_libintl_in_same_build_tree, yes, [], [ -- dnl For backward compatibility. Some Makefiles may be using this. -- INTLLIBS="$LIBINTL" -- AC_SUBST([INTLLIBS]) -- ]) -- -- dnl Make all documented variables known to autoconf. -- AC_SUBST([LIBINTL]) -- AC_SUBST([LTLIBINTL]) -- AC_SUBST([POSUB]) -- -- dnl Define localedir_c and localedir_c_make. -- gl_BUILD_TO_HOST_LOCALEDIR --]) -- -- --dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. --m4_define([gt_NEEDS_INIT], --[ -- m4_divert_text([DEFAULTS], [gt_needs=]) -- m4_define([gt_NEEDS_INIT], []) --]) -- -- --dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) --AC_DEFUN([AM_GNU_GETTEXT_NEED], --[ -- m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) --]) -- -- --dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) --AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) -- -- --dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) --AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) -diff --git a/m4/guestfs-libraries.m4 b/m4/guestfs-libraries.m4 -index c4237438..11c9974c 100644 ---- a/m4/guestfs-libraries.m4 -+++ b/m4/guestfs-libraries.m4 -@@ -78,7 +78,15 @@ AM_CONDITIONAL([HAVE_GNU_GETTEXT], - [test "x$XGETTEXT" != "xno" && test "x$MSGCAT" != "xno" && test "x$MSGFMT" != "xno" && test "x$MSGMERGE" != "xno" && test "x$msgfmt_is_gnu" != "xno"]) - - dnl Check for gettext. --AM_GNU_GETTEXT([external]) -+AC_CHECK_HEADERS([libintl.h]) -+AC_SEARCH_LIBS([dgettext], [intl], [ -+if test "$ac_cv_search_dgettext" != "none required"; then -+ LIBINTL="$ac_cv_search_dgettext" -+ LTLIBINTL="$ac_cv_search_dgettext" -+fi -+]) -+AC_SUBST([LIBINTL]) -+AC_SUBST([LTLIBINTL]) - - dnl Check for PCRE2 (required) - PKG_CHECK_MODULES([PCRE2], [libpcre2-8], [], [ -diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4 -deleted file mode 100644 -index 6ca7721a..00000000 ---- a/m4/host-cpu-c-abi.m4 -+++ /dev/null -@@ -1,532 +0,0 @@ --# host-cpu-c-abi.m4 --# serial 20 --dnl Copyright (C) 2002-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. -- --dnl From Bruno Haible and Sam Steingold. -- --dnl Sets the HOST_CPU variable to the canonical name of the CPU. --dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its --dnl C language ABI (application binary interface). --dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in --dnl config.h. --dnl --dnl This canonical name can be used to select a particular assembly language --dnl source file that will interoperate with C code on the given host. --dnl --dnl For example: --dnl * 'i386' and 'sparc' are different canonical names, because code for i386 --dnl will not run on SPARC CPUs and vice versa. They have different --dnl instruction sets. --dnl * 'sparc' and 'sparc64' are different canonical names, because code for --dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code --dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit --dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit --dnl mode, but not both. --dnl * 'mips' and 'mipsn32' are different canonical names, because they use --dnl different argument passing and return conventions for C functions, and --dnl although the instruction set of 'mips' is a large subset of the --dnl instruction set of 'mipsn32'. --dnl * 'mipsn32' and 'mips64' are different canonical names, because they use --dnl different sizes for the C types like 'int' and 'void *', and although --dnl the instruction sets of 'mipsn32' and 'mips64' are the same. --dnl * The same canonical name is used for different endiannesses. You can --dnl determine the endianness through preprocessor symbols: --dnl - 'arm': test __ARMEL__. --dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. --dnl - 'powerpc64': test __BIG_ENDIAN__ vs. __LITTLE_ENDIAN__. --dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 --dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because --dnl - Instructions that do not exist on all of these CPUs (cmpxchg, --dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your --dnl assembly language source files use such instructions, you will --dnl need to make the distinction. --dnl - Speed of execution of the common instruction set is reasonable across --dnl the entire family of CPUs. If you have assembly language source files --dnl that are optimized for particular CPU types (like GNU gmp has), you --dnl will need to make the distinction. --dnl See . --AC_DEFUN([gl_HOST_CPU_C_ABI], --[ -- AC_REQUIRE([AC_CANONICAL_HOST]) -- AC_REQUIRE([gl_C_ASM]) -- AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], -- [case "$host_cpu" in -- --changequote(,)dnl -- i[34567]86 ) --changequote([,])dnl -- gl_cv_host_cpu_c_abi=i386 -- ;; -- -- x86_64 ) -- # On x86_64 systems, the C compiler may be generating code in one of -- # these ABIs: -- # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. -- # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 -- # with native Windows (mingw, MSVC). -- # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. -- # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if (defined __x86_64__ || defined __amd64__ \ -- || defined _M_X64 || defined _M_AMD64) -- int ok; -- #else -- error fail -- #endif -- ]])], -- [AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __ILP32__ || defined _ILP32 -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=x86_64-x32], -- [gl_cv_host_cpu_c_abi=x86_64])], -- [gl_cv_host_cpu_c_abi=i386]) -- ;; -- --changequote(,)dnl -- alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) --changequote([,])dnl -- gl_cv_host_cpu_c_abi=alpha -- ;; -- -- arm* | aarch64 ) -- # Assume arm with EABI. -- # On arm64 systems, the C compiler may be generating code in one of -- # these ABIs: -- # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. -- # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. -- # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#ifdef __aarch64__ -- int ok; -- #else -- error fail -- #endif -- ]])], -- [AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __ILP32__ || defined _ILP32 -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=arm64-ilp32], -- [gl_cv_host_cpu_c_abi=arm64])], -- [# Don't distinguish little-endian and big-endian arm, since they -- # don't require different machine code for simple operations and -- # since the user can distinguish them through the preprocessor -- # defines __ARMEL__ vs. __ARMEB__. -- # But distinguish arm which passes floating-point arguments and -- # return values in integer registers (r0, r1, ...) - this is -- # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which -- # passes them in float registers (s0, s1, ...) and double registers -- # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer -- # sets the preprocessor defines __ARM_PCS (for the first case) and -- # __ARM_PCS_VFP (for the second case), but older GCC does not. -- echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c -- # Look for a reference to the register d0 in the .s file. -- AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 -- if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then -- gl_cv_host_cpu_c_abi=armhf -- else -- gl_cv_host_cpu_c_abi=arm -- fi -- rm -fr conftest* -- ]) -- ;; -- -- hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) -- # On hppa, the C compiler may be generating 32-bit code or 64-bit -- # code. In the latter case, it defines _LP64 and __LP64__. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#ifdef __LP64__ -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=hppa64], -- [gl_cv_host_cpu_c_abi=hppa]) -- ;; -- -- ia64* ) -- # On ia64 on HP-UX, the C compiler may be generating 64-bit code or -- # 32-bit code. In the latter case, it defines _ILP32. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#ifdef _ILP32 -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=ia64-ilp32], -- [gl_cv_host_cpu_c_abi=ia64]) -- ;; -- -- mips* ) -- # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this -- # at 32. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=mips64], -- [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but -- # may later get defined by ), and _MIPS_SIM == _ABIN32. -- # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but -- # may later get defined by ), and _MIPS_SIM == _ABIO32. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if (_MIPS_SIM == _ABIN32) -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=mipsn32], -- [gl_cv_host_cpu_c_abi=mips])]) -- ;; -- -- powerpc* ) -- # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. -- # No need to distinguish them here; the caller may distinguish -- # them based on the OS. -- # On powerpc64 systems, the C compiler may still be generating -- # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may -- # be generating 64-bit code. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __powerpc64__ || defined __LP64__ -- int ok; -- #else -- error fail -- #endif -- ]])], -- [# On powerpc64, there are two ABIs on Linux: The AIX compatible -- # one and the ELFv2 one. The latter defines _CALL_ELF=2. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined _CALL_ELF && _CALL_ELF == 2 -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=powerpc64-elfv2], -- [gl_cv_host_cpu_c_abi=powerpc64]) -- ], -- [gl_cv_host_cpu_c_abi=powerpc]) -- ;; -- -- rs6000 ) -- gl_cv_host_cpu_c_abi=powerpc -- ;; -- -- riscv32 | riscv64 ) -- # There are 2 architectures (with variants): rv32* and rv64*. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if __riscv_xlen == 64 -- int ok; -- #else -- error fail -- #endif -- ]])], -- [cpu=riscv64], -- [cpu=riscv32]) -- # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. -- # Size of 'long' and 'void *': -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __LP64__ -- int ok; -- #else -- error fail -- #endif -- ]])], -- [main_abi=lp64], -- [main_abi=ilp32]) -- # Float ABIs: -- # __riscv_float_abi_double: -- # 'float' and 'double' are passed in floating-point registers. -- # __riscv_float_abi_single: -- # 'float' are passed in floating-point registers. -- # __riscv_float_abi_soft: -- # No values are passed in floating-point registers. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __riscv_float_abi_double -- int ok; -- #else -- error fail -- #endif -- ]])], -- [float_abi=d], -- [AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __riscv_float_abi_single -- int ok; -- #else -- error fail -- #endif -- ]])], -- [float_abi=f], -- [float_abi='']) -- ]) -- gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" -- ;; -- -- s390* ) -- # On s390x, the C compiler may be generating 64-bit (= s390x) code -- # or 31-bit (= s390) code. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __LP64__ || defined __s390x__ -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=s390x], -- [gl_cv_host_cpu_c_abi=s390]) -- ;; -- -- sparc | sparc64 ) -- # UltraSPARCs running Linux have `uname -m` = "sparc64", but the -- # C compiler still generates 32-bit code. -- AC_COMPILE_IFELSE( -- [AC_LANG_SOURCE( -- [[#if defined __sparcv9 || defined __arch64__ -- int ok; -- #else -- error fail -- #endif -- ]])], -- [gl_cv_host_cpu_c_abi=sparc64], -- [gl_cv_host_cpu_c_abi=sparc]) -- ;; -- -- *) -- gl_cv_host_cpu_c_abi="$host_cpu" -- ;; -- esac -- ]) -- -- dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. -- HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` -- HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" -- AC_SUBST([HOST_CPU]) -- AC_SUBST([HOST_CPU_C_ABI]) -- -- # This was -- # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) -- # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) -- # earlier, but KAI C++ 3.2d doesn't like this. -- sed -e 's/-/_/g' >> confdefs.h <. --dnl Don't make changes that are incompatible with that documentation! -- --AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], --[ -- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. -- AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) -- AC_REQUIRE([AC_LIB_RPATH]) -- -- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV -- dnl accordingly. -- AC_LIB_LINKFLAGS_BODY([iconv]) --]) -- --AC_DEFUN([AM_ICONV_LINK], --[ -- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and -- dnl those with the standalone portable GNU libiconv installed). -- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles -- -- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV -- dnl accordingly. -- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) -- -- dnl Add $INCICONV to CPPFLAGS before performing the following checks, -- dnl because if the user has installed libiconv and not disabled its use -- dnl via --without-libiconv-prefix, he wants to use it. The first -- dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. -- gl_saved_CPPFLAGS="$CPPFLAGS" -- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) -- -- AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ -- am_cv_func_iconv="no, consider installing GNU libiconv" -- am_cv_lib_iconv=no -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#include -- ]], -- [[iconv_t cd = iconv_open("",""); -- iconv(cd,NULL,NULL,NULL,NULL); -- iconv_close(cd);]])], -- [am_cv_func_iconv=yes]) -- if test "$am_cv_func_iconv" != yes; then -- gl_saved_LIBS="$LIBS" -- LIBS="$LIBS $LIBICONV" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#include -- ]], -- [[iconv_t cd = iconv_open("",""); -- iconv(cd,NULL,NULL,NULL,NULL); -- iconv_close(cd);]])], -- [am_cv_lib_iconv=yes] -- [am_cv_func_iconv=yes]) -- LIBS="$gl_saved_LIBS" -- fi -- ]) -- if test "$am_cv_func_iconv" = yes; then -- AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ -- dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, -- dnl Solaris 10, macOS 14.4. -- gl_saved_LIBS="$LIBS" -- if test $am_cv_lib_iconv = yes; then -- LIBS="$LIBS $LIBICONV" -- fi -- am_cv_func_iconv_works=no -- for ac_iconv_const in '' 'const'; do -- AC_RUN_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#include -- --#ifndef ICONV_CONST --# define ICONV_CONST $ac_iconv_const --#endif -- ]], -- [[int result = 0; -- /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from -- successful returns. This is even documented in -- */ -- { -- iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); -- if (cd_utf8_to_88591 != (iconv_t)(-1)) -- { -- static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ -- char buf[10]; -- ICONV_CONST char *inptr = input; -- size_t inbytesleft = strlen (input); -- char *outptr = buf; -- size_t outbytesleft = sizeof (buf); -- size_t res = iconv (cd_utf8_to_88591, -- &inptr, &inbytesleft, -- &outptr, &outbytesleft); -- if (res == 0) -- result |= 1; -- iconv_close (cd_utf8_to_88591); -- } -- } -- /* Test against macOS 14.4 bug: Failures are not distinguishable from -- successful returns. -- POSIX:2018 says: "The iconv() function shall ... return the number of -- non-identical conversions performed." -- But here, the conversion always does transliteration (the suffixes -- "//TRANSLIT" and "//IGNORE" have no effect, nor does iconvctl()) and -- does not report when it does a non-identical conversion. */ -- { -- iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8"); -- if (cd_utf8_to_88591 != (iconv_t)(-1)) -- { -- static ICONV_CONST char input[] = "\305\202"; /* LATIN SMALL LETTER L WITH STROKE */ -- char buf[10]; -- ICONV_CONST char *inptr = input; -- size_t inbytesleft = strlen (input); -- char *outptr = buf; -- size_t outbytesleft = sizeof (buf); -- size_t res = iconv (cd_utf8_to_88591, -- &inptr, &inbytesleft, -- &outptr, &outbytesleft); -- /* Here: -- With glibc, GNU libiconv (including macOS up to 13): res == (size_t)-1, errno == EILSEQ. -- With musl libc, NetBSD 10, Solaris 11: res == 1. -- With macOS 14.4: res == 0, output is "l". */ -- if (res == 0) -- result |= 2; -- iconv_close (cd_utf8_to_88591); -- } -- } -- /* Test against Solaris 10 bug: Failures are not distinguishable from -- successful returns. */ -- { -- iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); -- if (cd_ascii_to_88591 != (iconv_t)(-1)) -- { -- static ICONV_CONST char input[] = "\263"; -- char buf[10]; -- ICONV_CONST char *inptr = input; -- size_t inbytesleft = strlen (input); -- char *outptr = buf; -- size_t outbytesleft = sizeof (buf); -- size_t res = iconv (cd_ascii_to_88591, -- &inptr, &inbytesleft, -- &outptr, &outbytesleft); -- if (res == 0) -- result |= 4; -- iconv_close (cd_ascii_to_88591); -- } -- } -- /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ -- { -- iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); -- if (cd_88591_to_utf8 != (iconv_t)(-1)) -- { -- static ICONV_CONST char input[] = "\304"; -- static char buf[2] = { (char)0xDE, (char)0xAD }; -- ICONV_CONST char *inptr = input; -- size_t inbytesleft = 1; -- char *outptr = buf; -- size_t outbytesleft = 1; -- size_t res = iconv (cd_88591_to_utf8, -- &inptr, &inbytesleft, -- &outptr, &outbytesleft); -- if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) -- result |= 8; -- iconv_close (cd_88591_to_utf8); -- } -- } --#if 0 /* This bug could be worked around by the caller. */ -- /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ -- { -- iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); -- if (cd_88591_to_utf8 != (iconv_t)(-1)) -- { -- static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; -- char buf[50]; -- ICONV_CONST char *inptr = input; -- size_t inbytesleft = strlen (input); -- char *outptr = buf; -- size_t outbytesleft = sizeof (buf); -- size_t res = iconv (cd_88591_to_utf8, -- &inptr, &inbytesleft, -- &outptr, &outbytesleft); -- if ((int)res > 0) -- result |= 16; -- iconv_close (cd_88591_to_utf8); -- } -- } --#endif -- /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is -- provided. */ -- { -- /* Try standardized names. */ -- iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); -- /* Try IRIX, OSF/1 names. */ -- iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); -- /* Try AIX names. */ -- iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); -- /* Try HP-UX names. */ -- iconv_t cd4 = iconv_open ("utf8", "eucJP"); -- if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) -- && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) -- result |= 32; -- if (cd1 != (iconv_t)(-1)) -- iconv_close (cd1); -- if (cd2 != (iconv_t)(-1)) -- iconv_close (cd2); -- if (cd3 != (iconv_t)(-1)) -- iconv_close (cd3); -- if (cd4 != (iconv_t)(-1)) -- iconv_close (cd4); -- } -- return result; --]])], -- [am_cv_func_iconv_works=yes], , -- [case "$host_os" in -- aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; -- *) am_cv_func_iconv_works="guessing yes" ;; -- esac]) -- test "$am_cv_func_iconv_works" = no || break -- done -- LIBS="$gl_saved_LIBS" -- ]) -- case "$am_cv_func_iconv_works" in -- *no) am_func_iconv=no am_cv_lib_iconv=no ;; -- *) am_func_iconv=yes ;; -- esac -- else -- am_func_iconv=no am_cv_lib_iconv=no -- fi -- if test "$am_func_iconv" = yes; then -- AC_DEFINE([HAVE_ICONV], [1], -- [Define if you have the iconv() function and it works.]) -- fi -- if test "$am_cv_lib_iconv" = yes; then -- AC_MSG_CHECKING([how to link with libiconv]) -- AC_MSG_RESULT([$LIBICONV]) -- else -- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV -- dnl either. -- CPPFLAGS="$gl_saved_CPPFLAGS" -- LIBICONV= -- LTLIBICONV= -- fi -- AC_SUBST([LIBICONV]) -- AC_SUBST([LTLIBICONV]) --]) -- --dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like --dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". --AC_DEFUN_ONCE([AM_ICONV], --[ -- AM_ICONV_LINK -- if test "$am_cv_func_iconv" = yes; then -- AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], -- [gl_cv_iconv_nonconst], -- [AC_COMPILE_IFELSE( -- [AC_LANG_PROGRAM( -- [[ --#include --#include --extern --#ifdef __cplusplus --"C" --#endif --size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -- ]], -- [[]])], -- [gl_cv_iconv_nonconst=yes], -- [gl_cv_iconv_nonconst=no]) -- ]) -- else -- dnl When compiling GNU libiconv on a system that does not have iconv yet, -- dnl pick the POSIX compliant declaration without 'const'. -- gl_cv_iconv_nonconst=yes -- fi -- if test $gl_cv_iconv_nonconst = yes; then -- iconv_arg1="" -- else -- iconv_arg1="const" -- fi -- AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], -- [Define as const if the declaration of iconv() needs const.]) -- dnl Also substitute ICONV_CONST in the gnulib generated . -- m4_ifdef([gl_ICONV_H_DEFAULTS], -- [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) -- if test $gl_cv_iconv_nonconst != yes; then -- ICONV_CONST="const" -- fi -- ]) -- -- dnl A summary result, for those packages which want to print a summary at the -- dnl end of the configuration. -- if test "$am_func_iconv" = yes; then -- if test -n "$LIBICONV"; then -- am_cv_func_iconv_summary='yes, in libiconv' -- else -- am_cv_func_iconv_summary='yes, in libc' -- fi -- else -- if test "$am_cv_func_iconv" = yes; then -- am_cv_func_iconv_summary='not working, consider installing GNU libiconv' -- else -- am_cv_func_iconv_summary='no, consider installing GNU libiconv' -- fi -- fi --]) -diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 -deleted file mode 100644 -index f0920d0f..00000000 ---- a/m4/intlmacosx.m4 -+++ /dev/null -@@ -1,71 +0,0 @@ --# intlmacosx.m4 --# serial 10 (gettext-0.23) --dnl Copyright (C) 2004-2014, 2016, 2019-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. --dnl --dnl This file can be used in projects which are not available under --dnl the GNU General Public License or the GNU Lesser General Public --dnl License but which still want to provide support for the GNU gettext --dnl functionality. --dnl Please note that the actual code of the GNU gettext library is covered --dnl by the GNU Lesser General Public License, and the rest of the GNU --dnl gettext package is covered by the GNU General Public License. --dnl They are *not* in the public domain. -- --dnl Checks for special options needed on Mac OS X. --dnl Defines INTL_MACOSX_LIBS. --AC_DEFUN([gt_INTL_MACOSX], --[ -- dnl Check for API introduced in Mac OS X 10.4. -- AC_CACHE_CHECK([for CFPreferencesCopyAppValue], -- [gt_cv_func_CFPreferencesCopyAppValue], -- [gt_saved_LIBS="$LIBS" -- LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[#include ]], -- [[CFPreferencesCopyAppValue(NULL, NULL)]])], -- [gt_cv_func_CFPreferencesCopyAppValue=yes], -- [gt_cv_func_CFPreferencesCopyAppValue=no]) -- LIBS="$gt_saved_LIBS"]) -- if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then -- AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], -- [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) -- fi -- dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, -- dnl because in macOS 10.13.4 it has the following behaviour: -- dnl When two or more languages are specified in the -- dnl "System Preferences > Language & Region > Preferred Languages" panel, -- dnl it returns en_CC where CC is the territory (even when English is not among -- dnl the preferred languages!). What we want instead is what -- dnl CFLocaleCopyCurrent returned in earlier macOS releases and what -- dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the -- dnl first among the preferred languages and CC is the territory. -- AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], -- [gt_saved_LIBS="$LIBS" -- LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [[#include ]], -- [[CFLocaleCopyPreferredLanguages();]])], -- [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], -- [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) -- LIBS="$gt_saved_LIBS"]) -- if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then -- AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], -- [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) -- fi -- INTL_MACOSX_LIBS= -- if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ -- || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then -- dnl Starting with macOS version 14, CoreFoundation relies on CoreServices, -- dnl and we have to link it in explicitly, otherwise an exception -- dnl NSInvalidArgumentException "unrecognized selector sent to instance" -- dnl occurs. -- INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" -- fi -- AC_SUBST([INTL_MACOSX_LIBS]) --]) -diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 -deleted file mode 100644 -index 3714b9ce..00000000 ---- a/m4/lib-ld.m4 -+++ /dev/null -@@ -1,170 +0,0 @@ --# lib-ld.m4 --# serial 13 --dnl Copyright (C) 1996-2003, 2009-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. -- --dnl Subroutines of libtool.m4, --dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid --dnl collision with libtool.m4. -- --dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. --AC_DEFUN([AC_LIB_PROG_LD_GNU], --[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], --[# I'd rather use --version here, but apparently some GNU lds only accept -v. --case `$LD -v 2>&1 /dev/null 2>&1 \ -- && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ -- || PATH_SEPARATOR=';' -- } --fi -- --if test -n "$LD"; then -- AC_MSG_CHECKING([for ld]) --elif test "$GCC" = yes; then -- AC_MSG_CHECKING([for ld used by $CC]) --elif test "$with_gnu_ld" = yes; then -- AC_MSG_CHECKING([for GNU ld]) --else -- AC_MSG_CHECKING([for non-GNU ld]) --fi --if test -n "$LD"; then -- # Let the user override the test with a path. -- : --else -- AC_CACHE_VAL([acl_cv_path_LD], -- [ -- acl_cv_path_LD= # Final result of this test -- ac_prog=ld # Program to search in $PATH -- if test "$GCC" = yes; then -- # Check if gcc -print-prog-name=ld gives a path. -- case $host in -- *-*-mingw* | windows*) -- # gcc leaves a trailing carriage return which upsets mingw -- acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; -- *) -- acl_output=`($CC -print-prog-name=ld) 2>&5` ;; -- esac -- case $acl_output in -- # Accept absolute paths. -- [[\\/]]* | ?:[[\\/]]*) -- re_direlt='/[[^/]][[^/]]*/\.\./' -- # Canonicalize the pathname of ld -- acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` -- while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do -- acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` -- done -- # Got the pathname. No search in PATH is needed. -- acl_cv_path_LD="$acl_output" -- ac_prog= -- ;; -- "") -- # If it fails, then pretend we aren't using GCC. -- ;; -- *) -- # If it is relative, then search for the first ld in PATH. -- with_gnu_ld=unknown -- ;; -- esac -- fi -- if test -n "$ac_prog"; then -- # Search for $ac_prog in $PATH. -- acl_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in $PATH; do -- IFS="$acl_saved_IFS" -- test -z "$ac_dir" && ac_dir=. -- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then -- acl_cv_path_LD="$ac_dir/$ac_prog" -- # Check to see if the program is GNU ld. I'd rather use --version, -- # but apparently some variants of GNU ld only accept -v. -- # Break only if it was the GNU/non-GNU ld that we prefer. -- case `"$acl_cv_path_LD" -v 2>&1 conftest.sh -- . ./conftest.sh -- rm -f ./conftest.sh -- acl_cv_rpath=done -- ]) -- wl="$acl_cv_wl" -- acl_libext="$acl_cv_libext" -- acl_shlibext="$acl_cv_shlibext" -- acl_libname_spec="$acl_cv_libname_spec" -- acl_library_names_spec="$acl_cv_library_names_spec" -- acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" -- acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" -- acl_hardcode_direct="$acl_cv_hardcode_direct" -- acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" -- dnl Determine whether the user wants rpath handling at all. -- AC_ARG_ENABLE([rpath], -- [ --disable-rpath do not hardcode runtime library paths], -- :, enable_rpath=yes) --]) -- --dnl AC_LIB_FROMPACKAGE(name, package) --dnl declares that libname comes from the given package. The configure file --dnl will then not have a --with-libname-prefix option but a --dnl --with-package-prefix option. Several libraries can come from the same --dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar --dnl macro call that searches for libname. --AC_DEFUN([AC_LIB_FROMPACKAGE], --[ -- pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], -- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -- define([acl_frompackage_]NAME, [$2]) -- popdef([NAME]) -- pushdef([PACK],[$2]) -- pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], -- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -- define([acl_libsinpackage_]PACKUP, -- m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[[, ]]],)[lib$1]) -- popdef([PACKUP]) -- popdef([PACK]) --]) -- --dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and --dnl the libraries corresponding to explicit and implicit dependencies. --dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. --dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found --dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. --AC_DEFUN([AC_LIB_LINKFLAGS_BODY], --[ -- AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) -- pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], -- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -- pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) -- pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], -- [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -- pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) -- dnl By default, look in $includedir and $libdir. -- use_additional=yes -- AC_LIB_WITH_FINAL_PREFIX([ -- eval additional_includedir=\"$includedir\" -- eval additional_libdir=\"$libdir\" -- eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" -- eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" -- ]) -- AC_ARG_WITH(PACK[-prefix], --[[ --with-]]PACK[[-prefix[=DIR] search for ]]PACKLIBS[[ in DIR/include and DIR/lib -- --without-]]PACK[[-prefix don't search for ]]PACKLIBS[[ in includedir and libdir]], --[ -- if test "X$withval" = "Xno"; then -- use_additional=no -- else -- if test "X$withval" = "X"; then -- AC_LIB_WITH_FINAL_PREFIX([ -- eval additional_includedir=\"$includedir\" -- eval additional_libdir=\"$libdir\" -- eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" -- eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" -- ]) -- else -- additional_includedir="$withval/include" -- additional_libdir="$withval/$acl_libdirstem" -- additional_libdir2="$withval/$acl_libdirstem2" -- additional_libdir3="$withval/$acl_libdirstem3" -- fi -- fi --]) -- if test "X$additional_libdir2" = "X$additional_libdir"; then -- additional_libdir2= -- fi -- if test "X$additional_libdir3" = "X$additional_libdir"; then -- additional_libdir3= -- fi -- dnl Search the library and its dependencies in $additional_libdir and -- dnl $LDFLAGS. Use breadth-first search. -- LIB[]NAME= -- LTLIB[]NAME= -- INC[]NAME= -- LIB[]NAME[]_PREFIX= -- dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been -- dnl computed. So it has to be reset here. -- HAVE_LIB[]NAME= -- rpathdirs= -- ltrpathdirs= -- names_already_handled= -- names_next_round='$1 $2' -- while test -n "$names_next_round"; do -- names_this_round="$names_next_round" -- names_next_round= -- for name in $names_this_round; do -- already_handled= -- for n in $names_already_handled; do -- if test "$n" = "$name"; then -- already_handled=yes -- break -- fi -- done -- if test -z "$already_handled"; then -- names_already_handled="$names_already_handled $name" -- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS -- dnl or AC_LIB_HAVE_LINKFLAGS call. -- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` -- eval value=\"\$HAVE_LIB$uppername\" -- if test -n "$value"; then -- if test "$value" = yes; then -- eval value=\"\$LIB$uppername\" -- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" -- eval value=\"\$LTLIB$uppername\" -- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" -- else -- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined -- dnl that this library doesn't exist. So just drop it. -- : -- fi -- else -- dnl Search the library lib$name in $additional_libdir and $LDFLAGS -- dnl and the already constructed $LIBNAME/$LTLIBNAME. -- found_dir= -- found_la= -- found_so= -- found_a= -- eval libname=\"$acl_libname_spec\" # typically: libname=lib$name -- if test -n "$acl_shlibext"; then -- shrext=".$acl_shlibext" # typically: shrext=.so -- else -- shrext= -- fi -- if test $use_additional = yes; then -- for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do -- if test "X$found_dir" = "X"; then -- eval dir=\$$additional_libdir_variable -- if test -n "$dir"; then -- dnl The same code as in the loop below: -- dnl First look for a shared library. -- if test -n "$acl_shlibext"; then -- if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then -- found_dir="$dir" -- found_so="$dir/$libname$shrext" -- else -- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then -- ver=`(cd "$dir" && \ -- for f in "$libname$shrext".*; do echo "$f"; done \ -- | sed -e "s,^$libname$shrext\\\\.,," \ -- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ -- | sed 1q ) 2>/dev/null` -- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then -- found_dir="$dir" -- found_so="$dir/$libname$shrext.$ver" -- fi -- else -- eval library_names=\"$acl_library_names_spec\" -- for f in $library_names; do -- if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then -- found_dir="$dir" -- found_so="$dir/$f" -- break -- fi -- done -- fi -- fi -- fi -- dnl Then look for a static library. -- if test "X$found_dir" = "X"; then -- if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then -- found_dir="$dir" -- found_a="$dir/$libname.$acl_libext" -- fi -- fi -- if test "X$found_dir" != "X"; then -- if test -f "$dir/$libname.la"; then -- found_la="$dir/$libname.la" -- fi -- fi -- fi -- fi -- done -- fi -- if test "X$found_dir" = "X"; then -- for x in $LDFLAGS $LTLIB[]NAME; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- case "$x" in -- -L*) -- dir=`echo "X$x" | sed -e 's/^X-L//'` -- dnl First look for a shared library. -- if test -n "$acl_shlibext"; then -- if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then -- found_dir="$dir" -- found_so="$dir/$libname$shrext" -- else -- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then -- ver=`(cd "$dir" && \ -- for f in "$libname$shrext".*; do echo "$f"; done \ -- | sed -e "s,^$libname$shrext\\\\.,," \ -- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ -- | sed 1q ) 2>/dev/null` -- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then -- found_dir="$dir" -- found_so="$dir/$libname$shrext.$ver" -- fi -- else -- eval library_names=\"$acl_library_names_spec\" -- for f in $library_names; do -- if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then -- found_dir="$dir" -- found_so="$dir/$f" -- break -- fi -- done -- fi -- fi -- fi -- dnl Then look for a static library. -- if test "X$found_dir" = "X"; then -- if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then -- found_dir="$dir" -- found_a="$dir/$libname.$acl_libext" -- fi -- fi -- if test "X$found_dir" != "X"; then -- if test -f "$dir/$libname.la"; then -- found_la="$dir/$libname.la" -- fi -- fi -- ;; -- esac -- if test "X$found_dir" != "X"; then -- break -- fi -- done -- fi -- if test "X$found_dir" != "X"; then -- dnl Found the library. -- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" -- if test "X$found_so" != "X"; then -- dnl Linking with a shared library. We attempt to hardcode its -- dnl directory into the executable's runpath, unless it's the -- dnl standard /usr/lib. -- if test "$enable_rpath" = no \ -- || test "X$found_dir" = "X/usr/$acl_libdirstem" \ -- || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ -- || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then -- dnl No hardcoding is needed. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -- else -- dnl Use an explicit option to hardcode DIR into the resulting -- dnl binary. -- dnl Potentially add DIR to ltrpathdirs. -- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. -- haveit= -- for x in $ltrpathdirs; do -- if test "X$x" = "X$found_dir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- ltrpathdirs="$ltrpathdirs $found_dir" -- fi -- dnl The hardcoding into $LIBNAME is system dependent. -- if test "$acl_hardcode_direct" = yes; then -- dnl Using DIR/libNAME.so during linking hardcodes DIR into the -- dnl resulting binary. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -- else -- if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then -- dnl Use an explicit option to hardcode DIR into the resulting -- dnl binary. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -- dnl Potentially add DIR to rpathdirs. -- dnl The rpathdirs will be appended to $LIBNAME at the end. -- haveit= -- for x in $rpathdirs; do -- if test "X$x" = "X$found_dir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- rpathdirs="$rpathdirs $found_dir" -- fi -- else -- dnl Rely on "-L$found_dir". -- dnl But don't add it if it's already contained in the LDFLAGS -- dnl or the already constructed $LIBNAME -- haveit= -- for x in $LDFLAGS $LIB[]NAME; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X-L$found_dir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" -- fi -- if test "$acl_hardcode_minus_L" != no; then -- dnl FIXME: Not sure whether we should use -- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" -- dnl here. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -- else -- dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH -- dnl here, because this doesn't fit in flags passed to the -- dnl compiler. So give up. No hardcoding. This affects only -- dnl very old systems. -- dnl FIXME: Not sure whether we should use -- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" -- dnl here. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" -- fi -- fi -- fi -- fi -- else -- if test "X$found_a" != "X"; then -- dnl Linking with a static library. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" -- else -- dnl We shouldn't come here, but anyway it's good to have a -- dnl fallback. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" -- fi -- fi -- dnl Assume the include files are nearby. -- additional_includedir= -- case "$found_dir" in -- */$acl_libdirstem | */$acl_libdirstem/) -- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` -- if test "$name" = '$1'; then -- LIB[]NAME[]_PREFIX="$basedir" -- fi -- additional_includedir="$basedir/include" -- ;; -- */$acl_libdirstem2 | */$acl_libdirstem2/) -- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` -- if test "$name" = '$1'; then -- LIB[]NAME[]_PREFIX="$basedir" -- fi -- additional_includedir="$basedir/include" -- ;; -- */$acl_libdirstem3 | */$acl_libdirstem3/) -- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` -- if test "$name" = '$1'; then -- LIB[]NAME[]_PREFIX="$basedir" -- fi -- additional_includedir="$basedir/include" -- ;; -- esac -- if test "X$additional_includedir" != "X"; then -- dnl Potentially add $additional_includedir to $INCNAME. -- dnl But don't add it -- dnl 1. if it's the standard /usr/include, -- dnl 2. if it's /usr/local/include and we are using GCC on Linux, -- dnl 3. if it's already present in $CPPFLAGS or the already -- dnl constructed $INCNAME, -- dnl 4. if it doesn't exist as a directory. -- if test "X$additional_includedir" != "X/usr/include"; then -- haveit= -- if test "X$additional_includedir" = "X/usr/local/include"; then -- if test -n "$GCC"; then -- case $host_os in -- linux* | gnu* | k*bsd*-gnu) haveit=yes;; -- esac -- fi -- fi -- if test -z "$haveit"; then -- for x in $CPPFLAGS $INC[]NAME; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X-I$additional_includedir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- if test -d "$additional_includedir"; then -- dnl Really add $additional_includedir to $INCNAME. -- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" -- fi -- fi -- fi -- fi -- fi -- dnl Look for dependencies. -- if test -n "$found_la"; then -- dnl Read the .la file. It defines the variables -- dnl dlname, library_names, old_library, dependency_libs, current, -- dnl age, revision, installed, dlopen, dlpreopen, libdir. -- saved_libdir="$libdir" -- case "$found_la" in -- */* | *\\*) . "$found_la" ;; -- *) . "./$found_la" ;; -- esac -- libdir="$saved_libdir" -- dnl We use only dependency_libs. -- for dep in $dependency_libs; do -- case "$dep" in -- -L*) -- dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` -- dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. -- dnl But don't add it -- dnl 1. if it's the standard /usr/lib, -- dnl 2. if it's /usr/local/lib and we are using GCC on Linux, -- dnl 3. if it's already present in $LDFLAGS or the already -- dnl constructed $LIBNAME, -- dnl 4. if it doesn't exist as a directory. -- if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ -- && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ -- && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then -- haveit= -- if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ -- || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ -- || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then -- if test -n "$GCC"; then -- case $host_os in -- linux* | gnu* | k*bsd*-gnu) haveit=yes;; -- esac -- fi -- fi -- if test -z "$haveit"; then -- haveit= -- for x in $LDFLAGS $LIB[]NAME; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X-L$dependency_libdir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- if test -d "$dependency_libdir"; then -- dnl Really add $dependency_libdir to $LIBNAME. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" -- fi -- fi -- haveit= -- for x in $LDFLAGS $LTLIB[]NAME; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X-L$dependency_libdir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- if test -d "$dependency_libdir"; then -- dnl Really add $dependency_libdir to $LTLIBNAME. -- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" -- fi -- fi -- fi -- fi -- ;; -- -R*) -- dir=`echo "X$dep" | sed -e 's/^X-R//'` -- if test "$enable_rpath" != no; then -- dnl Potentially add DIR to rpathdirs. -- dnl The rpathdirs will be appended to $LIBNAME at the end. -- haveit= -- for x in $rpathdirs; do -- if test "X$x" = "X$dir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- rpathdirs="$rpathdirs $dir" -- fi -- dnl Potentially add DIR to ltrpathdirs. -- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. -- haveit= -- for x in $ltrpathdirs; do -- if test "X$x" = "X$dir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- ltrpathdirs="$ltrpathdirs $dir" -- fi -- fi -- ;; -- -l*) -- dnl Handle this in the next round. -- dnl But on GNU systems, ignore -lc options, because -- dnl - linking with libc is the default anyway, -- dnl - linking with libc.a may produce an error -- dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" -- dnl or may produce an executable that always crashes, see -- dnl . -- dep=`echo "X$dep" | sed -e 's/^X-l//'` -- if test "X$dep" != Xc \ -- || case $host_os in -- linux* | gnu* | k*bsd*-gnu) false ;; -- *) true ;; -- esac; then -- names_next_round="$names_next_round $dep" -- fi -- ;; -- *.la) -- dnl Handle this in the next round. Throw away the .la's -- dnl directory; it is already contained in a preceding -L -- dnl option. -- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` -- ;; -- *) -- dnl Most likely an immediate library name. -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" -- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" -- ;; -- esac -- done -- fi -- else -- dnl Didn't find the library; assume it is in the system directories -- dnl known to the linker and runtime loader. (All the system -- dnl directories known to the linker should also be known to the -- dnl runtime loader, otherwise the system is severely misconfigured.) -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" -- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" -- fi -- fi -- fi -- done -- done -- if test "X$rpathdirs" != "X"; then -- if test -n "$acl_hardcode_libdir_separator"; then -- dnl Weird platform: only the last -rpath option counts, the user must -- dnl pass all path elements in one option. We can arrange that for a -- dnl single library, but not when more than one $LIBNAMEs are used. -- alldirs= -- for found_dir in $rpathdirs; do -- alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" -- done -- dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. -- acl_saved_libdir="$libdir" -- libdir="$alldirs" -- eval flag=\"$acl_hardcode_libdir_flag_spec\" -- libdir="$acl_saved_libdir" -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" -- else -- dnl The -rpath options are cumulative. -- for found_dir in $rpathdirs; do -- acl_saved_libdir="$libdir" -- libdir="$found_dir" -- eval flag=\"$acl_hardcode_libdir_flag_spec\" -- libdir="$acl_saved_libdir" -- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" -- done -- fi -- fi -- if test "X$ltrpathdirs" != "X"; then -- dnl When using libtool, the option that works for both libraries and -- dnl executables is -R. The -R options are cumulative. -- for found_dir in $ltrpathdirs; do -- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" -- done -- fi -- popdef([PACKLIBS]) -- popdef([PACKUP]) -- popdef([PACK]) -- popdef([NAME]) --]) -- --dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, --dnl unless already present in VAR. --dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes --dnl contains two or three consecutive elements that belong together. --AC_DEFUN([AC_LIB_APPENDTOVAR], --[ -- for element in [$2]; do -- haveit= -- for x in $[$1]; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X$element"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- [$1]="${[$1]}${[$1]:+ }$element" -- fi -- done --]) -- --dnl For those cases where a variable contains several -L and -l options --dnl referring to unknown libraries and directories, this macro determines the --dnl necessary additional linker options for the runtime path. --dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) --dnl sets LDADDVAR to linker options needed together with LIBSVALUE. --dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, --dnl otherwise linking without libtool is assumed. --AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], --[ -- AC_REQUIRE([AC_LIB_RPATH]) -- AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) -- $1= -- if test "$enable_rpath" != no; then -- if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then -- dnl Use an explicit option to hardcode directories into the resulting -- dnl binary. -- rpathdirs= -- next= -- for opt in $2; do -- if test -n "$next"; then -- dir="$next" -- dnl No need to hardcode the standard /usr/lib. -- if test "X$dir" != "X/usr/$acl_libdirstem" \ -- && test "X$dir" != "X/usr/$acl_libdirstem2" \ -- && test "X$dir" != "X/usr/$acl_libdirstem3"; then -- rpathdirs="$rpathdirs $dir" -- fi -- next= -- else -- case $opt in -- -L) next=yes ;; -- -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` -- dnl No need to hardcode the standard /usr/lib. -- if test "X$dir" != "X/usr/$acl_libdirstem" \ -- && test "X$dir" != "X/usr/$acl_libdirstem2" \ -- && test "X$dir" != "X/usr/$acl_libdirstem3"; then -- rpathdirs="$rpathdirs $dir" -- fi -- next= ;; -- *) next= ;; -- esac -- fi -- done -- if test "X$rpathdirs" != "X"; then -- if test -n ""$3""; then -- dnl libtool is used for linking. Use -R options. -- for dir in $rpathdirs; do -- $1="${$1}${$1:+ }-R$dir" -- done -- else -- dnl The linker is used for linking directly. -- if test -n "$acl_hardcode_libdir_separator"; then -- dnl Weird platform: only the last -rpath option counts, the user -- dnl must pass all path elements in one option. -- alldirs= -- for dir in $rpathdirs; do -- alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" -- done -- acl_saved_libdir="$libdir" -- libdir="$alldirs" -- eval flag=\"$acl_hardcode_libdir_flag_spec\" -- libdir="$acl_saved_libdir" -- $1="$flag" -- else -- dnl The -rpath options are cumulative. -- for dir in $rpathdirs; do -- acl_saved_libdir="$libdir" -- libdir="$dir" -- eval flag=\"$acl_hardcode_libdir_flag_spec\" -- libdir="$acl_saved_libdir" -- $1="${$1}${$1:+ }$flag" -- done -- fi -- fi -- fi -- fi -- fi -- AC_SUBST([$1]) --]) -diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 -deleted file mode 100644 -index 29283534..00000000 ---- a/m4/lib-prefix.m4 -+++ /dev/null -@@ -1,334 +0,0 @@ --# lib-prefix.m4 --# serial 23 --dnl Copyright (C) 2001-2005, 2008-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. -- --dnl From Bruno Haible. -- --dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed --dnl to access previously installed libraries. The basic assumption is that --dnl a user will want packages to use other packages he previously installed --dnl with the same --prefix option. --dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate --dnl libraries, but is otherwise very convenient. --AC_DEFUN([AC_LIB_PREFIX], --[ -- AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) -- AC_REQUIRE([AC_PROG_CC]) -- AC_REQUIRE([AC_CANONICAL_HOST]) -- AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) -- AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) -- dnl By default, look in $includedir and $libdir. -- use_additional=yes -- AC_LIB_WITH_FINAL_PREFIX([ -- eval additional_includedir=\"$includedir\" -- eval additional_libdir=\"$libdir\" -- ]) -- AC_ARG_WITH([lib-prefix], --[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib -- --without-lib-prefix don't search for libraries in includedir and libdir]], --[ -- if test "X$withval" = "Xno"; then -- use_additional=no -- else -- if test "X$withval" = "X"; then -- AC_LIB_WITH_FINAL_PREFIX([ -- eval additional_includedir=\"$includedir\" -- eval additional_libdir=\"$libdir\" -- ]) -- else -- additional_includedir="$withval/include" -- additional_libdir="$withval/$acl_libdirstem" -- fi -- fi --]) -- if test $use_additional = yes; then -- dnl Potentially add $additional_includedir to $CPPFLAGS. -- dnl But don't add it -- dnl 1. if it's the standard /usr/include, -- dnl 2. if it's already present in $CPPFLAGS, -- dnl 3. if it's /usr/local/include and we are using GCC on Linux, -- dnl 4. if it doesn't exist as a directory. -- if test "X$additional_includedir" != "X/usr/include"; then -- haveit= -- for x in $CPPFLAGS; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X-I$additional_includedir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- if test "X$additional_includedir" = "X/usr/local/include"; then -- if test -n "$GCC"; then -- case $host_os in -- linux* | gnu* | k*bsd*-gnu) haveit=yes;; -- esac -- fi -- fi -- if test -z "$haveit"; then -- if test -d "$additional_includedir"; then -- dnl Really add $additional_includedir to $CPPFLAGS. -- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" -- fi -- fi -- fi -- fi -- dnl Potentially add $additional_libdir to $LDFLAGS. -- dnl But don't add it -- dnl 1. if it's the standard /usr/lib, -- dnl 2. if it's already present in $LDFLAGS, -- dnl 3. if it's /usr/local/lib and we are using GCC on Linux, -- dnl 4. if it doesn't exist as a directory. -- if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then -- haveit= -- for x in $LDFLAGS; do -- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -- if test "X$x" = "X-L$additional_libdir"; then -- haveit=yes -- break -- fi -- done -- if test -z "$haveit"; then -- if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then -- if test -n "$GCC"; then -- case $host_os in -- linux*) haveit=yes;; -- esac -- fi -- fi -- if test -z "$haveit"; then -- if test -d "$additional_libdir"; then -- dnl Really add $additional_libdir to $LDFLAGS. -- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" -- fi -- fi -- fi -- fi -- fi --]) -- --dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, --dnl acl_final_exec_prefix, containing the values to which $prefix and --dnl $exec_prefix will expand at the end of the configure script. --AC_DEFUN([AC_LIB_PREPARE_PREFIX], --[ -- dnl Unfortunately, prefix and exec_prefix get only finally determined -- dnl at the end of configure. -- if test "X$prefix" = "XNONE"; then -- acl_final_prefix="$ac_default_prefix" -- else -- acl_final_prefix="$prefix" -- fi -- if test "X$exec_prefix" = "XNONE"; then -- acl_final_exec_prefix='${prefix}' -- else -- acl_final_exec_prefix="$exec_prefix" -- fi -- acl_saved_prefix="$prefix" -- prefix="$acl_final_prefix" -- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" -- prefix="$acl_saved_prefix" --]) -- --dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the --dnl variables prefix and exec_prefix bound to the values they will have --dnl at the end of the configure script. --AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], --[ -- acl_saved_prefix="$prefix" -- prefix="$acl_final_prefix" -- acl_saved_exec_prefix="$exec_prefix" -- exec_prefix="$acl_final_exec_prefix" -- $1 -- exec_prefix="$acl_saved_exec_prefix" -- prefix="$acl_saved_prefix" --]) -- --dnl AC_LIB_PREPARE_MULTILIB creates --dnl - a function acl_is_expected_elfclass, that tests whether standard input --dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, --dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing --dnl the basename of the libdir to try in turn, either "lib" or "lib64" or --dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. --AC_DEFUN([AC_LIB_PREPARE_MULTILIB], --[ -- dnl There is no formal standard regarding lib, lib32, and lib64. -- dnl On most glibc systems, the current practice is that on a system supporting -- dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under -- dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on -- dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go -- dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. -- dnl We determine the compiler's default mode by looking at the compiler's -- dnl library search path. If at least one of its elements ends in /lib64 or -- dnl points to a directory whose absolute pathname ends in /lib64, we use that -- dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, -- dnl namely "lib". -- dnl On Solaris systems, the current practice is that on a system supporting -- dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under -- dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or -- dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. -- AC_REQUIRE([AC_CANONICAL_HOST]) -- AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) -- -- AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], -- [AC_EGREP_CPP([Extensible Linking Format], -- [#if defined __ELF__ || (defined __linux__ && (defined __EDG__ || defined __SUNPRO_C)) -- Extensible Linking Format -- #endif -- ], -- [gl_cv_elf=yes], -- [gl_cv_elf=no]) -- ]) -- if test $gl_cv_elf = yes; then -- # Extract the ELF class of a file (5th byte) in decimal. -- # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header -- if od -A x < /dev/null >/dev/null 2>/dev/null; then -- # Use POSIX od. -- func_elfclass () -- { -- od -A n -t d1 -j 4 -N 1 -- } -- else -- # Use BSD hexdump. -- func_elfclass () -- { -- dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' -- echo -- } -- fi -- # Use 'expr', not 'test', to compare the values of func_elfclass, because on -- # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, -- # not 1 or 2. --changequote(,)dnl -- case $HOST_CPU_C_ABI_32BIT in -- yes) -- # 32-bit ABI. -- acl_is_expected_elfclass () -- { -- expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null -- } -- ;; -- no) -- # 64-bit ABI. -- acl_is_expected_elfclass () -- { -- expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null -- } -- ;; -- *) -- # Unknown. -- acl_is_expected_elfclass () -- { -- : -- } -- ;; -- esac --changequote([,])dnl -- else -- acl_is_expected_elfclass () -- { -- : -- } -- fi -- -- dnl Allow the user to override the result by setting acl_cv_libdirstems. -- AC_CACHE_CHECK([for the common suffixes of directories in the library search path], -- [acl_cv_libdirstems], -- [dnl Try 'lib' first, because that's the default for libdir in GNU, see -- dnl . -- acl_libdirstem=lib -- acl_libdirstem2= -- acl_libdirstem3= -- case "$host_os" in -- solaris*) -- dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment -- dnl . -- dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." -- dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the -- dnl symlink is missing, so we set acl_libdirstem2 too. -- if test $HOST_CPU_C_ABI_32BIT = no; then -- acl_libdirstem2=lib/64 -- case "$host_cpu" in -- sparc*) acl_libdirstem3=lib/sparcv9 ;; -- i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; -- esac -- fi -- ;; -- netbsd*) -- dnl On NetBSD/sparc64, there is a 'sparc' subdirectory that contains -- dnl 32-bit libraries. -- if test $HOST_CPU_C_ABI_32BIT != no; then -- case "$host_cpu" in -- sparc*) acl_libdirstem2=lib/sparc ;; -- esac -- fi -- ;; -- *) -- dnl If $CC generates code for a 32-bit ABI, the libraries are -- dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. -- dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries -- dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. -- dnl Find the compiler's search path. However, non-system compilers -- dnl sometimes have odd library search paths. But we can't simply invoke -- dnl '/usr/bin/gcc -print-search-dirs' because that would not take into -- dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. -- searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ -- | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` -- if test $HOST_CPU_C_ABI_32BIT != no; then -- # 32-bit or unknown ABI. -- if test -d /usr/lib32; then -- acl_libdirstem2=lib32 -- fi -- fi -- if test $HOST_CPU_C_ABI_32BIT != yes; then -- # 64-bit or unknown ABI. -- if test -d /usr/lib64; then -- acl_libdirstem3=lib64 -- fi -- fi -- if test -n "$searchpath"; then -- acl_saved_IFS="${IFS= }"; IFS=":" -- for searchdir in $searchpath; do -- if test -d "$searchdir"; then -- case "$searchdir" in -- */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; -- */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; -- */../ | */.. ) -- # Better ignore directories of this form. They are misleading. -- ;; -- *) searchdir=`cd "$searchdir" && pwd` -- case "$searchdir" in -- */lib32 ) acl_libdirstem2=lib32 ;; -- */lib64 ) acl_libdirstem3=lib64 ;; -- esac ;; -- esac -- fi -- done -- IFS="$acl_saved_IFS" -- if test $HOST_CPU_C_ABI_32BIT = yes; then -- # 32-bit ABI. -- acl_libdirstem3= -- fi -- if test $HOST_CPU_C_ABI_32BIT = no; then -- # 64-bit ABI. -- acl_libdirstem2= -- fi -- fi -- ;; -- esac -- test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" -- test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" -- acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" -- ]) -- dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and -- dnl acl_libdirstem3. --changequote(,)dnl -- acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` -- acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` -- acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` --changequote([,])dnl --]) -diff --git a/m4/nls.m4 b/m4/nls.m4 -deleted file mode 100644 -index c4601415..00000000 ---- a/m4/nls.m4 -+++ /dev/null -@@ -1,33 +0,0 @@ --# nls.m4 --# serial 6 (gettext-0.24) --dnl Copyright (C) 1995-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. --dnl --dnl This file can be used in projects which are not available under --dnl the GNU General Public License or the GNU Lesser General Public --dnl License but which still want to provide support for the GNU gettext --dnl functionality. --dnl Please note that the actual code of the GNU gettext library is covered --dnl by the GNU Lesser General Public License, and the rest of the GNU --dnl gettext package is covered by the GNU General Public License. --dnl They are *not* in the public domain. -- --dnl Authors: --dnl Ulrich Drepper , 1995-2000. --dnl Bruno Haible , 2000-2003. -- --AC_PREREQ([2.50]) -- --AC_DEFUN([AM_NLS], --[ -- AC_MSG_CHECKING([whether NLS is requested]) -- dnl Default is enabled NLS -- AC_ARG_ENABLE([nls], -- [ --disable-nls do not use Native Language Support], -- USE_NLS=$enableval, USE_NLS=yes) -- AC_MSG_RESULT([$USE_NLS]) -- AC_SUBST([USE_NLS]) --]) -diff --git a/m4/po.m4 b/m4/po.m4 -deleted file mode 100644 -index 73e0436b..00000000 ---- a/m4/po.m4 -+++ /dev/null -@@ -1,157 +0,0 @@ --# po.m4 --# serial 34 (gettext-0.24) --dnl Copyright (C) 1995-2024 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. --dnl --dnl This file can be used in projects which are not available under --dnl the GNU General Public License or the GNU Lesser General Public --dnl License but which still want to provide support for the GNU gettext --dnl functionality. --dnl Please note that the actual code of the GNU gettext library is covered --dnl by the GNU Lesser General Public License, and the rest of the GNU --dnl gettext package is covered by the GNU General Public License. --dnl They are *not* in the public domain. -- --dnl Authors: --dnl Ulrich Drepper , 1995-2000. --dnl Bruno Haible , 2000-2024. -- --AC_PREREQ([2.60]) -- --dnl Checks for all prerequisites of the po subdirectory. --AC_DEFUN([AM_PO_SUBDIRS], --[ -- AC_REQUIRE([AC_PROG_MAKE_SET])dnl -- AC_REQUIRE([AC_PROG_INSTALL])dnl -- AC_REQUIRE([AC_PROG_MKDIR_P])dnl -- AC_REQUIRE([AC_PROG_SED])dnl -- AC_REQUIRE([AM_NLS])dnl -- -- dnl Release version of the gettext macros. This is used to ensure that -- dnl the gettext macros and po/Makefile.in.in are in sync. -- AC_SUBST([GETTEXT_MACRO_VERSION], [0.24]) -- -- dnl Perform the following tests also if --disable-nls has been given, -- dnl because they are needed for "make dist" to work. -- -- dnl Search for GNU msgfmt in the PATH. -- dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. -- dnl The second test excludes FreeBSD msgfmt. -- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, -- [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && -- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], -- :) -- AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) -- -- dnl Test whether it is GNU msgfmt >= 0.15. --changequote(,)dnl -- case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in -- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; -- *) GMSGFMT_015=$GMSGFMT ;; -- esac --changequote([,])dnl -- AC_SUBST([GMSGFMT_015]) -- -- dnl Search for GNU xgettext 0.12 or newer in the PATH. -- dnl The first test excludes Solaris xgettext and early GNU xgettext versions. -- dnl The second test excludes FreeBSD xgettext. -- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, -- [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && -- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], -- :) -- dnl Remove leftover from FreeBSD xgettext call. -- rm -f messages.po -- -- dnl Test whether it is GNU xgettext >= 0.15. --changequote(,)dnl -- case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in -- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; -- *) XGETTEXT_015=$XGETTEXT ;; -- esac --changequote([,])dnl -- AC_SUBST([XGETTEXT_015]) -- -- dnl Search for GNU msgmerge 0.11 or newer in the PATH. -- AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, -- [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) -- -- dnl Test whether it is GNU msgmerge >= 0.20. -- if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then -- MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' -- else -- dnl Test whether it is GNU msgmerge >= 0.12. -- if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then -- MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' -- else -- dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is -- dnl slow. But this is not a big problem, as such old gettext versions are -- dnl hardly in use any more. -- MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' -- fi -- fi -- AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) -- -- dnl Support for AM_XGETTEXT_OPTION. -- test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= -- AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) -- -- if test -n "$ALL_LINGUAS"; then -- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" -- fi -- -- dnl Capture the value of LINGUAS because we need it to compute CATALOGS. -- dnl In the Makefile, call it DESIRED_LINGUAS (because there, LINGUAS denotes -- dnl the set of available translations, given by the developer). -- DESIRED_LINGUAS="${LINGUAS-\$(ALL_LINGUAS)}" -- AC_SUBST([DESIRED_LINGUAS]) -- -- AC_CONFIG_COMMANDS([po-directories], [[ -- for ac_file in $CONFIG_FILES; do -- # Support "outfile[:infile[:infile...]]" -- case "$ac_file" in -- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; -- esac -- # PO directories have a Makefile.in generated from Makefile.in.in. -- case "$ac_file" in */Makefile.in) -- # Adjust a relative srcdir. -- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` -- ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` -- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` -- # In autoconf-2.13 it is called $ac_given_srcdir. -- # In autoconf-2.50 it is called $srcdir. -- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" -- # Treat a directory as a PO directory if and only if it has a -- # POTFILES.in file. This allows packages to have multiple PO -- # directories under different names or in different locations. -- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then -- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" -- cat "$ac_dir/Makefile.in" > "$ac_dir/Makefile" -- fi -- ;; -- esac -- done]], -- []) --]) -- --dnl Postprocesses a Makefile in a directory containing PO files. --AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], --[ -- sed -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" -- mv "$ac_file.tmp" "$ac_file" --]) -- --dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. --AC_DEFUN([AM_XGETTEXT_OPTION_INIT], --[ -- XGETTEXT_EXTRA_OPTIONS= --]) -- --dnl Registers an option to be passed to xgettext in the po subdirectory. --AC_DEFUN([AM_XGETTEXT_OPTION], --[ -- AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) -- XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" --]) -diff --git a/m4/progtest.m4 b/m4/progtest.m4 -deleted file mode 100644 -index 2671eb85..00000000 ---- a/m4/progtest.m4 -+++ /dev/null -@@ -1,93 +0,0 @@ --# progtest.m4 --# serial 10 (gettext-0.24) --dnl Copyright (C) 1996-2025 Free Software Foundation, Inc. --dnl This file is free software; the Free Software Foundation --dnl gives unlimited permission to copy and/or distribute it, --dnl with or without modifications, as long as this notice is preserved. --dnl This file is offered as-is, without any warranty. --dnl --dnl This file can be used in projects which are not available under --dnl the GNU General Public License or the GNU Lesser General Public --dnl License but which still want to provide support for the GNU gettext --dnl functionality. --dnl Please note that the actual code of the GNU gettext library is covered --dnl by the GNU Lesser General Public License, and the rest of the GNU --dnl gettext package is covered by the GNU General Public License. --dnl They are *not* in the public domain. -- --dnl Authors: --dnl Ulrich Drepper , 1996. -- --AC_PREREQ([2.53]) -- --# Search path for a program which passes the given test. -- --dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, --dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) --AC_DEFUN([AM_PATH_PROG_WITH_TEST], --[ --# Prepare PATH_SEPARATOR. --# The user is always right. --if test "${PATH_SEPARATOR+set}" != set; then -- # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which -- # contains only /bin. Note that ksh looks also at the FPATH variable, -- # so we have to set that as well for the test. -- PATH_SEPARATOR=: -- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ -- && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ -- || PATH_SEPARATOR=';' -- } --fi -- --# Find out how to test for executable files. Don't use a zero-byte file, --# as systems may use methods other than mode bits to determine executability. --cat >conf$$.file <<_ASEOF --#! /bin/sh --exit 0 --_ASEOF --chmod +x conf$$.file --if test -x conf$$.file >/dev/null 2>&1; then -- ac_executable_p="test -x" --else -- ac_executable_p="test -f" --fi --rm -f conf$$.file -- --# Extract the first word of "$2", so it can be a program name with args. --set dummy $2; ac_word=[$]2 --AC_MSG_CHECKING([for $ac_word]) --AC_CACHE_VAL([ac_cv_path_$1], --[case "[$]$1" in -- [[\\/]]* | ?:[[\\/]]*) -- ac_cv_path_$1="[$]$1" # Let the user override the test with a path. -- ;; -- *) -- gt_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in m4_if([$5], , $PATH, [$5]); do -- IFS="$gt_saved_IFS" -- test -z "$ac_dir" && ac_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then -- echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD -- if [$3]; then -- ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" -- break 2 -- fi -- fi -- done -- done -- IFS="$gt_saved_IFS" --dnl If no 4th arg is given, leave the cache variable unset, --dnl so AC_PATH_PROGS will keep looking. --m4_if([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" --])dnl -- ;; --esac])dnl --$1="$ac_cv_path_$1" --if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then -- AC_MSG_RESULT([$][$1]) --else -- AC_MSG_RESULT([no]) --fi --AC_SUBST([$1])dnl --]) diff --git a/0013-docs-Drop-references-to-virtio-win-osinfo-usage.patch b/0013-docs-Drop-references-to-virtio-win-osinfo-usage.patch deleted file mode 100644 index 7f70ff6..0000000 --- a/0013-docs-Drop-references-to-virtio-win-osinfo-usage.patch +++ /dev/null @@ -1,44 +0,0 @@ -From c80d9e84d1c5c12fd6fb675f99afcf0679a8a585 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Tue, 10 Feb 2026 08:22:10 -0500 -Subject: [PATCH] docs: Drop references to virtio-win osinfo usage - -Follow on from libguestfs-common commit that dropped this: - -https://github.com/libguestfs/libguestfs-common/commit/22d586fe9 - -Signed-off-by: Cole Robinson -(cherry picked from commit 2ddfe18ccd7df423a86790b0505623660fc1ffe3) ---- - docs/virt-v2v.pod | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) - -diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index f751f4e7..258fe937 100644 ---- a/docs/virt-v2v.pod -+++ b/docs/virt-v2v.pod -@@ -1344,9 +1344,9 @@ below. - Windows Drivers are installed from the ISO or directory pointed - to by the "VIRTIO_WIN" environment variable if present. - If the "VIRTIO_WIN" environment variable is absent -- (which is the recommended setting), then libosinfo is -- consulted first, for driver files that are locally -- available on the conversion host. -+ (which is the recommended setting), then drivers are -+ searched for in /usr/share/virtio-win, as installed -+ by the virtio-win RPM. - - - =head2 RHEL 4: SELinux relabel appears to hang forever -@@ -1877,11 +1877,6 @@ succeeds first: - - =over 4 - --=item C -- --Load osinfo data from the default paths, and attempt to find drivers via --libosinfo lookup. This is the preferred method. -- - =item F - - The ISO containing virtio drivers for Windows. diff --git a/0014-docs-update-virtio-win-exploded-tree-docs.patch b/0014-docs-update-virtio-win-exploded-tree-docs.patch deleted file mode 100644 index 7c71707..0000000 --- a/0014-docs-update-virtio-win-exploded-tree-docs.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 61a9ba9a9140573ec2964a6338e76c57c84bbf0a Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Tue, 10 Feb 2026 08:26:41 -0500 -Subject: [PATCH] docs: update virtio-win exploded tree docs - -The directory in /usr/share/virtio-win is not out of date these -days and hasn't been for years. See: - -https://github.com/libguestfs/libguestfs-common/commit/4be37c277 - -Signed-off-by: Cole Robinson -(cherry picked from commit f10924cdf2f438d0e939efdc6081b8b644a2131a) ---- - docs/virt-v2v.pod | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index 258fe937..04764832 100644 ---- a/docs/virt-v2v.pod -+++ b/docs/virt-v2v.pod -@@ -1883,8 +1883,7 @@ The ISO containing virtio drivers for Windows. - - =item F - --The exploded tree of virtio drivers for Windows. This is --usually incomplete, hence the least preferred method. -+The exploded tree of virtio drivers for Windows. - - =back - diff --git a/0015-ocaml-link.sh.in-pass-explicit-guestfs-search-path.patch b/0015-ocaml-link.sh.in-pass-explicit-guestfs-search-path.patch deleted file mode 100644 index d87e6e3..0000000 --- a/0015-ocaml-link.sh.in-pass-explicit-guestfs-search-path.patch +++ /dev/null @@ -1,54 +0,0 @@ -From fbd10145df6d6b903f476895c4b205a0c261e454 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Tue, 10 Feb 2026 11:42:34 -0500 -Subject: [PATCH] ocaml-link.sh.in: pass explicit guestfs search path - -Without this, if we use `libguestfs/run` while `ocaml-libguestfs-*` -host packages are installed, we get mismatched search path warnings -like these, and then linking fails: - - findlib: [WARNING] Package guestfs has multiple definitions in /tmp/libguestfs.git/ocaml/guestfs/META, /usr/lib64/ocaml/guestfs/META - findlib: [WARNING] Interface guestfs.cmi occurs in several directories: /usr/lib64/ocaml/guestfs, /tmp/libguestfs.git/ocaml/guestfs - -This change avoids the last warning. There's still lots of spew -about `multiple definitions` but it seems harmless. - -Signed-off-by: Cole Robinson -(cherry picked from commit 123c3211dfb4fb8949fbdc3967ec51e9eda34a6c) ---- - ocaml-link.sh.in | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/ocaml-link.sh.in b/ocaml-link.sh.in -index 4148e8f9..d3c44d10 100755 ---- a/ocaml-link.sh.in -+++ b/ocaml-link.sh.in -@@ -41,18 +41,26 @@ while true ; do - esac - done - -+# Without this, if we use `libguestfs/run` while `ocaml-libguestfs-*` -+# host packages are installed, we get mismatched search path warnings -+# like these, and then linking fails: -+# -+# findlib: [WARNING] Package guestfs has multiple definitions in /tmp/libguestfs.git/ocaml/guestfs/META, /usr/lib64/ocaml/guestfs/META -+# findlib: [WARNING] Interface guestfs.cmi occurs in several directories: /usr/lib64/ocaml/guestfs, /tmp/libguestfs.git/ocaml/guestfs -+guestfs_path=$(@OCAMLFIND@ query guestfs 2>/dev/null) -+ - # Integration with silent rules of automake: print the full command - # line option in verbose mode. - if [ x"${V:-@AM_DEFAULT_VERBOSITY@}" = x1 ]; then - echo "$@" \ - @OCAML_RUNTIME_VARIANT_PIC_OPTION@ \ -- -I +guestfs \ -+ -I "$guestfs_path" \ - -linkpkg \ - -cclib "'@LDFLAGS@ $cclib'" - fi - # NB -cclib must come last. - exec "$@" \ - @OCAML_RUNTIME_VARIANT_PIC_OPTION@ \ -- -I +guestfs \ -+ -I "$guestfs_path" \ - -linkpkg \ - -cclib "@LDFLAGS@ $cclib" diff --git a/0016-output-introduce-disk_name-helper.patch b/0016-output-introduce-disk_name-helper.patch deleted file mode 100644 index a4da432..0000000 --- a/0016-output-introduce-disk_name-helper.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 2723d30596546e92141f45bd302cf895d6233495 Mon Sep 17 00:00:00 2001 -From: Susant Sahani -Date: Tue, 10 Feb 2026 15:15:21 +0530 -Subject: [PATCH] output: introduce disk_name helper - -Refactor the places where we create "name-sdX" names to use a common -helper function. - -Signed-off-by: Richard W.M. Jones -Signed-off-by: Susant Sahani -(cherry picked from commit a4b76ca9b5e01e807d39c0a2ba1fe515b854ef82) ---- - output/output.ml | 7 +++++-- - output/output.mli | 4 ++++ - output/output_libvirt.ml | 2 +- - output/output_openstack.ml | 2 +- - 4 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/output/output.ml b/output/output.ml -index 7e096278..919a48a4 100644 ---- a/output/output.ml -+++ b/output/output.ml -@@ -150,8 +150,11 @@ let output_to_local_file ?name - ignore (waitpid [] pid) - ) - -+let disk_name name i = -+ sprintf "%s-sd%s" name (drive_name i) -+ - let disk_path os name i = -- let outdisk = sprintf "%s/%s-sd%s" os name (drive_name i) in -+ let outdisk = sprintf "%s/%s" os (disk_name name i) in - absolute_path outdisk - - let create_local_output_disks dir -@@ -214,7 +217,7 @@ let create_local_output_disks dir - let uris = - List.mapi ( - fun i _ -> -- let export = sprintf "%s-sd%s" output_name (drive_name i) in -+ let export = disk_name output_name i in - NBD_URI.Unix (socket, Some export) - ) input_disks in - -diff --git a/output/output.mli b/output/output.mli -index fa79bfe1..d63a5d72 100644 ---- a/output/output.mli -+++ b/output/output.mli -@@ -121,6 +121,10 @@ val output_to_local_file : ?name:string -> - (such as unmounting a host filesystem or removing a host device) - depends on the NBD server releasing resources. *) - -+val disk_name : string -> int -> string -+(** Return the disk name for the i'th disk, -+ eg. 0 => name-sda. *) -+ - val disk_path : string -> string -> int -> string - (** For [-o disk|qemu], return the output disk name of the i'th disk, - eg. 0 => /path/to/name-sda. *) -diff --git a/output/output_libvirt.ml b/output/output_libvirt.ml -index 9560d2d3..708de3e0 100644 ---- a/output/output_libvirt.ml -+++ b/output/output_libvirt.ml -@@ -189,7 +189,7 @@ module Libvirt_ = struct - let doc = - create_libvirt_xml ~pool:pool_name source inspect target_meta - target_features domcaps_features -- (fun i -> output_name ^ "-sd" ^ (drive_name i)) -+ (disk_name output_name) - output_format output_name in - - let tmpfile, chan = Filename.open_temp_file "v2vlibvirt" ".xml" in -diff --git a/output/output_openstack.ml b/output/output_openstack.ml -index 88a39c68..dd04052e 100644 ---- a/output/output_openstack.ml -+++ b/output/output_openstack.ml -@@ -322,7 +322,7 @@ The os-* parameters and environment variables are optional. - * something related to the guest name. Cinder volume - * names do not need to be unique. - *) -- let name = sprintf "%s-sd%s" output_name (drive_name i) in -+ let name = disk_name output_name i in - - (* Create the cinder volume. *) - let id = create_cinder_volume name description size in diff --git a/0017-output-Replace-in-VM-names-with-_.patch b/0017-output-Replace-in-VM-names-with-_.patch deleted file mode 100644 index ef25df7..0000000 --- a/0017-output-Replace-in-VM-names-with-_.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 8edb5356b40b28f26e3c7f891cf47018e67d4903 Mon Sep 17 00:00:00 2001 -From: Susant Sahani -Date: Tue, 10 Feb 2026 15:15:21 +0530 -Subject: [PATCH] output: Replace '/' in VM names with '_' - -Add Utils.sanitize_slash function which replaces '/' with '_' in VM -names, and use that in the new disk_name function. - -For example, if the VM name is "foo/bar" then the new generated name -will be "foo_bar-sda". You can use -on option to choose an output -name instead of relying on this. - -Fixes: https://issues.redhat.com/browse/RHEL-136479 -Signed-off-by: Susant Sahani -Signed-off-by: Richard W.M. Jones -(cherry picked from commit 25161d37484f6f3431446cae7eabef4054752c65) ---- - lib/utils.ml | 3 +++ - lib/utils.mli | 4 ++++ - output/output.ml | 1 + - output/output.mli | 2 +- - 4 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/lib/utils.ml b/lib/utils.ml -index 9da6737c..15af5b1a 100644 ---- a/lib/utils.ml -+++ b/lib/utils.ml -@@ -289,3 +289,6 @@ let name_from_disk disk = - if name = "" then - error (f_"invalid input filename (%s)") disk; - name -+ -+let sanitize_slash = -+ String.map (fun c -> if c = '/' then '_' else c) -diff --git a/lib/utils.mli b/lib/utils.mli -index c976a582..40bed0b9 100644 ---- a/lib/utils.mli -+++ b/lib/utils.mli -@@ -108,3 +108,7 @@ val name_from_disk : string -> string - (** Take a disk name and derive from it a suitable source name. - - Used in particular by [-i disk], [-i ova] and [-i vmx] modes. *) -+ -+val sanitize_slash : string -> string -+(** Replace '/' with '_' in guest names for filesystem paths and -+ libvirt domain names. *) -diff --git a/output/output.ml b/output/output.ml -index 919a48a4..ff4b12b1 100644 ---- a/output/output.ml -+++ b/output/output.ml -@@ -151,6 +151,7 @@ let output_to_local_file ?name - ) - - let disk_name name i = -+ let name = Utils.sanitize_slash name in - sprintf "%s-sd%s" name (drive_name i) - - let disk_path os name i = -diff --git a/output/output.mli b/output/output.mli -index d63a5d72..3f953010 100644 ---- a/output/output.mli -+++ b/output/output.mli -@@ -122,7 +122,7 @@ val output_to_local_file : ?name:string -> - depends on the NBD server releasing resources. *) - - val disk_name : string -> int -> string --(** Return the disk name for the i'th disk, -+(** Return the sanitized disk name for the i'th disk, - eg. 0 => name-sda. *) - - val disk_path : string -> string -> int -> string diff --git a/0018-output-sanitize-guest-names-in-metadata-file-paths.patch b/0018-output-sanitize-guest-names-in-metadata-file-paths.patch deleted file mode 100644 index 8108b88..0000000 --- a/0018-output-sanitize-guest-names-in-metadata-file-paths.patch +++ /dev/null @@ -1,55 +0,0 @@ -From b0e084027f528bbc42bd4c5a19c6ec441518044a Mon Sep 17 00:00:00 2001 -From: Susant Sahani -Date: Tue, 10 Feb 2026 15:15:27 +0530 -Subject: [PATCH] output: sanitize guest names in metadata file paths - -Use sanitize_slash for metadata filenames to avoid '/' in paths. - -Fixes: https://issues.redhat.com/browse/RHEL-136479 -Signed-off-by: Susant Sahani -(cherry picked from commit e02563cfcb0022cdd3a044c6a8e459eeb2c5abf6) ---- - output/output_disk.ml | 2 +- - output/output_kubevirt.ml | 2 +- - output/output_qemu.ml | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/output/output_disk.ml b/output/output_disk.ml -index af0a3fac..dc43d637 100644 ---- a/output/output_disk.ml -+++ b/output/output_disk.ml -@@ -105,7 +105,7 @@ module Disk = struct - (disk_path output_storage output_name) - output_format output_name in - -- let file = output_storage // output_name ^ ".xml" in -+ let file = output_storage // (sanitize_slash output_name) ^ ".xml" in - with_open_out file (fun chan -> DOM.doc_to_chan chan doc); - - if verbose () then ( -diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml -index 8a5ab56d..8b011436 100644 ---- a/output/output_kubevirt.ml -+++ b/output/output_kubevirt.ml -@@ -146,7 +146,7 @@ module Kubevirt = struct - let doc = create_kubevirt_yaml source inspect target_meta disk_path - output_format output_name in - -- let file = output_storage // output_name ^ ".yaml" in -+ let file = output_storage // (sanitize_slash output_name) ^ ".yaml" in - with_open_out file (fun chan -> YAML.doc_to_chan chan doc); - - if verbose () then ( -diff --git a/output/output_qemu.ml b/output/output_qemu.ml -index 63299423..b9090d86 100644 ---- a/output/output_qemu.ml -+++ b/output/output_qemu.ml -@@ -111,7 +111,7 @@ module QEMU = struct - (* Start the shell script. Write it to a temporary file - * which we rename at the end. - *) -- let file = output_storage // output_name ^ ".sh" in -+ let file = output_storage // (sanitize_slash output_name) ^ ".sh" in - let tmpfile = file ^ ".tmp" in - On_exit.unlink tmpfile; - diff --git a/0019-output-sanitize-VM-names-in-libvirt-XML.patch b/0019-output-sanitize-VM-names-in-libvirt-XML.patch deleted file mode 100644 index 7a340cb..0000000 --- a/0019-output-sanitize-VM-names-in-libvirt-XML.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3f5a9ac841adc8996a74e32659aed4c3fc831c6c Mon Sep 17 00:00:00 2001 -From: Susant Sahani -Date: Tue, 10 Feb 2026 15:15:31 +0530 -Subject: [PATCH] output: sanitize VM names in libvirt XML - -Prevent domain creation failures when VM names contain '/' characters. - -Fixes: https://issues.redhat.com/browse/RHEL-136479 -Signed-off-by: Susant Sahani -(cherry picked from commit 1e68923593a7121943f09e67a6b78b902bfeeceb) ---- - output/create_libvirt_xml.ml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml -index e4199efe..7471ee5a 100644 ---- a/output/create_libvirt_xml.ml -+++ b/output/create_libvirt_xml.ml -@@ -51,7 +51,7 @@ let create_libvirt_xml ?pool source inspect - - List.push_back_list body [ - Comment generated_by; -- e "name" [] [PCData output_name]; -+ e "name" [] [PCData (Utils.sanitize_slash output_name)]; - ]; - - (match source.s_genid with diff --git a/0029-Update-common-submodule.patch b/0029-Update-common-submodule.patch deleted file mode 100644 index b65831f..0000000 --- a/0029-Update-common-submodule.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 2666493010b1b82d5b8dbb517c9976727b05184f Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Wed, 11 Feb 2026 19:09:26 -0500 -Subject: [PATCH] Update common submodule - -Update to fix: -https://issues.redhat.com/browse/RHEL-148423 - -This pulls in the following commits: - - Cole Robinson (1): - virtio-win: Install blnsvr.exe to C:\Windows\Drivers\VirtIO - -Signed-off-by: Cole Robinson -(cherry picked from commit b227d493ace2250bbc53a25ce7db42fcf220ba51) ---- - common | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Submodule common 1005f4a6..22b583b9: -diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml -index 114df064..a2938080 100644 ---- a/common/mlcustomize/inject_virtio_win.ml -+++ b/common/mlcustomize/inject_virtio_win.ml -@@ -254,13 +254,10 @@ and inject_qemu_ga ({ g; root } as t) = - - and inject_blnsvr ({ g; root } as t) = - (* Copy the files to the guest. *) -- let dir, dir_win = Firstboot.firstboot_dir g root in -- let dir_win = Option.value dir_win ~default:dir in -- let tempdir = sprintf "%s/Temp" dir in -- let tempdir_win = sprintf "%s\\Temp" dir_win in -- g#mkdir_p tempdir; -+ let driverdir = sprintf "%s/Drivers/VirtIO" t.i_windows_systemroot in -+ g#mkdir_p driverdir; - -- let files = copy_blnsvr t tempdir in -+ let files = copy_blnsvr t driverdir in - match files with - | [] -> false (* Didn't find or install anything. *) - -@@ -268,7 +265,7 @@ and inject_blnsvr ({ g; root } as t) = - * drivers/by-driver). Pick the first. - *) - | blnsvr :: _ -> -- configure_blnsvr t tempdir_win blnsvr; -+ configure_blnsvr t driverdir blnsvr; - true - - and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid = -@@ -570,9 +567,9 @@ and configure_qemu_ga t tempdir_win files = - - Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga" !script - --and configure_blnsvr t tempdir_win blnsvr = -+and configure_blnsvr t driverdir blnsvr = - let cmd = sprintf "\ - @echo off\n\ - echo Installing %s\n\ -- \"%s\\%s\" -i\n" blnsvr tempdir_win blnsvr in -+ \"%s\\%s\" -i\n" blnsvr driverdir blnsvr in - Firstboot.add_firstboot_script t.g t.root "install-blnsvr" cmd diff --git a/0030-convert-linux-properly-match-etc-crypttab.patch b/0030-convert-linux-properly-match-etc-crypttab.patch deleted file mode 100644 index 07fc6bf..0000000 --- a/0030-convert-linux-properly-match-etc-crypttab.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 4e06515083d7effdee91195dbf93082e544a6283 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Mon, 16 Feb 2026 13:58:08 -0500 -Subject: [PATCH] convert: linux: properly match /etc/crypttab - -I broke b227d493ace2250bbc53a25ce7db42fcf220ba51 during review -and neglected to retest. We need to match an augeas style -path when using starts_with - -Fixes: https://issues.redhat.com/browse/RHEL-93583 - -Signed-off-by: Cole Robinson -(cherry picked from commit 109bc1ab3bd2f6b9d73616c546aeceb0631159be) ---- - convert/convert_linux.ml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml -index 4462e6cf..484148ab 100644 ---- a/convert/convert_linux.ml -+++ b/convert/convert_linux.ml -@@ -1212,7 +1212,7 @@ fi - This depends on /dev/sdXX in the guest having the same /dev/sdXX - name in the appliance. - *) -- if String.starts_with "/etc/crypttab" path && -+ if String.starts_with "/files/etc/crypttab" path && - String.starts_with "/dev/sd" value then ( - try - let uuid = g#vfs_uuid value in diff --git a/0031-Add-no-fstrim-option-to-disable-fstrim-during-conver.patch b/0031-Add-no-fstrim-option-to-disable-fstrim-during-conver.patch deleted file mode 100644 index 79dfe5f..0000000 --- a/0031-Add-no-fstrim-option-to-disable-fstrim-during-conver.patch +++ /dev/null @@ -1,302 +0,0 @@ -From f937f290a4c032c971ad78d1b07e8aefe15eab8a Mon Sep 17 00:00:00 2001 -From: sarika -Date: Tue, 9 Dec 2025 16:12:14 +0530 -Subject: [PATCH] Add --no-fstrim option to disable fstrim during conversion - -In particular, fstrim on NTFS is a serialized operation which can be -very slow on large partitions. - -Closes: https://github.com/libguestfs/virt-v2v/pull/121 -Fixes: https://redhat.atlassian.net/browse/RHEL-164271 - -RWMJ: Added documentation, a test, and larger commit message. -(cherry picked from commit 251639458907f06148ecdd5acbac5c43136e7662) ---- - convert/convert.ml | 10 ++++++-- - convert/convert.mli | 1 + - docs/virt-v2v.pod | 6 +++++ - in-place/in_place.ml | 5 ++++ - in-place/virt-v2v-in-place.pod | 4 +++ - inspector/inspector.ml | 6 +++++ - inspector/virt-v2v-inspector.pod | 2 ++ - tests/Makefile.am | 2 ++ - tests/test-no-fstrim.sh | 44 ++++++++++++++++++++++++++++++++ - v2v/v2v.ml | 6 +++++ - 10 files changed, 84 insertions(+), 2 deletions(-) - create mode 100755 tests/test-no-fstrim.sh - -diff --git a/convert/convert.ml b/convert/convert.ml -index eb51e9b9..1ff87e43 100644 ---- a/convert/convert.ml -+++ b/convert/convert.ml -@@ -40,6 +40,7 @@ type options = { - smp : int option; - static_ips : static_ip list; - customize_ops : Customize_cmdline.ops; -+ no_fstrim : bool; - } - - (* Mountpoint stats, used for free space estimation. *) -@@ -157,8 +158,13 @@ let rec convert input_disks options source = - * because unused blocks are marked in the overlay and thus do - * not have to be copied. - *) -- message (f_"Mapping filesystem data to avoid copying unused and blank areas"); -- do_fstrim g inspect; -+ if not options.no_fstrim then ( -+ message -+ (f_"Mapping filesystem data to avoid copying unused and blank areas"); -+ do_fstrim g inspect -+ ) else ( -+ message (f_"Skipping fstrim (--no-fstrim specified)") -+ ); - - (* Check (fsck) the filesystems after conversion. *) - g#umount_all (); -diff --git a/convert/convert.mli b/convert/convert.mli -index f2a8d662..faf671fc 100644 ---- a/convert/convert.mli -+++ b/convert/convert.mli -@@ -26,6 +26,7 @@ type options = { - smp : int option; (** [--smp] option *) - static_ips : Types.static_ip list; (** [--mac :ip:] option *) - customize_ops : Customize_cmdline.ops; (** virt-customize options *) -+ no_fstrim : bool; (** [--no-fstrim] option *) - } - (** Command line options that get passed through to the conversion code. *) - -diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index eb550da0..5c191889 100644 ---- a/docs/virt-v2v.pod -+++ b/docs/virt-v2v.pod -@@ -468,6 +468,10 @@ are mapped to C. - - See L below. - -+=item B<--no-fstrim> -+ -+Do not trim the filesystem. See L below. -+ - =item B<-o> B - - This is the same as I<-o local>. -@@ -1026,6 +1030,8 @@ fstrim support in the Linux kernel is improving gradually, so over - time some of these restrictions will be lifted and virt-v2v will work - faster. - -+Use I<--no-fstrim> to disable trimming. -+ - =head2 Free space for conversion - - =head3 Free space in the guest -diff --git a/in-place/in_place.ml b/in-place/in_place.ml -index 6c2790af..a96d55d9 100644 ---- a/in-place/in_place.ml -+++ b/in-place/in_place.ml -@@ -151,6 +151,7 @@ let rec main () = - let set_root_choice = Types.set_root_choice root_choice in - - (* Other options that we handle here. *) -+ let no_fstrim = ref false in - let print_source = ref false in - - let input_modes = -@@ -185,6 +186,8 @@ let rec main () = - s_"Map network ‘in’ to ‘out’"; - [ S 'O' ], Getopt.String ("output.xml", set_output_xml_option), - s_"Set the output filename"; -+ [ L"no-fstrim" ], Getopt.Set no_fstrim, -+ s_"Don't trim filesystems before conversion"; - [ L"print-source" ], Getopt.Set print_source, - s_"Print source and stop"; - [ L"root" ], Getopt.String ("ask|... ", set_root_choice), -@@ -257,6 +260,7 @@ read the man page virt-v2v-in-place(1). - let customize_ops = get_customize_ops () in - let input_conn = !input_conn in - let input_mode = !input_mode in -+ let no_fstrim = !no_fstrim in - let memsize = !memsize in - let output_xml = !output_xml in - let print_source = !print_source in -@@ -329,6 +333,7 @@ read the man page virt-v2v-in-place(1). - smp; - static_ips; - customize_ops; -+ no_fstrim; - } in - - (* Before starting the input module, check there is sufficient -diff --git a/in-place/virt-v2v-in-place.pod b/in-place/virt-v2v-in-place.pod -index 7c0a4d90..ac4142ae 100644 ---- a/in-place/virt-v2v-in-place.pod -+++ b/in-place/virt-v2v-in-place.pod -@@ -239,6 +239,10 @@ are mapped to C. - - See L. - -+=item B<--no-fstrim> -+ -+Do not trim the filesystem. See L. -+ - =item B<-O> output.xml - - =item B<-O -> -diff --git a/inspector/inspector.ml b/inspector/inspector.ml -index 752a5c1c..137d5f61 100644 ---- a/inspector/inspector.ml -+++ b/inspector/inspector.ml -@@ -70,6 +70,8 @@ let rec main () = - let smp = ref None in - let set_smp arg = smp := Some arg in - -+ let no_fstrim = ref false in -+ - let network_map = Networks.create () in - let static_ips = ref [] in - let rec add_network str = -@@ -171,6 +173,8 @@ let rec main () = - s_"Map NIC to network or bridge or assign static IP"; - [ S 'm'; L"memsize" ], Getopt.Int ("mb", set_memsize), - s_"Set memory size"; -+ [ L"no-fstrim" ], Getopt.Set no_fstrim, -+ s_"Don't trim filesystems before conversion"; - [ S 'n'; L"network" ], Getopt.String ("in:out", add_network), - s_"Map network ‘in’ to ‘out’"; - [ S 'O' ], Getopt.String ("output.xml", set_output_file_option), -@@ -233,6 +237,7 @@ read the man page virt-v2v-inspector(1). - | Some transport -> - error (f_"unknown input transport ‘-it %s’") transport in - let memsize = !memsize in -+ let no_fstrim = !no_fstrim in - let root_choice = !root_choice in - let smp = !smp in - let static_ips = !static_ips in -@@ -293,6 +298,7 @@ read the man page virt-v2v-inspector(1). - smp; - static_ips; - customize_ops; -+ no_fstrim; - } in - - (* Before starting the input module, check there is sufficient -diff --git a/inspector/virt-v2v-inspector.pod b/inspector/virt-v2v-inspector.pod -index 26770459..65ce71ce 100644 ---- a/inspector/virt-v2v-inspector.pod -+++ b/inspector/virt-v2v-inspector.pod -@@ -202,6 +202,8 @@ virt-v2v-inspector. - - =item B<--network> ... - -+=item B<--no-fstrim> -+ - =item B<-q> - - =item B<--quiet> -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 8e142b09..7182f62b 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -92,6 +92,7 @@ TESTS = \ - test-mac.sh \ - test-machine-readable.sh \ - test-networks-and-bridges.sh \ -+ test-no-fstrim.sh \ - test-o-glance.sh \ - test-o-kubevirt-fedora.sh \ - test-o-kubevirt-oo-disk.sh \ -@@ -291,6 +292,7 @@ EXTRA_DIST += \ - test-machine-readable.sh \ - test-networks-and-bridges-expected.xml \ - test-networks-and-bridges.sh \ -+ test-no-fstrim.sh \ - test-o-glance.sh \ - test-o-kubevirt-fedora.sh \ - test-o-kubevirt-fedora.yaml.expected \ -diff --git a/tests/test-no-fstrim.sh b/tests/test-no-fstrim.sh -new file mode 100755 -index 00000000..ba84ad96 ---- /dev/null -+++ b/tests/test-no-fstrim.sh -@@ -0,0 +1,44 @@ -+#!/bin/bash - -+# libguestfs virt-v2v test script -+# Copyright (C) 2014-2026 Red Hat Inc. -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ -+# Test --no-fstrim option. -+ -+source ./functions.sh -+set -e -+set -x -+ -+skip_if_skipped -+requires test -s ../test-data/phony-guests/windows.img -+ -+export VIRT_TOOLS_DATA_DIR="$srcdir/../test-data/fake-virt-tools" -+ -+d=test-no-fstrim.d -+rm -rf $d -+cleanup_fn rm -rf $d -+mkdir $d -+ -+$VG virt-v2v --debug-gc \ -+ -i disk ../test-data/phony-guests/windows.img \ -+ --no-fstrim \ -+ -o local -os $d -+ -+# Test the libvirt XML metadata and a disk was created. -+test -f $d/windows.xml -+test -f $d/windows-sda -+ -+cat $d/windows.xml -diff --git a/v2v/v2v.ml b/v2v/v2v.ml -index dd224b40..480fa81a 100644 ---- a/v2v/v2v.ml -+++ b/v2v/v2v.ml -@@ -80,6 +80,8 @@ let rec main () = - let smp = ref None in - let set_smp arg = smp := Some arg in - -+ let no_fstrim = ref false in -+ - let network_map = Networks.create () in - let static_ips = ref [] in - let rec add_network str = -@@ -242,6 +244,8 @@ let rec main () = - s_"Use password from file to connect to output hypervisor"; - [ M"os" ], Getopt.String ("storage", set_string_option_once "-os" output_storage), - s_"Set output storage location"; -+ [ L"no-fstrim" ], Getopt.Set no_fstrim, -+ s_"Don't trim filesystems before conversion"; - [ L"parallel" ], Getopt.Set_int ("N", parallel), - s_"Run up to N instances of nbdcopy in parallel"; - [ L"print-source" ], Getopt.Set print_source, -@@ -324,6 +328,7 @@ read the man page virt-v2v(1). - | Some transport -> - error (f_"unknown input transport ‘-it %s’") transport in - let memsize = !memsize in -+ let no_fstrim = !no_fstrim in - let output_alloc = - match !output_alloc with - | `Not_set | `Sparse -> Types.Sparse -@@ -440,6 +445,7 @@ read the man page virt-v2v(1). - smp; - static_ips; - customize_ops; -+ no_fstrim; - } in - - (* Before starting the input module, check there is sufficient diff --git a/sources b/sources index 8fc8fc9..b204143 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (virt-v2v-2.10.0.tar.gz) = 035f2181c1cc5f482e96d3e21b513b95939ca224d71ac6ad938842d5af5d60ef07db1600d2ccb609dc2042b1c74088f6f39ffbe595cb51e80278ecb50c314515 -SHA512 (virt-v2v-2.10.0.tar.gz.sig) = cb6301224ef00577a9cd0fc8fa504e583eb447341bd3849e6854f2d78ae72ca39bca68b70f30efd3d1d64480acf161c5e4bc9ba943595ef4dd2a654c3268aa66 +SHA512 (virt-v2v-2.11.5.tar.gz) = f28cd95712e155536d0b3f04fd11cbbe10051bce354d76fd940f5e11b95467b26f11f0fb45d17c2ef1c0b74e82858a01d42621b6d954bfc5de3da328eb073b47 +SHA512 (virt-v2v-2.11.5.tar.gz.sig) = e8c9fef0db34c34cf2429792f5f8a0a8403d61d33d211878d8145e649e0216b0ed2fc0ccc6f353fc2def94435515743f570dad2d5dd9ad56e4c8ac4b491bd979 diff --git a/virt-v2v.spec b/virt-v2v.spec index 1e3e028..26d6432 100644 --- a/virt-v2v.spec +++ b/virt-v2v.spec @@ -2,7 +2,7 @@ %global verify_tarball_signature 1 # The source directory. -%global source_directory 2.10-stable +%global source_directory 2.11-development %if !0%{?rhel} # Optional features enabled in this build for Fedora. @@ -44,8 +44,8 @@ ExclusiveArch: x86_64 Name: virt-v2v Epoch: 1 -Version: 2.10.0 -Release: 9%{?dist} +Version: 2.11.5 +Release: 1%{?dist} Summary: Convert a virtual machine to run on KVM License: GPL-2.0-or-later AND LGPL-2.0-or-later @@ -62,40 +62,19 @@ Source2: libguestfs.keyring Source3: copy-patches.sh # Patches are maintained in the following repository: -# https://github.com/libguestfs/virt-v2v/commits/rhel-10.2 +# https://github.com/libguestfs/virt-v2v/commits/rhel-10.3 # Patches. -Patch0001: 0001-docs-virt-v2v.pod-Document-Windows-vTPM-and-BitLocke.patch -Patch0002: 0002-input-ssh.ml-Add-debugging-around-remote_file_exists.patch -Patch0003: 0003-input-ssh.ml-Fix-Ssh.remote_file_exists.patch -Patch0004: 0004-Update-common-submodule.patch -Patch0005: 0005-v2v-Enhance-inspection-with-filesystems-information.patch -Patch0006: 0006-inspector-Enhance-virt-v2v-inspector-output-with-fil.patch -Patch0007: 0007-convert-convert_linux.ml-Add-debian-12-UEFI.patch -Patch0008: 0008-input-vcenter-double-uri_encode-dcPath-and-dsName.patch -Patch0009: 0009-lib-Replace-nbdkit-file-cache-none-with-reduce-memor.patch -Patch0010: 0010-convert-convert_linux.ml-Condense-device-regex-handl.patch -Patch0011: 0011-convert-linux-replace-etc-crypttab-dev-sdX-with-UUID.patch -Patch0012: 0012-build-replace-AM_GNU_GETTEXT-with-simpler-LIBINTL-ch.patch -Patch0013: 0013-docs-Drop-references-to-virtio-win-osinfo-usage.patch -Patch0014: 0014-docs-update-virtio-win-exploded-tree-docs.patch -Patch0015: 0015-ocaml-link.sh.in-pass-explicit-guestfs-search-path.patch -Patch0016: 0016-output-introduce-disk_name-helper.patch -Patch0017: 0017-output-Replace-in-VM-names-with-_.patch -Patch0018: 0018-output-sanitize-guest-names-in-metadata-file-paths.patch -Patch0019: 0019-output-sanitize-VM-names-in-libvirt-XML.patch -Patch0020: 0020-RHEL-Fixes-for-libguestfs-winsupport.patch -Patch0021: 0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch -Patch0022: 0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch -Patch0023: 0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch -Patch0024: 0024-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch -Patch0025: 0025-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch -Patch0026: 0026-RHEL-tests-Remove-btrfs-test.patch -Patch0027: 0027-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch -Patch0028: 0028-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch -Patch0029: 0029-Update-common-submodule.patch -Patch0030: 0030-convert-linux-properly-match-etc-crypttab.patch -Patch0031: 0031-Add-no-fstrim-option-to-disable-fstrim-during-conver.patch +Patch0001: 0001-RHEL-Update-v2v-Enhance-inspection-with-filesystems-.patch +Patch0002: 0002-RHEL-Fixes-for-libguestfs-winsupport.patch +Patch0003: 0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch +Patch0004: 0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch +Patch0005: 0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch +Patch0006: 0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch +Patch0007: 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch +Patch0008: 0008-RHEL-tests-Remove-btrfs-test.patch +Patch0009: 0009-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch +Patch0010: 0010-RHEL-output-output.ml-Remove-reduce-memory-pressure-.patch BuildRequires: autoconf, automake, libtool BuildRequires: make @@ -106,6 +85,7 @@ BuildRequires: perl(IPC::Run3) BuildRequires: gcc BuildRequires: ocaml >= 4.08 +# In Fedora this is: libguestfs-devel >= 1:1.59.2-1 BuildRequires: libguestfs-devel >= 1:1.58.1-2 BuildRequires: augeas-devel BuildRequires: bash-completion @@ -152,6 +132,7 @@ BuildRequires: glibc-static BuildRequires: gnupg2 %endif +# In Fedora this is: libguestfs%%{?_isa} >= 1:1.59.2-1 Requires: libguestfs%{?_isa} >= 1:1.58.1-2 Requires: guestfs-tools >= 1.54 @@ -401,6 +382,19 @@ done %changelog +* Mon Apr 13 2026 Richard W.M. Jones - 1:2.11.5-1 +- Rebase to virt-v2v 2.11.5 + Synchronize spec file with Fedora + resolves: RHEL-153361 +- Fixes incorrect driver location for Windows 2008 SP2 + resolves: RHEL-159888 +- Create sentinel file after all firstboot scripts have finished running + resolves: RHEL-152939 +- Obey cgroups when computing SMP + resolves: RHEL-152766 +- Fix encrypted Ubuntu guest fail to boot after conversion + resolves: RHEL-137121 + * Fri Apr 03 2026 Richard W.M. Jones - 1:2.10.0-9 - Add --no-fstrim option resolves: RHEL-164271