base-files: rework config generation logic
[openwrt/openwrt.git] / package / base-files / image-config.in
1 # Copyright (C) 2006-2012 OpenWrt.org
2 # Copyright (C) 2010 Vertical Communications
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 menuconfig PREINITOPT
9 bool "Preinit configuration options" if IMAGEOPT
10 default n
11 help
12 These options are used to control the environment used to initialize
13 the system before running init (which typically mean /sbin/init which
14 switches to multiuser mode).
15
16 config TARGET_PREINIT_SUPPRESS_STDERR
17 bool "Suppress stderr messages during preinit" if PREINITOPT
18 default y
19 help
20 Sends stderr to null during preinit. This is the default behaviour
21 in previous versions of OpenWrt. This also prevents init process
22 itself from displaying stderr, however processes launched by init
23 in multiuser through inittab will use the current terminal (e.g.
24 the ash shell launched by inittab will display stderr). That's
25 the same behaviour as seen in previous version of OpenWrt.
26
27 config TARGET_PREINIT_DISABLE_FAILSAFE
28 bool
29 prompt "Disable failsafe" if PREINITOPT
30 default n
31 help
32 Disable failsafe mode. While it is very handy while
33 experimenting or developing it really ought to be
34 disabled in production environments as it is a major
35 security loophole.
36
37 config TARGET_PREINIT_TIMEOUT
38 int
39 prompt "Failsafe/Debug wait timeout" if PREINITOPT
40 default 2
41 help
42 How long to wait for failsafe mode to be entered or for
43 a debug option to be pressed before continuing with a
44 regular boot.
45
46 config TARGET_PREINIT_SHOW_NETMSG
47 bool
48 prompt "Show all preinit network messages" if PREINITOPT
49 default n
50 help
51 Show preinit all network messages (via netmsg broadcast), not only
52 the message indicating to press reset to enter failsafe. Note that
53 if the architecture doesn't define an interface, and there is no
54 'Preinit network interface' defined, then no messages will be
55 emitted, even if this is set.
56
57 config TARGET_PREINIT_SUPPRESS_FAILSAFE_NETMSG
58 bool
59 prompt "Suppress network message indicating failsafe" if ( PREINITOPT && !TARGET_PREINIT_SHOW_NETMSG && !TARGET_PREINIT_DISABLE_FAILSAFE )
60 default n
61 help
62 If "Show all preinit network messages" above is not set, then
63 setting this option suppresses the only message that would be
64 emitted otherwise, name the network message to enter failsafe
65 (via netmsg).
66
67 config TARGET_PREINIT_IFNAME
68 string
69 prompt "Preinit network interface" if PREINITOPT
70 default ""
71 help
72 Interface for sending preinit messages to network, and any other
73 default networking in failsafe or preinit. If empty
74 uses $ifname (if defined in /etc/preinit.arch).
75
76 config TARGET_PREINIT_IP
77 string
78 prompt "IP address for preinit network messages" if PREINITOPT
79 default "192.168.1.1"
80 help
81 IP address used to configure interface for preinit network
82 messages, including failsafe messages
83
84 config TARGET_PREINIT_NETMASK
85 string
86 prompt "Netmask for preinit network messages" if PREINITOPT
87 default "255.255.255.0"
88 help
89 Netmask used to configure interface for preinit network
90 messages, including failsafes messages
91
92 config TARGET_PREINIT_BROADCAST
93 string
94 prompt "Broadcast address for preinit network messages" if PREINITOPT
95 default "192.168.1.255"
96 help
97 Broadcast address to which to send preinit network messages, as
98 as failsafe messages
99
100
101 menuconfig INITOPT
102 bool "Init configuration options" if IMAGEOPT
103 default n
104 help
105 These option choose the command that will run as the 'init' command
106 (that is which is responsible for controlling the system once preinit
107 transfers control to it) as well as some options controlling its
108 behaviour. Normally init is /sbin/init.
109
110 config TARGET_INIT_PATH
111 string
112 prompt "PATH for regular boot" if INITOPT
113 default "/usr/sbin:/usr/bin:/sbin:/bin"
114 help
115 Default PATH used during normal operation
116
117 config TARGET_INIT_ENV
118 string
119 prompt "Environment variables to set when starting init (start with none)" if INITOPT
120 default ""
121 help
122 Should be a space seperated list of variable assignments. These
123 variables will be present in the environment. Spaces may not be
124 present (including through expansion) even in a quoted string
125 (env doesn't understanding quoting).
126
127 config TARGET_INIT_CMD
128 string
129 prompt "Init command" if INITOPT
130 default "/sbin/init"
131 help
132 The executable to run as the init process. Is 'exec'd by
133 preinit (which is the init that the kernel launches on boot).
134
135 config TARGET_INIT_SUPPRESS_STDERR
136 bool
137 prompt "Suppress stderr messages of init" if INITOPT
138 default y
139 help
140 Prevents showing stderr messages for init command if not already
141 suppressed during preinit. This is the default behaviour in
142 previous versions of OpenWrt. Removing this does nothing if
143 stderr is suppressed during preinit (which is the default).
144
145
146 menuconfig VERSIONOPT
147 bool "Version configuration options" if IMAGEOPT
148 default n
149 help
150 These options allow to override the version information embedded in
151 the /etc/openwrt_version, /etc/openwrt_release, /etc/banner and
152 /etc/opkg.conf files. Usually there is no need to set these, but
153 they're useful for release builds or custom OpenWrt redistributions
154 that should carry custom version tags.
155
156 if VERSIONOPT
157
158 config VERSION_DIST
159 string
160 prompt "Release distribution"
161 default "Lede"
162 help
163 This is the name of the release distribution.
164 If unspecified, it defaults to OpenWrt.
165
166 config VERSION_NICK
167 string
168 prompt "Release version nickname"
169 help
170 This is the release codename embedded in the image.
171 If unspecified, it defaults to the name of source branch.
172
173 config VERSION_NUMBER
174 string
175 prompt "Release version number"
176 help
177 This is the release version number embedded in the image.
178 If unspecified, it defaults to the svn or git-svn revision
179 of the build tree.
180
181 config VERSION_REPO
182 string
183 prompt "Release repository"
184 default "http://downloads.lede-project.org/snapshots"
185 help
186 This is the repository address embedded in the image, it defaults
187 to the trunk snapshot repo; the url may contain the following placeholders:
188 %R .. Revision number
189 %V .. Release version or revision number, uppercase
190 %v .. Release version or revision number, lowercase
191 %C .. Release version or "HEAD", uppercase
192 %c .. Release version or "head", lowercase
193 %N .. Release name, uppercase
194 %n .. Release name, lowercase
195 %D .. Distribution name or "Lede", uppercase
196 %d .. Distribution name or "lede", lowercase
197 %T .. Target name
198 %S .. Target/Subtarget name
199 %A .. Package architecture
200 %t .. Build taint flags, e.g. "no-all busybox"
201 %M .. Manufacturer name or "Lede"
202 %P .. Product name or "Generic"
203 %h .. Hardware revision or "v0"
204
205 config VERSION_MANUFACTURER
206 string
207 prompt "Manufacturer name"
208 help
209 This is the manufacturer name embedded in /etc/device_info
210 Useful for OEMs building OpenWrt based firmware
211
212 config VERSION_MANUFACTURER_URL
213 string
214 prompt "Manufacturer URL"
215 help
216 This is an URL to the manufacturer's website embedded in /etc/device_info
217 Useful for OEMs building OpenWrt based firmware
218
219 config VERSION_PRODUCT
220 string
221 prompt "Product name"
222 help
223 This is the product name embedded in /etc/device_info
224 Useful for OEMs building OpenWrt based firmware
225
226 config VERSION_HWREV
227 string
228 prompt "Hardware revision"
229 help
230 This is the hardware revision string embedded in /etc/device_info
231 Useful for OEMs building OpenWrt based firmware
232
233 config VERSION_FILENAMES
234 bool
235 prompt "Version number in filenames"
236 default y
237 help
238 Enable this to include the version number in firmware image, SDK-
239 and Image Builder archive file names
240 endif
241
242
243 menuconfig PER_FEED_REPO
244 bool "Separate feed repositories" if IMAGEOPT
245 default y
246 help
247 If set, a separate repository is generated within bin/*/packages/
248 for the core packages and each enabled feed.
249
250 config PER_FEED_REPO_ADD_DISABLED
251 bool "Add available but not enabled feeds to opkg.conf"
252 default y
253 depends on PER_FEED_REPO
254 help
255 Add not installed or disabled feeds from feeds.conf to opkg.conf.
256
257 config PER_FEED_REPO_ADD_COMMENTED
258 bool "Comment out not enabled feeds"
259 default y
260 depends on PER_FEED_REPO && PER_FEED_REPO_ADD_DISABLED
261 help
262 Add not enabled feeds as commented out source lines to opkg.conf.
263
264 source "tmp/.config-feeds.in"
265
266
267 menuconfig SMIMEOPT
268 bool "Package signing options" if IMAGEOPT
269 default n
270 help
271 These options configure the signing key and certificate to
272 be used for signing and verifying packages.
273
274 config OPKGSMIME_CERT
275 string
276 prompt "Path to certificate (PEM certificate format)" if SMIMEOPT
277 help
278 Path to the certificate to use for signature verification
279
280 config OPKGSMIME_KEY
281 string
282 prompt "Path to signing key (PEM private key format)" if SMIMEOPT
283 help
284 Path to the key to use for signing packages
285
286 config OPKGSMIME_PASSPHRASE
287 bool
288 default y
289 prompt "Wait for a passphrase when signing packages?" if SMIMEOPT
290 help
291 If this value is set, then the build will pause and request a passphrase
292 from the command line when signing packages. This SHOULD NOT be used with
293 automatic builds. If this value is not set, a file can be specified from
294 which the passphrase will be read.
295
296 config OPKGSMIME_PASSFILE
297 string
298 prompt "Path to a file containing the passphrase" if SMIMEOPT
299 depends on !OPKGSMIME_PASSPHRASE
300 help
301 Path to a file containing the passphrase for the signing key.
302 If the signing key is not encrypted and does not require a passphrase,
303 this option may be left blank.