diff --git a/utils/lvm2/Makefile b/utils/lvm2/Makefile index e5bd9b533..926cb32d6 100644 --- a/utils/lvm2/Makefile +++ b/utils/lvm2/Makefile @@ -15,7 +15,7 @@ PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2 PKG_HASH:=5ad1645a480440892e35f31616682acba0dc204ed049635d2df3e5a5929d0ed0 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION) +PKG_BUILD_DIR:=$(BUILD_DIR)/lvm2-$(BUILD_VARIANT)/$(PKG_NAME).$(PKG_VERSION) PKG_MAINTAINER:=Daniel Golle PKG_LICENSE:=GPL-2.0 LGPL-2.1 @@ -26,40 +26,82 @@ PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk -define Package/libdevmapper +define Package/libdevmapper/Default SECTION:=libs CATEGORY:=Libraries TITLE:=The Linux Kernel Device Mapper userspace library URL:=https://sourceware.org/dm/ - DEPENDS:=+kmod-dm +libpthread +libuuid +librt +libblkid +libselinux + DEPENDS:=+kmod-dm +libpthread +libuuid +librt +libblkid endef -define Package/libdevmapper/description + +define Package/libdevmapper-normal + $(call Package/libdevmapper/Default) + VARIANT := normal + PROVIDES := libdevmapper +endef + +define Package/libdevmapper-selinux + $(call Package/libdevmapper/Default) + VARIANT := selinux + DEPENDS += +libselinux + PROVIDES := libdevmapper +endef + +define Package/libdevmapper-normal/description The device-mapper is a component of the 2.6 linux kernel that supports logical volume management. It is required by LVM2 and EVMS. endef -define Package/lvm2 +define Package/libdevmapper-selinux/description +$(call Package/libdevmapper-normal/description) + This variant supports SELinux + +endef + +define Package/lvm2/default SECTION:=utils CATEGORY:=Utilities SUBMENU:=Disc TITLE:=The Linux Logical Volume Manager URL:=https://sourceware.org/lvm2/ - DEPENDS:=+libdevmapper +libreadline +libncurses +libaio + DEPENDS:=+libreadline +libncurses +libaio +endef + +define Package/lvm2-normal + $(call Package/lvm2/default) + VARIANT := normal + DEPENDS += +libdevmapper-normal + PROVIDES := lvm2 endef -define Package/lvm2/description +define Package/lvm2-selinux + $(call Package/lvm2/default) + VARIANT := selinux + DEPENDS += +libdevmapper-selinux + PROVIDES := lvm2 +endef + +define Package/lvm2-normal/description LVM2 refers to a new userspace toolset that provide logical volume management facilities on linux. It is reasonably backwards-compatible with the original LVM toolset. endef +define Package/lvm2-selinux/description +$(call Package/lvm2-normal/description) + This variant supports SELinux + +endef + + CONFIGURE_ARGS += \ --disable-o_direct \ --with-default-pid-dir=/var/run \ --with-default-dm-run-dir=/var/run \ --with-default-run-dir=/var/run/lvm \ - --with-default-locking-dir=/var/lock/lvm + --with-default-locking-dir=/var/lock/lvm \ + --$(if $(findstring selinux,$(BUILD_VARIANT)),en,dis)able-selinux ifneq ($(shell /bin/sh -c "echo -n 'X'"),X) MAKE_SHELL = SHELL=/bin/bash @@ -83,12 +125,14 @@ define Build/InstallDev $(CP) $(PKG_BUILD_DIR)/libdm/libdevmapper.pc $(1)/usr/lib/pkgconfig endef -define Package/libdevmapper/install +define Package/libdevmapper-normal/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so.* $(1)/usr/lib endef -define Package/lvm2/install +Package/libdevmapper-selinux/install = $(Package/libdevmapper-normal/install) + +define Package/lvm2-normal/install $(INSTALL_DIR) $(1)/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lvm $(1)/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dmsetup $(1)/sbin @@ -105,9 +149,15 @@ define Package/lvm2/install $(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l -exec $(CP) -a {} $(1)/sbin/ \; endef -define Package/lvm2/conffiles +Package/lvm2-selinux/install = $(Package/lvm2-normal/install) + +define Package/lvm2-normal/conffiles /etc/lvm/lvm.conf endef -$(eval $(call BuildPackage,libdevmapper)) -$(eval $(call BuildPackage,lvm2)) +Package/lvm2-selinux/conffiles = $(Package/lvm2/conffiles) + +$(eval $(call BuildPackage,libdevmapper-normal)) +$(eval $(call BuildPackage,libdevmapper-selinux)) +$(eval $(call BuildPackage,lvm2-normal)) +$(eval $(call BuildPackage,lvm2-selinux))