2 # Copyright (C) 2007-2021 OpenWrt.org
3 # Copyright (C) 2010 Vertical Communications
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
9 include $(TOPDIR
)/rules.mk
10 include $(INCLUDE_DIR
)/kernel.mk
11 include $(INCLUDE_DIR
)/version.mk
12 include $(INCLUDE_DIR
)/feeds.mk
16 PKG_RELEASE
:=$(COMMITCOUNT
)
18 PKG_FILE_DEPENDS
:=$(PLATFORM_DIR
)/ $(GENERIC_PLATFORM_DIR
)/base-files
/
19 PKG_BUILD_DEPENDS
:=usign
/host ucert
/host
22 # Extend depends from version.mk
23 PKG_CONFIG_DEPENDS
+= \
24 CONFIG_SIGNED_PACKAGES CONFIG_TARGET_INIT_PATH CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE \
26 CONFIG_LEGACY_SDCARD_SUPPORT \
29 CONFIG_PER_FEED_REPO \
30 $(foreach feed
,$(FEEDS_AVAILABLE
),CONFIG_FEED_
$(feed
))
32 include $(INCLUDE_DIR
)/package.mk
35 STAMP_CONFIGURED
:=$(strip $(STAMP_CONFIGURED
))_
$(shell echo
$(CONFIG_TARGET_INIT_PATH
) |
$(MKHASH
) md5
)
39 define Package
/base-files
42 DEPENDS
:=+netifd
+libc
+jsonfilter
+SIGNED_PACKAGES
:usign
+SIGNED_PACKAGES
:openwrt-keyring
+NAND_SUPPORT
:ubi-utils
+fstools
+fwtool
43 TITLE
:=Base filesystem for OpenWrt
44 URL
:=http
://openwrt.org
/
45 VERSION
:=$(PKG_RELEASE
)-$(REVISION
)
48 define Package
/base-files
/conffiles
57 /etc
/iproute2
/rt_protos
58 /etc
/iproute2
/rt_tables
70 $(call
$(TARGET
)/conffiles
)
73 define Package
/base-files
/description
74 This package contains a base filesystem and system scripts for OpenWrt.
77 define ImageConfigOptions
78 mkdir
-p
$(1)/lib
/preinit
79 echo
'pi_suppress_stderr="$(CONFIG_TARGET_PREINIT_SUPPRESS_STDERR)"' >$(1)/lib
/preinit
/00_preinit.conf
80 echo
'fs_failsafe_wait_timeout=$(if $(CONFIG_TARGET_PREINIT_TIMEOUT),$(CONFIG_TARGET_PREINIT_TIMEOUT),2)' >>$(1)/lib
/preinit
/00_preinit.conf
81 echo
'pi_init_path="$(TARGET_INIT_PATH)"' >>$(1)/lib
/preinit
/00_preinit.conf
82 echo
'pi_init_env=$(if $(CONFIG_TARGET_INIT_ENV),$(CONFIG_TARGET_INIT_ENV),"")' >>$(1)/lib
/preinit
/00_preinit.conf
83 echo
'pi_init_cmd=$(if $(CONFIG_TARGET_INIT_CMD),$(CONFIG_TARGET_INIT_CMD),"/sbin/init")' >>$(1)/lib
/preinit
/00_preinit.conf
84 echo
'pi_init_suppress_stderr="$(CONFIG_TARGET_INIT_SUPPRESS_STDERR)"' >>$(1)/lib
/preinit
/00_preinit.conf
85 echo
'pi_ifname=$(if $(CONFIG_TARGET_PREINIT_IFNAME),$(CONFIG_TARGET_PREINIT_IFNAME),"")' >>$(1)/lib
/preinit
/00_preinit.conf
86 echo
'pi_ip=$(if $(CONFIG_TARGET_PREINIT_IP),$(CONFIG_TARGET_PREINIT_IP),"192.168.1.1")' >>$(1)/lib
/preinit
/00_preinit.conf
87 echo
'pi_netmask=$(if $(CONFIG_TARGET_PREINIT_NETMASK),$(CONFIG_TARGET_PREINIT_NETMASK),"255.255.255.0")' >>$(1)/lib
/preinit
/00_preinit.conf
88 echo
'pi_broadcast=$(if $(CONFIG_TARGET_PREINIT_BROADCAST),$(CONFIG_TARGET_PREINIT_BROADCAST),"192.168.1.255")' >>$(1)/lib
/preinit
/00_preinit.conf
89 echo
'pi_preinit_net_messages="$(CONFIG_TARGET_PREINIT_SHOW_NETMSG)"' >>$(1)/lib
/preinit
/00_preinit.conf
90 echo
'pi_preinit_no_failsafe_netmsg="$(CONFIG_TARGET_PREINIT_SUPPRESS_FAILSAFE_NETMSG)"' >>$(1)/lib
/preinit
/00_preinit.conf
91 echo
'pi_preinit_no_failsafe="$(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE)"' >>$(1)/lib
/preinit
/00_preinit.conf
92 ifeq ($(CONFIG_TARGET_DEFAULT_LAN_IP_FROM_PREINIT
),y
)
93 mkdir
-p
$(1)/etc
/board.d
94 echo
'. /lib/functions/uci-defaults.sh' >$(1)/etc
/board.d
/99-lan-ip
95 echo
'logger -t 99-lan-ip "setting custom default LAN IP"' >>$(1)/etc
/board.d
/99-lan-ip
96 echo
'board_config_update' >>$(1)/etc
/board.d
/99-lan-ip
97 echo
'json_select network' >>$(1)/etc
/board.d
/99-lan-ip
98 echo
'json_select lan' >>$(1)/etc
/board.d
/99-lan-ip
99 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
100 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
101 echo
'json_select ..' >>$(1)/etc
/board.d
/99-lan-ip
102 echo
'json_select ..' >>$(1)/etc
/board.d
/99-lan-ip
103 echo
'board_config_flush' >>$(1)/etc
/board.d
/99-lan-ip
108 mkdir
-p
$(PKG_BUILD_DIR
)
114 define Build
/Compile
/Default
117 Build
/Compile
= $(Build
/Compile
/Default
)
119 ifdef CONFIG_SIGNED_PACKAGES
120 define Build
/Configure
121 [ -s
$(BUILD_KEY
) -a
-s
$(BUILD_KEY
).pub
] || \
122 $(STAGING_DIR_HOST
)/bin
/usign
-G
-s
$(BUILD_KEY
) -p
$(BUILD_KEY
).pub
-c
"Local build key"
124 [ -s
$(BUILD_KEY
).ucert
] || \
125 $(STAGING_DIR_HOST
)/bin
/ucert
-I
-c
$(BUILD_KEY
).ucert
-p
$(BUILD_KEY
).pub
-s
$(BUILD_KEY
)
129 ifndef CONFIG_BUILDBOT
130 define Package
/base-files
/install-key
131 mkdir
-p
$(1)/etc
/opkg
/keys
132 $(CP
) $(BUILD_KEY
).pub
$(1)/etc
/opkg
/keys
/`$(STAGING_DIR_HOST)/bin/usign -F -p $(BUILD_KEY).pub`
138 ifeq ($(CONFIG_NAND_SUPPORT
),)
139 define Package
/base-files
/nand-support
140 rm -f
$(1)/lib
/upgrade
/nand.sh
144 ifeq ($(CONFIG_EMMC_SUPPORT
),)
145 define Package
/base-files
/emmc-support
146 rm -f
$(1)/lib
/upgrade
/emmc.sh
150 ifeq ($(CONFIG_LEGACY_SDCARD_SUPPORT
),)
151 define Package
/base-files
/legacy-sdcard-support
152 rm -f
$(1)/lib
/upgrade
/legacy-sdcard.sh
157 define Package
/base-files
/install
158 $(CP
) .
/files
/* $(1)/
159 $(Package
/base-files
/install-key
)
160 $(Package
/base-files
/nand-support
)
161 $(Package
/base-files
/legacy-sdcard-support
)
162 $(Package
/base-files
/emmc-support
)
163 if
[ -d
$(GENERIC_PLATFORM_DIR
)/base-files
/.
]; then \
164 $(CP
) $(GENERIC_PLATFORM_DIR
)/base-files
/* $(1)/; \
166 if
[ -d
$(PLATFORM_DIR
)/base-files
/.
]; then \
167 $(CP
) $(PLATFORM_DIR
)/base-files
/* $(1)/; \
169 $(if
$(filter-out $(PLATFORM_DIR
),$(PLATFORM_SUBDIR
)), \
170 if
[ -d
$(PLATFORM_SUBDIR
)/base-files
/.
]; then \
171 $(CP
) $(PLATFORM_SUBDIR
)/base-files
/* $(1)/; \
175 $(VERSION_SED_SCRIPT
) \
177 $(1)/etc
/device_info \
178 $(1)/etc
/openwrt_release \
179 $(1)/etc
/openwrt_version \
180 $(1)/usr
/lib
/os-release
183 $(SED
) "s#%PATH%#$(TARGET_INIT_PATH)#g" \
184 $(1)/sbin
/hotplug-call \
206 $(LN
) /proc
/mounts
$(1)/etc
/mtab
207 $(if
$(LIB_SUFFIX
),-$(LN
) lib
$(1)/lib
$(LIB_SUFFIX
))
208 $(if
$(LIB_SUFFIX
),-$(LN
) lib
$(1)/usr
/lib
$(LIB_SUFFIX
))
210 ifneq ($(CONFIG_TARGET_ROOTFS_PERSIST_VAR
),y
)
215 $(LN
) /tmp
/run
$(1)/var
/run
217 $(LN
) /tmp
/resolv.conf
/tmp
/TZ
/tmp
/localtime
$(1)/etc
/
219 chmod
0600 $(1)/etc
/shadow
222 $(call ImageConfigOptions
,$(1))
223 $(call Package
/base-files
/install-target
,$(1))
224 for conffile in
$(1)/etc
/config
/*; do \
225 if
[ -f
"$$$$conffile" ]; then \
226 grep
"$$$${conffile##$(1)}" $(1)/CONTROL
/conffiles || \
227 echo
"$$$${conffile##$(1)}" >> $(1)/CONTROL
/conffiles
; \
231 $(if
$(CONFIG_INCLUDE_CONFIG
), \
232 echo
-e
"# Build configuration for board $(BOARD)/$(SUBTARGET)/$(PROFILE)\n" >$(1)/etc
/build.config
; \
233 cat
$(BIN_DIR
)/config.buildinfo
>>$(1)/etc
/build.config
; \
234 cat
$(BIN_DIR
)/feeds.buildinfo
>>$(1)/etc
/build.feeds
; \
235 cat
$(BIN_DIR
)/version.buildinfo
>>$(1)/etc
/build.version
)
237 $(if
$(CONFIG_CLEAN_IPKG
),, \
238 mkdir
-p
$(1)/etc
/opkg
; \
239 $(call FeedSourcesAppend
,$(1)/etc
/opkg
/distfeeds.conf
); \
240 $(VERSION_SED_SCRIPT
) $(1)/etc
/opkg
/distfeeds.conf
)
241 $(if
$(CONFIG_IPK_FILES_CHECKSUMS
),, \
242 rm -f
$(1)/sbin
/pkg_check
)
244 $(if
$(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE
), \
245 rm -f
$(1)/etc
/banner.failsafe
,)
249 -include $(PLATFORM_DIR
)/base-files.mk
250 -include $(PLATFORM_SUBDIR
)/base-files.mk
253 $(eval
$(call BuildPackage
,base-files
))