diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-01-27 13:25:39 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2022-01-27 13:38:48 +0100 |
commit | 3869ccbcc891a7185550a2a422e2db01fd994b7d (patch) | |
tree | 7614324a1ba80c8ac421cb964ca8b3c5a275346c | |
parent | 1d4750fd50eeadad640fb62e1b11bf4cdde39dd1 (diff) | |
download | upstream-3869ccbcc891a7185550a2a422e2db01fd994b7d.tar.gz upstream-3869ccbcc891a7185550a2a422e2db01fd994b7d.tar.bz2 upstream-3869ccbcc891a7185550a2a422e2db01fd994b7d.zip |
tools: build bash on macOS and use it for ipkg-build
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>
-rw-r--r-- | include/package-ipkg.mk | 2 | ||||
-rw-r--r-- | tools/Makefile | 3 | ||||
-rw-r--r-- | tools/bash/Makefile | 21 |
3 files changed, 25 insertions, 1 deletions
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index 362a0e2a8b..3063a86a28 100644 --- a/include/package-ipkg.mk +++ b/include/package-ipkg.mk @@ -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: diff --git a/tools/Makefile b/tools/Makefile index 686d5294d3..681344a014 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -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 index 0000000000..7c25b83327 --- /dev/null +++ b/tools/bash/Makefile @@ -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)) |