0275ee5dde
Remove stime backport. Remove static libgcc patch as upstream fixed it with BUSYBOX_DEFAULT_STATIC_LIBGCC which defauls to off. Remove date -k patch as it no longer applies. It's also pointless as busybox' hwclock utility can do the same thing. Remove ntpd patch as that seems to have been applied upstream. Add smalll patch fixing compilation with SELinux. Upstream commit 2496616b0a8d1c80cd1416b73a4847b59b9f969a renamed the variable without renaming it in the SELinux path. Refresh config and patches. Config refresh: Refresh commands, run after busybox is first built once: cd package/utils/busybox/config/ ../convert_menuconfig.pl ../../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0 cd .. ./convert_defaults.pl < ../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0/.config > Config-defaults.in Manual edits needed afterward: * Config-defaults.in: OpenWrt config symbol IPV6 logic applied to BUSYBOX_DEFAULT_FEATURE_IPV6 * Config-defaults.in: OpenWrt configTARGET_bcm53xx logic applied to BUSYBOX_DEFAULT_TRUNCATE (commit547f1ec
) * editors/Config.in: Add USE_GLIBC dependency to BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commitf141090
) * shell/Config.in : change at "Options common to all shells" the symbol SHELL_ASH --> BUSYBOX_CONFIG_SHELL_ASH (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html Apparently our script does not see the hidden option while prepending config options with "BUSYBOX_CONFIG_" which leads to a missed dependency when the options are later evaluated.) * Edit Config.in files by adding quotes to sourced items in config/Config.in, networking/Config.in and util-linux/Config.in (commit1da014f
) Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> [Added comments from Hannu Nyman to commit message] Signed-off-by: Rosen Penev <rosenp@gmail.com>
159 lines
4.3 KiB
Makefile
159 lines
4.3 KiB
Makefile
#
|
|
# Copyright (C) 2006-2020 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:=busybox
|
|
PKG_VERSION:=1.33.0
|
|
PKG_RELEASE:=1
|
|
PKG_FLAGS:=essential
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
PKG_SOURCE_URL:=https://www.busybox.net/downloads \
|
|
http://sources.buildroot.net
|
|
PKG_HASH:=d568681c91a85edc6710770cebc1e80e042ad74d305b5c2e6d57a5f3de3b8fbd
|
|
|
|
PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_CHECK_FORMAT_SECURITY:=0
|
|
|
|
#Busybox use it's own PIE config flag and LDFLAGS are used with ld, not gcc.
|
|
PKG_ASLR_PIE:=0
|
|
|
|
PKG_LICENSE:=GPL-2.0
|
|
PKG_LICENSE_FILES:=LICENSE archival/libarchive/bz/LICENSE
|
|
PKG_CPE_ID:=cpe:/a:busybox:busybox
|
|
|
|
BUSYBOX_SYM=$(if $(CONFIG_BUSYBOX_CUSTOM),CONFIG,DEFAULT)
|
|
BUSYBOX_IF_ENABLED=$(if $(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_$(1)),$(2))
|
|
|
|
ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SUID),)
|
|
PKG_FILE_MODES:=/bin/busybox:root:root:4755
|
|
endif
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
ifeq ($(DUMP),)
|
|
STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep '^CONFIG_BUSYBOX_' $(TOPDIR)/.config | mkhash md5)
|
|
endif
|
|
|
|
# All files provided by busybox will serve as fallback alternatives by opkg.
|
|
# There should be no need to enumerate ALTERNATIVES entries here
|
|
define Package/busybox/Default
|
|
SECTION:=base
|
|
CATEGORY:=Base system
|
|
MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
|
TITLE:=Core utilities for embedded Linux
|
|
URL:=http://busybox.net/
|
|
DEPENDS:=+BUSYBOX_CONFIG_PAM:libpam +BUSYBOX_CONFIG_NTPD:jsonfilter
|
|
USERID:=ntp=123:ntp=123
|
|
endef
|
|
|
|
define Package/busybox
|
|
$(call Package/busybox/Default)
|
|
CONFLICTS:=busybox-selinux
|
|
VARIANT:=default
|
|
endef
|
|
|
|
define Package/busybox-selinux
|
|
$(call Package/busybox/Default)
|
|
TITLE += with SELinux support
|
|
DEPENDS += +libselinux
|
|
VARIANT:=selinux
|
|
PROVIDES:=busybox
|
|
endef
|
|
|
|
define Package/busybox/description
|
|
The Swiss Army Knife of embedded Linux.
|
|
It slices, it dices, it makes Julian Fries.
|
|
endef
|
|
|
|
define Package/busybox/config
|
|
source "$(SOURCE)/Config.in"
|
|
endef
|
|
|
|
ifdef CONFIG_BUSYBOX_CONFIG_FEATURE_SYSLOG
|
|
define Package/busybox/conffiles
|
|
/etc/syslog.conf
|
|
endef
|
|
|
|
Package/busybox-selinux/conffiles = $(Package/busybox/conffiles)
|
|
endif
|
|
|
|
# don't create a version string containing the actual timestamp
|
|
export KCONFIG_NOTIMESTAMP=1
|
|
|
|
|
|
ifndef CONFIG_USE_MUSL
|
|
LDLIBS:=m crypt
|
|
endif
|
|
|
|
LDLIBS += $(call BUSYBOX_IF_ENABLED,PAM,pam pam_misc pthread)
|
|
ifeq ($(CONFIG_USE_GLIBC),y)
|
|
LDLIBS += $(call BUSYBOX_IF_ENABLED,NSLOOKUP_OPENWRT,resolv)
|
|
endif
|
|
|
|
ifeq ($(BUILD_VARIANT),selinux)
|
|
LDLIBS += selinux sepol
|
|
endif
|
|
|
|
TARGET_CFLAGS += -flto
|
|
TARGET_LDFLAGS += -flto=jobserver -fuse-linker-plugin
|
|
|
|
MAKE_VARS :=
|
|
MAKE_FLAGS += \
|
|
EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
|
|
EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
|
|
LDLIBS="$(LDLIBS)" \
|
|
LD="$(TARGET_CC)" \
|
|
SKIP_STRIP=y
|
|
ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
|
|
MAKE_FLAGS += V=1
|
|
endif
|
|
|
|
define Build/Configure
|
|
rm -f $(PKG_BUILD_DIR)/.config
|
|
touch $(PKG_BUILD_DIR)/.config
|
|
ifeq ($(DEVICE_TYPE),nas)
|
|
echo "CONFIG_HDPARM=y" >> $(PKG_BUILD_DIR)/.config
|
|
endif
|
|
ifeq ($(BUILD_VARIANT),selinux)
|
|
cat $(TOPDIR)/$(SOURCE)/selinux.config >> $(PKG_BUILD_DIR)/.config
|
|
endif
|
|
grep 'CONFIG_BUSYBOX_$(BUSYBOX_SYM)' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_BUSYBOX_$(BUSYBOX_SYM)_\\(.*\\),\\1CONFIG_\\2,g" >> $(PKG_BUILD_DIR)/.config
|
|
yes 'n' | $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) oldconfig
|
|
endef
|
|
|
|
define Build/Compile
|
|
$(call Build/Compile/Default, \
|
|
CONFIG_PREFIX="$(PKG_INSTALL_DIR)" \
|
|
all install \
|
|
)
|
|
endef
|
|
|
|
define Package/busybox/install
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/* $(1)/
|
|
ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_CROND),)
|
|
$(INSTALL_BIN) ./files/cron $(1)/etc/init.d/cron
|
|
endif
|
|
ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_NTPD),)
|
|
$(INSTALL_BIN) ./files/sysntpd $(1)/etc/init.d/sysntpd
|
|
$(INSTALL_BIN) ./files/ntpd-hotplug $(1)/usr/sbin/ntpd-hotplug
|
|
$(INSTALL_DIR) $(1)/etc/capabilities $(1)/usr/share/acl.d
|
|
$(INSTALL_DATA) ./files/ntpd.capabilities $(1)/etc/capabilities/ntpd.json
|
|
$(INSTALL_DATA) ./files/ntpd_acl.json $(1)/usr/share/acl.d/ntpd.json
|
|
endif
|
|
-rm -rf $(1)/lib64
|
|
endef
|
|
|
|
Package/busybox-selinux/install = $(Package/busybox/install)
|
|
|
|
$(eval $(call BuildPackage,busybox))
|
|
$(eval $(call BuildPackage,busybox-selinux))
|