[libvirt] [PATCH] libvirt_setuid_rpc_client_la: Link APPARMOR libs

The libvirt_setuid_rpc_client_la depends on vircommand.c, in which we are conditionally calling aa_change_profile() - an AppArmor helper function. However, in linking the libvirt-setuid-rpc-client.la we have forgot to link AppArmor libraries leaving us with following error: make[3]: Entering directory `/home/zippy/work/libvirt/libvirt.git/tools' CCLD virsh CCLD virt-host-validate CCLD virt-login-shell ../src/.libs/libvirt-setuid-rpc-client.a(libvirt_setuid_rpc_client_la-vircommand.o): In function `virExec': /home/zippy/work/libvirt/libvirt.git/src/util/vircommand.c:653: undefined reference to `aa_change_profile' collect2: error: ld returned 1 exit status make[3]: *** [virt-login-shell] Error 1 make[3]: *** Waiting for unfinished jobs.... Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/Makefile.am | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 9dab4df..688c34c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2027,15 +2027,19 @@ libvirt_setuid_rpc_client_la_SOURCES = \ libvirt_setuid_rpc_client_la_LDFLAGS = \ $(AM_LDFLAGS) \ $(LIBXML_LIBS) \ - $(SELINUX_LIBS) \ - $(NULL) + $(SELINUX_LIBS) libvirt_setuid_rpc_client_la_CFLAGS = \ -DLIBVIRT_SETUID_RPC_CLIENT \ -I$(top_srcdir)/src/conf \ -I$(top_srcdir)/src/rpc \ $(AM_CFLAGS) \ - $(SELINUX_CFLAGS) \ - $(NULL) + $(SELINUX_CFLAGS) + +if WITH_SECDRIVER_APPARMOR +libvirt_setuid_rpc_client_la_LDFLAGS += $(APPARMOR_LIBS) +libvirt_setuid_rpc_client_la_CFLAGS += $(APPARMOR_CFLAGS) +endif WITH_SECDRIVER_APPARMOR + endif WITH_LXC lockdriverdir = $(libdir)/libvirt/lock-driver -- 1.8.1.5

On 10/22/2013 11:23 AM, Michal Privoznik wrote:
The libvirt_setuid_rpc_client_la depends on vircommand.c, in which we are conditionally calling aa_change_profile() - an AppArmor helper function. However, in linking the libvirt-setuid-rpc-client.la we have forgot to link AppArmor libraries leaving us with following error:
make[3]: Entering directory `/home/zippy/work/libvirt/libvirt.git/tools' CCLD virsh CCLD virt-host-validate CCLD virt-login-shell ../src/.libs/libvirt-setuid-rpc-client.a(libvirt_setuid_rpc_client_la-vircommand.o): In function `virExec': /home/zippy/work/libvirt/libvirt.git/src/util/vircommand.c:653: undefined reference to `aa_change_profile' collect2: error: ld returned 1 exit status make[3]: *** [virt-login-shell] Error 1 make[3]: *** Waiting for unfinished jobs....
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/Makefile.am | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am index 9dab4df..688c34c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2027,15 +2027,19 @@ libvirt_setuid_rpc_client_la_SOURCES = \ libvirt_setuid_rpc_client_la_LDFLAGS = \ $(AM_LDFLAGS) \ $(LIBXML_LIBS) \ - $(SELINUX_LIBS) \ - $(NULL) + $(SELINUX_LIBS)
This hunk is spurious - we LIKE the trailing $(NULL).
+ +if WITH_SECDRIVER_APPARMOR +libvirt_setuid_rpc_client_la_LDFLAGS += $(APPARMOR_LIBS) +libvirt_setuid_rpc_client_la_CFLAGS += $(APPARMOR_CFLAGS) +endif WITH_SECDRIVER_APPARMOR
NACK; I think Jim's patch (version 2 at https://www.redhat.com/archives/libvir-list/2013-October/msg00953.html) addresses the same problem in a nicer manner. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On 22.10.2013 11:29, Eric Blake wrote:
On 10/22/2013 11:23 AM, Michal Privoznik wrote:
The libvirt_setuid_rpc_client_la depends on vircommand.c, in which we are conditionally calling aa_change_profile() - an AppArmor helper function. However, in linking the libvirt-setuid-rpc-client.la we have forgot to link AppArmor libraries leaving us with following error:
make[3]: Entering directory `/home/zippy/work/libvirt/libvirt.git/tools' CCLD virsh CCLD virt-host-validate CCLD virt-login-shell ../src/.libs/libvirt-setuid-rpc-client.a(libvirt_setuid_rpc_client_la-vircommand.o): In function `virExec': /home/zippy/work/libvirt/libvirt.git/src/util/vircommand.c:653: undefined reference to `aa_change_profile' collect2: error: ld returned 1 exit status make[3]: *** [virt-login-shell] Error 1 make[3]: *** Waiting for unfinished jobs....
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/Makefile.am | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
NACK; I think Jim's patch (version 2 at https://www.redhat.com/archives/libvir-list/2013-October/msg00953.html) addresses the same problem in a nicer manner.
Oh, right. Haven't noticed somebody posted a patch already. Should we push the patch ASAP and hence fix the build? Michal
participants (2)
-
Eric Blake
-
Michal Privoznik