Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package virt-p2v for openSUSE:Factory checked in at 2022-08-12 16:06:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/virt-p2v (Old) and /work/SRC/openSUSE:Factory/.virt-p2v.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-p2v" Fri Aug 12 16:06:24 2022 rev:4 rq:994614 version:1.42.2 Changes: -------- --- /work/SRC/openSUSE:Factory/virt-p2v/virt-p2v.changes 2022-05-21 19:06:23.623317051 +0200 +++ /work/SRC/openSUSE:Factory/.virt-p2v.new.1521/virt-p2v.changes 2022-08-12 16:06:38.647470084 +0200 @@ -1,0 +2,6 @@ +Thu Aug 4 10:32:15 MDT 2022 - carn...@suse.com + +- Update to version 1.42.2 + * This is a bug fix release + +------------------------------------------------------------------- Old: ---- virt-p2v-1.42.1.tar.gz virt-p2v-1.42.1.tar.gz.sig New: ---- virt-p2v-1.42.2.tar.gz virt-p2v-1.42.2.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virt-p2v.spec ++++++ --- /var/tmp/diff_new_pack.vIC7JO/_old 2022-08-12 16:06:42.295481054 +0200 +++ /var/tmp/diff_new_pack.vIC7JO/_new 2022-08-12 16:06:42.299481066 +0200 @@ -18,7 +18,7 @@ Name: virt-p2v -Version: 1.42.1 +Version: 1.42.2 Release: 0 Summary: Tools to convert a physical machine to run on KVM URL: https://libguestfs.org/ ++++++ virt-p2v-1.42.1.tar.gz -> virt-p2v-1.42.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/Makefile.am new/virt-p2v-1.42.2/Makefile.am --- old/virt-p2v-1.42.1/Makefile.am 2022-05-10 09:52:50.218216512 +0200 +++ new/virt-p2v-1.42.2/Makefile.am 2022-07-25 19:11:53.581113784 +0200 @@ -140,13 +140,13 @@ virt_p2v_CFLAGS = \ -pthread \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ - $(PCRE_CFLAGS) \ + $(PCRE2_CFLAGS) \ $(LIBXML2_CFLAGS) \ $(GTK_CFLAGS) \ $(DBUS_CFLAGS) virt_p2v_LDADD = \ - $(PCRE_LIBS) \ + $(PCRE2_LIBS) \ $(LIBXML2_LIBS) \ $(GTK_LIBS) \ $(DBUS_LIBS) \ @@ -313,7 +313,7 @@ & endif HAVE_LIBGUESTFS -run-virt-p2v-non-gui-conversion: stamp-test-virt-p2v-pxe-data-files +run-virt-p2v-non-gui-conversion: $(PHYSICAL_MACHINE) stamp-test-virt-p2v-pxe-data-files SLOW=1 $(top_builddir)/run ./test-virt-p2v-pxe.sh $(PHYSICAL_MACHINE): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/Makefile.in new/virt-p2v-1.42.2/Makefile.in --- old/virt-p2v-1.42.1/Makefile.in 2022-05-10 10:04:22.503515494 +0200 +++ new/virt-p2v-1.42.2/Makefile.in 2022-08-03 12:32:40.451908772 +0200 @@ -615,9 +615,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_FULL = @PACKAGE_VERSION_FULL@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_CONFIG = @PCRE_CONFIG@ -PCRE_LIBS = @PCRE_LIBS@ +PCRE2_CFLAGS = @PCRE2_CFLAGS@ +PCRE2_LIBS = @PCRE2_LIBS@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ @@ -810,13 +809,13 @@ virt_p2v_CFLAGS = \ -pthread \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ - $(PCRE_CFLAGS) \ + $(PCRE2_CFLAGS) \ $(LIBXML2_CFLAGS) \ $(GTK_CFLAGS) \ $(DBUS_CFLAGS) virt_p2v_LDADD = \ - $(PCRE_LIBS) \ + $(PCRE2_LIBS) \ $(LIBXML2_LIBS) \ $(GTK_LIBS) \ $(DBUS_LIBS) \ @@ -2240,7 +2239,7 @@ @HAVE_LIBGUESTFS_TRUE@ $(QEMU_OPTIONS) \ @HAVE_LIBGUESTFS_TRUE@ & -run-virt-p2v-non-gui-conversion: stamp-test-virt-p2v-pxe-data-files +run-virt-p2v-non-gui-conversion: $(PHYSICAL_MACHINE) stamp-test-virt-p2v-pxe-data-files SLOW=1 $(top_builddir)/run ./test-virt-p2v-pxe.sh $(PHYSICAL_MACHINE): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/bash/Makefile.in new/virt-p2v-1.42.2/bash/Makefile.in --- old/virt-p2v-1.42.1/bash/Makefile.in 2022-05-10 10:04:22.528515609 +0200 +++ new/virt-p2v-1.42.2/bash/Makefile.in 2022-08-03 12:32:40.474908900 +0200 @@ -434,9 +434,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_FULL = @PACKAGE_VERSION_FULL@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_CONFIG = @PCRE_CONFIG@ -PCRE_LIBS = @PCRE_LIBS@ +PCRE2_CFLAGS = @PCRE2_CFLAGS@ +PCRE2_LIBS = @PCRE2_LIBS@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/configure new/virt-p2v-1.42.2/configure --- old/virt-p2v-1.42.1/configure 2022-05-10 10:04:22.396515002 +0200 +++ new/virt-p2v-1.42.2/configure 2022-08-03 12:32:40.346908186 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for virt-p2v 1.42.1. +# Generated by GNU Autoconf 2.69 for virt-p2v 1.42.2. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='virt-p2v' PACKAGE_TARNAME='virt-p2v' -PACKAGE_VERSION='1.42.1' -PACKAGE_STRING='virt-p2v 1.42.1' +PACKAGE_VERSION='1.42.2' +PACKAGE_STRING='virt-p2v 1.42.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -651,9 +651,8 @@ GTK_CFLAGS LIBXML2_LIBS LIBXML2_CFLAGS -PCRE_CONFIG -PCRE_LIBS -PCRE_CFLAGS +PCRE2_LIBS +PCRE2_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG @@ -807,8 +806,8 @@ PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR -PCRE_CFLAGS -PCRE_LIBS +PCRE2_CFLAGS +PCRE2_LIBS LIBXML2_CFLAGS LIBXML2_LIBS GTK_CFLAGS @@ -1367,7 +1366,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures virt-p2v 1.42.1 to adapt to many kinds of systems. +\`configure' configures virt-p2v 1.42.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1438,7 +1437,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of virt-p2v 1.42.1:";; + short | recursive ) echo "Configuration of virt-p2v 1.42.2:";; esac cat <<\_ACEOF @@ -1490,8 +1489,9 @@ directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - PCRE_CFLAGS C compiler flags for PCRE, overriding pkg-config - PCRE_LIBS linker flags for PCRE, overriding pkg-config + PCRE2_CFLAGS + C compiler flags for PCRE2, overriding pkg-config + PCRE2_LIBS linker flags for PCRE2, overriding pkg-config LIBXML2_CFLAGS C compiler flags for LIBXML2, overriding pkg-config LIBXML2_LIBS @@ -1571,7 +1571,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -virt-p2v configure 1.42.1 +virt-p2v configure 1.42.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2119,7 +2119,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by virt-p2v $as_me 1.42.1, which was +It was created by virt-p2v $as_me 1.42.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4358,7 +4358,7 @@ # Define the identity of the package. PACKAGE='virt-p2v' - VERSION='1.42.1' + VERSION='1.42.2' cat >>confdefs.h <<_ACEOF @@ -12392,8 +12392,8 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: virt-p2v version 1.42.1$p2v_extra" >&5 -$as_echo "$as_me: virt-p2v version 1.42.1$p2v_extra" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: virt-p2v version 1.42.2$p2v_extra" >&5 +$as_echo "$as_me: virt-p2v version 1.42.2$p2v_extra" >&6;} $as_echo "#define PACKAGE_VERSION_MAJOR 1" >>confdefs.h @@ -12402,14 +12402,14 @@ $as_echo "#define PACKAGE_VERSION_MINOR 42" >>confdefs.h -$as_echo "#define PACKAGE_VERSION_RELEASE 1" >>confdefs.h +$as_echo "#define PACKAGE_VERSION_RELEASE 2" >>confdefs.h cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION_EXTRA "$p2v_extra" _ACEOF -PACKAGE_VERSION_FULL="1.42.1${p2v_extra}" +PACKAGE_VERSION_FULL="1.42.2${p2v_extra}" cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION_FULL "$PACKAGE_VERSION_FULL" @@ -13655,19 +13655,19 @@ fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PCRE" >&5 -$as_echo_n "checking for PCRE... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PCRE2" >&5 +$as_echo_n "checking for PCRE2... " >&6; } -if test -n "$PCRE_CFLAGS"; then - pkg_cv_PCRE_CFLAGS="$PCRE_CFLAGS" +if test -n "$PCRE2_CFLAGS"; then + pkg_cv_PCRE2_CFLAGS="$PCRE2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpcre") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpcre2-8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_PCRE_CFLAGS=`$PKG_CONFIG --cflags "libpcre" 2>/dev/null` + pkg_cv_PCRE2_CFLAGS=`$PKG_CONFIG --cflags "libpcre2-8" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13675,16 +13675,16 @@ else pkg_failed=untried fi -if test -n "$PCRE_LIBS"; then - pkg_cv_PCRE_LIBS="$PCRE_LIBS" +if test -n "$PCRE2_LIBS"; then + pkg_cv_PCRE2_LIBS="$PCRE2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libpcre") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpcre2-8") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_PCRE_LIBS=`$PKG_CONFIG --libs "libpcre" 2>/dev/null` + pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs "libpcre2-8" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -13705,123 +13705,41 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PCRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre" 2>&1` + PCRE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre2-8" 2>&1` else - PCRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre" 2>&1` + PCRE2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre2-8" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$PCRE_PKG_ERRORS" >&5 + echo "$PCRE2_PKG_ERRORS" >&5 + as_fn_error $? "Package requirements (libpcre2-8) were not met: - for ac_prog in pcre-config pcre2-config -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PCRE_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PCRE_CONFIG"; then - ac_cv_prog_PCRE_CONFIG="$PCRE_CONFIG" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PCRE_CONFIG="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PCRE_CONFIG=$ac_cv_prog_PCRE_CONFIG -if test -n "$PCRE_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PCRE_CONFIG" >&5 -$as_echo "$PCRE_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PCRE_CONFIG" && break -done -test -n "$PCRE_CONFIG" || PCRE_CONFIG="no" - - if test "x$PCRE_CONFIG" = "xno"; then : - - as_fn_error $? "Please install the pcre devel package" "$LINENO" 5 +$PCRE2_PKG_ERRORS -fi - PCRE_CFLAGS=`$PCRE_CONFIG --cflags` - PCRE_LIBS=`$PCRE_CONFIG --libs` +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. +Alternatively, you may set the environment variables PCRE2_CFLAGS +and PCRE2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. - for ac_prog in pcre-config pcre2-config -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PCRE_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PCRE_CONFIG"; then - ac_cv_prog_PCRE_CONFIG="$PCRE_CONFIG" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PCRE_CONFIG="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PCRE_CONFIG=$ac_cv_prog_PCRE_CONFIG -if test -n "$PCRE_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PCRE_CONFIG" >&5 -$as_echo "$PCRE_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PCRE_CONFIG" && break -done -test -n "$PCRE_CONFIG" || PCRE_CONFIG="no" - - if test "x$PCRE_CONFIG" = "xno"; then : - - as_fn_error $? "Please install the pcre devel package" "$LINENO" 5 - -fi - PCRE_CFLAGS=`$PCRE_CONFIG --cflags` - PCRE_LIBS=`$PCRE_CONFIG --libs` +Alternatively, you may set the environment variables PCRE2_CFLAGS +and PCRE2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } else - PCRE_CFLAGS=$pkg_cv_PCRE_CFLAGS - PCRE_LIBS=$pkg_cv_PCRE_LIBS + PCRE2_CFLAGS=$pkg_cv_PCRE2_CFLAGS + PCRE2_LIBS=$pkg_cv_PCRE2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -15463,7 +15381,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by virt-p2v $as_me 1.42.1, which was +This file was extended by virt-p2v $as_me 1.42.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15529,7 +15447,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -virt-p2v config.status 1.42.1 +virt-p2v config.status 1.42.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/configure.ac new/virt-p2v-1.42.2/configure.ac --- old/virt-p2v-1.42.1/configure.ac 2022-05-10 09:44:42.418414153 +0200 +++ new/virt-p2v-1.42.2/configure.ac 2022-08-03 12:32:27.436836136 +0200 @@ -19,7 +19,7 @@ # freeform string. m4_define([p2v_major], [1]) m4_define([p2v_minor], [42]) -m4_define([p2v_release], [1]) +m4_define([p2v_release], [2]) AC_INIT([virt-p2v],p2v_major.p2v_minor.p2v_release) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/contrib/build-p2v-iso.sh new/virt-p2v-1.42.2/contrib/build-p2v-iso.sh --- old/virt-p2v-1.42.1/contrib/build-p2v-iso.sh 2019-09-24 12:10:33.000000000 +0200 +++ new/virt-p2v-1.42.2/contrib/build-p2v-iso.sh 2022-07-25 19:11:53.582113790 +0200 @@ -76,7 +76,7 @@ fi # Build the list of packages needed for the build environment. -pkgs=augeas-devel,bison,coreutils,cpio,file-devel,flex,gcc,gperf,gtk2-devel,libxml2-devel,livecd-tools,mkisofs,ncurses-devel,patch,perl-Pod-Man,perl-Pod-Simple,pcre-devel,/usr/bin/pod2text,syslinux,syslinux-extlinux,xz,xz-devel +pkgs=augeas-devel,bison,coreutils,cpio,file-devel,flex,gcc,gperf,gtk2-devel,libxml2-devel,livecd-tools,mkisofs,ncurses-devel,patch,perl-Pod-Man,perl-Pod-Simple,pcre2-devel,/usr/bin/pod2text,syslinux,syslinux-extlinux,xz,xz-devel for f in `cat $d/../../p2v/dependencies.redhat`; do pkgs="$pkgs,$f" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/dependencies.m4 new/virt-p2v-1.42.2/dependencies.m4 --- old/virt-p2v-1.42.1/dependencies.m4 2022-05-10 09:32:45.951796802 +0200 +++ new/virt-p2v-1.42.2/dependencies.m4 2022-07-25 19:11:53.583113797 +0200 @@ -22,7 +22,7 @@ ifelse(REDHAT,1, dnl Used by the virt-p2v binary. - pcre + pcre2 libxml2 gtk`'GTK_VERSION dbus-libs @@ -66,7 +66,7 @@ ) ifelse(DEBIAN,1, - libpcre3 + libpcre2-8-0 libxml2 ifelse(GTK_VERSION,2,libgtk`'GTK_VERSION`'.0-0,libgtk-`'GTK_VERSION`'-0) libdbus-1-3 @@ -86,7 +86,7 @@ ) ifelse(ARCHLINUX,1, - pcre + pcre2 libxml2 gtk`'GTK_VERSION dbus @@ -108,7 +108,7 @@ ) ifelse(SUSE,1, - pcre + pcre2 libxml2 gtk`'GTK_VERSION libdbus-1-3 @@ -133,7 +133,7 @@ ifelse(OPENMANDRIVA,1, dnl Used by the virt-p2v binary. - pcre + pcre2 libxml2 gtk`'GTK_VERSION dbus-libs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/docs/Makefile.in new/virt-p2v-1.42.2/docs/Makefile.in --- old/virt-p2v-1.42.1/docs/Makefile.in 2022-05-10 10:04:22.547515696 +0200 +++ new/virt-p2v-1.42.2/docs/Makefile.in 2022-08-03 12:32:40.496909023 +0200 @@ -261,9 +261,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_FULL = @PACKAGE_VERSION_FULL@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_CONFIG = @PCRE_CONFIG@ -PCRE_LIBS = @PCRE_LIBS@ +PCRE2_CFLAGS = @PCRE2_CFLAGS@ +PCRE2_LIBS = @PCRE2_LIBS@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/docs/p2v-building.pod new/virt-p2v-1.42.2/docs/p2v-building.pod --- old/virt-p2v-1.42.1/docs/p2v-building.pod 2022-05-10 09:32:45.952796806 +0200 +++ new/virt-p2v-1.42.2/docs/p2v-building.pod 2022-07-25 19:11:53.584113804 +0200 @@ -61,7 +61,7 @@ I<Required> if compiling from git. Optional if compiling from tarball. -=item Perl-compatible Regular Expressions (PCRE) library +=item Perl-compatible Regular Expressions (PCRE2) library I<Required>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/gnulib/lib/Makefile.in new/virt-p2v-1.42.2/gnulib/lib/Makefile.in --- old/virt-p2v-1.42.1/gnulib/lib/Makefile.in 2022-05-10 10:04:22.572515811 +0200 +++ new/virt-p2v-1.42.2/gnulib/lib/Makefile.in 2022-08-03 12:32:40.530909213 +0200 @@ -287,9 +287,8 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_FULL = @PACKAGE_VERSION_FULL@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_CONFIG = @PCRE_CONFIG@ -PCRE_LIBS = @PCRE_LIBS@ +PCRE2_CFLAGS = @PCRE2_CFLAGS@ +PCRE2_LIBS = @PCRE2_LIBS@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/libguestfs/cleanups.c new/virt-p2v-1.42.2/libguestfs/cleanups.c --- old/virt-p2v-1.42.1/libguestfs/cleanups.c 2019-08-29 17:45:42.000000000 +0200 +++ new/virt-p2v-1.42.2/libguestfs/cleanups.c 2022-07-25 19:11:53.585113810 +0200 @@ -61,6 +61,9 @@ #include <stdio.h> #include <stdlib.h> +#define PCRE2_CODE_UNIT_WIDTH 8 +#include <pcre2.h> + #include "guestfs-utils.h" /* Stdlib cleanups. */ @@ -94,3 +97,17 @@ { guestfs_int_free_string_list (*ptr); } + +void +guestfs_int_cleanup_pcre2_match_data_free (void *ptr) +{ + pcre2_match_data *match_data = * (pcre2_match_data **) ptr; + pcre2_match_data_free (match_data); +} + +void +guestfs_int_cleanup_pcre2_substring_free (void *ptr) +{ + PCRE2_UCHAR *str = * (PCRE2_UCHAR **) ptr; + pcre2_substring_free (str); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/libguestfs/cleanups.h new/virt-p2v-1.42.2/libguestfs/cleanups.h --- old/virt-p2v-1.42.1/libguestfs/cleanups.h 2019-08-29 17:45:42.000000000 +0200 +++ new/virt-p2v-1.42.2/libguestfs/cleanups.h 2022-07-25 19:11:53.586113817 +0200 @@ -42,6 +42,10 @@ __attribute__((cleanup(guestfs_int_cleanup_xmlXPathFreeContext))) #define CLEANUP_XMLXPATHFREEOBJECT \ __attribute__((cleanup(guestfs_int_cleanup_xmlXPathFreeObject))) +#define CLEANUP_PCRE2_MATCH_DATA \ + __attribute__((cleanup(guestfs_int_cleanup_pcre2_match_data_free))) +#define CLEANUP_PCRE2_SUBSTRING_FREE \ + __attribute__((cleanup(guestfs_int_cleanup_pcre2_substring_free))) #else #define CLEANUP_FREE #define CLEANUP_FCLOSE @@ -54,6 +58,8 @@ #define CLEANUP_XMLFREETEXTWRITER #define CLEANUP_XMLXPATHFREECONTEXT #define CLEANUP_XMLXPATHFREEOBJECT +#define CLEANUP_PCRE2_MATCH_DATA +#define CLEANUP_PCRE2_SUBSTRING_FREE #endif /* These functions are used internally by the CLEANUP_* macros. @@ -70,5 +76,7 @@ extern void guestfs_int_cleanup_xmlFreeTextWriter (void *ptr); extern void guestfs_int_cleanup_xmlXPathFreeContext (void *ptr); extern void guestfs_int_cleanup_xmlXPathFreeObject (void *ptr); +extern void guestfs_int_cleanup_pcre2_match_data_free (void *ptr); +extern void guestfs_int_cleanup_pcre2_substring_free (void *ptr); #endif /* GUESTFS_CLEANUPS_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/m4/p2v-libraries.m4 new/virt-p2v-1.42.2/m4/p2v-libraries.m4 --- old/virt-p2v-1.42.1/m4/p2v-libraries.m4 2019-09-24 12:10:33.000000000 +0200 +++ new/virt-p2v-1.42.2/m4/p2v-libraries.m4 2022-07-25 19:11:53.586113817 +0200 @@ -26,15 +26,8 @@ dnl Which header file defines major, minor, makedev. AC_HEADER_MAJOR -dnl Check for PCRE (required) -PKG_CHECK_MODULES([PCRE], [libpcre], [], [ - AC_CHECK_PROGS([PCRE_CONFIG], [pcre-config pcre2-config], [no]) - AS_IF([test "x$PCRE_CONFIG" = "xno"], [ - AC_MSG_ERROR([Please install the pcre devel package]) - ]) - PCRE_CFLAGS=`$PCRE_CONFIG --cflags` - PCRE_LIBS=`$PCRE_CONFIG --libs` -]) +dnl Check for PCRE2 (required) +PKG_CHECK_MODULES([PCRE2], [libpcre2-8]) dnl libxml2 (required) PKG_CHECK_MODULES([LIBXML2], [libxml-2.0]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/miniexpect/README new/virt-p2v-1.42.2/miniexpect/README --- old/virt-p2v-1.42.1/miniexpect/README 2019-08-29 17:45:42.000000000 +0200 +++ new/virt-p2v-1.42.2/miniexpect/README 2022-07-25 19:11:53.587113823 +0200 @@ -3,11 +3,11 @@ It has a saner interface than libexpect, and doesn't depend on Tcl. It is also thread safe, const-correct and uses modern C standards. -It is standalone, except that it requires the PCRE (Perl Compatible -Regular Expressions) library from http://www.pcre.org/. The PCRE +It is standalone, except that it requires the PCRE2 (Perl Compatible +Regular Expressions) library from http://www.pcre.org/. The PCRE2 dependency is fundamental because we want to offer the most powerful regular expression syntax to match on, but more importantly because -PCRE has a convenient way to detect partial matches which made this +PCRE2 has a convenient way to detect partial matches which made this library very simple to implement. License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/miniexpect/miniexpect.c new/virt-p2v-1.42.2/miniexpect/miniexpect.c --- old/virt-p2v-1.42.1/miniexpect/miniexpect.c 2019-08-29 17:45:42.000000000 +0200 +++ new/virt-p2v-1.42.2/miniexpect/miniexpect.c 2022-07-25 19:11:53.587113823 +0200 @@ -35,14 +35,8 @@ #include <sys/wait.h> #include <sys/time.h> -#include <pcre.h> - -/* RHEL 6 pcre did not define PCRE_PARTIAL_SOFT. However PCRE_PARTIAL - * is a synonym so use that. - */ -#ifndef PCRE_PARTIAL_SOFT -#define PCRE_PARTIAL_SOFT PCRE_PARTIAL -#endif +#define PCRE2_CODE_UNIT_WIDTH 8 +#include <pcre2.h> #include "miniexpect.h" @@ -251,7 +245,8 @@ } enum mexp_status -mexp_expect (mexp_h *h, const mexp_regexp *regexps, int *ovector, int ovecsize) +mexp_expect (mexp_h *h, const mexp_regexp *regexps, + pcre2_match_data *match_data) { time_t start_t, now_t; int timeout; @@ -347,29 +342,36 @@ assert (h->buffer != NULL); for (i = 0; regexps[i].r > 0; ++i) { - const int options = regexps[i].options | PCRE_PARTIAL_SOFT; + const int options = regexps[i].options | PCRE2_PARTIAL_SOFT; - r = pcre_exec (regexps[i].re, regexps[i].extra, - h->buffer, (int)h->len, 0, - options, - ovector, ovecsize); + r = pcre2_match (regexps[i].re, + (PCRE2_SPTR) h->buffer, (int)h->len, 0, + options, match_data, NULL); h->pcre_error = r; if (r >= 0) { /* A full match. */ - if (ovector != NULL && ovecsize >= 1 && ovector[1] >= 0) + const PCRE2_SIZE *ovector = NULL; + + if (match_data) + ovector = pcre2_get_ovector_pointer (match_data); + + if (ovector != NULL && ovector[1] >= 0) h->next_match = ovector[1]; else h->next_match = -1; + if (h->debug_fp) + fprintf (h->debug_fp, "DEBUG: next_match at buffer offset %zu\n", + h->next_match); return regexps[i].r; } - else if (r == PCRE_ERROR_NOMATCH) { + else if (r == PCRE2_ERROR_NOMATCH) { /* No match at all. */ /* (nothing here) */ } - else if (r == PCRE_ERROR_PARTIAL) { + else if (r == PCRE2_ERROR_PARTIAL) { /* Partial match. Keep the buffer and keep reading. */ can_clear_buffer = 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/miniexpect/miniexpect.h new/virt-p2v-1.42.2/miniexpect/miniexpect.h --- old/virt-p2v-1.42.1/miniexpect/miniexpect.h 2019-08-29 17:45:42.000000000 +0200 +++ new/virt-p2v-1.42.2/miniexpect/miniexpect.h 2022-07-25 19:11:53.588113830 +0200 @@ -1,5 +1,5 @@ /* miniexpect - * Copyright (C) 2014 Red Hat Inc. + * Copyright (C) 2014-2022 Red Hat Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -32,7 +32,8 @@ #include <stdio.h> #include <unistd.h> -#include <pcre.h> +#define PCRE2_CODE_UNIT_WIDTH 8 +#include <pcre2.h> /* This handle is created per subprocess that is spawned. */ struct mexp_h { @@ -84,8 +85,7 @@ /* Expect. */ struct mexp_regexp { int r; - const pcre *re; - const pcre_extra *extra; + const pcre2_code *re; int options; }; typedef struct mexp_regexp mexp_regexp; @@ -98,7 +98,7 @@ }; extern int mexp_expect (mexp_h *h, const mexp_regexp *regexps, - int *ovector, int ovecsize); + pcre2_match_data *match_data); /* Sending commands, keypresses. */ extern int mexp_printf (mexp_h *h, const char *fs, ...) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/ssh.c new/virt-p2v-1.42.2/ssh.c --- old/virt-p2v-1.42.1/ssh.c 2022-05-10 09:32:45.955796816 +0200 +++ new/virt-p2v-1.42.2/ssh.c 2022-07-25 19:11:53.589113836 +0200 @@ -1,5 +1,5 @@ /* virt-p2v - * Copyright (C) 2009-2019 Red Hat Inc. + * Copyright (C) 2009-2022 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 @@ -113,94 +113,75 @@ static void compile_regexps (void) __attribute__((constructor)); static void free_regexps (void) __attribute__((destructor)); -static pcre *password_re; -static pcre *ssh_message_re; -static pcre *sudo_password_re; -static pcre *prompt_re; -static pcre *version_re; -static pcre *feature_libguestfs_rewrite_re; -static pcre *feature_colours_option_re; -static pcre *feature_input_re; -static pcre *feature_output_re; -static pcre *portfwd_re; +static pcre2_code *password_re; +static pcre2_code *ssh_message_re; +static pcre2_code *sudo_password_re; +static pcre2_code *prompt_re; +static pcre2_code *version_re; +static pcre2_code *feature_libguestfs_rewrite_re; +static pcre2_code *feature_colours_option_re; +static pcre2_code *feature_input_re; +static pcre2_code *feature_output_re; +static pcre2_code *portfwd_re; static void compile_regexps (void) { - const char *err; - int offset; - int p; - - /* These regexps are always used for partial matching. In pcre < 8 - * there were limitations on the regexps possible for partial - * matching, so fail if that is true here. In pcre >= 8, all - * regexps can be used in a partial match. - */ -#ifdef PCRE_INFO_OKPARTIAL -#define CHECK_PARTIAL_OK(pattern, re) \ - do { \ - pcre_fullinfo ((re), NULL, PCRE_INFO_OKPARTIAL, &p); \ - if (p != 1) { \ - fprintf (stderr, "%s: %s:%d: internal error: pattern '%s' cannot be used for partial matching\n", \ - g_get_prgname (), \ - __FILE__, __LINE__, (pattern)); \ - abort (); \ - } \ - } while (0) -#else -#define CHECK_PARTIAL_OK(pattern, re) /* skip check */ -#endif + int errorcode; + PCRE2_SIZE offset; + char errormsg[256]; -#define COMPILE(re,pattern,options) \ +#define COMPILE(re,pattern) \ do { \ - re = pcre_compile ((pattern), (options), &err, &offset, NULL); \ + re = pcre2_compile ((PCRE2_SPTR) (pattern), \ + PCRE2_ZERO_TERMINATED, \ + 0, &errorcode, &offset, NULL); \ if (re == NULL) { \ - ignore_value (write (2, err, strlen (err))); \ + pcre2_get_error_message (errorcode, \ + (PCRE2_UCHAR *) errormsg, sizeof errormsg); \ + ignore_value (write (2, errormsg, strlen (errormsg))); \ abort (); \ } \ - CHECK_PARTIAL_OK ((pattern), re); \ } while (0) - COMPILE (password_re, "password:", 0); + COMPILE (password_re, "password:"); /* Note that (?:.)* is required in order to work around a problem * with partial matching and PCRE in RHEL 5. */ - COMPILE (ssh_message_re, "(ssh: (?:.)*)", 0); - COMPILE (sudo_password_re, "sudo: a password is required", 0); + COMPILE (ssh_message_re, "(ssh: (?:.)*)"); + COMPILE (sudo_password_re, "sudo: a password is required"); /* The magic synchronization strings all match this expression. See * start_ssh function below. */ COMPILE (prompt_re, - "###((?:[0123456789abcdefghijklmnopqrstuvwxyz]){8})### ", 0); + "###((?:[0123456789abcdefghijklmnopqrstuvwxyz]){8})### "); /* Note that (?:.)* is required in order to work around a problem * with partial matching and PCRE in RHEL 5. */ - COMPILE (version_re, - "virt-v2v ([1-9](?:.)*)", - 0); - COMPILE (feature_libguestfs_rewrite_re, "libguestfs-rewrite", 0); - COMPILE (feature_colours_option_re, "colours-option", 0); + COMPILE (version_re, "virt-v2v ([1-9](?:.)*)"); + COMPILE (feature_libguestfs_rewrite_re, "libguestfs-rewrite"); + COMPILE (feature_colours_option_re, "colours-option"); /* The input and output regexps must match the same pattern in * v2v/modules_list.ml. */ - COMPILE (feature_input_re, "input:((?:[-\\w])+)", 0); - COMPILE (feature_output_re, "output:((?:[-\\w])+)", 0); - COMPILE (portfwd_re, "Allocated port ((?:\\d)+) for remote forward", 0); + COMPILE (feature_input_re, "input:((?:[-\\w])+)"); + COMPILE (feature_output_re, "output:((?:[-\\w])+)"); + COMPILE (portfwd_re, "Allocated port ((?:\\d)+) for remote forward"); } static void free_regexps (void) { - pcre_free (password_re); - pcre_free (ssh_message_re); - pcre_free (sudo_password_re); - pcre_free (prompt_re); - pcre_free (version_re); - pcre_free (feature_libguestfs_rewrite_re); - pcre_free (feature_colours_option_re); - pcre_free (feature_input_re); - pcre_free (feature_output_re); - pcre_free (portfwd_re); + pcre2_code_free (password_re); + pcre2_code_free (ssh_message_re); + pcre2_code_free (sudo_password_re); + pcre2_code_free (prompt_re); + pcre2_code_free (version_re); + pcre2_code_free (feature_libguestfs_rewrite_re); + pcre2_code_free (feature_colours_option_re); + pcre2_code_free (feature_input_re); + pcre2_code_free (feature_output_re); + pcre2_code_free (portfwd_re); } /** @@ -328,8 +309,8 @@ char port_str[64]; char connect_timeout_str[128]; mexp_h *h; - const int ovecsize = 12; - int ovector[ovecsize]; + CLEANUP_PCRE2_MATCH_DATA pcre2_match_data *match_data = + pcre2_match_data_create (4, NULL); int saved_timeout; int using_password_auth; size_t count; @@ -404,7 +385,8 @@ if (using_password_auth && config->auth.password && strlen (config->auth.password) > 0) { - CLEANUP_FREE char *ssh_message = NULL; + CLEANUP_PCRE2_SUBSTRING_FREE PCRE2_UCHAR *ssh_message = NULL; + PCRE2_SIZE ssh_msglen; /* Wait for the password prompt. */ wait_password_again: @@ -413,7 +395,7 @@ { 100, .re = password_re }, { 101, .re = ssh_message_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* Got password prompt. */ if (mexp_printf_password (h, "%s", config->auth.password) == -1 || mexp_printf (h, "\n") == -1) { @@ -424,8 +406,8 @@ break; case 101: - free (ssh_message); - ssh_message = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]); + pcre2_substring_free (ssh_message); + pcre2_substring_get_bynumber (match_data, 1, &ssh_message, &ssh_msglen); goto wait_password_again; case MEXP_EOF: @@ -436,7 +418,7 @@ * generic error instead. */ if (ssh_message) - set_ssh_error ("%s", ssh_message); + set_ssh_error ("%s", (char *) ssh_message); else set_ssh_error ("ssh closed the connection without printing an error."); mexp_close (h); @@ -491,7 +473,8 @@ for (count = 0; count < 30; ++count) { char magic[9]; - const char *matched; + PCRE2_UCHAR *matched; + PCRE2_SIZE matchlen; int r; if (guestfs_int_random_string (magic, 8) == -1) { @@ -516,7 +499,7 @@ { 100, .re = password_re }, { 101, .re = prompt_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* Got password prompt unexpectedly. */ set_ssh_error ("Login failed. Probably the username and/or password is wrong."); mexp_close (h); @@ -526,12 +509,11 @@ /* Got a prompt. However it might be an earlier prompt. If it * doesn't match the PS1 string we sent, then repeat the expect. */ - r = pcre_get_substring (h->buffer, ovector, - mexp_get_pcre_error (h), 1, &matched); + r = pcre2_substring_get_bynumber (match_data, 1, &matched, &matchlen); if (r < 0) error (EXIT_FAILURE, 0, "pcre error reading substring (%d)", r); - r = STREQ (magic, matched); - pcre_free_substring (matched); + r = STREQ (magic, (char *) matched); + pcre2_substring_free (matched); if (!r) goto wait_again; goto got_prompt; @@ -592,8 +574,8 @@ char connect_timeout_str[128]; CLEANUP_FREE char *remote = NULL; mexp_h *h; - const int ovecsize = 12; - int ovector[ovecsize]; + CLEANUP_PCRE2_MATCH_DATA pcre2_match_data *match_data = + pcre2_match_data_create (4, NULL); int using_password_auth; if (cache_ssh_identity (config) == -1) @@ -674,7 +656,8 @@ if (using_password_auth && config->auth.password && strlen (config->auth.password) > 0) { - CLEANUP_FREE char *ssh_message = NULL; + CLEANUP_PCRE2_SUBSTRING_FREE PCRE2_UCHAR *ssh_message = NULL; + PCRE2_SIZE ssh_msglen; /* Wait for the password prompt. */ wait_password_again: @@ -683,7 +666,7 @@ { 100, .re = password_re }, { 101, .re = ssh_message_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* Got password prompt. */ if (mexp_printf_password (h, "%s", config->auth.password) == -1 || mexp_printf (h, "\n") == -1) { @@ -694,8 +677,8 @@ break; case 101: - free (ssh_message); - ssh_message = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]); + pcre2_substring_free (ssh_message); + pcre2_substring_get_bynumber (match_data, 1, &ssh_message, &ssh_msglen); goto wait_password_again; case MEXP_EOF: @@ -706,7 +689,7 @@ * generic error instead. */ if (ssh_message) - set_ssh_error ("%s", ssh_message); + set_ssh_error ("%s", (char *) ssh_message); else set_ssh_error ("scp closed the connection without printing an error."); mexp_close (h); @@ -730,7 +713,7 @@ } /* Wait for the scp subprocess to finish. */ - switch (mexp_expect (h, NULL, NULL, 0)) { + switch (mexp_expect (h, NULL, NULL)) { case MEXP_EOF: break; @@ -758,8 +741,8 @@ return 0; } -static void add_input_driver (const char *name, size_t len); -static void add_output_driver (const char *name, size_t len); +static void add_input_driver (const char *name); +static void add_output_driver (const char *name); static int compatible_version (const char *v2v_version); #if defined(__GNUC__) && !defined(__clang__) @@ -771,8 +754,9 @@ mexp_h *h; int feature_libguestfs_rewrite = 0; int status; - const int ovecsize = 12; - int ovector[ovecsize]; + CLEANUP_PCRE2_MATCH_DATA pcre2_match_data *match_data = + pcre2_match_data_create (4, NULL); + PCRE2_SIZE verlen; h = start_ssh (0, config, NULL, 1); if (h == NULL) @@ -802,10 +786,11 @@ { 101, .re = sudo_password_re }, { 102, .re = prompt_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* Got version string. */ free (v2v_version); - v2v_version = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]); + pcre2_substring_get_bynumber (match_data, 1, + (PCRE2_UCHAR **) &v2v_version, &verlen); #if DEBUG_STDERR fprintf (stderr, "%s: remote virt-v2v version: %s\n", g_get_prgname (), v2v_version); @@ -874,6 +859,9 @@ } for (;;) { + PCRE2_UCHAR *driver; + PCRE2_SIZE drvrlen; + switch (mexp_expect (h, (mexp_regexp[]) { { 100, .re = feature_libguestfs_rewrite_re }, @@ -882,7 +870,7 @@ { 103, .re = feature_output_re }, { 104, .re = prompt_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* libguestfs-rewrite. */ feature_libguestfs_rewrite = 1; break; @@ -897,14 +885,16 @@ case 102: /* input:<driver-name> corresponds to an -i option in virt-v2v. */ - add_input_driver (&h->buffer[ovector[2]], - (size_t) (ovector[3]-ovector[2])); + pcre2_substring_get_bynumber (match_data, 1, &driver, &drvrlen); + add_input_driver ((char *) driver); + pcre2_substring_free (driver); break; case 103: /* output:<driver-name> corresponds to an -o option in virt-v2v. */ - add_output_driver (&h->buffer[ovector[2]], - (size_t) (ovector[3]-ovector[2])); + pcre2_substring_get_bynumber (match_data, 1, &driver, &drvrlen); + add_output_driver ((char *) driver); + pcre2_substring_free (driver); break; case 104: /* Got prompt, so end of output. */ @@ -946,7 +936,7 @@ return -1; } - switch (mexp_expect (h, NULL, NULL, 0)) { + switch (mexp_expect (h, NULL, NULL)) { case MEXP_EOF: break; @@ -982,7 +972,7 @@ } static void -add_option (const char *type, char ***drivers, const char *name, size_t len) +add_option (const char *type, char ***drivers, const char *name) { size_t n; @@ -997,9 +987,9 @@ if (*drivers == NULL) error (EXIT_FAILURE, errno, "malloc"); - (*drivers)[n-1] = strndup (name, len); + (*drivers)[n-1] = strdup (name); if ((*drivers)[n-1] == NULL) - error (EXIT_FAILURE, errno, "strndup"); + error (EXIT_FAILURE, errno, "strdup"); (*drivers)[n] = NULL; #if DEBUG_STDERR @@ -1009,22 +999,22 @@ } static void -add_input_driver (const char *name, size_t len) +add_input_driver (const char *name) { - add_option ("input", &input_drivers, name, len); + add_option ("input", &input_drivers, name); } static void -add_output_driver (const char *name, size_t len) +add_output_driver (const char *name) { /* Ignore the 'vdsm' driver, since that should only be used by VDSM. * Ignore the 'openstack' and 'rhv-upload' drivers, since we do not * support passing all the options for them. */ - if ((len != 4 || memcmp (name, "vdsm", 4) != 0) && - (len != 9 || memcmp (name, "openstack", 9) != 0) && - (len != 10 || memcmp (name, "rhv-upload", 10) != 0)) - add_option ("output", &output_drivers, name, len); + if (STRNEQ (name, "vdsm") && + STRNEQ (name, "openstack") && + STRNEQ (name, "rhv-upload")) + add_option ("output", &output_drivers, name); } static int @@ -1071,9 +1061,10 @@ "-N", NULL }; - CLEANUP_FREE char *port_str = NULL; - const int ovecsize = 12; - int ovector[ovecsize]; + PCRE2_UCHAR *port_str; + PCRE2_SIZE portlen; + CLEANUP_PCRE2_MATCH_DATA pcre2_match_data *match_data = + pcre2_match_data_create (4, NULL); snprintf (remote_arg, sizeof remote_arg, "0:localhost:%d", local_port); @@ -1085,20 +1076,22 @@ (mexp_regexp[]) { { 100, .re = portfwd_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* Ephemeral port. */ - port_str = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]); + pcre2_substring_get_bynumber (match_data, 1, &port_str, &portlen); if (port_str == NULL) { set_ssh_internal_error ("strndup: %m"); mexp_close (h); return NULL; } - if (sscanf (port_str, "%d", remote_port) != 1) { + if (sscanf ((char *) port_str, "%d", remote_port) != 1) { set_ssh_internal_error ("cannot extract the port number from '%s'", port_str); + pcre2_substring_free (port_str); mexp_close (h); return NULL; } + pcre2_substring_free (port_str); break; case MEXP_EOF: @@ -1129,14 +1122,14 @@ static int wait_for_prompt (mexp_h *h) { - const int ovecsize = 12; - int ovector[ovecsize]; + CLEANUP_PCRE2_MATCH_DATA pcre2_match_data *match_data = + pcre2_match_data_create (4, NULL); switch (mexp_expect (h, (mexp_regexp[]) { { 100, .re = prompt_re }, { 0 } - }, ovector, ovecsize)) { + }, match_data)) { case 100: /* Got the prompt. */ return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/virt-p2v-make-disk.in new/virt-p2v-1.42.2/virt-p2v-make-disk.in --- old/virt-p2v-1.42.1/virt-p2v-make-disk.in 2022-03-31 10:56:30.552356059 +0200 +++ new/virt-p2v-1.42.2/virt-p2v-make-disk.in 2022-07-25 17:48:37.884430880 +0200 @@ -20,6 +20,9 @@ program="virt-p2v-make-disk" version="@PACKAGE_VERSION@" +prefix="@prefix@" +exec_prefix="@exec_prefix@" +datarootdir="@datarootdir@" if [ -n "$VIRT_P2V_DATA_DIR" ]; then datadir="$VIRT_P2V_DATA_DIR" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/virt-p2v-make-kickstart.in new/virt-p2v-1.42.2/virt-p2v-make-kickstart.in --- old/virt-p2v-1.42.1/virt-p2v-make-kickstart.in 2022-01-25 11:08:42.530885176 +0100 +++ new/virt-p2v-1.42.2/virt-p2v-make-kickstart.in 2022-07-25 17:48:37.884430880 +0200 @@ -20,6 +20,9 @@ program="virt-p2v-make-kickstart" version="@PACKAGE_VERSION@" +prefix="@prefix@" +exec_prefix="@exec_prefix@" +datarootdir="@datarootdir@" # Parse the command line arguments. shortopts=o:vV diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/virt-p2v-1.42.1/virt-p2v-make-kiwi.in new/virt-p2v-1.42.2/virt-p2v-make-kiwi.in --- old/virt-p2v-1.42.1/virt-p2v-make-kiwi.in 2019-09-24 12:10:33.000000000 +0200 +++ new/virt-p2v-1.42.2/virt-p2v-make-kiwi.in 2022-07-25 17:48:37.885430886 +0200 @@ -20,6 +20,9 @@ program="virt-p2v-make-kiwi" version="@PACKAGE_VERSION@" +prefix="@prefix@" +exec_prefix="@exec_prefix@" +datarootdir="@datarootdir@" # Parse the command line arguments. shortopts=o:V