source: freewrt/package/Config.shell@ 655dec8

Last change on this file since 655dec8 was 919947c, checked in by Thorsten Glaser <tg@…>, 19 years ago

consolidate busybox config, so that info.mk files will be generated
in a manner that, on config changes, even busybox is rebuilt

git-svn-id: svn://www.freewrt.org/trunk/freewrt@2226 afb5a338-a214-0410-bd46-81f09a774fd1

  • Property mode set to 100644
File size: 6.1 KB
Line 
1# $FreeWRT$
2
3comment "Building shell packages and configuring their features"
4source "package/busybox/Config.ash"
5source "package/mksh/Config.in"
6comment "Selecting appropriate shells from these enabled above"
7choice
8 prompt "Choose the default bourne shell (/bin/sh)"
9 default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH if BUSYBOX_CONFIG_ASH
10 default FWRT_PACKAGE_MKSH_AS_BINSH if FWRT_PACKAGE_MKSH
11 help
12 Choose a shell which is to be used for /bin/sh.
13 The ash shell is the most bash-compatible shell
14 and full-featured one in busybox; mksh is a bit
15 more heavy-weight but feature-complete. The other
16 shells probably do not work as /bin/sh in FreeWRT.
17
18config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
19 depends BUSYBOX_CONFIG_ASH
20 bool "ash (busybox)"
21 help
22 Tha 'ash' shell adds about 60k in the default configuration and is
23 the most complete and most pedantically correct shell included with
24 busybox. This shell is actually a derivative of the Debian 'dash'
25 shell (by Herbert Xu), which was created by porting the 'ash' shell
26 (written by Kenneth Almquist) from NetBSD.
27
28config FWRT_PACKAGE_MKSH_AS_BINSH
29 depends FWRT_PACKAGE_MKSH
30 bool "mksh"
31 help
32 mksh is the MirBSD enhanced version of the Public Domain Korn
33 shell (pdksh), a bourne-compatible shell which is largely similar
34 to the original AT&T Korn shell. It includes bug fixes and
35 feature improvements in order to produce a modern, robust shell
36 good for interactive and especially script use. Some sh/ksh/pdksh
37 compatibility kludges have been removed.
38
39config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
40 depends BUSYBOX_CONFIG_HUSH
41 bool "hush (busybox)"
42 help
43 hush is a very small shell (just 18k) and it has fairly complete
44 Bourne shell grammar. It even handles all the normal flow control
45 options such as if/then/elif/else/fi, for/in/do/done, while loops,
46 etc.
47
48 It does not handle case/esac, select, function, here documents ( <<
49 word ), arithmetic expansion, aliases, brace expansion, tilde
50 expansion, &> and >& redirection of stdout+stderr, etc.
51
52config BUSYBOX_CONFIG_FEATURE_SH_IS_LASH
53 depends BUSYBOX_CONFIG_LASH
54 bool "lash (busybox)"
55 help
56 lash is the very smallest shell (adds just 10k) and it is quite
57 usable as a command prompt, but it is not suitable for any but the
58 most trivial scripting (such as an initrd that calls insmod a few
59 times) since it does not understand any Bourne shell grammar. It
60 does handle pipes, redirects, and job control though. Adding in
61 command editing makes it a very nice lightweight command prompt.
62
63config BUSYBOX_CONFIG_FEATURE_SH_IS_MSH
64 depends BUSYBOX_CONFIG_MSH
65 bool "msh (busybox)"
66 help
67 The minix shell (adds just 30k) is quite complete and handles things
68 like for/do/done, case/esac and all the things you expect a Bourne
69 shell to do. It is not always pedantically correct about Bourne
70 shell grammar (try running the shell testscript "tests/sh.testcases"
71 on it and compare vs bash) but for most things it works quite well.
72 It also uses only vfork, so it can be used on uClinux systems.
73
74endchoice
75
76choice
77 prompt "Choose the login shell for the admin user"
78 default FWRT_BASEFILES_ADMIN_ASH if BUSYBOX_CONFIG_ASH
79 default FWRT_BASEFILES_ADMIN_MKSH if FWRT_PACKAGE_MKSH
80 default FWRT_BASEFILES_ADMIN_SH if (!BUSYBOX_CONFIG_ASH && !FWRT_PACKAGE_MKSH)
81 help
82 Choose a shell which is to be used as the default login
83 shell for the "admin" user. Only shells selected above
84 can be chosen.
85
86config FWRT_BASEFILES_ADMIN_ASH
87 depends BUSYBOX_CONFIG_ASH
88 bool "ash (busybox)"
89 help
90 Tha 'ash' shell adds about 60k in the default configuration and is
91 the most complete and most pedantically correct shell included with
92 busybox. This shell is actually a derivative of the Debian 'dash'
93 shell (by Herbert Xu), which was created by porting the 'ash' shell
94 (written by Kenneth Almquist) from NetBSD.
95
96config FWRT_BASEFILES_ADMIN_MKSH
97 depends FWRT_PACKAGE_MKSH
98 bool "mksh"
99 help
100 mksh is the MirBSD enhanced version of the Public Domain Korn
101 shell (pdksh), a bourne-compatible shell which is largely similar
102 to the original AT&T Korn shell. It includes bug fixes and
103 feature improvements in order to produce a modern, robust shell
104 good for interactive and especially script use. Some sh/ksh/pdksh
105 compatibility kludges have been removed.
106
107config FWRT_BASEFILES_ADMIN_BASH
108 depends FWRT_PACKAGE_BASH
109 bool "GNU bash"
110 help
111 bash is the GNU "bourne-again" shell, a pretty bloated bourne
112 compatible shell with some basic korn shell extensions and a
113 few home-grown ones. Because it's very big and slow, it can't
114 be selected as /bin/sh.
115
116config FWRT_BASEFILES_ADMIN_HUSH
117 depends BUSYBOX_CONFIG_HUSH
118 bool "hush (busybox)"
119 help
120 hush is a very small shell (just 18k) and it has fairly complete
121 Bourne shell grammar. It even handles all the normal flow control
122 options such as if/then/elif/else/fi, for/in/do/done, while loops,
123 etc.
124
125 It does not handle case/esac, select, function, here documents ( <<
126 word ), arithmetic expansion, aliases, brace expansion, tilde
127 expansion, &> and >& redirection of stdout+stderr, etc.
128
129config FWRT_BASEFILES_ADMIN_LASH
130 depends BUSYBOX_CONFIG_LASH
131 bool "lash (busybox)"
132 help
133 lash is the very smallest shell (adds just 10k) and it is quite
134 usable as a command prompt, but it is not suitable for any but the
135 most trivial scripting (such as an initrd that calls insmod a few
136 times) since it does not understand any Bourne shell grammar. It
137 does handle pipes, redirects, and job control though. Adding in
138 command editing makes it a very nice lightweight command prompt.
139
140config FWRT_BASEFILES_ADMIN_MSH
141 depends BUSYBOX_CONFIG_MSH
142 bool "msh (busybox)"
143 help
144 The minix shell (adds just 30k) is quite complete and handles things
145 like for/do/done, case/esac and all the things you expect a Bourne
146 shell to do. It is not always pedantically correct about Bourne
147 shell grammar (try running the shell testscript "tests/sh.testcases"
148 on it and compare vs bash) but for most things it works quite well.
149 It also uses only vfork, so it can be used on uClinux systems.
150
151config FWRT_BASEFILES_ADMIN_SH
152 bool "/bin/sh"
153 help
154 Fall-back: use /bin/sh, whatever it is.
155
156endchoice
Note: See TracBrowser for help on using the repository browser.