mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
The virt-login-shell binary is a setuid program that takes no arguments. When invoked it looks at the invoking uid, resolves it to a username, and finds an LXC guest with the same name. It then starts the guest and runs the shell in side the namespaces of the container. Given this set of tasks the virt-login-shell binary needs to connect to libvirtd, make various other libvirt API calls. This is a problem for setuid binaries as various libraries that libvirt.so links to are not safe. For example, they have constructor functions which execute an unknown amount of code that can be influenced by env variables. For this reason virt-login-shell doesn't use libvirt.so, but instead links to a custom, cut down, set of source files sufficient to be a local client only. This introduces a problem for integrating glib2 into libvirt though, as once integrated, there would be no way to build virt-login-shell without an external dependancy on glib2 and this is definitely not setuid safe. To resolve this problem, we split the virt-login-shell binary into two parts. The first part is setuid and does almost nothing. It simply records the original uid+gid, and then invokes the virt-login-shell-helper binary. Crucially when it does this it completes scrubs all environment variables. It is thus safe for virt-login-shell-helper to link to the normal libvirt.so. Any things that constructor functions do cannot be influenced by user control env vars or cli args. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
556 lines
14 KiB
Makefile
556 lines
14 KiB
Makefile
## Copyright (C) 2005-2016 Red Hat, Inc.
|
|
## Copyright (C) 2013 Yuto KAWAMURA(kawamuray) <kawamuray.dadada@gmail.com>
|
|
##
|
|
## This library is free software; you can redistribute it and/or
|
|
## modify it under the terms of the GNU Lesser General Public
|
|
## License as published by the Free Software Foundation; either
|
|
## version 2.1 of the License, or (at your option) any later version.
|
|
##
|
|
## This library 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
|
|
## Lesser General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU Lesser General Public
|
|
## License along with this library. If not, see
|
|
## <http://www.gnu.org/licenses/>.
|
|
|
|
AM_CPPFLAGS = \
|
|
-I$(top_builddir)/include -I$(top_srcdir)/include \
|
|
-I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib \
|
|
-I$(top_builddir)/src -I$(top_srcdir)/src \
|
|
-I$(top_srcdir)/src/util \
|
|
-I$(top_srcdir) \
|
|
$(NULL)
|
|
|
|
WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)
|
|
|
|
AM_CFLAGS = \
|
|
$(WARN_CFLAGS) \
|
|
$(PIE_CFLAGS) \
|
|
$(LIBXML_CFLAGS) \
|
|
$(NULL)
|
|
|
|
AM_LDFLAGS = \
|
|
$(RELRO_LDFLAGS) \
|
|
$(NO_INDIRECT_LDFLAGS) \
|
|
$(NO_UNDEFINED_LDFLAGS) \
|
|
$(NULL)
|
|
|
|
ICON_FILES = \
|
|
libvirt_win_icon_16x16.ico \
|
|
libvirt_win_icon_32x32.ico \
|
|
libvirt_win_icon_48x48.ico \
|
|
libvirt_win_icon_64x64.ico \
|
|
virsh_win_icon.rc
|
|
|
|
PODFILES = \
|
|
virt-admin.pod \
|
|
virt-host-validate.pod \
|
|
virt-login-shell.pod \
|
|
virt-pki-validate.pod \
|
|
virt-sanlock-cleanup.pod \
|
|
virt-xml-validate.pod \
|
|
virsh.pod \
|
|
$(NULL)
|
|
|
|
MANINFILES = \
|
|
virt-admin.1.in \
|
|
virt-host-validate.1.in \
|
|
virt-login-shell.1.in \
|
|
virt-pki-validate.1.in \
|
|
virt-sanlock-cleanup.8.in \
|
|
virt-xml-validate.1.in \
|
|
virsh.1.in \
|
|
$(NULL)
|
|
|
|
EXTRA_DIST = \
|
|
$(ICON_FILES) \
|
|
$(conf_DATA) \
|
|
virt-xml-validate.in \
|
|
virt-pki-validate.in \
|
|
virt-sanlock-cleanup.in \
|
|
libvirt-guests.sysconf \
|
|
virt-login-shell.conf \
|
|
virsh-edit.c \
|
|
bash-completion/vsh \
|
|
libvirt_recover_xattrs.sh \
|
|
$(PODFILES) \
|
|
$(MANINFILES) \
|
|
$(NULL)
|
|
|
|
|
|
CLEANFILES =
|
|
DISTCLEANFILES =
|
|
MAINTAINERCLEANFILES =
|
|
|
|
confdir = $(sysconfdir)/libvirt
|
|
conf_DATA =
|
|
|
|
bin_SCRIPTS = virt-xml-validate virt-pki-validate
|
|
bin_PROGRAMS = virsh virt-admin
|
|
libexec_SCRIPTS = libvirt-guests.sh
|
|
man1_MANS = \
|
|
virt-pki-validate.1 \
|
|
virt-xml-validate.1 \
|
|
virsh.1 \
|
|
virt-admin.1
|
|
|
|
if WITH_SANLOCK
|
|
sbin_SCRIPTS = virt-sanlock-cleanup
|
|
man8_MANS = virt-sanlock-cleanup.8
|
|
DISTCLEANFILES += virt-sanlock-cleanup
|
|
endif WITH_SANLOCK
|
|
|
|
if WITH_LOGIN_SHELL
|
|
conf_DATA += virt-login-shell.conf
|
|
bin_PROGRAMS += virt-login-shell
|
|
libexec_PROGRAMS = virt-login-shell-helper
|
|
man1_MANS += virt-login-shell.1
|
|
endif WITH_LOGIN_SHELL
|
|
|
|
if WITH_HOST_VALIDATE
|
|
bin_PROGRAMS += virt-host-validate
|
|
man1_MANS += virt-host-validate.1
|
|
endif WITH_HOST_VALIDATE
|
|
|
|
virt-xml-validate: virt-xml-validate.in Makefile
|
|
$(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|g' \
|
|
-e 's|[@]VERSION@|$(VERSION)|g' \
|
|
< $< > $@ || (rm $@ && exit 1) && chmod +x $@
|
|
|
|
virt-pki-validate: virt-pki-validate.in Makefile
|
|
$(AM_V_GEN)sed -e 's|[@]sysconfdir@|$(sysconfdir)|g' \
|
|
-e 's|[@]VERSION@|$(VERSION)|g' \
|
|
< $< > $@ || (rm $@ && exit 1) && chmod +x $@
|
|
|
|
virt-sanlock-cleanup: virt-sanlock-cleanup.in Makefile
|
|
$(AM_V_GEN)sed -e 's|[@]sysconfdir@|$(sysconfdir)|' \
|
|
-e 's|[@]localstatedir@|$(localstatedir)|' < $< > $@ \
|
|
|| (rm $@ && exit 1) && chmod +x $@
|
|
|
|
noinst_LTLIBRARIES = libvirt_shell.la
|
|
libvirt_shell_la_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(READLINE_CFLAGS) \
|
|
$(NULL)
|
|
libvirt_shell_la_LDFLAGS = \
|
|
$(AM_LDFLAGS) \
|
|
$(PIE_LDFLAGS) \
|
|
$(NULL)
|
|
libvirt_shell_la_LIBADD = \
|
|
../src/libvirt.la \
|
|
$(LIBXML_LIBS) \
|
|
$(READLINE_LIBS) \
|
|
../gnulib/lib/libgnu.la \
|
|
$(NULL)
|
|
libvirt_shell_la_SOURCES = \
|
|
vsh.c vsh.h \
|
|
vsh-table.c vsh-table.h
|
|
|
|
virt_host_validate_SOURCES = \
|
|
virt-host-validate.c \
|
|
virt-host-validate-common.c virt-host-validate-common.h
|
|
|
|
VIRT_HOST_VALIDATE_QEMU = \
|
|
virt-host-validate-qemu.c \
|
|
virt-host-validate-qemu.h
|
|
VIRT_HOST_VALIDATE_LXC = \
|
|
virt-host-validate-lxc.c \
|
|
virt-host-validate-lxc.h
|
|
VIRT_HOST_VALIDATE_BHYVE = \
|
|
virt-host-validate-bhyve.c \
|
|
virt-host-validate-bhyve.h
|
|
if WITH_QEMU
|
|
virt_host_validate_SOURCES += $(VIRT_HOST_VALIDATE_QEMU)
|
|
else ! WITH_QEMU
|
|
EXTRA_DIST += $(VIRT_HOST_VALIDATE_QEMU)
|
|
endif ! WITH_QEMU
|
|
|
|
if WITH_LXC
|
|
virt_host_validate_SOURCES += $(VIRT_HOST_VALIDATE_LXC)
|
|
else ! WITH_LXC
|
|
EXTRA_DIST += $(VIRT_HOST_VALIDATE_LXC)
|
|
endif ! WITH_LXC
|
|
|
|
if WITH_BHYVE
|
|
virt_host_validate_SOURCES += $(VIRT_HOST_VALIDATE_BHYVE)
|
|
else ! WITH_BHYVE
|
|
EXTRA_DIST += $(VIRT_HOST_VALIDATE_BHYVE)
|
|
endif ! WITH_BHYVE
|
|
|
|
virt_host_validate_LDFLAGS = \
|
|
$(AM_LDFLAGS) \
|
|
$(PIE_LDFLAGS) \
|
|
$(NULL)
|
|
|
|
virt_host_validate_LDADD = \
|
|
../src/libvirt.la \
|
|
../gnulib/lib/libgnu.la \
|
|
$(NULL)
|
|
|
|
virt_host_validate_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(NULL)
|
|
|
|
# virt-login-shell will be setuid, and must not link to anything
|
|
# except glibc. It wil scrub the environment and then invoke the
|
|
# real virt-login-shell-helper binary.
|
|
virt_login_shell_SOURCES = \
|
|
virt-login-shell.c
|
|
|
|
virt_login_shell_helper_SOURCES = \
|
|
virt-login-shell-helper.c
|
|
|
|
virt_login_shell_helper_LDFLAGS = \
|
|
$(AM_LDFLAGS) \
|
|
$(PIE_LDFLAGS) \
|
|
$(NULL)
|
|
virt_login_shell_helper_LDADD = \
|
|
../src/libvirt.la \
|
|
../src/libvirt-lxc.la \
|
|
../gnulib/lib/libgnu.la
|
|
|
|
virt_login_shell_helper_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(NULL)
|
|
|
|
virsh_SOURCES = \
|
|
virsh.c virsh.h \
|
|
virsh-checkpoint.c virsh-checkpoint.h \
|
|
virsh-completer.c virsh-completer.h \
|
|
virsh-console.c virsh-console.h \
|
|
virsh-domain.c virsh-domain.h \
|
|
virsh-domain-monitor.c virsh-domain-monitor.h \
|
|
virsh-host.c virsh-host.h \
|
|
virsh-interface.c virsh-interface.h \
|
|
virsh-network.c virsh-network.h \
|
|
virsh-nodedev.c virsh-nodedev.h \
|
|
virsh-nwfilter.c virsh-nwfilter.h \
|
|
virsh-pool.c virsh-pool.h \
|
|
virsh-secret.c virsh-secret.h \
|
|
virsh-snapshot.c virsh-snapshot.h \
|
|
virsh-util.c virsh-util.h \
|
|
virsh-volume.c virsh-volume.h \
|
|
$(NULL)
|
|
|
|
virsh_LDFLAGS = \
|
|
$(AM_LDFLAGS) \
|
|
$(PIE_LDFLAGS) \
|
|
$(NULL)
|
|
virsh_LDADD = \
|
|
$(STATIC_BINARIES) \
|
|
../src/libvirt-lxc.la \
|
|
../src/libvirt-qemu.la \
|
|
libvirt_shell.la
|
|
virsh_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(READLINE_CFLAGS)
|
|
|
|
virt_admin_SOURCES = \
|
|
virt-admin.c virt-admin.h \
|
|
virt-admin-completer.c virt-admin-completer.h \
|
|
$(NULL)
|
|
|
|
virt_admin_LDFLAGS = \
|
|
$(AM_LDFLAGS) \
|
|
$(STATIC_BINARIES) \
|
|
$(PIE_LDFLAGS) \
|
|
$(NULL)
|
|
virt_admin_LDADD = \
|
|
../src/libvirt-admin.la \
|
|
libvirt_shell.la \
|
|
$(LIBXML_LIBS) \
|
|
$(NULL)
|
|
virt_admin_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(READLINE_CFLAGS)
|
|
BUILT_SOURCES =
|
|
|
|
if WITH_WIN_ICON
|
|
virsh_LDADD += virsh_win_icon.$(OBJEXT)
|
|
|
|
# Before you edit virsh_win_icon.rc, please note the following
|
|
# limitations of the resource file format:
|
|
#
|
|
# (1) '..' is not permitted in the icon filename field.
|
|
# (2) '-' is not permitted in the icon filename field.
|
|
# (3) Comments are not permitted in the file.
|
|
#
|
|
# Windows appears to choose the first <= 32x32 icon it finds
|
|
# in the resource file. Therefore you should list the available
|
|
# icons from largest to smallest, and make sure that the 32x32
|
|
# icon is the most legible.
|
|
#
|
|
# Windows .ICO is a special MS-only format. GIMP and other
|
|
# tools can write it. However there are several variations,
|
|
# and Windows seems to do its own colour quantization. More
|
|
# information is needed in this area.
|
|
|
|
virsh_win_icon.$(OBJEXT): virsh_win_icon.rc
|
|
$(AM_V_GEN)$(WINDRES) \
|
|
--input-format rc --input $< \
|
|
--output-format coff --output $@
|
|
endif WITH_WIN_ICON
|
|
|
|
POD2MAN = pod2man -c "Virtualization Support" -r "$(PACKAGE)-$(VERSION)"
|
|
|
|
%.1.in: %.pod
|
|
$(AM_V_GEN)$(POD2MAN) $< $@-t1 && \
|
|
if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
|
|
sed \
|
|
-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
|
|
-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
|
|
< $@-t1 > $@-t2 && \
|
|
rm -f $@-t1 && \
|
|
mv $@-t2 $@
|
|
|
|
%.8.in: %.pod
|
|
$(AM_V_GEN)$(POD2MAN) --section=8 $< $@-t1 && \
|
|
if grep 'POD ERROR' $@-t1; then rm $@-t1; exit 1; fi && \
|
|
sed \
|
|
-e 's|SYSCONFDIR|\@sysconfdir\@|g' \
|
|
-e 's|LOCALSTATEDIR|\@localstatedir\@|g' \
|
|
< $@-t1 > $@-t2 && \
|
|
rm -f $@-t1 && \
|
|
mv $@-t2 $@
|
|
|
|
%.1: %.1.in $(top_srcdir)/configure.ac
|
|
$(AM_V_GEN)sed \
|
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
< $< > $@-t && \
|
|
mv $@-t $@
|
|
|
|
%.8: %.8.in $(top_srcdir)/configure.ac
|
|
$(AM_V_GEN)sed \
|
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
< $< > $@-t && \
|
|
mv $@-t $@
|
|
|
|
install-data-local: install-systemd install-nss \
|
|
install-bash-completion
|
|
|
|
uninstall-local: uninstall-systemd uninstall-nss \
|
|
uninstall-bash-completion
|
|
|
|
install-sysconfig:
|
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
|
|
$(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \
|
|
$(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
|
|
|
|
uninstall-sysconfig:
|
|
rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
|
|
rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||:
|
|
|
|
EXTRA_DIST += libvirt-guests.sh.in
|
|
|
|
libvirt-guests.sh: libvirt-guests.sh.in $(top_builddir)/config.status
|
|
$(AM_V_GEN)sed \
|
|
-e 's|[@]PACKAGE[@]|$(PACKAGE)|g' \
|
|
-e 's|[@]bindir[@]|$(bindir)|g' \
|
|
-e 's|[@]localedir[@]|$(localedir)|g' \
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
-e 's|[@]sbindir[@]|$(sbindir)|g' \
|
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
|
< $< > $@-t && \
|
|
chmod a+x $@-t && \
|
|
mv $@-t $@
|
|
BUILT_SOURCES += libvirt-guests.sh
|
|
|
|
EXTRA_DIST += libvirt-guests.service.in
|
|
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
|
|
|
|
if LIBVIRT_INIT_SCRIPT_SYSTEMD
|
|
install-systemd: libvirt-guests.service install-sysconfig libvirt-guests.sh
|
|
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
|
|
$(INSTALL_DATA) libvirt-guests.service \
|
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
|
|
|
|
uninstall-systemd: uninstall-sysconfig
|
|
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
|
|
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) ||:
|
|
|
|
BUILT_SOURCES += libvirt-guests.service
|
|
|
|
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
|
install-systemd:
|
|
uninstall-systemd:
|
|
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
|
|
|
libvirt-guests.service: libvirt-guests.service.in $(top_builddir)/config.status
|
|
$(AM_V_GEN)sed \
|
|
-e 's|[@]PACKAGE[@]|$(PACKAGE)|g' \
|
|
-e 's|[@]bindir[@]|$(bindir)|g' \
|
|
-e 's|[@]localedir[@]|$(localedir)|g' \
|
|
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
|
|
-e 's|[@]sbindir[@]|$(sbindir)|g' \
|
|
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
|
|
-e 's|[@]libexecdir[@]|$(libexecdir)|g' \
|
|
< $< > $@-t && \
|
|
mv $@-t $@
|
|
|
|
|
|
if WITH_BASH_COMPLETION
|
|
install-bash-completion:
|
|
$(MKDIR_P) "$(DESTDIR)$(BASH_COMPLETIONS_DIR)"
|
|
$(INSTALL_SCRIPT) $(srcdir)/bash-completion/vsh \
|
|
"$(DESTDIR)$(BASH_COMPLETIONS_DIR)/vsh"
|
|
( cd $(DESTDIR)$(BASH_COMPLETIONS_DIR) && \
|
|
rm -f virsh virt-admin && \
|
|
$(LN_S) vsh virsh && \
|
|
$(LN_S) vsh virt-admin )
|
|
|
|
uninstall-bash-completion:
|
|
rm -f $(DESTDIR)$(BASH_COMPLETIONS_DIR)/vsh \
|
|
$(DESTDIR)$(BASH_COMPLETIONS_DIR)/virsh \
|
|
$(DESTDIR)$(BASH_COMPLETIONS_DIR)/virt-admin
|
|
rmdir $(DESTDIR)$(BASH_COMPLETIONS_DIR) ||:
|
|
else ! WITH_BASH_COMPLETION
|
|
install-bash-completion:
|
|
uninstall-bash-completion:
|
|
endif ! WITH_BASH_COMPLETION
|
|
|
|
|
|
EXTRA_DIST += wireshark/util/genxdrstub.pl
|
|
|
|
if WITH_WIRESHARK_DISSECTOR
|
|
|
|
ws_plugin_LTLIBRARIES = wireshark/src/libvirt.la
|
|
wireshark_src_libvirt_la_CFLAGS = \
|
|
-I wireshark/src $(WIRESHARK_DISSECTOR_CFLAGS) $(XDR_CFLAGS)
|
|
wireshark_src_libvirt_la_LDFLAGS = -avoid-version -module
|
|
wireshark_src_libvirt_la_SOURCES = \
|
|
wireshark/src/packet-libvirt.h \
|
|
wireshark/src/packet-libvirt.c \
|
|
wireshark/src/plugin.c
|
|
|
|
wireshark/src/packet-libvirt.c: wireshark/src/packet-libvirt.h \
|
|
wireshark/src/libvirt/protocol.h
|
|
|
|
WS_DISSECTOR_PROTO_FILES = \
|
|
$(abs_top_srcdir)/src/remote/remote_protocol.x \
|
|
$(abs_top_srcdir)/src/remote/qemu_protocol.x \
|
|
$(abs_top_srcdir)/src/remote/lxc_protocol.x \
|
|
$(abs_top_srcdir)/src/rpc/virkeepaliveprotocol.x
|
|
|
|
wireshark/src/libvirt/protocol.h: wireshark/util/genxdrstub.pl \
|
|
$(WS_DISSECTOR_PROTO_FILES)
|
|
$(AM_V_GEN)$(MKDIR_P) wireshark/src/libvirt && \
|
|
cd wireshark/src && \
|
|
LIBVIRT_VERSION=$(LIBVIRT_VERSION) \
|
|
$(PERL) $(abs_top_srcdir)/tools/wireshark/util/genxdrstub.pl \
|
|
$(WS_DISSECTOR_PROTO_FILES)
|
|
|
|
endif WITH_WIRESHARK_DISSECTOR
|
|
|
|
if WITH_BSD_NSS
|
|
LIBVIRT_NSS_SYMBOL_FILE = \
|
|
$(srcdir)/nss/libvirt_nss_bsd.syms
|
|
LIBVIRT_GUEST_NSS_SYMBOL_FILE = \
|
|
$(LIBVIRT_NSS_SYMBOL_FILE)
|
|
NSS_SO_VER = 1
|
|
|
|
install-nss:
|
|
( cd $(DESTDIR)$(libdir) && \
|
|
rm -f nss_libvirt.so.$(NSS_SO_VER) && \
|
|
$(LN_S) libnss_libvirt.so.$(NSS_SO_VER) nss_libvirt.so.$(NSS_SO_VER) && \
|
|
rm -f nss_libvirt_guest.so.$(NSS_SO_VER) && \
|
|
$(LN_S) libnss_libvirt_guest.so.$(NSS_SO_VER) \
|
|
nss_libvirt_guest.so.$(NSS_SO_VER))
|
|
|
|
uninstall-nss:
|
|
-rm -f $(DESTDIR)$(libdir)/nss_libvirt.so.$(NSS_SO_VER)
|
|
-rm -f $(DESTDIR)$(libdir)/nss_libvirt_guest.so.$(NSS_SO_VER)
|
|
else ! WITH_BSD_NSS
|
|
LIBVIRT_NSS_SYMBOL_FILE = \
|
|
$(srcdir)/nss/libvirt_nss.syms
|
|
LIBVIRT_GUEST_NSS_SYMBOL_FILE = \
|
|
$(srcdir)/nss/libvirt_guest_nss.syms
|
|
NSS_SO_VER = 2
|
|
|
|
install-nss:
|
|
uninstall-nss:
|
|
endif ! WITH_BSD_NSS
|
|
|
|
LIBVIRT_NSS_SOURCES = \
|
|
nss/libvirt_nss.c \
|
|
nss/libvirt_nss.h
|
|
|
|
if WITH_NSS
|
|
noinst_LTLIBRARIES += nss/libnss_libvirt_impl.la
|
|
nss_libnss_libvirt_impl_la_SOURCES = \
|
|
$(LIBVIRT_NSS_SOURCES)
|
|
|
|
nss_libnss_libvirt_impl_la_CFLAGS = \
|
|
-DLIBVIRT_NSS \
|
|
$(AM_CFLAGS) \
|
|
$(NULL)
|
|
|
|
nss_libnss_libvirt_impl_la_LIBADD = \
|
|
../gnulib/lib/libgnu.la \
|
|
../src/libvirt-nss.la
|
|
|
|
nss_libnss_libvirt_la_SOURCES =
|
|
nss_libnss_libvirt_la_LDFLAGS = \
|
|
$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_NSS_SYMBOL_FILE) \
|
|
$(AM_LDFLAGS) \
|
|
-module \
|
|
-export-dynamic \
|
|
-avoid-version \
|
|
-shared \
|
|
-shrext .so.$(NSS_SO_VER)
|
|
|
|
nss_libnss_libvirt_la_LIBADD = \
|
|
nss/libnss_libvirt_impl.la
|
|
|
|
noinst_LTLIBRARIES += nss/libnss_libvirt_guest_impl.la
|
|
nss_libnss_libvirt_guest_impl_la_SOURCES = \
|
|
$(LIBVIRT_NSS_SOURCES)
|
|
|
|
nss_libnss_libvirt_guest_impl_la_CFLAGS = \
|
|
-DLIBVIRT_NSS \
|
|
-DLIBVIRT_NSS_GUEST \
|
|
$(AM_CFLAGS) \
|
|
$(NULL)
|
|
|
|
nss_libnss_libvirt_guest_impl_la_LIBADD = \
|
|
../gnulib/lib/libgnu.la \
|
|
../src/libvirt-nss.la
|
|
|
|
nss_libnss_libvirt_guest_la_SOURCES =
|
|
nss_libnss_libvirt_guest_la_LDFLAGS = \
|
|
$(VERSION_SCRIPT_FLAGS)$(LIBVIRT_GUEST_NSS_SYMBOL_FILE) \
|
|
$(AM_LDFLAGS) \
|
|
-module \
|
|
-export-dynamic \
|
|
-avoid-version \
|
|
-shared \
|
|
-shrext .so.$(NSS_SO_VER)
|
|
|
|
nss_libnss_libvirt_guest_la_LIBADD = \
|
|
nss/libnss_libvirt_guest_impl.la
|
|
|
|
lib_LTLIBRARIES = \
|
|
nss/libnss_libvirt.la \
|
|
nss/libnss_libvirt_guest.la
|
|
|
|
endif WITH_NSS
|
|
|
|
EXTRA_DIST += $(LIBVIRT_NSS_SOURCES) \
|
|
$(srcdir)/nss/libvirt_nss.syms \
|
|
$(srcdir)/nss/libvirt_nss_bsd.syms \
|
|
$(srcdir)/nss/libvirt_guest_nss.syms
|
|
|
|
clean-local:
|
|
-rm -rf wireshark/src/libvirt
|
|
|
|
CLEANFILES += $(bin_SCRIPTS)
|
|
CLEANFILES += *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.i *.s
|
|
CLEANFILES += $(man1_MANS) $(man8_MANS)
|
|
|
|
DISTCLEANFILES += $(BUILT_SOURCES)
|
|
|
|
MAINTAINERCLEANFILES += $(MANINFILES)
|