| ################################################################################ |
| # |
| # libvirt |
| # |
| ################################################################################ |
| |
| LIBVIRT_VERSION = 7.10.0 |
| LIBVIRT_SITE = https://libvirt.org/sources |
| LIBVIRT_SOURCE = libvirt-$(LIBVIRT_VERSION).tar.xz |
| LIBVIRT_LICENSE = LGPL-2.1+ |
| LIBVIRT_LICENSE_FILES = COPYING |
| LIBVIRT_CPE_ID_VENDOR = redhat |
| LIBVIRT_INSTALL_STAGING = YES |
| LIBVIRT_DEPENDENCIES = \ |
| host-libxslt \ |
| host-nfs-utils \ |
| host-pkgconf \ |
| host-python-docutils \ |
| gnutls \ |
| libglib2 \ |
| libpciaccess \ |
| libtirpc \ |
| libxml2 \ |
| udev \ |
| zlib \ |
| $(TARGET_NLS_DEPENDENCIES) |
| |
| LIBVIRT_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) |
| |
| LIBVIRT_CONF_ENV += \ |
| CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" \ |
| LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`" |
| |
| LIBVIRT_CONF_OPTS = \ |
| -Drpath=disabled \ |
| -Dapparmor=disabled \ |
| -Ddocs=disabled \ |
| -Ddriver_bhyve=disabled \ |
| -Ddriver_ch=disabled \ |
| -Ddriver_esx=disabled \ |
| -Ddriver_hyperv=disabled \ |
| -Ddriver_libxl=disabled \ |
| -Ddriver_openvz=disabled \ |
| -Ddriver_remote=enabled \ |
| -Ddriver_secrets=enabled \ |
| -Ddriver_test=disabled \ |
| -Ddriver_vbox=disabled \ |
| -Ddriver_vmware=disabled \ |
| -Ddriver_vz=disabled \ |
| -Ddtrace=disabled \ |
| -Dexpensive_tests=disabled \ |
| -Dfirewalld=disabled \ |
| -Dfirewalld_zone=disabled \ |
| -Dglusterfs=disabled \ |
| -Dhost_validate=enabled \ |
| -Dinit_script=$(if $(BR2_INIT_SYSTEMD),systemd,none) \ |
| -Dlogin_shell=disabled \ |
| -Dnetcf=disabled \ |
| -Dnls=$(if $(BR2_SYSTEM_ENABLE_NLS),enabled,disabled) \ |
| -Dnumad=disabled \ |
| -Dopenwsman=disabled \ |
| -Dpciaccess=enabled \ |
| -Dpm_utils=disabled \ |
| -Dsanlock=disabled \ |
| -Dsasl=disabled \ |
| -Dsecdriver_apparmor=disabled \ |
| -Dstorage_iscsi=disabled \ |
| -Dstorage_iscsi_direct=disabled \ |
| -Dstorage_mpath=disabled \ |
| -Dsysctl_config=enabled \ |
| -Dtest_coverage=false \ |
| -Dtests=disabled \ |
| -Dudev=enabled \ |
| -Dwireshark_dissector=disabled |
| |
| # warning_level should only drive the level of warnings during the |
| # compilation of C code. However, libvirt misuses that to also |
| # enable SSP when warning_level == 2 |
| # Force warning_level=1 to disable SSP, and let our toolchain wrapper |
| # handle it. |
| LIBVIRT_CONF_OPTS += -Dwarning_level=1 |
| |
| ifeq ($(BR2_PACKAGE_ATTR),y) |
| LIBVIRT_CONF_OPTS += -Dattr=enabled |
| LIBVIRT_DEPENDENCIES += attr |
| else |
| LIBVIRT_CONF_OPTS += -Dattr=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_AUDIT),y) |
| LIBVIRT_CONF_OPTS += -Daudit=enabled |
| LIBVIRT_DEPENDENCIES += audit |
| else |
| LIBVIRT_CONF_OPTS += -Daudit=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y) |
| LIBVIRT_CONF_OPTS += -Dbash_completion=enabled |
| LIBVIRT_DEPENDENCIES += bash-completion |
| else |
| LIBVIRT_CONF_OPTS += -Dbash_completion=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y) |
| LIBVIRT_CONF_OPTS += -Dblkid=enabled |
| LIBVIRT_DEPENDENCIES += util-linux |
| else |
| LIBVIRT_CONF_OPTS += -Dblkid=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBCAP_NG),y) |
| LIBVIRT_CONF_OPTS += -Dcapng=enabled |
| LIBVIRT_DEPENDENCIES += libcap-ng |
| else |
| LIBVIRT_CONF_OPTS += -Dcapng=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBCURL),y) |
| LIBVIRT_CONF_OPTS += -Dcurl=enabled |
| LIBVIRT_DEPENDENCIES += libcurl |
| else |
| LIBVIRT_CONF_OPTS += -Dcurl=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBFUSE),y) |
| LIBVIRT_CONF_OPTS += -Dfuse=enabled |
| LIBVIRT_DEPENDENCIES += libfuse |
| else |
| LIBVIRT_CONF_OPTS += -Dfuse=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBISCSI),y) |
| LIBVIRT_CONF_OPTS += -Dlibiscsi=enabled |
| LIBVIRT_DEPENDENCIES += libiscsi |
| else |
| LIBVIRT_CONF_OPTS += -Dlibiscsi=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBNL),y) |
| LIBVIRT_CONF_OPTS += -Dlibnl=enabled |
| LIBVIRT_DEPENDENCIES += libnl |
| else |
| LIBVIRT_CONF_OPTS += -Dlibnl=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBPCAP),y) |
| LIBVIRT_CONF_OPTS += -Dlibpcap=enabled |
| LIBVIRT_DEPENDENCIES += libpcap |
| else |
| LIBVIRT_CONF_OPTS += -Dlibpcap=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_NUMACTL),y) |
| LIBVIRT_CONF_OPTS += -Dnumactl=enabled |
| LIBVIRT_DEPENDENCIES += numactl |
| else |
| LIBVIRT_CONF_OPTS += -Dnumactl=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_POLKIT),y) |
| LIBVIRT_CONF_OPTS += -Dpolkit=enabled |
| LIBVIRT_DEPENDENCIES += polkit |
| else |
| LIBVIRT_CONF_OPTS += -Dpolkit=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_READLINE),y) |
| LIBVIRT_CONF_OPTS += -Dreadline=enabled |
| LIBVIRT_DEPENDENCIES += readline |
| else |
| LIBVIRT_CONF_OPTS += -Dreadline=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBSELINUX),y) |
| LIBVIRT_CONF_OPTS += -Dselinux=enabled -Dsecdriver_selinux=enabled \ |
| -Dselinux_mount=/sys/fs/selinux |
| LIBVIRT_DEPENDENCIES += libselinux |
| else |
| LIBVIRT_CONF_OPTS += -Dselinux=disabled -Dsecdriver_selinux=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LVM2_STANDARD_INSTALL),y) |
| LIBVIRT_CONF_OPTS += -Dstorage_lvm=enabled |
| LIBVIRT_DEPENDENCIES += host-lvm2 lvm2 |
| else |
| LIBVIRT_CONF_OPTS += -Dstorage_lvm=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_YAJL),y) |
| LIBVIRT_CONF_OPTS += -Dyajl=enabled |
| LIBVIRT_DEPENDENCIES += yajl |
| else |
| LIBVIRT_CONF_OPTS += -Dyajl=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBVIRT_DAEMON),y) |
| # Network is used by daemon, only |
| LIBVIRT_CONF_OPTS += \ |
| -Ddriver_interface=enabled \ |
| -Ddriver_libvirtd=enabled \ |
| -Ddriver_network=enabled |
| |
| ifeq ($(BR2_PACKAGE_LIBSSH),y) |
| LIBVIRT_CONF_OPTS += -Dlibssh=enabled |
| LIBVIRT_DEPENDENCIES += libssh |
| else |
| LIBVIRT_CONF_OPTS += -Dlibssh=disabled |
| endif |
| |
| # Can't build nss plugin without network or yajl |
| ifeq ($(BR2_PACKAGE_LIBNSS)$(BR2_PACKAGE_YAJL),yy) |
| LIBVIRT_CONF_OPTS += -Dnss=enabled |
| LIBVIRT_DEPENDENCIES += libnss |
| else |
| LIBVIRT_CONF_OPTS += -Dnss=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBSSH2),y) |
| LIBVIRT_CONF_OPTS += -Dlibssh2=enabled |
| LIBVIRT_DEPENDENCIES += libssh2 |
| else |
| LIBVIRT_CONF_OPTS += -Dlibssh2=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBVIRT_LXC),y) |
| LIBVIRT_CONF_OPTS += -Dlogin_shell=enabled -Ddriver_lxc=enabled |
| LIBVIRT_DEPENDENCIES += lxc |
| else |
| LIBVIRT_CONF_OPTS += -Dlogin_shell=disabled -Ddriver_lxc=disabled |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBVIRT_QEMU),y) |
| LIBVIRT_CONF_OPTS += -Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=kvm |
| else |
| LIBVIRT_CONF_OPTS += -Ddriver_qemu=disabled -Dqemu_user=no -Dqemu_group=no |
| endif |
| |
| else # BR2_PACKAGE_LIBVIRT_DAEMON |
| |
| LIBVIRT_CONF_OPTS += \ |
| -Ddriver_interface=disabled \ |
| -Ddriver_libvirtd=disabled \ |
| -Ddriver_network=disabled |
| |
| endif |
| |
| define LIBVIRT_INSTALL_UDEV_RULES |
| $(INSTALL) -D -m 644 package/libvirt/90-kvm.rules \ |
| $(TARGET_DIR)/etc/udev/rules.d/90-kvm.rules |
| endef |
| LIBVIRT_POST_INSTALL_TARGET_HOOKS += LIBVIRT_INSTALL_UDEV_RULES |
| |
| # Adjust directory ownerships and permissions. Notice /var/log is a symlink to |
| # /tmp in the default sysvinit skeleton, so some directories may disappear at |
| # run-time. Set the permissions anyway, since they are valid for the default |
| # systemd skeleton. |
| define LIBVIRT_PERMISSIONS |
| /etc/libvirt d 700 root root - - - - - |
| /etc/libvirt/nwfilter d 700 root root - - - - - |
| /var/lib/libvirt d 755 root root - - - - - |
| /var/lib/libvirt/boot d 711 root root - - - - - |
| /var/lib/libvirt/dnsmasq d 755 root root - - - - - |
| /var/lib/libvirt/filesystems d 711 root root - - - - - |
| /var/lib/libvirt/images d 711 root root - - - - - |
| /var/lib/libvirt/network d 700 root root - - - - - |
| /var/lib/libvirt/qemu d 751 qemu kvm - - - - - |
| /var/lib/libvirt/qemu/autostart d 700 root root - - - - - |
| /var/lib/libvirt/qemu/networks d 700 root root - - - - - |
| /var/lib/libvirt/qemu/networks/autostart d 700 root root - - - - - |
| /var/lib/libvirt/qemu/channel d 755 qemu kvm - - - - - |
| /var/lib/libvirt/qemu/channel/target d 755 qemu kvm - - - - - |
| /var/lib/libvirt/qemu/dump d 755 qemu kvm - - - - - |
| /var/lib/libvirt/qemu/nvram d 755 qemu kvm - - - - - |
| /var/lib/libvirt/qemu/save d 755 qemu kvm - - - - - |
| /var/lib/libvirt/qemu/snapshot d 755 qemu kvm - - - - - |
| /var/lib/libvirt/secrets d 700 root root - - - - - |
| /var/lib/libvirt/storage d 755 root root - - - - - |
| /var/lib/libvirt/storage/autostart d 755 root root - - - - - |
| /var/cache/libvirt d 711 root root - - - - - |
| /var/cache/libvirt/lxc d 750 root root - - - - - |
| /var/cache/libvirt/qemu d 750 qemu kvm - - - - - |
| /var/cache/libvirt/qemu/capabilities d 755 root root - - - - - |
| /var/log/libvirt d 700 root root - - - - - |
| /var/log/libvirt/lxc d 750 root root - - - - - |
| /var/log/libvirt/qemu d 750 root root - - - - - |
| /var/log/swtpm d 755 root root - - - - - |
| /var/log/swtpm/libvirt d 755 root root - - - - - |
| /var/log/swtpm/libvirt/qemu d 711 root root - - - - - |
| endef |
| |
| # libvirt may need to create persistent files (e.g. VM definitions) in these |
| # directories. Move them to /var/lib because /etc may be on a read-only or |
| # volatile (initramfs) filesystem. We could tweak the code to change these |
| # paths but the patch would be large and would break compatibility with |
| # ordinary installations and with the documentation. |
| define LIBVIRT_CREATE_SYMLINKS |
| $(INSTALL) -m 700 -d $(TARGET_DIR)/etc/libvirt |
| $(INSTALL) -m 755 -d $(TARGET_DIR)/var/lib/libvirt |
| $(INSTALL) -m 751 -d $(TARGET_DIR)/var/lib/libvirt/qemu |
| $(INSTALL) -m 700 -d $(TARGET_DIR)/var/lib/libvirt/secrets |
| $(INSTALL) -m 755 -d $(TARGET_DIR)/var/lib/libvirt/storage |
| ln -s -f ../../var/lib/libvirt/qemu $(TARGET_DIR)/etc/libvirt/ |
| ln -s -f ../../var/lib/libvirt/secrets $(TARGET_DIR)/etc/libvirt/ |
| ln -s -f ../../var/lib/libvirt/storage $(TARGET_DIR)/etc/libvirt/ |
| endef |
| |
| LIBVIRT_PRE_INSTALL_TARGET_HOOKS += LIBVIRT_CREATE_SYMLINKS |
| |
| ifeq ($(BR2_PACKAGE_LIBVIRT_QEMU),y) |
| define LIBVIRT_USERS |
| qemu -1 kvm -1 * - - - Libvirt qemu/kvm daemon |
| endef |
| endif |
| |
| ifeq ($(BR2_PACKAGE_LIBVIRT_DAEMON),y) |
| define LIBVIRT_INSTALL_INIT_SYSV |
| $(INSTALL) -D -m 0755 package/libvirt/S91virtlogd $(TARGET_DIR)/etc/init.d/S91virtlogd |
| $(INSTALL) -D -m 0755 package/libvirt/S92libvirtd $(TARGET_DIR)/etc/init.d/S92libvirtd |
| endef |
| endif |
| |
| $(eval $(meson-package)) |