tools: build bash on macOS and use it for ipkg-build
authorFelix Fietkau <nbd@nbd.name>
Thu, 27 Jan 2022 12:25:39 +0000 (13:25 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 27 Jan 2022 12:38:48 +0000 (13:38 +0100)
On macOS, system binaries silently drop the environment variables for injecting
extra shared libraries (used by fakeroot). This is done for security reasons.
Work around this by building bash from source, so that it gets an ad-hoc signature
and does not have these restrictions

Signed-off-by: Felix Fietkau <nbd@nbd.name>
include/package-ipkg.mk
tools/Makefile
tools/bash/Makefile [new file with mode: 0644]

index 362a0e2a8b5c6b4fde82865f78b21d2cad38be97..3063a86a28c19516bd23654a9798be3519b45d0f 100644 (file)
@@ -264,7 +264,7 @@ $(_endef)
     endif
 
        $(INSTALL_DIR) $$(PDIR_$(1))
-       $(FAKEROOT) $(SCRIPT_DIR)/ipkg-build -m "$(FILE_MODES)" $$(IDIR_$(1)) $$(PDIR_$(1))
+       $(FAKEROOT) $(STAGING_DIR_HOST)/bin/bash $(SCRIPT_DIR)/ipkg-build -m "$(FILE_MODES)" $$(IDIR_$(1)) $$(PDIR_$(1))
        @[ -f $$(IPKG_$(1)) ]
 
     $(1)-clean:
index 686d5294d3e7fbad517a99ce6a3b120456003737..681344a014fc74b2a3d90d7f43c90ac3b1c4f66c 100644 (file)
@@ -80,6 +80,9 @@ ifneq ($(HOST_OS),Linux)
   $(curdir)/squashfskit4/compile += $(curdir)/coreutils/compile
   tools-y += coreutils
 endif
+ifeq ($(HOST_OS),Darwin)
+  tools-y += bash
+endif
 
 ifneq ($(CONFIG_CCACHE)$(CONFIG_SDK),)
 $(foreach tool, $(filter-out xz zstd pkgconf patch ninja meson libressl cmake,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/ccache/compile))
diff --git a/tools/bash/Makefile b/tools/bash/Makefile
new file mode 100644 (file)
index 0000000..7c25b83
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bash
+PKG_CPE_ID:=cpe:/a:gnu:bash
+PKG_VERSION:=5.1.16
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@GNU/bash
+PKG_HASH:=5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558
+
+HOST_BUILD_PARALLEL := 1
+
+include $(INCLUDE_DIR)/host-build.mk
+
+$(eval $(call HostBuild))