aboutsummaryrefslogtreecommitdiff
path: root/www/news.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/news.html')
-rwxr-xr-xwww/news.html426
1 files changed, 0 insertions, 426 deletions
diff --git a/www/news.html b/www/news.html
index 5497fdf4..08191ea3 100755
--- a/www/news.html
+++ b/www/news.html
@@ -8,432 +8,6 @@ a development environment. See the links on the left for details.</p>
<h2>News</h2>
-<a name="18-10-2019" /><a href="#18-10-2019"><hr><h2><b>October 18, 2019</b></h2></a>
-<blockquote>
-<p>"In those days spirits were brave, the stakes were high, men were real
-men, women were real women and small furry creatures from Alpha Centauri
-were real small furry creatures from Alpha Centauri."
-</p> <p>- The Hitchhiker's Guide to the Galaxy</p>
-</blockquote>
-
-<p><a href=downloads/toybox-0.8.2.tar.gz>Toybox 0.8.2</a>
-(<a href=https://github.com/landley/toybox/releases/tag/0.8.2>git commit</a>)
-is finally out (only two months late).</p>
-
-<p>The new commands this time are minor variants of existing ones
-(<b>dnsdomainname</b> is hostname -d, <b>arch</b> is uname -m), but about
-1/3 of toysh got implemented in pending, <a href=https://github.com/landley/mkroot>mkroot</a> got merged as a "make root" target (see Build),
-and Android's <a href=http://lists.landley.net/pipermail/toybox-landley.net/2019-August/010845.html>hermetic build</a>
-work continued resulting in a lot of fixes.</p>
-
-<p>The android-specific <b>getprop</b>, <b>setprop</b>, <b>start</b>, and <b>stop</b>
-commands were removed from toybox because they grew dependencies on android
-libraries, and since toybox tries to avoid mandatory external dependencies
-they moved to another package.</p>
-
-<p><u>Build</u>:
-The new "make root" target builds a simple toybox root filesystem,
-using scripts/mkroot.sh which is a stripped
-down version of the external <a href=https://github.com/landley/mkroot>mkroot</a>
-project merged into toybox. (Alas, at the moment it wants sh and route out
-of pending, which aren't quite load bearing yet.)</p>
-
-<p>The new "scripts/mcm-buildall.sh" convenience script builds cross
-compilers based on gcc+musl multiple targets (arm, x86, mips, m68k, s390,
-microblaze...)
-using <a href=https://github.com/richfelker/musl-cross-make>musl-cross-make</a>,
-and a new scripts/cross.sh to easily cross compile for one or more targets
-using the resulting compilers. (This works with "make root", "make
-toybox", and other builds understanding the CROSS_COMPILE environment variable.)</p>
-
-<p>Setting the environment variable ASAN=1 enables the
-llvm address sanitizer. (You may need to
-export ASAN_SYMBOLIZER_PATH on debian to use it, they add the version number to
-the filename in /usr/bin which confuses llvm.)</p>
-
-<p>Patrick Oppenlander fixed make -j (our make is a wrapper around
-scripts/make.sh which was already doing a parallel build, but if you called
-make with -j it wouldn't wait for make.sh to finish and the build broke).</b>
-
-<p>Lots of fixes for the MacOS build.</p>
-
-<p><u>New options</u>:
-We upgraded <b>tar</b> to extract some older tarballs, <b>file</b> added -b and -s
-options and can also recognize older tarballs,
-some xz archives, .otf fonts, perf/simpleperf data files,
-android boot images, and dtb files. Upgraded <b>file</b> to show the device type
-for block and char devices, the target for symlinks, and it says _why_ it can't
-open a file.</p>
-
-<p>Several commands ignore some options rather than erroring on them:
-<b>patch</b> ignores the -f -g# and --no-backup-if-mismatch options
-(all of which we were already doing by default anyway), and <b>xargs</b>
-ignores -P# (which requests parallel execution, maybe add it later but
-single threading works), and Denys Nykula made <b>wget</b> ignore
---no-check-ceritificate and <b>gzip</b> ignore -n (again, we weren't doing
-either anyway) to satisfy pkgsrc.</p>
-
-<p>William Haddon taught <b>diff</b> and <b>patch</b> to support special characters in path
-names (via quoting) and more timestamp formats.
-Eric Molitor implemented <b>nl</b> -v (with negative and zero starting values),
-and fixed a MacOS compatibility issue in the build scripts.
-Tom Cherry added <b>netcat</b> -U (UNIX domain socket support).
-Denys Nykula taught <b>wget</b> to call ftpget for ftp:// URLs.
-Ethan Sommer added ln -t and rmdir --ignore-fail-on-non-empty.
-Elliott Hughes added <b>grep</b> -R, <b>killall</b> -w, tar --mode,
- fixed <b>ls</b> -Z and spacing in -lZ and --full-time,
-added <b>xargs</b> --max-args and removed xargs -I (which we never actually
-supported) and tweaked the size calculation to more closely match other
-versions,
-added xargs -o and made -p read from /dev/tty, added <b>blkid</b> -s, SEC_TYPE for ext3,
-msdos, and ntfs, f2fs and ntfs LABEL, fixed vfat/ntfs UUID, and switched
-the endianness for UUID of msdos/ntfs/vfat, simplified the octal mode
-display in <b>lsof</b>, added <b>pidof</b> -x (thus making the default behavior _not_
-be -x).</p>
-
-<p>When readdir() succeeds but stat() fails, <b>ls</b> now prints "??? ? ? filename"
-entries instead of "cannot access" errors. (Still trying to make ls / on
-android work more gracefully with the SELinux weirdness they added in 9.)</p>
-
-<p>Added %C to <b>stat</b> and made it show device type in its default output,
-<b>cmp</b> now works
-with 1 argument (implicit - as second argument reading from stdin).
-<b>sed</b> added exit codes to the q command (q123), added Q, and fixed a
-bad error message with "!".
-Removed TAIL_SEEK config option (it just always does that now),
-<b>find</b> grew several new options (%Z, -true, -false, and -newerXY), <b>ln</b> added -T.
-The argument to <b>mktmp</b> --tmpdir is now optional.</p>
-
-<p><u>Bugfixes</u>:
-The unshare probe bit-rotted so it was impossible to build <b>unshare</b>
-and <b>nsenter</b> on some distros.
-Commit 771e94e2a08 broke toybox's ability to say "unknown command" when
-you pointed a symlink at it that it that didn't correspond to a command,
-pointing a symlink at another symlink
-to make toybox run a command under a name it doesn't recognize
-(ln -s toybox sh; ln -s sh ash) had an off by one error,
-<b>ifconfig</b> no longer error_exits if the "read mac address" ioctl fails (Android N
-and later block that for non-root users to prevent device tracking).
-When the libcrypto library was disabled, md5sum was building commands it
-hasn't got built-in support for yet (like sha3sum) which acted like redundant
-copies of md5sum,
-<b>tar</b> wasn't correctly reading or writing sparse files with a hole at
-the end, and tar tzf blah.tar.xz was calling xz when it meant xzcat,
-<b>xargs</b> would spuriously fail on large memory systems (due to a missing
-"unsigned" in a typecast),
-<b>basename</b> can now remove suffixes starting with a dash,
-<b>cp</b> -r unlinks() an existing symlink before trying to
-recreate the symlink (otherwise cp -r into an existing directory will
-try to follow the existing symlink and create another symlink at its
-destination, failing if a file already exists there, which
-was confusing gentoo's package manager), <b>timeout</b> now produces the
-right exit code when the timed command intercepts the exit signal,
-and <b>hostname</b> -d no longer segfaults on machines with no domain name.</p>
-
-<p>Denys Nykula fixed the <b>ftpget</b> freeze (it was sending REST instead
-of RETR), made <b>mv</b> work with a trailing slash in the source,
-fixed a <b>find</b> segfault,
-and made <b>env</b> always exec rather than recursing to a builtin
-(on the theory #!/usr/bin/env is expected to search the $PATH).</p>
-
-<p>Elliott improved <b>killall</b>'s handling of long filenames, made <b>kill</b> work
-when killall5 is disabled (missing FORCE_FLAGS), fixed error reporting in
-<b>hostname</b>, fixed several things in <b>xargs</b>,
-made <b>printf</b> \c and \0 octal escapes work, fixed a <b>find</b> -name corner
-case (find src/*.c -name file.c) and find dangling symlink behavior,
-made some <b>rm</b> error messages consistent, fixed \x behavior in echo and
-printf, fixed linestack.c's buffer length for utf8 U+XXXX escape printing,
-fixed a race in <b>losetup</b>, fixed <b>grep</b> -F with multiple matches on the same
-line and an -I failure in the existing grep tests, made <b>readlink</b> notice
-when it has more than one argument, and made various
-fixes to <b>modinfo</b>.</p>
-
-<p>Ethan Sommer reported that <b>stat</b> of an suid/sticky file output 5 digits of
-octal stat date instead of 4.
-Rob fixed an unaligned access in <b>grep</b>. Alessio Balsini removed an incorrect
-null termination in <b>losetup</b>.
-Jarno Mäkipää fixed <b>hexedit</b>
-scrolling up and down on older terminals, and fixed <b>ls</b> segfaulting with a broken
-(non-UTF8) locale (didn't expect wcrtomb to return -1).
-Andrew Ilijic made ls put 2 spaces between columns like other implementations
-(which helps when terminals get confused and apply UTF8 combining characters
-to the space after a filename).
-</p>
-
-<p><u>Library</u>:
-Added dlist_lpop() to use a dlist as a stack (it removes the last entry
-instead of the first), and dlist_pop() now works on a dlist_terminate()d list.
-DIRTREE_STATLESS returns entries we couldn't stat() (with a zeroed ->st
-field, and ->again |= 2), but filling in the file type from readdir().
-Coversions between signal names and numbers now include all the Linux signals,
-not just posix ones. The functions sig_to_num() and num_to_sig() moved into
-lib/portability.h, because MacOS has different signals.
-TOYFLAG_MAYFORK allows commands to run in toysh's process without forking,
-but also makes them accessable from the toybox multiplexer or standalone.
-A MAYFORK command has to clean up after itself (even in error paths) and
-can't discard anything we need to keep (such as closing stdout).</p>
-
-<p>Elliott did a big xbind/xconnect cleanup (adding xbindany and xconnectany),
-taught xregcomp that an empty regex matches the whole line
-(because FreeBSD, and thus MacOS, doesn't already do that), and
-replaced several uses of get_line() (which does single byte reads)
-with getline() (which doesn't).</p>
-
-<p><u>Plumbing</u>:
-"make clean" doesn't produce a screenful of unnecessary output now,
-rm, ln, cp, kill, and netcat use the FLAG() macros now, makedevs uses the new
-GLOBALS naming format, timeout now uses xwaitpid(), and we fixed an
-off by one error in xwaitpid().</p>
-
-<p>Elliott removed a workaround for old NDK versions from getconf and
-moved sort off of get_rawline() (which let us remove it).
-Rob undid some loop unrolling in md5sum/sha1sum (we have libcrypto if you want
-an assembly optimized version instead of an understandable version).</p>
-
-<p>Android ndk-r20 doesn't define the __ANDROID_NDK__ symbol, so we switched
-to using clang's __has_include() (which is an undefined macro and thus a NOP
-resolving to false on gcc).</p>
-
-<p><u>Pending</u>:
-Rob did a lot of work on toysh: continuation support works (it knows when to ask
-for another line of text and when to run what it's got), as do
-nested if/else/elif statements, and while and for loops (supporting "for i"
-and "for i in", but not for ((;;)) yet).
-It parses pipes and redirections but doesn't perform them yet.
-The next big todo chunk is environment variable resolution.
-</p>
-
-<p>Gavin Howard fixed some bugs in bc, such as not returning error when raising
-zero to a negative power.
-Jarno Mäkipää continues to extend vi, adding yank and push, support for tabs,
-rewriting delete, changing the drawing code, etc. Elliott also added several
-fixes and features to vi,
-fixed host to cope with large DNS responses, switched crontab to
-use getline(), did work on man, fixed fixed several things in dd,
-implemented diff --strip-trailing-cr and made diff not need /tmp.
-Mike Bennett added extended attribute support to ip.c's route change.</p>
-
-<p><u>Test suite</u>: The killall and pgrep tests were having occasional
-spurious failures due to a race condition (the test script would fork()
-to call sleep and for just a moment there were two instances of the test
-script, reporting an extra process if killall or pgrep ran then).
-
-<p>Elliott Hughes did a lot of work on the test suite: add kill -l tests,
-make losetup.test notice (and skip) if loopback
-devices area already in use, blkid.test can TEST_HOST e2fsprogs blkid now,
-modinfo.test notices (and skips) if there's no /proc/modules or modules
-directory, ifconfig.test skips if "dummy0 up" fails and disabled the
-pointtopoint tests entirely (the kernel never supported it?),
-truncate.test is less
-confused by SELinux, hostname.test can run some tests as non-root,
-addressed a race condition in killall.test on slow systems,
-made chgrp.test, chown.test, and tar.test handle an empty /etc/passwd or /etc/group
-(we were checking whether they were _there_ but some android devics have
-empty ones),
-fixed a couple things in env.test, extended killall.test to explicitly cover
-long and short names (and not assume the shell is /bin/sh), taught split.test not to rely on bash process substitution,
-added missing TZ=utc to touch.test, fixed cp.test to pass for root
-or with a restrictive umask, and fixed the FAILCOUNT arithmetic to use more portable
-$(()). Elliott also made some tests more flexible (find.test can handle any
-error message about symlink loops, etc), and disabled others (such as du)
-when SELinux is enabled.</p>
-
-<p>Rob taught testcmd not to use the shell builtin for TEST_HOST unless there
-isn't one in the $PATH, work if $PWD has a space in it,
-and make kill.test stop testing the shell builtin
-insead of the command, quieted tests that were producing output
-other than their PASS/FAIL line, and made NOSPACE tests ignore the
-presence/absence of leading/trailing whitespace as well as differences
-in the amount of space.</p>
-
-<p><u>Documentation</u>:
-The <a href=roadmap.html>roadmap</a> got freshened up a bit, with updates
-for android from Elliott.
-In <a href=design.html>the design page</a> the Features section starts with
-4 new paragraphs about the scope of toybox, and a new License section talks
-about 0BSD.
-The "./toybox --help" output now explains how to do install_flat by hand.</p>
-
-<p><u>Sheer pedantry</u>:
-Elliott fixed a double close in loopfiles_lines() so strace doesn't
-have an EBADF in it, and added a missing "static" in lib/net.c.</p>
-
-<a name="21-05-2019" /><a href="#21-05-2019"><hr><h2><b>May 21, 2019</b></h2></a>
-<blockquote>
-<p>"I like the cover," he said. "'Don't Panic.' It's the first helpful or intelligible thing anybody's said to me all day."</p> <p>- The Hitchhiker's Guide to the Galaxy</p>
-</blockquote>
-
-<p><a href=downloads/toybox-0.8.1.tar.gz>Toybox 0.8.1</a>
-(<a href=https://github.com/landley/toybox/releases/tag/0.8.1>git commit</a>)
-is out.</p>
-
-<p>Android is now using toybox as part of a <a href=http://lists.landley.net/pipermail/toybox-landley.net/2018-November/009824.html>"hermetic" build</a>
-(meaning Android is building under toybox, which is halfway to Android
-building under Android). See Android's <a href=https://android.googlesource.com/platform/prebuilts/build-tools/+log>build-tools</a> and <a href=https://android.googlesource.com/platform/build/soong/+log>soong</a> repositories to follow along with development, or check the list for the <a href=http://lists.landley.net/pipermail/toybox-landley.net/2019-May/010485.html>current status</a>.</p>
-
-<p><u>New commands</u>: Isaac Dunham added <b>mcookie</b>, which is used by
-X11. Elliott Hughes added <b>devmem</b>, which replaces toolbox's "r".</p>
-
-<p><u>Promoted</u>: <b>tar</b>, <b>gunzip</b>, and <b>zcat</b> were cleaned
-up and moved out of pending.
-Tar is a near-rewrite with support for --owner --group and --sparse,
-capable of autodetecting "wget blah.tar.bz2 -O - | tar xv", a --restrict option
-that only allows files to extract into a single subdirectory, and so on.</p>
-
-<p><u>Added to pending</u>:
-Jarno Mäkipää contributed a new <b>vi</b> implementation. Makepost added
-<b>man</b>.</p>
-
-<p><u>Updates</u>: Elliott added <b>find</b> -wholename/-iwholename, -printf,
-and -context, <b>grep</b> --exclude-dir, and <b>echo</b> -E.
-Rob added <b>blkid</b> -U and -L, <b>mount</b> now has UUID= support via blkid -U,
-you can now specify TZ="blah" in the <b>date</b> -d input string (although
-why the double quotes are required is an open question), and <b>sed</b> now
-understands ,+N relative ranges. Makepost added <b>rm</b> -v.
-The human_readable fields in <b>ps</b>/<b>top</b>/<b>iotop</b> now use all
-available space to show more precision, <b>iotop</b> displays swap bandwidth
-properly (it was showing a signed field as unsigned), and
-<b>touch</b> -t and -d autodetect the time format.</p>
-
-<p><u>Cleanups</u>: In pending Rob did some bc cleanup,
-Colin Davidson did some arp cleanup,
-Uros Prestor fixed route argument parsing, and
-in bc Daniel Rosenberg fixed bc_vec_concat()'s allocation and
-Gavin Howard fixed an overflow bug in bc_num_ulong().</p>
-
-<p>Elliott made scan_key() detect cursor keys and such with several more
-terminal types, made more better about directories and non-tty output,
-cleaned up inconsistent uses of ARRAY_LEN(), taught file
-to recognize a c-sky ELF machine, and fixed timezone and daylight
-savings time issues in date and its tests.
-Rob simplified netcat and ping using new lib/net.c infrastructure.
-When run as non-PID 1 (for a chroot) oneit's exit code now indicates
-which signal it's exiting due to.
-Hadrian Węgrzynowski #defined constants for mkpathat.
-Date now uses the current time for unspecified fields (instead of zeroing
-them), and should set the weekday properly.
-Sort's -k2.3,4.5 syntax is now documented and behaves more closely to
-other implementations (silly as that behavior is).
-Significant speedup to sed s/a/b/g on a megabyte long line (it was
-O(n^2) and now it's quite snappy).</p>
-
-<p>Several cases of warning about stdout failing to write were silenced
-because things like piping the output to head means stdout is a special
-case: its output is often discarded and that's fine. And xprintf()
-and friends only checks stdout for errors so it can exit early ("yes | head"
-should not spin endlessly) without actually flushing anything.
-There's an ongoing design debate about line buffering stdin and stdout
-that'll have to be resolved next dev cycle.</p>
-
-<p><u>Bugs</u>:
-Elliott sent in a lot of fixes for building AOSP with toybox:
-support for more date formats, sed substitution of empty capture groups
-and an endless loop with -EPIPE, fixed find -path/-ipath, made loggit()
-only feed LOG_AUTH to syslog when we have a tty, gave grep a bunch
-of --longname synonyms for short options, added getfattr --only-values,
-and timeout --foreground --preserve-status and --signal.</p>
-
-<p>Top got a lot of tweaks: it no longer collates thread's CPU usage into the
-parent thread (in -H mode), hides the cursor in interactive mode, updates the
-display properly in batch mode, and accepts ENTER
-as a synonym for SPACE when refreshing the display. The header lines
-now abbreviate long numbers with units (via human_readable()),
-more reliably spans the terminal width, and says "Thread" instead
-of "Task" when it's showing threads. The task/thread count now adds up
-(understanding more kernel states and treating unknown ones as "sleeping").
-Top now treats -o "" as an error (previously it displayed an empty screen).</p>
-
-<p>William Djupström pointed out login needs to chown() the tty, and made it
-clear the environment when -p is absent.
-Vidar Holen fixed inverted find -exec exit status.
-Rob made chgrp() stop relying on libc's printf("%s", NULL) printing "(null)"
-because a <a href=https://github.com/varnishcache/varnish-cache/issues/2879>newly added gcc bug</a> turns that into a build break, and
-fixed an outright embarassing xstrndup() bug.
-Liwugang fixed a segfault when stat's format string had a trailing %.
-A missing else in grep meant -x was sometimes ignored.</p>
-
-<p><u>Infrastructure</u>:
-in the build scripts/portability.sh now tests that the compiler it's trying
-to use exists up front. We no longer link against librt because on glibc that's
-pulling in libpthread for some unknown reason.</p>
-
-<p>TOYFLAG_ARGFAIL() lets commands return custom exit values when option parsing
-fails (because AOSP build scripts cared), so timeout --unknown returns 125
-and so on: chroot, diff, cmp, env, grep, nohup, and sort also use it now with
-various values.</p>
-
-<p>New FLAG() macros: FLAG(x) expands to (toys.optflags&FLAG_x) and returns
-zero if the command line argument's bit isn't set and nonzero if it is
-(meaning -x was or wasn't encountered on the command line this time by
-lib/args.c). Lots of commands got converted to use them.</p>
-
-<p>New lib/env.c with reset_env(), xsetenv(), and xunsetenv() which frees
-the old environment variable when it wasn't inherited from exec(). This
-lets long-running loops reset environment variables without memory leaks.</p>
-
-<p>New xnotify() plumbing in lib/portability.c with Linux and Mac versions
-(which should also work on BSD).</p>
-
-<p>New xparsedate() and xvali_date() functions allow date, tar --mtime, and
-touch to understand the same date formats,
-xpopen_both() now knows how to use existing filehandles for the child's
-stdin/stdout, and no longer redirects stderr (which hides errors),
-new nanomove(), nanodiff(), union socksaddr, xrecvwait(),
-and human_readable_long() to show more than 3 digits of output.</p>
-
-<p>Taught xgetaddrinfo() to return a wildcard address for a NULL host,
-xconnbind() sets SO_REUSEADDR by default,
-fileunderdir() returns the abspath to the file now (since we had to work
-it out anyway), and
-xabspath() uses O_PATH now (because Android's SELinux rules got more aggressive).</p>
-
-<p>Several new xsendfile() variants, including sendfile_len() to copy
-a specific amount of data and xsendfile_pad() to append zeroes to the
-output when there isn't enough input.</p>
-
-<p>regexec0() is now using libc's REG_STARTEND supported by every libc out
-there _except_ musl. (It originated in BSD and was adopted by glibc, bionic,
-and uClibc 15 years ago, and is also supported in macosx. Musl's maintainer
-<a href=https://www.openwall.com/lists/musl/2013/01/15/26>turned down</a>
-the feature request as an invalid use case he didn't think they should
-be trying to do.)</p>
-
-<p><u>Docs</u>:
-the <a href=license.html>license page</a> now has an SPDX identifier, and links to more
-history/context. The actual LICENSE file had its title line removed
-so <a href=https://github.com/github/choosealicense.com/pull/643#issuecomment-463746027>github could recognize it</a> as 0BSD. (We're still waiting for
-"<a href=https://github.com/github/choosealicense.com/pull/643#issuecomment-464380789>a while</a>" to pass before github actually does, though.)</p>
-
-<p>A new www/doc/mount.txt file describes how mount works under the covers.</p>
-
-<p>Rob consistently misspelled "canonical" and "millisecond", mountpoint
-has a synopsis now,
-Kevin van der Kamp fixed a typo in netstat's help text, and Elliott
-Hughes fixed typos everywhere and made the tense, capitalization, and
-punctuation of help text more consistent.</p>
-
-<p>New paragraph in the code style part of design.html explaining that
-"char* a, b;" is not how C works, and since you wind up with "char *a, b;"
-anyway you might as well say that.</p>
-
-<p>Given dreamhost's tendency to repeatedly delete the mailing list
-archive, the nav bar on the left links to a backup web archive now too.</p>
-
-<p>The FAQ now says why we do time based releases.</p>
-
-<p><u>Testing</u>: Added VERBOSE=nopass to not show passing tests.
-The test suite now does an rm -rf on testdir between each command so
-debris files don't accumulate.
-New skipnot function skips the next test if a command line fails, and
-toyonly function only runs command when we're testing the toybox version
-of command. (This isn't the same as TEST_HOST, the host version could be
-toybox.)
-The find -newer test calls "sleep .1" to avoid intermittently failing with an
-identical timestamp.
-Elliott added the start of a file.test rogues gallery.
-No longer call lsattr in "make tests" because the behavior differs by
-filesystem and it needs fixing somehow.</p>
-
<a name="08-02-2019" /><a href="#08-02-2019"><hr><h2><b>February 8, 2019</b></h2></a>
<blockquote>
<p>"Most readers get as far as the Future Semiconditionally Modified