aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xwww/about.html96
-rw-r--r--www/header.html11
l---------[-rwxr-xr-x]www/index.html114
-rwxr-xr-xwww/license.html61
-rwxr-xr-xwww/licenserant.html54
-rwxr-xr-xwww/news.html56
6 files changed, 244 insertions, 148 deletions
diff --git a/www/about.html b/www/about.html
new file mode 100755
index 00000000..4dae2d21
--- /dev/null
+++ b/www/about.html
@@ -0,0 +1,96 @@
+<!--#include file="header.html" -->
+
+<h2><a name="what" />What is ToyBox?</h2>
+
+<p>The goal of the Toybox project is to create simple implementations of all
+the important Linux command line utilities. These implementations should
+be small (the entire project should total less than a megabyte, uncompressed),
+fast, simple, and correctly implemented (which is related to standards
+compliance, but isn't quite the same thing). Click for
+<a href="design.html">more about the design goals</a></p>
+
+<p>Toybox has configurable levels of functionality, and should scale from tiny
+embedded systems up to full general purpose desktop and development
+environments. The author plans to run it on his laptop, and the
+<a href=/code/firmware>Firmware Linux</a> project is trying to get a complete
+Linux system to rebuild itself from source code using toybox.</p>
+
+<p>Toybox is <a href=license.html>Licensed under GPL version 2</a>.</p>
+
+<p>Toybox can be built as a single "swiss army knife" executable (ala BusyBox
+or Red Hat's Nash), or each command can be built as a traditional independent
+executable.</p>
+
+<b><h2><a name="status" />What commands are implemented?</h2></b>
+
+<p>The current list of commands implemented by toybox is at the top of the
+<a href=news.html>news page</a></p>. That list is updated when new commands
+go in.</p>
+
+<p>In general, configuring toybox for "defconfig" enables all the commands
+compete enough to be useful. Configuring "allyesconfig" enables partially
+implemented commands as well.</p>
+
+<p>The following commands are incomplete, but demonstrate some basic
+functionality: bzcat/bunzip2, help, mke2fs, sh/toysh, mdev.</p>
+
+<p>The following are partially implemented commands that don't actually do
+anything yet: mke2fs.</p>
+
+
+<b><h3>Command Shell</h3></b>
+<p>The Toybox Shell (toysh) aims to be a reasonable bash replacement. It
+implements the "sh" and "toysh" commands, plus the built-in commands "cd" and
+"exit". This is the largest single sub-project in toybox.</p>
+
+<p>The following additional commands may be built into the shell (but not as
+separate executables): cd, exit, if, while, for, function, fg, bg, jobs, source,
+<a href="http://www.opengroup.org/onlinepubs/009695399/utilities/alias.html">alias</a>,
+export, set, unset, read, trap, and exec. (Note: not done yet.)</p>
+
+</ul>
+
+<h2><a name="commands" />Which commands are planned?</h2>
+
+<p>The toybox <a href=todo.txt>todo list</a> mentions many potential commands
+which may be added to this project. (Whether that file is readable by anybody
+but the project's maintainer is open to debate.)</p>
+
+<p>The criteria for a toybox 1.0 release is that a system built from just the
+Linux kernel, toybox, uClibc, and a compiler (such as tinycc) can rebuild
+itself from source code.</p>
+
+<b><h3>Relevant Standards</h3></b>
+
+<p>Most commands are implemented according to
+<a href=http://www.opengroup.org/onlinepubs/009695399/idx/utilities.html>The
+Single Unix Specification version 3</a> where applicable. This does not mean
+that Toybox is implementing every SUSv3 utility: some such as SCCS and ed are
+obsolete, while others such as c99 are outside the scope of the project.
+Toybox also isn't implementing full internationalization support: it should be
+8-bit clean and handle UTF-8, but otherwise we leave this to X11 and higher
+layers. And some things (like $CDPATH support in "cd") await a good
+explanation of why to bother with them. (The standard provides an important
+frame of reference, but is not infallable set of commandments to be blindly
+obeyed.)</p>
+
+<p>The other major sources of commands are the Linux man pages, and testing
+the behavior of existing commands (although not generally looking at their
+source code). SUSv3 does not include many basic commands such as "mount",
+"init", and "mke2fs", which are kind of nice to have.</p>
+
+<b><h2><a name="downloads" />Download</h2></b>
+
+<p>This project is maintained as a mercurial archive. To get a copy of the
+current development version, either use mercurial (hg clone
+http://landley.net/toybox) or click on one of the zip/gz/bz2 links
+at the top of the <a href=/hg/toybox>mercurial archive browser</a> page to get
+an archive of the appropriate version. Click
+<a href="/hg/toybox?cmd=tags">tags</a> to see all the tagged release
+versions ("tip" is the current development version).</p>
+
+<p>The maintainer's <a href=/notes.html>development log</a> and the project's
+<a href=http://www2.them.com:8080/cgi-bin/mailman/listinfo/toybox>mailing
+list</a> are also good ways to track what's going on with the project.</p>
+
+<!--#include file="footer.html" -->
diff --git a/www/header.html b/www/header.html
index 6b714b24..7c883df2 100644
--- a/www/header.html
+++ b/www/header.html
@@ -3,18 +3,15 @@
<title>toybox</title>
</head>
<body style="background: url(toycans.png) repeat;">
-<table border=0 cellpadding=0 cellspacing=0>
-<tr><td>
- <table border=0 cellspacing=1 cellpadding=4>
- <tr><td><h1>toybox</h1></td></tr>
- </table>
-</td></tr>
+<table border=0 cellpadding=0 cellspacing=10>
<tr><td valign=top>
+ <h1>toybox</h1>
+
<b>About</b>
<ul>
<li><a href="index.html">News</a></li>
- <li><a href="about.html">What is it?</a></li>
+ <li><a href="about.html">What is toybox?</a></li>
<li><a href="design.html">Design Docs</a></li>
<li><a href="code.html">Source walkthrough</a></li>
<li><a href="todo.txt">TODO list</a></li>
diff --git a/www/index.html b/www/index.html
index ab7314df..0def2f13 100755..120000
--- a/www/index.html
+++ b/www/index.html
@@ -1,113 +1 @@
-<!--#include file="header.html" -->
-<p><b>January 2, 2008</b> - And <a href=downloads/toybox-0.0.4.tar.bz2>toybox-0.0.4.tar.bz2</a> is out. New applets include patch, touch, and sha1sum.</p>
-
-<p><b>December 12, 2007</b> - Updated the list of implemented applications,
-put up a <a href=todo.txt>todo list</a> and <a href=code.html>infrastructure
-documentation</a>. Expect another release towards the end of the month.</p>
-
-<p><b>June 18, 2007</b> - Put out
-<a href=downloads/toybox-0.0.3.tar.bz2>toybox-0.0.3.tar.bz2</a> since it's
-been too long since I did something like that. This one implements
-catv, count, df, echo, false, oneit, pwd, sleep, sync, toysh, true, which,
-and yes (which is what "make defconfig" enables). There are several other
-commands not enabled by defconfig, because they don't really work yet.</p>
-
-<p>Most of the general infrastructure's there now, although lots of tweaking
-and optimizing is still needed. The test suite is skeletal and not entirely
-checked in yet, but I'm working on that.</p>
-
-<p>I don't have nearly as much time to work on this as I'd like, but I'm making
-a little progress.</p>
-
-<p><b>January 31, 2007</b> -
-Screwing up the web page a bit, adding an index bar along the side
-which doesn't properly connect up to anything yet. (Busy implementing
-mke2fs and gene2fs.)</p>
-
-<p>Warning: lots of this page is about what I plan to do, not what I've
-already done. See <a href="#status>status</a> or <a href="/notes.html>my
-development blog</a>, or <a href="/hg/toybox">browse the mercurial
-archive</a>.</p>
-
-<h2><a name="what" />What is ToyBox?</h2>
-
-<p>The goal of the Toybox project is to create simple implementations of all
-the important Linux command line utilities. These implementations should
-be small (the entire project should total less than a megabyte, uncompressed),
-fast, simple, and correctly implemented (which is related to standards
-compliance, but isn't quite the same thing). Click for
-<a href="design.html">more about the design goals</a></p>
-
-<p>Toybox has configurable levels of functionality, and should scale from tiny
-embedded systems up to full general purpose desktop and development
-environments. The author plans to run it on his laptop, and the
-<a href=/code/firmware>Firmware Linux</a> project is trying to get a complete
-Linux system to rebuild itself from source code using toybox.</p>
-
-<p>Toybox is <a href=license.html>Licensed under GPL version 2</a>.</p>
-
-<p>Toybox can be built as a single "swiss army knife" executable (ala BusyBox
-or Red Hat's Nash), or each command can be built as a traditional independent
-executable.</p>
-
-<h2><a name="commands" />Which commands are planned?</h2>
-
-<b><h3>Relevant Standards</h3></b>
-
-<p>Most commands are implemented according to
-<a href=http://www.opengroup.org/onlinepubs/009695399/idx/utilities.html>The
-Single Unix Specification version 3</a>. This does not mean that Toybox is
-implementing every SUSv3 utility: some such as SCCS and ed are obsolete, while
-others such as c99 are outside the scope of the project. Toybox also isn't
-implementing full internationalization support: it should be 8-bit clean and
-handle UTF-8, but otherwise we leave this to X11 and higher layers. And
-some things (like $CDPATH support in "cd") await a good explanation of why
-to bother with them.</p>
-
-<p>The other major sources of commands are the Linux man pages, and testing
-the behavior of existing commands (although not generally looking at their
-source code).</p>
-
-<b><h2><a name="status" />What commands are implemented?</h2></b>
-
-<p>The following commands are currently implemented: basename, catv, chroot,
-count, df, dirname, dmesg, echo, false, hello, mkfifo, oneit, pwd, sha1sum,
-sleep, sync, true, tty, which, yes.</p>
-
-<p>The following commands are partly implemented, in a somewhat usable but not
-necessarily complete state: bzcat/bunzip2, help, mke2fs, netcat/nc, sh/toysh,
-mdev, touch, readlink.</p>
-
-<p>The following are partially implemented commands that don't actually do
-anything yet: mke2fs, md5sum.</p>
-
-<p>For more information, see <a href=todo.txt>the todo list</a>.</p>
-
-<b><h3>Command Shell</h3></b>
-<p>The Toybox Shell (toysh) aims to be a reasonable bash replacement. It
-implements the "sh" and "toysh" commands, plus the built-in commands "cd" and
-"exit". This is the largest single sub-project in toybox.</p>
-
-<p>The following additional commands may be built into the shell (but not as
-separate executables): cd, exit, if, while, for, function, fg, bg, jobs, source,
-<a href="http://www.opengroup.org/onlinepubs/009695399/utilities/alias.html">alias</a>,
-export, set, unset, read, trap, and exec. (Note: not done yet.)</p>
-
-</ul>
-
-<b><h2><a name="downloads" />Download</h2></b>
-
-<p>This project is maintained as a mercurial archive. To get a copy of the
-current development version, either use mercurial (hg clone
-http://landley.net/toybox) or click on one of the zip/gz/bz2 links
-at the top of the <a href=/hg/toybox>mercurial archive browser</a> page to get
-an archive of the appropriate version. Click
-<a href="/hg/toybox?cmd=tags">tags</a> to the tagged release versions ("tip"
-is the current development version).</p>
-
-
-<p>My <a href=/notes.html>development log</a> is currently the best way to
-track what's going on with this project. There's also a
-<a href=http://www2.them.com:8080/cgi-bin/mailman/listinfo/toybox>mailing list</a> for toybox development.</p>
-
-<!--#include file="footer.html" -->
+news.html \ No newline at end of file
diff --git a/www/license.html b/www/license.html
index 547adeab..8dcd3074 100755
--- a/www/license.html
+++ b/www/license.html
@@ -3,10 +3,11 @@
<h2>Toybox is licensed under the terms of GPLv2.</h2>
<p>The complete text of the General Public License version 2 is included in the
-file LICENSE in each source tarball, and again at the end of this page.
-Version 2 is the only version of this license which toybox is distributed
-under. (I.E. It doesn't have the strange "or later" dual license some projects
-have.)</p>
+file LICENSE in each source tarball. Version 2 is the only version of this
+license which toybox is distributed under. (I.E. It doesn't have the strange
+"or later" dual license some projects have.)</p>
+
+<p>The complete text of GPLv2 is at the end of this page.</p>
<h2>Clarifications</h2>
@@ -22,7 +23,7 @@ interpreting the sucker where it says something stupid.</p>
<p>Section 1: <b>You have permission to rephrase the license notice on
individual source files.</b> This doesn't mean you can change what license the
code is under, or that you can remove other people's copyright notices. You
-certainly can't change the test of the GPL itself. What it means is that if
+certainly can't change the text of the GPL itself. What it means is that if
a file says "see file LICENSE in this tarball for details" and you use this
code in a project that distributes source in zip files instead of
tarballs, or your package's copy of the GPLv2 text isn't in a file called
@@ -31,15 +32,15 @@ kind of "correction" after the old notice.</p>
<p>Some lawyers seem to think a strict reading of GPLv2 section 1 (and later
sections including section 1 by reference) requires maintaining old notices in
-perpetuity. Even if you had code that used to be dual licensed, but created
-a derived work that's just under one of the two licenses, and the old license
-notice is not just strange or misleading but actually incorrect for the new
-file. (For example, splicing GPLv2 only code into a dual "GPLv2 or later"
-project produces a result that can be distributed under the terms of GPLv2,
-but not GPLv3. The result cannot be distributed under the "or later" part,
-so a license notice saying it could is factually wrong.)</p>
-
-<p>I don't know if we're ever going to put any dual licensed code into the tree,
+perpetuity. Even if you had code that used to be dual licensed, but you created
+a derived work that's just under one of the two licenses, and thus keeping the
+old license notice is not just strange or misleading but actually incorrect for
+the new file. (For example, splicing GPLv2 only code into a dual "GPLv2 or
+later" project produces a result that can be distributed under the terms of
+GPLv2, but not GPLv3. The result of that cannot be distributed under the "or
+later" part, so a license notice implying it could is factually wrong.)</p>
+
+<p>I don't know if we're ever going to add any dual licensed code into the tree,
but I want to head that one off now. The actual license text is the important
thing, the per-file notice is a courtesy.</p>
@@ -57,9 +58,14 @@ binaries, life is good as far as we're concerned. (No, you can't encrypt it,
or require a login, or otherwise be slimy bastards acting in bad faith. We'll
come after you if you're not satisfying the terms of the license, this is just
talking about how you can satisfy those terms without having to mail physical
-media. Most people are already doing it this way.)</p>
+media circa 1991. Most people are already doing it this way, we're just
+being explicit about it.)</p>
+
+<p>If you're wondering why this particular clarification exists,
+there's a <a href=licenserant.html>longer explanation</a>.</p>
-<p>Also, <a href="http://software.newsforge.com/article.pl?sid=06/06/23/1728205&tid=150">what the FSF did to Mepis</a> was inexcusable. (Further discussed
+<p>The reason for this section is that
+<a href="http://software.newsforge.com/article.pl?sid=06/06/23/1728205&tid=150">what the FSF did to Mepis</a> was inexcusable. (Further discussed
in <a href="http://www.busybox.net/lists/busybox/2006-June/022797.html">this
thread</a>.) Mepis partnered with Ubuntu, put out a press release quoting
Ubuntu's founder about how cool the partnership was, and then pointed to
@@ -85,18 +91,17 @@ hook and have to find a new location or put up your own mirror. And obviously
it has to be the _right_ source code (if you modified it, we want the patch,
and claiming you didn't modify it when you actually did is fraud).</p>
-<p>This is not a "get out of jail free" card: It's still your responsibility to
-make the source available. We're just saying you can reasonably delegate to
-something like Sourceforge or ibilbio and as long as everyone who wants the
-source can get it, we're happy. If the site you point to objects or goes down,
-responsibility obviously reverts to you.</p>
-
-<p>But if this project needs mirrors, we'll _ask_. (Most likely we'll ask
-someone like sourceforge, OSL, ISC, ibiblio, archive.org...)</p>
-
-<p>Section 9: <b>Does not apply to this project.</b> We're specifying the
-version, it's version 2. There is no "or later versions" clause to require
-interpreting.
+<p>So this is not a "get out of jail free" card: It's still your responsibility
+to make the complete corresponding source available. We're just saying you can
+reasonably delegate to something like Sourceforge or ibilbio, and as long as
+everyone who wants the source can get it, we're happy. If the site you point
+to objects or goes down, responsibility obviously reverts to you. But if this
+project needs mirrors, we'll _ask_. (Most likely we'll ask someone like
+sourceforge, OSL, ISC, ibiblio, archive.org...)</p>
+
+<p>Finally, <b>section 9 does not apply to this project.</b> We're specifying
+a specific version, it's version 2. There is no "or later versions" clause to
+require interpreting, so none of that triggers for us.</p>
<hr>
<pre>
diff --git a/www/licenserant.html b/www/licenserant.html
new file mode 100755
index 00000000..e3c0a927
--- /dev/null
+++ b/www/licenserant.html
@@ -0,0 +1,54 @@
+<!--#include file="header.html" -->
+
+<p>The reason for the clarification of section 3 is that
+<a href="http://software.newsforge.com/article.pl?sid=06/06/23/1728205&tid=150">what the FSF did to Mepis</a> was inexcusable. (Further discussed
+in <a href="http://www.busybox.net/lists/busybox/2006-June/022797.html">this
+thread</a>.)</p>
+
+<p>A small Linux distributor named Mepis (more or less a guy in his garage)
+partnered with a big linux distributor called Ubuntu (multi-million dollar
+company with offices in more than one country). Mepis put out a press release
+quoting Ubuntu's founder about how cool the partnership was, and then Mepis
+pointed to Ubuntu's source repository for GPL packages it was using unmodified
+Ubuntu versions of. And the FSF went after them.</p>
+
+<p>As far as we're concerned, Mepis didn't do anything wrong, and the FSF
+was a bully. The FSF was wrong when it tried to make an example out of a
+company that was acting in good faith.</p>
+
+<p>To make sure the FSF doesn't pick on anyone else against our wishes, we're
+clarifying that if you didn't modify the source code, and the binaries you're
+distributing can be entirely regenerated from a public upstream source,
+pointing to that upstream source in good faith is good enough for us. As
+long as the upstream source don't doesn't object to the extra bandwidth,
+and the correct source code stays available at that location you specify
+for the duration of your responsiblity to redistribute source, life is good.</p>
+
+<p>There are a few common sense caveats. This doesn't mean it's fair for a
+Fortune 500 company to point millions of people at somebody's home DSL line
+(certainly not without asking first). And if the source that's available there
+is not the complete corresponding source to the binaries you distributed, then
+obviously you haven't fulfilled your obligations by pointing to some _other_
+source. (If you modified it, we want the patch, and claiming you didn't
+modify it when you actually did would be fraud.) And if the code stops being
+available at that location, you're not off the hook and have to find a new
+location or put up your own mirror.</p>
+
+<p>So this is not a "get out of jail free" card: It's still your responsibility
+to make the complete corresponding source available. We're just saying you can
+reasonably delegate to something like Sourceforge or ibilbio, and as long as
+everyone who wants the source can get it, we're happy. If the site you point
+to objects or goes down, responsibility obviously reverts to you. But there
+are plenty of high-bandwidth places that mirror open source for free these
+days: sourceforge, OSL, ISC, ibiblio, archive.org, and so on.</p>
+
+<p>Oh, one last note: if people come to you asking "where's the source"
+and your answer doesn't satisfy them, ask yourself "did I identify which
+specific version I used, and if I didn't modify it at all did I explicitly
+tell them this"? If you don't identify the source you used in enough detail
+for open source developers to reproduce what you did, you haven't complied with
+your license obligations yet. Identifying the specific source you used
+is a very important part of the "written offer" bit that often gets
+overlooked.</p>
+
+<!--#include file="footer.html" -->
diff --git a/www/news.html b/www/news.html
new file mode 100755
index 00000000..a911759d
--- /dev/null
+++ b/www/news.html
@@ -0,0 +1,56 @@
+<!--#include file="header.html" -->
+
+<h2>Currently implemented commands:</h2>
+<p>
+basename, catv, chroot, count, df, dirname, dmesg, echo, false, hello, help,
+mkfifo, nc, netcat, oneit, patch, pwd, sh, sha1sum, sleep, sync, touch, toysh,
+true, tty, which, yes
+</p>
+
+<h2>News</h2>
+
+<p><b>January 2, 2008</b> - And <a href=downloads/toybox-0.0.4.tar.bz2>toybox-0.0.4.tar.bz2</a> is out.
+The new applets this time around include basename, chroot, dirname, dmesg,
+help, mkfifo, netcat, patch, sha1sum, touch, and tty.</p>
+
+<p>Note that this "touch" includes -l to set the length, which can truncate
+a file or create a commpletely sparse file, good for filesystem images.</p>
+
+<p>Expect the next release in about 6 months.</p>
+
+<p><b>December 12, 2007</b> - Updated the list of implemented applications,
+put up a <a href=todo.txt>todo list</a> and <a href=code.html>infrastructure
+documentation</a>. Expect another release towards the end of the month.</p>
+
+<p><b>June 18, 2007</b> - Put out
+<a href=downloads/toybox-0.0.3.tar.bz2>toybox-0.0.3.tar.bz2</a> since it's
+been too long since I did something like that. This one implements
+catv, count, df, echo, false, oneit, pwd, sleep, sync, toysh, true, which,
+and yes (which is what "make defconfig" enables). There are several other
+commands not enabled by defconfig, because they don't really work yet.</p>
+
+<p>Most of the general infrastructure's there now, although lots of tweaking
+and optimizing is still needed. The test suite is skeletal and not entirely
+checked in yet, but I'm working on that.</p>
+
+<p>I don't have nearly as much time to work on this as I'd like, but I'm making
+a little progress.</p>
+
+<p><b>January 31, 2007</b> -
+Toybox <a href=downloads/toybox-0.0.2.tar.bz2>0.0.2 release</a>.
+Implements count, yes, pwd, echo, bzcat, catv, oneit, and an unfinished
+skeleton of mke2fs. Adds argument parsing logic and bunzip code to library.
+Now configured with menuconfig. Adds "make baseline" and "make bloatcheck"
+using Matt Mackall's bloat-o-meter, and scripts/showasm.</p>
+
+<p>Screwing up the web page a bit, adding an index bar along the side
+which doesn't properly connect up to anything yet. (Busy implementing
+mke2fs and gene2fs.)</p>
+
+<p><b>October 30, 2006</b> -
+Toybox <a href=downloads/toybox-0.0.1.tar.bz2>0.0.1 release</a>. Implements
+df, a skeletal toysh, and some library functions. Proof of concept, really.</p>
+
+<p><b>September 7, 2006</b> -
+Project launched, first commit to mercurial archive.</p>
+<!--#include file="footer.html" -->