#
-# Copyright (C) 2006-2016 OpenWrt.org
+# Copyright (C) 2006-2020 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=busybox
PKG_VERSION:=1.31.1
-PKG_RELEASE:=1
+PKG_RELEASE:=6
PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_LICENSE_FILES:=LICENSE archival/libarchive/bz/LICENSE
PKG_CPE_ID:=cpe:/a:busybox:busybox
+ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SUID),)
+ PKG_FILE_MODES:=/bin/busybox:root:root:4755
+endif
+
include $(INCLUDE_DIR)/package.mk
ifeq ($(DUMP),)
# 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
+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
- MENU:=1
+ 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
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
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
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
- grep 'CONFIG_BUSYBOX_$(BUSYBOX_SYM)' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_BUSYBOX_$(BUSYBOX_SYM)_\\(.*\\),\\1CONFIG_\\2,g" > $(PKG_BUILD_DIR)/.config
+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
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
-endif
-ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SUID),)
- $(INSTALL_SUID) $(PKG_INSTALL_DIR)/bin/busybox $(1)/bin/busybox
+ $(INSTALL_DIR) $(1)/etc/capabilities/
+ $(INSTALL_DATA) ./files/ntpd.capabilities $(1)/etc/capabilities/ntpd.json
endif
-rm -rf $(1)/lib64
endef
+Package/busybox-selinux/install = $(Package/busybox/install)
+
$(eval $(call BuildPackage,busybox))
+$(eval $(call BuildPackage,busybox-selinux))