mirror of
https://github.com/openwrt/packages.git
synced 2025-10-23 10:54:14 +00:00
It was reported that in some build environments the install step fails with following: find /home/.../buildsystem/build_dir/target-aarch64-unknown-linux-gnu_musl/lvm2-normal/LVM2.2.03.22/ipkg-install/usr/sbin/ -type l -exec cp -fpR -a {} /home/.../buildsystem/build_dir/target-aarch64-unknown-linux-gnu_musl/lvm2-normal/LVM2.2.03.22/.pkgdir/lvm2/sbin/ \; make[6]: /bin/sh: Argument list too long This is likely happening once the number of symlinks exceeds the shell's maximum argument limit. So lets fix it by switching to more reliable xargs based solution: print0/xargs -0 to handle filenames with special characters xargs -r to skip execution if no files are found cp -t to specify the target directory once instead of for each file Fixes: #26552 Signed-off-by: Petr Štetiar <ynezz@true.cz>
171 lines
4.8 KiB
Makefile
171 lines
4.8 KiB
Makefile
#
|
|
# Copyright (C) 2009-2010 Stefan Monnier
|
|
# Copyright (C) 2011-2018 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v3+.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=LVM2
|
|
PKG_VERSION:=2.03.33
|
|
PKG_VERSION_DM:=1.02.207
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
|
|
PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2 \
|
|
https://www.mirrorservice.org/sites/sourceware.org/pub/lvm2
|
|
|
|
PKG_HASH:=be4babd8a986d73279f1e75fbb1d33cb41559b75c2063611781bfeb8c2def139
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/lvm2-$(BUILD_VARIANT)/$(PKG_NAME).$(PKG_VERSION)
|
|
|
|
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
|
|
PKG_LICENSE:=GPL-2.0 LGPL-2.1
|
|
PKG_LICENSE_FILES:=COPYING COPYING.lib
|
|
PKG_CPE_ID:=cpe:/a:heinz_mauelshagen:lvm2
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/libdevmapper/Default
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=The Linux Kernel Device Mapper userspace library
|
|
URL:=https://sourceware.org/dm/
|
|
VERSION:=$(PKG_VERSION_DM)
|
|
DEPENDS:=+kmod-dm +libpthread +libuuid +librt +libblkid
|
|
endef
|
|
|
|
|
|
define Package/libdevmapper
|
|
$(call Package/libdevmapper/Default)
|
|
VARIANT := normal
|
|
endef
|
|
|
|
define Package/libdevmapper-selinux
|
|
$(call Package/libdevmapper/Default)
|
|
VARIANT := selinux
|
|
DEPENDS += +libselinux
|
|
PROVIDES := libdevmapper
|
|
endef
|
|
|
|
define Package/libdevmapper/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/libdevmapper-selinux/description
|
|
$(call Package/libdevmapper/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:=+libaio
|
|
endef
|
|
|
|
define Package/lvm2
|
|
$(call Package/lvm2/default)
|
|
VARIANT := normal
|
|
DEPENDS += +libdevmapper
|
|
endef
|
|
|
|
define Package/lvm2-selinux
|
|
$(call Package/lvm2/default)
|
|
VARIANT := selinux
|
|
DEPENDS += +libdevmapper-selinux
|
|
PROVIDES := lvm2
|
|
endef
|
|
|
|
define Package/lvm2/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/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 \
|
|
--without-libnvme \
|
|
--disable-readline \
|
|
--disable-libedit \
|
|
--$(if $(findstring selinux,$(BUILD_VARIANT)),en,dis)able-selinux
|
|
|
|
ifneq ($(shell /bin/sh -c "echo -n 'X'"),X)
|
|
MAKE_SHELL = SHELL=/bin/bash
|
|
endif
|
|
|
|
define Build/Compile
|
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
|
CC="$(TARGET_CC)" \
|
|
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
|
|
DESTDIR="$(PKG_INSTALL_DIR)" \
|
|
$(MAKE_SHELL) \
|
|
install
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libdevmapper.h $(1)/usr/include
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so* $(1)/usr/lib
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_BUILD_DIR)/libdm/libdevmapper.pc $(1)/usr/lib/pkgconfig
|
|
endef
|
|
|
|
define Package/libdevmapper/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdevmapper.so.* $(1)/usr/lib
|
|
endef
|
|
|
|
Package/libdevmapper-selinux/install = $(Package/libdevmapper/install)
|
|
|
|
define Package/lvm2/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
|
|
$(INSTALL_DIR) $(1)/etc/lvm
|
|
$(SED) '/^[[:space:]]*\(#\|$$$$\)/d; /cache_dir/s@.*@ cache_dir = "/tmp/lvm/cache"@' $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf
|
|
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf $(1)/etc/lvm/
|
|
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvmlocal.conf $(1)/etc/lvm/
|
|
$(INSTALL_DIR) $(1)/etc/lvm/profile
|
|
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/profile/* $(1)/etc/lvm/profile/
|
|
$(INSTALL_DIR) $(1)/lib/preinit
|
|
$(INSTALL_DATA) ./files/lvm2.preinit $(1)/lib/preinit/80_lvm2
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/lvm2.init $(1)/etc/init.d/lvm2
|
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/block
|
|
$(INSTALL_DATA) ./files/lvm2.hotplug $(1)/etc/hotplug.d/block/20-lvm2
|
|
$(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l -print0 | xargs -0 -r $(CP) -a -t $(1)/sbin/
|
|
endef
|
|
|
|
Package/lvm2-selinux/install = $(Package/lvm2/install)
|
|
|
|
define Package/lvm2/conffiles
|
|
/etc/lvm/lvm.conf
|
|
endef
|
|
|
|
Package/lvm2-selinux/conffiles = $(Package/lvm2/conffiles)
|
|
|
|
$(eval $(call BuildPackage,libdevmapper))
|
|
$(eval $(call BuildPackage,libdevmapper-selinux))
|
|
$(eval $(call BuildPackage,lvm2))
|
|
$(eval $(call BuildPackage,lvm2-selinux))
|