2007-09-29 14:27:54 +00:00
|
|
|
#
|
2021-01-27 03:21:48 +00:00
|
|
|
# Copyright (C) 2007-2021 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
|
2016-04-06 20:38:47 +00:00
|
|
|
PKG_FLAGS:=nonshared
|
2021-01-02 00:18:32 +00:00
|
|
|
PKG_RELEASE:=$(COMMITCOUNT)
|
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 \
|
base-files: rename 'sdcard' to 'legacy-sdcard'
While an image layout based on MBR and 'bootfs' partition may be easy
to understand for users who are very used to the IBM PC and always have
the option to access the SD card outside of the device (and hence don't
really depend on other recovery methods or dual-boot), in my opinion
it's a dead end for many desirable features on embedded systems,
especially when managed remotely (and hence without an easy option to
access the SD card using another device in case things go wrong, for
example).
Let me explain:
* using a MSDOS/VFAT filesystem to store kernel(s) is problematic, as a
single corruption of the bootfs can render the system into a state
that it no longer boots at all. This makes dual-boot useless, or at
least very tedious to setup with then 2 independent boot partitions
to avoid the single point of failure on a "hot" block (the FAT index
of the boot partition, written every time a file is changed in
bootfs). And well: most targets even store the bootloader environment
in a file in that very same FAT filesystem, hence it cannot be used
to script a reliable dual-boot method (as loading the environment
itself will already fail if the filesystem is corrupted).
* loading the kernel uImage from bootfs and using rootfs inside an
additional partition means the bootloader can only validate the
kernel -- if rootfs is broken or corrupted, this can lead to a reboot
loop, which is often a quite costly thing to happen in terms of
hardware lifetime.
* imitating MBR-boot behavior with a FAT-formatted bootfs partition
(like IBM PC in the 80s and 90s) is just one of many choices on
embedded targets. There are much better options with modern U-Boot
(which is what we use and build from source for all targets booting
off SD cards), see examples in mediatek/mt7622 and mediatek/mt7623.
Hence rename the 'sdcard' feature to 'legacy-sdcard', and prefix
functions with 'legacy_sdcard_' instead of 'sdcard_'.
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-07 13:30:53 +00:00
|
|
|
CONFIG_LEGACY_SDCARD_SUPPORT \
|
2021-12-01 15:17:55 +00:00
|
|
|
CONFIG_EMMC_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)
|
2021-05-09 20:28:15 +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
|
2020-10-19 15:55:39 +00:00
|
|
|
DEPENDS:=+netifd +libc +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/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
|
2022-12-07 17:04:12 +00:00
|
|
|
ifeq ($(CONFIG_TARGET_DEFAULT_LAN_IP_FROM_PREINIT),y)
|
|
|
|
mkdir -p $(1)/etc/board.d
|
|
|
|
echo '. /lib/functions/uci-defaults.sh' >$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'logger -t 99-lan-ip "setting custom default LAN IP"' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'board_config_update' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'json_select network' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'json_select lan' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'json_add_string ipaddr $(if $(CONFIG_TARGET_PREINIT_IP),$(CONFIG_TARGET_PREINIT_IP),"192.168.1.1")' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'json_add_string netmask $(if $(CONFIG_TARGET_PREINIT_NETMASK),$(CONFIG_TARGET_PREINIT_NETMASK),"255.255.255.0")' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'json_select ..' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'json_select ..' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
echo 'board_config_flush' >>$(1)/etc/board.d/99-lan-ip
|
|
|
|
endif
|
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
|
|
|
|
|
2023-10-15 19:11:17 +00:00
|
|
|
define Build/Quilt
|
|
|
|
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
|
|
|
|
|
2021-12-01 15:17:55 +00:00
|
|
|
ifeq ($(CONFIG_EMMC_SUPPORT),)
|
|
|
|
define Package/base-files/emmc-support
|
|
|
|
rm -f $(1)/lib/upgrade/emmc.sh
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
base-files: rename 'sdcard' to 'legacy-sdcard'
While an image layout based on MBR and 'bootfs' partition may be easy
to understand for users who are very used to the IBM PC and always have
the option to access the SD card outside of the device (and hence don't
really depend on other recovery methods or dual-boot), in my opinion
it's a dead end for many desirable features on embedded systems,
especially when managed remotely (and hence without an easy option to
access the SD card using another device in case things go wrong, for
example).
Let me explain:
* using a MSDOS/VFAT filesystem to store kernel(s) is problematic, as a
single corruption of the bootfs can render the system into a state
that it no longer boots at all. This makes dual-boot useless, or at
least very tedious to setup with then 2 independent boot partitions
to avoid the single point of failure on a "hot" block (the FAT index
of the boot partition, written every time a file is changed in
bootfs). And well: most targets even store the bootloader environment
in a file in that very same FAT filesystem, hence it cannot be used
to script a reliable dual-boot method (as loading the environment
itself will already fail if the filesystem is corrupted).
* loading the kernel uImage from bootfs and using rootfs inside an
additional partition means the bootloader can only validate the
kernel -- if rootfs is broken or corrupted, this can lead to a reboot
loop, which is often a quite costly thing to happen in terms of
hardware lifetime.
* imitating MBR-boot behavior with a FAT-formatted bootfs partition
(like IBM PC in the 80s and 90s) is just one of many choices on
embedded targets. There are much better options with modern U-Boot
(which is what we use and build from source for all targets booting
off SD cards), see examples in mediatek/mt7622 and mediatek/mt7623.
Hence rename the 'sdcard' feature to 'legacy-sdcard', and prefix
functions with 'legacy_sdcard_' instead of 'sdcard_'.
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-07 13:30:53 +00:00
|
|
|
ifeq ($(CONFIG_LEGACY_SDCARD_SUPPORT),)
|
|
|
|
define Package/base-files/legacy-sdcard-support
|
|
|
|
rm -f $(1)/lib/upgrade/legacy-sdcard.sh
|
2021-07-29 22:11:37 +00:00
|
|
|
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)
|
base-files: rename 'sdcard' to 'legacy-sdcard'
While an image layout based on MBR and 'bootfs' partition may be easy
to understand for users who are very used to the IBM PC and always have
the option to access the SD card outside of the device (and hence don't
really depend on other recovery methods or dual-boot), in my opinion
it's a dead end for many desirable features on embedded systems,
especially when managed remotely (and hence without an easy option to
access the SD card using another device in case things go wrong, for
example).
Let me explain:
* using a MSDOS/VFAT filesystem to store kernel(s) is problematic, as a
single corruption of the bootfs can render the system into a state
that it no longer boots at all. This makes dual-boot useless, or at
least very tedious to setup with then 2 independent boot partitions
to avoid the single point of failure on a "hot" block (the FAT index
of the boot partition, written every time a file is changed in
bootfs). And well: most targets even store the bootloader environment
in a file in that very same FAT filesystem, hence it cannot be used
to script a reliable dual-boot method (as loading the environment
itself will already fail if the filesystem is corrupted).
* loading the kernel uImage from bootfs and using rootfs inside an
additional partition means the bootloader can only validate the
kernel -- if rootfs is broken or corrupted, this can lead to a reboot
loop, which is often a quite costly thing to happen in terms of
hardware lifetime.
* imitating MBR-boot behavior with a FAT-formatted bootfs partition
(like IBM PC in the 80s and 90s) is just one of many choices on
embedded targets. There are much better options with modern U-Boot
(which is what we use and build from source for all targets booting
off SD cards), see examples in mediatek/mt7622 and mediatek/mt7623.
Hence rename the 'sdcard' feature to 'legacy-sdcard', and prefix
functions with 'legacy_sdcard_' instead of 'sdcard_'.
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-08-07 13:30:53 +00:00
|
|
|
$(Package/base-files/legacy-sdcard-support)
|
2021-12-01 15:17:55 +00:00
|
|
|
$(Package/base-files/emmc-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 \
|
2021-09-12 08:44:11 +00:00
|
|
|
$(1)/etc/device_info \
|
|
|
|
$(1)/etc/openwrt_release \
|
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
|
|
|
|
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
|
|
|
|
|
2021-09-12 08:46:06 +00:00
|
|
|
mkdir -p \
|
|
|
|
$(1)/CONTROL \
|
|
|
|
$(1)/dev \
|
|
|
|
$(1)/etc/config \
|
|
|
|
$(1)/etc/crontabs \
|
|
|
|
$(1)/etc/rc.d \
|
|
|
|
$(1)/overlay \
|
|
|
|
$(1)/lib/firmware \
|
|
|
|
$(1)/mnt \
|
|
|
|
$(1)/proc \
|
|
|
|
$(1)/tmp \
|
|
|
|
$(1)/usr/lib \
|
|
|
|
$(1)/usr/bin \
|
|
|
|
$(1)/sys \
|
|
|
|
$(1)/www \
|
|
|
|
$(1)/root
|
|
|
|
|
|
|
|
$(LN) /proc/mounts $(1)/etc/mtab
|
2015-04-03 00:07:43 +00:00
|
|
|
$(if $(LIB_SUFFIX),-$(LN) lib $(1)/lib$(LIB_SUFFIX))
|
|
|
|
$(if $(LIB_SUFFIX),-$(LN) lib $(1)/usr/lib$(LIB_SUFFIX))
|
2021-09-12 08:46:06 +00:00
|
|
|
|
2021-08-23 11:06:35 +00:00
|
|
|
ifneq ($(CONFIG_TARGET_ROOTFS_PERSIST_VAR),y)
|
2006-05-30 20:22:58 +00:00
|
|
|
rm -f $(1)/var
|
2018-03-15 18:06:59 +00:00
|
|
|
$(LN) tmp $(1)/var
|
2019-02-25 13:05:07 +00:00
|
|
|
else
|
|
|
|
mkdir -p $(1)/var
|
|
|
|
$(LN) /tmp/run $(1)/var/run
|
|
|
|
endif
|
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)
|
2019-06-16 20:07:50 +00:00
|
|
|
|
|
|
|
$(if $(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE), \
|
|
|
|
rm -f $(1)/etc/banner.failsafe,)
|
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))
|