diff options
author | Mike Frysinger <vapier@gentoo.org> | 2009-05-13 01:48:00 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-05-13 01:48:00 -0400 |
commit | 7a5814c74c875d1d4ce80c8d24b0573a8fd51ab5 (patch) | |
tree | 1808a9cf0dee2b5182fe68f37c2be9b0c171990f | |
parent | 318a8e5ed557ed04712edc2a59275c92ce7e85e6 (diff) | |
download | busybox-w32-7a5814c74c875d1d4ce80c8d24b0573a8fd51ab5.tar.gz busybox-w32-7a5814c74c875d1d4ce80c8d24b0573a8fd51ab5.tar.bz2 busybox-w32-7a5814c74c875d1d4ce80c8d24b0573a8fd51ab5.zip |
split website off into dedicated git repo
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
41 files changed, 0 insertions, 5512 deletions
diff --git a/docs/busybox.net/FAQ.html b/docs/busybox.net/FAQ.html deleted file mode 100644 index 7ed1394ce..000000000 --- a/docs/busybox.net/FAQ.html +++ /dev/null | |||
@@ -1,1146 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>Frequently Asked Questions</h3> | ||
4 | |||
5 | This is a collection of some of the more frequently asked questions | ||
6 | about BusyBox. Some of the questions even have answers. If you | ||
7 | have additions to this FAQ document, we would love to add them, | ||
8 | |||
9 | <h2>General questions</h2> | ||
10 | <ol> | ||
11 | <li><a href="#getting_started">How can I get started using BusyBox?</a></li> | ||
12 | <li><a href="#configure">How do I configure busybox?</a></li> | ||
13 | <li><a href="#build">How do I build BusyBox with a cross-compiler?</a></li> | ||
14 | <li><a href="#build_system">How do I build a BusyBox-based system?</a></li> | ||
15 | <li><a href="#kernel">Which Linux kernel versions are supported?</a></li> | ||
16 | <li><a href="#arch">Which architectures does BusyBox run on?</a></li> | ||
17 | <li><a href="#libc">Which C libraries are supported?</a></li> | ||
18 | <li><a href="#commercial">Can I include BusyBox as part of the software on my device?</a></li> | ||
19 | <li><a href="#external">Where can I find other small utilities since busybox does not include the features I want?</a></li> | ||
20 | <li><a href="#demanding">I demand that you to add <favorite feature> right now! How come you don't answer all my questions on the mailing list instantly? I demand that you help me with all of my problems <em>Right Now</em>!</a></li> | ||
21 | <li><a href="#helpme">I need help with BusyBox! What should I do?</a></li> | ||
22 | <li><a href="#contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?</a></li> | ||
23 | </ol> | ||
24 | |||
25 | <h2>Troubleshooting</h2> | ||
26 | <ol> | ||
27 | <li><a href="#bugs">I think I found a bug in BusyBox! What should I do?!</a></li> | ||
28 | <li><a href="#backporting">I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?</a></li> | ||
29 | <li><a href="#init">Busybox init isn't working!</a></li> | ||
30 | <li><a href="#sed">I can't configure busybox on my system.</a></li> | ||
31 | <li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></li> | ||
32 | </ol> | ||
33 | |||
34 | <h2>Misc. questions</h2> | ||
35 | <ol> | ||
36 | <li><a href="#tz">How do I change the time zone in busybox?</a></li> | ||
37 | </ol> | ||
38 | |||
39 | <h2>Programming questions</h2> | ||
40 | <ol> | ||
41 | <li><a href="#goals">What are the goals of busybox?</a></li> | ||
42 | <li><a href="#design">What is the design of busybox?</a></li> | ||
43 | <li><a href="#source">How is the source code organized?</a> | ||
44 | <ul> | ||
45 | <li><a href="#source_applets">The applet directories.</a></li> | ||
46 | <li><a href="#source_libbb">The busybox shared library (libbb)</a></li> | ||
47 | </ul> | ||
48 | </li> | ||
49 | <li><a href="#optimize">I want to make busybox even smaller, how do I go about it?</a></li> | ||
50 | <li><a href="#adding">Adding an applet to busybox</a></li> | ||
51 | <li><a href="#standards">What standards does busybox adhere to?</a></li> | ||
52 | <li><a href="#portability">Portability.</a></li> | ||
53 | <li><a href="#tips">Tips and tricks.</a> | ||
54 | <ul> | ||
55 | <li><a href="#tips_encrypted_passwords">Encrypted Passwords</a></li> | ||
56 | <li><a href="#tips_vfork">Fork and vfork</a></li> | ||
57 | <li><a href="#tips_short_read">Short reads and writes</a></li> | ||
58 | <li><a href="#tips_memory">Memory used by relocatable code, PIC, and static linking.</a></li> | ||
59 | <li><a href="#tips_kernel_headers">Including Linux kernel headers.</a></li> | ||
60 | </ul> | ||
61 | </li> | ||
62 | <li><a href="#who">Who are the BusyBox developers?</a></li> | ||
63 | </ol> | ||
64 | |||
65 | |||
66 | <hr /> | ||
67 | <h1>General questions</h1> | ||
68 | |||
69 | <hr /> | ||
70 | <h2><a name="getting_started">How can I get started using BusyBox?</a></h2> | ||
71 | |||
72 | <p> If you just want to try out busybox without installing it, download the | ||
73 | tarball, extract it, run "make defconfig", and then run "make". | ||
74 | </p> | ||
75 | <p> | ||
76 | This will create a busybox binary with almost all features enabled. To try | ||
77 | out a busybox applet, type "./busybox [appletname] [options]", for | ||
78 | example "./busybox ls -l" or "./busybox cat LICENSE". Type "./busybox" | ||
79 | to see a command list, and "busybox appletname --help" to see a brief | ||
80 | usage message for a given applet. | ||
81 | </p> | ||
82 | <p> | ||
83 | BusyBox uses the name it was invoked under to determine which applet is | ||
84 | being invoked. (Try "mv busybox ls" and then "./ls -l".) Installing | ||
85 | busybox consists of creating symlinks (or hardlinks) to the busybox | ||
86 | binary for each applet in busybox, and making sure these links are in | ||
87 | the shell's command $PATH. The special applet name "busybox" (or with | ||
88 | any optional suffix, such as "busybox-static") uses the first argument | ||
89 | to determine which applet to run, as shown above. | ||
90 | </p> | ||
91 | <p> | ||
92 | BusyBox also has a feature called the | ||
93 | <a name="standalone_shell">"standalone shell"</a>, where the busybox | ||
94 | shell runs any built-in applets before checking the command path. This | ||
95 | feature is also enabled by "make allyesconfig", and to try it out run | ||
96 | the command line "PATH= ./busybox ash". This will blank your command path | ||
97 | and run busybox as your command shell, so the only commands it can find | ||
98 | (without an explicit path such as /bin/ls) are the built-in busybox ones. | ||
99 | This is another good way to see what's built into busybox. | ||
100 | Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH | ||
101 | to be set appropriately, depending on whether or not /proc/self/exe is | ||
102 | available or not. If you do not have /proc, then point that config option | ||
103 | to the location of your busybox binary, usually /bin/busybox. | ||
104 | (So if you set it to /proc/self/exe, and happen to be able to chroot into | ||
105 | your rootfs, you must mount /proc beforehand.) | ||
106 | </p> | ||
107 | <p> | ||
108 | A typical indication that you set CONFIG_BUSYBOX_EXEC_PATH to proc but | ||
109 | forgot to mount proc is: | ||
110 | <pre> | ||
111 | $ /bin/echo $PATH | ||
112 | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11 | ||
113 | $ echo $PATH | ||
114 | /bin/sh: echo: not found | ||
115 | </pre> | ||
116 | |||
117 | <hr /> | ||
118 | <h2><a name="configure">How do I configure busybox?</a></h2> | ||
119 | |||
120 | <p> Busybox is configured similarly to the linux kernel. Create a default | ||
121 | configuration and then run "make menuconfig" to modify it. The end | ||
122 | result is a .config file that tells the busybox build process what features | ||
123 | to include. So instead of "./configure; make; make install" the equivalent | ||
124 | busybox build would be "make defconfig; make; make install". | ||
125 | </p> | ||
126 | |||
127 | <p> Busybox configured with all features enabled is a little under a megabyte | ||
128 | dynamically linked on x86. To create a smaller busybox, configure it with | ||
129 | fewer features. Individual busybox applets cost anywhere from a few | ||
130 | hundred bytes to tens of kilobytes. Disable unneeded applets to save, | ||
131 | space, using menuconfig. | ||
132 | </p> | ||
133 | |||
134 | <p>The most important busybox configurators are:</p> | ||
135 | |||
136 | <ul> | ||
137 | <li><p>make <b>defconfig</b> - Create the maximum "sane" configuration. This | ||
138 | enables almost all features, minus things like debugging options and features | ||
139 | that require changes to the rest of the system to work (such as selinux or | ||
140 | devfs device names). Use this if you want to start from a full-featured | ||
141 | busybox and remove features until it's small enough.</p></li> | ||
142 | <li><p>make <b>allnoconfig</b> - Disable everything. This creates a tiny version | ||
143 | of busybox that doesn't do anything. Start here if you know exactly what | ||
144 | you want and would like to select only those features.</p></li> | ||
145 | <li><p>make <b>menuconfig</b> - Interactively modify a .config file through a | ||
146 | multi-level menu interface. Use this after one of the previous two.</p></li> | ||
147 | </ul> | ||
148 | |||
149 | <p>Some other configuration options are:</p> | ||
150 | <ul> | ||
151 | <li><p>make <b>oldconfig</b> - Update an old .config file for a newer version | ||
152 | of busybox.</p></li> | ||
153 | <li><p>make <b>allyesconfig</b> - Select absolutely everything. This creates | ||
154 | a statically linked version of busybox full of debug code, with dependencies on | ||
155 | selinux, using devfs names... This makes sure everything compiles. Whether | ||
156 | or not the result would do anything useful is an open question.</p></li> | ||
157 | <li><p>make <b>allbareconfig</b> - Select all applets but disable all sub-features | ||
158 | within each applet. More build coverage testing.</p></li> | ||
159 | <li><p>make <b>randconfig</b> - Create a random configuration for test purposes.</p></li> | ||
160 | </ul> | ||
161 | |||
162 | <p> Menuconfig modifies your .config file through an interactive menu where you can enable or disable | ||
163 | busybox features, and get help about each feature. | ||
164 | |||
165 | <p> | ||
166 | To build a smaller busybox binary, run "make menuconfig" and disable the | ||
167 | features you don't need. (Or run "make allnoconfig" and then use | ||
168 | menuconfig to add just the features you need. Don't forget to recompile | ||
169 | with "make" once you've finished configuring.) | ||
170 | </p> | ||
171 | |||
172 | <hr /> | ||
173 | <h2><a name="build">How do I build BusyBox with a cross-compiler?</a></h2> | ||
174 | |||
175 | <p> | ||
176 | To build busybox with a cross-compiler, specify CROSS_COMPILE=<prefix>. | ||
177 | </p> | ||
178 | <p> | ||
179 | CROSS_COMPILE specifies the prefix used for all executables used | ||
180 | during compilation. Only gcc and related binutils executables | ||
181 | are prefixed with $(CROSS_COMPILE) in the makefiles. | ||
182 | CROSS_COMPILE can be set on the command line: | ||
183 | </p> | ||
184 | <pre> | ||
185 | make CROSS_COMPILE=arm-linux-uclibcgnueabi- | ||
186 | </pre> | ||
187 | <p> | ||
188 | Alternatively CROSS_COMPILE can be set in the environment. | ||
189 | Default value for CROSS_COMPILE is not to prefix executables. | ||
190 | </p> | ||
191 | <p> | ||
192 | To store the cross-compiler in your .config, set the variable | ||
193 | CONFIG_CROSS_COMPILER_PREFIX accordingly in menuconfig or by | ||
194 | editing the .config file. | ||
195 | </p> | ||
196 | |||
197 | <hr /> | ||
198 | <h2><a name="build_system">How do I build a BusyBox-based system?</a></h2> | ||
199 | |||
200 | <p> | ||
201 | BusyBox is a package that replaces a dozen standard packages, but it is | ||
202 | not by itself a complete bootable system. Building an entire Linux | ||
203 | distribution from source is a bit beyond the scope of this FAQ, but it | ||
204 | understandably keeps cropping up on the mailing list, so here are some | ||
205 | pointers. | ||
206 | </p> | ||
207 | <p> | ||
208 | Start by learning how to strip a working system down to the bare essentials | ||
209 | needed to run one or two commands, so you know what it is you actually | ||
210 | need. An excellent practical place to do | ||
211 | this is the <a href="http://www.tldp.org/HOWTO/Bootdisk-HOWTO/">Linux | ||
212 | BootDisk Howto</a>, or for a more theoretical approach try | ||
213 | <a href="http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html">From | ||
214 | PowerUp to Bash Prompt</a>. | ||
215 | </p> | ||
216 | <p> | ||
217 | To learn how to build a working Linux system entirely from source code, | ||
218 | the place to go is the <a href="http://www.linuxfromscratch.org/">Linux | ||
219 | From Scratch</a> project. They have an entire book of step-by-step | ||
220 | instructions you can | ||
221 | <a href="http://www.linuxfromscratch.org/lfs/view/stable/">read online</a> | ||
222 | or | ||
223 | <a href="http://www.linuxfromscratch.org/lfs/downloads/stable/">download</a>. | ||
224 | Be sure to check out the other sections of their main page, including | ||
225 | Beyond Linux From Scratch, Hardened Linux From Scratch, their Hints | ||
226 | directory, and their LiveCD project. (They also have mailing lists which | ||
227 | are better sources of answers to Linux-system building questions than | ||
228 | the busybox list.) | ||
229 | </p> | ||
230 | <p> | ||
231 | If you want an automated yet customizable system builder which produces | ||
232 | a BusyBox and uClibc based system, try | ||
233 | <a href="http://buildroot.uclibc.org/">buildroot</a>, which is | ||
234 | another project by the maintainer of the uClibc (Erik Andersen). | ||
235 | Download the tarball, extract it, unset CC, make. | ||
236 | For more instructions, see the website. | ||
237 | </p> | ||
238 | |||
239 | <hr /> | ||
240 | <h2><a name="kernel">Which Linux kernel versions are supported?</a></h2> | ||
241 | |||
242 | <p> | ||
243 | Full functionality requires Linux 2.4.x or better. (Earlier versions may | ||
244 | still work, but are no longer regularly tested.) A large fraction of the | ||
245 | code should run on just about anything. While the current code is fairly | ||
246 | Linux specific, it should be fairly easy to port the majority of the code | ||
247 | to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you | ||
248 | are into that sort of thing). | ||
249 | </p> | ||
250 | |||
251 | <hr /> | ||
252 | <h2><a name="arch">Which architectures does BusyBox run on?</a></h2> | ||
253 | |||
254 | <p> | ||
255 | BusyBox in general will build on any architecture supported by gcc. | ||
256 | Kernel module loading for 2.4 Linux kernels is currently | ||
257 | limited to ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC, | ||
258 | S390, SH3/4/5, Sparc, v850e, and x86_64 for 2.4.x kernels. | ||
259 | </p> | ||
260 | <p> | ||
261 | With 2.6.x kernels, module loading support should work on all architectures. | ||
262 | </p> | ||
263 | |||
264 | <hr /> | ||
265 | <h2><a name="libc">Which C libraries are supported?</a></h2> | ||
266 | |||
267 | <p> | ||
268 | On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and | ||
269 | glibc (2.2 or later). Both should provide full functionality with busybox, | ||
270 | and if you find a bug we want to hear about it. | ||
271 | </p> | ||
272 | <p> | ||
273 | Linux-libc5 is no longer maintained (and has no known advantages over | ||
274 | uClibc), dietlibc is known to have numerous unfixed bugs, and klibc is | ||
275 | missing too many features to build BusyBox. If you require a small C | ||
276 | library for Linux, the busybox developers recommend uClibc. | ||
277 | </p> | ||
278 | <p> | ||
279 | Some BusyBox applets have been built and run under a combination | ||
280 | of newlib and libgloss (see | ||
281 | <a href="http://www.busybox.net/lists/busybox/2005-March/013759.html">this thread</a>). | ||
282 | This is still experimental, but may be supported in a future release. | ||
283 | </p> | ||
284 | |||
285 | <hr /> | ||
286 | <h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2> | ||
287 | |||
288 | <p> | ||
289 | Yes. As long as you <a href="http://busybox.net/license.html">fully comply | ||
290 | with the generous terms of the GPL BusyBox license</a> you can ship BusyBox | ||
291 | as part of the software on your device. | ||
292 | </p> | ||
293 | |||
294 | <hr /> | ||
295 | <h2><a name="external">Where can I find other small utilities since busybox | ||
296 | does not include the features i want?</a></h2> | ||
297 | |||
298 | <p> | ||
299 | we maintain such a <a href="tinyutils.html">list</a> on this site! | ||
300 | </p> | ||
301 | |||
302 | <hr /> | ||
303 | <h2><a name="demanding">I demand that you to add <favorite feature> right now! How come you don't answer all my questions on the mailing list instantly? I demand that you help me with all of my problems <em>Right Now</em>!</a></h2> | ||
304 | |||
305 | <p> | ||
306 | You have not paid us a single cent and yet you still have the product of | ||
307 | many years of our work. We are not your slaves! We work on BusyBox | ||
308 | because we find it useful and interesting. If you go off flaming us, we | ||
309 | will ignore you. | ||
310 | |||
311 | <hr /> | ||
312 | <h2><a name="helpme">I need help with BusyBox! What should I do?</a></h2> | ||
313 | |||
314 | <p> | ||
315 | If you find that you need help with BusyBox, you can ask for help on the | ||
316 | BusyBox mailing list at busybox@busybox.net.</p> | ||
317 | |||
318 | <p> In addition to the mailing list, Erik Andersen (andersee), Manuel Nova | ||
319 | (mjn3), Rob Landley (landley), Mike Frysinger (SpanKY), | ||
320 | Bernhard Reutner-Fischer (blindvt), and other long-time BusyBox developers | ||
321 | are known to hang out on the uClibc IRC channel: #uclibc on | ||
322 | irc.freenode.net. There is a | ||
323 | <a href="http://ibot.Rikers.org/%23uclibc/">web archive of | ||
324 | daily logs of the #uclibc IRC channel</a> going back to 2002. | ||
325 | </p> | ||
326 | |||
327 | <p> | ||
328 | <b>Please do not send private email to Rob, Erik, Manuel, or the other | ||
329 | BusyBox contributors asking for private help unless you are planning on | ||
330 | paying for consulting services.</b> | ||
331 | </p> | ||
332 | |||
333 | <p> | ||
334 | When we answer questions on the BusyBox mailing list, it helps everyone | ||
335 | since people with similar problems in the future will be able to get help | ||
336 | by searching the mailing list archives. Private help is reserved as a paid | ||
337 | service. If you need to use private communication, or if you are serious | ||
338 | about getting timely assistance with BusyBox, you should seriously consider | ||
339 | paying for consulting services. | ||
340 | </p> | ||
341 | |||
342 | <hr /> | ||
343 | <h2><a name="contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?</a></h2> | ||
344 | |||
345 | <p> | ||
346 | Yes we are. The easy way to sponsor a new feature is to post an offer on | ||
347 | the mailing list to see who's interested. You can also email the project's | ||
348 | maintainer and ask them to recommend someone. | ||
349 | </p> | ||
350 | |||
351 | <hr /> | ||
352 | <h1>Troubleshooting</h1> | ||
353 | |||
354 | <hr /> | ||
355 | <h2><a name="bugs">I think I found a bug in BusyBox! What should I do?</a></h2> | ||
356 | |||
357 | <p> | ||
358 | If you simply need help with using or configuring BusyBox, please submit a | ||
359 | detailed description of your problem to the BusyBox mailing list at <a | ||
360 | href="mailto:busybox@busybox.net">busybox@busybox.net</a>. | ||
361 | Please do not send email to individual developers asking | ||
362 | for private help unless you are planning on paying for consulting services. | ||
363 | When we answer questions on the BusyBox mailing list, it helps everyone, | ||
364 | while private answers help only you... | ||
365 | </p> | ||
366 | |||
367 | <p> | ||
368 | Bug reports and new feature patches sometimes get lost when posted to the | ||
369 | mailing list, because the developers of BusyBox are busy people and have | ||
370 | only so much they can keep in their brains at a time. You can post a | ||
371 | polite reminder after 2-3 days without offending anybody. If that doesn't | ||
372 | result in a solution, please use the | ||
373 | <a href="https://bugs.busybox.net/">BusyBox Bug | ||
374 | and Patch Tracking System</a> to submit a detailed explanation and we'll | ||
375 | get to it as soon as we can. | ||
376 | </p> | ||
377 | |||
378 | <p> | ||
379 | Note that bugs entered into the bug system without being mentioned on the | ||
380 | mailing list first may languish there for months before anyone even notices | ||
381 | them. We generally go through the bug system when preparing for new | ||
382 | development releases, to see what fell through the cracks while we were | ||
383 | off writing new features. (It's a fast/unreliable vs slow/reliable thing. | ||
384 | Saves retransits, but the latency sucks.) | ||
385 | </p> | ||
386 | |||
387 | <hr /> | ||
388 | <h2><a name="backporting">I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?</a></h2> | ||
389 | |||
390 | <p>Variants of this one get asked a lot.</p> | ||
391 | |||
392 | <p>The purpose of the BusyBox mailing list is to develop and improve BusyBox, | ||
393 | and we're happy to respond to our users' needs. But if you're coming to the | ||
394 | list for free tech support we're going to ask you to upgrade to a current | ||
395 | version before we try to diagnose your problem.</p> | ||
396 | |||
397 | <p>If you're building BusyBox 0.50 with uClibc 0.9.19 and gcc 1.27 there's a | ||
398 | fairly large chance that whatever problem you're seeing has already been fixed. | ||
399 | To get that fix, all you have to do is upgrade to a newer version. If you | ||
400 | don't at least _try_ that, you're wasting our time.</p> | ||
401 | |||
402 | <p>The volunteers are happy to fix any bugs you point out in the current | ||
403 | versions because doing so helps everybody and makes the project better. We | ||
404 | want to make the current version work for you. But diagnosing, debugging, and | ||
405 | backporting fixes to old versions isn't something we do for free, because it | ||
406 | doesn't help anybody but you. The cost of volunteer tech support is using a | ||
407 | reasonably current version of the project.</p> | ||
408 | |||
409 | <p>If you don't want to upgrade, you have the complete source code and thus | ||
410 | the ability to fix it yourself, or hire a consultant to do it for you. If you | ||
411 | got your version from a vendor who still supports the older version, they can | ||
412 | help you. But there are limits as to what the volunteers will feel obliged to | ||
413 | do for you.</p> | ||
414 | |||
415 | <p>As a rule of thumb, volunteers will generally answer polite questions about | ||
416 | a given version for about three years after its release before it's so old | ||
417 | we don't remember the answer off the top of our head. And if you want us to | ||
418 | put any _effort_ into tracking it down, we want you to put in a little effort | ||
419 | of your own by confirming it's still a problem with the current version. It's | ||
420 | also hard for us to fix a problem of yours if we can't reproduce it because | ||
421 | we don't have any systems running an environment that old.</p> | ||
422 | |||
423 | <p>A consultant will happily set up a special environment just to reproduce | ||
424 | your problem, and you can always ask on the list if any of the developers | ||
425 | have consulting rates.</p> | ||
426 | |||
427 | <hr /> | ||
428 | <h2><a name="init">Busybox init isn't working!</a></h2> | ||
429 | |||
430 | <p> | ||
431 | Init is the first program that runs, so it might be that no programs are | ||
432 | working on your new system because of a problem with your cross-compiler, | ||
433 | kernel, console settings, shared libraries, root filesystem... To rule all | ||
434 | that out, first build a statically linked version of the following "hello | ||
435 | world" program with your cross compiler toolchain: | ||
436 | </p> | ||
437 | <pre> | ||
438 | #include <stdio.h> | ||
439 | |||
440 | int main(int argc, char *argv) | ||
441 | { | ||
442 | printf("Hello world!\n"); | ||
443 | sleep(999999999); | ||
444 | } | ||
445 | </pre> | ||
446 | |||
447 | <p> | ||
448 | Now try to boot your device with an "init=" argument pointing to your | ||
449 | hello world program. Did you see the hello world message? Until you | ||
450 | do, don't bother messing with busybox init. | ||
451 | </p> | ||
452 | |||
453 | <p> | ||
454 | Once you've got it working statically linked, try getting it to work | ||
455 | dynamically linked. Then read the FAQ entry <a href="#build_system">How | ||
456 | do I build a BusyBox-based system?</a>, and the | ||
457 | <a href="/downloads/BusyBox.html#item_init">documentation for BusyBox | ||
458 | init</a>. | ||
459 | </p> | ||
460 | |||
461 | <hr /> | ||
462 | <h2><a name="sed">I can't configure busybox on my system.</a></h2> | ||
463 | |||
464 | <p> | ||
465 | Configuring Busybox depends on a recent version of sed. Older | ||
466 | distributions (Red Hat 7.2, Debian 3.0) may not come with a | ||
467 | usable version. Luckily BusyBox can use its own sed to configure itself, | ||
468 | although this leads to a bit of a chicken and egg problem. | ||
469 | You can work around this by hand-configuring busybox to build with just | ||
470 | sed, then putting that sed in your path to configure the rest of busybox | ||
471 | with, like so: | ||
472 | </p> | ||
473 | |||
474 | <pre> | ||
475 | tar xvjf sources/busybox-x.x.x.tar.bz2 | ||
476 | cd busybox-x.x.x | ||
477 | make allnoconfig | ||
478 | make include/bb_config.h | ||
479 | echo "CONFIG_SED=y" >> .config | ||
480 | echo "#undef ENABLE_SED" >> include/bb_config.h | ||
481 | echo "#define ENABLE_SED 1" >> include/bb_config.h | ||
482 | make | ||
483 | mv busybox sed | ||
484 | export PATH=`pwd`:"$PATH" | ||
485 | </pre> | ||
486 | |||
487 | <p>Then you can run "make defconfig" or "make menuconfig" normally.</p> | ||
488 | |||
489 | <hr /> | ||
490 | <h2><a name="job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></h2> | ||
491 | |||
492 | <p> | ||
493 | Job control will be turned off since your shell can not obtain a controlling | ||
494 | terminal. This typically happens when you run your shell on /dev/console. | ||
495 | The kernel will not provide a controlling terminal on the /dev/console | ||
496 | device. Your should run your shell on a normal tty such as tty1 or ttyS0 | ||
497 | and everything will work perfectly. If you <em>REALLY</em> want your shell | ||
498 | to run on /dev/console, then you can hack your kernel (if you are into that | ||
499 | sortof thing) by changing drivers/char/tty_io.c to change the lines where | ||
500 | it sets "noctty = 1;" to instead set it to "0". I recommend you instead | ||
501 | run your shell on a real console... | ||
502 | </p> | ||
503 | |||
504 | <hr /> | ||
505 | <h1>Misc. questions</h1> | ||
506 | |||
507 | <hr /> | ||
508 | <h2><a name="tz">How do I change the time zone in busybox?</a></h2> | ||
509 | |||
510 | <p>Busybox has nothing to do with the timezone. Please consult your libc | ||
511 | documentation. (<a href="http://google.com/search?q=uclibc+glibc+timezone">http://google.com/search?q=uclibc+glibc+timezone</a>).</p> | ||
512 | |||
513 | <hr /> | ||
514 | <h1>Development</h1> | ||
515 | |||
516 | <hr /> | ||
517 | <h2><a name="goals">What are the goals of busybox?</a></h2> | ||
518 | |||
519 | <p>Busybox aims to be the smallest and simplest correct implementation of the | ||
520 | standard Linux command line tools. First and foremost, this means the | ||
521 | smallest executable size we can manage. We also want to have the simplest | ||
522 | and cleanest implementation we can manage, be <a href="#standards">standards | ||
523 | compliant</a>, minimize run-time memory usage (heap and stack), run fast, and | ||
524 | take over the world.</p> | ||
525 | |||
526 | <hr /> | ||
527 | <h2><a name="design">What is the design of busybox?</a></h2> | ||
528 | |||
529 | <p>Busybox is like a swiss army knife: one thing with many functions. | ||
530 | The busybox executable can act like many different programs depending on | ||
531 | the name used to invoke it. Normal practice is to create a bunch of symlinks | ||
532 | pointing to the busybox binary, each of which triggers a different busybox | ||
533 | function. (See <a href="FAQ.html#getting_started">getting started</a> in the | ||
534 | FAQ for more information on usage, and <a href="BusyBox.html">the | ||
535 | busybox documentation</a> for a list of symlink names and what they do.) | ||
536 | |||
537 | <p>The "one binary to rule them all" approach is primarily for size reasons: a | ||
538 | single multi-purpose executable is smaller then many small files could be. | ||
539 | This way busybox only has one set of ELF headers, it can easily share code | ||
540 | between different apps even when statically linked, it has better packing | ||
541 | efficiency by avoding gaps between files or compression dictionary resets, | ||
542 | and so on.</p> | ||
543 | |||
544 | <p>Work is underway on new options such as "make standalone" to build separate | ||
545 | binaries for each applet, and a "libbb.so" to make the busybox common code | ||
546 | available as a shared library. Neither is ready yet at the time of this | ||
547 | writing.</p> | ||
548 | |||
549 | <a name="source"></a> | ||
550 | |||
551 | <hr /> | ||
552 | <h2><a name="source_applets">The applet directories</a></h2> | ||
553 | |||
554 | <p>The directory "applets" contains the busybox startup code (applets.c and | ||
555 | busybox.c), and several subdirectories containing the code for the individual | ||
556 | applets.</p> | ||
557 | |||
558 | <p>Busybox execution starts with the main() function in applets/busybox.c, | ||
559 | which sets the global variable applet_name to argv[0] and calls | ||
560 | run_applet_and_exit() in applets/applets.c. That uses the applets[] array | ||
561 | (defined in include/busybox.h and filled out in include/applets.h) to | ||
562 | transfer control to the appropriate APPLET_main() function (such as | ||
563 | cat_main() or sed_main()). The individual applet takes it from there.</p> | ||
564 | |||
565 | <p>This is why calling busybox under a different name triggers different | ||
566 | functionality: main() looks up argv[0] in applets[] to get a function pointer | ||
567 | to APPLET_main().</p> | ||
568 | |||
569 | <p>Busybox applets may also be invoked through the multiplexor applet | ||
570 | "busybox" (see busybox_main() in libbb/appletlib.c), and through the | ||
571 | standalone shell (grep for STANDALONE_SHELL in applets/shell/*.c). | ||
572 | See <a href="FAQ.html#getting_started">getting started</a> in the | ||
573 | FAQ for more information on these alternate usage mechanisms, which are | ||
574 | just different ways to reach the relevant APPLET_main() function.</p> | ||
575 | |||
576 | <p>The applet subdirectories (archival, console-tools, coreutils, | ||
577 | debianutils, e2fsprogs, editors, findutils, init, loginutils, miscutils, | ||
578 | modutils, networking, procps, shell, sysklogd, and util-linux) correspond | ||
579 | to the configuration sub-menus in menuconfig. Each subdirectory contains the | ||
580 | code to implement the applets in that sub-menu, as well as a Config.in | ||
581 | file defining that configuration sub-menu (with dependencies and help text | ||
582 | for each applet), and the makefile segment (Makefile.in) for that | ||
583 | subdirectory.</p> | ||
584 | |||
585 | <p>The run-time --help is stored in usage_messages[], which is initialized at | ||
586 | the start of applets/applets.c and gets its help text from usage.h. During the | ||
587 | build this help text is also used to generate the BusyBox documentation (in | ||
588 | html, txt, and man page formats) in the docs directory. See | ||
589 | <a href="#adding">adding an applet to busybox</a> for more | ||
590 | information.</p> | ||
591 | |||
592 | <hr /> | ||
593 | <h2><a name="source_libbb"><b>libbb</b></a></h2> | ||
594 | |||
595 | <p>Most non-setup code shared between busybox applets lives in the libbb | ||
596 | directory. It's a mess that evolved over the years without much auditing | ||
597 | or cleanup. For anybody looking for a great project to break into busybox | ||
598 | development with, documenting libbb would be both incredibly useful and good | ||
599 | experience.</p> | ||
600 | |||
601 | <p>Common themes in libbb include allocation functions that test | ||
602 | for failure and abort the program with an error message so the caller doesn't | ||
603 | have to test the return value (xmalloc(), xstrdup(), etc), wrapped versions | ||
604 | of open(), close(), read(), and write() that test for their own failures | ||
605 | and/or retry automatically, linked list management functions (llist.c), | ||
606 | command line argument parsing (getopt32.c), and a whole lot more.</p> | ||
607 | |||
608 | <hr /> | ||
609 | <h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2> | ||
610 | |||
611 | <p> | ||
612 | To conserve bytes it's good to know where they're being used, and the | ||
613 | size of the final executable isn't always a reliable indicator of | ||
614 | the size of the components (since various structures are rounded up, | ||
615 | so a small change may not even be visible by itself, but many small | ||
616 | savings add up). | ||
617 | </p> | ||
618 | |||
619 | <p> The busybox Makefile builds two versions of busybox, one of which | ||
620 | (busybox_unstripped) has extra information that various analysis tools | ||
621 | can use. (This has nothing to do with CONFIG_DEBUG, leave that off | ||
622 | when trying to optimize for size.) | ||
623 | </p> | ||
624 | |||
625 | <p> The <b>"make bloatcheck"</b> option uses Matt Mackall's bloat-o-meter | ||
626 | script to compare two versions of busybox (busybox_unstripped vs | ||
627 | busybox_old), and report which symbols changed size and by how much. | ||
628 | To use it, first build a base version with <b>"make baseline"</b>. | ||
629 | (This creates busybox_old, which should have the original sizes for | ||
630 | comparison purposes.) Then build the new version with your changes | ||
631 | and run "make bloatcheck" to see the size differences from the old | ||
632 | version. | ||
633 | </p> | ||
634 | <p> | ||
635 | The first line of output has totals: how many symbols were added or | ||
636 | removed, how many symbols grew or shrank, the number of bytes added | ||
637 | and number of bytes removed by these changes, and finally the total | ||
638 | number of bytes difference between the two files. The remaining | ||
639 | lines show each individual symbol, the old and new sizes, and the | ||
640 | increase or decrease in size (which results are sorted by). | ||
641 | </p> | ||
642 | <p> | ||
643 | The <b>"make sizes"</b> option produces raw symbol size information for | ||
644 | busybox_unstripped. This is the output from the "nm --size-sort" | ||
645 | command (see "man nm" for more information), and is the information | ||
646 | bloat-o-meter parses to produce the comparison report above. For | ||
647 | defconfig, this is a good way to find the largest symbols in the tree | ||
648 | (which is a good place to start when trying to shrink the code). To | ||
649 | take a closer look at individual applets, configure busybox with just | ||
650 | one applet (run "make allnoconfig" and then switch on a single applet | ||
651 | with menuconfig), and then use "make sizes" to see the size of that | ||
652 | applet's components. | ||
653 | </p> | ||
654 | <p> | ||
655 | The "showasm" command (in the scripts directory) produces an assembly | ||
656 | dump of a function, providing a closer look at what changed. Try | ||
657 | "scripts/showasm busybox_unstripped" to list available symbols, and | ||
658 | "scripts/showasm busybox_unstripped symbolname" to see the assembly | ||
659 | for a sepecific symbol. | ||
660 | </p> | ||
661 | |||
662 | <hr /> | ||
663 | <h2><a name="adding">Adding an applet to busybox</a></h2> | ||
664 | |||
665 | <p>To add a new applet to busybox, first pick a name for the applet and | ||
666 | a corresponding CONFIG_NAME. Then do this:</p> | ||
667 | |||
668 | <ul> | ||
669 | <li>Figure out where in the busybox source tree your applet best fits, | ||
670 | and put your source code there. Be sure to use APPLET_main() instead | ||
671 | of main(), where APPLET is the name of your applet.</li> | ||
672 | |||
673 | <li>Add your applet to the relevant Config.in file (which file you add | ||
674 | it to determines where it shows up in "make menuconfig"). This uses | ||
675 | the same general format as the linux kernel's configuration system.</li> | ||
676 | |||
677 | <li>Add your applet to the relevant Makefile.in file (in the same | ||
678 | directory as the Config.in you chose), using the existing entries as a | ||
679 | template and the same CONFIG symbol as you used for Config.in. (Don't | ||
680 | forget "needlibm" or "needcrypt" if your applet needs libm or | ||
681 | libcrypt.)</li> | ||
682 | |||
683 | <li>Add your applet to "include/applets.h", using one of the existing | ||
684 | entries as a template. (Note: this is in alphabetical order. Applets | ||
685 | are found via binary search, and if you add an applet out of order it | ||
686 | won't work.)</li> | ||
687 | |||
688 | <li>Add your applet's runtime help text to "include/usage.h". You need | ||
689 | at least appname_trivial_usage (the minimal help text, always included | ||
690 | in the busybox binary when this applet is enabled) and appname_full_usage | ||
691 | (extra help text included in the busybox binary with | ||
692 | CONFIG_FEATURE_VERBOSE_USAGE is enabled), or it won't compile. | ||
693 | The other two help entry types (appname_example_usage and | ||
694 | appname_notes_usage) are optional. They don't take up space in the binary, | ||
695 | but instead show up in the generated documentation (BusyBox.html, | ||
696 | BusyBox.txt, and the man page BusyBox.1).</li> | ||
697 | |||
698 | <li>Run menuconfig, switch your applet on, compile, test, and fix the | ||
699 | bugs. Be sure to try both "allyesconfig" and "allnoconfig" (and | ||
700 | "allbareconfig" if relevant).</li> | ||
701 | |||
702 | </ul> | ||
703 | |||
704 | <hr /> | ||
705 | <h2><a name="standards">What standards does busybox adhere to?</a></h2> | ||
706 | |||
707 | <p>The standard we're paying attention to is the "Shell and Utilities" | ||
708 | portion of the <a href="http://www.opengroup.org/onlinepubs/009695399/">Open | ||
709 | Group Base Standards</a> (also known as the Single Unix Specification version | ||
710 | 3 or SUSv3). Note that paying attention isn't necessarily the same thing as | ||
711 | following it.</p> | ||
712 | |||
713 | <p>SUSv3 doesn't even mention things like init, mount, tar, or losetup, nor | ||
714 | commonly used options like echo's '-e' and '-n', or sed's '-i'. Busybox is | ||
715 | driven by what real users actually need, not the fact the standard believes | ||
716 | we should implement ed or sccs. For size reasons, we're unlikely to include | ||
717 | much internationalization support beyond UTF-8, and on top of all that, our | ||
718 | configuration menu lets developers chop out features to produce smaller but | ||
719 | very non-standard utilities.</p> | ||
720 | |||
721 | <p>Also, Busybox is aimed primarily at Linux. Unix standards are interesting | ||
722 | because Linux tries to adhere to them, but portability to dozens of platforms | ||
723 | is only interesting in terms of offering a restricted feature set that works | ||
724 | everywhere, not growing dozens of platform-specific extensions. Busybox | ||
725 | should be portable to all hardware platforms Linux supports, and any other | ||
726 | similar operating systems that are easy to do and won't require much | ||
727 | maintenance.</p> | ||
728 | |||
729 | <p>In practice, standards compliance tends to be a clean-up step once an | ||
730 | applet is otherwise finished. When polishing and testing a busybox applet, | ||
731 | we ensure we have at least the option of full standards compliance, or else | ||
732 | document where we (intentionally) fall short.</p> | ||
733 | |||
734 | <hr /> | ||
735 | <h2><a name="portability">Portability.</a></h2> | ||
736 | |||
737 | <p>Busybox is a Linux project, but that doesn't mean we don't have to worry | ||
738 | about portability. First of all, there are different hardware platforms, | ||
739 | different C library implementations, different versions of the kernel and | ||
740 | build toolchain... The file "include/platform.h" exists to centralize and | ||
741 | encapsulate various platform-specific things in one place, so most busybox | ||
742 | code doesn't have to care where it's running.</p> | ||
743 | |||
744 | <p>To start with, Linux runs on dozens of hardware platforms. We try to test | ||
745 | each release on x86, x86-64, arm, power pc, and mips. (Since qemu can handle | ||
746 | all of these, this isn't that hard.) This means we have to care about a number | ||
747 | of portability issues like endianness, word size, and alignment, all of which | ||
748 | belong in platform.h. That header handles conditional #includes and gives | ||
749 | us macros we can use in the rest of our code. At some point in the future | ||
750 | we might grow a platform.c, possibly even a platform subdirectory. As long | ||
751 | as the applets themselves don't have to care.</p> | ||
752 | |||
753 | <p>On a related note, we made the "default signedness of char varies" problem | ||
754 | go away by feeding the compiler -funsigned-char. This gives us consistent | ||
755 | behavior on all platforms, and defaults to 8-bit clean text processing (which | ||
756 | gets us halfway to UTF-8 support). NOMMU support is less easily separated | ||
757 | (see the tips section later in this document), but we're working on it.</p> | ||
758 | |||
759 | <p>Another type of portability is build environments: we unapologetically use | ||
760 | a number of gcc and glibc extensions (as does the Linux kernel), but these have | ||
761 | been picked up by packages like uClibc, TCC, and Intel's C Compiler. As for | ||
762 | gcc, we take advantage of newer compiler optimizations to get the smallest | ||
763 | possible size, but we also regression test against an older build environment | ||
764 | using the Red Hat 9 image at "http://busybox.net/downloads/qemu". This has a | ||
765 | 2.4 kernel, gcc 3.2, make 3.79.1, and glibc 2.3, and is the oldest | ||
766 | build/deployment environment we still put any effort into maintaining. (If | ||
767 | anyone takes an interest in older kernels you're welcome to submit patches, | ||
768 | but the effort would probably be better spent | ||
769 | <a href="http://www.selenic.com/linux-tiny/">trimming | ||
770 | down the 2.6 kernel</a>.) Older gcc versions than that are uninteresting since | ||
771 | we now use c99 features, although | ||
772 | <a href="http://fabrice.bellard.free.fr/tcc/">tcc</a> might be worth a | ||
773 | look.</p> | ||
774 | |||
775 | <p>We also test busybox against the current release of uClibc. Older versions | ||
776 | of uClibc aren't very interesting (they were buggy, and uClibc wasn't really | ||
777 | usable as a general-purpose C library before version 0.9.26 anyway).</p> | ||
778 | |||
779 | <p>Other unix implementations are mostly uninteresting, since Linux binaries | ||
780 | have become the new standard for portable Unix programs. Specifically, | ||
781 | the ubiquity of Linux was cited as the main reason the Intel Binary | ||
782 | Compatability Standard 2 died, by the standards group organized to name a | ||
783 | successor to ibcs2: <a href="http://www.telly.org/86open/">the 86open | ||
784 | project</a>. That project disbanded in 1999 with the endorsement of an | ||
785 | existing standard: Linux ELF binaries. Since then, the major players at the | ||
786 | time (such as <a | ||
787 | href="http://www-03.ibm.com/servers/aix/products/aixos/linux/index.html">AIX</a>, <a | ||
788 | href="http://www.sun.com/software/solaris/ds/linux_interop.jsp#3">Solaris</a>, and | ||
789 | <a href="http://www.onlamp.com/pub/a/bsd/2000/03/17/linuxapps.html">FreeBSD</a>) | ||
790 | have all either grown Linux support or folded.</p> | ||
791 | |||
792 | <p>The major exceptions are newcomer MacOS X, some embedded environments | ||
793 | (such as newlib+libgloss) which provide a posix environment but not a full | ||
794 | Linux environment, and environments like Cygwin that provide only partial Linux | ||
795 | emulation. Also, some embedded Linux systems run a Linux kernel but amputate | ||
796 | things like the /proc directory to save space.</p> | ||
797 | |||
798 | <p>Supporting these systems is largely a question of providing a clean subset | ||
799 | of BusyBox's functionality -- whichever applets can easily be made to | ||
800 | work in that environment. Annotating the configuration system to | ||
801 | indicate which applets require which prerequisites (such as procfs) is | ||
802 | also welcome. Other efforts to support these systems (swapping #include | ||
803 | files to build in different environments, adding adapter code to platform.h, | ||
804 | adding more extensive special-case supporting infrastructure such as mount's | ||
805 | legacy mtab support) are handled on a case-by-case basis. Support that can be | ||
806 | cleanly hidden in platform.h is reasonably attractive, and failing that | ||
807 | support that can be cleanly separated into a separate conditionally compiled | ||
808 | file is at least worth a look. Special-case code in the body of an applet is | ||
809 | something we're trying to avoid.</p> | ||
810 | |||
811 | <hr /> | ||
812 | <h2><a name="tips">Programming tips and tricks.</a></h2> | ||
813 | |||
814 | <p>Various things busybox uses that aren't particularly well documented | ||
815 | elsewhere.</p> | ||
816 | |||
817 | <hr /> | ||
818 | <h2><a name="tips_encrypted_passwords">Encrypted Passwords</a></h2> | ||
819 | |||
820 | <p>Password fields in /etc/passwd and /etc/shadow are in a special format. | ||
821 | If the first character isn't '$', then it's an old DES style password. If | ||
822 | the first character is '$' then the password is actually three fields | ||
823 | separated by '$' characters:</p> | ||
824 | <pre> | ||
825 | <b>$type$salt$encrypted_password</b> | ||
826 | </pre> | ||
827 | |||
828 | <p>The "type" indicates which encryption algorithm to use: 1 for MD5 and 2 for SHA1.</p> | ||
829 | |||
830 | <p>The "salt" is a bunch of ramdom characters (generally 8) the encryption | ||
831 | algorithm uses to perturb the password in a known and reproducible way (such | ||
832 | as by appending the random data to the unencrypted password, or combining | ||
833 | them with exclusive or). Salt is randomly generated when setting a password, | ||
834 | and then the same salt value is re-used when checking the password. (Salt is | ||
835 | thus stored unencrypted.)</p> | ||
836 | |||
837 | <p>The advantage of using salt is that the same cleartext password encrypted | ||
838 | with a different salt value produces a different encrypted value. | ||
839 | If each encrypted password uses a different salt value, an attacker is forced | ||
840 | to do the cryptographic math all over again for each password they want to | ||
841 | check. Without salt, they could simply produce a big dictionary of commonly | ||
842 | used passwords ahead of time, and look up each password in a stolen password | ||
843 | file to see if it's a known value. (Even if there are billions of possible | ||
844 | passwords in the dictionary, checking each one is just a binary search against | ||
845 | a file only a few gigabytes long.) With salt they can't even tell if two | ||
846 | different users share the same password without guessing what that password | ||
847 | is and decrypting it. They also can't precompute the attack dictionary for | ||
848 | a specific password until they know what the salt value is.</p> | ||
849 | |||
850 | <p>The third field is the encrypted password (plus the salt). For md5 this | ||
851 | is 22 bytes.</p> | ||
852 | |||
853 | <p>The busybox function to handle all this is pw_encrypt(clear, salt) in | ||
854 | "libbb/pw_encrypt.c". The first argument is the clear text password to be | ||
855 | encrypted, and the second is a string in "$type$salt$password" format, from | ||
856 | which the "type" and "salt" fields will be extracted to produce an encrypted | ||
857 | value. (Only the first two fields are needed, the third $ is equivalent to | ||
858 | the end of the string.) The return value is an encrypted password in | ||
859 | /etc/passwd format, with all three $ separated fields. It's stored in | ||
860 | a static buffer, 128 bytes long.</p> | ||
861 | |||
862 | <p>So when checking an existing password, if pw_encrypt(text, | ||
863 | old_encrypted_password) returns a string that compares identical to | ||
864 | old_encrypted_password, you've got the right password. When setting a new | ||
865 | password, generate a random 8 character salt string, put it in the right | ||
866 | format with sprintf(buffer, "$%c$%s", type, salt), and feed buffer as the | ||
867 | second argument to pw_encrypt(text,buffer).</p> | ||
868 | |||
869 | <hr /> | ||
870 | <h2><a name="tips_vfork">Fork and vfork</a></h2> | ||
871 | |||
872 | <p>On systems that haven't got a Memory Management Unit, fork() is unreasonably | ||
873 | expensive to implement (and sometimes even impossible), so a less capable | ||
874 | function called vfork() is used instead. (Using vfork() on a system with an | ||
875 | MMU is like pounding a nail with a wrench. Not the best tool for the job, but | ||
876 | it works.)</p> | ||
877 | |||
878 | <p>Busybox hides the difference between fork() and vfork() in | ||
879 | libbb/bb_fork_exec.c. If you ever want to fork and exec, use bb_fork_exec() | ||
880 | (which returns a pid and takes the same arguments as execve(), although in | ||
881 | this case envp can be NULL) and don't worry about it. This description is | ||
882 | here in case you want to know why that does what it does.</p> | ||
883 | |||
884 | <p>Implementing fork() depends on having a Memory Management Unit. With an | ||
885 | MMU then you can simply set up a second set of page tables and share the | ||
886 | physical memory via copy-on-write. So a fork() followed quickly by exec() | ||
887 | only copies a few pages of the parent's memory, just the ones it changes | ||
888 | before freeing them.</p> | ||
889 | |||
890 | <p>With a very primitive MMU (using a base pointer plus length instead of page | ||
891 | tables, which can provide virtual addresses and protect processes from each | ||
892 | other, but no copy on write) you can still implement fork. But it's | ||
893 | unreasonably expensive, because you have to copy all the parent process' | ||
894 | memory into the new process (which could easily be several megabytes per fork). | ||
895 | And you have to do this even though that memory gets freed again as soon as the | ||
896 | exec happens. (This is not just slow and a waste of space but causes memory | ||
897 | usage spikes that can easily cause the system to run out of memory.)</p> | ||
898 | |||
899 | <p>Without even a primitive MMU, you have no virtual addresses. Every process | ||
900 | can reach out and touch any other process' memory, because all pointers are to | ||
901 | physical addresses with no protection. Even if you copy a process' memory to | ||
902 | new physical addresses, all of its pointers point to the old objects in the | ||
903 | old process. (Searching through the new copy's memory for pointers and | ||
904 | redirect them to the new locations is not an easy problem.)</p> | ||
905 | |||
906 | <p>So with a primitive or missing MMU, fork() is just not a good idea.</p> | ||
907 | |||
908 | <p>In theory, vfork() is just a fork() that writeably shares the heap and stack | ||
909 | rather than copying it (so what one process writes the other one sees). In | ||
910 | practice, vfork() has to suspend the parent process until the child does exec, | ||
911 | at which point the parent wakes up and resumes by returning from the call to | ||
912 | vfork(). All modern kernel/libc combinations implement vfork() to put the | ||
913 | parent to sleep until the child does its exec. There's just no other way to | ||
914 | make it work: the parent has to know the child has done its exec() or exit() | ||
915 | before it's safe to return from the function it's in, so it has to block | ||
916 | until that happens. In fact without suspending the parent there's no way to | ||
917 | even store separate copies of the return value (the pid) from the vfork() call | ||
918 | itself: both assignments write into the same memory location.</p> | ||
919 | |||
920 | <p>One way to understand (and in fact implement) vfork() is this: imagine | ||
921 | the parent does a setjmp and then continues on (pretending to be the child) | ||
922 | until the exec() comes around, then the _exec_ does the actual fork, and the | ||
923 | parent does a longjmp back to the original vfork call and continues on from | ||
924 | there. (It thus becomes obvious why the child can't return, or modify | ||
925 | local variables it doesn't want the parent to see changed when it resumes.) | ||
926 | |||
927 | <p>Note a common mistake: the need for vfork doesn't mean you can't have two | ||
928 | processes running at the same time. It means you can't have two processes | ||
929 | sharing the same memory without stomping all over each other. As soon as | ||
930 | the child calls exec(), the parent resumes.</p> | ||
931 | |||
932 | <p>If the child's attempt to call exec() fails, the child should call _exit() | ||
933 | rather than a normal exit(). This avoids any atexit() code that might confuse | ||
934 | the parent. (The parent should never call _exit(), only a vforked child that | ||
935 | failed to exec.)</p> | ||
936 | |||
937 | <p>(Now in theory, a nommu system could just copy the _stack_ when it forks | ||
938 | (which presumably is much shorter than the heap), and leave the heap shared. | ||
939 | Even with no MMU at all | ||
940 | In practice, you've just wound up in a multi-threaded situation and you can't | ||
941 | do a malloc() or free() on your heap without freeing the other process' memory | ||
942 | (and if you don't have the proper locking for being threaded, corrupting the | ||
943 | heap if both of you try to do it at the same time and wind up stomping on | ||
944 | each other while traversing the free memory lists). The thing about vfork is | ||
945 | that it's a big red flag warning "there be dragons here" rather than | ||
946 | something subtle and thus even more dangerous.)</p> | ||
947 | |||
948 | <hr /> | ||
949 | <h2><a name="tips_sort_read">Short reads and writes</a></h2> | ||
950 | |||
951 | <p>Busybox has special functions, bb_full_read() and bb_full_write(), to | ||
952 | check that all the data we asked for got read or written. Is this a real | ||
953 | world consideration? Try the following:</p> | ||
954 | |||
955 | <pre>while true; do echo hello; sleep 1; done | tee out.txt</pre> | ||
956 | |||
957 | <p>If tee is implemented with bb_full_read(), tee doesn't display output | ||
958 | in real time but blocks until its entire input buffer (generally a couple | ||
959 | kilobytes) is read, then displays it all at once. In that case, we _want_ | ||
960 | the short read, for user interface reasons. (Note that read() should never | ||
961 | return 0 unless it has hit the end of input, and an attempt to write 0 | ||
962 | bytes should be ignored by the OS.)</p> | ||
963 | |||
964 | <p>As for short writes, play around with two processes piping data to each | ||
965 | other on the command line (cat bigfile | gzip > out.gz) and suspend and | ||
966 | resume a few times (ctrl-z to suspend, "fg" to resume). The writer can | ||
967 | experience short writes, which are especially dangerous because if you don't | ||
968 | notice them you'll discard data. They can also happen when a system is under | ||
969 | load and a fast process is piping to a slower one. (Such as an xterm waiting | ||
970 | on x11 when the scheduler decides X is being a CPU hog with all that | ||
971 | text console scrolling...)</p> | ||
972 | |||
973 | <p>So will data always be read from the far end of a pipe at the | ||
974 | same chunk sizes it was written in? Nope. Don't rely on that. For one | ||
975 | counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896 | ||
976 | for Nagle's algorithm</a>, which waits a fraction of a second or so before | ||
977 | sending out small amounts of data through a TCP/IP connection in case more | ||
978 | data comes in that can be merged into the same packet. (In case you were | ||
979 | wondering why action games that use TCP/IP set TCP_NODELAY to lower the latency | ||
980 | on their their sockets, now you know.)</p> | ||
981 | |||
982 | <hr /> | ||
983 | <h2><a name="tips_memory">Memory used by relocatable code, PIC, and static linking.</a></h2> | ||
984 | |||
985 | <p>The downside of standard dynamic linking is that it results in self-modifying | ||
986 | code. Although each executable's pages are mmaped() into a process' address | ||
987 | space from the executable file and are thus naturally shared between processes | ||
988 | out of the page cache, the library loader (ld-linux.so.2 or ld-uClibc.so.0) | ||
989 | writes to these pages to supply addresses for relocatable symbols. This | ||
990 | dirties the pages, triggering copy-on-write allocation of new memory for each | ||
991 | processes' dirtied pages.</p> | ||
992 | |||
993 | <p>One solution to this is Position Independent Code (PIC), a way of linking | ||
994 | a file so all the relocations are grouped together. This dirties fewer | ||
995 | pages (often just a single page) for each process' relocations. The down | ||
996 | side is this results in larger executables, which take up more space on disk | ||
997 | (and a correspondingly larger space in memory). But when many copies of the | ||
998 | same program are running, PIC dynamic linking trades a larger disk footprint | ||
999 | for a smaller memory footprint, by sharing more pages.</p> | ||
1000 | |||
1001 | <p>A third solution is static linking. A statically linked program has no | ||
1002 | relocations, and thus the entire executable is shared between all running | ||
1003 | instances. This tends to have a significantly larger disk footprint, but | ||
1004 | on a system with only one or two executables, shared libraries aren't much | ||
1005 | of a win anyway.</p> | ||
1006 | |||
1007 | <p>You can tell the glibc linker to display debugging information about its | ||
1008 | relocations with the environment variable "LD_DEBUG". Try | ||
1009 | "LD_DEBUG=help /bin/true" for a list of commands. Learning to interpret | ||
1010 | "LD_DEBUG=statistics cat /proc/self/statm" could be interesting.</p> | ||
1011 | |||
1012 | <p>For more on this topic, here's Rich Felker:</p> | ||
1013 | <blockquote> | ||
1014 | <p>Dynamic linking (without fixed load addresses) fundamentally requires | ||
1015 | at least one dirty page per dso that uses symbols. Making calls (but | ||
1016 | never taking the address explicitly) to functions within the same dso | ||
1017 | does not require a dirty page by itself, but will with ELF unless you | ||
1018 | use -Bsymbolic or hidden symbols when linking.</p> | ||
1019 | |||
1020 | <p>ELF uses significant additional stack space for the kernel to pass all | ||
1021 | the ELF data structures to the newly created process image. These are | ||
1022 | located above the argument list and environment. This normally adds 1 | ||
1023 | dirty page to the process size.</p> | ||
1024 | |||
1025 | <p>The ELF dynamic linker has its own data segment, adding one or more | ||
1026 | dirty pages. I believe it also performs relocations on itself.</p> | ||
1027 | |||
1028 | <p>The ELF dynamic linker makes significant dynamic allocations to manage | ||
1029 | the global symbol table and the loaded dso's. This data is never | ||
1030 | freed. It will be needed again if libdl is used, so unconditionally | ||
1031 | freeing it is not possible, but normal programs do not use libdl. Of | ||
1032 | course with glibc all programs use libdl (due to nsswitch) so the | ||
1033 | issue was never addressed.</p> | ||
1034 | |||
1035 | <p>ELF also has the issue that segments are not page-aligned on disk. | ||
1036 | This saves up to 4k on disk, but at the expense of using an additional | ||
1037 | dirty page in most cases, due to a large portion of the first data | ||
1038 | page being filled with a duplicate copy of the last text page.</p> | ||
1039 | |||
1040 | <p>The above is just a partial list of the tiny memory penalties of ELF | ||
1041 | dynamic linking, which eventually add up to quite a bit. The smallest | ||
1042 | I've been able to get a process down to is 8 dirty pages, and the | ||
1043 | above factors seem to mostly account for it (but some were difficult | ||
1044 | to measure).</p> | ||
1045 | </blockquote> | ||
1046 | |||
1047 | <hr /> | ||
1048 | <h2><a name="tips_kernel_headers"></a>Including kernel headers</h2> | ||
1049 | |||
1050 | <p>The "linux" or "asm" directories of /usr/include | ||
1051 | contain Linux kernel | ||
1052 | headers, so that the C library can talk directly to the Linux kernel. In | ||
1053 | a perfect world, applications shouldn't include these headers directly, but | ||
1054 | we don't live in a perfect world.</p> | ||
1055 | |||
1056 | <p>For example, Busybox's losetup code wants linux/loop.c because nothing else | ||
1057 | #defines the structures to call the kernel's loopback device setup ioctls. | ||
1058 | Attempts to cut and paste the information into a local busybox header file | ||
1059 | proved incredibly painful, because portions of the loop_info structure vary by | ||
1060 | architecture, namely the type __kernel_dev_t has different sizes on alpha, | ||
1061 | arm, x86, and so on. Meaning we either #include <linux/posix_types.h> or | ||
1062 | we hardwire #ifdefs to check what platform we're building on and define this | ||
1063 | type appropriately for every single hardware architecture supported by | ||
1064 | Linux, which is simply unworkable.</p> | ||
1065 | |||
1066 | <p>This is aside from the fact that the relevant type defined in | ||
1067 | posix_types.h was renamed to __kernel_old_dev_t during the 2.5 series, so | ||
1068 | to cut and paste the structure into our header we have to #include | ||
1069 | <linux/version.h> to figure out which name to use. (What we actually | ||
1070 | do is | ||
1071 | check if we're building on 2.6, and if so just use the new 64 bit structure | ||
1072 | instead to avoid the rename entirely.) But we still need the version | ||
1073 | check, since 2.4 didn't have the 64 bit structure.</p> | ||
1074 | |||
1075 | <p>The BusyBox developers spent <u>two years</u> trying to figure | ||
1076 | out a clean way to do all this. There isn't one. The losetup in the | ||
1077 | util-linux package from kernel.org isn't doing it cleanly either, they just | ||
1078 | hide the ugliness by nesting #include files. Their mount/loop.h | ||
1079 | #includes "my_dev_t.h", which #includes <linux/posix_types.h> | ||
1080 | and <linux/version.h> just like we do. There simply is no alternative. | ||
1081 | </p> | ||
1082 | |||
1083 | <p>Just because directly #including kernel headers is sometimes | ||
1084 | unavoidable doesn't me we should include them when there's a better | ||
1085 | way to do it. However, block copying information out of the kernel headers | ||
1086 | is not a better way.</p> | ||
1087 | |||
1088 | <hr /> | ||
1089 | <h2><a name="who">Who are the BusyBox developers?</a></h2> | ||
1090 | |||
1091 | <p>The following login accounts currently exist on busybox.net. (I.E. these | ||
1092 | people can commit <a href="http://busybox.net/downloads/patches/">patches</a> | ||
1093 | into subversion for the BusyBox, uClibc, and buildroot projects.)</p> | ||
1094 | |||
1095 | <pre> | ||
1096 | aldot :Bernhard Reutner-Fischer | ||
1097 | andersen :Erik Andersen - uClibc and BuildRoot maintainer. | ||
1098 | bug1 :Glenn McGrath | ||
1099 | davidm :David McCullough | ||
1100 | gkajmowi :Garrett Kajmowicz - uClibc++ maintainer | ||
1101 | jbglaw :Jan-Benedict Glaw | ||
1102 | jocke :Joakim Tjernlund | ||
1103 | landley :Rob Landley | ||
1104 | lethal :Paul Mundt | ||
1105 | mjn3 :Manuel Novoa III | ||
1106 | osuadmin :osuadmin | ||
1107 | pgf :Paul Fox | ||
1108 | pkj :Peter Kjellerstedt | ||
1109 | prpplague :David Anders | ||
1110 | psm :Peter S. Mazinger | ||
1111 | russ :Russ Dill | ||
1112 | sandman :Robert Griebl | ||
1113 | sjhill :Steven J. Hill | ||
1114 | solar :Ned Ludd | ||
1115 | timr :Tim Riker | ||
1116 | tobiasa :Tobias Anderberg | ||
1117 | vapier :Mike Frysinger | ||
1118 | vda :Denys Vlasenko - BusyBox maintainer | ||
1119 | </pre> | ||
1120 | |||
1121 | <p>The following accounts used to exist on busybox.net, but don't anymore so | ||
1122 | I can't ask /etc/passwd for their names. Rob Wentworth | ||
1123 | <robwen at gmail.com> asked Google and recovered the names:</p> | ||
1124 | |||
1125 | <pre> | ||
1126 | aaronl :Aaron Lehmann | ||
1127 | beppu :John Beppu | ||
1128 | dwhedon :David Whedon | ||
1129 | erik :Erik Andersen | ||
1130 | gfeldman :Gennady Feldman | ||
1131 | jimg :Jim Gleason | ||
1132 | kraai :Matt Kraai | ||
1133 | markw :Mark Whitley | ||
1134 | miles :Miles Bader | ||
1135 | proski :Pavel Roskin | ||
1136 | rjune :Richard June | ||
1137 | tausq :Randolph Chung | ||
1138 | vodz :Vladimir N. Oleynik | ||
1139 | </pre> | ||
1140 | |||
1141 | |||
1142 | <br> | ||
1143 | <br> | ||
1144 | <br> | ||
1145 | |||
1146 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/about.html b/docs/busybox.net/about.html deleted file mode 100644 index 35809c315..000000000 --- a/docs/busybox.net/about.html +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>BusyBox: The Swiss Army Knife of Embedded Linux</h3> | ||
4 | |||
5 | <p>BusyBox combines tiny versions of many common UNIX utilities into a single | ||
6 | small executable. It provides replacements for most of the utilities you | ||
7 | usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox | ||
8 | generally have fewer options than their full-featured GNU cousins; however, | ||
9 | the options that are included provide the expected functionality and behave | ||
10 | very much like their GNU counterparts. BusyBox provides a fairly complete | ||
11 | environment for any small or embedded system.</p> | ||
12 | |||
13 | <p>BusyBox has been written with size-optimization and limited resources in | ||
14 | mind. It is also extremely modular so you can easily include or exclude | ||
15 | commands (or features) at compile time. This makes it easy to customize | ||
16 | your embedded systems. To create a working system, just add some device | ||
17 | nodes in /dev, a few configuration files in /etc, and a Linux kernel.</p> | ||
18 | |||
19 | <p>BusyBox is maintained by | ||
20 | <a href="mailto:vda.linux@googlemail.com">Denys Vlasenko</a>, | ||
21 | and licensed under the <a href="license.html">GNU GENERAL PUBLIC LICENSE</a> | ||
22 | version 2.</p> | ||
23 | |||
24 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/busybox-growth.ps b/docs/busybox.net/busybox-growth.ps deleted file mode 100644 index 2379defa4..000000000 --- a/docs/busybox.net/busybox-growth.ps +++ /dev/null | |||
@@ -1,404 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 | ||
2 | %%Title: busybox-growth.ps | ||
3 | %%Creator: gnuplot 3.5 (pre 3.6) patchlevel beta 347 | ||
4 | %%CreationDate: Tue Apr 10 14:03:36 2001 | ||
5 | %%DocumentFonts: (atend) | ||
6 | %%BoundingBox: 50 40 554 770 | ||
7 | %%Orientation: Landscape | ||
8 | %%Pages: (atend) | ||
9 | %%EndComments | ||
10 | /gnudict 120 dict def | ||
11 | gnudict begin | ||
12 | /Color true def | ||
13 | /Solid true def | ||
14 | /gnulinewidth 5.000 def | ||
15 | /userlinewidth gnulinewidth def | ||
16 | /vshift -46 def | ||
17 | /dl {10 mul} def | ||
18 | /hpt_ 31.5 def | ||
19 | /vpt_ 31.5 def | ||
20 | /hpt hpt_ def | ||
21 | /vpt vpt_ def | ||
22 | /M {moveto} bind def | ||
23 | /L {lineto} bind def | ||
24 | /R {rmoveto} bind def | ||
25 | /V {rlineto} bind def | ||
26 | /vpt2 vpt 2 mul def | ||
27 | /hpt2 hpt 2 mul def | ||
28 | /Lshow { currentpoint stroke M | ||
29 | 0 vshift R show } def | ||
30 | /Rshow { currentpoint stroke M | ||
31 | dup stringwidth pop neg vshift R show } def | ||
32 | /Cshow { currentpoint stroke M | ||
33 | dup stringwidth pop -2 div vshift R show } def | ||
34 | /UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def | ||
35 | /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def | ||
36 | /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } | ||
37 | {pop pop pop Solid {pop []} if 0 setdash} ifelse } def | ||
38 | /BL { stroke gnulinewidth 2 mul setlinewidth } def | ||
39 | /AL { stroke gnulinewidth 2 div setlinewidth } def | ||
40 | /UL { gnulinewidth mul /userlinewidth exch def } def | ||
41 | /PL { stroke userlinewidth setlinewidth } def | ||
42 | /LTb { BL [] 0 0 0 DL } def | ||
43 | /LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def | ||
44 | /LT0 { PL [] 1 0 0 DL } def | ||
45 | /LT1 { PL [4 dl 2 dl] 0 1 0 DL } def | ||
46 | /LT2 { PL [2 dl 3 dl] 0 0 1 DL } def | ||
47 | /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def | ||
48 | /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def | ||
49 | /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def | ||
50 | /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def | ||
51 | /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def | ||
52 | /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def | ||
53 | /Pnt { stroke [] 0 setdash | ||
54 | gsave 1 setlinecap M 0 0 V stroke grestore } def | ||
55 | /Dia { stroke [] 0 setdash 2 copy vpt add M | ||
56 | hpt neg vpt neg V hpt vpt neg V | ||
57 | hpt vpt V hpt neg vpt V closepath stroke | ||
58 | Pnt } def | ||
59 | /Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V | ||
60 | currentpoint stroke M | ||
61 | hpt neg vpt neg R hpt2 0 V stroke | ||
62 | } def | ||
63 | /Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M | ||
64 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | ||
65 | hpt2 neg 0 V closepath stroke | ||
66 | Pnt } def | ||
67 | /Crs { stroke [] 0 setdash exch hpt sub exch vpt add M | ||
68 | hpt2 vpt2 neg V currentpoint stroke M | ||
69 | hpt2 neg 0 R hpt2 vpt2 V stroke } def | ||
70 | /TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M | ||
71 | hpt neg vpt -1.62 mul V | ||
72 | hpt 2 mul 0 V | ||
73 | hpt neg vpt 1.62 mul V closepath stroke | ||
74 | Pnt } def | ||
75 | /Star { 2 copy Pls Crs } def | ||
76 | /BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M | ||
77 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | ||
78 | hpt2 neg 0 V closepath fill } def | ||
79 | /TriUF { stroke [] 0 setdash vpt 1.12 mul add M | ||
80 | hpt neg vpt -1.62 mul V | ||
81 | hpt 2 mul 0 V | ||
82 | hpt neg vpt 1.62 mul V closepath fill } def | ||
83 | /TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M | ||
84 | hpt neg vpt 1.62 mul V | ||
85 | hpt 2 mul 0 V | ||
86 | hpt neg vpt -1.62 mul V closepath stroke | ||
87 | Pnt } def | ||
88 | /TriDF { stroke [] 0 setdash vpt 1.12 mul sub M | ||
89 | hpt neg vpt 1.62 mul V | ||
90 | hpt 2 mul 0 V | ||
91 | hpt neg vpt -1.62 mul V closepath fill} def | ||
92 | /DiaF { stroke [] 0 setdash vpt add M | ||
93 | hpt neg vpt neg V hpt vpt neg V | ||
94 | hpt vpt V hpt neg vpt V closepath fill } def | ||
95 | /Pent { stroke [] 0 setdash 2 copy gsave | ||
96 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | ||
97 | closepath stroke grestore Pnt } def | ||
98 | /PentF { stroke [] 0 setdash gsave | ||
99 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | ||
100 | closepath fill grestore } def | ||
101 | /Circle { stroke [] 0 setdash 2 copy | ||
102 | hpt 0 360 arc stroke Pnt } def | ||
103 | /CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def | ||
104 | /C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def | ||
105 | /C1 { BL [] 0 setdash 2 copy moveto | ||
106 | 2 copy vpt 0 90 arc closepath fill | ||
107 | vpt 0 360 arc closepath } bind def | ||
108 | /C2 { BL [] 0 setdash 2 copy moveto | ||
109 | 2 copy vpt 90 180 arc closepath fill | ||
110 | vpt 0 360 arc closepath } bind def | ||
111 | /C3 { BL [] 0 setdash 2 copy moveto | ||
112 | 2 copy vpt 0 180 arc closepath fill | ||
113 | vpt 0 360 arc closepath } bind def | ||
114 | /C4 { BL [] 0 setdash 2 copy moveto | ||
115 | 2 copy vpt 180 270 arc closepath fill | ||
116 | vpt 0 360 arc closepath } bind def | ||
117 | /C5 { BL [] 0 setdash 2 copy moveto | ||
118 | 2 copy vpt 0 90 arc | ||
119 | 2 copy moveto | ||
120 | 2 copy vpt 180 270 arc closepath fill | ||
121 | vpt 0 360 arc } bind def | ||
122 | /C6 { BL [] 0 setdash 2 copy moveto | ||
123 | 2 copy vpt 90 270 arc closepath fill | ||
124 | vpt 0 360 arc closepath } bind def | ||
125 | /C7 { BL [] 0 setdash 2 copy moveto | ||
126 | 2 copy vpt 0 270 arc closepath fill | ||
127 | vpt 0 360 arc closepath } bind def | ||
128 | /C8 { BL [] 0 setdash 2 copy moveto | ||
129 | 2 copy vpt 270 360 arc closepath fill | ||
130 | vpt 0 360 arc closepath } bind def | ||
131 | /C9 { BL [] 0 setdash 2 copy moveto | ||
132 | 2 copy vpt 270 450 arc closepath fill | ||
133 | vpt 0 360 arc closepath } bind def | ||
134 | /C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill | ||
135 | 2 copy moveto | ||
136 | 2 copy vpt 90 180 arc closepath fill | ||
137 | vpt 0 360 arc closepath } bind def | ||
138 | /C11 { BL [] 0 setdash 2 copy moveto | ||
139 | 2 copy vpt 0 180 arc closepath fill | ||
140 | 2 copy moveto | ||
141 | 2 copy vpt 270 360 arc closepath fill | ||
142 | vpt 0 360 arc closepath } bind def | ||
143 | /C12 { BL [] 0 setdash 2 copy moveto | ||
144 | 2 copy vpt 180 360 arc closepath fill | ||
145 | vpt 0 360 arc closepath } bind def | ||
146 | /C13 { BL [] 0 setdash 2 copy moveto | ||
147 | 2 copy vpt 0 90 arc closepath fill | ||
148 | 2 copy moveto | ||
149 | 2 copy vpt 180 360 arc closepath fill | ||
150 | vpt 0 360 arc closepath } bind def | ||
151 | /C14 { BL [] 0 setdash 2 copy moveto | ||
152 | 2 copy vpt 90 360 arc closepath fill | ||
153 | vpt 0 360 arc } bind def | ||
154 | /C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill | ||
155 | vpt 0 360 arc closepath } bind def | ||
156 | /Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto | ||
157 | neg 0 rlineto closepath } bind def | ||
158 | /Square { dup Rec } bind def | ||
159 | /Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def | ||
160 | /S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def | ||
161 | /S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def | ||
162 | /S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def | ||
163 | /S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def | ||
164 | /S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def | ||
165 | /S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill | ||
166 | exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def | ||
167 | /S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def | ||
168 | /S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill | ||
169 | 2 copy vpt Square fill | ||
170 | Bsquare } bind def | ||
171 | /S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def | ||
172 | /S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def | ||
173 | /S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill | ||
174 | Bsquare } bind def | ||
175 | /S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill | ||
176 | Bsquare } bind def | ||
177 | /S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def | ||
178 | /S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill | ||
179 | 2 copy vpt Square fill Bsquare } bind def | ||
180 | /S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill | ||
181 | 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def | ||
182 | /S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def | ||
183 | /D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def | ||
184 | /D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def | ||
185 | /D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def | ||
186 | /D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def | ||
187 | /D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def | ||
188 | /D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def | ||
189 | /D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def | ||
190 | /D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def | ||
191 | /D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def | ||
192 | /D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def | ||
193 | /D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def | ||
194 | /D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def | ||
195 | /D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def | ||
196 | /D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def | ||
197 | /D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def | ||
198 | /D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def | ||
199 | /DiaE { stroke [] 0 setdash vpt add M | ||
200 | hpt neg vpt neg V hpt vpt neg V | ||
201 | hpt vpt V hpt neg vpt V closepath stroke } def | ||
202 | /BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M | ||
203 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | ||
204 | hpt2 neg 0 V closepath stroke } def | ||
205 | /TriUE { stroke [] 0 setdash vpt 1.12 mul add M | ||
206 | hpt neg vpt -1.62 mul V | ||
207 | hpt 2 mul 0 V | ||
208 | hpt neg vpt 1.62 mul V closepath stroke } def | ||
209 | /TriDE { stroke [] 0 setdash vpt 1.12 mul sub M | ||
210 | hpt neg vpt 1.62 mul V | ||
211 | hpt 2 mul 0 V | ||
212 | hpt neg vpt -1.62 mul V closepath stroke } def | ||
213 | /PentE { stroke [] 0 setdash gsave | ||
214 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | ||
215 | closepath stroke grestore } def | ||
216 | /CircE { stroke [] 0 setdash | ||
217 | hpt 0 360 arc stroke } def | ||
218 | /Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def | ||
219 | /DiaW { stroke [] 0 setdash vpt add M | ||
220 | hpt neg vpt neg V hpt vpt neg V | ||
221 | hpt vpt V hpt neg vpt V Opaque stroke } def | ||
222 | /BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M | ||
223 | 0 vpt2 neg V hpt2 0 V 0 vpt2 V | ||
224 | hpt2 neg 0 V Opaque stroke } def | ||
225 | /TriUW { stroke [] 0 setdash vpt 1.12 mul add M | ||
226 | hpt neg vpt -1.62 mul V | ||
227 | hpt 2 mul 0 V | ||
228 | hpt neg vpt 1.62 mul V Opaque stroke } def | ||
229 | /TriDW { stroke [] 0 setdash vpt 1.12 mul sub M | ||
230 | hpt neg vpt 1.62 mul V | ||
231 | hpt 2 mul 0 V | ||
232 | hpt neg vpt -1.62 mul V Opaque stroke } def | ||
233 | /PentW { stroke [] 0 setdash gsave | ||
234 | translate 0 hpt M 4 {72 rotate 0 hpt L} repeat | ||
235 | Opaque stroke grestore } def | ||
236 | /CircW { stroke [] 0 setdash | ||
237 | hpt 0 360 arc Opaque stroke } def | ||
238 | /BoxFill { gsave Rec 1 setgray fill grestore } def | ||
239 | end | ||
240 | %%EndProlog | ||
241 | %%Page: 1 1 | ||
242 | gnudict begin | ||
243 | gsave | ||
244 | 50 50 translate | ||
245 | 0.100 0.100 scale | ||
246 | 90 rotate | ||
247 | 0 -5040 translate | ||
248 | 0 setgray | ||
249 | newpath | ||
250 | (Helvetica) findfont 140 scalefont setfont | ||
251 | 1.000 UL | ||
252 | LTb | ||
253 | 560 420 M | ||
254 | 63 0 V | ||
255 | 6409 0 R | ||
256 | -63 0 V | ||
257 | 476 420 M | ||
258 | (0) Rshow | ||
259 | 560 1056 M | ||
260 | 63 0 V | ||
261 | 6409 0 R | ||
262 | -63 0 V | ||
263 | -6493 0 R | ||
264 | (100) Rshow | ||
265 | 560 1692 M | ||
266 | 63 0 V | ||
267 | 6409 0 R | ||
268 | -63 0 V | ||
269 | -6493 0 R | ||
270 | (200) Rshow | ||
271 | 560 2328 M | ||
272 | 63 0 V | ||
273 | 6409 0 R | ||
274 | -63 0 V | ||
275 | -6493 0 R | ||
276 | (300) Rshow | ||
277 | 560 2964 M | ||
278 | 63 0 V | ||
279 | 6409 0 R | ||
280 | -63 0 V | ||
281 | -6493 0 R | ||
282 | (400) Rshow | ||
283 | 560 3600 M | ||
284 | 63 0 V | ||
285 | 6409 0 R | ||
286 | -63 0 V | ||
287 | -6493 0 R | ||
288 | (500) Rshow | ||
289 | 560 4236 M | ||
290 | 63 0 V | ||
291 | 6409 0 R | ||
292 | -63 0 V | ||
293 | -6493 0 R | ||
294 | (600) Rshow | ||
295 | 560 4872 M | ||
296 | 63 0 V | ||
297 | 6409 0 R | ||
298 | -63 0 V | ||
299 | -6493 0 R | ||
300 | (700) Rshow | ||
301 | 1531 420 M | ||
302 | 0 63 V | ||
303 | 0 4389 R | ||
304 | 0 -63 V | ||
305 | 0 -4529 R | ||
306 | (400) Cshow | ||
307 | 2825 420 M | ||
308 | 0 63 V | ||
309 | 0 4389 R | ||
310 | 0 -63 V | ||
311 | 0 -4529 R | ||
312 | (600) Cshow | ||
313 | 4120 420 M | ||
314 | 0 63 V | ||
315 | 0 4389 R | ||
316 | 0 -63 V | ||
317 | 0 -4529 R | ||
318 | (800) Cshow | ||
319 | 5414 420 M | ||
320 | 0 63 V | ||
321 | 0 4389 R | ||
322 | 0 -63 V | ||
323 | 0 -4529 R | ||
324 | (1000) Cshow | ||
325 | 6708 420 M | ||
326 | 0 63 V | ||
327 | 0 4389 R | ||
328 | 0 -63 V | ||
329 | 0 -4529 R | ||
330 | (1200) Cshow | ||
331 | 1.000 UL | ||
332 | LTb | ||
333 | 560 420 M | ||
334 | 6472 0 V | ||
335 | 0 4452 V | ||
336 | -6472 0 V | ||
337 | 560 420 L | ||
338 | 0 2646 M | ||
339 | currentpoint gsave translate 90 rotate 0 0 M | ||
340 | (tar.gz size \(Kb\)) Cshow | ||
341 | grestore | ||
342 | 3796 140 M | ||
343 | (time \(days since Jan 1, 1998\)) Cshow | ||
344 | 1.000 UL | ||
345 | LT0 | ||
346 | 696 420 M | ||
347 | 0 593 V | ||
348 | 1255 0 V | ||
349 | 0 15 V | ||
350 | 214 0 V | ||
351 | 0 6 V | ||
352 | 958 0 V | ||
353 | 0 1 V | ||
354 | -84 0 V | ||
355 | 0 37 V | ||
356 | 168 0 V | ||
357 | 0 262 V | ||
358 | 13 0 V | ||
359 | 0 56 V | ||
360 | 91 0 V | ||
361 | 0 33 V | ||
362 | 6 0 V | ||
363 | 0 1 V | ||
364 | 19 0 V | ||
365 | 0 11 V | ||
366 | 20 0 V | ||
367 | 0 13 V | ||
368 | 32 0 V | ||
369 | 0 104 V | ||
370 | 52 0 V | ||
371 | 0 27 V | ||
372 | 65 0 V | ||
373 | 0 15 V | ||
374 | 39 0 V | ||
375 | 0 126 V | ||
376 | 174 0 V | ||
377 | 0 103 V | ||
378 | 52 0 V | ||
379 | 0 49 V | ||
380 | 175 0 V | ||
381 | 0 56 V | ||
382 | 433 0 V | ||
383 | 0 661 V | ||
384 | 415 0 V | ||
385 | 0 857 V | ||
386 | 123 0 V | ||
387 | 0 -291 V | ||
388 | 498 0 V | ||
389 | 0 208 V | ||
390 | 505 0 V | ||
391 | 0 66 V | ||
392 | 291 0 V | ||
393 | 0 115 V | ||
394 | 311 0 V | ||
395 | 0 449 V | ||
396 | 162 0 V | ||
397 | 0 309 V | ||
398 | stroke | ||
399 | grestore | ||
400 | end | ||
401 | showpage | ||
402 | %%Trailer | ||
403 | %%DocumentFonts: Helvetica | ||
404 | %%Pages: 1 | ||
diff --git a/docs/busybox.net/copyright.txt b/docs/busybox.net/copyright.txt deleted file mode 100644 index 397475632..000000000 --- a/docs/busybox.net/copyright.txt +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | |||
2 | The code and graphics on this website (and it's mirror sites, if any) are | ||
3 | Copyright (c) 1999-2004 by Erik Andersen. All rights reserved. | ||
4 | Copyright (c) 2005-2006 Rob Landley. | ||
5 | |||
6 | Documents on this Web site including their graphical elements, design, and | ||
7 | layout are protected by trade dress and other laws and MAY BE COPIED OR | ||
8 | IMITATED IN WHOLE OR IN PART. THIS WEBSITE IS LICENSED FREE OF CHARGE, THERE | ||
9 | IS NO WARRANTY FOR THE WEBSITE TO THE EXTENT PERMITTED BY APPLICABLE LAW. | ||
10 | SHOULD THIS WEBSITE PROVE DEFECTIVE, YOU MAY ASSUME THAT SOMEONE MIGHT GET | ||
11 | AROUND TO SERVICING, REPAIRING OR CORRECTING IT SOMETIME WHEN THEY HAVE NOTHING | ||
12 | BETTER TO DO. REGARDLESS, YOU GET TO KEEP BOTH PIECES. | ||
13 | |||
14 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY | ||
15 | COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS | ||
16 | WEBSITE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | ||
17 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR | ||
18 | INABILITY TO USE THIS WEBSITE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR | ||
19 | LOSS OF HAIR, LOSS OF LIFE, LOSS OF MEMORY, LOSS OF YOUR CARKEYS, MISPLACEMENT | ||
20 | OF YOUR PAYCHECK, OR COMMANDER DATA BEING RENDERED UNABLE TO ASSIST THE | ||
21 | STARFLEET OFFICERS ABORD THE STARSHIP ENTERPRISE TO RECALIBRATE THE MAIN | ||
22 | DEFLECTOR ARRAY, LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE | ||
23 | WEBSITE TO OPERATE WITH YOUR WEBBROWSER), EVEN IF SUCH HOLDER OR OTHER PARTY | ||
24 | HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. | ||
25 | |||
26 | You have been warned. | ||
27 | |||
28 | You can contact the webmaster at <rob@landley.net> if you have some sort | ||
29 | of problem with this. | ||
30 | |||
diff --git a/docs/busybox.net/developer.html b/docs/busybox.net/developer.html deleted file mode 100644 index ce50555ae..000000000 --- a/docs/busybox.net/developer.html +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>Prerequisites</h3> | ||
4 | <p> | ||
5 | <ul> | ||
6 | <li>Send several <em>sensible</em> patches to the <a href="lists.html" title="Mailing list">Mailing list</a>.</li> | ||
7 | <li>Help <em>users</em>, answer their questions, guide them, be helpful and friendly.</li> | ||
8 | <li>Repeat above. | ||
9 | </ul> | ||
10 | </p> | ||
11 | <p> | ||
12 | If you feel comfortable with the above and have proven to continually | ||
13 | fulfill these requirements, or somebody asks you to apply for write-access | ||
14 | to the repository who itself is maintainer of a project, then please apply | ||
15 | for an account (if needed). | ||
16 | </p> | ||
17 | <h3>Morris Dancing</h3> | ||
18 | |||
19 | <p>Subversion commit access requires an account on Morris. The server | ||
20 | behind busybox.net and uclibc.org. If you want to be able to commit things to | ||
21 | Subversion, first contribute some stuff to show you are serious, can handle | ||
22 | some responsibility, and that your patches don't generally need a lot of | ||
23 | cleanup. Then, very nicely ask one of us | ||
24 | (<a href="mailto:vda.linux@googlemail.com">Denys Vlasenko</a> for primarily BusyBox, or | ||
25 | <a href="mailto:rep.<literal>dot</>.nop@gmail.com">Bernhard Reutner-Fischer</a> primarily for uClibc) | ||
26 | for an account.</p> | ||
27 | |||
28 | <p>If you're approved for an account, you'll need to send an email from your | ||
29 | preferred contact email address with the username you'd like to use when | ||
30 | committing changes to GIT, and attach a public ssh key to access your account | ||
31 | with.</p> | ||
32 | |||
33 | <p>If you don't currently have an ssh version 2 DSA key at least 4096 bits | ||
34 | long, you can generate a key using the command | ||
35 | <b>ssh-keygen -b 4096 -t dsa</b> | ||
36 | and hitting enter at the prompts. | ||
37 | This will create the files <b>~/.ssh/id_dsa</b> and <b>~/.ssh/id_dsa.pub</b> | ||
38 | You must then send the content of 'id_dsa.pub' to me so I can set up your | ||
39 | account. (The content of 'id_dsa' should of course be kept secret, anyone | ||
40 | who has that can access any account that's installed your public key in | ||
41 | its <b>.ssh/authorized_keys</b> file.)</p> | ||
42 | |||
43 | <p>Note that if you would prefer to keep your communications with us | ||
44 | private, you can encrypt your email using | ||
45 | <a href="http://busybox.net/~vda/vda_pubkey.gpg">Denys' public key</a> or | ||
46 | <a href="http://uClibc.org/~aldot/gpg.asc">Bernhard's public key</a>. | ||
47 | </p> | ||
48 | |||
49 | <p>Once you are setup with an account, you will need to use your account to | ||
50 | checkout a copy of BusyBox from GIT:</p> | ||
51 | |||
52 | <p><b>git+ssh://username@git.busybox.net/git/busybox busybox.mine</b></p> | ||
53 | <p>or</p> | ||
54 | <p><b>git+ssh://username@git.uClibc.org/git/uClibc uClibc.tmp</b></p> | ||
55 | |||
56 | <p>You must change <em>username</em> to your own username, or omit | ||
57 | it if it's the same as your local username.</p> | ||
58 | |||
59 | <p>You can then enter the newly checked out project directory, make changes, | ||
60 | check your changes, diff your changes, revert your changes, and and commit your | ||
61 | changes using commands such as:</p> | ||
62 | |||
63 | <b><pre> | ||
64 | git diff | ||
65 | git format-patch -s | ||
66 | git status | ||
67 | git revert <revert-hash> | ||
68 | EDITOR=vi git commit -s | ||
69 | git log | ||
70 | git push -v --thin | ||
71 | git help | ||
72 | </pre></b> | ||
73 | |||
74 | <p>For additional detail on how to use | ||
75 | <a href="http://www.kernel.org/pub/software/scm/git/">GIT</a>, please visit the | ||
76 | <a href="http://git.or.cz/">GIT overview</a> site. | ||
77 | You might also want to read online the <a | ||
78 | href="http://www.kernel.org/pub/software/scm/git/docs">manpages</a> | ||
79 | or | ||
80 | <a href="http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html">tutorial</a>. | ||
81 | </p> | ||
82 | |||
83 | <p>A morris account also gives you a personal web page | ||
84 | (http://busybox.net/~username comes from ~/public_html on morris), and of | ||
85 | course a shell prompt you can ssh into (as a regular user, root access is | ||
86 | reserved for folks doing maintenancy stuff only). But keep in mind an | ||
87 | account on Morris is a | ||
88 | priviledge, not a requirement. Most contributors to busybox and uClibc | ||
89 | haven't got one, and accounts are handed out to make the project maintainers' | ||
90 | lives easier, not because "you deserve it".</p> | ||
91 | |||
92 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/download.html b/docs/busybox.net/download.html deleted file mode 100644 index 34195b6f1..000000000 --- a/docs/busybox.net/download.html +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | |||
4 | |||
5 | <h3>Download</h3> | ||
6 | |||
7 | <p> | ||
8 | Source for the latest release can always be | ||
9 | downloaded from <a href="downloads/">http://www.busybox.net/downloads/</a>. | ||
10 | |||
11 | <p> | ||
12 | Each 1.x branch has bug fix releases after initial 1.x.0 release. | ||
13 | Also there are patches on top of latest bug fix release. | ||
14 | <p> | ||
15 | Latest releases and patch directories for each branch: | ||
16 | <br> | ||
17 | <a href="http://busybox.net/downloads/busybox-1.10.1.tar.bz2">1.10.1</a>, | ||
18 | <a href="http://busybox.net/downloads/fixes-1.10.1/">patches</a>, | ||
19 | <br> | ||
20 | <a href="http://busybox.net/downloads/busybox-1.9.2.tar.bz2">1.9.2</a>, | ||
21 | <a href="http://busybox.net/downloads/fixes-1.9.2/">patches</a>, | ||
22 | <br> | ||
23 | <a href="http://busybox.net/downloads/busybox-1.8.3.tar.bz2">1.8.3</a>, | ||
24 | <a href="http://busybox.net/downloads/fixes-1.8.3/">patches</a>, | ||
25 | <br> | ||
26 | <a href="http://busybox.net/downloads/busybox-1.7.5.tar.bz2">1.7.5</a>, | ||
27 | <a href="http://busybox.net/downloads/fixes-1.7.5/">patches</a>, | ||
28 | <br> | ||
29 | <a href="http://busybox.net/downloads/busybox-1.6.2.tar.bz2">1.6.2</a>, | ||
30 | <a href="http://busybox.net/downloads/fixes-1.6.2/">patches</a>, | ||
31 | <br> | ||
32 | <a href="http://busybox.net/downloads/busybox-1.5.2.tar.bz2">1.5.2</a>, | ||
33 | <a href="http://busybox.net/downloads/fixes-1.5.2/">patches</a>, | ||
34 | <br> | ||
35 | <a href="http://busybox.net/downloads/busybox-1.4.2.tar.bz2">1.4.2</a>, | ||
36 | <a href="http://busybox.net/downloads/fixes-1.4.2/">patches</a>, | ||
37 | <br> | ||
38 | <a href="http://busybox.net/downloads/busybox-1.3.2.tar.bz2">1.3.2</a>, | ||
39 | <a href="http://busybox.net/downloads/fixes-1.3.2/">patches</a>. | ||
40 | |||
41 | <p> | ||
42 | You can also obtain <a href="downloads/snapshots/">Daily Snapshots</a> of | ||
43 | the latest development source tree for those wishing to follow BusyBox development, | ||
44 | but cannot or do not wish to use Subversion (svn). | ||
45 | |||
46 | <ul> | ||
47 | <li> Click here to <a href="http://sources.busybox.net/index.py/trunk/busybox/">browse the source tree</a>. | ||
48 | </li> | ||
49 | |||
50 | <li>Anonymous <a href="subversion.html">Subversion access</a> is available. | ||
51 | </li> | ||
52 | |||
53 | <li>For those that are actively contributing obtaining | ||
54 | <a href="developer.html">Subversion read/write access</a> is also possible. | ||
55 | </li> | ||
56 | |||
57 | </ul> | ||
58 | |||
59 | <!--#include file="footer.html" --> | ||
60 | |||
diff --git a/docs/busybox.net/fix.html b/docs/busybox.net/fix.html deleted file mode 100644 index 7bd7fe0f4..000000000 --- a/docs/busybox.net/fix.html +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>How to get your patch added to "hot fixes"</h3> | ||
4 | |||
5 | <p> If you found a regression or severe bug in busybox, and you have a patch | ||
6 | for it, and you want to see it added to "hot fixes", please rediff your | ||
7 | patch against corresponding unmodified busybox source and send it to | ||
8 | <a href="mailto:busybox@busybox.net">the mailing list</a>. | ||
9 | </p> | ||
10 | |||
11 | <br> | ||
12 | <br> | ||
13 | <br> | ||
14 | |||
15 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/footer.html b/docs/busybox.net/footer.html deleted file mode 100644 index 066709237..000000000 --- a/docs/busybox.net/footer.html +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | <!-- Footer --> | ||
2 | |||
3 | |||
4 | </td> | ||
5 | </tr> | ||
6 | </table> | ||
7 | |||
8 | <hr /> | ||
9 | |||
10 | |||
11 | <table width="100%"> | ||
12 | <tr> | ||
13 | <td width="60%"> | ||
14 | <font face="arial, helvetica, sans-serif" size="-1"> | ||
15 | <!--div style="font-family: arial, helvetica, sans-serif; font-size: 80%;" --> | ||
16 | <a href="/copyright.txt">Copyright © 1999-2008 Erik Andersen</a> | ||
17 | <br> | ||
18 | Mail all comments, insults, suggestions and bribes to | ||
19 | <br> | ||
20 | Denys Vlasenko <a href="mailto:vda.linux@googlemail.com">vda.linux@googlemail.com</a><br> | ||
21 | </font> | ||
22 | <!--/div--> | ||
23 | </td> | ||
24 | |||
25 | <td> | ||
26 | <a href="http://www.vim.org/"><img border="0" | ||
27 | width="88" height="31" | ||
28 | src="images/written.in.vi.png" | ||
29 | alt="This site created with the vi editor" /></a> | ||
30 | </td> | ||
31 | |||
32 | <td> | ||
33 | <a href="http://osuosl.org/"><img border="0" | ||
34 | width="114" height="63" | ||
35 | src="images/osuosl.png" | ||
36 | alt="This site is kindly hosted by OSL" /></a> | ||
37 | </td> | ||
38 | <!-- | ||
39 | <td> | ||
40 | <a href="http://validator.w3.org/check?uri=referer"><img | ||
41 | border="0" height="31" width="88" | ||
42 | src="images/valid-html401.png" | ||
43 | alt="Valid HTML" /></a> | ||
44 | </td> | ||
45 | --> | ||
46 | </tr> | ||
47 | </table> | ||
48 | |||
49 | </body> | ||
50 | </html> | ||
51 | |||
diff --git a/docs/busybox.net/header.html b/docs/busybox.net/header.html deleted file mode 100644 index 16f3d7aea..000000000 --- a/docs/busybox.net/header.html +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> | ||
2 | |||
3 | <html> | ||
4 | <head> | ||
5 | <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> | ||
6 | <title>BusyBox</title> | ||
7 | <style type="text/css"> | ||
8 | body { | ||
9 | background-color: #DEE2DE; | ||
10 | color: #000000; | ||
11 | font-family: lucida, helvetica, arial; | ||
12 | font-size: 100%; | ||
13 | } | ||
14 | :link { color: #660000 } | ||
15 | :visited { color: #660000 } | ||
16 | :active { color: #660000 } | ||
17 | td.c2 {font-family: arial, helvetica, sans-serif; font-size: 80%} | ||
18 | td.c1 {font-family: lucida, helvetica; font-size: 248%} | ||
19 | </style> | ||
20 | </head> | ||
21 | |||
22 | <body> | ||
23 | <!--basefont face="lucida, helvetica, arial" size="3"--> | ||
24 | |||
25 | <table border="0" cellpadding="0" cellspacing="0"> | ||
26 | <tr> | ||
27 | <td> | ||
28 | <div class="c3"> | ||
29 | <table border="0" cellspacing="1" cellpadding="2"> | ||
30 | <tr> | ||
31 | <td class="c1">BUSYBOX</td> | ||
32 | </tr> | ||
33 | </table> | ||
34 | </div> | ||
35 | |||
36 | <a href="/"><img src="images/busybox1.png" alt="BusyBox" border="0" /></a><br> | ||
37 | </td> | ||
38 | </tr> | ||
39 | |||
40 | <tr> | ||
41 | |||
42 | <td valign="top"> | ||
43 | <b>About</b> | ||
44 | <ul> | ||
45 | <li><a href="about.html">About BusyBox</a></li> | ||
46 | <li><a href="screenshot.html">Screenshot</a></li> | ||
47 | <li><a href="news.html">Announcements</a></li> | ||
48 | </ul> | ||
49 | <b>Documentation</b> | ||
50 | <ul> | ||
51 | <li><a href="FAQ.html">FAQ</a></li> | ||
52 | <li><a href="downloads/BusyBox.html">Command Help</a></li> | ||
53 | <li><a href="downloads/README">README</a></li> | ||
54 | </ul> | ||
55 | <b>Get BusyBox</b> | ||
56 | <ul> | ||
57 | <li><a href="download.html">Download Source</a></li> | ||
58 | <li><a href="license.html">License</a></li> | ||
59 | <li><a href="products.html">Products</a></li> | ||
60 | </ul> | ||
61 | <b>Development</b> | ||
62 | <ul> | ||
63 | <li><a href="http://sources.busybox.net/index.py/trunk/busybox/">Browse Source</a></li> | ||
64 | <li><a href="subversion.html">Source Control</a></li> | ||
65 | <!--li><a href="/downloads/patches/recent.html">Recent Changes</a></li--> | ||
66 | <li><a href="lists.html">Mailing Lists</a></li> | ||
67 | <li><a href="https://bugs.busybox.net/">Bug Tracking</a></li> | ||
68 | <li><a href="developer.html">Contributing</a></li> | ||
69 | </ul> | ||
70 | <p><b>Links</b> | ||
71 | <ul> | ||
72 | <li><a href="links.html">Related Sites</a></li> | ||
73 | <li><a href="tinyutils.html">Tiny Utilities</a></li> | ||
74 | <li><a href="sponsors.html">Sponsors</a></li> | ||
75 | </ul> | ||
76 | <p><b>Developer Pages</b> | ||
77 | <ul> | ||
78 | <li><a href="http://busybox.net/~landley/">Rob</a></li> | ||
79 | <li><a href="http://busybox.net/~aldot/">Bernhard</a></li> | ||
80 | <li><a href="http://busybox.net/~vda/">Denys</a> | ||
81 | <br>- <a href="http://busybox.net/~vda/resume/denys_vlasenko.htm">resume</a> | ||
82 | <br>- <a href="http://busybox.net/~vda/mboot/">mboot</a> | ||
83 | <br>- <a href="http://busybox.net/~vda/linld/">linld</a> | ||
84 | <br>- <a href="http://busybox.net/~vda/init_vs_runsv.html">init must die</a> | ||
85 | <br>- <a href="http://busybox.net/~vda/no_ifup.txt">no ifup</a> | ||
86 | <br>- <a href="http://busybox.net/~vda/unscd/">unscd</a> | ||
87 | </li> | ||
88 | </ul> | ||
89 | </td> | ||
90 | |||
91 | <td valign="top"> | ||
92 | |||
diff --git a/docs/busybox.net/images/back.png b/docs/busybox.net/images/back.png deleted file mode 100644 index 79923869b..000000000 --- a/docs/busybox.net/images/back.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/busybox.jpeg b/docs/busybox.net/images/busybox.jpeg deleted file mode 100644 index 37edc9614..000000000 --- a/docs/busybox.net/images/busybox.jpeg +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/busybox.png b/docs/busybox.net/images/busybox.png deleted file mode 100644 index b1eb92f38..000000000 --- a/docs/busybox.net/images/busybox.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/busybox1.png b/docs/busybox.net/images/busybox1.png deleted file mode 100644 index 4d3126a52..000000000 --- a/docs/busybox.net/images/busybox1.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/busybox2.jpg b/docs/busybox.net/images/busybox2.jpg deleted file mode 100644 index abf8f0610..000000000 --- a/docs/busybox.net/images/busybox2.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/busybox2.png b/docs/busybox.net/images/busybox2.png deleted file mode 100644 index a7460b672..000000000 --- a/docs/busybox.net/images/busybox2.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/busybox3.jpg b/docs/busybox.net/images/busybox3.jpg deleted file mode 100644 index 0fab84cf9..000000000 --- a/docs/busybox.net/images/busybox3.jpg +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/dir.png b/docs/busybox.net/images/dir.png deleted file mode 100644 index 1d633ce4a..000000000 --- a/docs/busybox.net/images/dir.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/donate.png b/docs/busybox.net/images/donate.png deleted file mode 100644 index b55621bb9..000000000 --- a/docs/busybox.net/images/donate.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/fm.mini.png b/docs/busybox.net/images/fm.mini.png deleted file mode 100644 index c0883cd34..000000000 --- a/docs/busybox.net/images/fm.mini.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/gfx_by_gimp.png b/docs/busybox.net/images/gfx_by_gimp.png deleted file mode 100644 index d58314034..000000000 --- a/docs/busybox.net/images/gfx_by_gimp.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/ltbutton2.png b/docs/busybox.net/images/ltbutton2.png deleted file mode 100644 index 9bad9496a..000000000 --- a/docs/busybox.net/images/ltbutton2.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/osuosl.png b/docs/busybox.net/images/osuosl.png deleted file mode 100644 index b00b5007d..000000000 --- a/docs/busybox.net/images/osuosl.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/sdsmall.png b/docs/busybox.net/images/sdsmall.png deleted file mode 100644 index b1024501b..000000000 --- a/docs/busybox.net/images/sdsmall.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/text.png b/docs/busybox.net/images/text.png deleted file mode 100644 index 6034f899f..000000000 --- a/docs/busybox.net/images/text.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/valid-html401.png b/docs/busybox.net/images/valid-html401.png deleted file mode 100644 index ec9bc0ce0..000000000 --- a/docs/busybox.net/images/valid-html401.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/vh40.gif b/docs/busybox.net/images/vh40.gif deleted file mode 100644 index c5e9402e7..000000000 --- a/docs/busybox.net/images/vh40.gif +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/images/written.in.vi.png b/docs/busybox.net/images/written.in.vi.png deleted file mode 100644 index 84f59bc15..000000000 --- a/docs/busybox.net/images/written.in.vi.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/docs/busybox.net/index.html b/docs/busybox.net/index.html deleted file mode 100644 index 1bab6b069..000000000 --- a/docs/busybox.net/index.html +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | <!--#include file="news.html" --> | ||
diff --git a/docs/busybox.net/license.html b/docs/busybox.net/license.html deleted file mode 100644 index 2a4c51d10..000000000 --- a/docs/busybox.net/license.html +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <p> | ||
4 | <h3><a name="license">BusyBox is licensed under the GNU General Public License, version 2</a></h3> | ||
5 | |||
6 | <p>BusyBox is licensed under <a href="http://www.gnu.org/licenses/gpl.html#SEC1">the | ||
7 | GNU General Public License</a> version 2, which is often abbreviated as GPLv2. | ||
8 | (This is the same license the Linux kernel is under, so you may be somewhat | ||
9 | familiar with it by now.)</p> | ||
10 | |||
11 | <p>A complete copy of the license text is included in the file LICENSE in | ||
12 | the BusyBox source code.</p> | ||
13 | |||
14 | <p><a href="products.html">Anyone thinking of shipping BusyBox as part of a | ||
15 | product</a> should be familiar with the licensing terms under which they are | ||
16 | allowed to use and distribute BusyBox. Read the full test of the GPL (either | ||
17 | through the above link, or in the file LICENSE in the busybox tarball), and | ||
18 | also read the <a href="http://www.gnu.org/licenses/gpl-faq.html">Frequently | ||
19 | Asked Questions about the GPL</a>.</p> | ||
20 | |||
21 | <p>Basically, if you distribute GPL software the license requires that you also | ||
22 | distribute the source code to that GPL-licensed software. So if you distribute | ||
23 | BusyBox without making the source code to the version you distribute available, | ||
24 | you violate the license terms, and thus infringe on the copyrights of BusyBox. | ||
25 | (This requirement applies whether or not you modified BusyBox; either way the | ||
26 | license terms still apply to you.) Read the license text for the details.</p> | ||
27 | |||
28 | <h3><a name="version">A note on GPL versions</a></h3> | ||
29 | |||
30 | <p>Version 2 of the GPL is the only version of the GPL which current versions | ||
31 | of BusyBox may be distributed under. New code added to the tree is licensed | ||
32 | GPL version 2, and the project's license is GPL version 2.</p> | ||
33 | |||
34 | <p>Older versions of BusyBox (versions 1.2.2 and earlier, up through about svn | ||
35 | 16112) included variants of the recommended | ||
36 | "GPL version 2 or (at your option) later versions" boilerplate | ||
37 | permission grant. Ancient versions of BusyBox | ||
38 | (before svn 49) did not specify any version at all, and section 9 of GPLv2 | ||
39 | (the most recent version at that time) says those old versions may be | ||
40 | redistributed under any version of GPL (including the obsolete V1). This was | ||
41 | conceptually similar to a dual license, except that the different licenses were | ||
42 | different versions of the GPL.</p> | ||
43 | |||
44 | <p>However, BusyBox has apparently always contained chunks of code that were | ||
45 | licensed under GPL version 2 only. Examples include applets written by Linus | ||
46 | Torvalds (util-linux/mkfs_minix.c and util_linux/mkswap.c) which stated they | ||
47 | "may be redistributed as per the Linux copyright" (which Linus | ||
48 | clarified in the | ||
49 | 2.4.0-pre8 release announcement in 2000 was GPLv2 only), and Linux kernel code | ||
50 | copied into libbb/loop.c (after Linus's announcement). There are probably | ||
51 | more, because all we used to check was that the code was GPL, not which | ||
52 | version. (Before the GPLv3 draft proceedings in 2006, it was a purely | ||
53 | theoretical issue that didn't come up much.)</p> | ||
54 | |||
55 | <p>To summarize: every version of BusyBox may be distributed under the terms of | ||
56 | GPL version 2. New versions (after 1.2.2) may <b>only</b> be distributed under | ||
57 | GPLv2, not under other versions of the GPL. Older versions of BusyBox might | ||
58 | (or might not) be distributable under other versions of the GPL. If you | ||
59 | want to use a GPL version other than 2, you should start with one of the old | ||
60 | versions such as release 1.2.2 or SVN 16112, and do your own homework to | ||
61 | identify and remove any code that can't be licensed under the GPL version you | ||
62 | want to use. New development is all GPLv2.</p> | ||
63 | |||
64 | <h3><a name="enforce">License enforcement</a></h3> | ||
65 | |||
66 | <p>BusyBox's copyrights are enforced by the <a | ||
67 | href="http://www.softwarefreedom.org/">Software Freedom Law Center</a> | ||
68 | (you can contact them at gpl@busybox.net), which | ||
69 | "accepts primary responsibility for enforcement of US copyrights on the | ||
70 | software... and coordinates international copyright enforcement efforts for | ||
71 | such works as necessary." If you distribute BusyBox in a way that doesn't | ||
72 | comply with the terms of the license BusyBox is distributed under, expect to | ||
73 | hear from these guys. Their entire reason for existing is to do pro-bono | ||
74 | legal work for free/open source software projects. (We used to list people who | ||
75 | violate the BusyBox license in <a href="shame.html">The Hall of Shame</a>, | ||
76 | but these days we find it much more effective to hand them over to the | ||
77 | lawyers.)</p> | ||
78 | |||
79 | <p>Our enforcement efforts are aimed at bringing people into compliance with | ||
80 | the BusyBox license. Open source software is under a different license from | ||
81 | proprietary software, but if you violate that license you're still a software | ||
82 | pirate and the law gives the vendor (us) some big sticks to play with. We | ||
83 | don't want monetary awards, injunctions, or to generate bad PR for a company, | ||
84 | unless that's the only way to get somebody that repeatedly ignores us to comply | ||
85 | with the license on our code.</p> | ||
86 | |||
87 | <h3><a name="good">A Good Example</a></h3> | ||
88 | |||
89 | <p>These days, <a href="http://www.linksys.com/">Linksys</a> is | ||
90 | doing a good job at complying with the GPL, they get to be an | ||
91 | example of how to do things right. Please take a moment and | ||
92 | check out what they do with | ||
93 | <a href="http://www.linksys.com/servlet/Satellite?c=L_Content_C1&childpagename=US%2FLayout&cid=1115416836002&pagename=Linksys%2FCommon%2FVisitorWrapper"> | ||
94 | distributing the firmware for their WRT54G Router.</a> | ||
95 | Following their example would be a fine way to ensure that you | ||
96 | have also fulfilled your licensing obligations.</p> | ||
97 | |||
98 | <!--#include file="footer.html" --> | ||
99 | |||
diff --git a/docs/busybox.net/links.html b/docs/busybox.net/links.html deleted file mode 100644 index 14ad8d12a..000000000 --- a/docs/busybox.net/links.html +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>Related Sites</h3> | ||
4 | |||
5 | <br><a href="http://uclibc.org/">uClibc.org</a> | ||
6 | <br><a href="http://cxx.uclibc.org/">uClibc++</a> | ||
7 | <!--br><a href="http://udhcp.busybox.net/">udhcp</a --> | ||
8 | <br><a href="http://buildroot.uclibc.org/">buildroot</a> | ||
9 | <br><a href="http://www.scratchbox.org/">Scratchbox</a> | ||
10 | <br><a href="http://openembedded.org/">OpenEmbedded</a> | ||
11 | <br><a href="http://www.ucdot.org/">uCdot</a> | ||
12 | <br><a href="http://www.linuxdevices.com/">LinuxDevices</a> | ||
13 | <br><a href="http://slashdot.org/">Slashdot</a> | ||
14 | <br><a href="http://freshmeat.net/">Freshmeat</a> | ||
15 | <br><a href="http://linuxtoday.com/">Linux Today</a> | ||
16 | <br><a href="http://lwn.net/">Linux Weekly News</a> | ||
17 | <br><a href="http://www.tldp.org/HOWTO">Linux HOWTOs</a> | ||
18 | |||
19 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/lists.html b/docs/busybox.net/lists.html deleted file mode 100644 index 29c2f7472..000000000 --- a/docs/busybox.net/lists.html +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | |||
4 | <!-- Begin Introduction section --> | ||
5 | |||
6 | <h3>Mailing List Information</h3> | ||
7 | BusyBox has a <a href="/lists/busybox/">mailing list</a> for discussion and | ||
8 | development. You can subscribe by visiting | ||
9 | <a href="http://lists.busybox.net/mailman/listinfo/busybox">this page</a>. | ||
10 | Only subscribers to the BusyBox mailing list are allowed to post | ||
11 | to this list. | ||
12 | |||
13 | <p> | ||
14 | There is also a mailing list for <a href="/lists/busybox-cvs/">active developers</a> | ||
15 | wishing to read the complete diff of each and every change to busybox -- not for the | ||
16 | faint of heart. Active developers can subscribe by visiting | ||
17 | <a href="http://lists.busybox.net/mailman/listinfo/busybox-cvs">this page</a>. | ||
18 | The Subversion server is the only one permtted to post to this list. And yes, | ||
19 | this list name uses the word 'cvs' even though we don't use that anymore... | ||
20 | |||
21 | <p> | ||
22 | |||
23 | |||
24 | <h3>Search the List Archives</h3> | ||
25 | Please search the mailing list archives before asking questions on the mailing | ||
26 | list, since there is a good chance someone else has asked the same question | ||
27 | before. Checking the archives is a great way to avoid annoying everyone on the | ||
28 | list with frequently asked questions... | ||
29 | <p> | ||
30 | |||
31 | <center> | ||
32 | <form method="GET" action="http://www.google.com/custom"> | ||
33 | <input type="hidden" name="domains" value="busybox.net"> | ||
34 | <input type="hidden" name="sitesearch" value="busybox.net"> | ||
35 | <input type="text" name="q" size="31" maxlength="255" value=""> | ||
36 | <br> | ||
37 | <input type="submit" name="sa" value="search the mailing list archives"> | ||
38 | <br> | ||
39 | <a href="http://www.google.com"><img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" height="32" width="75" align="middle"></a> | ||
40 | <br> | ||
41 | </form> | ||
42 | </center> | ||
43 | |||
44 | |||
45 | |||
46 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/news.html b/docs/busybox.net/news.html deleted file mode 100644 index e0a8138b6..000000000 --- a/docs/busybox.net/news.html +++ /dev/null | |||
@@ -1,504 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <ul> | ||
4 | |||
5 | <li> | ||
6 | <p>We want to thank the following companies which are providing support for the BusyBox project: | ||
7 | <ul> | ||
8 | <li>AOE media, a <a href="http://www.aoemedia.com/typo3-development.html"> | ||
9 | TYPO3 development agency</a> contributes financially.</li> | ||
10 | <li><a href="http://www.analog.com/en/">Analog Devices, Inc.</a> provided | ||
11 | a <a href="http://docs.blackfin.uclinux.org/doku.php?id=bf537_quick_start"> | ||
12 | Blackfin development board</a> free of charge. | ||
13 | <a href="http://www.analog.com/blackfin">Blackfin</a> | ||
14 | is a NOMMU processor, and its availability for testing is invaluable. | ||
15 | If you are an embedded device developer, | ||
16 | please note that Analog Devices has entire Linux distribution available | ||
17 | for download for this board. Visit | ||
18 | <a href="http://blackfin.uclinux.org/">http://blackfin.uclinux.org/</a> | ||
19 | for more information. | ||
20 | </li> | ||
21 | </ul> | ||
22 | </p> | ||
23 | </li> | ||
24 | |||
25 | <li><b>15 April 2009 -- BusyBox 1.14.0 (unstable), BusyBox 1.13.4 (stable)</b> | ||
26 | <p><a href="http://busybox.net/downloads/busybox-1.14.0.tar.bz2">BusyBox 1.14.0</a>. | ||
27 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_14_stable/">svn</a>, | ||
28 | <a href="http://busybox.net/downloads/fixes-1.14.0/">patches</a>, | ||
29 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
30 | <p><a href="http://busybox.net/downloads/busybox-1.13.4.tar.bz2">BusyBox 1.13.4</a>. | ||
31 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>, | ||
32 | <a href="http://busybox.net/downloads/fixes-1.13.4/">patches</a>, | ||
33 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
34 | |||
35 | <p>Sizes of busybox-1.13.4 and busybox-1.14.0 (with equivalent config, static uclibc build):<pre> | ||
36 | text data bss dec hex filename | ||
37 | 785501 483 7036 793020 c19bc busybox.1.13.4/busybox | ||
38 | 788380 467 6960 795807 c249f busybox.1.14.0/busybox | ||
39 | 15361 0 0 15361 3c01 busybox.1.13.4/shell/hush.o | ||
40 | 20724 0 0 20724 50f4 busybox.1.14.0/shell/hush.o | ||
41 | </pre> | ||
42 | <p>Most of growth is in hush. The rest shrank a bit. | ||
43 | |||
44 | <p>New applets: | ||
45 | <ul> | ||
46 | <li>flash_eraseall: by Sebastian Andrzej Siewior (bigeasy AT linutronix.de)</li> | ||
47 | <li>acpid, mkdosfs, tunctl: by Vladimir</li> | ||
48 | <li>ftpd: by Adam Tkac (vonsch AT gmail.com)</li> | ||
49 | <li>timeout: by Roberto Foglietta</li> | ||
50 | <li>ionice: adapted from Linux kernel example by Walter Harms</li> | ||
51 | <li>mkpasswd: synonym to cryptpw. mkpasswd is in Debian, OTOH cryptpw was added to busybox earlier. Trying to make both camps happy by making those two applets just aliases. They are command-line compatible</li> | ||
52 | </ul> | ||
53 | |||
54 | <p>Changes since previous release: | ||
55 | |||
56 | <p>lash and msh are deprecated, please migrate to hush. | ||
57 | |||
58 | <p>hush had many, many fixes and features added: here documents, arithmetic evaluation, function support, and all this works on NOMMU too, safely, including 100kb-sized `command` and here documents. Here document support, arithmetic evaluation, improved ${var} operations, other fixes are by Mike Frysinger (vapier AT gentoo.org). | ||
59 | |||
60 | <p>Other changes: | ||
61 | <ul> | ||
62 | <li>libbb: unify concurrent-safe update of /etc/{passwd,group,[g]shadow}. By Tito (farmatito AT tiscali.it)</li> | ||
63 | <li>libbb/sha{1,256,512}: major code shrink</li> | ||
64 | <li>libbb/lineedit: make history saving/loading concurrent-safe</li> | ||
65 | <li>libbb: shrink linked list ops. By xmaks AT email.cz</li> | ||
66 | <li>libbb: str2sockaddr should accept [IPv6] addr without port - wget 'ftp://[::1]/file' needs that to work</li> | ||
67 | <li>libbb: make bb_info_msg do atomic, unbuffered writes</li> | ||
68 | <li>util-linux/volumeid: abort early on read failures. Should help with probing missing fdd's</li> | ||
69 | <li>util-linux/volumeid: fix bug 249 "findfs finds the wrong partition"</li> | ||
70 | <li>adduser: allow adding to group 0; don't _create_ /etc/shadow, only append data if it exists</li> | ||
71 | <li>ash: fix mishandled ^C and SIGINT (several cases)</li> | ||
72 | <li>ash: fix "ash -c 'exec 1>&0'" complaining that fd 0 is busy</li> | ||
73 | <li>ash: fix $IFS handling in read. Closes bug 235</li> | ||
74 | <li>ash: fix a case where we were closing wrong descriptor</li> | ||
75 | <li>ash: fix bad interaction between ash -c '....&' and bash compat</li> | ||
76 | <li>ash: fix miscalculation of memory needed for eval tree. Found by Timo Teras (timo.teras AT iki.fi)</li> | ||
77 | <li>ash: make dot command search current directory first, as bash does</li> | ||
78 | <li>ash: printf builtin with no arguments should not exit</li> | ||
79 | <li>awk: fix long field separators case. By Ian Wienand (ianw AT vmware.com)</li> | ||
80 | <li>awk: in BEGIN section $0 should be "", not "0"</li> | ||
81 | <li>awk: make "struct global" hack more robust wrt alignment. Closes bug 131</li> | ||
82 | <li>brctl: fix compilation on 2.4.x kernels</li> | ||
83 | <li>chat: treat timeout more correctly</li> | ||
84 | <li>chat: recognize RECORD directive</li> | ||
85 | <li>cksum, head, printenv: report errors via exitcode</li> | ||
86 | <li>cpio: add -p, -0 and -L options</li> | ||
87 | <li>crond, crontab: make cron directory location configurable</li> | ||
88 | <li>crond: correct more of logfile to 0666 (as usual, umask allows user to remove unwanted bits)</li> | ||
89 | <li>crond: put tasks in separate process groups</li> | ||
90 | <li>dc: fix the "base 2" patch omission of base not being set</li> | ||
91 | <li>depmod: accept and ignore -r. Linux kernel build needs this</li> | ||
92 | <li>depmod: fix -b option. By timo.teras AT iki.fi</li> | ||
93 | <li>udhcpc: fix a problem where we don't open listening socket fast enough</li> | ||
94 | <li>udhcpc: stop filtering environment passed to the script</li> | ||
95 | <li>udhcpd: disable option to have absolute lease times in lease file (that does not work with dumpleases)</li> | ||
96 | <li>udhcpd: write 64-bit current time in lease file. Without it, determination of remaining lease time is unreliable</li> | ||
97 | <li>udhcpd: remember hostnames of clients</li> | ||
98 | <li>dumpleases: fix -a option, use recorded current time in lease file, show hostnames</li> | ||
99 | <li>dnsd: fix a number of bugs. Ideas by Ming-Ching Tiew (mctiew AT yahoo.com)</li> | ||
100 | <li>dpkg: better and shorter code to compare versions. Taken from "official" dpkg by Eugene T. Bordenkircher (eugebo AT gmail.com)</li> | ||
101 | <li>du: fix "du /dir /dir" case</li> | ||
102 | <li>env: support -uVAR=VAL</li> | ||
103 | <li>expand, unexpand: fix incorrect expansion in some cases</li> | ||
104 | <li>expr: a bit more robust handling of regexps with groups. Closes bug 87</li> | ||
105 | <li>find: support --mindepth</li> | ||
106 | <li>getty: make speed 0 mean "don't change speed", stop using non-portable way of setting speeds</li> | ||
107 | <li>grep: support -z</li> | ||
108 | <li>gzip: fix gzip -dc bug caused by using stale getopt state</li> | ||
109 | <li>httpd: set $HOST to Host: header value. By Tobias Poschwatta (tp AT fonz.de)</li> | ||
110 | <li>ifupdown: allow options to udhcpc to be configurable from .config</li> | ||
111 | <li>init: do not eat last char in messages; do not print duplicate "init:" prefix to syslog</li> | ||
112 | <li>init: fix a bug where on reload order of entries might be wrong</li> | ||
113 | <li>init: major improvement in documentation and signal handling. Lots of nasty, but hard to trip, races are fixed</li> | ||
114 | <li>init: reinstate proper handling of !ENABLE_FEATURE_USE_INITTAB</li> | ||
115 | <li>init: remove wait loop on restart, it may be dangerous</li> | ||
116 | <li>init: test for vt terminal with VT_OPENQRY, assume that anything else is TERM=vt102, not TERM=linux. Closes bug 195</li> | ||
117 | <li>inotifyd: add x, o, and u events</li> | ||
118 | <li>inotifyd: fix buffer overflow and "unreaped zombies" problem</li> | ||
119 | <li>inotifyd: conserve resourses by closing unused inotify descriptors</li> | ||
120 | <li>insmod/modprobe: do not pass NULL to kernel as module parameter</li> | ||
121 | <li>ip: in "ip rule add from all table 1", "all" is taken as 0.0.0.0/32, whereas "any" and "default" would be 0.0.0.0/0. They must be all 0.0.0.0/0. Closes bug 57</li> | ||
122 | <li>iproute: fix ipXXX utilities trying to parse their applet name as their 1st parameter</li> | ||
123 | <li>klogctl: fix a problem where we don't terminate read data with '\0' and then misinterpret it</li> | ||
124 | <li>ls: do not follow links with -s. Closes bug 33</li> | ||
125 | <li>ls: implement -Q and -g (-g was accepted but ignored)</li> | ||
126 | <li>ls: make readlink error to not disrupt output (try ls -l /proc/self/fd)</li> | ||
127 | <li>man: better check for duplicated MANPATH</li> | ||
128 | <li>mdev: add support for - ("dont stop here") char</li> | ||
129 | <li>mdev: if /sys/class/block exists, don't scan /sys/block</li> | ||
130 | <li>mdev: ignore events with "$SUBSYSTEM" == "firmware" && "$ACTION" == "remove"</li> | ||
131 | <li>mdev: provide $SUBSYSTEM. By Vladimir</li> | ||
132 | <li>modprobe/insmod for 2.4: support compressed modules. By Guenter (lists AT gknw.net)</li> | ||
133 | <li>modprobe: rework/speedup by Timo Teras (timo.teras AT iki.fi)</li> | ||
134 | <li>modutils-24: fix bad interaction of xzalloc with xrealloc_vector</li> | ||
135 | <li>mount: support "-O option", stop trying to mount swap partitions, fix CIFS support</li> | ||
136 | <li>mountpoint: add -n option. By Vladimir</li> | ||
137 | <li>nslookup: allow usage of IPv6 addresses or hostnames for DNS server name; allow for port specification. Tested to work on uclibc svn: "nslookup google.com [::1]:5353". glibc + IPv6 address of DNS server still does not work</li> | ||
138 | <li>popmaildir: fix several grave bugs with using memory past end of malloc block</li> | ||
139 | <li>printf: fix 1.12.0 breakage (from %*d fix), it was misinterpreting "*"</li> | ||
140 | <li>printf: make integer format strings print long long-sized values</li> | ||
141 | <li>rmmod: fix bug 263 "modutils/rmmod can't remove modules with dash in name on 2.4 kernels"</li> | ||
142 | <li>sendmail: document and fix usage of fd #4, fix check for helper failure</li> | ||
143 | <li>sendmail: update by Vladimir</li> | ||
144 | <li>seq: add -w support. By Natanael Copa</li> | ||
145 | <li>seq: add support for "-s separator"</li> | ||
146 | <li>stat: make stat -f show filesystem "ID:" as coreutils does</li> | ||
147 | <li>sysctl: fix another corner case with "dots and slashes"</li> | ||
148 | <li>sysctl: fix broken -p [file]. Closes bug 231</li> | ||
149 | <li>sysctl: support recursing if name is a directory: "sysctl net.ipv4.conf". Patch by xmaks AT email.cz</li> | ||
150 | <li>syslogd: make signal handling syncronous</li> | ||
151 | <li>syslogd: create logfile with 0666 (affected by umask as usual), not 0600</li> | ||
152 | <li>tail: fix tail +N syntax not working. Closes bug 221</li> | ||
153 | <li>tar: do not change new tarfile's mode, GNU tar doesn't do it</li> | ||
154 | <li>tar: support GNU tar's "base256" encoding</li> | ||
155 | <li>telnetd: correctly output 0xff char</li> | ||
156 | <li>telnetd: do not advertise TELNET_LFLOW, we do not support it properly</li> | ||
157 | <li>tftp: when we infer local name from remote (-r [/]path/path/file), strip path. This mimics wget and is generally more intuitive</li> | ||
158 | <li>timeout: fix parsing of -t NUM on MMU</li> | ||
159 | <li>top: make it work again on 2.4 kernels. Closes bug 125</li> | ||
160 | <li>tr: fix overflow in expand and complement, fix stop after [:class:], fix handling of ranges and [x]'s</li> | ||
161 | <li>tr: support -C as synonym to -c, support [:xdigit:]</li> | ||
162 | <li>traceroute: rewrite. Do not emit raw IP packets, instead send UDP or ICMP packets and rely on the kernel to form IP headers, select source IP and interface</li> | ||
163 | <li>uname: add support for -i and -o, fix printing of unknown -p value with -a option, support long options</li> | ||
164 | <li>unzip: fix thinko with le/be conv and size. Closes bug 129</li> | ||
165 | <li>vi: fix several instances of major goof: when text grows, text[] might get reallocated! We were keeping around pointers to old place</li> | ||
166 | <li>vi: speedup and code shrink. By Walter Harms</li> | ||
167 | <li>wget: --post-data support. By Harald Kuthe (harald-tuxbox AT arcor.de)</li> | ||
168 | <li>wget: fix --header handling, more robust EINTR detection</li> | ||
169 | </ul> | ||
170 | </p> | ||
171 | |||
172 | <li><b>8 March 2009 -- BusyBox 1.13.3 (stable)</b> | ||
173 | <p><a href="http://busybox.net/downloads/busybox-1.13.3.tar.bz2">BusyBox 1.13.3</a>. | ||
174 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>, | ||
175 | <a href="http://busybox.net/downloads/fixes-1.13.3/">patches</a>, | ||
176 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
177 | |||
178 | <p>1.13.3 is a bug fix release. It has fixes for awk, depmod, init, killall, mdev, | ||
179 | modprobe, printf, syslogd, tar, top, unzip, wget. | ||
180 | </p> | ||
181 | </li> | ||
182 | |||
183 | <li><b>31 December 2008 -- BusyBox 1.13.2 (stable), BusyBox 1.12.4 (stable)</b> | ||
184 | <p><a href="http://busybox.net/downloads/busybox-1.13.2.tar.bz2">BusyBox 1.13.2</a>. | ||
185 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>, | ||
186 | <a href="http://busybox.net/downloads/fixes-1.13.2/">patches</a>, | ||
187 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
188 | <p><a href="http://busybox.net/downloads/busybox-1.12.4.tar.bz2">BusyBox 1.12.4</a>. | ||
189 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>, | ||
190 | <a href="http://busybox.net/downloads/fixes-1.12.4/">patches</a>, | ||
191 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
192 | |||
193 | <p>Bug fix releases. 1.13.2 has fixes for crond, dc, init, ip, printf. | ||
194 | 1.12.4 has fixes for ip and printf. | ||
195 | </p> | ||
196 | </li> | ||
197 | |||
198 | <li><b>29 November 2008 -- BusyBox 1.13.1 (stable), BusyBox 1.12.3 (stable)</b> | ||
199 | <p><a href="http://busybox.net/downloads/busybox-1.13.1.tar.bz2">BusyBox 1.13.1</a>. | ||
200 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>, | ||
201 | <a href="http://busybox.net/downloads/fixes-1.13.1/">patches</a>, | ||
202 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
203 | <p><a href="http://busybox.net/downloads/busybox-1.12.3.tar.bz2">BusyBox 1.12.3</a>. | ||
204 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>, | ||
205 | <a href="http://busybox.net/downloads/fixes-1.12.3/">patches</a>, | ||
206 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
207 | |||
208 | <p>Bug fix releases. 1.13.1 has fixes for ash, option parsing, id, init, | ||
209 | inotifyd, klogd, line editing and modprobe. 1.12.3 has fixes | ||
210 | for option parsing and line editing. | ||
211 | </p> | ||
212 | </li> | ||
213 | |||
214 | <li><b>10 November 2008 -- BusyBox 1.13.0 (unstable), BusyBox 1.12.2 (stable)</b> | ||
215 | <p><a href="http://busybox.net/downloads/busybox-1.13.0.tar.bz2">BusyBox 1.13.0</a>. | ||
216 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>, | ||
217 | <a href="http://busybox.net/downloads/fixes-1.13.0/">patches</a>, | ||
218 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
219 | <p><a href="http://busybox.net/downloads/busybox-1.12.2.tar.bz2">BusyBox 1.12.2</a>. | ||
220 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>, | ||
221 | <a href="http://busybox.net/downloads/fixes-1.12.2/">patches</a>, | ||
222 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
223 | |||
224 | <p>Sizes of busybox-1.12.2 and busybox-1.13.0 (with equivalent config, static uclibc build):<pre> | ||
225 | text data bss dec hex filename | ||
226 | 778291 551 7856 786698 c010a busybox-1.12.2/busybox | ||
227 | 778981 551 7852 787384 c03b8 busybox-1.13.0/busybox | ||
228 | </pre> | ||
229 | |||
230 | <p>New applets: blkid, devmem | ||
231 | |||
232 | <p>Changes since previous release: | ||
233 | <ul> | ||
234 | <li>mail applets: total overhaul. Vladimir as usual</li> | ||
235 | <li>ash: fix "while kill -0 $child; do true; done" looping forever</li> | ||
236 | <li>ash: fix NOEXEC mode - we were forgetting to pass environment</li> | ||
237 | <li>ash: fix a bug in standalone mode (corrupted getopt state)</li> | ||
238 | <li>ash: optionally support ">&file" and "&>file" redirections</li> | ||
239 | <li>awk: bitwise ops cast oprands and results to unsigned long, not signed. closes bug 4774</li> | ||
240 | <li>awk: fix typo in atan2 code. closes bug 5594</li> | ||
241 | <li>awk: improve handling of negative numbers in bitwise ops; fix handling of octal costants</li> | ||
242 | <li>awk: support hex constants</li> | ||
243 | <li>basename: fix error code (again)</li> | ||
244 | <li>cpio: emit TRAILER even when hard links were found. By Pascal Bellard (pascal.bellard AT ads-lu.com)</li> | ||
245 | <li>crontab: do not destroy STDIN_FILENO, editor may need it (crontab -e)</li> | ||
246 | <li>dc: support for bases 2 and 8, by Nate Case (ncase AT xes-inc.com)</li> | ||
247 | <li>dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..."</li> | ||
248 | <li>dpkg: add dpkg -l PACKAGE_PATTERN. By Peter Korsgaard</li> | ||
249 | <li>fbset: fix mode matching code: original code may trigger false positive.</li> | ||
250 | <li>findfs: fix LUKS and FAT detection routines; do not exit if corrupted FAT fs makes us try to seek past the end</li> | ||
251 | <li>grep: fix 'echo aaa | grep -o a' + ENABLE_EXTRA_COMPAT case. By Natanael Copa</li> | ||
252 | <li>grep: fix EXTRA_COMPAT grep to honor -E and -i</li> | ||
253 | <li>gunzip: restore mtime</li> | ||
254 | <li>halt: reinstate -w even if !FEATURE_WTMP</li> | ||
255 | <li>hexdump: fix SEGV in hexdump -e ""</li> | ||
256 | <li>httpd: pass "Accept:" and "Accept-Language:" header to CGI scripts (Alina Friedrichsen)</li> | ||
257 | <li>hush: fix environment and memory leaks</li> | ||
258 | <li>hush: fix trashing of environment by local env vars: a=a; a=b cmd; - a was unset</li> | ||
259 | <li>id: improve compatibility with coreutils. By Tito Ragusa</li> | ||
260 | <li>inetd: fix a case when we have zero services</li> | ||
261 | <li>inetd: use config parser. by Vladimir</li> | ||
262 | <li>init: set stderr to NONBLOCK</li> | ||
263 | <li>insmod: fix detection of open failure</li> | ||
264 | <li>install: support -D</li> | ||
265 | <li>ip: fix ip route rejecting dotted quads as prefix</li> | ||
266 | <li>ip: route metric support (Natanael Copa)</li> | ||
267 | <li>iplink: accept shorthands for "address" keyword: "ip link set address 00:11:22:33:44:55"</li> | ||
268 | <li>kbd_mode: support -C TTY</li> | ||
269 | <li>kill[all[5]]: accept -s SIG too. By Steve Bennett (steveb AT workware.net.au)</li> | ||
270 | <li>klogd: handle many lines at once. By Steve Bennett (steveb AT workware.net.au)</li> | ||
271 | <li>less: support -I to be able to search case-insensitively</li> | ||
272 | <li>less: add optional line number toggle and resizing on window resize</li> | ||
273 | <li>libbb: do not reject floating point strings like ".15"</li> | ||
274 | <li>lineedit: fix bug 5824 "since rev 23530 fdisk and ed don't work any more"</li> | ||
275 | <li>lineedit: fix problems with empty commands in history</li> | ||
276 | <li>login: fix /etc/nologin handling</li> | ||
277 | <li>man: fix inconsistencies in handling $MANPATH</li> | ||
278 | <li>mdev: support match by major,minor. See bug 4714</li> | ||
279 | <li>modprobe-small: make insmod command line compatible</li> | ||
280 | <li>modprobe-small: support "blacklist" keyword in /etc/modules/MODULE_NAME</li> | ||
281 | <li>modprobe: fix a segfault when modprobe is called with no arguments at all</li> | ||
282 | <li>modutils/*: rewrite by Timo Teras (timo.teras AT iki.fi)</li> | ||
283 | <li>mount: fix "-o parm1 -o parm2" not accumulating</li> | ||
284 | <li>nmeter: 4k buffers are too small for /proc files, make them dynamically sized with 16k upper limit</li> | ||
285 | <li>ping: SO_RCVBUF must be bigger than packet size, otherwise large ping packets might fail to be received</li> | ||
286 | <li>route: fix for 64-bit BE machines by Seonghun Lim (wariua AT gmail.com)</li> | ||
287 | <li>rpm: fix incompatibilities which prevented rpm -i foo.src.rpm</li> | ||
288 | <li>runsvdir: support runsvdir-as-init</li> | ||
289 | <li>setarch: do not try to use non-existent data in argv[]</li> | ||
290 | <li>setfont: support -m and -C, support -m TEXTUAL_MAP (by Vladimir)</li> | ||
291 | <li>setup_environment: cd $HOME regardless of clear_env value</li> | ||
292 | <li>slattach: preserve speed in non-raw mode. By Matthieu Castet (matthieu.castet AT parrot.com)</li> | ||
293 | <li>start_stop_daemon: accept (and ignore) -R PARAM</li> | ||
294 | <li>sv: make default service dir configurable (Vladimir wants it)</li> | ||
295 | <li>sysctl: fix bug 3894 (by Kryzhanovskyy Maksym)</li> | ||
296 | <li>tar: fix bug 3844: non-root tar does not preserve perms</li> | ||
297 | <li>telnetd: handle emacs M-DEL and IAC-NOP. by Jim Cathey (jcathey AT ciena.com)</li> | ||
298 | <li>top: fix "top -d 1" (bug 5144)</li> | ||
299 | <li>top: optional SMP support by Vineet Gupta (vineetg76 AT gmail.com)</li> | ||
300 | <li>trylink: make messages less confusing</li> | ||
301 | <li>unzip: handle "central directory". needed for OpenOffice, gmail attachment .zips etc</li> | ||
302 | <li>vi: Rob's algorithm of reading and matching ESC sequences (nice work btw!)</li> | ||
303 | <li>vi: deal with EOF/error on stdin and with input NULs</li> | ||
304 | <li>vi: fix uninitialized last_search_pattern (bug 5794)</li> | ||
305 | <li>vi: handle chars 0x80, 0x81 etc correctly</li> | ||
306 | <li>volume identification: abolish /proc/partitions and /proc/cdroms scanning. It does not catch volume managers and such. Simply scan /dev/* for any block devices</li> | ||
307 | <li>watchdog: WDIOC_SETTIMEOUT accepts seconds, not milliseconds</li> | ||
308 | <li>watchdog: add -T option</li> | ||
309 | </ul> | ||
310 | <p> | ||
311 | The email address gpl@busybox.net is the recommended way to contact | ||
312 | the Software Freedom Law Center to report BusyBox license violations. | ||
313 | </p> | ||
314 | </li> | ||
315 | |||
316 | <li><b>28 September 2008 -- BusyBox 1.12.1 (stable), BusyBox 1.11.3 (stable)</b> | ||
317 | <p><a href="http://busybox.net/downloads/busybox-1.12.1.tar.bz2">BusyBox 1.12.1</a>. | ||
318 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>, | ||
319 | <a href="http://busybox.net/downloads/fixes-1.12.1/">patches</a>, | ||
320 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
321 | <p><a href="http://busybox.net/downloads/busybox-1.11.3.tar.bz2">BusyBox 1.11.3</a>. | ||
322 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>, | ||
323 | <a href="http://busybox.net/downloads/fixes-1.11.3/">patches</a>, | ||
324 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
325 | <p> | ||
326 | Bugfix-only releases for 1.11.x and 1.12.x branches. | ||
327 | </p> | ||
328 | </li> | ||
329 | |||
330 | <li><b>21 August 2008 -- BusyBox 1.12.0 (unstable), BusyBox 1.11.2 (stable)</b> | ||
331 | <p><a href="http://busybox.net/downloads/busybox-1.12.0.tar.bz2">BusyBox 1.12.0</a>. | ||
332 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>, | ||
333 | <a href="http://busybox.net/downloads/fixes-1.12.0/">patches</a>, | ||
334 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
335 | <p><a href="http://busybox.net/downloads/busybox-1.11.2.tar.bz2">BusyBox 1.11.2</a>. | ||
336 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>, | ||
337 | <a href="http://busybox.net/downloads/fixes-1.11.2/">patches</a>, | ||
338 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
339 | |||
340 | <p>Sizes of busybox-1.11.2 and busybox-1.12.0 (with equivalent config, static uclibc build):<pre> | ||
341 | text data bss dec hex filename | ||
342 | 829687 617 7052 837356 cc6ec busybox-1.11.2/busybox | ||
343 | 822961 594 6832 830387 cabb3 busybox-1.12.0/busybox | ||
344 | </pre> | ||
345 | |||
346 | <p>New applets: rdev (Grant Erickson), setfont, showkey (both by Vladimir) | ||
347 | |||
348 | <p>Most significant changes since previous release (please report any regression): | ||
349 | <ul> | ||
350 | <li>ash: bash compat: "shift $BIGNUM" is equivalent to "shift 1"</li> | ||
351 | <li>ash: dont allow e.g. exec <&10 to attach to script's fd! </li> | ||
352 | <li>ash: fix a bug where redirection fds were not closed afterwards. optimize close+fcntl(DUPFD) into dup2</li> | ||
353 | <li>ash: fix segfault in "command -v"</li> | ||
354 | <li>ash: fix very weak $RANDOM generator</li> | ||
355 | <li>ash: prevent exec NN>&- from closing fd used for script reading</li> | ||
356 | <li>ash: teach ash about 123>file. It could take only 0..9 before</li> | ||
357 | <li>hush: fix a case where "$@" must expand to no word at all</li> | ||
358 | <li>hush: fix mishandling of a'b'c=fff as assignments. They are not</li> | ||
359 | <li>hush: fix non-detection of builtins and applets in "v=break; ...; $v; ..." case</li> | ||
360 | <li>hush: fix "while false; ..." exitcode; add testsuites</li> | ||
361 | <li>hush: support "case...esac" statements (~350 bytes of code)</li> | ||
362 | <li>hush: support "break [N]" and "continue [N]" statements</li> | ||
363 | <li>hush: support "for if in do done then; do echo $if; done" case</li> | ||
364 | <li>hush: support "for v; do ... done" syntax (implied 'in "$@"')</li> | ||
365 | <li>hush: support $_NUMBERS variable names</li> | ||
366 | <li>libbb: unified config parser (by Vladimir). This change affected many applets</li> | ||
367 | </ul> | ||
368 | |||
369 | <p>Other changes: | ||
370 | <ul> | ||
371 | <li>libbb: dump: do not use uninitialized memory (closes bug 4364)</li> | ||
372 | <li>libbb: fix bb_strtol[l]'s check for "-" (closes bug 4174)</li> | ||
373 | <li>libbb: fix --help to not affect "test --help"</li> | ||
374 | <li>libbb: fix mishandling of "all argv are opts" in getopt32()</li> | ||
375 | <li>libbb: getopt32() should not ever touch argv[0] (even read)</li> | ||
376 | <li>libbb: introduce and use xrealloc_vector</li> | ||
377 | <li>libbb: [x]fopen_for_{read,write} introduced and used (by Vladimir)</li> | ||
378 | <li>lineedit: fix use-after-free</li> | ||
379 | <li>libunarchive: refactor handling of archived files. "tar f file.tar.lzma" now works too</li> | ||
380 | <li>bb_strtoXXX: close bug 4174 (potential use of buf[-1])</li> | ||
381 | <li>open_transformer: don't leak file descriptor</li> | ||
382 | <li>open_transformer: fix bug of calling exit instead of _exit</li> | ||
383 | <li>arp: without -H type, assume "ether" (closes bug 4564)</li> | ||
384 | <li>ar: reuse existing ar unpacking code</li> | ||
385 | <li>awk: fix a case with multiple -f options. Simplify -f file reading. </li> | ||
386 | <li>build system: introduce and use FAST_FUNC: regparm on i386, otherwise no-op</li> | ||
387 | <li>bunzip2: fix an uncompression error (by Rob Landley rob AT landley.net)</li> | ||
388 | <li>b[un]zip2, g[un]zip: unlink destination if -f is given (closes bug 3854)</li> | ||
389 | <li>comm: almost total rewrite</li> | ||
390 | <li>cpio: fix -m to actually work as expected (by Pascal Bellard)</li> | ||
391 | <li>cpio: internalize archive_xread_all_eof, add a few paranoia checks for corrupted cpio files</li> | ||
392 | <li>cpio: make long opts depend only on ENABLE_GETOPT_LONG</li> | ||
393 | <li>cpio: on unpack, limit filename length to 8k</li> | ||
394 | <li>cpio: support some long options</li> | ||
395 | <li>crond: use execlp instead of execl</li> | ||
396 | <li>cut: fix buffer overflow (closes bug 4544)</li> | ||
397 | <li>envdir: fix "envdir" (no params at all) and "envdir dir" cases</li> | ||
398 | <li>findfs: make it use setuid-ness of busybox binary</li> | ||
399 | <li>fsck: use getmntent_r instead of open-coded parsing (by Vladimir)</li> | ||
400 | <li>fuser: a bit of safety in scanf</li> | ||
401 | <li>grep: option to use GNU regex matching instead of POSIX one. This fixes problems with NULs in files being scanned, but costs +800 bytes</li> | ||
402 | <li>halt: signal init regardless of ENABLE_INIT</li> | ||
403 | <li>httpd: add homedir directive specially for (and by) Walter Harms wharms AT bfs.de</li> | ||
404 | <li>ifupdown: /etc/network/interfaces can have comments with leading blanks</li> | ||
405 | <li>ifupdown: fixes for custom MAC address (by Wade Berrier wberrier AT gmail.com)</li> | ||
406 | <li>ifupdown: fixes for shutdown of DHCP-managed interfaces (by Wade Berrier wberrier AT gmail.com)</li> | ||
407 | <li>inetd: do not trash errno in signal handlers; in CHLD handler, stop looping through services when pid is found</li> | ||
408 | <li>insmod: users report that "|| defined(__powerpc__)" is missing</li> | ||
409 | <li>install: do not chown intermediate directories with install -d (by Natanael Copa)</li> | ||
410 | <li>install: fix long option not taking params (closes bug 4584)</li> | ||
411 | <li>lpd,lpr: send/receive ACKs after filenames, not only after file bodies</li> | ||
412 | <li>ls: fix a bug where we may use uninintialized variable</li> | ||
413 | <li>man: add handling of "man links", by Ivana Varekova varekova AT redhat.com</li> | ||
414 | <li>man: fix a case when a full pathname to manpage is given</li> | ||
415 | <li>man: fix inverted cat/man bool variable</li> | ||
416 | <li>man: fix missed NULL termination of an array</li> | ||
417 | <li>man: mimic "no manual entry for 'bogus'" message and exitcode</li> | ||
418 | <li>man: support cat pages too (by Jason Curl jcurlnews AT arcor.de)</li> | ||
419 | <li>man: teach it to use .lzma if requested by .config</li> | ||
420 | <li>mdev: check for "/block/" substring for block dev detection</li> | ||
421 | <li>mdev: do not complain if mdev.conf does not exist</li> | ||
422 | <li>mdev: if device was moved at creation, at removal correctly remove it from moved location and also remove symlinks to it</li> | ||
423 | <li>mdev: support for serializing hotplug</li> | ||
424 | <li>mdev, init: use shared code for fd sanitization</li> | ||
425 | <li>mkdir: fix "uname 0222; mkdir -p foo/bar" case (by Doug Graham dgraham AT nortel.com)</li> | ||
426 | <li>modprobe: support for /etc/modprobe.d (by Timo Teras)</li> | ||
427 | <li>modprobe: use buffering line reads (fgets()) instead of reads()</li> | ||
428 | <li>modutils: optional modprobe-small (by Vladimir), 15kb smaller than standard one</li> | ||
429 | <li>mount: support for "-o mand" and "[no]relatime"</li> | ||
430 | <li>mount: support nfs mount option "nordiplus" (by Octavian Purdila opurdila AT ixiacom.com)</li> | ||
431 | <li>mount: support "relatime" / "norelatime"</li> | ||
432 | <li>mount: testsuite for "-o mand"</li> | ||
433 | <li>msh: fix "while... continue; ..." (closes bug 3884)</li> | ||
434 | <li>mv: fix a case when we move dangling symlink across mountpoints</li> | ||
435 | <li>netstat: optional -p support (by L. Gabriel Somlo somlo AT cmu.edu)</li> | ||
436 | <li>nmeter: fix read past the end of a buffer (closes bug 4594)</li> | ||
437 | <li>od, hexdump: fix bug where xrealloc may move pointer, leaving other pointers dangling (closes bug 4104)</li> | ||
438 | <li>pidof/killall: allow find_pid_by_name to find running processes started as scripts_with_name_longer_than_15_bytes.sh (closes bug 4054)</li> | ||
439 | <li>printf: do not print garbage on "%Ld" (closes bug 4214)</li> | ||
440 | <li>printf: fix %b, fix several bugs in %*.*, fix compat issues with aborting too early, support %zd; expand testsuite</li> | ||
441 | <li>printf: protect against bogus format specifiers (closes bug 4184)</li> | ||
442 | <li>sendmail: updates from Vladimir:</li> | ||
443 | <li>sendmail: do not discard all headers</li> | ||
444 | <li>sendmail: do not ignore CC; accept to: and cc: case-insensitively. +20 bytes</li> | ||
445 | <li>sendmail: fixed mail recipient address</li> | ||
446 | <li>sendmail: fixed SEGV if sender address is missed</li> | ||
447 | <li>sendmail: use HOSTNAME instead of HOST when no server is explicitly specified</li> | ||
448 | <li>sleep: if FANCY && DESKTOP, support fractional seconds, minutes, hours and so on (coreutils compat)</li> | ||
449 | <li>ssd: CLOSE_EXTRA_FDS in MMU case too</li> | ||
450 | <li>ssd: do not stat -x EXECUTABLE, it is not needed anymore</li> | ||
451 | <li>ssd: fix -a without -x case</li> | ||
452 | <li>ssd: use $PATH</li> | ||
453 | <li>tar: fix handling of tarballs with symlinks with size field != 0</li> | ||
454 | <li>tar: handle autodetection for tiny .tar.gz files too, simplify autodetection</li> | ||
455 | <li>taskset: fix some careless code in both fancy and non-fancy cases. -5 bytes for fancy, +5 for non-fancy</li> | ||
456 | <li>tee: fix infinite looping on open error (echo asd | tee "")</li> | ||
457 | <li>tee: "-" is a name for stdout, handle it that way</li> | ||
458 | <li>telnetd: fix issue file printing</li> | ||
459 | <li>test: fix parser to prefer binop over unop, as coreutils does</li> | ||
460 | <li>testsuite: uniformly use $ECHO with -n -e</li> | ||
461 | <li>time: don't segfault with no arguments</li> | ||
462 | <li>touch: support -r REF_FILE if ENABLE_DESKTOP (needed for blackfin compile)</li> | ||
463 | <li>tr: fix "access past the end of a string" bug 4354</li> | ||
464 | <li>tr: fix "tr [=" case (closes bug 4374)</li> | ||
465 | <li>tr: fix yet another access past the end of a string (closes bug 4374)</li> | ||
466 | <li>unlzma: fix memory leak (by Pascal Bellard)</li> | ||
467 | <li>vi: fix reversed checks for underflow</li> | ||
468 | <li>vi: using array data after it fell out of scope is stupid</li> | ||
469 | <li>xargs: fix -e default to match newer GNU xargs, add SUS mandated -E (closes bug 4414)</li> | ||
470 | <li>other fixes and code size reductions in many applets</li> | ||
471 | </ul> | ||
472 | </p> | ||
473 | |||
474 | <li><b>12 July 2008 -- BusyBox 1.11.1 (stable)</b> | ||
475 | <p><a href="http://busybox.net/downloads/busybox-1.11.1.tar.bz2">BusyBox 1.11.1</a>. | ||
476 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>, | ||
477 | <a href="http://busybox.net/downloads/fixes-1.11.1/">patches</a>, | ||
478 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
479 | <p> | ||
480 | Bugfix-only release for 1.11.x branch. It contains fixes for awk, | ||
481 | bunzip2, cpio, ifupdown, ip, man, start-stop-daemon, uname and vi. | ||
482 | </p> | ||
483 | </li> | ||
484 | |||
485 | <li><b>11 July 2008 -- HOWTO is updated</b> | ||
486 | <p> | ||
487 | <a href="http://busybox.net/~vda/HOWTO/i486-linux-uclibc/HOWTO.txt"> | ||
488 | "How to build static busybox for i486-linux-uclibc"</a> is updated | ||
489 | and tested on a fresh Fedora 9 install. Please report if it doesn't | ||
490 | work for you. | ||
491 | </p> | ||
492 | </li> | ||
493 | |||
494 | |||
495 | |||
496 | <li><b>Old News</b><p> | ||
497 | Click here to read <a href="oldnews.html">older news</a> | ||
498 | </p> | ||
499 | </li> | ||
500 | |||
501 | </ul> | ||
502 | |||
503 | <!--#include file="footer.html" --> | ||
504 | |||
diff --git a/docs/busybox.net/oldnews.html b/docs/busybox.net/oldnews.html deleted file mode 100644 index 444af74a4..000000000 --- a/docs/busybox.net/oldnews.html +++ /dev/null | |||
@@ -1,2214 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>News archive</h3> | ||
4 | |||
5 | <ul> | ||
6 | |||
7 | <li><b>25 June 2008 -- BusyBox 1.11.0 (unstable), BusyBox 1.10.4 (stable)</b> | ||
8 | <p><a href="http://busybox.net/downloads/busybox-1.11.0.tar.bz2">BusyBox 1.11.0</a>. | ||
9 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>, | ||
10 | <a href="http://busybox.net/downloads/fixes-1.11.0/">patches</a>, | ||
11 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
12 | <p><a href="http://busybox.net/downloads/busybox-1.10.4.tar.bz2">BusyBox 1.10.4</a>. | ||
13 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_10_stable/">svn</a>, | ||
14 | <a href="http://busybox.net/downloads/fixes-1.10.4/">patches</a>, | ||
15 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
16 | <p>Sizes of busybox-1.10.4 and busybox-1.11.0 (with equivalent config, static uclibc build):<pre> | ||
17 | text data bss dec hex filename | ||
18 | 800675 636 7080 808391 c55c7 busybox-1.10.4 | ||
19 | 798392 611 6900 805903 c4c0f busybox-1.11.0 | ||
20 | </pre> | ||
21 | |||
22 | <p>New applets: inotify (Vladimir Dronnikov), man (Ivana Varekova), | ||
23 | fbsplash (Michele Sanges), depmod (Bernhard Reutner-Fischer) | ||
24 | |||
25 | <p>Changes since previous release: | ||
26 | <ul> | ||
27 | <li>build system: reinstate CONFIG_CROSS_COMPILE_PREFIX</li> | ||
28 | <li>ash: optional bash compatibility features added; other fixes</li> | ||
29 | <li>hush: lots and lots of fixes</li> | ||
30 | <li>msh: fix the case where the file has exec bit but can't be run directly (runs "$SHELL file" instead)</li> | ||
31 | <li>msh: fix exit codes when command is not found or can't be execed</li> | ||
32 | <li>udhcpc: added workaround for buggy kernels</li> | ||
33 | <li>mount: fix mishandling of proto=tcp/udp</li> | ||
34 | <li>diff: make it work on non-seekable streams</li> | ||
35 | <li>openvt: made more compatible with "standard" one</li> | ||
36 | <li>mdev: fix block/char device detection</li> | ||
37 | <li>ping: add -w, -W support (James Simmons)</li> | ||
38 | <li>crond: add handling of "MAILTO=user" lines</li> | ||
39 | <li>start-stop-daemon: make --exec follow symlinks (Joakim Tjernlund)</li> | ||
40 | <li>date: make it accept ISO date format</li> | ||
41 | <li>echo: fix echo -e -n "msg\n\0" (David Pinedo)</li> | ||
42 | <li>httpd: fix several bugs triggered by relative path in -h DIR</li> | ||
43 | <li>printf: fix printf -%s- foo, printf -- -%s- foo</li> | ||
44 | <li>syslogd: do not error out on missing files to rotate</li> | ||
45 | <li>ls: support Unicode in names</li> | ||
46 | <li>ip: support for the LOWER_UP flag (Natanael Copa)</li> | ||
47 | <li>mktemp: make argument optional (coreutil 6.12 compat)</li> | ||
48 | <li>libiproute: fix option parsing, so that "ip -o link" works again</li> | ||
49 | <li>other fixes and code size reductions in many applets</li> | ||
50 | </ul> | ||
51 | <p> | ||
52 | The email address gpl@busybox.net is the recommended way to contact | ||
53 | the Software Freedom Law Center to report BusyBox license violations. | ||
54 | </p> | ||
55 | </li> | ||
56 | |||
57 | <li><b>12 June 2008 -- Sponsors!</b> | ||
58 | <p>We want to thank the following companies which are providing support | ||
59 | for the BusyBox project: | ||
60 | </p> | ||
61 | <ul> | ||
62 | <li>AOE media, a <a href="http://www.aoemedia.com/typo3-development.html"> | ||
63 | TYPO3 development agency</a> contributes financially.</li> | ||
64 | <li><a href="http://www.analog.com/en/">Analog Devices, Inc.</a> provided | ||
65 | a <a href="http://docs.blackfin.uclinux.org/doku.php?id=bf537_quick_start"> | ||
66 | Blackfin development board</a> free of charge. | ||
67 | <a href="http://www.analog.com/blackfin">Blackfin</a> | ||
68 | is a NOMMU processor, and its availability for testing is invaluable. | ||
69 | If you are an embedded device developer, | ||
70 | please note that Analog Devices has entire Linux distribution available | ||
71 | for download for this board. Visit | ||
72 | <a href="http://blackfin.uclinux.org/">http://blackfin.uclinux.org/</a> | ||
73 | for more information. | ||
74 | </li> | ||
75 | </ul> | ||
76 | </li> | ||
77 | |||
78 | <li><b>5 June 2008 -- BusyBox 1.10.3 (stable)</b> | ||
79 | <p><a href="http://busybox.net/downloads/busybox-1.10.3.tar.bz2">BusyBox 1.10.3</a>. | ||
80 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_10_stable/">svn</a>, | ||
81 | <a href="http://busybox.net/downloads/fixes-1.10.3/">patches</a>, | ||
82 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
83 | <p> | ||
84 | Bugfix-only release for 1.10.x branch. It contains fixes for dnsd, fuser, hush, | ||
85 | ip, mdev and syslogd. | ||
86 | </p> | ||
87 | </li> | ||
88 | |||
89 | <li><b>8 May 2008 -- BusyBox 1.10.2 (stable)</b> | ||
90 | <p><a href="http://busybox.net/downloads/busybox-1.10.2.tar.bz2">BusyBox 1.10.2</a>. | ||
91 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_10_stable/">svn</a>, | ||
92 | <a href="http://busybox.net/downloads/fixes-1.10.2/">patches</a>, | ||
93 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
94 | <p> | ||
95 | Bugfix-only release for 1.10.x branch. It contains fixes for echo, httpd, pidof, | ||
96 | start-stop-daemon, tar, taskset, tab completion in shells, build system. | ||
97 | <p>Please note that mdev was backported from current svn trunk. Please | ||
98 | report if you encounter any problems with it. | ||
99 | </p> | ||
100 | </li> | ||
101 | |||
102 | <li><b>19 April 2008 -- BusyBox 1.10.1 (stable)</b> | ||
103 | <p><a href="http://busybox.net/downloads/busybox-1.10.1.tar.bz2">BusyBox 1.10.1</a>. | ||
104 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_10_stable/">svn</a>, | ||
105 | <a href="http://busybox.net/downloads/fixes-1.10.1/">patches</a>, | ||
106 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
107 | <p> | ||
108 | Bugfix-only release for 1.10.x branch. It contains fixes for | ||
109 | fuser, init, less, nameif, tail, taskset, tcpudp, top, udhcp. | ||
110 | </li> | ||
111 | |||
112 | <li><b>21 March 2008 -- BusyBox 1.10.0 (unstable)</b> | ||
113 | <p><a href="http://busybox.net/downloads/busybox-1.10.0.tar.bz2">BusyBox 1.10.0</a>. | ||
114 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_10_stable/">svn</a>, | ||
115 | <a href="http://busybox.net/downloads/fixes-1.10.0/">patches</a>, | ||
116 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
117 | |||
118 | <p>Sizes of busybox-1.9.2 and busybox-1.10.0 (with almost full config, static uclibc build):<pre> | ||
119 | text data bss dec hex filename | ||
120 | 781405 679 7500 789584 c0c50 busybox-1.9.2 | ||
121 | 773551 640 7372 781563 becfb busybox-1.10.0 | ||
122 | </pre> | ||
123 | <p>Top 10 stack users:<pre> | ||
124 | busybox-1.9.2: busybox-1.10.0: | ||
125 | echo_dg 4116 bb_full_fd_action 4112 | ||
126 | bb_full_fd_action 4112 find_list_entry2 4096 | ||
127 | discard_dg 4108 readlink_main 4096 | ||
128 | discard_dg 4096 ipaddr_list_or_flush 3900 | ||
129 | echo_stream 4096 iproute_list_or_flush 3680 | ||
130 | discard_stream 4096 insmod_main 3152 | ||
131 | find_list_entry2 4096 fallbackSort 2952 | ||
132 | readlink_main 4096 do_iproute 2492 | ||
133 | ipaddr_list_or_flush 3900 cal_main 2464 | ||
134 | iproute_list_or_flush 3680 readhere 2308 | ||
135 | </pre> | ||
136 | |||
137 | <p>New applets: brctl, chat (by Vladimir Dronnikov <dronnikov AT gmail.com>), | ||
138 | findfs, ifenslave (closes bug 115), lpd (by Vladimir Dronnikov <dronnikov AT gmail.com>), | ||
139 | lpr+lpq (by Walter Harms), script (by Pascal Bellard <pascal.bellard AT ads-lu.com>), | ||
140 | sendmail (Vladimir Dronnikov <dronnikov AT gmail.com>), tac, tftpd. | ||
141 | </p> | ||
142 | <p>Made NOMMU-compatible: crond, crontab, ifupdown, inetd, init, runsv, svlogd, tcpsvd, udpsvd. | ||
143 | </p> | ||
144 | <p>Changes since previous release: | ||
145 | </p> | ||
146 | <ul> | ||
147 | <li>globally: add -Wunused-parameter</li> | ||
148 | <li>globally: add optimization barrier to all "G trick" locations</li> | ||
149 | <li>adduser/addgroup: check username for invalid chars (by Tito <farmatito AT tiscali.it>)</li> | ||
150 | <li>adduser: optional support for long options. Closes bug 2134</li> | ||
151 | <li>ash: handle "A=1 A=2 B=$A; echo $B". Closes bug 947</li> | ||
152 | <li>ash: make ash -c "if set -o barfoo 2>/dev/null; then echo foo; else echo bar; fi" work. Closes bug 1142</li> | ||
153 | <li>build system: don't use "gcc -o /dev/null", old gcc can delete /dev/null in this case</li> | ||
154 | <li>build system: fixes for cross-compiling on an OS X host</li> | ||
155 | <li>build system: make it do without "od -t"</li> | ||
156 | <li>build system: pass CFLAGS to link stage too. Closes bug 1376</li> | ||
157 | <li>build system: add CONFIG_NOMMU</li> | ||
158 | <li>cp: add ENABLE_FEATURE_VERBOSE_CP_MESSAGE. Closes bug 1470</li> | ||
159 | <li>crontab: almost complete rewrite</li> | ||
160 | <li>dnsd: properly set _src_ IP:port on outgoing UDP packets</li> | ||
161 | <li>dpkg: fix bug where existence check was reversed</li> | ||
162 | <li>eject: add -s for SCSI- and USB-devices (Nico Erfurth)</li> | ||
163 | <li>fdisk: fix a case where break was reached only for DOS labels</li> | ||
164 | <li>fsck: don't kill pid -1! (Roy Marples <roy at marples.name>)</li> | ||
165 | <li>fsck_minix: fix bug in map_block2: s/(blknr >= 256 * 256)/(blknr < 256 * 256)/</li> | ||
166 | <li>fuser: substantial rewrite</li> | ||
167 | <li>getopt: add support for "a+" specifier for nonnegative int parameters. By Vladimir Dronnikov <dronnikov at gmail.com></li> | ||
168 | <li>getty: don't try to detect parity on local lines (Joakim Tjernlund <Joakim.Tjernlund at transmode.se>)</li> | ||
169 | <li>halt: write wtmp entry if wtmp support is enabled</li> | ||
170 | <li>httpd: "HEAD" support. Closes bug 1530</li> | ||
171 | <li>httpd: fix bug 2004: wrong argv when interpreter is invoked</li> | ||
172 | <li>httpd: fix bug where we did chdir("") if CGI path had only one "/"</li> | ||
173 | <li>httpd: fix for POST upload</li> | ||
174 | <li>httpd: support for "I:index.xml" syntax (Peter Korsgaard <jacmet AT uclibc.org>)</li> | ||
175 | <li>hush: fix a case where none of pipe members could be started because of fork failure</li> | ||
176 | <li>hush: more correct handling of piping</li> | ||
177 | <li>hush: reinstate `cmd` handling for NOMMU</li> | ||
178 | <li>hush: report [v]fork failures</li> | ||
179 | <li>hush: set CLOEXEC on script file being executed</li> | ||
180 | <li>hush: try to add a bit more of vfork-friendliness</li> | ||
181 | <li>inetd: make "udp nowait" work</li> | ||
182 | <li>inetd: make inetd IPv6-capable</li> | ||
183 | <li>init: add FEATURE_KILL_REMOVED (Eugene Bordenkircher <eugebo AT gmail.com>)</li> | ||
184 | <li>init: allow last line of config file to be not terminated by "\n"</li> | ||
185 | <li>init: do not die if "/dev/null" is missing</li> | ||
186 | <li>init: fix bug 1111: restart actions were not splitting words</li> | ||
187 | <li>init: wait for orphaned children too while waiting for sysinit-like processes (harald-tuxbox AT arcor.de)</li> | ||
188 | <li>ip route: "ip route" was misbehaving (extra argv+1 ate 1st env var)</li> | ||
189 | <li>last: do not go into endless loop on read error</li> | ||
190 | <li>less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)</li> | ||
191 | <li>less: "examine" command will not bomb out on bad file name now</li> | ||
192 | <li>less: fix bug where backspace wasn't actually deleting chars</li> | ||
193 | <li>less: make it a bit more resistant against status line corruption</li> | ||
194 | <li>less: improve search when data is not supplied fast enough by stdin - now will try reading for 1-2 seconds before declaring that there is no match. This fixes a very common annoyance with long manpages</li> | ||
195 | <li>less: update line input so that it doesn't interfere with screen update. Makes "man bash", [enter], [/], <enter search pattern>, [enter] more usable - manpage now draws even as you enter the pattern!</li> | ||
196 | <li>libbb: filename completion matches dangling symlinks too</li> | ||
197 | <li>libbb: fix getopt state corruption for NOFORK applets</li> | ||
198 | <li>libbb: full_read/write now will report partial data counts prior to error</li> | ||
199 | <li>libbb: intrduce and use safe_gethostname. By Tito <farmatito AT tiscali.it></li> | ||
200 | <li>libbb: introduce and use nonblock_safe_read(). Yay! Our shells are immune from this nasty O_NONBLOCK now!</li> | ||
201 | <li>login,su: avoid clearing environment with some options, as was intended</li> | ||
202 | <li>microcom: read more than 1 byte from device, if possible</li> | ||
203 | <li>microcom: split -d (delay) option away from -t</li> | ||
204 | <li>mktemp: support -p DIR (Timo Teras <timo.teras at iki.fi>)</li> | ||
205 | <li>mount: #ifdef out MOUNT_LABEL code parts if it is not selected</li> | ||
206 | <li>mount: add another mount helper call method</li> | ||
207 | <li>mount: allow and ignore _netdev option</li> | ||
208 | <li>mount: make -f work even without mtab support (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>)</li> | ||
209 | <li>mount: optional support for -vv verbosity</li> | ||
210 | <li>mount: plug a hole where FEATURE_MOUNT_HELPERS could allow execution of arbitrary command</li> | ||
211 | <li>mount: recognize "dirsync" (closes bug 835)</li> | ||
212 | <li>mount: sanitize environment if called by non-root</li> | ||
213 | <li>mount: support for mount by label. Closes bug 1143</li> | ||
214 | <li>mount: with -vv -f, say what mount() calls we were going to make</li> | ||
215 | <li>msh: create testsuite (based on hush one)</li> | ||
216 | <li>msh: don't use floating point in "times" builtin</li> | ||
217 | <li>msh: fix Ctrl-C handling with line editing</li> | ||
218 | <li>msh: fix for bug 846 ("break" didn't work second time)</li> | ||
219 | <li>msh: glob0/glob1/glob2/glob3 were just a sorting routine, removed</li> | ||
220 | <li>msh: instead of fixing "ls | cd", "cd | ls" etc disallow builtins in pipes. They make no sense there anyway</li> | ||
221 | <li>msh: stop trying to parse variables in "msh SCRIPT VAR=val param". They are passed as ordinary parameters</li> | ||
222 | <li>netstat: print control chars as "^C" etc</li> | ||
223 | <li>nmeter: fix bug where %[mf] behaves as %[mt]</li> | ||
224 | <li>nohup: compat patch by Christoph Gysin <mailinglist.cache at gmail.com></li> | ||
225 | <li>od: handle /proc files (which have filesize 0) correctly</li> | ||
226 | <li>patch: don't trash permissions of patched file</li> | ||
227 | <li>ps: add conditional support for -o [e]time</li> | ||
228 | <li>ps: fix COMMAND column adjustment; overflow in USER and VSZ columns</li> | ||
229 | <li>reset: call "stty sane". Closes bug 1414</li> | ||
230 | <li>rmdir: optional long options support for Debian users. By Roberto Gordo Saez <roberto.gordo AT gmail.com></li> | ||
231 | <li>run-parts: add --reverse</li> | ||
232 | <li>script: correctly handle buffered "tail" of output</li> | ||
233 | <li>sed: "n" command must reset "we had successful subst" flag. Closes bug 1214</li> | ||
234 | <li>sort: -z outputs NUL terminated lines. Closes bug 1591</li> | ||
235 | <li>stty: fix mishandling of control keywords (Ralf Friedl <Ralf.Friedl AT online.de>)</li> | ||
236 | <li>switch_root: stop at first non-option. Closes bug 1425</li> | ||
237 | <li>syslogd: avoid excessive time() system calls</li> | ||
238 | <li>syslogd: don't die if remote host's IP cannot be resolved. Retry resolutions every two minutes instead</li> | ||
239 | <li>syslogd: fix shmat error check</li> | ||
240 | <li>syslogd: optional support for dropping dups. Closes bug 436</li> | ||
241 | <li>syslogd: send "\n"-terminated messages over the network. Fully closes bug 1574</li> | ||
242 | <li>syslogd: tighten up hostname handling</li> | ||
243 | <li>tail: fix "tail -c 20 /dev/huge_disk" (was taking ages)</li> | ||
244 | <li>tar: compat: handle tarballs with only one zero block at the end</li> | ||
245 | <li>tar: autodetection of gz/bz2 compressed tarballs. Closes bug 992</li> | ||
246 | <li>tar: real support for -p. By Natanael Copa <natanael.copa at gmail.com></li> | ||
247 | <li>tcpudp: narrow down time window where we have no wildcard socket</li> | ||
248 | <li>telnetd: use login always, not "sometimes login, sometimes shell"</li> | ||
249 | <li>test: fix mishandling of "test ! arg1 op arg2 more args"</li> | ||
250 | <li>trylink: instead of build error, disable --gc-sections if GLIBC and STATIC are selected</li> | ||
251 | <li>udhcp: make file paths configurable</li> | ||
252 | <li>udhcp: optional support for non-standard DHCP ports</li> | ||
253 | <li>udhcp: set correct op byte in the packet for DHCPDECLINE</li> | ||
254 | <li>udhcpc: filter unwanted packets in kernel (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn AT axis.com>)</li> | ||
255 | <li>udhcpc: fix wrong options in decline and release packets (Jonas Danielsson <jonas.danielsson AT axis.com>)</li> | ||
256 | <li>umount: do not complain several times about the same mountpoint</li> | ||
257 | <li>umount: do not try to free loop device or erase mtab if remounted ro</li> | ||
258 | <li>umount: instead of non-standard -D, use -d with opposite meaning. Closes bug 1604</li> | ||
259 | <li>unlzma: shrink by Pascal Bellard <pascal.bellard AT ads-lu.com></li> | ||
260 | <li>unzip: do not try to read entire compressed stream at once (it can be huge)</li> | ||
261 | <li>unzip: handle short reads correctly</li> | ||
262 | <li>vi: many fixes</li> | ||
263 | <li>zcip: don't chdir to root</li> | ||
264 | <li>zcip: open ARP socket before openlog (else we can trash syslog socket)</li> | ||
265 | </ul> | ||
266 | </li> | ||
267 | |||
268 | <li><b>21 March 2008 -- BusyBox old stable releases</b> | ||
269 | <p> | ||
270 | Bugfix-only releases for four past branches. Links to locations | ||
271 | for future hot patches are in parentheses. | ||
272 | <p> | ||
273 | <a href="http://busybox.net/downloads/busybox-1.9.2.tar.bz2">1.9.2</a> | ||
274 | (<a href="http://busybox.net/downloads/fixes-1.9.2/">patches</a>), | ||
275 | <a href="http://busybox.net/downloads/busybox-1.8.3.tar.bz2">1.8.3</a> | ||
276 | (<a href="http://busybox.net/downloads/fixes-1.8.3/">patches</a>), | ||
277 | <a href="http://busybox.net/downloads/busybox-1.7.5.tar.bz2">1.7.5</a> | ||
278 | (<a href="http://busybox.net/downloads/fixes-1.7.5/">patches</a>), | ||
279 | <a href="http://busybox.net/downloads/busybox-1.5.2.tar.bz2">1.5.2</a> | ||
280 | (<a href="http://busybox.net/downloads/fixes-1.5.2/">patches</a>). | ||
281 | <p> | ||
282 | <a href="http://busybox.net/fix.html">How to add a patch.</a> | ||
283 | </p> | ||
284 | |||
285 | |||
286 | <li><b>12 February 2008 -- BusyBox 1.9.1 (stable)</b> | ||
287 | <p><a href="http://busybox.net/downloads/busybox-1.9.1.tar.bz2">BusyBox 1.9.1</a>. | ||
288 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_9_stable/">svn</a>, | ||
289 | <a href="http://busybox.net/downloads/fixes-1.9.1/">patches</a>, | ||
290 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
291 | |||
292 | <p>This is a bugfix-only release, with fixes to fsck, | ||
293 | iproute, mdev, mkswap, msh, nameif, stty, test, zcip.</p> | ||
294 | <p>hush has `command` expansion re-enabled for NOMMU, although it is | ||
295 | inherently unsafe (by virtue of NOMMU's use of vfork instead of fork). | ||
296 | The plan is to make this less likely to bite people in future versions.</p> | ||
297 | </li> | ||
298 | |||
299 | <li><b>24 December 2007 -- BusyBox 1.9.0 (unstable)</b> | ||
300 | <p><a href="http://busybox.net/downloads/busybox-1.9.0.tar.bz2">BusyBox 1.9.0</a>. | ||
301 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_9_stable/">svn</a>, | ||
302 | <a href="http://busybox.net/downloads/fixes-1.9.0/">patches</a>, | ||
303 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
304 | |||
305 | <p>Sizes of busybox-1.8.2 and busybox-1.9.0 (with almost full config, static uclibc build):<pre> | ||
306 | text data bss dec hex filename | ||
307 | 792796 978 9724 803498 c42aa busybox-1.8.2 | ||
308 | 783803 683 7508 791994 c15ba busybox-1.9.0 | ||
309 | </pre> | ||
310 | <p>Top 10 stack users:<pre> | ||
311 | busybox-1.8.2: busybox-1.9.0: | ||
312 | input_tab 10428 echo_dg 4116 | ||
313 | umount_main 8252 bb_full_fd_action 4112 | ||
314 | rtnl_talk 8240 discard_dg 4096 | ||
315 | xrtnl_dump_filter 8240 echo_stream 4096 | ||
316 | sendMTFValues 5316 discard_stream 4096 | ||
317 | mainSort 4700 find_list_entry2 4096 | ||
318 | mkfs_minix_main 4288 readlink_main 4096 | ||
319 | grave 4260 ipaddr_list_or_flush 3900 | ||
320 | unix_do_one 4156 iproute_list_or_flush 3680 | ||
321 | parse_prompt 4132 insmod_main 3152 | ||
322 | </pre> | ||
323 | |||
324 | <p>lash is deleted from this release. hush can be configured down to almost | ||
325 | the same size, but it is significantly less buggy. It even works | ||
326 | on NOMMU machines (interactive mode and backticks are not working on NOMMU, | ||
327 | though). "lash" applet is still available, but it runs hush. | ||
328 | |||
329 | <p>init has some changes in this release, please report if it causes | ||
330 | problems for you. | ||
331 | |||
332 | <p>Changes since previous release: | ||
333 | <ul> | ||
334 | <li>Build system improvements | ||
335 | <li>Testsuite additions | ||
336 | <li>Stack size reductions, code size reductions, data/bss reductions | ||
337 | <li>An option to prefer IPv4 address if host has both | ||
338 | <li>New applets: hd, sestatus | ||
339 | <li>Removed applets: lash | ||
340 | <li>hush: fixed a few bugs, wired up echo and test to be builtins | ||
341 | <li>init: simplify forking of children | ||
342 | <li>getty: special handling of '#' and '@' is removed | ||
343 | <li>[su]login: sanitize environment if called by non-root | ||
344 | <li>udhcpc: support "bad" servers which send oversized packets | ||
345 | (Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>) | ||
346 | <li>udhcpc: -O option allows to specify which options to ask for | ||
347 | (Stefan Hellermann <stefan at the2masters.de>) | ||
348 | <li>udhcpc: optionally check whether given IP is really free (by ARP ping) | ||
349 | (Jonas Danielsson <jonas.danielsson at axis.com>) | ||
350 | <li>vi: now handles files with unlimited line length | ||
351 | <li>vi: speedup for huge line lengths | ||
352 | <li>vi: Del key works | ||
353 | <li>sed: support GNUism '\t' | ||
354 | <li>cp/mv/install: optionally use bigger buffer for bulk copying | ||
355 | <li>line editing: don't eat stack like crazy | ||
356 | <li>passwd: follows symlinked /etc/passwd | ||
357 | <li>renice: accepts priority with +N too | ||
358 | <li>netstat: wide output mode | ||
359 | <li>nameif: extended matching (Nico Erfurth <masta at perlgolf.de>) | ||
360 | <li>test: become NOFORK applet | ||
361 | <li>find: -iname (Alexander Griesser <alexander.griesser at lkh-vil.or.at>) | ||
362 | <li>df: -i option (show inode info) (Pascal Bellard <pascal.bellard at ads-lu.com>) | ||
363 | <li>hexdump: -R option (Pascal Bellard <pascal.bellard at ads-lu.com>) | ||
364 | </ul> | ||
365 | </li> | ||
366 | |||
367 | <li><b>23 November 2007 -- BusyBox 1.8.2 (stable), BusyBox 1.7.4 (stable)</b> | ||
368 | <p><a href="http://busybox.net/downloads/busybox-1.8.2.tar.bz2">BusyBox 1.8.2</a>. | ||
369 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_8_stable/">svn</a>, | ||
370 | <a href="http://busybox.net/downloads/fixes-1.8.2/">patches</a>, | ||
371 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
372 | <p><a href="http://busybox.net/downloads/busybox-1.7.4.tar.bz2">BusyBox 1.7.4</a>. | ||
373 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_7_stable/">svn</a>, | ||
374 | <a href="http://busybox.net/downloads/fixes-1.7.4/">patches</a>, | ||
375 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
376 | |||
377 | <p>These are bugfix-only releases. | ||
378 | 1.8.2 contains fixes for inetd, lash, tar, tr, and build system. | ||
379 | 1.7.4 contains a fix for inetd.</p> | ||
380 | </li> | ||
381 | |||
382 | <li><b>9 November 2007 -- BusyBox 1.8.1 (stable)</b> | ||
383 | <p><a href="http://busybox.net/downloads/busybox-1.8.1.tar.bz2">BusyBox 1.8.1</a>. | ||
384 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_8_stable/">svn</a>, | ||
385 | <a href="http://busybox.net/downloads/fixes-1.8.1/">patches</a>, | ||
386 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
387 | |||
388 | <p>This is a bugfix-only release, with fixes to login (PAM), modprobe, syslogd, telnetd, unzip.</p> | ||
389 | </li> | ||
390 | |||
391 | <li><b>4 November 2007 -- BusyBox 1.8.0 (unstable)</b> | ||
392 | <p><a href="http://busybox.net/downloads/busybox-1.8.0.tar.bz2">BusyBox 1.8.0</a>. | ||
393 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_8_stable/">svn</a>, | ||
394 | <a href="http://busybox.net/downloads/fixes-1.8.0/">patches</a>, | ||
395 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
396 | |||
397 | <p>Note: this is probably the very last release with lash. It will be dropped. Please migrate to hush. | ||
398 | |||
399 | <p>Applets which had many changes since 1.7.x: | ||
400 | <p>httpd: | ||
401 | <ul> | ||
402 | <li>does not clear environment, CGIs will see all environment variables which were set for httpd | ||
403 | <li>fix bug where we were trying to read more POSTDATA than content-length | ||
404 | <li>fix trivial bug (spotted by Alex Landau) | ||
405 | <li>optional support for partial downloads | ||
406 | <li>simplified CGI i/o loop (now it looks good to me) | ||
407 | <li>small auth and IPv6 fixes (Kim B. Heino <Kim.Heino at bluegiga.com>) | ||
408 | <li>support for proxying connection to other http server (by Alex Landau <landau_alex at yahoo.com>) | ||
409 | </ul> | ||
410 | |||
411 | <p>top: | ||
412 | <ul> | ||
413 | <li>TOPMEM feature - 's(how sizes)' command | ||
414 | <li>don't wait before final bailout (try top -b -n1) | ||
415 | <li>fix for command line wrapping | ||
416 | </ul> | ||
417 | |||
418 | <p>Build system improvements: libbusybox mode restored (it was lost in transition to new makefiles). | ||
419 | |||
420 | <p>Code and data size in comparison with 1.7.3:<pre> | ||
421 | Equivalent .config, i386 uclibc static builds: | ||
422 | text data bss dec hex filename | ||
423 | 768123 1055 10768 779946 be6aa busybox-1.7.3/busybox | ||
424 | 759693 974 9420 770087 bc027 busybox-1.8.0/busybox</pre> | ||
425 | |||
426 | <p>New applets: | ||
427 | <ul> | ||
428 | <li>microcom: new applet by Vladimir Dronnikov <dronnikov at gmail.ru> | ||
429 | <li>kbd_mode: new applet by Loic Grenie <loic.grenie at gmail.com> | ||
430 | <li>bzip2: port bzip2 1.0.4 to busybox, 9 kb of code | ||
431 | <li>pgrep, pkill: new applets by Loic Grenie <loic.grenie at gmail.com> | ||
432 | <li>setsebool: new applet (Yuichi Nakamura <ynakam at hitachisoft.jp>) | ||
433 | </ul> | ||
434 | |||
435 | <p>Other changes since previous release (abridged): | ||
436 | <ul> | ||
437 | <li>cp: -r and -R imply -d (coreutils compat) | ||
438 | <li>cp: detect and prevent infinite recursion | ||
439 | <li>cp: make it a bit closer to POSIX, but still refuse to open and overwrite symbolic link | ||
440 | <li>hdparm: reduce possibility of numeric overflow in -T | ||
441 | <li>hdparm: simplify timing measurement | ||
442 | <li>wget: -O FILE is allowed to overwrite existing file (compat) | ||
443 | <li>wget: allow dots in header field names | ||
444 | <li>telnetd: add -K option to close sessions as soon as child exits | ||
445 | <li>telnetd: don't SIGKILL child when closing the session, kernel will send SIGHUP for us | ||
446 | <li>ed: large cleanup, add line editing | ||
447 | <li>hush: feeble attempt at making it more NOMMU-friendly | ||
448 | <li>hush: fix glob() | ||
449 | <li>hush: stop doing manual accounting of open fd's, kernel can do it for us | ||
450 | <li>adduser: implement -S and fix uid selection | ||
451 | <li>ash: fix prompt expansion (Natanael Copa <natanael.copa at gmail.com>) | ||
452 | <li>ash: revert "cat | jobs" fix, it causes more problems than good | ||
453 | <li>find: fix -xdev behavior in the presence of two or more nested mount points | ||
454 | <li>grep: fix grep -F -e str1 -e str2 (was matching str2 only) | ||
455 | <li>grep: optimization: stop on first -e match | ||
456 | <li>gunzip: support concatenated gz files | ||
457 | <li>inetd: fix bug 1562 "inetd does not set argv[0] properly" (fix by Ilya Panfilov) | ||
458 | <li>install: 'support' (by ignoring) -v and -b | ||
459 | <li>install: fix bug in "install -c file dir" (tried to copy dir into dir too) | ||
460 | <li>ip: tunnel parameter parsing fix by Jean Wolter <jw5 at os.inf.tu-dresden.de> | ||
461 | <li>isrv: use monotonic_sec | ||
462 | <li>less: make 'f' key page forward | ||
463 | <li>libiproute: add missing break statements | ||
464 | <li>load_policy: update (Yuichi Nakamura <ynakam at hitachisoft.jp>) | ||
465 | <li>logger: fix a problem of losing all argv except first | ||
466 | <li>login: do reject wrong passwords with PAM auth | ||
467 | <li>losetup: support -f (Loic Grenie <loic.grenie at gmail.com>) | ||
468 | <li>fdisk: make fdisk compile on libc without llseek64 | ||
469 | <li>libbb: by popular request allow PATH to be customized at build time | ||
470 | <li>mkswap: selinux support by KaiGai Kohei <kaigai at ak.jp.nec.com> | ||
471 | <li>mount: allow (and ignore) -i | ||
472 | <li>mount: ignore NFS bg option on NOMMU machines | ||
473 | <li>mount: mount helpers support (by Vladimir Dronnikov <dronnikov at gmail.ru>) | ||
474 | <li>passwd: handle Ctrl-C, restore termios on Ctrl-C | ||
475 | <li>passwd: SELinux support by KaiGai Kohei <kaigai at ak.jp.nec.com> | ||
476 | <li>ping: make -I ethN work too (-I addr already worked) | ||
477 | <li>ps: fix RSS parsing (rss field in /proc/PID/stat is in pages, not bytes) | ||
478 | <li>read_line_input: fix it to not do any fancy editing if echoing is disabled | ||
479 | <li>run_parts: make it sort executables by name (required by API) | ||
480 | <li>runsv: do not use clock_gettime if !MONOTONIC_CLOCK | ||
481 | <li>runsvdir: fix "linear wait time" bug | ||
482 | <li>sulogin: remove alarm handling, it is redundant there | ||
483 | <li>svlogd: compat: svlogd -tt should timestamp stderr too | ||
484 | <li>syslogd: bail out if you see null read from Unix socket | ||
485 | <li>syslogd: do not need to poll(), we can just block in read() | ||
486 | <li>tail: work correctly on /proc files (Kazuo TAKADA <kztakada at sm.sony.co.jp>) | ||
487 | <li>tar + gzip/bzip2/etc: support NOMMU machines (by Alex Landau <landau_alex at yahoo.com>) | ||
488 | <li>tar: strip leading '/' BEFORE memorizing hardlink's name | ||
489 | <li>tftp: fix infinite retry bug | ||
490 | <li>umount: support (by ignoring) -i; style fixes | ||
491 | <li>unzip: fix endianness bugs | ||
492 | <li>vi: don't wait 50 ms before reading ESC sequences | ||
493 | <li>watchdog: allow millisecond spec (-t 250ms) | ||
494 | <li>zcip: fix unaligned trap on ARM | ||
495 | </ul> | ||
496 | </li> | ||
497 | |||
498 | <li><b>4 November 2007 -- BusyBox 1.7.3 (stable)</b> | ||
499 | <p><a href="http://busybox.net/downloads/busybox-1.7.3.tar.bz2">BusyBox 1.7.3</a>. | ||
500 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_7_stable/">svn</a>, | ||
501 | <a href="http://busybox.net/downloads/fixes-1.7.3/">patches</a>, | ||
502 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
503 | |||
504 | <p>This is a bugfix-only release, with fixes to ash, httpd, inetd, iptun, logger, login, tail.</p> | ||
505 | </li> | ||
506 | |||
507 | <li><b>30 September 2007 -- BusyBox 1.7.2 (stable)</b> | ||
508 | <p><a href="http://busybox.net/downloads/busybox-1.7.2.tar.bz2">BusyBox 1.7.2</a>. | ||
509 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_7_stable/">svn</a>, | ||
510 | <a href="http://busybox.net/downloads/fixes-1.7.2/">patches</a>, | ||
511 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
512 | |||
513 | <p>This is a bugfix-only release, with fixes to install, find, login, httpd, runsvdir, chcon, setfiles, fdisk and line editing.</p> | ||
514 | </li> | ||
515 | |||
516 | <li><b>16 September 2007 -- BusyBox 1.7.1 (stable)</b> | ||
517 | <p><a href="http://busybox.net/downloads/busybox-1.7.1.tar.bz2">BusyBox 1.7.1</a>. | ||
518 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_7_stable/">svn</a>, | ||
519 | <a href="http://busybox.net/downloads/fixes-1.7.1/">patches</a>, | ||
520 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
521 | |||
522 | <p>This is a bugfix-only release, with fixes to cp, runsv, tar, busybox --install and build system.</p> | ||
523 | </li> | ||
524 | |||
525 | <li><b>24 August 2007 -- BusyBox 1.7.0 (unstable)</b> | ||
526 | <p><a href="http://busybox.net/downloads/busybox-1.7.0.tar.bz2">BusyBox 1.7.0</a>. | ||
527 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_7_stable/">svn</a>, | ||
528 | <a href="http://busybox.net/downloads/fixes-1.7.0/">patches</a>, | ||
529 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
530 | |||
531 | <p>Applets which had many changes since 1.6.x: | ||
532 | <p>httpd: | ||
533 | <ul> | ||
534 | <li>works in standalone mode on NOMMU machines now (partly by Alex Landau <landau_alex at yahoo.com>) | ||
535 | <li>indexer example is rewritten in C | ||
536 | <li>optional support for error pages (by Pierre Metras <genepi at sympatico.ca>) | ||
537 | <li>stop reading headers using 1-byte reads | ||
538 | <li>new option -v[v]: prints client addresses, HTTP codes returned, URLs | ||
539 | <li>extended -p PORT to -p [IP[v6]:]PORT | ||
540 | <li>sendfile support (by Pierre Metras <genepi at sympatico.ca>) | ||
541 | <li>add support for Status: CGI header | ||
542 | <li>fix CGI handling bug (we were closing wrong fd) | ||
543 | <li>CGI I/O loop still doesn't look 100% ok to me... | ||
544 | </ul> | ||
545 | |||
546 | <p>udhcp[cd]: | ||
547 | <ul> | ||
548 | <li>add -f "foreground" and -S "syslog" options | ||
549 | <li>fixed "ifupdown + udhcpc_without_pidfile_creation" bug | ||
550 | <li>new config option "Rewrite the lease file at every new acknowledge" (Mats Erik Andersson <mats at blue2net.com> (Blue2Net AB)) | ||
551 | <li>consistently treat server_config.start/end IPs as host-order | ||
552 | <li>fix IP parsing for 64bit machines | ||
553 | <li>fix unsafe hton macro usage in read_opt() | ||
554 | <li>do not chdir to / when daemonizing | ||
555 | </ul> | ||
556 | |||
557 | <p>top, ps, killall, pidof: | ||
558 | <ul> | ||
559 | <li>simpler loadavg processing | ||
560 | <li>truncate usernames to 8 chars | ||
561 | <li>fix non-CONFIG_DESKTOP ps -ww (by rockeychu) | ||
562 | <li>improve /proc/PID/cmdinfo reading code | ||
563 | <li>use cmdline, not comm field (fixes problems with re-execed applets showing as processes with name "exe", and not being found by pidof/killall by applet name) | ||
564 | <li>reduce CPU usage in decimal conversion (optional) (corresponding speedup on kernel side is accepted in mainline Linux kernel, yay!) | ||
565 | <li>make percentile (0.1%) calculations configurable | ||
566 | <li>add config option and code for global CPU% display | ||
567 | <li>reorder columns, so that [P]PIDs are together and VSZ/%MEM are together - makes more sense | ||
568 | </ul> | ||
569 | |||
570 | <p>Build system improvements: doesn't link against libraries we don't need, | ||
571 | generates verbose link output and map file, allows for custom link | ||
572 | scripts (useful for removing extra padding, among other things). | ||
573 | |||
574 | <p>Code and data size in comparison with 1.6.1:<pre> | ||
575 | Equivalent .config, i386 glibc dynamic builds: | ||
576 | text data bss dec hex filename | ||
577 | 672671 2768 16808 692247 a9017 busybox-1.6.1/busybox | ||
578 | 662948 2660 13528 679136 a5ce0 busybox-1.7.0/busybox | ||
579 | 662783 2631 13416 678830 a5bae busybox-1.7.0/busybox.customld | ||
580 | |||
581 | Same .config built against static uclibc: | ||
582 | 765021 1059 11020 777100 bdb8c busybox-1.7.0/busybox_uc</pre> | ||
583 | |||
584 | <p>Code/data shrink done in applets: crond, hdparm, dd, cal, od, nc, expr, uuencode, | ||
585 | test, slattach, diff, ping, tr, syslogd, hwclock, zcip, find, pidof, ash, uudecode, | ||
586 | runit/*, in libbb. | ||
587 | |||
588 | <p>New applets: | ||
589 | <ul> | ||
590 | <li>pscan, expand, unexpand (from Tito <farmatito at tiscali.it>) | ||
591 | <li>setfiles, restorecon (by Yuichi Nakamura <ynakam at hitachisoft.jp>) | ||
592 | <li>chpasswd (by Alexander Shishkin <virtuoso at slind.org>) | ||
593 | <li>slattach, ttysize | ||
594 | </ul> | ||
595 | |||
596 | <p>Unfortunately, not much work is done on shells. This was mostly stalled | ||
597 | by lack of time (read: laziness) on my part to learn how to adapt existing | ||
598 | qemu-runnable image for a NOMMU architechture (available on qemu website) | ||
599 | for local testing of cross-compiled busybox on my machine. | ||
600 | |||
601 | <p>Other changes since previous release (abridged): | ||
602 | <ul> | ||
603 | <li>addgroup: disallow addgroup -g num user group; make -g 0 work (Tito <farmatito at tiscali.it>) | ||
604 | <li>adduser: close /etc/{passwd,shadow} before calling passwd etc. Spotted by Natanael Copa <natanael.copa at gmail.com> | ||
605 | <li>arping: -i should be -I, fixed | ||
606 | <li>ash: make "jobs | cat" work like in bash (was giving empty output) | ||
607 | <li>ash: recognize -l as --login equivalent; do not recognize +-login | ||
608 | <li>ash: fix buglet in DEBUG code (Nguyen Thai Ngoc Duy <pclouds at gmail.com>) | ||
609 | <li>ash: fix SEGV if type has zero parameters | ||
610 | <li>awk: fix -F 'regex' bug (miscounted fields if last field is empty) | ||
611 | <li>catv: catv without arguments was trying to use environ as argv (Alex Landau <landau_alex at yahoo.com>) | ||
612 | <li>catv: don't die on open error (emit warning) | ||
613 | <li>chown/chgrp: completely match coreutils 6.8 wrt symlink handling | ||
614 | <li>correct_password: do not print "no shadow passwd..." message | ||
615 | <li>crond: don't start sendmail with absolute path, don't report obsolete version (report true bbox version) | ||
616 | <li>dd: fix bug where we assume count=INT_MAX when count is unspecified | ||
617 | <li>devfsd: sanitization by Tito <farmatito at tiscali.it> | ||
618 | <li>echo: fix non-fancy echo | ||
619 | <li>fdisk: make it work with big disks (read: typical today's disks) even if CONFIG_LFS is unset | ||
620 | <li>find: -context support for SELinux (KaiGai Kohei <kaigai at kaigai.gr.jp>) | ||
621 | <li>find: add conditional support for -maxdepth and -regex, make -size match GNU find | ||
622 | <li>find: fix build failure on certain configs (found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>) | ||
623 | <li>fsck_minix: make it print bb version, not it's own (outdated/irrelevant) one | ||
624 | <li>grep: implement -m MAX_MATCHES, fix buglets with context printing | ||
625 | <li>grep: fix selection done by FEATURE_GREP_EGREP_ALIAS (Maxime Bizon <mbizon at freebox.fr> (Freebox)) | ||
626 | <li>hush: add missing dependencies (Maxime Bizon <mbizon at freebox.fr> (Freebox)) | ||
627 | <li>hush: fix read builtin to not read ahead past EOL and to not use insane amounts of stack | ||
628 | <li>ifconfig: make it work with ifaces with interface no. > 255 | ||
629 | <li>ifup/ifdown: make location of ifstate configurable | ||
630 | <li>ifupdown: make netmask parsing smaller and more strict (was accepting 255.0.255.0, 255.1234.0.0 etc...) | ||
631 | <li>install: fix -s (strip) option, fix install a b /a/link/to/dir | ||
632 | <li>libbb: consolidate ARRAY_SIZE macro (Walter Harms <wharms at bfs.de>) | ||
633 | <li>libbb: make /etc/network parsing configurable. -200 bytes when off | ||
634 | <li>libbb: nuke BB_GETOPT_ERROR, always die if there are mutually exclusive options | ||
635 | <li>libbb: xioctl and friends by Tito <farmatito at tiscali.it> | ||
636 | <li>login: optional support for PAM | ||
637 | <li>login: make /etc/nologin support configurable (-240 bytes) | ||
638 | <li>login: ask passwords even for wrong usernames | ||
639 | <li>md5_sha1_sum: fix mishandling when run as /bin/md5sum | ||
640 | <li>mdev: add support for firmware loading | ||
641 | <li>mdev: work even when CONFIG_SYSFS_DEPRECATED in kernel is off | ||
642 | <li>modprobe: add scanning of /lib/modules/`uname -r`/modules.symbols (by Yann E. MORIN <yann.morin.1998 at anciens.enib.fr>) | ||
643 | <li>more: fixes by Tristan Schmelcher <tpkschme at engmail.uwaterloo.ca> | ||
644 | <li>nc: make connecting to IPv4 from IPv6-enabled hosts easier (was requiring -s local_addr) | ||
645 | <li>passwd: fix bug "updating shadow even if user's record is in passwd" | ||
646 | <li>patch: fix -p -1 handling | ||
647 | <li>patch: fix bad line ending handling (Nguyen Thai Ngoc Duy <pclouds at gmail.com>) | ||
648 | <li>ping: display roundtrip times with 1/1000th of ms, not 1/10 ms precision. | ||
649 | <li>ping: fix incorrect handling of -I (Iouri Kharon <bc-info at styx.cabel.net>) | ||
650 | <li>ping: fix non-fancy ping6 | ||
651 | <li>printenv: fix "printenv VAR1 VAR2" bug (spotted by Kalyanatejaswi Balabhadrapatruni <kalyanatejaswi at yahoo.co.in>) | ||
652 | <li>ps: fix -Z (by Yuichi Nakamura <ynakam at hitachisoft.jp>) | ||
653 | <li>rpm: add optional support for bz2 data. +50 bytes of code | ||
654 | <li>rpm: fix bogus "package is not installed" case | ||
655 | <li>sed: fix 'q' command handling (by Nguyen Thai Ngoc Duy <pclouds at gmail.com>) | ||
656 | <li>start_stop_daemon: NOMMU fixes by Alex Landau <landau_alex at yahoo.com> | ||
657 | <li>stat: fix option -Z SEGV | ||
658 | <li>strings: strings a b was processing a twice, fix that | ||
659 | <li>svlogd: fix timestamping, do not warn if config is missing | ||
660 | <li>syslogd, logread: get rid of head pointer, fix logread bug in the process | ||
661 | <li>syslogd: do not convert tabs to ^I, set syslog IPC buffer to mode 0644 | ||
662 | <li>tar: improve OLDGNU compat, make old SUN compat configurable | ||
663 | <li>test: fix testing primary expressions like '"-u" = "-u"' | ||
664 | <li>uudecode: fix to base64 decode by Jorgen Cederlof <jcz at google.com> | ||
665 | <li>vi: multiple fixes by Natanael Copa <natanael.copa at gmail.com> | ||
666 | <li>wget: fix bug in base64 encoding (bug 1404). +10 bytes | ||
667 | <li>wget: lift 256 chars limitation on terminal width | ||
668 | <li>wget, zcip: use monotonic_sec instead of gettimeofday | ||
669 | </ul> | ||
670 | </li> | ||
671 | |||
672 | <li><b>30 June 2007 -- BusyBox 1.6.1 (stable)</b> | ||
673 | <p><a href="http://busybox.net/downloads/busybox-1.6.1.tar.bz2">BusyBox 1.6.1</a>. | ||
674 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_6_stable/">svn</a>, | ||
675 | <a href="http://busybox.net/downloads/fixes-1.6.1/">patches</a>, | ||
676 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
677 | |||
678 | <p>This is a bugfix-only release, with fixes to echo, hush, and wget.</p> | ||
679 | </li> | ||
680 | |||
681 | <li><b>1 June 2007 -- BusyBox 1.6.0 (unstable)</b> | ||
682 | <p><a href="http://busybox.net/downloads/busybox-1.6.0.tar.bz2">BusyBox 1.6.0</a>. | ||
683 | (<a href="http://sources.busybox.net/index.py/branches/busybox_1_6_stable/">svn</a>, | ||
684 | <a href="http://busybox.net/downloads/fixes-1.6.0/">patches</a>, | ||
685 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
686 | |||
687 | <p>Since this is a x.x.0 release, it probably does not deserve "stable" | ||
688 | label. Please help making 1.6.1 stable by testing 1.6.0.</p> | ||
689 | <p>Note that hush shell had many changes and (hopefully) is much improved now, | ||
690 | but there is a possibility that it regressed in some obscure cases. Please | ||
691 | report any such cases.</p> | ||
692 | <p>lash users please note: lash is going to be deprecated in busybox 1.7.0 | ||
693 | and removed in the more distant future. Please migrate to hush.</p> | ||
694 | <p><a href="http://busybox.net/~vda/mem_usage-1.6.0.txt">Memory usage has decreased, but we can do better still</a></p> | ||
695 | <p>Other changes since previous release: | ||
696 | <ul> | ||
697 | <li>NOFORK: audit small applets and mark some of them as NOFORK. Put big scary warnings in relevant places | ||
698 | <li>NOFORK: factor out NOFORK/NOEXEC code from find. Use NOFORK/NOEXEC in find and xargs | ||
699 | <li>NOFORK: remove potential xmalloc from NOFORK path in bb_full_fd_action | ||
700 | <li>NOMMU: random fixes; compressed --help now works for NOMMU | ||
701 | <li>SELinux: load_policy applet | ||
702 | <li>[u]mount: extend -t option (Roy Marples <uberlord at gentoo.org>) | ||
703 | <li>addgroup: clean up, fix adding users to existing groups and make it optional (Tito) | ||
704 | <li>adduser: don't bomb out if shadow password file doesn't exist (from Tito <farmatito at tiscali.it>) | ||
705 | <li>applet.c: do not even try to read config if run by real root; fix suid config handling | ||
706 | <li>ash: fix infinite loop on exit if tty is not there anymore | ||
707 | <li>ash: fix kill -l (by Mats Erik Andersson <mats.andersson64 at comhem.se>) | ||
708 | <li>ash: implement type -p, costs less than 10 bytes (patch by Mats Erik Andersson <mats.andersson64 at comhem.se>) | ||
709 | <li>awk: don't segfault on printf(%*s). Closes bug 1337 | ||
710 | <li>awk: guard against empty environment | ||
711 | <li>awk: some 'lineno' vars were shorts, made them ints (code got smaller) | ||
712 | <li>cat: stop using stdio.h opens | ||
713 | <li>config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text | ||
714 | <li>cryptpw: new applet (by Thomas Lundquist <lists at zelow.no>) | ||
715 | <li>cttyhack: new applet | ||
716 | <li>dd: NOEXEC fix; fix skip= parse error (spotted by Dirk Clemens <develop at cle-mens.de>) | ||
717 | <li>deluser: add optional support for removing users from groups (by Tito <farmatito at tiscali.it>) | ||
718 | <li>diff: fix SEGV (NULL deref) in diff -N | ||
719 | <li>diff: fix segfault on empty dirs (Peter Korsgaard <peter.korsgaard at barco.com>) | ||
720 | <li>dnsd: fix several buglets, make smaller; openlog(), so that applet's name is logged | ||
721 | <li>dpkg: run_package_script() returns 0 if all ok and non-zero if failure. The result code was checked incorrectly in two places. (from Kim B. Heino <Kim.Heino at bluegiga.com>) | ||
722 | <li>dpkg: use bitfields which are a bit closer to typical short/char. Code size -800 bytes | ||
723 | <li>dumpleases: getopt32()-ization (from Mats Erik Andersson <mats.andersson64 at comhem.se>) | ||
724 | <li>e2fsprogs: stop using statics in chattr. Minor code shrinkage (-130 bytes) | ||
725 | <li>ether-wake: close bug 1317. Reorder fuctions to avoid forward refs while at it | ||
726 | <li>ether-wake: save a few more bytes of code | ||
727 | <li>find: -group, -depth (Natanael Copa <natanael.copa at gmail.com>) | ||
728 | <li>find: add support for -delete, -path (by Natanael Copa) | ||
729 | <li>find: fix -prune. Add big comment about it | ||
730 | <li>find: improve usage text (Natanael Copa <natanael.copa at gmail.com>) | ||
731 | <li>find: missed 'static' on const data; size and prune were mixed up; use index_in_str_array | ||
732 | <li>find: un-DESKTOPize (Kai Schwenzfeier <niteblade at gmx.net>) | ||
733 | <li>find_root_device: teach to deal with /dev/ subdirs (by Kirill K. Smirnov <lich at math.spbu.ru>) | ||
734 | <li>find_root_device: use lstat - don't follow links | ||
735 | <li>getopt32: fix llist_t options ordering. llist_rev is now unused | ||
736 | <li>getopt: use getopt32 for option parsing - inspired by patch by Mats Erik Andersson <mats.andersson64 at comhem.se> | ||
737 | <li>hdparm: fix multisector mode setting (from Toni Mirabete <amirabete at catix.cat>) | ||
738 | <li>hdparm: make -T -t code smaller (-194 bytes), and output prettier | ||
739 | <li>ifupdown: make it possible to use DHCP clients different from udhcp | ||
740 | <li>ifupdown: reread state file before rewriting it. Fixes "ifup started another ifup" state corruption bug. Patch by Natanael Copa <natanael.copa at gmail.com> | ||
741 | <li>ifupdown: small optimization (avoid doing useless work if we are not going to update state file) | ||
742 | <li>ip: fix compilation if FEATURE_TR_CLASSES is off | ||
743 | <li>ip: mv ip*_main into ip.c; use a dispatcher to save on needless duplication. Saves a minor 12b | ||
744 | <li>ip: rewrite the ip applet to be less bloaty. Convert to index_in_(sub)str_array() | ||
745 | <li>ip: set the scope properly. Thanks to Jean Wolter | ||
746 | <li>iplink: shrink iplink; sanitize libiproute a bit (-916 bytes) | ||
747 | <li>iproute: shrink a bit (-200 bytes) | ||
748 | <li>kill: know much more signals; make code smaller; use common code for kill applet and ash kill builtin | ||
749 | <li>klogd: remove dependency on syslogd | ||
750 | <li>lash: "forking" applets are actually can be treated the same way as "non-forked". Also save a bit of space on trailing NULL array elements. | ||
751 | <li>lash: fix kill buglet (didn't properly recognize ESRCH) | ||
752 | <li>lash: make -c work; crush buffer overrun and free of non-malloced ptr (from Mats Erik Andersson <mats.andersson64 at comhem.se>) | ||
753 | <li>lash: recognize and use NOFORK applets | ||
754 | <li>less: fix case when regex search finds nothing; fix very obscure memory corruption bug; fix less <HUGEFILE + [End] busy loop | ||
755 | <li>libbb: add xsendto, xunlink, xpipe | ||
756 | <li>libbb: fix segfault in reset_ino_dev_hashtable() when *hashtable was NULL | ||
757 | <li>libbb: make pidfile writing configurable | ||
758 | <li>libbb: make xsocket die with address family printed (if VERBOSE_RESOLUTION_ERRORS=y) | ||
759 | <li>libbb: rework NOMMU helper API so that it makes more sense and easier to use | ||
760 | <li>libiproute: audit callgraph, shortcut error paths into die() functions | ||
761 | <li>lineedit: do not try to open NULL history file | ||
762 | <li>lineedit: nuke two unused variables and code which sets them | ||
763 | <li>login: remove setpgrp call (makes it work from shell prompt again); sanitize stdio descriptors (we are suid, need to be careful!) | ||
764 | <li>login: shrink login and set_environment by ~100 bytes | ||
765 | <li>mount: fix incorrect usage of strtok (inadvertently used NULL sometimes) | ||
766 | <li>mount: fix mounting of symlinks (mount from util-linux allows that) | ||
767 | <li>msh: data/bss reduction (more than 9k of it); fix "underscore bug" (a_b=1111 didn't work); fix obscure case with backticks and closed fd 1 | ||
768 | <li>nc: port nc 1.10 to busybox | ||
769 | <li>netstat: fix for bogus state value for raw sockets | ||
770 | <li>netstat: introduce -W: wide, ipv6-friendly output; shrink by ~500 bytes | ||
771 | <li>nmeter: should die if stdout doesn't like him anymore | ||
772 | <li>patch: do not try to delete same file twice | ||
773 | <li>ping: fix wrong sign extension of packet id (bug 1373) | ||
774 | <li>ps: add -o tty and -o rss support; make a bit smaller; work around libc bug: printf("%.*s\n", MAX_INT, buffer) | ||
775 | <li>run_parts: rewrite | ||
776 | <li>run_parts: do not check path portion of a name for "bad chars". Needed for ifupdown. Patch by Gabriel L. Somlo <somlo at cmu.edu> | ||
777 | <li>sed: fix escaped newlines in -f | ||
778 | <li>split: new applet | ||
779 | <li>stat: remove superfluous bss user (flags) and manually unswitch some areas | ||
780 | <li>stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer at pengutronix.de>) | ||
781 | <li>svlogd: fix 'SEGV on uninitialized data' and make it honor TERM | ||
782 | <li>tail: fix SEGV on "tail -N" | ||
783 | <li>ipsvd: tcpsvd,udpsvd are new applets, GPL-ed 'clones' of Dan Bernstein's tcpserver. Author: Gerrit Pape <pape at smarden.org>, http://smarden.sunsite.dk/ipsvd/ | ||
784 | <li>test: close bug 1371; plug a memory leak; code size reduction | ||
785 | <li>tftp: code diet, and I think retransmits were broken | ||
786 | <li>tr: fix bug where we did not reject invalid classes like '[[:alpha'. debloat while at it | ||
787 | <li>udhcp: MAC_BCAST_ADDR and blank_chaddr are in fact constant, move to rodata; use pipe instead of socketpair | ||
788 | <li>udhcp[cd]: stop using atexit magic fir pidfile removal; stop deleting our own pidfile if we daemonize | ||
789 | <li>xargs: shrink code, ~80 bytes; simplify word list management | ||
790 | <li>zcip: make it work on NOMMU (+ improve NOMMU support machinery) | ||
791 | </ul> | ||
792 | </li> | ||
793 | |||
794 | <li><b>20 May 2007 -- BusyBox 1.5.1 (stable)</b> | ||
795 | <p><a href="http://busybox.net/downloads/busybox-1.5.1.tar.bz2">BusyBox 1.5.1</a>. | ||
796 | (<a href="http://busybox.net/downloads/fixes-1.5.1/">patches</a>, | ||
797 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
798 | |||
799 | <p>This is a bugfix-only release, with fixes to hdparm, hush, ifupdown, ps | ||
800 | and sed.</p> | ||
801 | </li> | ||
802 | |||
803 | <li><b>23 March 2007 -- BusyBox 1.5.0 (unstable)</b> | ||
804 | <p><a href="http://busybox.net/downloads/busybox-1.5.0.tar.bz2">BusyBox 1.5.0</a>. | ||
805 | (<a href="http://busybox.net/downloads/fixes-1.5.0/">patches</a>, | ||
806 | <a href="http://busybox.net/fix.html">how to add a patch</a>)</p> | ||
807 | |||
808 | <p>Since this is a x.x.0 release, it probably does not deserve "stable" | ||
809 | label. Please help making 1.5.1 stable by testing 1.5.0.</p> | ||
810 | <p>Notable changes since previous release: | ||
811 | <ul> | ||
812 | <li>find: added support for -user, -not, fixed -mtime, -mmin, -perm | ||
813 | <li>[de]archivers: merge common logic into one module | ||
814 | <li>ping[6]: unified code for both | ||
815 | <li>less: regex search improved | ||
816 | <li>ash: more readable code, testsuite added | ||
817 | <li>sed: several very obscure bugs fixed | ||
818 | <li>chown: -H, -L, -P support (required by POSIX) | ||
819 | <li>tar: handle (broken) checksums a-la Sun; tar restores mode again | ||
820 | <li>grep: implement -w, "implement" -a and -I by ignoring them | ||
821 | <li>cp: more sane behavior when overwriting existing files | ||
822 | <li>init: stop doing silly things with the console (-400 bytes) | ||
823 | <li>httpd: make httpd usable for NOMMU CPUs; fix POSTDATA handling bugs | ||
824 | <li>httpd: run interpreter for configured file extensions in any dir, | ||
825 | not only in /cgi-bin/ | ||
826 | <li>chrt: new applet | ||
827 | <li>SELinux: SELinux-related code and -Z option added to several applets, | ||
828 | new SELinux-specific applets: chcon, runcon. | ||
829 | <li>Build system: produces link map, uses -Wwrite-strings to catch | ||
830 | improper usage of string constants. | ||
831 | <li>Data and bss section usage audited and reduced - should help NOMMU | ||
832 | targets. | ||
833 | <li>Applets with bug fixes: gunzip, vi, syslogd, dpkg, ls, adjtimex, resize, | ||
834 | sv, printf, diff, awk, sort, dpkg, diff, tftp | ||
835 | <li>Applets with usability improvements: swapon, more, ifup/ifdown, hwclock, | ||
836 | udhcpd, start_stop_daemon, cmp | ||
837 | <li>Applets with code cleaned up: telnet, fdisk, fsck_minix, mkfs_minix, | ||
838 | syslogd, swapon, runsv, svlogd, klogd | ||
839 | </ul> | ||
840 | </li> | ||
841 | |||
842 | <li><b>18 March 2007 -- BusyBox 1.4.2 (stable)</b> | ||
843 | <p><a href="http://busybox.net/downloads/busybox-1.4.2.tar.bz2">BusyBox 1.4.2</a>. | ||
844 | </p> | ||
845 | |||
846 | <p>This release includes only trivial fixes accumulated since 1.4.1. | ||
847 | </p> | ||
848 | </li> | ||
849 | |||
850 | <li><b>25 January 2007 -- BusyBox 1.4.1 (stable)</b> | ||
851 | <p><a href="http://busybox.net/downloads/busybox-1.4.1.tar.bz2">BusyBox 1.4.1</a>. | ||
852 | (<a href="http://busybox.net/downloads/fixes-1.4.1/">patches</a>)</p> | ||
853 | |||
854 | <p>This release includes only trivial fixes accumulated since 1.4.0. | ||
855 | </p> | ||
856 | </li> | ||
857 | |||
858 | <li><b>20 January 2007 -- BusyBox 1.4.0 (stable)</b> | ||
859 | <p><a href="http://busybox.net/downloads/busybox-1.4.0.tar.bz2">BusyBox 1.4.0</a>. | ||
860 | (<a href="http://busybox.net/downloads/fixes-1.4.0/">patches</a>)</p> | ||
861 | |||
862 | <p>Since this is a x.x.0 release, it probably is a bit less "stable" | ||
863 | than usual.</p> | ||
864 | <p>Changes since previous release: | ||
865 | <ul> | ||
866 | <li>e2fsprogs are mostly removed from busybox. Some smaller parts remain, | ||
867 | the rest of it sits disabled in e2fsprogs/old_e2fsprogs/*, because | ||
868 | it's too bloated. Really. I'm afraid it's about the only way we can | ||
869 | ever get e2fsprogs cleaned up. | ||
870 | <li>less: many improvements. Now can display binary files | ||
871 | (although I expect it to have trouble with displays where 8bit chars | ||
872 | don't have 1-to-1 char/glyph relationship). Regexp search is not buggy | ||
873 | anymore. Less does not read entire input up-front. Reads input | ||
874 | as it appears (yay!). Works rather nice as man pager. I recommend it | ||
875 | for general use now. | ||
876 | <li>IPv6: generic support is in place, many networking applets are | ||
877 | upgraded to be IPv6 capable. Probably some work remains, but it is | ||
878 | already much better than what we had previously. | ||
879 | <li>arp: new applet (thanks to Eric Spakman). | ||
880 | <li>fakeidentd: non-forking standalone server part was taking ~90% | ||
881 | of the applet. Factored it out (in fact, rewrote it). | ||
882 | <li>syslogd: mostly rewritten. | ||
883 | <li>decompress_unzip, gzip: sanitized a bit. | ||
884 | <li>sed: better hadling of NULs | ||
885 | <li>httpd: stop adding our own "Content-type:" to CGI output | ||
886 | <li>chown: user.grp works again. | ||
887 | <li>minor bugfixes to: passwd, date, tftp, start_stop_daemon, tar, | ||
888 | ps, ifupdown, time, su, stty, awk, ping[6], sort,... | ||
889 | </ul> | ||
890 | </li> | ||
891 | |||
892 | <li><b>20 January 2007 -- BusyBox 1.3.2 (stable)</b> | ||
893 | <p><a href="http://busybox.net/downloads/busybox-1.3.2.tar.bz2">BusyBox 1.3.2</a>.</p> | ||
894 | |||
895 | <p>This release includes only one trivial fix accumulated since 1.3.1 | ||
896 | </p> | ||
897 | </li> | ||
898 | |||
899 | <li><b>27 December 2006 -- BusyBox 1.3.1 (stable)</b> | ||
900 | <p><a href="http://busybox.net/downloads/busybox-1.3.1.tar.bz2">BusyBox 1.3.1</a>. | ||
901 | (<a href="http://busybox.net/downloads/fixes-1.3.1/">patches</a>)</p> | ||
902 | |||
903 | <p>Closing 2006 with new release. It includes only trivial fixes accumulated since 1.3.0 | ||
904 | </p> | ||
905 | </li> | ||
906 | |||
907 | <li><b>14 December 2006 -- BusyBox 1.3.0 (stable)</b> | ||
908 | <p><a href="http://busybox.net/downloads/busybox-1.3.0.tar.bz2">BusyBox 1.3.0</a>. | ||
909 | (<a href="http://busybox.net/downloads/fixes-1.3.0/">patches</a>)</p> | ||
910 | |||
911 | <p>This release has CONFIG_DESKTOP option which enables features | ||
912 | needed for busybox usage on desktop machine. For example, find, chmod | ||
913 | and chown get several less frequently used options, od is significantly | ||
914 | bigger but matches GNU coreutils, etc. Intended to eventually make | ||
915 | busybox a viable alternative for "standard" utilities for slightly | ||
916 | adventurous desktop users. | ||
917 | <p>Changes since previous release: | ||
918 | <ul> | ||
919 | <li>find: taking many more of standard options | ||
920 | <li>ps: POSIX-compliant -o implemented | ||
921 | <li>cp: added -s, -l | ||
922 | <li>grep: added -r, fixed -h | ||
923 | <li>watch: make it exec child like standard one does (was totally | ||
924 | incompatible) | ||
925 | <li>tar: fix limitations which were preventing bbox tar usage | ||
926 | on big directories: long names and linknames, pax headers | ||
927 | (Linux kernel tarballs have that). Fixed a number of obscure bugs. | ||
928 | Raised max file limit (now 64Gb). Security fixes (/../ attacks). | ||
929 | <li>httpd: added -i (inetd), -f (foreground), support for | ||
930 | directory indexer CGI (example is included), bugfixes. | ||
931 | <li>telnetd: fixed/improved IPv6 support, inetd+standalone support, | ||
932 | other fixes. Useful IPv6 stuff factored out into libbb. | ||
933 | <li>runit/*: new applets adapted from http://smarden.sunsite.dk/runit/ | ||
934 | (these are my personal favorite small-and-beautiful toys) | ||
935 | <li>minor bugfixes to: login, dd, mount, umount, chmod, chown, ln, udhcp, | ||
936 | fdisk, ifconfig, sort, tee, mkswap, wget, insmod. | ||
937 | </ul> | ||
938 | <p>Note that GnuPG key used to sign this release is different. | ||
939 | 1.2.2.1 is also signed post-factum now. Sorry for the mess. | ||
940 | </p> | ||
941 | </li> | ||
942 | |||
943 | <li><b>29 October 2006 -- BusyBox 1.2.2.1 (fix)</b> | ||
944 | <p><a href="http://busybox.net/downloads/busybox-1.2.2.1.tar.bz2">BusyBox 1.2.2.1</a>.</p> | ||
945 | |||
946 | <p>Added compile-time warning that static linking against glibc | ||
947 | produces buggy executables. | ||
948 | </li> | ||
949 | |||
950 | <li><b>24 October 2006 -- BusyBox 1.2.2 (stable)</b> | ||
951 | <p>It's a bit overdue, but | ||
952 | <a href="http://busybox.net/downloads/busybox-1.2.2.tar.bz2">here is | ||
953 | BusyBox 1.2.2</a>.</p> | ||
954 | |||
955 | <p>This release has dozens of fixes backported from the ongoing development | ||
956 | branch. There are a couple of bugfixes to sed, two fixes to documentation | ||
957 | generation (BusyBox.html shouldn't have USE() macros in it anymore), fix | ||
958 | umount to report the right errno on failure and to umount block devices by | ||
959 | name with newer kernels, fix mount to handle symlinks properly, make mdev | ||
960 | delete device nodes when called for hotplug remove, fix a segfault | ||
961 | in traceroute, a minor portability fix to md5sum option parsing, a build | ||
962 | fix for httpd with old gccs, an options parsing tweak to hdparm, make test | ||
963 | fail gracefully when getgroups() returns -1, fix a race condition in | ||
964 | modprobe when two instances run at once (hotplug does this), make "tar xf | ||
965 | foo.tar dir/dir" extract all subdirectories, make our getty initialize the | ||
966 | terminal more like mingetty, an selinux build fix, an endianness fix in | ||
967 | ping6, fix for zcip defending addresses, clean up some global variables in | ||
968 | gzip to save memory, fix sulogin -tNNN, a help text tweak, several warning | ||
969 | fixes and build fixes, fixup dnsd a bit, and a partridge in a pear tree.</p> | ||
970 | |||
971 | <p>As <a href="http://lwn.net/Articles/202106/">Linux Weekly News noted</a>, | ||
972 | this is my (Rob's) last release of BusyBox. The new maintainer is Denis | ||
973 | Vlasenko, I'm off to do <a href="http://landley.net/code">other things</a>. | ||
974 | </p> | ||
975 | </li> | ||
976 | |||
977 | <li><b>29 September 2006 -- New license email address.</b> | ||
978 | <p>The email address gpl@busybox.net is now the recommended way to contact | ||
979 | the Software Freedom Law Center to report BusyBox license violations.</p> | ||
980 | |||
981 | <li><b>31 July 2006 -- BusyBox 1.2.1 (stable)</b> | ||
982 | <p>Since nobody seems to have objected too loudly over the weekend, I | ||
983 | might as well point you all at | ||
984 | <a href="http://busybox.net/downloads/busybox-1.2.1.tar.bz2">Busybox | ||
985 | 1.2.1</a>, a bugfix-only release with no new features.</p> | ||
986 | |||
987 | <p>It has three shell fixes (two to lash: going "var=value" without | ||
988 | saying "export" should now work, plus a missing null pointer check, and | ||
989 | one to ash when redirecting output to a file that fills up.) Fix three | ||
990 | embarassing thinkos in the new dmesg command. Two build tweaks | ||
991 | (dependencies for the compressed usage messages and running make in the | ||
992 | libbb subdirectory). One fix to tar so it can extract git-generated | ||
993 | tarballs (rather than barfing on the pax extensions). And a partridge | ||
994 | in a pear... Ahem.</p> | ||
995 | |||
996 | <p>But wait, there's more! A passwd changing fix so an empty | ||
997 | gecos field doesn't trigger a false objection that the new passwd contains | ||
998 | the gecos field. Make all our setuid() and setgid() calls check the return | ||
999 | value in case somebody's using per-process resource limits that prevent | ||
1000 | a user from having too many processes (and thus prevent a process from | ||
1001 | switching away from root, in which case the process will now _die_ rather | ||
1002 | than continue with root privileges). A fix to adduser to make sure that | ||
1003 | /etc/group gets updated. And a fix to modprobe to look for modules.conf | ||
1004 | in the right place on 2.6 kernels.</p> | ||
1005 | |||
1006 | <li><b>30 June 2006 -- BusyBox 1.2.0</b> | ||
1007 | <p>The -devel branch has been stabilized and the result is | ||
1008 | <a href="http://busybox.net/downloads/busybox-1.2.0.tar.bz2">Busybox | ||
1009 | 1.2.0</a>. Lots of stuff changed, I need to work up a decent changelog | ||
1010 | over the weekend.</p> | ||
1011 | |||
1012 | <p>I'm still experimenting with how long is best for the development | ||
1013 | cycle, and since we've got some largeish projects queued up I'm going to | ||
1014 | try a longer one. Expect 1.3.0 in December. (Expect 1.2.1 any time | ||
1015 | we fix enough bugs. :)</p> | ||
1016 | |||
1017 | <p>Update: Here are <a href="http://busybox.net/downloads/busybox-1.2.0.fixes.patch">the first few bug fixes</a> that will go into 1.2.1.</p> | ||
1018 | |||
1019 | <li><b>17 May 2006 -- BusyBox 1.1.3 (stable)</b> | ||
1020 | <p><a href="http://busybox.net/downloads/busybox-1.1.3.tar.bz2">BusyBox | ||
1021 | 1.1.3</a> is another bugfix release. It makes passwd use salt, fixes a | ||
1022 | memory freeing bug in ls, fixes "build all sources at once" mode, makes | ||
1023 | mount -a not abort on the first failure, fixes msh so ctrl-c doesn't kill | ||
1024 | background processes, makes patch work with patch hunks that don't have a | ||
1025 | timestamp, make less's text search a lot more robust (the old one could | ||
1026 | segfault), and fixes readlink -f when built against uClibc.</p> | ||
1027 | |||
1028 | <p>Expect 1.2.0 sometime next month, which won't be a bugfix release.</p> | ||
1029 | |||
1030 | <li><b>10 April 2006 -- BusyBox 1.1.2 (stable)</b> | ||
1031 | <p>You can now download <a href="http://busybox.net/downloads/busybox-1.1.2.tar.bz2">BusyBox 1.1.2</a>, a bug fix release consisting of 11 patches | ||
1032 | backported from the development branch: Some build fixes, several fixes | ||
1033 | for mount and nfsmount, a fix for insmod on big endian systems, a fix for | ||
1034 | find -xdev, and a fix for comm. Check the file "changelog" in the tarball | ||
1035 | for more info.</p> | ||
1036 | |||
1037 | <p>The next new development release (1.2.0) is slated for June. A 1.1.3 | ||
1038 | will be released before then if more bug fixes crop up. (The new plan is | ||
1039 | to have a 1.x.0 new development release every 3 months, with 1.x.y stable | ||
1040 | bugfix only releases based on that as appropriate.)</p> | ||
1041 | |||
1042 | <li><b>27 March 2006 -- Software Freedom Law Center representing BusyBox and uClibc</b> | ||
1043 | <p>One issue Erik Andersen wanted to resolve when handing off BusyBox | ||
1044 | maintainership to Rob Landley was license enforcement. BusyBox and | ||
1045 | uClibc's existing license enforcement efforts (pro-bono representation | ||
1046 | by Erik's father's law firm, and the | ||
1047 | <a href="http://www.busybox.net/shame.html">Hall of Shame</a>), haven't | ||
1048 | scaled to match the popularity of the projects. So we put our heads | ||
1049 | together and did the obvious thing: ask Pamela Jones of | ||
1050 | <a href="http://www.groklaw.net">Groklaw</a> for suggestions. She | ||
1051 | referred us to the fine folks at softwarefreedom.org.</p> | ||
1052 | |||
1053 | <p>As a result, we're pleased to announce that the | ||
1054 | <a href="http://www.softwarefreedom.org">Software Freedom Law Center</a> | ||
1055 | has agreed to represent BusyBox and uClibc. We join a number of other | ||
1056 | free and open source software projects (such as | ||
1057 | <a href="http://lwn.net/Articles/141806/">X.org</a>, | ||
1058 | <a href="http://lwn.net/Articles/135413/">Wine</a>, and | ||
1059 | <a href="http://plone.org/foundation/newsitems/software-freedom-law-center-support/">Plone</a> | ||
1060 | in being represented by a fairly cool bunch of lawyers, which is not a | ||
1061 | phrase you get to use every day.</p> | ||
1062 | |||
1063 | <li><b>22 March 2006 -- BusyBox 1.1.1</b> | ||
1064 | <p>The new maintainer is Rob Landley, and the new release is <a href="http://busybox.net/downloads/busybox-1.1.1.tar.bz2">BusyBox 1.1.1</a>. Expect a "what's new" document in a few days. (Also, Erik and I have have another announcement pending...)</p> | ||
1065 | <p>Update: Rather than put out an endless stream of 1.1.1.x releases, | ||
1066 | the various small fixes have been collected together into a | ||
1067 | <a href="http://busybox.net/downloads/busybox-1.1.1.fixes.patch">patch</a>, | ||
1068 | and new fixes will be appended to that as needed. Expect 1.1.2 around | ||
1069 | June.</p> | ||
1070 | </li> | ||
1071 | <li><b>11 January 2006 -- 1.1.0 is out</b> | ||
1072 | <p>The new stable release is | ||
1073 | <a href="http://www.busybox.net/downloads/busybox-1.1.0.tar.bz2">BusyBox | ||
1074 | 1.1.0</a>. It has a number of improvements, including several new applets. | ||
1075 | (It also has <a href="http://www.busybox.net/lists/busybox/2006-January/017733.html">a few rough spots</a>, | ||
1076 | but we're trying out a "release early, release often" strategy to see how | ||
1077 | that works. Expect 1.1.1 sometime in March.)</p> | ||
1078 | |||
1079 | <li><b>31 October 2005 -- 1.1.0-pre1</b> | ||
1080 | <p>The development branch of busybox is stable enough for wider testing, so | ||
1081 | you can now | ||
1082 | <a href="http://www.busybox.net/downloads/busybox-1.1.0-pre1.tar.bz2">download</a>, | ||
1083 | the first prerelease of 1.1.0. This prerelease includes a lot of | ||
1084 | <a href="http://www.busybox.net/downloads/BusyBox.html">new | ||
1085 | functionality</a>: new applets, new features, and extensive rewrites of | ||
1086 | several existing applets. This prerelease should be noticeably more | ||
1087 | <a href="http://www.opengroup.org/onlinepubs/009695399/">standards | ||
1088 | compliant</a> than earlier versions of busybox, although we're | ||
1089 | still working out the <a href="https://bugs.busybox.net">bugs</a>.</p> | ||
1090 | |||
1091 | <li><b>16 August 2005 -- 1.01 is out</b> | ||
1092 | |||
1093 | <p>A new stable release (<a href="http://www.busybox.net/downloads/busybox-1.01.tar.bz2">BusyBox | ||
1094 | 1.01</a>) is now available for download, containing over a hundred | ||
1095 | <a href="http://www.busybox.net/lists/busybox/2005-August/015424.html">small | ||
1096 | fixes</a> that have cropped up since the 1.00 release.</p> | ||
1097 | |||
1098 | <li><b>13 January 2005 -- Bug and Patch Tracking</b><p> | ||
1099 | |||
1100 | Bug reports sometimes get lost when posted to the mailing list. The | ||
1101 | developers of BusyBox are busy people, and have only so much they can keep | ||
1102 | in their brains at a time. In my case, I'm lucky if I can remember my own | ||
1103 | name, much less a bug report posted last week... To prevent your bug report | ||
1104 | from getting lost, if you find a bug in BusyBox, please use the | ||
1105 | <a href="https://bugs.busybox.net/">shiny new Bug and Patch Tracking System</a> | ||
1106 | to post all the gory details. | ||
1107 | |||
1108 | <p> | ||
1109 | |||
1110 | The same applies to patches... Regardless of whether your patch | ||
1111 | is a bug fix or adds spiffy new features, please post your patch | ||
1112 | to the Bug and Patch Tracking System to make certain it is | ||
1113 | properly considered. | ||
1114 | |||
1115 | |||
1116 | <p> | ||
1117 | <li><b>13 October 2004 -- BusyBox 1.00 released</b><p> | ||
1118 | |||
1119 | When you take a careful look at nearly every embedded Linux device or | ||
1120 | software distribution shipping today, you will find a copy of BusyBox. | ||
1121 | With countless routers, set top boxes, wireless access points, PDAs, and | ||
1122 | who knows what else, the future for Linux and BusyBox on embedded devices | ||
1123 | is looking very bright. | ||
1124 | |||
1125 | <p> | ||
1126 | |||
1127 | It is therefore with great satisfaction that I declare each and every | ||
1128 | device already shipping with BusyBox is now officially out of date. | ||
1129 | The highly anticipated release of BusyBox 1.00 has arrived! | ||
1130 | |||
1131 | <p> | ||
1132 | |||
1133 | Over three years in development, BusyBox 1.00 represents a tremendous | ||
1134 | improvement over the old 0.60.x stable series. Now featuring a Linux | ||
1135 | KernelConf based configuration system (as used by the Linux kernel), | ||
1136 | Linux 2.6 kernel support, many many new applets, and the development | ||
1137 | work and testing of thousands of people from around the world. | ||
1138 | |||
1139 | <p> | ||
1140 | |||
1141 | If you are already using BusyBox, you are strongly encouraged to upgrade to | ||
1142 | BusyBox 1.00. If you are considering developing an embedded Linux device | ||
1143 | or software distribution, you may wish to investigate if using BusyBox is | ||
1144 | right for your application. If you need help getting started using | ||
1145 | BusyBox, if you wish to donate to help cover expenses, or if you find a bug | ||
1146 | and need help reporting it, you are invited to visit the <a | ||
1147 | href="FAQ.html">BusyBox FAQ</a>. | ||
1148 | |||
1149 | <p> | ||
1150 | |||
1151 | As usual you can <a href="downloads">download busybox here</a>. | ||
1152 | |||
1153 | <p>Have Fun! | ||
1154 | |||
1155 | <p> | ||
1156 | <li><b>Old News</b><p> | ||
1157 | <a href="/oldnews.html">Click here to read older news</a> | ||
1158 | |||
1159 | |||
1160 | <li><b>16 August 2004 -- BusyBox 1.0.0-rc3 released</b><p> | ||
1161 | |||
1162 | Here goes release candidate 3... | ||
1163 | <p> | ||
1164 | The <a href="downloads/Changelog">changelog</a> has all the details. | ||
1165 | And as usual you can <a href="downloads">download busybox here</a>. | ||
1166 | |||
1167 | <p>Have Fun! | ||
1168 | |||
1169 | <p> | ||
1170 | <li><b>26 July 2004 -- BusyBox 1.0.0-rc2 released</b><p> | ||
1171 | |||
1172 | Here goes release candidate 2... | ||
1173 | <p> | ||
1174 | The <a href="downloads/Changelog">changelog</a> has all the details. | ||
1175 | And as usual you can <a href="downloads">download busybox here</a>. | ||
1176 | |||
1177 | <p>Have Fun! | ||
1178 | |||
1179 | <p> | ||
1180 | <li><b>20 July 2004 -- BusyBox 1.0.0-rc1 released</b><p> | ||
1181 | |||
1182 | Here goes release candidate 1... This fixes all (most?) of the problems | ||
1183 | that have turned up since -pre10. In particular, loading and unloading of | ||
1184 | kernel modules with 2.6.x kernels should be working much better. | ||
1185 | <p> | ||
1186 | |||
1187 | I <b>really</b> want to get BusyBox 1.0.0 released soon and I see no real | ||
1188 | reason why the 1.0.0 release shouldn't happen with things pretty much as | ||
1189 | is. BusyBox is in good shape at the moment, and it works nicely for | ||
1190 | everything that I'm doing with it. And from the reports I've been getting, | ||
1191 | it works nicely for what most everyone else is doing with it as well. | ||
1192 | There will eventually be a 1.0.1 anyway, so we might as well get on with | ||
1193 | it. No, BusyBox is not perfect. No piece of software ever is. And while | ||
1194 | there is still plenty that can be done to improve things, most of that work | ||
1195 | is waiting till we can get a solid 1.0.0 release out the door.... | ||
1196 | <p> | ||
1197 | |||
1198 | Please do not bother to send in patches adding cool new features at this | ||
1199 | time. Only bug-fix patches will be accepted. If you have submitted a | ||
1200 | bug-fixing patch to the busybox mailing list and no one has emailed you | ||
1201 | explaining why your patch was rejected, it is safe to say that your patch | ||
1202 | has been lost or forgotten. That happens sometimes. Please re-submit your | ||
1203 | bug-fixing patch to the BusyBox mailing list, and be sure to put "[PATCH]" | ||
1204 | at the beginning of the email subject line! | ||
1205 | |||
1206 | <p> | ||
1207 | The <a href="downloads/Changelog">changelog</a> has all the details. | ||
1208 | And as usual you can <a href="downloads">download busybox here</a>. | ||
1209 | |||
1210 | <p>Have Fun! | ||
1211 | |||
1212 | <p> | ||
1213 | On a less happy note, My 92 year old grandmother (my dad's mom) passed away | ||
1214 | yesterday (June 19th). The funeral will be Thursday in a little town about | ||
1215 | 2 hours south of my home. I've checked and there is absolutely no way I | ||
1216 | could be back in time for the funeral if I attend <a | ||
1217 | href="http://www.linuxsymposium.org/2004/">OLS</a> and give my presentation | ||
1218 | as scheduled. | ||
1219 | <p> | ||
1220 | As such, it is with great reluctance and sadness that I have come | ||
1221 | to the conclusion I will have to make my appologies and skip OLS | ||
1222 | this year. | ||
1223 | <p> | ||
1224 | |||
1225 | |||
1226 | <p> | ||
1227 | <li><b>13 April 2004 -- BusyBox 1.0.0-pre10 released</b><p> | ||
1228 | |||
1229 | Ok, I lied. It turns out that -pre9 will not be the final BusyBox | ||
1230 | pre-release. With any luck however -pre10 will be, since I <b>really</b> | ||
1231 | want to get BusyBox 1.0.0 released very soon. As usual, please do not | ||
1232 | bother to send in patches adding cool new features at this time. Only | ||
1233 | bug-fix patches will be accepted. It would also be <b>very</b> helpful if | ||
1234 | people could continue to review the BusyBox documentation and submit | ||
1235 | improvements. | ||
1236 | |||
1237 | <p> | ||
1238 | The <a href="downloads/Changelog">changelog</a> has all the details. | ||
1239 | And as usual you can <a href="downloads">download busybox here</a>. | ||
1240 | |||
1241 | <p>Have Fun! | ||
1242 | <p> | ||
1243 | |||
1244 | |||
1245 | <p> | ||
1246 | <li><b>6 April 2004 -- BusyBox 1.0.0-pre9 released</b><p> | ||
1247 | |||
1248 | Here goes the final BusyBox pre-release... This is your last chance for | ||
1249 | bug fixes. With luck this will be released as BusyBox 1.0.0 later this | ||
1250 | week. Please do not bother to send in patches adding cool new features at | ||
1251 | this time. Only bug-fix patches will be accepted. It would also be | ||
1252 | <b>very</b> helpful if people could help review the BusyBox documentation | ||
1253 | and submit improvements. I've spent a lot of time updating the | ||
1254 | documentation to make it better match reality, but I could really use some | ||
1255 | assistance in checking that the features supported by the various applets | ||
1256 | match the features listed in the documentation. | ||
1257 | |||
1258 | <p> | ||
1259 | I had hoped to get this released a month ago, but | ||
1260 | <a href="http://codepoet.org/gallery/baby_peter/img_1796"> | ||
1261 | another release on 1 March 2004</a> has kept me busy... | ||
1262 | |||
1263 | <p> | ||
1264 | The <a href="downloads/Changelog">changelog</a> has all the details. | ||
1265 | And as usual you can <a href="downloads">download busybox here</a>. | ||
1266 | |||
1267 | <p>Have Fun! | ||
1268 | <p> | ||
1269 | |||
1270 | |||
1271 | <p> | ||
1272 | <li><b>23 February 2004 -- BusyBox 1.0.0-pre8 released</b><p> | ||
1273 | |||
1274 | Here goes yet another BusyBox pre-release... Please do not bother to send | ||
1275 | in patches supplying new features at this time. Only bug-fix patches will | ||
1276 | be accepted. If you have a cool new feature you would like to see | ||
1277 | supported, or if you have an amazing new applet you would like to submit, | ||
1278 | please wait and submit such things later. We really want to get a release | ||
1279 | out we can all be proud of. We are still aiming to finish off the -pre | ||
1280 | series in February and move on to the final 1.0.0 release... So if you | ||
1281 | spot any bugs, now would be an excellent time to send in a fix to the | ||
1282 | busybox mailing list. It would also be <b>very</b> helpful if people could | ||
1283 | help review the BusyBox documentation and submit improvements. It would be | ||
1284 | especially helpful if people could check that the features supported by the | ||
1285 | various applets match the features listed in the documentation. | ||
1286 | |||
1287 | <p> | ||
1288 | |||
1289 | The <a href="downloads/Changelog">changelog</a> has all the details. | ||
1290 | And as usual you can <a href="downloads">download busybox here</a>. | ||
1291 | |||
1292 | <p>Have Fun! | ||
1293 | <p> | ||
1294 | |||
1295 | |||
1296 | <li><b>4 February 2004 -- BusyBox 1.0.0-pre7 released</b><p> | ||
1297 | |||
1298 | There was a bug in -pre6 that broke argument parsing for a | ||
1299 | number of applets, since a variable was not being zeroed out | ||
1300 | properly. This release is primarily intended to fix that one | ||
1301 | problem. In addition, this release fixes several other | ||
1302 | problems, including a rewrite by mjn3 of the code for parsing | ||
1303 | the busybox.conf file used for suid handling, some shell updates | ||
1304 | from vodz, and a scattering of other small fixes. We are still | ||
1305 | aiming to finish off the -pre series in February and move on to | ||
1306 | the final 1.0.0 release... If you see any problems, of have | ||
1307 | suggestions to make, as always, please feel free to email the | ||
1308 | busybox mailing list. | ||
1309 | |||
1310 | <p> | ||
1311 | |||
1312 | The <a href="downloads/Changelog">changelog</a> has all | ||
1313 | the details. And as usual you can | ||
1314 | <a href="downloads">download busybox here</a>. | ||
1315 | |||
1316 | <p>Have Fun! | ||
1317 | <p> | ||
1318 | |||
1319 | |||
1320 | <p> | ||
1321 | <li><b>30 January 2004 -- BusyBox 1.0.0-pre6 released</b><p> | ||
1322 | |||
1323 | Here goes the next pre-release for the new BusyBox stable | ||
1324 | series. This release adds a number of size optimizations, | ||
1325 | updates udhcp, fixes up 2.6 modutils support, updates ash | ||
1326 | and the shell command line editing, and the usual pile of | ||
1327 | bug fixes both large and small. Things appear to be | ||
1328 | settling down now, so with a bit of luck and some testing | ||
1329 | perhaps we can finish off the -pre series in February and | ||
1330 | move on to the final 1.0.0 release... If you see any | ||
1331 | problems, of have suggestions to make, as always, please | ||
1332 | feel free to email the busybox mailing list. | ||
1333 | |||
1334 | <p> | ||
1335 | |||
1336 | People who rely on the <a href="downloads/snapshots/">daily BusyBox snapshots</a> | ||
1337 | should be aware that snapshots of the old busybox 0.60.x | ||
1338 | series are no longer available. Daily snapshots are now | ||
1339 | only available for the BusyBox 1.0.0 series and now use | ||
1340 | the naming scheme "busybox-<date>.tar.bz2". Please | ||
1341 | adjust any build scripts using the old naming scheme accordingly. | ||
1342 | |||
1343 | <p> | ||
1344 | |||
1345 | The <a href="downloads/Changelog">changelog</a> has all | ||
1346 | the details. And as usual you can | ||
1347 | <a href="downloads">download busybox here</a>. | ||
1348 | |||
1349 | <p>Have Fun! | ||
1350 | <p> | ||
1351 | |||
1352 | |||
1353 | <p> | ||
1354 | <li><b>23 December 2003 -- BusyBox 1.0.0-pre5 released</b><p> | ||
1355 | |||
1356 | Here goes the next pre-release for the new BusyBox stable | ||
1357 | series. The most obvious thing in this release is a fix for | ||
1358 | a terribly stupid bug in mount that prevented it from working | ||
1359 | properly unless you specified the filesystem type. This | ||
1360 | release also fixes a few compile problems, updates udhcp, | ||
1361 | fixes a silly bug in fdisk, fixes ifup/ifdown to behave like | ||
1362 | the Debian version, updates devfsd, updates the 2.6.x | ||
1363 | modutils support, add a new 'rx' applet, removes the obsolete | ||
1364 | 'loadacm' applet, fixes a few tar bugs, fixes a sed bug, and | ||
1365 | a few other odd fixes. | ||
1366 | |||
1367 | <p> | ||
1368 | |||
1369 | If you see any problems, of have suggestions to make, as | ||
1370 | always, please feel free to send an email to the busybox | ||
1371 | mailing list. | ||
1372 | |||
1373 | <p> | ||
1374 | |||
1375 | The <a href="downloads/Changelog">changelog</a> has all | ||
1376 | the details. And as usual you can | ||
1377 | <a href="downloads">download busybox here</a>. | ||
1378 | |||
1379 | <p>Have Fun! | ||
1380 | <p> | ||
1381 | |||
1382 | |||
1383 | |||
1384 | <li><b>10 December 2003 -- BusyBox 1.0.0-pre4 released</b><p> | ||
1385 | |||
1386 | Here goes the fourth pre-release for the new BusyBox stable | ||
1387 | series. This release includes major rework to sed, lots of | ||
1388 | rework on tar, a new tiny implementation of bunzip2, a new | ||
1389 | devfsd applet, support for 2.6.x kernel modules, updates to | ||
1390 | the ash shell, sha1sum and md5sum have been merged into a | ||
1391 | common applet, the dpkg applets has been cleaned up, and tons | ||
1392 | of random bugs have been fixed. Thanks everyone for all the | ||
1393 | testing, bug reports, and patches! Once again, a big | ||
1394 | thank-you goes to Glenn McGrath (bug1) for stepping in and | ||
1395 | helping get patches merged! | ||
1396 | |||
1397 | <p> | ||
1398 | |||
1399 | And of course, if you are reading this, you might have noticed | ||
1400 | the busybox website has been completely reworked. Hopefully | ||
1401 | things are now somewhat easier to navigate... If you see any | ||
1402 | problems, of have suggestions to make, as always, please feel | ||
1403 | free to send an email to the busybox mailing list. | ||
1404 | |||
1405 | <p> | ||
1406 | |||
1407 | The <a href="downloads/Changelog">changelog</a> has all | ||
1408 | the details. And as usual you can | ||
1409 | <a href="downloads">download busybox here</a>. | ||
1410 | |||
1411 | <p>Have Fun! | ||
1412 | |||
1413 | |||
1414 | |||
1415 | <p> | ||
1416 | <li><b>12 Sept 2003 -- BusyBox 1.0.0-pre3 released</b><p> | ||
1417 | |||
1418 | Here goes the third pre-release for the new BusyBox stable | ||
1419 | series. The last prerelease has held up quite well under | ||
1420 | testing, but a number of problems have turned up as the number | ||
1421 | of people using it has increased. Thanks everyone for all | ||
1422 | the testing, bug reports, and patches! | ||
1423 | |||
1424 | <p> | ||
1425 | |||
1426 | If you have submitted a patch or a bug report to the busybox | ||
1427 | mailing list and no one has emailed you explaining why your | ||
1428 | patch was rejected, it is safe to say that your patch has | ||
1429 | somehow gotten lost or forgotten. That happens sometimes. | ||
1430 | Please re-submit your patch or bug report to the BusyBox | ||
1431 | mailing list! | ||
1432 | |||
1433 | <p> | ||
1434 | |||
1435 | The point of the "-preX" versions is to get a larger group of | ||
1436 | people and vendors testing, so any problems that turn up can be | ||
1437 | fixed prior to the final 1.0.0 release. The main feature | ||
1438 | (besides additional testing) that is still still on the TODO | ||
1439 | list before the final BusyBox 1.0.0 release is sorting out the | ||
1440 | modutils issues. For the new 2.6.x kernels, we already have | ||
1441 | patches adding insmod and rmmod support and those need to be | ||
1442 | integrated. For 2.4.x kernels, for which busybox only supports | ||
1443 | a limited number of architectures, we may want to invest a bit | ||
1444 | more work before we cut 1.0.0. Or we may just leave 2.4.x | ||
1445 | module loading alone. | ||
1446 | |||
1447 | <p> | ||
1448 | |||
1449 | I had hoped this release would be out a month ago. And of | ||
1450 | course, it wasn't since Erik became busy getting a release of | ||
1451 | <a href="http://www.uclibc.org/">uClibc</a> | ||
1452 | out the door. Many thanks to Glenn McGrath (bug1) for | ||
1453 | stepping in and helping get a bunch of patches merged! I am | ||
1454 | not even going to state a date for releasing BusyBox 1.0.0 | ||
1455 | -pre4 (or the final 1.0.0). We're aiming for late September... | ||
1456 | But if this release proves as to be exceptionally stable (or | ||
1457 | exceptionally unstable!), the next release may be very soon | ||
1458 | indeed. | ||
1459 | |||
1460 | <p> | ||
1461 | |||
1462 | The <a href="downloads/Changelog">changelog</a> has all | ||
1463 | the details. And as usual you can | ||
1464 | <a href="downloads">download busybox here</a>. | ||
1465 | |||
1466 | <p>Have Fun! | ||
1467 | |||
1468 | |||
1469 | <p> | ||
1470 | <li><b>30 July 2003 -- BusyBox 1.0.0-pre2 released</b><p> | ||
1471 | |||
1472 | Here goes another pre release for the new BusyBox stable | ||
1473 | series. The last prerelease (pre1) was given quite a lot of | ||
1474 | testing (thanks everyone!) which has helped turn up a number of | ||
1475 | bugs, and these problems have now been fixed. | ||
1476 | |||
1477 | <p> | ||
1478 | |||
1479 | Highlights of -pre2 include updating the 'ash' shell to sync up | ||
1480 | with the Debian 'dash' shell, a new 'hdparm' applet was added, | ||
1481 | init again supports pivot_root, The 'reboot' 'halt' and | ||
1482 | 'poweroff' applets can now be used without using busybox init. | ||
1483 | an ifconfig buffer overflow was fixed, losetup now allows | ||
1484 | read-write loop devices, uClinux daemon support was added, the | ||
1485 | 'watchdog', 'fdisk', and 'kill' applets were rewritten, there were | ||
1486 | tons of doc updates, and there were many other bugs fixed. | ||
1487 | <p> | ||
1488 | |||
1489 | If you have submitted a patch and it is not included in this | ||
1490 | release and Erik has not emailed you explaining why your patch | ||
1491 | was rejected, it is safe to say that he has lost your patch. | ||
1492 | That happens sometimes. Please re-submit your patch to the | ||
1493 | BusyBox mailing list. | ||
1494 | <p> | ||
1495 | |||
1496 | The point of the "-preX" versions is to get a larger group of | ||
1497 | people and vendors testing, so any problems that turn up can be | ||
1498 | fixed prior to the final 1.0.0 release. The main feature that | ||
1499 | is still still on the TODO list before the final BusyBox 1.0.0 | ||
1500 | release is adding module support for the new 2.6.x kernels. If | ||
1501 | necessary, a -pre3 BusyBox release will happen on August 6th. | ||
1502 | Hopefully (i.e. unless some horrible catastrophic problem | ||
1503 | turns up) the final BusyBox 1.0.0 release will be ready by | ||
1504 | then... | ||
1505 | <p> | ||
1506 | |||
1507 | The <a href="downloads/Changelog">changelog</a> has all | ||
1508 | the details. As usual you can <a href="downloads">download busybox here</a>. | ||
1509 | |||
1510 | <p>Have Fun! | ||
1511 | <p> | ||
1512 | |||
1513 | <p> | ||
1514 | <li><b>15 July 2003 -- BusyBox 1.0.0-pre1 released</b><p> | ||
1515 | |||
1516 | The busybox development series has been under construction for | ||
1517 | nearly two years now. Which is just entirely too long... So | ||
1518 | it is with great pleasure that I announce the imminent release | ||
1519 | of a new stable series. Due to the huge number of changes | ||
1520 | since the last stable release (and the usual mindless version | ||
1521 | number inflation) I am branding this new stable series verison | ||
1522 | 1.0.x... | ||
1523 | <p> | ||
1524 | |||
1525 | The point of "-preX" versions is to get a larger group of | ||
1526 | people and vendors testing, so any problems that turn up can be | ||
1527 | fixed prior to the magic 1.0.0 release (which should happen | ||
1528 | later this month)... I plan to release BusyBox 1.0.0-pre2 next | ||
1529 | Monday (July 21st), and, if necessary, -pre3 on July 28th. | ||
1530 | Hopefully (i.e. unless some horrible catastrophic problem turns | ||
1531 | up) the final BusyBox 1.0.0 release should be ready by the end | ||
1532 | of July. | ||
1533 | <p> | ||
1534 | |||
1535 | If you have submitted patches, and they are not in this release | ||
1536 | and I have not emailed you explaining why your patch was | ||
1537 | rejected, it is safe to say that I have lost your patch. That | ||
1538 | happens sometimes. Please do <b>NOT</b> send all your patches, | ||
1539 | support questions, etc, directly to Erik. I get hundreds of | ||
1540 | emails every day (which is why I end up losing patches | ||
1541 | sometimes in the flood)... The busybox mailing list is the | ||
1542 | right place to send your patches, support questions, etc. | ||
1543 | <p> | ||
1544 | |||
1545 | I would like to especially thank Vladimir Oleynik (vodz), Glenn | ||
1546 | McGrath (bug1), Robert Griebl (sandman), and Manuel Novoa III | ||
1547 | (mjn3) for their significant efforts and contributions that | ||
1548 | have made this release possible. | ||
1549 | <p> | ||
1550 | |||
1551 | As usual you can <a href="downloads">download busybox here</a>. | ||
1552 | You don't really need to bother with the | ||
1553 | <a href="downloads/Changelog">changelog</a>, as the changes | ||
1554 | vs the stable version are way too extensive to easily enumerate. | ||
1555 | But you can take a look if you really want too. | ||
1556 | |||
1557 | <p>Have Fun! | ||
1558 | <p> | ||
1559 | |||
1560 | |||
1561 | |||
1562 | <p> | ||
1563 | <li><b>26 October 2002 -- BusyBox 0.60.5 released</b><p> | ||
1564 | |||
1565 | I am very pleased to announce that the BusyBox 0.60.5 (stable) | ||
1566 | is now available for download. This is a bugfix release for | ||
1567 | the stable series to address all the problems that have turned | ||
1568 | up since the last release. Unfortunately, the previous release | ||
1569 | had a few nasty bugs (i.e. init could deadlock, gunzip -c tried | ||
1570 | to delete source files, cp -a wouldn't copy symlinks, and init | ||
1571 | was not always providing controlling ttys when it should have). | ||
1572 | I know I said that the previous release would be the end of the | ||
1573 | 0.60.x series. Well, it turns out I'm a liar. But this time I | ||
1574 | mean it (just like last time ;-). This will be the last | ||
1575 | release for the 0.60.x series -- all further development work | ||
1576 | will be done for the development busybox tree. Expect the development | ||
1577 | version to have its first real release very very soon now... | ||
1578 | |||
1579 | <p> | ||
1580 | The <a href="downloads/Changelog.full">changelog</a> has all | ||
1581 | the details. As usual you can <a href="downloads">download busybox here</a>. | ||
1582 | <p>Have Fun! | ||
1583 | <p> | ||
1584 | |||
1585 | <p> | ||
1586 | <li><b>18 September 2002 -- BusyBox 0.60.4 released</b><p> | ||
1587 | |||
1588 | I am very pleased to announce that the BusyBox 0.60.4 | ||
1589 | (stable) is now available for download. This is primarily | ||
1590 | a bugfix release for the stable series to address all | ||
1591 | the problems that have turned up since the last | ||
1592 | release. This will be the last release for the 0.60.x series. | ||
1593 | I mean it this time -- all further development work will be done | ||
1594 | on the development busybox tree, which is quite solid now and | ||
1595 | should soon be getting its first real release. | ||
1596 | |||
1597 | <p> | ||
1598 | The <a href="downloads/Changelog.full">changelog</a> has all | ||
1599 | the details. As usual you can <a href="downloads">download busybox here</a>. | ||
1600 | <p>Have Fun! | ||
1601 | <p> | ||
1602 | |||
1603 | |||
1604 | <p> | ||
1605 | <li><b>27 April 2002 -- BusyBox 0.60.3 released</b><p> | ||
1606 | |||
1607 | I am very pleased to announce that the BusyBox 0.60.3 (stable) is | ||
1608 | now available for download. This is primarily a bugfix release | ||
1609 | for the stable series. A number of problems have turned up since | ||
1610 | the last release, and this should address most of those problems. | ||
1611 | This should be the last release for the 0.60.x series. The | ||
1612 | development busybox tree has been progressing nicely, and will | ||
1613 | hopefully be ready to become the next stable release. | ||
1614 | |||
1615 | <p> | ||
1616 | The <a href="downloads/Changelog">changelog</a> has all | ||
1617 | the details. As usual you can <a href="downloads">download busybox here</a>. | ||
1618 | <p>Have Fun! | ||
1619 | <p> | ||
1620 | |||
1621 | |||
1622 | <p> | ||
1623 | <li><b>6 March 2002 -- busybox.net now has mirrors!</b><p> | ||
1624 | |||
1625 | Busybox.net is now much more available, thanks to | ||
1626 | the fine folks at <a href="http://i-netinnovations.com/">http://i-netinnovations.com/</a> | ||
1627 | who are providing hosting for busybox.net and | ||
1628 | uclibc.org. In addition, we now have two mirrors: | ||
1629 | <a href="http://busybox.linuxmagic.com/">http://busybox.linuxmagic.com/</a> | ||
1630 | in Canada and | ||
1631 | <a href="http://busybox.csservers.de/">http://busybox.csservers.de/</a> | ||
1632 | in Germany. I hope this makes things much more | ||
1633 | accessible for everyone! | ||
1634 | |||
1635 | |||
1636 | <li> | ||
1637 | <b>3 January 2002 -- Welcome to busybox.net!</b> | ||
1638 | |||
1639 | <p>Thanks to the generosity of a number of busybox | ||
1640 | users, we have been able to purchase busybox.net | ||
1641 | (which is where you are probably reading this). | ||
1642 | Right now, busybox.net and uclibc.org are both | ||
1643 | living on my home system (at the end of my DSL | ||
1644 | line). I apologize for the abrupt move off of | ||
1645 | busybox.lineo.com. Unfortunately, I no longer have | ||
1646 | the access needed to keep that system updated (for | ||
1647 | example, you might notice the daily snapshots there | ||
1648 | stopped some time ago).</p> | ||
1649 | |||
1650 | <p>Busybox.net is currently hosted on my home | ||
1651 | server, at the end of a DSL line. Unfortunately, | ||
1652 | the load on them is quite heavy. To address this, | ||
1653 | I'm trying to make arrangements to get busybox.net | ||
1654 | co-located directly at an ISP. To assist in the | ||
1655 | co-location effort, <a href= | ||
1656 | "http://www.codepoet.org/~markw">Mark Whitley</a> | ||
1657 | (author of busybox sed, cut, and grep) has donated | ||
1658 | his <a href= | ||
1659 | "http://www.netwinder.org/">NetWinder</a> computer | ||
1660 | for hosting busybox.net and uclibc.org. Once this | ||
1661 | system is co-located, the current speed problems | ||
1662 | should be completely eliminated. Hopefully, too, | ||
1663 | some of you will volunteer to set up some mirror | ||
1664 | sites, to help to distribute the load a bit.</p> | ||
1665 | |||
1666 | <p><!-- | ||
1667 | <center> | ||
1668 | Click here to help support busybox.net! | ||
1669 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> | ||
1670 | <input type="hidden" name="cmd" value="_xclick"> | ||
1671 | <input type="hidden" name="business" value="andersen@codepoet.org"> | ||
1672 | <input type="hidden" name="item_name" value="Support Busybox"> | ||
1673 | <input type="hidden" name="image_url" value="https://codepoet-consulting.com/images/busybox2.jpg"> | ||
1674 | <input type="hidden" name="no_shipping" value="1"> | ||
1675 | <input type="image" src="images/donate.png" border="0" name="submit" alt="Make donation using PayPal"> | ||
1676 | </form> | ||
1677 | </center> | ||
1678 | --> | ||
1679 | Since some people expressed concern over BusyBox | ||
1680 | donations, let me assure you that no one is getting | ||
1681 | rich here. All BusyBox and uClibc donations will be | ||
1682 | spent paying for bandwidth and needed hardware | ||
1683 | upgrades. For example, Mark's NetWinder currently | ||
1684 | has just 64Meg of memory. As demonstrated when | ||
1685 | google spidered the site the other day, 64 Megs in | ||
1686 | not enough, so I'm going to be ordering 256Megs of | ||
1687 | ram and a larger hard drive for the box today. So | ||
1688 | far, donations received have been sufficient to | ||
1689 | cover almost all expenses. In the future, we may | ||
1690 | have co-location fees to worry about, but for now | ||
1691 | we are ok. A <b>HUGE thank-you</b> goes out to | ||
1692 | everyone that has contributed!<br> | ||
1693 | -Erik</p> | ||
1694 | </li> | ||
1695 | |||
1696 | <li> | ||
1697 | <b>20 November 2001 -- BusyBox 0.60.2 released</b> | ||
1698 | |||
1699 | <p>We am very pleased to announce that the BusyBox | ||
1700 | 0.60.2 (stable) is now released to the world. This | ||
1701 | one is primarily a bugfix release for the stable | ||
1702 | series, and it should take care of most everyone's | ||
1703 | needs till we can get the nice new stuff we have | ||
1704 | been working on in CVS ready to release (with the | ||
1705 | wonderful new buildsystem). The biggest change in | ||
1706 | this release (beyond bugfixes) is the fact that msh | ||
1707 | (the minix shell) has been re-worked by Vladimir N. | ||
1708 | Oleynik (vodz) and so it no longer crashes when | ||
1709 | told to do complex things with backticks.</p> | ||
1710 | |||
1711 | <p>This release has been tested on x86, ARM, and | ||
1712 | powerpc using glibc 2.2.4, libc5, and uClibc, so it | ||
1713 | should work with just about any Linux system you | ||
1714 | throw it at. See the <a href= | ||
1715 | "downloads/Changelog">changelog</a> for <small>most | ||
1716 | of</small> the details. The last release was | ||
1717 | <em>very</em> solid for people, and this one should | ||
1718 | be even better.</p> | ||
1719 | |||
1720 | <p>As usual BusyBox 0.60.2 can be downloaded from | ||
1721 | <a href= | ||
1722 | "downloads">http://www.busybox.net/downloads</a>.</p> | ||
1723 | |||
1724 | <p>Have Fun.<br> | ||
1725 | -Erik</p> | ||
1726 | </li> | ||
1727 | |||
1728 | <li> <b>18 November 2001 -- Help us buy busybox.net!</b> | ||
1729 | |||
1730 | <!-- Begin PayPal Logo --> | ||
1731 | <center> | ||
1732 | Click here to help buy busybox.net! | ||
1733 | <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> | ||
1734 | <input type="hidden" name="cmd" value="_xclick"> | ||
1735 | <input type="hidden" name="business" value="andersen@codepoet.org"> | ||
1736 | <input type="hidden" name="item_name" value="Support Busybox"> | ||
1737 | <input type="hidden" name="image_url" value="https://busybox.net/images/busybox2.jpg"> | ||
1738 | <input type="hidden" name="no_shipping" value="1"> | ||
1739 | <input type="image" src="images/donate.png" name="submit" alt="Make donation using PayPal"> | ||
1740 | </form> | ||
1741 | </center> | ||
1742 | <!-- End PayPal Logo --> | ||
1743 | |||
1744 | I've contacted the current owner of busybox.net and he is willing | ||
1745 | to sell the domain name -- for $250. He also owns busybox.org but | ||
1746 | will not part with it... I will then need to pay the registry fee | ||
1747 | for a couple of years and start paying for bandwidth, so this will | ||
1748 | initially cost about $300. I would like to host busybox.net on my | ||
1749 | home machine (codepoet.org) so I have full control over the system, | ||
1750 | but to do that would require that I increase the level of bandwidth | ||
1751 | I am paying for. Did you know that so far this month, there | ||
1752 | have been over 1.4 Gigabytes of busybox ftp downloads? I don't | ||
1753 | even <em>know</em> how much CVS bandwidth it requires. For the | ||
1754 | time being, Lineo has continued to graciously provide this | ||
1755 | bandwidth, despite the fact that I no longer work for them. If I | ||
1756 | start running this all on my home machine, paying for the needed bandwidth | ||
1757 | will start costing some money. | ||
1758 | <p> | ||
1759 | |||
1760 | I was going to pay it all myself, but my wife didn't like that | ||
1761 | idea at all (big surprise). It turns out <insert argument | ||
1762 | where she wins and I don't> she has better ideas | ||
1763 | about what we should spend our money on that don't involve | ||
1764 | busybox. She suggested I should ask for contributions on the | ||
1765 | mailing list and web page. So... | ||
1766 | <p> | ||
1767 | |||
1768 | I am hoping that if everyone could contribute a bit, we could pick | ||
1769 | up the busybox.net domain name and cover the bandwidth costs. I | ||
1770 | know that busybox is being used by a lot of companies as well as | ||
1771 | individuals -- hopefully people and companies that are willing to | ||
1772 | contribute back a bit. So if everyone could please help out, that | ||
1773 | would be wonderful! | ||
1774 | <p> | ||
1775 | |||
1776 | |||
1777 | <li> <b>23 August 2001 -- BusyBox 0.60.1 released</b> | ||
1778 | <br> | ||
1779 | |||
1780 | This is a relatively minor bug fixing release that fixes | ||
1781 | up the bugs that have shown up in the stable release in | ||
1782 | the last few weeks. Fortunately, nothing <em>too</em> | ||
1783 | serious has shown up. This release only fixes bugs -- no | ||
1784 | new features, no new applets. So without further ado, | ||
1785 | here it is. Come and get it. | ||
1786 | <p> | ||
1787 | The | ||
1788 | <a href="downloads/Changelog">changelog</a> has all | ||
1789 | the details. As usual BusyBox 0.60.1 can be downloaded from | ||
1790 | <a href="downloads">http://busybox.net/downloads</a>. | ||
1791 | <p>Have Fun! | ||
1792 | <p> | ||
1793 | |||
1794 | |||
1795 | <li> <b>2 August 2001 -- BusyBox 0.60.0 released</b> | ||
1796 | <br> | ||
1797 | I am very pleased to announce the immediate availability of | ||
1798 | BusyBox 0.60.0. I have personally tested this release with libc5, glibc, | ||
1799 | and <a href="http://uclibc.org/">uClibc</a> on | ||
1800 | x86, ARM, and powerpc using linux 2.2 and 2.4, and I know a number | ||
1801 | of people using it on everything from ia64 to m68k with great success. | ||
1802 | Everything seems to be working very nicely now, so getting a nice | ||
1803 | stable bug-free(tm) release out seems to be in order. This releases fixes | ||
1804 | a memory leak in syslogd, a number of bugs in the ash and msh shells, and | ||
1805 | cleans up a number of things. | ||
1806 | |||
1807 | <p> | ||
1808 | |||
1809 | Those wanting an easy way to test the 0.60.0 release with uClibc can | ||
1810 | use <a href="http://user-mode-linux.sourceforge.net/">User-Mode Linux</a> | ||
1811 | to give it a try by downloading and compiling | ||
1812 | <a href="ftp://busybox.net/buildroot.tar.gz">buildroot.tar.gz</a>. | ||
1813 | You don't have to be root or reboot your machine to run test this way. | ||
1814 | Preconfigured User-Mode Linux kernel source is also on busybox.net. | ||
1815 | <p> | ||
1816 | Another cool thing is the nifty <a href="downloads/tutorial/index.html"> | ||
1817 | BusyBox Tutorial</a> contributed by K Computing. This requires | ||
1818 | a ShockWave plugin (or standalone viewer), so you may want to grab the | ||
1819 | the GPLed shockwave viewer from <a href="http://www.swift-tools.com/Flash/flash-0.4.10.tgz">here</a> | ||
1820 | to view the tutorial. | ||
1821 | <p> | ||
1822 | |||
1823 | Finally, In case you didn't notice anything odd about the | ||
1824 | version number of this release, let me point out that this release | ||
1825 | is <em>not</em> 0.53, because I bumped the version number up a | ||
1826 | bit. This reflects the fact that this release is intended to form | ||
1827 | a new stable BusyBox release series. If you need to rely on a | ||
1828 | stable version of BusyBox, you should plan on using the stable | ||
1829 | 0.60.x series. If bugs show up then I will release 0.60.1, then | ||
1830 | 0.60.2, etc... This is also intended to deal with the fact that | ||
1831 | the BusyBox build system will be getting a major overhaul for the | ||
1832 | next release and I don't want that to break products that people | ||
1833 | are shipping. To avoid that, the new build system will be | ||
1834 | released as part of a new BusyBox development series that will | ||
1835 | have some not-yet-decided-on odd version number. Once things | ||
1836 | stabilize and the new build system is working for everyone, then | ||
1837 | I will release that as a new stable release series. | ||
1838 | |||
1839 | <p> | ||
1840 | The | ||
1841 | <a href="downloads/Changelog">changelog</a> has all | ||
1842 | the details. As usual BusyBox 0.60.0 can be downloaded from | ||
1843 | <a href="downloads">http://busybox.net/downloads</a>. | ||
1844 | <p>Have Fun! | ||
1845 | <p> | ||
1846 | |||
1847 | |||
1848 | <li> <b>7 July 2001 -- BusyBox 0.52 released</b> | ||
1849 | <br> | ||
1850 | |||
1851 | I am very pleased to announce the immediate availability of | ||
1852 | BusyBox 0.52 (the "new-and-improved rock-solid release"). This | ||
1853 | release is the result of <em>many</em> hours of work and has tons | ||
1854 | of bugfixes, optimizations, and cleanups. This release adds | ||
1855 | several new applets, including several new shells (such as hush, msh, | ||
1856 | and ash). | ||
1857 | |||
1858 | <p> | ||
1859 | The | ||
1860 | <a href="downloads/Changelog">changelog</a> covers | ||
1861 | some of the more obvious details, but there are many many things that | ||
1862 | are not mentioned, but have been improved in subtle ways. As usual, | ||
1863 | BusyBox 0.52 can be downloaded from | ||
1864 | <a href="downloads">http://busybox.net/downloads</a>. | ||
1865 | <p>Have Fun! | ||
1866 | <p> | ||
1867 | |||
1868 | |||
1869 | <li> <b>10 April 2001 - Graph of Busybox Growth </b> | ||
1870 | <br> | ||
1871 | The illustrious Larry Doolittle has made a PostScript chart of the growth | ||
1872 | of the Busybox tarball size over time. It is available for downloading / | ||
1873 | viewing <a href="busybox-growth.ps"> right here</a>. | ||
1874 | |||
1875 | <p> (Note that while the number of applets in Busybox has increased, you | ||
1876 | can still configure Busybox to be as small as you want by selectively | ||
1877 | turning off whichever applets you don't need.) | ||
1878 | <p> | ||
1879 | |||
1880 | |||
1881 | <li> <b>10 April 2001 -- BusyBox 0.51 released</b> | ||
1882 | <br> | ||
1883 | |||
1884 | BusyBox 0.51 (the "rock-solid release") is now out there. This | ||
1885 | release adds only 2 new applets: env and vi. The vi applet, | ||
1886 | contributed by Sterling Huxley, is very functional, and is only | ||
1887 | 22k. This release fixes 3 critical bugs in the 0.50 release. | ||
1888 | There were 2 potential segfaults in lash (the busybox shell) in | ||
1889 | the 0.50 release which are now fixed. Another critical bug in | ||
1890 | 0.50 which is now fixed: syslogd from 0.50 could potentially | ||
1891 | deadlock the init process and thereby break your entire system. | ||
1892 | <p> | ||
1893 | |||
1894 | There are a number of improvements in this release as well. For | ||
1895 | one thing, the wget applet is greatly improved. Dmitry Zakharov | ||
1896 | added FTP support, and Laurence Anderson make wget fully RFC | ||
1897 | compliant for HTTP 1.1. The mechanism for including utility | ||
1898 | functions in previous releases was clumsy and error prone. Now | ||
1899 | all utility functions are part of a new libbb library, which makes | ||
1900 | maintaining utility functions much simpler. And BusyBox now | ||
1901 | compiles on itanium systems (thanks to the Debian itanium porters | ||
1902 | for letting me use their system!). | ||
1903 | <p> | ||
1904 | You can read the | ||
1905 | <a href="downloads/Changelog">changelog</a> for | ||
1906 | complete details. BusyBox 0.51 can be downloaded from | ||
1907 | <a href="downloads">http://busybox.net/downloads</a>. | ||
1908 | <p>Have Fun! | ||
1909 | <p> | ||
1910 | |||
1911 | <li> <b>Busybox Boot-Floppy Image</b> | ||
1912 | |||
1913 | <p>Because you asked for it, we have made available a <a href= | ||
1914 | "downloads/busybox.floppy.img"> Busybox boot floppy | ||
1915 | image</a>. Here's how you use it: | ||
1916 | |||
1917 | <ol> | ||
1918 | |||
1919 | <li> <a href="downloads/busybox.floppy.img"> | ||
1920 | Download the image</a> | ||
1921 | |||
1922 | <li> dd it onto a floppy like so: <tt> dd if=busybox.floppy.img | ||
1923 | of=/dev/fd0 ; sync </tt> | ||
1924 | |||
1925 | <li> Pop it in a machine and boot up. | ||
1926 | |||
1927 | </ol> | ||
1928 | |||
1929 | <p> If you want to look at the contents of the initrd image, do this: | ||
1930 | |||
1931 | <pre> | ||
1932 | mount ./busybox.floppy.img /mnt -o loop -t msdos | ||
1933 | cp /mnt/initrd.gz /tmp | ||
1934 | umount /mnt | ||
1935 | gunzip /tmp/initrd.gz | ||
1936 | mount /tmp/initrd /mnt -o loop -t minix | ||
1937 | </pre> | ||
1938 | |||
1939 | |||
1940 | <li> <b>15 March 2001 -- BusyBox 0.50 released</b> | ||
1941 | <br> | ||
1942 | |||
1943 | This release adds several new applets including ifconfig, route, pivot_root, stty, | ||
1944 | and tftp, and also fixes tons of bugs. Tab completion in the | ||
1945 | shell is now working very well, and the shell's environment variable | ||
1946 | expansion was fixed. Tons of other things were fixed or made | ||
1947 | smaller. For a fairly complete overview, see the | ||
1948 | <a href="downloads/Changelog">changelog</a>. | ||
1949 | <p> | ||
1950 | lash (the busybox shell) is still with us, fixed up a bit so it | ||
1951 | now behaves itself quite nicely. It really is quite usable as | ||
1952 | long as you don't expect it to provide Bourne shell grammer. | ||
1953 | Standard things like pipes, redirects, command line editing, and | ||
1954 | environment variable expansion work great. But we have found that | ||
1955 | this shell, while very usable, does not provide an extensible | ||
1956 | framework for adding in full Bourne shell behavior. So the first order of | ||
1957 | business as we begin working on the next BusyBox release will be to merge in the new shell | ||
1958 | currently in progress at | ||
1959 | <a href="http://doolittle.faludi.com/~larry/parser.html">Larry Doolittle's website</a>. | ||
1960 | <p> | ||
1961 | |||
1962 | |||
1963 | <li> <b>27 January 2001 -- BusyBox 0.49 released</b> | ||
1964 | <br> | ||
1965 | |||
1966 | Several new applets, lots of bug fixes, cleanups, and many smaller | ||
1967 | things made nicer. Several cleanups and improvements to the shell. | ||
1968 | For a list of the most interesting changes | ||
1969 | you might want to look at the <a href="downloads/Changelog">changelog</a>. | ||
1970 | <p> | ||
1971 | Special thanks go out to Matt Kraai and Larry Doolittle for all their | ||
1972 | work on this release, and for keeping on top of things while I've been | ||
1973 | out of town. | ||
1974 | <p> | ||
1975 | <em>Special Note</em><br> | ||
1976 | |||
1977 | BusyBox 0.49 was supposed to have replaced lash, the BusyBox | ||
1978 | shell, with a new shell that understands full Bourne shell/Posix shell grammer. | ||
1979 | Well, that simply didn't happen in time for this release. A new | ||
1980 | shell that will eventually replace lash is already under | ||
1981 | construction. This new shell is being developed by Larry | ||
1982 | Doolittle, and could use all of our help. Please see the work in | ||
1983 | progress on <a href="http://doolittle.faludi.com/~larry/parser.html">Larry's website</a> | ||
1984 | and help out if you can. This shell will be included in the next | ||
1985 | release of BusyBox. | ||
1986 | <p> | ||
1987 | |||
1988 | <li> <b>13 December 2000 -- BusyBox 0.48 released</b> | ||
1989 | <br> | ||
1990 | |||
1991 | This release fixes lots and lots of bugs. This has had some very | ||
1992 | rigorous testing, and looks very, very clean. The usual tar | ||
1993 | update of course: tar no longer breaks hardlinks, tar -xzf is | ||
1994 | optionally supported, and the LRP folks will be pleased to know | ||
1995 | that 'tar -X' and 'tar --exclude' are both now in. Applets are | ||
1996 | now looked up using a binary search making lash (the busybox | ||
1997 | shell) much faster. For the new debian-installer (for Debian | ||
1998 | woody) a .udeb can now be generated. | ||
1999 | <p> | ||
2000 | The curious can get a list of some of the more interesting changes by reading | ||
2001 | the <a href="downloads/Changelog">changelog</a>. | ||
2002 | <p> | ||
2003 | Many thanks go out to the many many people that have contributed to | ||
2004 | this release, especially Matt Kraai, Larry Doolittle, and Kent Robotti. | ||
2005 | <p> | ||
2006 | <p> <li> <b>26 September 2000 -- BusyBox 0.47 released</b> | ||
2007 | <br> | ||
2008 | |||
2009 | This release fixes lots of bugs (including an ugly bug in 0.46 | ||
2010 | syslogd that could fork-bomb your system). Added several new | ||
2011 | apps: rdate, wget, getopt, dos2unix, unix2dos, reset, unrpm, | ||
2012 | renice, xargs, and expr. syslogd now supports network logging. | ||
2013 | There are the usual tar updates. Most apps now use getopt for | ||
2014 | more correct option parsing. | ||
2015 | See the <a href="downloads/Changelog">changelog</a> | ||
2016 | for complete details. | ||
2017 | |||
2018 | |||
2019 | <p> <li> <b>11 July 2000 -- BusyBox 0.46 released</b> | ||
2020 | <br> | ||
2021 | |||
2022 | This release fixes several bugs (including a ugly bug in tar, | ||
2023 | and fixes for NFSv3 mount support). Added a dumpkmap to allow | ||
2024 | people to dump a binary keymaps for use with 'loadkmap', and a | ||
2025 | completely reworked 'grep' and 'sed' which should behave better. | ||
2026 | BusyBox shell can now also be used as a login shell. | ||
2027 | See the <a href="downloads/Changelog">changelog</a> | ||
2028 | for complete details. | ||
2029 | |||
2030 | |||
2031 | <p> <li> <b>21 June 2000 -- BusyBox 0.45 released</b> | ||
2032 | <br> | ||
2033 | |||
2034 | This release has been slow in coming, but is very solid at this | ||
2035 | point. BusyBox now supports libc5 as well as GNU libc. This | ||
2036 | release provides the following new apps: cut, tr, insmod, ar, | ||
2037 | mktemp, setkeycodes, md5sum, uuencode, uudecode, which, and | ||
2038 | telnet. There are bug fixes for just about every app as well (see | ||
2039 | the <a href="downloads/Changelog">changelog</a> for | ||
2040 | details). | ||
2041 | <p> | ||
2042 | Also, some exciting infrastructure news! Busybox now has its own | ||
2043 | <a href="lists/busybox/">mailing list</a>, | ||
2044 | publically browsable | ||
2045 | <a href="http://sources.busybox.net/index.py/trunk/busybox/">CVS tree</a>, | ||
2046 | anonymous | ||
2047 | <a href="cvs_anon.html">CVS access</a>, and | ||
2048 | for those that are actively contributing there is even | ||
2049 | <a href="cvs_write.html">CVS write access</a>. | ||
2050 | I think this will be a huge help to the ongoing development of BusyBox. | ||
2051 | <p> | ||
2052 | Also, for the curious, there is no 0.44 release. Somehow 0.44 got announced | ||
2053 | a few weeks ago prior to its actually being released. To avoid any confusion | ||
2054 | we are just skipping 0.44. | ||
2055 | <p> | ||
2056 | Many thanks go out to the many people that have contributed to this release | ||
2057 | of BusyBox (esp. Pavel Roskin)! | ||
2058 | |||
2059 | |||
2060 | <p> <li> <b>19 April 2000 -- syslogd bugfix</b> | ||
2061 | <br> | ||
2062 | Turns out that there was still a bug in busybox syslogd. | ||
2063 | For example, with the following test app: | ||
2064 | <pre> | ||
2065 | #include <syslog.h> | ||
2066 | |||
2067 | int do_log(char* msg, int delay) | ||
2068 | { | ||
2069 | openlog("testlog", LOG_PID, LOG_DAEMON); | ||
2070 | while(1) { | ||
2071 | syslog(LOG_ERR, "%s: testing one, two, three\n", msg); | ||
2072 | sleep(delay); | ||
2073 | } | ||
2074 | closelog(); | ||
2075 | return(0); | ||
2076 | }; | ||
2077 | |||
2078 | int main(void) | ||
2079 | { | ||
2080 | if (fork()==0) | ||
2081 | do_log("A", 2); | ||
2082 | do_log("B", 3); | ||
2083 | } | ||
2084 | </pre> | ||
2085 | it should be logging stuff from both "A" and "B". As released in 0.43 only stuff | ||
2086 | from "A" would have been logged. This means that if init tries to log something | ||
2087 | while say ppp has the syslog open, init would block (which is bad, bad, bad). | ||
2088 | <p> | ||
2089 | Karl M. Hegbloom has created a fix for the problem. | ||
2090 | Thanks Karl! | ||
2091 | |||
2092 | |||
2093 | <p> <li> <b>18 April 2000 -- BusyBox 0.43 released (finally!)</b> | ||
2094 | <br> | ||
2095 | I have finally gotten everything into a state where I feel pretty | ||
2096 | good about things. This is definitely the most stable, solid release | ||
2097 | so far. A lot of bugs have been fixed, and the following new apps | ||
2098 | have been added: sh, basename, dirname, killall, uptime, | ||
2099 | freeramdisk, tr, echo, test, and usleep. Tar has been completely | ||
2100 | rewritten from scratch. Bss size has also been greatly reduced. | ||
2101 | More details are available in the | ||
2102 | <a href="downloads/Changelog">changelog</a>. | ||
2103 | Oh, and as a special bonus, I wrote some fairly comprehensive | ||
2104 | <em>documentation</em>, complete with examples and full usage information. | ||
2105 | |||
2106 | <p> | ||
2107 | Many thanks go out to the fine people that have helped by submitting patches | ||
2108 | and bug reports; particularly instrumental in helping for this release were | ||
2109 | Karl Hegbloom, Pavel Roskin, Friedrich Vedder, Emanuele Caratti, | ||
2110 | Bob Tinsley, Nicolas Pitre, Avery Pennarun, Arne Bernin, John Beppu, and Jim Gleason. | ||
2111 | There were others so if I somehow forgot to mention you, I'm very sorry. | ||
2112 | <p> | ||
2113 | |||
2114 | You can grab BusyBox 0.43 tarballs <a href="downloads">here</a>. | ||
2115 | |||
2116 | <p> <li> <b>9 April 2000 -- BusyBox 0.43 pre release</b> | ||
2117 | <br> | ||
2118 | Unfortunately, I have not yet finished all the things I want to | ||
2119 | do for BusyBox 0.43, so I am posting this pre-release for people | ||
2120 | to poke at. This contains my complete rewrite of tar, which now weighs in at | ||
2121 | 5k (7k with all options turned on) and works for reading and writing | ||
2122 | tarballs (which it does correctly for everything I have been able to throw | ||
2123 | at it). Tar also (optionally) supports the "--exclude" option (mainly because | ||
2124 | the Linux Router Project folks asked for it). This also has a pre-release | ||
2125 | of the micro shell I have been writing. This pre-release should be stable | ||
2126 | enough for production use -- it just isn't a release since I have some structural | ||
2127 | changes I still want to make. | ||
2128 | <p> | ||
2129 | The pre-release can be found <a href="downloads">here</a>. | ||
2130 | Please let me know ASAP if you find <em>any</em> bugs. | ||
2131 | |||
2132 | <p> <li> <b>28 March 2000 -- Andersen Baby Boy release</b> | ||
2133 | <br> | ||
2134 | I am pleased to announce that on Tuesday March 28th at 5:48pm, weighing in at 7 | ||
2135 | lbs. 12 oz, Micah Erik Andersen was born at LDS Hospital here in Salt Lake City. | ||
2136 | He was born in the emergency room less then 5 minutes after we arrived -- and | ||
2137 | it was such a relief that we even made it to the hospital at all. Despite the | ||
2138 | fact that I was driving at an amazingly unlawful speed and honking at everybody | ||
2139 | and thinking decidedly unkind thoughts about the people in our way, my wife | ||
2140 | (inconsiderate of my feelings and complete lack of medical training) was lying | ||
2141 | down in the back seat saying things like "I think I need to start pushing now" | ||
2142 | (which she then proceeded to do despite my best encouraging statements to the | ||
2143 | contrary). | ||
2144 | <p> | ||
2145 | Anyway, I'm glad to note that despite the much-faster-than-we-were-expecting | ||
2146 | labor, both Shaunalei and our new baby boy are doing wonderfully. | ||
2147 | <p> | ||
2148 | So now that I am done with my excuse for the slow release cycle... | ||
2149 | Progress on the next release of BusyBox has been slow but steady. I expect | ||
2150 | to have a release sometime during the first week of April. This release will | ||
2151 | include a number of important changes, including the addition of a shell, a | ||
2152 | re-write of tar (to accommodate the Linux Router Project), and syslogd can now | ||
2153 | accept multiple concurrent connections, fixing lots of unexpected blocking | ||
2154 | problems. | ||
2155 | |||
2156 | |||
2157 | <p> <li> <b>11 February 2000 -- BusyBox 0.42 released</b> | ||
2158 | <br> | ||
2159 | |||
2160 | This is the most solid BusyBox release so far. Many, many | ||
2161 | bugs have been fixed. See the | ||
2162 | <a href="downloads/Changelog">changelog</a> for details. | ||
2163 | |||
2164 | Of particular interest, init will now cleanly unmount | ||
2165 | filesystems on reboot, cp and mv have been rewritten and | ||
2166 | behave much better, and mount and umount no longer leak | ||
2167 | loop devices. Many thanks go out to Randolph Chung, | ||
2168 | Karl M. Hegbloom, Taketoshi Sano, and Pavel Roskin for | ||
2169 | their hard work on this release of BusyBox. Please pound | ||
2170 | on it and let me know if you find any bugs. | ||
2171 | |||
2172 | <p> <li> <b>19 January 2000 -- BusyBox 0.41 released</b> | ||
2173 | <br> | ||
2174 | |||
2175 | This release includes bugfixes to cp, mv, logger, true, false, | ||
2176 | mkdir, syslogd, and init. New apps include wc, hostid, | ||
2177 | logname, tty, whoami, and yes. New features include loop device | ||
2178 | support in mount and umount, and better TERM handling by init. | ||
2179 | The changelog can be found <a href="downloads/Changelog">here</a>. | ||
2180 | |||
2181 | <p> <li> <b>7 January 2000 -- BusyBox 0.40 released</b> | ||
2182 | <br> | ||
2183 | |||
2184 | This release includes bugfixes to init (now includes inittab support), | ||
2185 | syslogd, head, logger, du, grep, cp, mv, sed, dmesg, ls, kill, gunzip, and mknod. | ||
2186 | New apps include sort, uniq, lsmod, rmmod, fbset, and loadacm. | ||
2187 | In particular, this release fixes an important bug in tar which | ||
2188 | in some cases produced serious security problems. | ||
2189 | As always, the changelog can be found <a href="downloads/Changelog">here</a>. | ||
2190 | |||
2191 | <p> <li> <b>11 December 1999 -- BusyBox Website</b> | ||
2192 | <br> | ||
2193 | I have received permission from Bruce Perens (the original author of BusyBox) | ||
2194 | to set up this site as the new primary website for BusyBox. This website | ||
2195 | will always contain pointers to the latest and greatest, and will also | ||
2196 | contain the latest documentation on how to use BusyBox, what it can do, | ||
2197 | what arguments its apps support, etc. | ||
2198 | |||
2199 | <p> <li> <b>10 December 1999 -- BusyBox 0.39 released</b> | ||
2200 | <br> | ||
2201 | This release includes fixes to init, reboot, halt, kill, and ls, and contains | ||
2202 | the new apps ping, hostname, mkfifo, free, tail, du, tee, and head. A full | ||
2203 | changelog can be found <a href="downloads/Changelog">here</a>. | ||
2204 | <p> <li> <b>5 December 1999 -- BusyBox 0.38 released</b> | ||
2205 | <br> | ||
2206 | This release includes fixes to tar, cat, ls, dd, rm, umount, find, df, | ||
2207 | and make install, and includes new apps syslogd/klogd and logger. | ||
2208 | |||
2209 | |||
2210 | </ul> | ||
2211 | |||
2212 | |||
2213 | <!--#include file="footer.html" --> | ||
2214 | |||
diff --git a/docs/busybox.net/products.html b/docs/busybox.net/products.html deleted file mode 100644 index 7bb07f71d..000000000 --- a/docs/busybox.net/products.html +++ /dev/null | |||
@@ -1,165 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | |||
4 | <h3>Products/Projects Using BusyBox</h3> | ||
5 | |||
6 | Do you use BusyBox? I'd love to know about it and | ||
7 | I'd be happy to link to you. | ||
8 | |||
9 | <p> | ||
10 | I know of the following projects that use BusyBox -- | ||
11 | listed in the order I happen to add them to the web page: | ||
12 | |||
13 | <ul> | ||
14 | |||
15 | <li><a href="http://buildroot.uclibc.org/">buildroot</a><br>A configurable | ||
16 | means for building your own busybox/uClibc based system systems, maintained | ||
17 | by the uClibc developers. | ||
18 | |||
19 | <li><a href="http://openwrt.org">OpenWrt</a> a Linux distribution for embedded | ||
20 | devices, based on buildroot. | ||
21 | |||
22 | <li><a href="http://www.pengutronix.de/software/ptxdist_en.html">PTXdist</a> | ||
23 | <br>another configurable means for building your own busybox based systems. | ||
24 | |||
25 | <li><a href= | ||
26 | "http://cvs.debian.org/boot-floppies/"> | ||
27 | Debian installer (boot floppies) project</a> | ||
28 | |||
29 | <li><a href="http://redhat.com/">Red Hat installer</a> | ||
30 | |||
31 | <li><a href= | ||
32 | "http://distro.ibiblio.org/pub/Linux/distributions/slackware/slackware-current/source/rootdisks/"> | ||
33 | Slackware Installer</a> | ||
34 | |||
35 | <li><a href="http://www.gentoo.org/">Gentoo Linux install/boot CDs</a> | ||
36 | <li><a href="http://www.mandriva.com/">The Mandriva installer</a> | ||
37 | |||
38 | <li><a href="http://Leaf.SourceForge.net">Linux Embedded Appliance Firewall</a> | ||
39 | <br>The sucessor of the Linux Router Project, supporting all sorts | ||
40 | of embedded Linux gateways, routers, wireless routers, and firewalls. | ||
41 | |||
42 | <li><a href= | ||
43 | "http://www.toms.net/rb/">tomsrtbt</a> | ||
44 | |||
45 | <li><a href="http://www.stormix.com/">Stormix Installer</a> | ||
46 | |||
47 | <li><a href="http://www.emacinc.com/linux2_sbc.htm">EMAC Linux 2.0 SBC</a> | ||
48 | |||
49 | <li><a href="http://www.trinux.org/">Trinux</a> | ||
50 | |||
51 | <li><a href="http://oddas.sourceforge.net/">ODDAS project</a> | ||
52 | |||
53 | <li><a href="http://byld.sourceforge.net/">Build Your Linux Disk</a> | ||
54 | |||
55 | <li><a href= | ||
56 | "http://ibiblio.org/pub/Linux/system/recovery">Zdisk</a> | ||
57 | |||
58 | <li><a href="http://www.adtran.com">AdTran - | ||
59 | VPN/firewall VPN Linux Distribution</a> | ||
60 | |||
61 | <li><a href="http://mkcdrec.ota.be/">mkCDrec - make CD-ROM recovery</a> | ||
62 | |||
63 | <li><a href="http://recycle.lbl.gov/~ldoolitt/bse/">Linux on nanoEngine</a> | ||
64 | |||
65 | <li><a href="http://www.zelow.no/floppyfw/">Floppyfw</a> | ||
66 | |||
67 | <li><a href="http://www.ltsp.org/">Linux Terminal Server Project</a> | ||
68 | |||
69 | <li><a href="http://www.devil-linux.org/">Devil-Linux</a> | ||
70 | |||
71 | <li><a href="http://dutnux.sourceforge.net/">DutNux</a> | ||
72 | |||
73 | <li><a href="http://www.microwerks.net/~hugo/mindi/">Mindi</a> | ||
74 | |||
75 | <li><a href="http://www.minimalinux.org/ttylinux/">ttylinux</a> | ||
76 | |||
77 | <li><a href="http://www.coyotelinux.com/">Coyote Linux</a> | ||
78 | |||
79 | <li><a href="http://www.partimage.org/">Partition Image</a> | ||
80 | |||
81 | <li><a href="http://www.fli4l.de/">fli4l the on(e)-disk-router</a> | ||
82 | |||
83 | <li><a href="http://tinfoilhat.cultists.net/">Tinfoil Hat Linux</a> | ||
84 | |||
85 | <li><a href="http://sourceforge.net/projects/gp32linux/">gp32linux</a> | ||
86 | <li><a href="http://familiar.handhelds.org/">Familiar Linux</a><br>A linux distribution for handheld computers | ||
87 | <li><a href="http://rescuecd.sourceforge.net/">Timo's Rescue CD Set</a> | ||
88 | <li><a href="http://sf.net/projects/netstation/">Netstation</a> | ||
89 | <li><a href="http://www.fiwix.org/">GNU/Fiwix Operating System</a> | ||
90 | <li><a href="http://www.softcraft.com/">Generations Linux</a> | ||
91 | <li><a href="http://systemimager.org/relatedprojects/">SystemImager / System Installation Suite</a> | ||
92 | <li><a href="http://www.bablokb.de/gendist/">GENDIST distribution generator</a> | ||
93 | <li><a href="http://diet-pc.sourceforge.net/">DIET-PC embedded Linux thin client distribution</a> | ||
94 | <li><a href="http://byzgl.sourceforge.net/">BYZantine Gnu/Linux</a> | ||
95 | <li><a href="http://dban.sourceforge.net/">Darik's Boot and Nuke</a> | ||
96 | <li><a href="http://www.timesys.com/">TimeSys real-time Linux</a> | ||
97 | <li><a href="http://movix.sf.net/">MoviX</a><br>Boots from CD and automatically plays every video file on the CD | ||
98 | <li><a href="http://katamaran.sourceforge.net">katamaran</a><br>Linux, X11, xfce windowmanager, based on BusyBox | ||
99 | <li><a href="http://www.sourceforge.net/projects/simplygnustep">Prometheus SimplyGNUstep</a> | ||
100 | <li><a href="http://www.renyi.hu/~ekho/lowlife/">lowlife</a><br>A documentation project on how to make your own uClibc-based systems and floppy. | ||
101 | <li><a href="http://metadistros.hispalinux.es/">Metadistros</a><br>a project to allow you easily make Live-CD distributions. | ||
102 | <li><a href="http://salvare.sourceforge.net/">Salvare</a><br>More Linux than tomsrtbt but less than Knoppix, aims to provide a useful workstation as well as a rescue disk. | ||
103 | <li><a href="http://www.stresslinux.org/">stresslinux</a><br>minimal linux distribution running from a bootable cdrom or via PXE. | ||
104 | <li><a href="http://thinstation.sourceforge.net/">thinstation</a><br>convert standard PCs into full-featured diskless thinclients. | ||
105 | <li><a href="http://www.uhulinux.hu/">UHU-Linux Hungary</a> | ||
106 | <li><a href="http://deep-water.berlios.de/">Deep-Water Linux</a> | ||
107 | <li><a href="http://www.freesco.org/">Freesco router</a> | ||
108 | <li><a href="http://Sentry.SourceForge.net/">Sentry Firewall CD</a> | ||
109 | |||
110 | </ul> | ||
111 | |||
112 | <p> | ||
113 | And here are products that use BusyBox -- | ||
114 | |||
115 | <ul> | ||
116 | |||
117 | <li><a href="http://www.dream-multimedia-tv.de/">Dreambox (Linux based PVR)</a> | ||
118 | <li><a href="http://www.elpa.it/eng/rd129gb.html">RD129 embedded board from ELPA</a> | ||
119 | <li>EMTEC MovieCube R700 uses Busybox 1.1.3. | ||
120 | <li><a href="http://tuxscreen.net">Tuxscreen Linux Phone</a> | ||
121 | <li><a href="http://www.kerbango.com/">The Kerbango Internet Radio</a> | ||
122 | <li><a href="http://www.linuxmagic.com/vpn/">LinuxMagic VPN Firewall</a> | ||
123 | <li><a href="http://www.isilver-inc.com/">I-Silver Linux appliance servers</a> | ||
124 | <li><a href="http://zaurus.sourceforge.net/">Sharp Zaurus PDA</a> | ||
125 | <li><a href="http://www.cyclades.com/">Cyclades-TS and other Cyclades products</a> | ||
126 | <li><a href="http://www.linksys.com/products/product.asp?prid=508">Linksys WRT54G - Wireless-G Broadband Router</a> | ||
127 | <li><a href="http://www.dell.com/us/en/biz/topics/sbtopic_005_truemobile.htm">Dell TrueMobile 1184</a> | ||
128 | <li><a href="http://actiontec.com/products/modems/dual_pcmodem/dpm_overview.html">Actiontec Dual PC Modem</a> | ||
129 | <li><a href="http://www.kiss-technology.com/">Kiss DP Series DVD players</a> | ||
130 | <li><a href="http://www.netgear.com/products/prod_details.asp?prodID=170">NetGear WG602 wireless router</a> | ||
131 | <br>with sources <a href="http://www.netgear.com/support/support_details.asp?dnldID=453">here</a> | ||
132 | <li><a href="http://www.trendware.com/products/TEW-411BRP.htm">TRENDnet TEW-411BRP 802.11g Wireless AP/Router/Switch</a> | ||
133 | <br>Source for busybox and udhcp <a href="http://www.trendware.com/asp/download/fileinfo.asp?file_id=277&B1=Search">here</a> though no kernel source is provided. | ||
134 | <li><a href="http://www.buffalo-technology.com/webcontent/products/wireless/wbr-g54.htm">Buffalo WBR-G54 wireless router</a> | ||
135 | <li><a href="http://www.asus.com/products/communication/wireless/wl-300g/overview.htm">ASUS WL-300g Wireless LAN Access Point</a> | ||
136 | <br>with source<a href="http://www.asus.com.tw/support/download/item.aspx?ModelName=WL-300G">here</a> | ||
137 | <li><a href="http://catalog.belkin.com/IWCatProductPage.process?Merchant_Id=&Section_Id=201522&pcount=&Product_Id=136493">Belkin 54g Wireless DSL/Cable Gateway Router</a> | ||
138 | <br>with source<a href="http://web.belkin.com/support/gpl.asp">here</a> | ||
139 | <li><a href="http://www.acronis.com/products/partitionexpert/">Acronis PartitionExpert 2003</a> | ||
140 | <br>includes a heavily modified BusyBox v0.60.5 with built in | ||
141 | cardmgr, device detection, gpm, lspci, etc. Also includes udhcp, | ||
142 | uClibc 0.9.26, a heavily patched up linux kernel, etc. Source | ||
143 | can only be obtained <a href="http://www.acronis.com/files/gpl/linux.tar.bz2">here</a> | ||
144 | |||
145 | <li><a href="http://www.usr.com/">U.S. Robotics Sureconnect 4-port ADSL router</a><br> | ||
146 | with source <a href="http://www.usr.com/support/s-gpl-code.asp">here</a> | ||
147 | <li><a href="http://www.actiontec.com/products/broadband/54mbps_wireless_gateway_1p/index.html"> | ||
148 | ActionTec GT701-WG Wireless Gateway/DSL Modem</a> | ||
149 | with source <a href="http://opensource.actiontec.com/">here</a> | ||
150 | <li><a href="http://smartlinux.sourceforge.net/">S.M.A.R.T. Linux</a> | ||
151 | <li><a href="http://www.dlink.com/">DLink - Model GSL-G604T, DSL-300T, and possibly other models</a> | ||
152 | with source <a href="ftp://ftp.dlink.co.uk/dsl_routers_modems/">here,</a> | ||
153 | with source <a href="ftp://ftp.dlink.de/dsl-products/">and here,</a> | ||
154 | and quite possibly other places as well. You may need to dig down a bit | ||
155 | to find the source, but it does seem to be there. | ||
156 | <li><a href="http://www.siemens-mobile.de/cds/frontdoor/0,2241,de_de_0_42931_rArNrNrNrN,00.html">Siemens SE515 DSL router</a> | ||
157 | with source <a href="http://now-portal.c-lab.de/projects/gigaset/">here, I think...</a> | ||
158 | with some details <a href="http://heinz.hippenstiel.org/familie/hp/hobby/gigaset_se515dsl.html">here.</a> | ||
159 | <li><a href="http://freeterm.spb.ru/frwt/">Free Remote Windows Terminal</a> | ||
160 | |||
161 | <li><a href="http://www.zyxel.com/">ZyXEL Routers</a> | ||
162 | |||
163 | </ul> | ||
164 | |||
165 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/screenshot.html b/docs/busybox.net/screenshot.html deleted file mode 100644 index c5ef18bc7..000000000 --- a/docs/busybox.net/screenshot.html +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | |||
4 | <!-- Begin Screenshot --> | ||
5 | |||
6 | <h3> Busybox Screenshot! </h3> | ||
7 | |||
8 | |||
9 | Everybody loves to look at screenshots, so here is a live action screenshot of BusyBox. | ||
10 | |||
11 | <pre style="background-color: black; color: lightgreen; padding: 5px; | ||
12 | font-family: monospace; font-size: smaller;" width="100"> | ||
13 | |||
14 | $ busybox | ||
15 | BusyBox v1.10.1 (2008-04-24 11:30:07 CEST) multi-call binary | ||
16 | Copyright (C) 1998-2007 Erik Andersen, Rob Landley, Denys Vlasenko | ||
17 | and others. Licensed under GPLv2. | ||
18 | See source distribution for full notice. | ||
19 | |||
20 | Usage: busybox [function] [arguments]... | ||
21 | or: function [arguments]... | ||
22 | |||
23 | BusyBox is a multi-call binary that combines many common Unix | ||
24 | utilities into a single executable. Most people will create a | ||
25 | link to busybox for each function they wish to use and BusyBox | ||
26 | will act like whatever it was invoked as! | ||
27 | |||
28 | Currently defined functions: | ||
29 | [, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash, | ||
30 | awk, basename, bbconfig, brctl, bunzip2, bzcat, bzip2, | ||
31 | cal, cat, catv, chat, chattr, chcon, chgrp, chmod, chown, | ||
32 | chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, | ||
33 | comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, | ||
34 | date, dc, dd, deallocvt, delgroup, deluser, devfsd, df, | ||
35 | dhcprelay, diff, dirname, dmesg, dnsd, dos2unix, dpkg, | ||
36 | dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, | ||
37 | env, envdir, envuidgid, ether-wake, expand, expr, fakeidentd, | ||
38 | false, fbset, fdflush, fdformat, fdisk, fetchmail, fgrep, | ||
39 | find, findfs, fold, free, freeramdisk, fsck, fsck.minix, | ||
40 | ftpget, ftpput, fuser, getenforce, getopt, getsebool, | ||
41 | getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump, | ||
42 | hostid, hostname, httpd, hush, hwclock, id, ifconfig, | ||
43 | ifdown, ifenslave, ifup, inetd, init, insmod, install, | ||
44 | ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, | ||
45 | iptunnel, kbd_mode, kill, killall, killall5, klogd, lash, | ||
46 | last, length, less, linux32, linux64, linuxrc, ln, load_policy, | ||
47 | loadfont, loadkmap, logger, login, logname, logread, losetup, | ||
48 | lpd, lpq, lpr, ls, lsattr, lsmod, lzmacat, makedevs, matchpathcon, | ||
49 | md5sum, mdev, mesg, microcom, mkdir, mkfifo, mkfs.minix, | ||
50 | mknod, mkswap, mktemp, modprobe, more, mount, mountpoint, | ||
51 | msh, mt, mv, nameif, nc, netstat, nice, nmeter, nohup, | ||
52 | nslookup, od, openvt, passwd, patch, pgrep, pidof, ping, | ||
53 | ping6, pipe_progress, pivot_root, pkill, poweroff, printenv, | ||
54 | printf, ps, pscan, pwd, raidautorun, rdate, readahead, | ||
55 | readlink, readprofile, realpath, reboot, renice, reset, | ||
56 | resize, restorecon, rm, rmdir, rmmod, route, rpm, rpm2cpio, | ||
57 | rtcwake, run-parts, runcon, runlevel, runsv, runsvdir, | ||
58 | rx, script, sed, selinuxenabled, sendmail, seq, sestatus, | ||
59 | setarch, setconsole, setenforce, setfiles, setkeycodes, | ||
60 | setlogcons, setsebool, setsid, setuidgid, sha1sum, slattach, | ||
61 | sleep, softlimit, sort, split, start-stop-daemon, stat, | ||
62 | strings, stty, su, sulogin, sum, sv, svlogd, swapoff, | ||
63 | swapon, switch_root, sync, sysctl, syslogd, tac, tail, | ||
64 | tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, | ||
65 | tftpd, time, top, touch, tr, traceroute, true, tty, ttysize, | ||
66 | udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, | ||
67 | uniq, unix2dos, unlzma, unzip, uptime, usleep, uudecode, | ||
68 | uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, | ||
69 | which, who, whoami, xargs, yes, zcat, zcip | ||
70 | |||
71 | $ <span style="text-decoration:blink;">_</span> | ||
72 | |||
73 | </pre> | ||
74 | |||
75 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/shame.html b/docs/busybox.net/shame.html deleted file mode 100644 index d9da44b69..000000000 --- a/docs/busybox.net/shame.html +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | |||
4 | <h3>Hall of Shame!!!</h3> | ||
5 | |||
6 | <p>This page is no longer updated, these days we forward this sort of | ||
7 | thing to the <a href="http://www.softwarefreedom.org">Software Freedom Law | ||
8 | Center</a> instead.</p> | ||
9 | |||
10 | <p>The following products and/or projects appear to use BusyBox, but do not | ||
11 | appear to release source code as required by the <a | ||
12 | href="/license.html">BusyBox license</a>. This is a violation of the law! | ||
13 | The distributors of these products are invited to contact <a href= | ||
14 | "mailto:andersen@codepoet.org">Erik Andersen</a> if they have any confusion | ||
15 | as to what is needed to bring their products into compliance, or if they have | ||
16 | already brought their product into compliance and wish to be removed from the | ||
17 | Hall of Shame. | ||
18 | |||
19 | <p> | ||
20 | |||
21 | Here are the details of <a href="/license.html">exactly how to comply | ||
22 | with the BusyBox license</a>, so there should be no question as to | ||
23 | exactly what is expected. | ||
24 | Complying with the Busybox license is easy and completely free, so the | ||
25 | companies listed below should be ashamed of themselves. Furthermore, each | ||
26 | product listed here is subject to being legally ordered to cease and desist | ||
27 | distribution for violation of copyright law, and the distributor of each | ||
28 | product is subject to being sued for statutory copyright infringement damages | ||
29 | of up to $150,000 per work plus legal fees. Nobody wants to be sued, and <a | ||
30 | href="mailto:andersen@codepoet.org">Erik</a> certainly would prefer to spend | ||
31 | his time doing better things than sue people. But he will sue if forced to | ||
32 | do so to maintain compliance. | ||
33 | |||
34 | <p> | ||
35 | |||
36 | Do everyone a favor and don't break the law -- if you use busybox, comply with | ||
37 | the busybox license by releasing the source code with your product. | ||
38 | |||
39 | <p> | ||
40 | |||
41 | <ul> | ||
42 | |||
43 | <li><a href="http://www.trittontechnologies.com/products.html">Tritton Technologies NAS120</a> | ||
44 | <br>see <a href="http://www.ussg.iu.edu/hypermail/linux/kernel/0404.0/1611.html">here for details</a> | ||
45 | <li><a href="http://www.macsense.com/product/homepod/">Macsense HomePod</a> | ||
46 | <br>with details | ||
47 | <a href="http://developer.gloolabs.com/modules.php?op=modload&name=Forums&file=viewtopic&topic=123&forum=7">here</a> | ||
48 | <li><a href="http://www.cpx.com/products.asp?c=Wireless+Products">Compex Wireless Products</a> | ||
49 | <br>appears to be running v0.60.5 with Linux version 2.4.20-uc0 on ColdFire, | ||
50 | but no source code is mentioned or offered. | ||
51 | <li><a href="http://www.inventel.com/en/product/datasheet/10/">Inventel DW 200 wireless/ADSL router</a> | ||
52 | <li><a href="http://www.sweex.com/product.asp">Sweex DSL router</a> | ||
53 | <br>appears to be running BusyBox v1.00-pre2 and udhcpd, but no source | ||
54 | code is mentioned or offered. | ||
55 | <li><a href="http://www.trendware.com/products/TEW-410APB.htm">TRENDnet TEW-410APB</a> | ||
56 | </li><li><a href="http://www.hauppauge.com/Pages/products/data_mediamvp.html">Hauppauge Media MVP</a> | ||
57 | <br>Hauppauge contacted me on 16 Dec 2003, and claims to be working on resolving this problem. | ||
58 | </li><li><a href="http://www.hitex.com/download/adescom/data/">TriCore</a> | ||
59 | </li><li><a href="http://www.allnet.de/">ALLNET 0186 wireless router</a> | ||
60 | </li><li><a href="http://www.dmmtv.com/">Dreambox DM7000S DVB Satellite Receiver</a> | ||
61 | <br> Dream Multimedia contacted me on 22 Dec 2003 and is working on resolving this problem. | ||
62 | <br> Source _may_ be here: http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/tuxbox/cdk/ | ||
63 | </li><li><a href="http://testing.lkml.org/slashdot.php?mid=331690">Sigma Designs EM8500 based DVD players</a> | ||
64 | <br>Source for the Sigma Designs reference platform is found here<br> | ||
65 | <a href="http://www.uclinux.org/pub/uClinux/ports/arm/EM8500/uClinux-2.4-sigma.tar.gz">uClinux-2.4-sigma.tar.gz</a>, so while Sigma Designs itself appears to be in compliance, as far as I can tell, | ||
66 | no vendors of Sigma Designs EM8500 based devices actually comply with the GPL.... | ||
67 | </li><li><a href="http://testing.lkml.org/slashdot.php?mid=433790">Liteon LVD2001 DVD player using the Sigma Designs EM8500</a> | ||
68 | </li><li><a href="http://www.rimax.net/">Rimax DVD players using the Sigma Designs EM8500</a> | ||
69 | </li><li><a href="http://www.vinc.us/">Bravo DVD players using the Sigma Designs EM8500</a> | ||
70 | </li><li><a href="http://www.hb-direct.com/">H&B DX3110 Divx player based on Sigma Designs EM8500</a> | ||
71 | </li><li><a href="http://www.recospa.it/mdpro1/index.php">United *DVX4066 mpeg4 capable DVD players</a> | ||
72 | </li><li><a href="http://www.a-link.com/RR64AP.html">Avaks alink Roadrunner 64</a> | ||
73 | <br> Partial source available, based on source distributed under NDA from <a href="http://www.lsilogic.com/products/dsl_platform_solutions/hb_linuxr2_2.html"> LSILogic</a>. Why the NDA LSILogic, what are you hiding ? | ||
74 | <br>To verify the Avaks infrigment see my slashdot <a href="http://slashdot.org/~bug1/journal/">journal</a>. | ||
75 | <br>The ZipIt wireless IM device appears to be using Busybox-1.00-pre1 in the ramdisk, however no source has been made available. | ||
76 | </li><li>Undoubtedly there are others... Please report them so we can shame them (or if necessary sue them) into compliance. | ||
77 | |||
78 | </ul> | ||
79 | |||
80 | |||
81 | <!--#include file="footer.html" --> | ||
82 | |||
diff --git a/docs/busybox.net/sponsors.html b/docs/busybox.net/sponsors.html deleted file mode 100644 index e52adfc8e..000000000 --- a/docs/busybox.net/sponsors.html +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>Sponsors</h3> | ||
4 | |||
5 | <p>Please visit our sponsors and thank them for their support! They have | ||
6 | provided money for equipment and bandwidth. Next time you need help with a | ||
7 | project, consider these fine companies!</p> | ||
8 | |||
9 | |||
10 | <ul> | ||
11 | <li><a href="http://osuosl.org/">OSU OSL</a><br> | ||
12 | OSU OSL kindly provides hosting for BusyBox and uClibc. | ||
13 | </li> | ||
14 | |||
15 | <li><a href="http://www.codepoet-consulting.com/">Codepoet Consulting</a><br> | ||
16 | Custom Linux, embedded Linux, BusyBox, and uClibc development. | ||
17 | </li> | ||
18 | |||
19 | <li><a href="http://www.laptopcomputers.org/">Laptop Computers</a> contributes | ||
20 | financially. | ||
21 | </li> | ||
22 | |||
23 | <li>AOE media, a <a href="http://www.aoemedia.com/typo3-development.html"> | ||
24 | TYPO3 development agency</a> contributes financially. | ||
25 | </li> | ||
26 | |||
27 | <li><a href="http://www.analog.com/en/">Analog Devices, Inc.</a> provided | ||
28 | a <a href="http://docs.blackfin.uclinux.org/doku.php?id=bf537_quick_start"> | ||
29 | Blackfin development board</a> free of charge. | ||
30 | <a href="http://www.analog.com/blackfin">Blackfin</a> | ||
31 | is a NOMMU processor, and its availability for testing is invaluable. | ||
32 | If you are an embedded device developer, | ||
33 | please note that Analog Devices has entire Linux distribution available | ||
34 | for download for this board. Visit | ||
35 | <a href="http://blackfin.uclinux.org/">http://blackfin.uclinux.org/</a> | ||
36 | for more information. | ||
37 | </li> | ||
38 | |||
39 | <li><a href="http://www.timesys.com/">TimeSys</a><br> | ||
40 | Embedded Linux development, cross-compilers, real-time, KGDB, tsrpm and cygwin. | ||
41 | </li> | ||
42 | |||
43 | <li><a href="http://www.penguru.net/">Penguru Consulting</a><br> | ||
44 | Custom development for embedded Linux systems and multimedia platforms. | ||
45 | </li> | ||
46 | |||
47 | <li><a href="http://opensource.se/">opensource.se</a><br> | ||
48 | Embedded open source consulting in Europe. | ||
49 | </li> | ||
50 | |||
51 | </ul> | ||
52 | |||
53 | <p>If you wish to be a sponsor, or if you have already contributed and would | ||
54 | like your name added here, email <a href="mailto:vda.linux@gmail.com">Denys</a>.</p> | ||
55 | |||
56 | <!--#include file="footer.html" --> | ||
diff --git a/docs/busybox.net/subversion.html b/docs/busybox.net/subversion.html deleted file mode 100644 index 2c4517a35..000000000 --- a/docs/busybox.net/subversion.html +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | <h3>Accessing Source</h3> | ||
4 | |||
5 | |||
6 | |||
7 | <h3>Patches</h3> | ||
8 | |||
9 | <p>You can <a href="downloads/">download</a> fixes for particular releases | ||
10 | of busybox, e.g. downloads/fixes-<em>major</em>-<em>minor</em>-<em>patch</em>/ | ||
11 | |||
12 | <h3>Anonymous Subversion Access</h3> | ||
13 | |||
14 | We allow anonymous (read-only) Subversion (svn) access to everyone. To | ||
15 | grab a copy of the latest version of BusyBox using anonymous svn access: | ||
16 | |||
17 | <pre> | ||
18 | svn co svn://busybox.net/trunk/busybox</pre> | ||
19 | |||
20 | <p> | ||
21 | The <em>stable branches</em> can be obtained with | ||
22 | <pre> | ||
23 | svn co svn://busybox.net/branches/busybox_1_NN_stable | ||
24 | </pre> | ||
25 | |||
26 | <p> | ||
27 | |||
28 | If you are not already familiar with using Subversion, I recommend you visit <a | ||
29 | href="http://subversion.tigris.org/">the Subversion website</a>. You might | ||
30 | also want to read online or buy a copy of <a | ||
31 | href="http://svnbook.red-bean.com/">the Subversion Book</a>. If you are | ||
32 | already comfortable with using CVS, you may want to skip ahead to the <a | ||
33 | href="http://svnbook.red-bean.com/en/1.1/apa.html">Subversion for CVS Users</a> | ||
34 | part of the Subversion Book. | ||
35 | |||
36 | <p> | ||
37 | |||
38 | Once you've checked out a copy of the source tree, you can update your source | ||
39 | tree at any time so it is in sync with the latest and greatest by entering your | ||
40 | BusyBox directory and running the command: | ||
41 | |||
42 | <pre> | ||
43 | svn update</pre> | ||
44 | |||
45 | Because you've only been granted anonymous access to the tree, you won't be | ||
46 | able to commit any changes. Changes can be submitted for inclusion by posting | ||
47 | them to the BusyBox mailing list. For those that are actively contributing | ||
48 | <a href="developer.html">Subversion commit access</a> can be made available. | ||
49 | |||
50 | <!--#include file="footer.html" --> | ||
51 | |||
diff --git a/docs/busybox.net/svnindex.css b/docs/busybox.net/svnindex.css deleted file mode 100644 index b1ca24a05..000000000 --- a/docs/busybox.net/svnindex.css +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | /* A sample style sheet for displaying the Subversion directory listing | ||
2 | that is generated by mod_dav_svn and "svnindex.xsl". */ | ||
3 | |||
4 | body{ | ||
5 | margin: 0; | ||
6 | padding: 0; | ||
7 | } | ||
8 | |||
9 | a { | ||
10 | color: navy; | ||
11 | } | ||
12 | |||
13 | .header { | ||
14 | padding-top: 5px; | ||
15 | text-align: center; | ||
16 | } | ||
17 | |||
18 | .footer { | ||
19 | margin-top: 8em; | ||
20 | padding: 0.5em 1em 0.5em; | ||
21 | border: 1px solid; | ||
22 | border-width: 1px 0; | ||
23 | clear: both; | ||
24 | border-color: rgb(30%,30%,50%) navy rgb(75%,80%,85%) navy; | ||
25 | background: rgb(88%,90%,92%); | ||
26 | font-size: 80%; | ||
27 | } | ||
28 | |||
29 | .svn { | ||
30 | margin: 3em; | ||
31 | } | ||
32 | |||
33 | .rev { | ||
34 | margin-right: 3px; | ||
35 | padding-left: 3px; | ||
36 | text-align: left; | ||
37 | font-size: 120%; | ||
38 | } | ||
39 | |||
40 | .dir a { | ||
41 | text-decoration: none; | ||
42 | color: black; | ||
43 | } | ||
44 | |||
45 | .file a { | ||
46 | text-decoration: none; | ||
47 | color: black; | ||
48 | } | ||
49 | |||
50 | .path { | ||
51 | margin: 3px; | ||
52 | padding: 3px; | ||
53 | background: #FFCC66; | ||
54 | font-size: 120%; | ||
55 | } | ||
56 | |||
57 | .updir { | ||
58 | margin: 3px; | ||
59 | padding: 3px; | ||
60 | margin-left: 3em; | ||
61 | background: #FFEEAA; | ||
62 | } | ||
63 | |||
64 | .file { | ||
65 | margin: 3px; | ||
66 | padding: 3px; | ||
67 | margin-left: 3em; | ||
68 | background: rgb(95%,95%,95%); | ||
69 | } | ||
70 | |||
71 | .file:hover { | ||
72 | margin: 3px; | ||
73 | padding: 3px; | ||
74 | margin-left: 3em; | ||
75 | background: rgb(100%,100%,90%); | ||
76 | /* border: 1px black solid; */ | ||
77 | } | ||
78 | |||
79 | .dir { | ||
80 | margin: 3px; | ||
81 | padding: 3px; | ||
82 | margin-left: 3em; | ||
83 | background: rgb(90%,90%,90%); | ||
84 | } | ||
85 | |||
86 | .dir:hover { | ||
87 | margin: 3px; | ||
88 | padding: 3px; | ||
89 | margin-left: 3em; | ||
90 | background: rgb(100%,100%,80%); | ||
91 | /* border: 1px black solid; */ | ||
92 | } | ||
diff --git a/docs/busybox.net/svnindex.xsl b/docs/busybox.net/svnindex.xsl deleted file mode 100644 index 2d3297c4c..000000000 --- a/docs/busybox.net/svnindex.xsl +++ /dev/null | |||
@@ -1,108 +0,0 @@ | |||
1 | <?xml version="1.0"?> | ||
2 | |||
3 | <!-- A sample XML transformation style sheet for displaying the Subversion | ||
4 | directory listing that is generated by mod_dav_svn when the "SVNIndexXSLT" | ||
5 | directive is used. --> | ||
6 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | ||
7 | |||
8 | <xsl:output method="html"/> | ||
9 | |||
10 | <xsl:template match="*"/> | ||
11 | |||
12 | <xsl:template match="svn"> | ||
13 | <html> | ||
14 | <head> | ||
15 | <title> | ||
16 | <xsl:if test="string-length(index/@name) != 0"> | ||
17 | <xsl:value-of select="index/@name"/> | ||
18 | <xsl:text>: </xsl:text> | ||
19 | </xsl:if> | ||
20 | <xsl:value-of select="index/@path"/> | ||
21 | </title> | ||
22 | <link rel="stylesheet" type="text/css" href="/svnindex.css"/> | ||
23 | </head> | ||
24 | <body> | ||
25 | <div class="header" style="font-family: lucida, helvetica; font-size: 248%"> | ||
26 | <xsl:text>BUSYBOX</xsl:text> | ||
27 | </div> | ||
28 | <div class="header"> | ||
29 | <a href="http://www.busybox.net"><img src="/images/busybox1.png" border="0" /></a> | ||
30 | </div> | ||
31 | <div class="svn"> | ||
32 | <xsl:apply-templates/> | ||
33 | </div> | ||
34 | <div class="footer"> | ||
35 | <xsl:text>Powered by </xsl:text> | ||
36 | <xsl:element name="a"> | ||
37 | <xsl:attribute name="href"> | ||
38 | <xsl:value-of select="@href"/> | ||
39 | </xsl:attribute> | ||
40 | <xsl:text>Subversion</xsl:text> | ||
41 | </xsl:element> | ||
42 | <xsl:text> </xsl:text> | ||
43 | <xsl:value-of select="@version"/> | ||
44 | </div> | ||
45 | </body> | ||
46 | </html> | ||
47 | </xsl:template> | ||
48 | |||
49 | <xsl:template match="index"> | ||
50 | <div class="rev"> | ||
51 | <xsl:value-of select="@name"/> | ||
52 | <xsl:if test="@base"> | ||
53 | <xsl:if test="@name"> | ||
54 | <xsl:text>:  </xsl:text> | ||
55 | </xsl:if> | ||
56 | <xsl:value-of select="@base" /> | ||
57 | </xsl:if> | ||
58 | <xsl:if test="@rev"> | ||
59 | <xsl:if test="@base | @name"> | ||
60 | <xsl:text> — </xsl:text> | ||
61 | </xsl:if> | ||
62 | <xsl:text>Revision </xsl:text> | ||
63 | <xsl:value-of select="@rev"/> | ||
64 | </xsl:if> | ||
65 | </div> | ||
66 | <div class="path"> | ||
67 | <xsl:value-of select="@path"/> | ||
68 | </div> | ||
69 | <xsl:apply-templates select="updir"/> | ||
70 | <xsl:apply-templates select="dir"/> | ||
71 | <xsl:apply-templates select="file"/> | ||
72 | </xsl:template> | ||
73 | |||
74 | <xsl:template match="updir"> | ||
75 | <div class="updir"> | ||
76 | <xsl:text>[</xsl:text> | ||
77 | <xsl:element name="a"> | ||
78 | <xsl:attribute name="href">..</xsl:attribute> | ||
79 | <xsl:text>Parent Directory</xsl:text> | ||
80 | </xsl:element> | ||
81 | <xsl:text>]</xsl:text> | ||
82 | </div> | ||
83 | </xsl:template> | ||
84 | |||
85 | <xsl:template match="dir"> | ||
86 | <div class="dir"> | ||
87 | <xsl:element name="a"> | ||
88 | <xsl:attribute name="href"> | ||
89 | <xsl:value-of select="@href"/> | ||
90 | </xsl:attribute> | ||
91 | <xsl:value-of select="@name"/> | ||
92 | <xsl:text>/</xsl:text> | ||
93 | </xsl:element> | ||
94 | </div> | ||
95 | </xsl:template> | ||
96 | |||
97 | <xsl:template match="file"> | ||
98 | <div class="file"> | ||
99 | <xsl:element name="a"> | ||
100 | <xsl:attribute name="href"> | ||
101 | <xsl:value-of select="@href"/> | ||
102 | </xsl:attribute> | ||
103 | <xsl:value-of select="@name"/> | ||
104 | </xsl:element> | ||
105 | </div> | ||
106 | </xsl:template> | ||
107 | |||
108 | </xsl:stylesheet> | ||
diff --git a/docs/busybox.net/tinyutils.html b/docs/busybox.net/tinyutils.html deleted file mode 100644 index 18313460c..000000000 --- a/docs/busybox.net/tinyutils.html +++ /dev/null | |||
@@ -1,86 +0,0 @@ | |||
1 | <!--#include file="header.html" --> | ||
2 | |||
3 | |||
4 | <h3>External Tiny Utilities</h3> | ||
5 | |||
6 | This is a list of tiny utilities whose functionality is not provided by | ||
7 | busybox. If you have additional suggestions, please send an e-mail to our | ||
8 | dev mailing list. | ||
9 | |||
10 | <br><br> | ||
11 | |||
12 | <table> | ||
13 | <tr> | ||
14 | <th>Feature</th> | ||
15 | <th>Utilities</th> | ||
16 | </tr> | ||
17 | |||
18 | <tr> | ||
19 | <td>SSH</td> | ||
20 | <td><a href="http://matt.ucc.asn.au/dropbear/">Dropbear</a> has both an ssh server and an ssh client that together come in around 100k. It has no external | ||
21 | dependencies (I.E. it does not depend on OpenSSL, using a built-in copy of | ||
22 | LibTomCrypt instead). It's actively maintained, with a quiet but responsive | ||
23 | mailing list.</td> | ||
24 | </tr> | ||
25 | |||
26 | <tr> | ||
27 | <td>SMTP</td> | ||
28 | <td><a href="ftp://ftp.debian.org/debian/pool/main/s/ssmtp/">ssmtp</a> is an extremely simple Mail Transfer Agent.</td> | ||
29 | </tr> | ||
30 | |||
31 | <tr> | ||
32 | <td>ntp</td> | ||
33 | <td><a href="http://doolittle.icarus.com/ntpclient/">ntpclient</a> is a | ||
34 | tiny ntp client. BusyBox has rdate to set the date from a remote server, but | ||
35 | if you want a daemon to repeatedly adjust the clock over time, try that.</td> | ||
36 | </table> | ||
37 | |||
38 | <p>In a gui environment, you'll probably want a web browser. | ||
39 | <a href="http://www.konqueror.org/embedded/">Konqueror Embedded</a> requires QT | ||
40 | (or QT Embedded), but not KDE. The <a href="http://www.dillo.org/">Dillo</a> | ||
41 | requires GTK+, but not Gnome. Or you can try the <a href="http://links.twibright.com/">graphical | ||
42 | version of links</a>.</p> | ||
43 | |||
44 | <h3>SCRIPTING LANGUAGES</h3> | ||
45 | <p>Although busybox has built-in support for shell scripts, plenty of other | ||
46 | small scripting languages are available on the net. A few examples:</p> | ||
47 | <table> | ||
48 | <tr> | ||
49 | <th>language</th> | ||
50 | <th>description</th> | ||
51 | </tr> | ||
52 | <tr> | ||
53 | <td> <a href="http://www.foo.be/docs/tpj/issues/vol5_3/tpj0503-0003.html">microperl</a> </td> | ||
54 | <td> A small standalone perl interpreter that can be built from the perl source | ||
55 | s via "make -f Makefile.micro". If you really feel the need for perl on an embe | ||
56 | dded system, this is where to start. | ||
57 | </tr> | ||
58 | <tr> | ||
59 | |||
60 | <td><a href="http://www.lua.org/pil/">Lua</a></td> | ||
61 | <td>If you just want a small embedded scripting language to write <em>new</em> | ||
62 | code in, this Brazilian import is lightweight, fairly popular, and has | ||
63 | a complete book about it online.</td> | ||
64 | </tr> | ||
65 | |||
66 | <tr> | ||
67 | <td><a href="http://www.star.le.ac.uk/%7Etjg/rc/">rc</a></td> | ||
68 | <td>The PLAN9 shell. Not compatible with conventional bourne shell syntax, | ||
69 | but fairly lightweight and small.</td> | ||
70 | </tr> | ||
71 | |||
72 | </tr> | ||
73 | <tr> | ||
74 | <td><a href="http://www.forth.org/">forth</a></td> | ||
75 | <td>A well known language for fast and small programs, decades old but still | ||
76 | in use for everything from OpenBIOS to computer controlled engine timing.</td> | ||
77 | </tr> | ||
78 | </table> | ||
79 | |||
80 | <p>For more information, you probably want to look at | ||
81 | <a href="http://buildroot.uclibc.org/">buildroot</a> and | ||
82 | <a href="http://gentoo-wiki.com/TinyGentoo">TinyGentoo</a>, which | ||
83 | build and use tiny utilities for all sorts of things.</p> | ||
84 | |||
85 | <!--#include file="footer.html" --> | ||
86 | |||