Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/Config.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 532 - (hide annotations) (download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File size: 15801 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd

1 niro 532 #
2     # For a description of the syntax of this configuration file,
3     # see scripts/kbuild/config-language.txt.
4     #
5    
6     mainmenu "BusyBox Configuration"
7    
8     config HAVE_DOT_CONFIG
9     bool
10     default y
11    
12     menu "Busybox Settings"
13    
14     menu "General Configuration"
15    
16     config NITPICK
17     bool "See lots more (probably unnecessary) configuration options."
18     default n
19     help
20     Some BusyBox applets have more configuration options than anyone
21     will ever care about. To avoid drowining people in complexity, most
22     of the applet features that can be set to a sane default value are
23     hidden, unless you hit the above switch.
24    
25     This is better than to telling people to edit the busybox source
26     code, but not by much.
27    
28     See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet
29    
30     You have been warned.
31    
32     config DESKTOP
33     bool "Enable options for full-blown desktop systems"
34     default n
35     help
36     Enable options and features which are not essential.
37     Select this only if you plan to use busybox on full-blown
38     desktop machine with common Linux distro, not on an embedded box.
39    
40     choice
41     prompt "Buffer allocation policy"
42     default FEATURE_BUFFERS_USE_MALLOC
43     depends on NITPICK
44     help
45     There are 3 ways BusyBox can handle buffer allocations:
46     - Use malloc. This costs code size for the call to xmalloc.
47     - Put them on stack. For some very small machines with limited stack
48     space, this can be deadly. For most folks, this works just fine.
49     - Put them in BSS. This works beautifully for computers with a real
50     MMU (and OS support), but wastes runtime RAM for uCLinux. This
51     behavior was the only one available for BusyBox versions 0.48 and
52     earlier.
53    
54     config FEATURE_BUFFERS_USE_MALLOC
55     bool "Allocate with Malloc"
56    
57     config FEATURE_BUFFERS_GO_ON_STACK
58     bool "Allocate on the Stack"
59    
60     config FEATURE_BUFFERS_GO_IN_BSS
61     bool "Allocate in the .bss section"
62    
63     endchoice
64    
65     config SHOW_USAGE
66     bool "Show terse applet usage messages"
67     default y
68     help
69     All BusyBox applets will show help messages when invoked with
70     wrong arguments. You can turn off printing these terse usage
71     messages if you say no here.
72     This will save you up to 7k.
73    
74     config FEATURE_VERBOSE_USAGE
75     bool "Show verbose applet usage messages"
76     default n
77     select SHOW_USAGE
78     help
79     All BusyBox applets will show more verbose help messages when
80     busybox is invoked with --help. This will add a lot of text to the
81     busybox binary. In the default configuration, this will add about
82     13k, but it can add much more depending on your configuration.
83    
84     config FEATURE_COMPRESS_USAGE
85     bool "Store applet usage messages in compressed form"
86     default y
87     depends on SHOW_USAGE
88     help
89     Store usage messages in compressed form, uncompress them on-the-fly
90     when <applet> --help is called.
91    
92     If you have a really tiny busybox with few applets enabled (and
93     bunzip2 isn't one of them), the overhead of the decompressor might
94     be noticeable. Also, if you run executables directly from ROM
95     and have very little memory, this might not be a win. Otherwise,
96     you probably want this.
97    
98     config FEATURE_INSTALLER
99     bool "Support --install [-s] to install applet links at runtime"
100     default n
101     help
102     Enable 'busybox --install [-s]' support. This will allow you to use
103     busybox at runtime to create hard links or symlinks for all the
104     applets that are compiled into busybox. This feature requires the
105     /proc filesystem.
106    
107     config LOCALE_SUPPORT
108     bool "Enable locale support (system needs locale for this to work)"
109     default n
110     help
111     Enable this if your system has locale support and you would like
112     busybox to support locale settings.
113    
114     config GETOPT_LONG
115     bool "Enable support for --long-options"
116     default y
117     help
118     Enable this if you want busybox applets to use the gnu --long-option
119     style, in addition to single character -a -b -c style options.
120    
121     config FEATURE_DEVPTS
122     bool "Use the devpts filesystem for Unix98 PTYs"
123     default y
124     help
125     Enable if you want BusyBox to use Unix98 PTY support. If enabled,
126     busybox will use /dev/ptmx for the master side of the pseudoterminal
127     and /dev/pts/<number> for the slave side. Otherwise, BSD style
128     /dev/ttyp<number> will be used. To use this option, you should have
129     devpts mounted.
130    
131     config FEATURE_CLEAN_UP
132     bool "Clean up all memory before exiting (usually not needed)"
133     default n
134     depends on NITPICK
135     help
136     As a size optimization, busybox normally exits without explicitly
137     freeing dynamically allocated memory or closing files. This saves
138     space since the OS will clean up for us, but it can confuse debuggers
139     like valgrind, which report tons of memory and resource leaks.
140    
141     Don't enable this unless you have a really good reason to clean
142     things up manually.
143    
144     config FEATURE_SUID
145     bool "Support for SUID/SGID handling"
146     default n
147     help
148     With this option you can install the busybox binary belonging
149     to root with the suid bit set, and it'll and it'll automatically drop
150     priviledges for applets that don't need root access.
151    
152     If you're really paranoid and don't want to do this, build two
153     busybox binaries with different applets in them (and the appropriate
154     symlinks pointing to each binary), and only set the suid bit on the
155     one that needs it. The applets currently marked to need the suid bit
156     are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs,
157     and vlock.
158    
159     config FEATURE_SYSLOG
160     bool "Support for syslog"
161     default n
162     help
163     This option is auto-selected when you select any applet which may
164     send its output to syslog. You do not need to select it manually.
165    
166     config FEATURE_SUID_CONFIG
167     bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
168     default n if FEATURE_SUID
169     depends on FEATURE_SUID
170     help
171     Allow the SUID / SGID state of an applet to be determined at runtime
172     by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
173     The format of this file is as follows:
174    
175     <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
176    
177     An example might help:
178    
179     [SUID]
180     su = ssx root.0 # applet su can be run by anyone and runs with euid=0/egid=0
181     su = ssx # exactly the same
182    
183     mount = sx- root.disk # applet mount can be run by root and members of group disk
184     # and runs with euid=0
185    
186     cp = --- # disable applet cp for everyone
187    
188     The file has to be owned by user root, group root and has to be
189     writeable only by root:
190     (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
191     The busybox executable has to be owned by user root, group
192     root and has to be setuid root for this to work:
193     (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
194    
195     Robert 'sandman' Griebl has more information here:
196     <url: http://www.softforge.de/bb/suid.html >.
197    
198     config FEATURE_SUID_CONFIG_QUIET
199     bool "Suppress warning message if /etc/busybox.conf is not readable"
200     default y
201     depends on FEATURE_SUID_CONFIG
202     help
203     /etc/busybox.conf should be readable by the user needing the SUID, check
204     this option to avoid users to be notified about missing permissions.
205    
206     config FEATURE_HAVE_RPC
207     bool "RPC support"
208     default y
209     help
210     Select this if you have rpc support.
211     This automatically turns off all configuration options that rely
212     on RPC.
213    
214     config SELINUX
215     bool "Support NSA Security Enhanced Linux"
216     default n
217     help
218     Enable support for SELinux in applets ls, ps, and id. Also provide
219     the option of compiling in SELinux applets.
220    
221     If you do not have a complete SELinux userland installed, this stuff
222     will not compile. Go visit
223     http://www.nsa.gov/selinux/index.html
224     to download the necessary stuff to allow busybox to compile with
225     this option enabled. Specifially, libselinux 1.28 or better is
226     directly required by busybox. If the installation is located in a
227     non-standard directory, provide it by invoking make as follows:
228     CFLAGS=-I<libselinux-include-path> \
229     LDFLAGS=-L<libselinux-lib-path> \
230     make
231    
232     Most people will leave this set to 'N'.
233    
234     config BUSYBOX_EXEC_PATH
235     string "Path to BusyBox executable"
236     default "/proc/self/exe"
237     help
238     When Busybox applets need to run other busybox applets, BusyBox
239     sometimes needs to exec() itself. When the /proc filesystem is
240     mounted, /proc/self/exe always points to the currently running
241     executable. If you haven't got /proc, set this to wherever you
242     want to run BusyBox from.
243    
244     endmenu
245    
246     menu 'Build Options'
247    
248     config STATIC
249     bool "Build BusyBox as a static binary (no shared libs)"
250     default n
251     help
252     If you want to build a static BusyBox binary, which does not
253     use or require any shared libraries, then enable this option.
254     This can cause BusyBox to be considerably larger, so you should
255     leave this option false unless you have a good reason (i.e.
256     your target platform does not support shared libraries, or
257     you are building an initrd which doesn't need anything but
258     BusyBox, etc).
259    
260     Most people will leave this set to 'N'.
261    
262     config BUILD_LIBBUSYBOX
263     bool "Build shared libbusybox"
264     default n
265     help
266     Build a shared library libbusybox.so which contains all
267     libraries used inside busybox.
268    
269     This is an experimental feature intended to support the upcoming
270     "make standalone" mode. Enabling it against the one big busybox
271     binary serves no purpose (and increases the size). You should
272     almost certainly say "no" to this right now.
273    
274     config FEATURE_FULL_LIBBUSYBOX
275     bool "Feature-complete libbusybox"
276     default n if !FEATURE_SHARED_BUSYBOX
277     depends on BUILD_LIBBUSYBOX
278     help
279     Build a libbusybox with the complete feature-set, disregarding
280     the actually selected config.
281    
282     Normally, libbusybox will only contain the features which are
283     used by busybox itself. If you plan to write a separate
284     standalone application which uses libbusybox say 'Y'.
285    
286     Note: libbusybox is GPL, not LGPL, and exports no stable API that
287     might act as a copyright barrier. We can and will modify the
288     exported function set between releases (even minor version number
289     changes), and happily break out-of-tree features.
290    
291     Say 'N' if in doubt.
292    
293     config FEATURE_SHARED_BUSYBOX
294     bool "Use shared libbusybox for busybox"
295     default y if BUILD_LIBBUSYBOX
296     depends on !STATIC && BUILD_LIBBUSYBOX
297     help
298     Use libbusybox.so also for busybox itself.
299     You need to have a working dynamic linker to use this variant.
300    
301     config LFS
302     bool "Build with Large File Support (for accessing files > 2 GB)"
303     default n
304     select FDISK_SUPPORT_LARGE_DISKS
305     help
306     If you want to build BusyBox with large file support, then enable
307     this option. This will have no effect if your kernel or your C
308     library lacks large file support for large files. Some of the
309     programs that can benefit from large file support include dd, gzip,
310     cp, mount, tar, and many others. If you want to access files larger
311     than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
312    
313     config BUILD_AT_ONCE
314     bool "Compile all sources at once"
315     default n
316     help
317     Normally each source-file is compiled with one invocation of
318     the compiler.
319     If you set this option, all sources are compiled at once.
320     This gives the compiler more opportunities to optimize which can
321     result in smaller and/or faster binaries.
322    
323     Setting this option will consume alot of memory, e.g. if you
324     enable all applets with all features, gcc uses more than 300MB
325     RAM during compilation of busybox.
326    
327     This option is most likely only beneficial for newer compilers
328     such as gcc-4.1 and above.
329    
330     Say 'N' unless you know what you are doing.
331    
332     endmenu
333    
334     menu 'Debugging Options'
335    
336     config DEBUG
337     bool "Build BusyBox with extra Debugging symbols"
338     default n
339     help
340     Say Y here if you wish to examine BusyBox internals while applets are
341     running. This increases the size of the binary considerably, and
342     should only be used when doing development. If you are doing
343     development and want to debug BusyBox, answer Y.
344    
345     Most people should answer N.
346    
347     config DEBUG_PESSIMIZE
348     bool "Disable compiler optimizations."
349     default n
350     depends on DEBUG
351     help
352     The compiler's optimization of source code can eliminate and reorder
353     code, resulting in an executable that's hard to understand when
354     stepping through it with a debugger. This switches it off, resulting
355     in a much bigger executable that more closely matches the source
356     code.
357    
358     choice
359     prompt "Additional debugging library"
360     default NO_DEBUG_LIB
361     depends on DEBUG
362     help
363     Using an additional debugging library will make BusyBox become
364     considerable larger and will cause it to run more slowly. You
365     should always leave this option disabled for production use.
366    
367     dmalloc support:
368     ----------------
369     This enables compiling with dmalloc ( http://dmalloc.com/ )
370     which is an excellent public domain mem leak and malloc problem
371     detector. To enable dmalloc, before running busybox you will
372     want to properly set your environment, for example:
373     export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
374     The 'debug=' value is generated using the following command
375     dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
376     -p check-fence -p check-heap -p check-lists -p check-blank \
377     -p check-funcs -p realloc-copy -p allow-free-null
378    
379     Electric-fence support:
380     -----------------------
381     This enables compiling with Electric-fence support. Electric
382     fence is another very useful malloc debugging library which uses
383     your computer's virtual memory hardware to detect illegal memory
384     accesses. This support will make BusyBox be considerable larger
385     and run slower, so you should leave this option disabled unless
386     you are hunting a hard to find memory problem.
387    
388    
389     config NO_DEBUG_LIB
390     bool "None"
391    
392     config DMALLOC
393     bool "Dmalloc"
394    
395     config EFENCE
396     bool "Electric-fence"
397    
398     endchoice
399    
400     config INCLUDE_SUSv2
401     bool "Enable obsolete features removed before SUSv3?"
402     default y
403     help
404     This option will enable backwards compatibility with SuSv2,
405     specifically, old-style numeric options ('command -1 <file>')
406     will be supported in head, tail, and fold. (Note: should
407     affect renice too.)
408    
409     endmenu
410    
411     menu 'Installation Options'
412    
413     config INSTALL_NO_USR
414     bool "Don't use /usr"
415     default n
416     help
417     Disable use of /usr. Don't activate this option if you don't know
418     that you really want this behaviour.
419    
420     choice
421     prompt "Applets links"
422     default INSTALL_APPLET_SYMLINKS
423     help
424     Choose how you install applets links.
425    
426     config INSTALL_APPLET_SYMLINKS
427     bool "as soft-links"
428     help
429     Install applets as soft-links to the busybox binary. This needs some
430     free inodes on the filesystem, but might help with filesystem
431     generators that can't cope with hard-links.
432    
433     config INSTALL_APPLET_HARDLINKS
434     bool "as hard-links"
435     help
436     Install applets as hard-links to the busybox binary. This might count
437     on a filesystem with few inodes.
438    
439     config INSTALL_APPLET_DONT
440     bool
441     prompt "not installed"
442     depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE_SHELL
443     help
444     Do not install applet links. Useful when using the -install feature
445     or a standalone shell for rescue pruposes.
446    
447     endchoice
448    
449     config PREFIX
450     string "BusyBox installation prefix"
451     default "./_install"
452     help
453     Define your directory to install BusyBox files/subdirs in.
454    
455     endmenu
456    
457     source libbb/Config.in
458    
459     endmenu
460    
461     comment "Applets"
462    
463     source archival/Config.in
464     source coreutils/Config.in
465     source console-tools/Config.in
466     source debianutils/Config.in
467     source editors/Config.in
468     source findutils/Config.in
469     source init/Config.in
470     source loginutils/Config.in
471     source e2fsprogs/Config.in
472     source modutils/Config.in
473     source util-linux/Config.in
474     source miscutils/Config.in
475     source networking/Config.in
476     source procps/Config.in
477     source shell/Config.in
478     source sysklogd/Config.in
479     source runit/Config.in