blob: 8d69a8a03a92f1f70541e7d3d189bcca203732f0 [file] [log] [blame]
diff --git a/feeds/packages/libs/libaio/Makefile b/feeds/packages/libs/libaio/Makefile
index 463b965..a0a2719 100644
--- a/feeds/packages/libs/libaio/Makefile
+++ b/feeds/packages/libs/libaio/Makefile
@@ -23,7 +23,10 @@ PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
PKG_INSTALL:=1
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
define Package/libaio
SECTION:=libs
@@ -44,4 +47,13 @@ define Package/libaio/install
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libaio.so.* $(1)/usr/lib/
endef
+define Host/Compile
+ $(MAKE) -C $(HOST_BUILD_DIR)
+endef
+
+define Host/Install
+ $(MAKE) -C $(HOST_BUILD_DIR) prefix=$(HOST_BUILD_PREFIX) install
+endef
+
$(eval $(call BuildPackage,libaio))
+$(eval $(call HostBuild))
diff --git a/feeds/packages/utils/cryptsetup/Makefile b/feeds/packages/utils/cryptsetup/Makefile
index bdb249f..8d98957 100644
--- a/feeds/packages/utils/cryptsetup/Makefile
+++ b/feeds/packages/utils/cryptsetup/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=cryptsetup
-PKG_VERSION:=2.5.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=2.3.4
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.5
-PKG_HASH:=9184a6ebbd9ce7eb211152e7f741a6c82f2d1cc0e24a84ec9c52939eee0f0542
+PKG_HASH:=9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
@@ -24,8 +24,12 @@ PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
+HOST_BUILD_DEPENDS:=lvm2/host libjson-c/host popt/host
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/host-build.mk
define Package/cryptsetup
SECTION:=utils
@@ -75,6 +79,13 @@ CONFIGURE_VARS += \
TARGET_LDFLAGS += -Wl,--gc-sections $(if $(INTL_FULL),-lintl)
+HOST_CONFIGURE_ARGS += \
+ --with-crypto-backend=openssl \
+ $(STAGING_DIR_HOST) \
+ --disable-kernel_crypto \
+ --disable-blkid \
+ --enable-libiconv-tiny
+
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libcryptsetup.h $(1)/usr/include
@@ -98,5 +109,11 @@ define Package/cryptsetup-ssh/install
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/cryptsetup-ssh $(1)/usr/sbin
endef
+define Host/Install
+ $(INSTALL_BIN) $(HOST_BUILD_DIR)/veritysetup $(STAGING_DIR_HOST)/bin/veritysetup
+ $(CP) $(HOST_BUILD_DIR)/.libs $(STAGING_DIR_HOST)/bin/
+endef
+
$(eval $(call BuildPackage,cryptsetup))
$(eval $(call BuildPackage,cryptsetup-ssh))
+$(eval $(call HostBuild))
diff --git a/feeds/packages/utils/cryptsetup/patches/0001-dont-use-c89.patch b/feeds/packages/utils/cryptsetup/patches/0001-dont-use-c89.patch
new file mode 100644
index 0000000000..c5d4ee90d7
--- /dev/null
+++ b/feeds/packages/utils/cryptsetup/patches/0001-dont-use-c89.patch
@@ -0,0 +1,10 @@
+--- a/lib/crypto_backend/argon2/Makemodule.am
++++ b/lib/crypto_backend/argon2/Makemodule.am
+@@ -1,6 +1,6 @@
+ noinst_LTLIBRARIES += libargon2.la
+
+-libargon2_la_CFLAGS = $(AM_CFLAGS) -std=c89 -pthread -O3
++libargon2_la_CFLAGS = $(AM_CFLAGS) -pthread -O3
+ libargon2_la_CPPFLAGS = $(AM_CPPFLAGS) \
+ -I lib/crypto_backend/argon2 \
+ -I lib/crypto_backend/argon2/blake2
diff --git a/feeds/packages/utils/cryptsetup/patches/0100-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch b/feeds/packages/utils/cryptsetup/patches/0100-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch
new file mode 100644
index 0000000..d418a91
--- /dev/null
+++ b/feeds/packages/utils/cryptsetup/patches/0100-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch
@@ -0,0 +1,33 @@
+--- a/configure
++++ b/configure
+@@ -856,6 +856,7 @@ enable_rpath
+ with_libiconv_prefix
+ enable_keyring
+ enable_largefile
++enable_libiconv_tiny
+ enable_nls
+ with_libintl_prefix
+ enable_fips
+@@ -1583,6 +1584,7 @@ Optional Features:
+ --disable-keyring disable kernel keyring support and builtin kernel
+ keyring token
+ --disable-largefile omit support for large files
++ --enable-libiconv-tiny build with libiconv-tiny from OpenWrt
+ --disable-nls do not use Native Language Support
+ --enable-fips enable FIPS mode restrictions
+ --enable-pwquality enable password quality checking using pwquality
+@@ -15038,6 +15040,14 @@ if test "x$enable_largefile" = "xno"; th
+ as_fn_error $? "Building with --disable-largefile is not supported, it can cause data corruption." "$LINENO" 5
+ fi
+
++# Check whether --enable-libiconv-tiny was given.
++if test "${enable_libiconv_tiny+set}" = set; then
++ enableval=$enable_libiconv_tiny;
++ if test ".$enableval" = .yes; then
++ LIBS="$LIBS -liconv"
++ fi
++fi
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+ $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+ if ${ac_cv_c_const+:} false; then :
diff --git a/feeds/packages/utils/lvm2/Makefile b/feeds/packages/utils/lvm2/Makefile
index af35899..24b485a 100644
--- a/feeds/packages/utils/lvm2/Makefile
+++ b/feeds/packages/utils/lvm2/Makefile
@@ -24,7 +24,11 @@ PKG_CPE_ID:=cpe:/a:heinz_mauelshagen:lvm
PKG_BUILD_PARALLEL:=1
+HOST_BUILD_DEPENDS:=libaio/host
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
define Package/libdevmapper/Default
SECTION:=libs
@@ -58,6 +62,15 @@ $(call Package/libdevmapper/description)
endef
+define Package/dmsetup
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Disc
+ TITLE:=The Linux Kernel Device Mapper userspace setup utility
+ URL:=https://sourceware.org/dm/
+ DEPENDS:=+libdevmapper
+endef
+
define Package/lvm2/default
SECTION:=utils
CATEGORY:=Utilities
@@ -70,7 +83,7 @@ endef
define Package/lvm2
$(call Package/lvm2/default)
VARIANT := normal
- DEPENDS += +libdevmapper
+ DEPENDS += +libdevmapper +dmsetup
endef
define Package/lvm2-selinux
@@ -105,6 +118,16 @@ ifneq ($(shell /bin/sh -c "echo -n 'X'")
MAKE_SHELL = SHELL=/bin/bash
endif
+HOST_CONFIGURE_ARGS += \
+ --enable-write_install \
+ --enable-pkgconfig \
+ --disable-cmdlib \
+ --disable-dmeventd \
+ --disable-applib \
+ --disable-fsadm \
+ --disable-readline \
+ --disable-selinux
+
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CC)" \
@@ -130,10 +153,15 @@ endef
Package/libdevmapper-selinux/install = $(Package/libdevmapper/install)
+define Package/dmsetup/install
+ $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dmsetup $(1)/sbin
+ ln -sf dmsetup $(1)/sbin/dmstats
+endef
+
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/
@@ -146,7 +174,7 @@ define Package/lvm2/install
$(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 -exec $(CP) -a {} $(1)/sbin/ \;
+ $(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l ! -name dmstats -exec $(CP) -a {} $(1)/sbin/ \;
endef
Package/lvm2-selinux/install = $(Package/lvm2/install)
@@ -155,9 +183,30 @@ define Package/lvm2/conffiles
/etc/lvm/lvm.conf
endef
+define Host/Prepare
+ $(HOST_UNPACK)
+ [ ! -d ./src/ ] || $(CP) ./src/* $(HOST_BUILD_DIR)
+
+ mv $(HOST_BUILD_DIR)/../$(PKG_NAME).$(PKG_VERSION)/* $(HOST_BUILD_DIR)/
+ rmdir $(HOST_BUILD_DIR)/../$(PKG_NAME).$(PKG_VERSION)
+
+ $(Host/Patch)
+endef
+
+define Host/Compile
+ $(call Host/Compile/Default,device-mapper)
+endef
+
+define Host/Install
+ $(call Host/Compile/Default,install_device-mapper)
+endef
+
+
Package/lvm2-selinux/conffiles = $(Package/lvm2/conffiles)
$(eval $(call BuildPackage,libdevmapper))
$(eval $(call BuildPackage,libdevmapper-selinux))
+$(eval $(call BuildPackage,dmsetup))
$(eval $(call BuildPackage,lvm2))
$(eval $(call BuildPackage,lvm2-selinux))
+$(eval $(call HostBuild))
diff -Nurp a/feeds/packages/utils/lvm2/patches/100-change-linker-search-dir-order.patch b/feeds/packages/utils/lvm2/patches/100-change-linker-search-dir-order.patch
--- a/feeds/packages/utils/lvm2/patches/100-change-linker-search-dir-order.patch
+++ b/feeds/packages/utils/lvm2/patches/100-change-linker-search-dir-order.patch
@@ -0,0 +1,39 @@
+--- a/libdm/dm-tools/Makefile.in
++++ b/libdm/dm-tools/Makefile.in
+@@ -52,18 +52,18 @@ include $(top_builddir)/libdm/make.tmpl
+
+ CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXTRA_EXEC_CFLAGS)
+ CFLAGS_dmfilemapd.o += $(EXTRA_EXEC_CFLAGS)
+-LIBDM_LIBS = -L$(interfacebuilddir) -ldevmapper
++LIBDM_LIBS = -ldevmapper
+ LIBDM_SHARED = $(interfacebuilddir)/libdevmapper.so
+ LIBDM_STATIC = $(interfacebuilddir)/libdevmapper.a
+
+ dmsetup: dmsetup.o $(LIBDM_SHARED)
+ @echo " [CC] $@"
+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
+ -o $@ $< $(LIBDM_LIBS) $(LIBS)
+
+ dmsetup.static: dmsetup.o $(LIBDM_STATIC)
+ @echo " [CC] $@"
+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static \
++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) -static \
+ -o $@ $< $(LIBDM_LIBS) $(LIBS) $(STATIC_LIBS)
+
+ install_dmsetup_dynamic: dmsetup
+@@ -79,12 +79,12 @@ install_dmsetup_static: dmsetup.static
+
+ dmfilemapd: dmfilemapd.o $(LIBDM_SHARED)
+ @echo " [CC] $@"
+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
+ -o $@ $< $(LIBDM_LIBS) $(LIBS)
+
+ dmfilemapd.static: dmfilemapd.o $(LIBDM_STATIC)
+ @echo " [CC] $@"
+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static \
++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) -static \
+ -o $@ $< $(LIBDM_LIBS) $(LIBS) $(STATIC_LIBS)
+
+ install_dmfilemapd_dynamic: dmfilemapd
diff --git a/package/Makefile b/package/Makefile
index 58c1ba2..a66851b 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -60,6 +60,7 @@ $(curdir)/merge-index: $(curdir)/merge
ifndef SDK
$(curdir)/compile: $(curdir)/system/opkg/host/compile
endif
+$(curdir)/compile: $(curdir)/cryptsetup/host/compile
$(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DEVICE_ROOTFS),$(curdir)/merge-index)
- find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755
diff --git a/package/libs/popt/Makefile b/package/libs/popt/Makefile
index 34ae4d7..2075542 100644
--- a/package/libs/popt/Makefile
+++ b/package/libs/popt/Makefile
@@ -19,15 +19,17 @@ PKG_SOURCE_URL:= \
PKG_HASH:=e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8
PKG_LICENSE:=MIT
-PKG_FIXUP:=autoreconf
-PKG_REMOVE_FILES:=autogen.sh aclocal.m4
-
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
+
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
TARGET_CFLAGS += $(FPIC)
+HOST_CONFIGURE_ARGS += --enable-libiconv-tiny
+HOST_BUILD_DEPENDS := libiconv/host
define Package/libpopt
SECTION:=libs
@@ -54,4 +56,4 @@ define Package/libpopt/install
endef
$(eval $(call BuildPackage,libpopt))
-
+$(eval $(call HostBuild))
diff -urN a/package/libs/popt/patches/0001-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch b/package/libs/popt/patches/0001-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch
--- a/package/libs/popt/patches/0001-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch 1970-01-01 08:00:00.000000000 +0800
+++ b/package/libs/popt/patches/0001-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch 2021-01-06 13:46:47.514721593 +0800
@@ -0,0 +1,34 @@
+--- a/configure
++++ b/configure
+@@ -945,6 +945,7 @@ enable_libtool_lock
+ enable_largefile
+ enable_ld_version_script
+ enable_build_gcov
++enable_libiconv_tiny
+ enable_nls
+ enable_rpath
+ with_libiconv_prefix
+@@ -1604,6 +1605,7 @@ Optional Features:
+ enable/disable use of linker version script.
+ (default is system dependent)
+ --enable-build-gcov build POPT instrumented for gcov
++ --enable-libiconv-tiny build with libiconv-tiny from OpenWrt
+ --disable-nls do not use Native Language Support
+ --disable-rpath do not hardcode runtime library paths
+
+@@ -13334,6 +13336,15 @@ if test "${enable_build_gcov+set}" = set
+ fi
+
+
++# Check whether --enable-libiconv-tiny was given.
++if test "${enable_libiconv_tiny+set}" = set; then
++ enableval=$enable_libiconv_tiny;
++ if test ".$enableval" = .yes; then
++ LIBS="$LIBS -liconv"
++ fi
++fi
++
++
+ { $as_echo "$as_me:$LINENO: checking for setreuid" >&5
+ $as_echo_n "checking for setreuid... " >&6; }
+ if test "${ac_cv_func_setreuid+set}" = set; then