blob: 8d69a8a03a92f1f70541e7d3d189bcca203732f0 [file] [log] [blame]
developer23f9f0f2023-06-15 13:06:25 +08001diff --git a/feeds/packages/libs/libaio/Makefile b/feeds/packages/libs/libaio/Makefile
2index 463b965..a0a2719 100644
3--- a/feeds/packages/libs/libaio/Makefile
4+++ b/feeds/packages/libs/libaio/Makefile
5@@ -23,7 +23,10 @@ PKG_BUILD_PARALLEL:=1
6 PKG_USE_MIPS16:=0
7 PKG_INSTALL:=1
8
9+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
10+
11 include $(INCLUDE_DIR)/package.mk
12+include $(INCLUDE_DIR)/host-build.mk
13
14 define Package/libaio
15 SECTION:=libs
16@@ -44,4 +47,13 @@ define Package/libaio/install
17 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libaio.so.* $(1)/usr/lib/
18 endef
19
20+define Host/Compile
21+ $(MAKE) -C $(HOST_BUILD_DIR)
22+endef
23+
24+define Host/Install
25+ $(MAKE) -C $(HOST_BUILD_DIR) prefix=$(HOST_BUILD_PREFIX) install
26+endef
27+
28 $(eval $(call BuildPackage,libaio))
29+$(eval $(call HostBuild))
30diff --git a/feeds/packages/utils/cryptsetup/Makefile b/feeds/packages/utils/cryptsetup/Makefile
31index bdb249f..8d98957 100644
32--- a/feeds/packages/utils/cryptsetup/Makefile
33+++ b/feeds/packages/utils/cryptsetup/Makefile
34@@ -8,12 +8,12 @@
35 include $(TOPDIR)/rules.mk
36
37 PKG_NAME:=cryptsetup
38-PKG_VERSION:=2.5.0
39-PKG_RELEASE:=$(AUTORELEASE)
40+PKG_VERSION:=2.3.4
41+PKG_RELEASE:=2
42
43 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
44 PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.5
45-PKG_HASH:=9184a6ebbd9ce7eb211152e7f741a6c82f2d1cc0e24a84ec9c52939eee0f0542
46+PKG_HASH:=9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773
47
48 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
49 PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
50@@ -24,8 +24,12 @@ PKG_BUILD_PARALLEL:=1
51
52 PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
53
54+HOST_BUILD_DEPENDS:=lvm2/host libjson-c/host popt/host
55+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
56+
57 include $(INCLUDE_DIR)/package.mk
58 include $(INCLUDE_DIR)/nls.mk
59+include $(INCLUDE_DIR)/host-build.mk
60
61 define Package/cryptsetup
62 SECTION:=utils
63@@ -75,6 +79,13 @@ CONFIGURE_VARS += \
64
65 TARGET_LDFLAGS += -Wl,--gc-sections $(if $(INTL_FULL),-lintl)
66
67+HOST_CONFIGURE_ARGS += \
68+ --with-crypto-backend=openssl \
69+ $(STAGING_DIR_HOST) \
70+ --disable-kernel_crypto \
71+ --disable-blkid \
72+ --enable-libiconv-tiny
73+
74 define Build/InstallDev
75 $(INSTALL_DIR) $(1)/usr/include
76 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/libcryptsetup.h $(1)/usr/include
77@@ -98,5 +109,11 @@ define Package/cryptsetup-ssh/install
78 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/cryptsetup-ssh $(1)/usr/sbin
79 endef
80
81+define Host/Install
82+ $(INSTALL_BIN) $(HOST_BUILD_DIR)/veritysetup $(STAGING_DIR_HOST)/bin/veritysetup
83+ $(CP) $(HOST_BUILD_DIR)/.libs $(STAGING_DIR_HOST)/bin/
84+endef
85+
86 $(eval $(call BuildPackage,cryptsetup))
87 $(eval $(call BuildPackage,cryptsetup-ssh))
88+$(eval $(call HostBuild))
89diff --git a/feeds/packages/utils/cryptsetup/patches/0001-dont-use-c89.patch b/feeds/packages/utils/cryptsetup/patches/0001-dont-use-c89.patch
90new file mode 100644
91index 0000000000..c5d4ee90d7
92--- /dev/null
93+++ b/feeds/packages/utils/cryptsetup/patches/0001-dont-use-c89.patch
94@@ -0,0 +1,10 @@
95+--- a/lib/crypto_backend/argon2/Makemodule.am
96++++ b/lib/crypto_backend/argon2/Makemodule.am
97+@@ -1,6 +1,6 @@
98+ noinst_LTLIBRARIES += libargon2.la
99+
100+-libargon2_la_CFLAGS = $(AM_CFLAGS) -std=c89 -pthread -O3
101++libargon2_la_CFLAGS = $(AM_CFLAGS) -pthread -O3
102+ libargon2_la_CPPFLAGS = $(AM_CPPFLAGS) \
103+ -I lib/crypto_backend/argon2 \
104+ -I lib/crypto_backend/argon2/blake2
105diff --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
106new file mode 100644
107index 0000000..d418a91
108--- /dev/null
109+++ b/feeds/packages/utils/cryptsetup/patches/0100-add-configure-arg-to-link-with-tiny-libiconv-in-host-build.patch
110@@ -0,0 +1,33 @@
111+--- a/configure
112++++ b/configure
113+@@ -856,6 +856,7 @@ enable_rpath
114+ with_libiconv_prefix
115+ enable_keyring
116+ enable_largefile
117++enable_libiconv_tiny
118+ enable_nls
119+ with_libintl_prefix
120+ enable_fips
121+@@ -1583,6 +1584,7 @@ Optional Features:
122+ --disable-keyring disable kernel keyring support and builtin kernel
123+ keyring token
124+ --disable-largefile omit support for large files
125++ --enable-libiconv-tiny build with libiconv-tiny from OpenWrt
126+ --disable-nls do not use Native Language Support
127+ --enable-fips enable FIPS mode restrictions
128+ --enable-pwquality enable password quality checking using pwquality
129+@@ -15038,6 +15040,14 @@ if test "x$enable_largefile" = "xno"; th
130+ as_fn_error $? "Building with --disable-largefile is not supported, it can cause data corruption." "$LINENO" 5
131+ fi
132+
133++# Check whether --enable-libiconv-tiny was given.
134++if test "${enable_libiconv_tiny+set}" = set; then
135++ enableval=$enable_libiconv_tiny;
136++ if test ".$enableval" = .yes; then
137++ LIBS="$LIBS -liconv"
138++ fi
139++fi
140++
141+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
142+ $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
143+ if ${ac_cv_c_const+:} false; then :
144diff --git a/feeds/packages/utils/lvm2/Makefile b/feeds/packages/utils/lvm2/Makefile
145index af35899..24b485a 100644
146--- a/feeds/packages/utils/lvm2/Makefile
147+++ b/feeds/packages/utils/lvm2/Makefile
148@@ -24,7 +24,11 @@ PKG_CPE_ID:=cpe:/a:heinz_mauelshagen:lvm
149
150 PKG_BUILD_PARALLEL:=1
151
152+HOST_BUILD_DEPENDS:=libaio/host
153+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
154+
155 include $(INCLUDE_DIR)/package.mk
156+include $(INCLUDE_DIR)/host-build.mk
157
158 define Package/libdevmapper/Default
159 SECTION:=libs
160@@ -58,6 +62,15 @@ $(call Package/libdevmapper/description)
161
162 endef
163
164+define Package/dmsetup
165+ SECTION:=utils
166+ CATEGORY:=Utilities
167+ SUBMENU:=Disc
168+ TITLE:=The Linux Kernel Device Mapper userspace setup utility
169+ URL:=https://sourceware.org/dm/
170+ DEPENDS:=+libdevmapper
171+endef
172+
173 define Package/lvm2/default
174 SECTION:=utils
175 CATEGORY:=Utilities
176@@ -70,7 +83,7 @@ endef
177 define Package/lvm2
178 $(call Package/lvm2/default)
179 VARIANT := normal
180- DEPENDS += +libdevmapper
181+ DEPENDS += +libdevmapper +dmsetup
182 endef
183
184 define Package/lvm2-selinux
185@@ -105,6 +118,16 @@ ifneq ($(shell /bin/sh -c "echo -n 'X'")
186 MAKE_SHELL = SHELL=/bin/bash
187 endif
188
189+HOST_CONFIGURE_ARGS += \
190+ --enable-write_install \
191+ --enable-pkgconfig \
192+ --disable-cmdlib \
193+ --disable-dmeventd \
194+ --disable-applib \
195+ --disable-fsadm \
196+ --disable-readline \
197+ --disable-selinux
198+
199 define Build/Compile
200 $(MAKE) -C $(PKG_BUILD_DIR) \
201 CC="$(TARGET_CC)" \
202@@ -130,10 +153,15 @@ endef
203
204 Package/libdevmapper-selinux/install = $(Package/libdevmapper/install)
205
206+define Package/dmsetup/install
207+ $(INSTALL_DIR) $(1)/sbin
208+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dmsetup $(1)/sbin
209+ ln -sf dmsetup $(1)/sbin/dmstats
210+endef
211+
212 define Package/lvm2/install
213 $(INSTALL_DIR) $(1)/sbin
214 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lvm $(1)/sbin
215- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dmsetup $(1)/sbin
216 $(INSTALL_DIR) $(1)/etc/lvm
217 $(SED) '/^[[:space:]]*\(#\|$$$$\)/d; /cache_dir/s@.*@ cache_dir = "/tmp/lvm/cache"@' $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf
218 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/lvm/lvm.conf $(1)/etc/lvm/
219@@ -146,7 +174,7 @@ define Package/lvm2/install
220 $(INSTALL_BIN) ./files/lvm2.init $(1)/etc/init.d/lvm2
221 $(INSTALL_DIR) $(1)/etc/hotplug.d/block
222 $(INSTALL_DATA) ./files/lvm2.hotplug $(1)/etc/hotplug.d/block/20-lvm2
223- $(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l -exec $(CP) -a {} $(1)/sbin/ \;
224+ $(FIND) $(PKG_INSTALL_DIR)/usr/sbin/ -type l ! -name dmstats -exec $(CP) -a {} $(1)/sbin/ \;
225 endef
226
227 Package/lvm2-selinux/install = $(Package/lvm2/install)
228@@ -155,9 +183,30 @@ define Package/lvm2/conffiles
229 /etc/lvm/lvm.conf
230 endef
231
232+define Host/Prepare
233+ $(HOST_UNPACK)
234+ [ ! -d ./src/ ] || $(CP) ./src/* $(HOST_BUILD_DIR)
235+
236+ mv $(HOST_BUILD_DIR)/../$(PKG_NAME).$(PKG_VERSION)/* $(HOST_BUILD_DIR)/
237+ rmdir $(HOST_BUILD_DIR)/../$(PKG_NAME).$(PKG_VERSION)
238+
239+ $(Host/Patch)
240+endef
241+
242+define Host/Compile
243+ $(call Host/Compile/Default,device-mapper)
244+endef
245+
246+define Host/Install
247+ $(call Host/Compile/Default,install_device-mapper)
248+endef
249+
250+
251 Package/lvm2-selinux/conffiles = $(Package/lvm2/conffiles)
252
253 $(eval $(call BuildPackage,libdevmapper))
254 $(eval $(call BuildPackage,libdevmapper-selinux))
255+$(eval $(call BuildPackage,dmsetup))
256 $(eval $(call BuildPackage,lvm2))
257 $(eval $(call BuildPackage,lvm2-selinux))
258+$(eval $(call HostBuild))
259diff -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
260--- a/feeds/packages/utils/lvm2/patches/100-change-linker-search-dir-order.patch
261+++ b/feeds/packages/utils/lvm2/patches/100-change-linker-search-dir-order.patch
262@@ -0,0 +1,39 @@
263+--- a/libdm/dm-tools/Makefile.in
264++++ b/libdm/dm-tools/Makefile.in
265+@@ -52,18 +52,18 @@ include $(top_builddir)/libdm/make.tmpl
266+
267+ CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXTRA_EXEC_CFLAGS)
268+ CFLAGS_dmfilemapd.o += $(EXTRA_EXEC_CFLAGS)
269+-LIBDM_LIBS = -L$(interfacebuilddir) -ldevmapper
270++LIBDM_LIBS = -ldevmapper
271+ LIBDM_SHARED = $(interfacebuilddir)/libdevmapper.so
272+ LIBDM_STATIC = $(interfacebuilddir)/libdevmapper.a
273+
274+ dmsetup: dmsetup.o $(LIBDM_SHARED)
275+ @echo " [CC] $@"
276+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
277++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
278+ -o $@ $< $(LIBDM_LIBS) $(LIBS)
279+
280+ dmsetup.static: dmsetup.o $(LIBDM_STATIC)
281+ @echo " [CC] $@"
282+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static \
283++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) -static \
284+ -o $@ $< $(LIBDM_LIBS) $(LIBS) $(STATIC_LIBS)
285+
286+ install_dmsetup_dynamic: dmsetup
287+@@ -79,12 +79,12 @@ install_dmsetup_static: dmsetup.static
288+
289+ dmfilemapd: dmfilemapd.o $(LIBDM_SHARED)
290+ @echo " [CC] $@"
291+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
292++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \
293+ -o $@ $< $(LIBDM_LIBS) $(LIBS)
294+
295+ dmfilemapd.static: dmfilemapd.o $(LIBDM_STATIC)
296+ @echo " [CC] $@"
297+- $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static \
298++ $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) -static \
299+ -o $@ $< $(LIBDM_LIBS) $(LIBS) $(STATIC_LIBS)
300+
301+ install_dmfilemapd_dynamic: dmfilemapd
302diff --git a/package/Makefile b/package/Makefile
303index 58c1ba2..a66851b 100644
304--- a/package/Makefile
305+++ b/package/Makefile
306@@ -60,6 +60,7 @@ $(curdir)/merge-index: $(curdir)/merge
307 ifndef SDK
308 $(curdir)/compile: $(curdir)/system/opkg/host/compile
309 endif
310+$(curdir)/compile: $(curdir)/cryptsetup/host/compile
311
312 $(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DEVICE_ROOTFS),$(curdir)/merge-index)
313 - find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755
314diff --git a/package/libs/popt/Makefile b/package/libs/popt/Makefile
315index 34ae4d7..2075542 100644
316--- a/package/libs/popt/Makefile
317+++ b/package/libs/popt/Makefile
318@@ -19,15 +19,17 @@ PKG_SOURCE_URL:= \
319 PKG_HASH:=e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8
320 PKG_LICENSE:=MIT
321
322-PKG_FIXUP:=autoreconf
323-PKG_REMOVE_FILES:=autogen.sh aclocal.m4
324-
325 PKG_INSTALL:=1
326 PKG_BUILD_PARALLEL:=1
327
328+HOST_BUILD_PREFIX:=$(STAGING_DIR_HOST)
329+
330 include $(INCLUDE_DIR)/package.mk
331+include $(INCLUDE_DIR)/host-build.mk
332
333 TARGET_CFLAGS += $(FPIC)
334+HOST_CONFIGURE_ARGS += --enable-libiconv-tiny
335+HOST_BUILD_DEPENDS := libiconv/host
336
337 define Package/libpopt
338 SECTION:=libs
339@@ -54,4 +56,4 @@ define Package/libpopt/install
340 endef
341
342 $(eval $(call BuildPackage,libpopt))
343-
344+$(eval $(call HostBuild))
345diff -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
346--- 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
347+++ 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
348@@ -0,0 +1,34 @@
349+--- a/configure
350++++ b/configure
351+@@ -945,6 +945,7 @@ enable_libtool_lock
352+ enable_largefile
353+ enable_ld_version_script
354+ enable_build_gcov
355++enable_libiconv_tiny
356+ enable_nls
357+ enable_rpath
358+ with_libiconv_prefix
359+@@ -1604,6 +1605,7 @@ Optional Features:
360+ enable/disable use of linker version script.
361+ (default is system dependent)
362+ --enable-build-gcov build POPT instrumented for gcov
363++ --enable-libiconv-tiny build with libiconv-tiny from OpenWrt
364+ --disable-nls do not use Native Language Support
365+ --disable-rpath do not hardcode runtime library paths
366+
367+@@ -13334,6 +13336,15 @@ if test "${enable_build_gcov+set}" = set
368+ fi
369+
370+
371++# Check whether --enable-libiconv-tiny was given.
372++if test "${enable_libiconv_tiny+set}" = set; then
373++ enableval=$enable_libiconv_tiny;
374++ if test ".$enableval" = .yes; then
375++ LIBS="$LIBS -liconv"
376++ fi
377++fi
378++
379++
380+ { $as_echo "$as_me:$LINENO: checking for setreuid" >&5
381+ $as_echo_n "checking for setreuid... " >&6; }
382+ if test "${ac_cv_func_setreuid+set}" = set; then