[Libguestfs] [PATCH nbdkit v3 2/2] golang: Compile against the local nbdkit build, not installed.

Eric Blake eblake at redhat.com
Thu Apr 23 19:50:13 UTC 2020


On 4/23/20 2:13 PM, Richard W.M. Jones wrote:
> Compiling nbdkit from source when an older nbdkit is installed would
> fail because certain symbols such as .get_ready are not defined in the
> (installed) <nbdkit-plugin.h>:
> 
>    ../../src/libguestfs.org/nbdkit/nbdkit.go:541:8: plugin.get_ready undefined (type _Ctype_struct_nbdkit_plugin has no field or method get_ready)
> 
> Of course we should be compiling against the local
> include/nbdkit-plugin.h file.
> 
> We don't want to modify the *.go files themselves as they might be
> copied into other projects.  Instead we can set PKG_CONFIG_PATH to
> point to server/local/nbdkit.pc which will return the correct CFLAGS.
> 
> Fixes: commit 1ff44288ae1cf95428283e252edd9474c3fe3b55
> Thanks: Dan Berrangé, Eric Blake
> ---

> +++ b/plugins/golang/Makefile.am
> @@ -66,18 +66,21 @@ noinst_DATA = \
>   examples/dump-plugin/nbdkit-godump-plugin.so: \
>   	    $(plugin_sources) examples/dump-plugin/dumpplugin.go
>   	cd examples/dump-plugin && \
> +	PKG_CONFIG_PATH="$(abs_builddir)/server/local$${PKG_CONFIG_PATH:-:$$PKG_CONFIG_PATH}" \

Ooops, I typod this one.

unset foo
bar=
blah=set
echo "pre${foo:-:$foo}"
echo "pre${bar:-:$bar}"
echo "pre${bar:-:$blah}"

shows that :- was the wrong operator.  Better is :+.

All four sites need it.

But even then, I'm still getting build failures; and make V=1 shows that 
PKG_CONFIG_PATH is getting set correctly :(



-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




More information about the Libguestfs mailing list