[libvirt] [PATCH] virt-wireshark.m4: Defer $(prefix) substitution
Daniel P. Berrange
berrange at redhat.com
Mon Oct 24 08:52:41 UTC 2016
On Thu, Oct 20, 2016 at 03:54:13PM +0800, Michal Privoznik wrote:
> The problem with evaluating $(prefix) in configure phase is that
> autoconf does a lot of magic with this variable. Firstly, if the
> --prefix argument is not set for the configure script, the
> variable will have value "NONE". Wait, wat? Secondly, even
> autoconf scripts then have special cases for when variable is
> "NONE". It's even worse - whenever they need to construct new
> path based on prefix, they save its current value, substitute it
> with proper value (like /usr/local/), do what they need and then
> restore the original value. Le sigh.
> This mad behaviour is, however, suppressed if there's --prefix on
> the configure command line.
> Now, the problem is that we tried to construct path for wireshark
> plugin in the m4 file. Based on the knowledge described above, we
> shouldn't do it and just construct the full path in Makefile
> later where prefix has proper value.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> m4/virt-wireshark.m4 | 2 +-
> tools/Makefile.am | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/m4/virt-wireshark.m4 b/m4/virt-wireshark.m4
> index f383e2b..e1e4a59 100644
> --- a/m4/virt-wireshark.m4
> +++ b/m4/virt-wireshark.m4
> @@ -38,7 +38,7 @@ AC_DEFUN([LIBVIRT_CHECK_WIRESHARK],[
> if test "x$ws_prefix" = "x" ; then
> ws_prefix="/usr";
> fi
> - plugindir="${prefix}${plugindir#$ws_prefix}"
> + plugindir="${plugindir#$ws_prefix}"
> fi
> elif test "x$with_ws_plugindir" = "xno" || test "x$with_ws_plugindir" = "xyes"; then
> AC_MSG_ERROR([ws-plugindir must be used only with valid path])
> diff --git a/tools/Makefile.am b/tools/Makefile.am
> index e7e42c3..08e1680 100644
> --- a/tools/Makefile.am
> +++ b/tools/Makefile.am
> @@ -398,7 +398,7 @@ EXTRA_DIST += \
>
> if WITH_WIRESHARK_DISSECTOR
>
> -ws_plugindir = $(plugindir)
> +ws_plugindir = $(prefix)$(plugindir)
> ws_plugin_LTLIBRARIES = wireshark/src/libvirt.la
> wireshark_src_libvirt_la_CPPFLAGS = \
> -I wireshark/src $(WIRESHARK_DISSECTOR_CFLAGS)
It looks like this patch has broken the RPM build
https://ci.centos.org/view/libvirt-project/job/libvirt-master-rpm/82/systems=libvirt-fedora-23/console
Notice at the make install phase:
/usr/bin/mkdir -p '/home/jenkins/rpmbuild/BUILDROOT/libvirt-2.4.0-1.fc23.x86_64/usr/usr/lib64/wireshark/plugins/1.12.12'
/bin/sh ../libtool --mode=install /usr/bin/install -c wireshark/src/libvirt.la '/home/jenkins/rpmbuild/BUILDROOT/libvirt-2.4.0-1.fc23.x86_64/usr/usr/lib64/wireshark/plugins/1.12.12'
libtool: install: /usr/bin/install -c wireshark/src/.libs/libvirt.so /home/jenkins/rpmbuild/BUILDROOT/libvirt-2.4.0-1.fc23.x86_64/usr/usr/lib64/wireshark/plugins/1.12.12/libvirt.so
libtool: install: /usr/bin/install -c wireshark/src/.libs/libvirt.lai /home/jenkins/rpmbuild/BUILDROOT/libvirt-2.4.0-1.fc23.x86_64/usr/usr/lib64/wireshark/plugins/1.12.12/libvirt.la
libtool: warning: remember to run 'libtool --finish /usr/usr/lib64/wireshark/plugins/1.12.12'
It is getting "/usr/usr" in the path which is very wrong.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|
More information about the libvir-list
mailing list