2007-09-29 14:27:54 +00:00
|
|
|
#
|
2016-02-08 14:28:50 +00:00
|
|
|
# Copyright (C) 2007-2016 OpenWrt.org
|
2010-01-25 17:11:17 +00:00
|
|
|
# Copyright (C) 2010 Vertical Communications
|
2006-06-27 00:35:46 +00:00
|
|
|
#
|
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
|
# See /LICENSE for more information.
|
|
|
|
#
|
2005-07-17 22:52:59 +00:00
|
|
|
|
|
|
|
include $(TOPDIR)/rules.mk
|
2014-01-31 15:48:47 +00:00
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
2015-02-11 15:12:32 +00:00
|
|
|
include $(INCLUDE_DIR)/version.mk
|
2017-12-12 10:19:07 +00:00
|
|
|
include $(INCLUDE_DIR)/feeds.mk
|
2006-05-31 13:27:11 +00:00
|
|
|
|
2005-07-17 22:52:59 +00:00
|
|
|
PKG_NAME:=base-files
|
base-files: add function to remove devicename from LED labels
Currently, we request LED labels in OpenWrt to follow the scheme
modelname:color:function
However, specifying the modelname at the beginning is actually
entirely useless for the devices we support in OpenWrt. In patches
subsequent to this one, we will thus remove the modelname from
the label definitions on various targets.
To migrate the existing definitions from older installations,
a migration script needs to be deployed that does
modelname:color:function -> color:function
e.g.
dir-789:green:status -> green:status
This patch introduces two functions that do exactly that:
For each entry in /etc/config/system, the routine will check whether
two (or more) colons are present, and then remove everything up to
(and including) the first colon.
For now, this will be applied unconditionally, i.e. if the function
is called for a device, all labels will be cut like this.
However, for a future case of mixed three-part and two-part labels,
it should not be too hard to provide a function argument with
exceptions to the removal.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-27 15:25:15 +00:00
|
|
|
PKG_RELEASE:=231
|
2016-04-06 20:38:47 +00:00
|
|
|
PKG_FLAGS:=nonshared
|
2006-09-24 20:49:31 +00:00
|
|
|
|
2009-04-27 15:53:00 +00:00
|
|
|
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
2018-01-15 02:37:17 +00:00
|
|
|
PKG_BUILD_DEPENDS:=usign/host ucert/host
|
2014-11-02 12:20:54 +00:00
|
|
|
PKG_LICENSE:=GPL-2.0
|
2005-07-17 22:52:59 +00:00
|
|
|
|
2017-06-16 11:23:22 +00:00
|
|
|
# Extend depends from version.mk
|
|
|
|
PKG_CONFIG_DEPENDS += \
|
2017-04-21 18:37:58 +00:00
|
|
|
CONFIG_SIGNED_PACKAGES CONFIG_TARGET_INIT_PATH CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE \
|
2017-12-12 10:19:07 +00:00
|
|
|
CONFIG_NAND_SUPPORT \
|
2017-12-13 13:41:28 +00:00
|
|
|
CONFIG_CLEAN_IPKG \
|
2017-12-12 10:19:07 +00:00
|
|
|
CONFIG_PER_FEED_REPO \
|
2018-07-09 21:50:28 +00:00
|
|
|
$(foreach feed,$(FEEDS_AVAILABLE),CONFIG_FEED_$(feed))
|
2015-04-06 19:39:51 +00:00
|
|
|
|
2006-06-21 02:32:39 +00:00
|
|
|
include $(INCLUDE_DIR)/package.mk
|
2005-07-24 19:58:14 +00:00
|
|
|
|
2006-05-31 14:32:17 +00:00
|
|
|
ifneq ($(DUMP),1)
|
2016-12-25 15:40:05 +00:00
|
|
|
STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell echo $(CONFIG_TARGET_INIT_PATH) | mkhash md5)
|
2007-12-13 06:25:54 +00:00
|
|
|
TARGET:=-$(BOARD)
|
2006-05-31 14:32:17 +00:00
|
|
|
endif
|
|
|
|
|
2009-08-20 15:31:22 +00:00
|
|
|
define Package/base-files
|
2006-07-02 13:36:54 +00:00
|
|
|
SECTION:=base
|
|
|
|
CATEGORY:=Base system
|
2019-10-21 14:26:07 +00:00
|
|
|
DEPENDS:=+netifd +libc +procd +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:openwrt-keyring +NAND_SUPPORT:ubi-utils +fstools +fwtool
|
2017-11-07 08:45:50 +00:00
|
|
|
TITLE:=Base filesystem for OpenWrt
|
2006-09-24 20:49:31 +00:00
|
|
|
URL:=http://openwrt.org/
|
2007-12-13 06:25:54 +00:00
|
|
|
VERSION:=$(PKG_RELEASE)-$(REVISION)
|
2006-05-30 20:22:58 +00:00
|
|
|
endef
|
|
|
|
|
2009-08-20 15:31:22 +00:00
|
|
|
define Package/base-files/conffiles
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/config/
|
2015-04-02 14:53:24 +00:00
|
|
|
/etc/config/network
|
|
|
|
/etc/config/system
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/crontabs/
|
|
|
|
/etc/dropbear/
|
2018-08-19 01:53:07 +00:00
|
|
|
/etc/ethers
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/group
|
2006-06-18 13:38:23 +00:00
|
|
|
/etc/hosts
|
|
|
|
/etc/inittab
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/iproute2/rt_protos
|
|
|
|
/etc/iproute2/rt_tables
|
2006-06-18 13:38:23 +00:00
|
|
|
/etc/passwd
|
|
|
|
/etc/profile
|
2017-08-28 11:45:23 +00:00
|
|
|
/etc/profile.d
|
2015-04-02 14:53:24 +00:00
|
|
|
/etc/protocols
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/rc.local
|
2015-04-02 14:53:24 +00:00
|
|
|
/etc/services
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/shadow
|
2006-06-18 13:38:23 +00:00
|
|
|
/etc/shells
|
2019-05-02 18:24:27 +00:00
|
|
|
/etc/shinit
|
2006-06-18 13:38:23 +00:00
|
|
|
/etc/sysctl.conf
|
2017-08-28 11:42:22 +00:00
|
|
|
/etc/sysupgrade.conf
|
2006-06-18 13:38:23 +00:00
|
|
|
$(call $(TARGET)/conffiles)
|
|
|
|
endef
|
|
|
|
|
2009-08-20 15:31:22 +00:00
|
|
|
define Package/base-files/description
|
2007-09-07 08:34:51 +00:00
|
|
|
This package contains a base filesystem and system scripts for OpenWrt.
|
|
|
|
endef
|
2009-09-23 02:27:38 +00:00
|
|
|
|
2010-01-25 17:11:17 +00:00
|
|
|
define ImageConfigOptions
|
|
|
|
mkdir -p $(1)/lib/preinit
|
|
|
|
echo 'pi_suppress_stderr="$(CONFIG_TARGET_PREINIT_SUPPRESS_STDERR)"' >$(1)/lib/preinit/00_preinit.conf
|
|
|
|
echo 'fs_failsafe_wait_timeout=$(if $(CONFIG_TARGET_PREINIT_TIMEOUT),$(CONFIG_TARGET_PREINIT_TIMEOUT),2)' >>$(1)/lib/preinit/00_preinit.conf
|
2016-02-08 14:28:50 +00:00
|
|
|
echo 'pi_init_path="$(TARGET_INIT_PATH)"' >>$(1)/lib/preinit/00_preinit.conf
|
2010-01-25 17:11:17 +00:00
|
|
|
echo 'pi_init_env=$(if $(CONFIG_TARGET_INIT_ENV),$(CONFIG_TARGET_INIT_ENV),"")' >>$(1)/lib/preinit/00_preinit.conf
|
|
|
|
echo 'pi_init_cmd=$(if $(CONFIG_TARGET_INIT_CMD),$(CONFIG_TARGET_INIT_CMD),"/sbin/init")' >>$(1)/lib/preinit/00_preinit.conf
|
|
|
|
echo 'pi_init_suppress_stderr="$(CONFIG_TARGET_INIT_SUPPRESS_STDERR)"' >>$(1)/lib/preinit/00_preinit.conf
|
|
|
|
echo 'pi_ifname=$(if $(CONFIG_TARGET_PREINIT_IFNAME),$(CONFIG_TARGET_PREINIT_IFNAME),"")' >>$(1)/lib/preinit/00_preinit.conf
|
|
|
|
echo 'pi_ip=$(if $(CONFIG_TARGET_PREINIT_IP),$(CONFIG_TARGET_PREINIT_IP),"192.168.1.1")' >>$(1)/lib/preinit/00_preinit.conf
|
|
|
|
echo 'pi_netmask=$(if $(CONFIG_TARGET_PREINIT_NETMASK),$(CONFIG_TARGET_PREINIT_NETMASK),"255.255.255.0")' >>$(1)/lib/preinit/00_preinit.conf
|
2010-01-26 14:41:26 +00:00
|
|
|
echo 'pi_broadcast=$(if $(CONFIG_TARGET_PREINIT_BROADCAST),$(CONFIG_TARGET_PREINIT_BROADCAST),"192.168.1.255")' >>$(1)/lib/preinit/00_preinit.conf
|
2010-01-25 17:11:17 +00:00
|
|
|
echo 'pi_preinit_net_messages="$(CONFIG_TARGET_PREINIT_SHOW_NETMSG)"' >>$(1)/lib/preinit/00_preinit.conf
|
2011-01-18 14:46:25 +00:00
|
|
|
echo 'pi_preinit_no_failsafe_netmsg="$(CONFIG_TARGET_PREINIT_SUPPRESS_FAILSAFE_NETMSG)"' >>$(1)/lib/preinit/00_preinit.conf
|
2016-04-19 08:07:35 +00:00
|
|
|
echo 'pi_preinit_no_failsafe="$(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE)"' >>$(1)/lib/preinit/00_preinit.conf
|
2010-01-25 17:11:17 +00:00
|
|
|
endef
|
|
|
|
|
2006-05-30 20:22:58 +00:00
|
|
|
define Build/Prepare
|
|
|
|
mkdir -p $(PKG_BUILD_DIR)
|
|
|
|
endef
|
|
|
|
|
2012-06-13 16:25:29 +00:00
|
|
|
define Build/Compile/Default
|
2011-03-01 05:40:38 +00:00
|
|
|
|
2006-05-30 20:22:58 +00:00
|
|
|
endef
|
2012-06-13 16:25:29 +00:00
|
|
|
Build/Compile = $(Build/Compile/Default)
|
2006-05-30 20:22:58 +00:00
|
|
|
|
2015-04-06 19:39:51 +00:00
|
|
|
ifdef CONFIG_SIGNED_PACKAGES
|
|
|
|
define Build/Configure
|
|
|
|
[ -s $(BUILD_KEY) -a -s $(BUILD_KEY).pub ] || \
|
|
|
|
$(STAGING_DIR_HOST)/bin/usign -G -s $(BUILD_KEY) -p $(BUILD_KEY).pub -c "Local build key"
|
|
|
|
|
2018-01-15 02:37:17 +00:00
|
|
|
[ -s $(BUILD_KEY).ucert ] || \
|
|
|
|
$(STAGING_DIR_HOST)/bin/ucert -I -c $(BUILD_KEY).ucert -p $(BUILD_KEY).pub -s $(BUILD_KEY)
|
|
|
|
|
2015-04-06 19:39:51 +00:00
|
|
|
endef
|
2019-10-21 14:26:07 +00:00
|
|
|
|
2020-04-12 19:28:49 +00:00
|
|
|
ifndef CONFIG_BUILDBOT
|
2019-10-21 14:26:07 +00:00
|
|
|
define Package/base-files/install-key
|
|
|
|
mkdir -p $(1)/etc/opkg/keys
|
|
|
|
$(CP) $(BUILD_KEY).pub $(1)/etc/opkg/keys/`$(STAGING_DIR_HOST)/bin/usign -F -p $(BUILD_KEY).pub`
|
|
|
|
|
|
|
|
endef
|
2015-04-06 19:39:51 +00:00
|
|
|
endif
|
2020-04-12 19:28:49 +00:00
|
|
|
endif
|
2015-04-06 19:39:51 +00:00
|
|
|
|
2017-04-21 18:37:58 +00:00
|
|
|
ifeq ($(CONFIG_NAND_SUPPORT),)
|
|
|
|
define Package/base-files/nand-support
|
|
|
|
rm -f $(1)/lib/upgrade/nand.sh
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2009-08-20 15:31:22 +00:00
|
|
|
define Package/base-files/install
|
2006-11-22 23:30:57 +00:00
|
|
|
$(CP) ./files/* $(1)/
|
2019-10-21 14:26:07 +00:00
|
|
|
$(Package/base-files/install-key)
|
2017-04-21 18:37:58 +00:00
|
|
|
$(Package/base-files/nand-support)
|
2007-04-24 12:05:52 +00:00
|
|
|
if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \
|
|
|
|
$(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \
|
|
|
|
fi
|
2007-09-29 14:27:54 +00:00
|
|
|
if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
|
|
|
|
$(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
|
2007-03-02 18:17:40 +00:00
|
|
|
fi
|
2007-09-08 19:55:42 +00:00
|
|
|
$(if $(filter-out $(PLATFORM_DIR),$(PLATFORM_SUBDIR)), \
|
2007-09-29 14:27:54 +00:00
|
|
|
if [ -d $(PLATFORM_SUBDIR)/base-files/. ]; then \
|
|
|
|
$(CP) $(PLATFORM_SUBDIR)/base-files/* $(1)/; \
|
2007-12-23 02:13:57 +00:00
|
|
|
fi; \
|
2007-09-08 19:55:42 +00:00
|
|
|
)
|
2011-11-10 12:55:01 +00:00
|
|
|
|
2018-01-25 00:33:21 +00:00
|
|
|
$(VERSION_SED_SCRIPT) \
|
include, base-files, opkg: introduce version configuration to override the embedded version info of generated images - Introduce new Kconfig symbols VERSION_DIST, VERSION_NICK, VERSION_NUMBER and VERSION_REPO to specify distribution, release name, version and repository for a given build - Introduce include/version.mk to provide common helpers for packages dealing with versions - Make opkg use version.mk to populate the opkg.conf template - Make base-files use version.mk to populate /etc/openwrt_version, /etc/openwrt_release and /etc/banner
The available placeholders are:
%D .. Replace with $(CONFIG_VERSION_DIST), default to "OpenWrt"
%d .. Like %D, but all characters made lowercase and spaces substituted with "_" (e.g. "openwrt")
%N .. Replace with $(CONFIG_VERSION_NICK), default to the build tree release (e.g. "Attitude Adjustment")
%n .. Like %N, but all characters made lowercase and spaces substituted with "_" (e.g. "attitude_adjustment")
%V .. Replace with $(CONFIG_VERSION_NUMBER), default to the build tree release (e.g. "r31262")
%v .. Like %V, but all characters made lowercase and spaces substituted with "_"
%C .. Replace with $(CONFIG_VERSION_NUMBER), default to "Bleeding Edge"
%c .. Like %C, but all characters made lowercase and spaces substituted with "_" (e.g. "bleeding_edge")
%U .. Replace with $(CONFIG_VERSION_REPO), default to "http://downloads.openwrt.org/snapshots/trunk/%T/packages"
%R .. Replace with the current build tree revision (e.g. "r31262" or "75488c4a05b8033cf69e91874a61852db7ba9c6c")
%T .. Replace with the current target (e.g. "ar71xx")
%S .. Replace with the current target/subtarget combo (e.g. "adm5120/router_le")
SVN-Revision: 31262
2012-04-12 17:31:16 +00:00
|
|
|
$(1)/etc/banner \
|
2016-05-18 13:07:30 +00:00
|
|
|
$(1)/etc/openwrt_version \
|
|
|
|
$(1)/usr/lib/os-release
|
2014-07-29 13:30:23 +00:00
|
|
|
|
|
|
|
$(VERSION_SED_SCRIPT) \
|
2014-07-29 13:30:12 +00:00
|
|
|
$(1)/etc/openwrt_release \
|
2016-05-18 13:07:30 +00:00
|
|
|
$(1)/etc/device_info \
|
|
|
|
$(1)/usr/lib/os-release
|
include, base-files, opkg: introduce version configuration to override the embedded version info of generated images - Introduce new Kconfig symbols VERSION_DIST, VERSION_NICK, VERSION_NUMBER and VERSION_REPO to specify distribution, release name, version and repository for a given build - Introduce include/version.mk to provide common helpers for packages dealing with versions - Make opkg use version.mk to populate the opkg.conf template - Make base-files use version.mk to populate /etc/openwrt_version, /etc/openwrt_release and /etc/banner
The available placeholders are:
%D .. Replace with $(CONFIG_VERSION_DIST), default to "OpenWrt"
%d .. Like %D, but all characters made lowercase and spaces substituted with "_" (e.g. "openwrt")
%N .. Replace with $(CONFIG_VERSION_NICK), default to the build tree release (e.g. "Attitude Adjustment")
%n .. Like %N, but all characters made lowercase and spaces substituted with "_" (e.g. "attitude_adjustment")
%V .. Replace with $(CONFIG_VERSION_NUMBER), default to the build tree release (e.g. "r31262")
%v .. Like %V, but all characters made lowercase and spaces substituted with "_"
%C .. Replace with $(CONFIG_VERSION_NUMBER), default to "Bleeding Edge"
%c .. Like %C, but all characters made lowercase and spaces substituted with "_" (e.g. "bleeding_edge")
%U .. Replace with $(CONFIG_VERSION_REPO), default to "http://downloads.openwrt.org/snapshots/trunk/%T/packages"
%R .. Replace with the current build tree revision (e.g. "r31262" or "75488c4a05b8033cf69e91874a61852db7ba9c6c")
%T .. Replace with the current target (e.g. "ar71xx")
%S .. Replace with the current target/subtarget combo (e.g. "adm5120/router_le")
SVN-Revision: 31262
2012-04-12 17:31:16 +00:00
|
|
|
|
2016-02-08 14:28:50 +00:00
|
|
|
$(SED) "s#%PATH%#$(TARGET_INIT_PATH)#g" \
|
|
|
|
$(1)/sbin/hotplug-call \
|
|
|
|
$(1)/etc/preinit \
|
|
|
|
$(1)/etc/profile
|
|
|
|
|
2009-01-13 03:21:25 +00:00
|
|
|
mkdir -p $(1)/CONTROL
|
2006-05-30 20:22:58 +00:00
|
|
|
mkdir -p $(1)/dev
|
2017-09-30 11:50:44 +00:00
|
|
|
mkdir -p $(1)/etc/config
|
2006-05-30 20:22:58 +00:00
|
|
|
mkdir -p $(1)/etc/crontabs
|
2009-07-02 07:24:44 +00:00
|
|
|
mkdir -p $(1)/etc/rc.d
|
2010-03-21 17:16:50 +00:00
|
|
|
mkdir -p $(1)/overlay
|
2007-04-22 15:00:19 +00:00
|
|
|
mkdir -p $(1)/lib/firmware
|
2015-04-03 00:07:43 +00:00
|
|
|
$(if $(LIB_SUFFIX),-$(LN) lib $(1)/lib$(LIB_SUFFIX))
|
2006-05-30 20:22:58 +00:00
|
|
|
mkdir -p $(1)/mnt
|
|
|
|
mkdir -p $(1)/proc
|
|
|
|
mkdir -p $(1)/tmp
|
|
|
|
mkdir -p $(1)/usr/lib
|
2015-04-03 00:07:43 +00:00
|
|
|
$(if $(LIB_SUFFIX),-$(LN) lib $(1)/usr/lib$(LIB_SUFFIX))
|
2006-05-30 20:22:58 +00:00
|
|
|
mkdir -p $(1)/usr/bin
|
|
|
|
mkdir -p $(1)/sys
|
|
|
|
mkdir -p $(1)/www
|
2007-09-19 19:58:07 +00:00
|
|
|
mkdir -p $(1)/root
|
2014-11-06 19:35:34 +00:00
|
|
|
$(LN) /proc/mounts $(1)/etc/mtab
|
2006-05-30 20:22:58 +00:00
|
|
|
rm -f $(1)/var
|
2018-03-15 18:06:59 +00:00
|
|
|
$(LN) tmp $(1)/var
|
2006-05-30 20:22:58 +00:00
|
|
|
mkdir -p $(1)/etc
|
2016-06-16 22:54:25 +00:00
|
|
|
$(LN) /tmp/resolv.conf /tmp/TZ /tmp/localtime $(1)/etc/
|
2012-06-05 18:02:00 +00:00
|
|
|
|
|
|
|
chmod 0600 $(1)/etc/shadow
|
|
|
|
chmod 1777 $(1)/tmp
|
|
|
|
|
2010-01-25 17:11:17 +00:00
|
|
|
$(call ImageConfigOptions,$(1))
|
2006-11-22 23:27:29 +00:00
|
|
|
$(call Package/base-files/install-target,$(1))
|
|
|
|
for conffile in $(1)/etc/config/*; do \
|
|
|
|
if [ -f "$$$$conffile" ]; then \
|
2009-09-19 23:04:34 +00:00
|
|
|
grep "$$$${conffile##$(1)}" $(1)/CONTROL/conffiles || \
|
2006-11-22 23:27:29 +00:00
|
|
|
echo "$$$${conffile##$(1)}" >> $(1)/CONTROL/conffiles; \
|
|
|
|
fi \
|
|
|
|
done
|
2017-01-05 07:06:26 +00:00
|
|
|
|
|
|
|
$(if $(CONFIG_INCLUDE_CONFIG), \
|
|
|
|
echo -e "# Build configuration for board $(BOARD)/$(SUBTARGET)/$(PROFILE)\n" >$(1)/etc/build.config; \
|
2020-02-08 23:04:11 +00:00
|
|
|
cat $(BIN_DIR)/config.buildinfo >>$(1)/etc/build.config; \
|
|
|
|
cat $(BIN_DIR)/feeds.buildinfo >>$(1)/etc/build.feeds; \
|
|
|
|
cat $(BIN_DIR)/version.buildinfo >>$(1)/etc/build.version)
|
2017-12-12 10:19:07 +00:00
|
|
|
|
2017-12-13 13:41:28 +00:00
|
|
|
$(if $(CONFIG_CLEAN_IPKG),, \
|
|
|
|
mkdir -p $(1)/etc/opkg; \
|
|
|
|
$(call FeedSourcesAppend,$(1)/etc/opkg/distfeeds.conf); \
|
2018-01-25 00:33:21 +00:00
|
|
|
$(VERSION_SED_SCRIPT) $(1)/etc/opkg/distfeeds.conf)
|
2020-01-06 17:12:43 +00:00
|
|
|
$(if $(CONFIG_IPK_FILES_CHECKSUMS),, \
|
|
|
|
rm -f $(1)/sbin/pkg_check)
|
2006-05-30 20:22:58 +00:00
|
|
|
endef
|
|
|
|
|
2006-11-22 23:27:29 +00:00
|
|
|
ifneq ($(DUMP),1)
|
|
|
|
-include $(PLATFORM_DIR)/base-files.mk
|
2016-09-20 00:52:37 +00:00
|
|
|
-include $(PLATFORM_SUBDIR)/base-files.mk
|
2006-11-22 23:27:29 +00:00
|
|
|
endif
|
|
|
|
|
2009-08-20 15:31:22 +00:00
|
|
|
$(eval $(call BuildPackage,base-files))
|