From ca595ca6cd08ddfef5023e40245b616e78e1faa1 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sun, 16 Sep 2018 13:58:30 -0500 Subject: Fluff up the roadmap a bit. --- www/roadmap.html | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/www/roadmap.html b/www/roadmap.html index ae97dc41..2d562ec1 100755 --- a/www/roadmap.html +++ b/www/roadmap.html @@ -141,15 +141,19 @@ ignored.

The community perception seems to be that the Linux Standard Base is the best standard money can buy, I.E. the Linux Foundation is supported by -financial donations form large companies and the LSB represents the interests -of those donors more than technical merit. Debian officially +financial donations from large companies and the LSB +represents the interests +of those donors more than technical merit. (The Linux Foundation, which +maintains the LSB, isn't a 501c3. It's a 501c6, the +same kind of legal entity as the Tobacco Institute and Microsoft's old +"Don't Copy That Floppy" program.) Debian officially washed its hands of LSB when 5.0 came out in 2015, and no longer even pretends to support it (which may affect Debian derivatives like Ubuntu and Knoppix). Toybox hasn't moved to 5.0 for similar reasons.

That said, Posix by itself isn't enough, and this is the next most -comprehensive standards effort for Linux so far.

+comprehensive standards effort for Linux so far, so we salvage what we can.

The LSB specifies a list of command line utilities:

@@ -174,10 +178,8 @@ various legacy tool implementations "compliant", this means we're mostly interested in the set of tools that aren't specified in posix at all.

Of these, gettext and msgfmt are internationalization, install_initd and -remove_initd aren't present on ubuntu 10.04, lpr is out of scope, and -lsb_release is a distro issue (it's a nice command, but the output of -lsb_release -a is the name and version number of the linux distro you're -running, which toybox doesn't know).

+remove_initd weren't present in Ubuntu 10.04, lpr is out of scope, +and lsb_release just reports information in /etc/os-release.

This leaves:

@@ -195,11 +197,7 @@ su sync tar umount useradd userdel usermod zcat

Use case: provide a self-hosting development environment

The following commands are enough to build the Aboriginal Linux development -environment, boot it to a shell prompt, and build Linux From Scratch 6.8 under -it. (Aboriginal Linux currently uses BusyBox for this, thus providing a -drop-in test environment for toybox. We install both implementations side -by side, redirecting the symlinks a command at a time until the older -package is no longer used, and can be removed.)

+environment, boot it to a shell prompt, and build Linux From Scratch 6.8 under it.

This use case includes running init scripts and other shell scripts, running configure, make, and install in each package, and providing basic command line @@ -222,7 +220,7 @@ resize2fs tune2fs fsck.ext2 genext2fs mke2fs xzcat -

Note: Aboriginal Linux installs bash 2.05b as #!/bin/sh and its scripts +

Aboriginal Linux also installs bash 2.05b as #!/bin/sh and its scripts require bash extensions not present in shells such as busybox ash. This means that toysh needs to supply several bash extensions _and_ work when called under the name "bash".

@@ -249,6 +247,21 @@ but that's actually not that hard. We'll probably also need our own "make" at some point after 1.0.)

+

Note: Aboriginal Linux was +restarted (I.E. replaced) due to toolchain licensing issues, but the new project is a simpler implementation of the same goals, +and when finished should provide the same test environment for toybox. +This section needs to be rewritten whem mkroot is complete enough to build +Linux From Scratch.

+ +

The development methodology used a command logging wrapper +that intercepted each command called out of the $PATH and append the +command line to a log file, then analyze the result to create a +list of commands, +then create a directory of symlinks pointing to those commands out of the +host $PATH. Then the new implementation can replace these commands one +at a time, checking the results and the log output to spot any behavior +changes.

+

Use case: Replacing Android Toolbox

-- cgit v1.2.3