OSDN Git Service
Elliott Hughes [Fri, 28 Oct 2016 22:56:01 +0000 (15:56 -0700)]
Implement "dmesg -w".
Annoyingly, this means writing a new dmesg implementation that uses /dev/kmsg
rather than the klogctl system call. Worse, pre-3.5 kernels don't support
that, so we need to keep the old implementation around as long as we still
care about those kernels.
Since I'm here, add the fancy colors from modern dmesg and the -C flag.
Tested on Nexus 9's 3.10 kernel, an Ubuntu 3.13 kernel, and the
Nexus One's 2.6.35 kernel.
Rob Landley [Thu, 27 Oct 2016 04:52:55 +0000 (23:52 -0500)]
Izabera pointed out that split -b -l are exclusive.
Elliott Hughes [Tue, 25 Oct 2016 22:51:05 +0000 (15:51 -0700)]
Add fallocate -o.
Also improve error reporting.
Elliott Hughes [Tue, 25 Oct 2016 00:14:22 +0000 (17:14 -0700)]
Android O allows '@' in property names.
Bug: http://b/
32371104
Rob Landley [Mon, 24 Oct 2016 23:25:39 +0000 (18:25 -0500)]
Typos.
Rob Landley [Sat, 22 Oct 2016 23:15:09 +0000 (18:15 -0500)]
Tweak help text.
Rob Landley [Fri, 21 Oct 2016 04:14:39 +0000 (23:14 -0500)]
Announce 0.7.2.
Rob Landley [Fri, 21 Oct 2016 03:32:21 +0000 (22:32 -0500)]
Nothing in pending should "default y".
Rob Landley [Fri, 21 Oct 2016 03:30:58 +0000 (22:30 -0500)]
Nothing in pending should "default y".
Rob Landley [Fri, 21 Oct 2016 03:29:10 +0000 (22:29 -0500)]
Close to cutting a release and I don't want to have setfattr in defconfig
without getfattr, so I'm putting it back in pending for now.
Rob Landley [Thu, 20 Oct 2016 21:35:13 +0000 (16:35 -0500)]
Add special "touch -" behavior and require an argument.
Rob Landley [Thu, 20 Oct 2016 20:30:56 +0000 (15:30 -0500)]
Show driver for interface in ifconfig output.
Rob Landley [Thu, 20 Oct 2016 20:29:10 +0000 (15:29 -0500)]
Allow out and escout to be NULL in crunch_str()
Rob Landley [Thu, 20 Oct 2016 20:26:38 +0000 (15:26 -0500)]
Always regenerate config.h for now, so make single and make don't clash.
The problem is that .config and .singleconfig produce the same header file,
so checking that the header is newer than the .config file won't help if
it was last generated from the other file.
Rob Landley [Thu, 20 Oct 2016 01:51:28 +0000 (20:51 -0500)]
More touch tests, and a fix found by one. (The three -t formats can only
reliably be distinguished by checking length, because %H amd %m and such
can match different numbers of digits.)
Rob Landley [Tue, 18 Oct 2016 21:52:17 +0000 (16:52 -0500)]
Test infrastructure: collate make "test_single" and "make tests" into common
function, and add $C variable with an absolute path to the command being tested
(you need to call things like printf by path to avoid shell builtins, might as
well be consistent).
Rob Landley [Tue, 18 Oct 2016 21:28:47 +0000 (16:28 -0500)]
Add a printf test that shows a bug.
Rob Landley [Tue, 18 Oct 2016 09:10:01 +0000 (04:10 -0500)]
Unify touch -t and -d handling, allow posix's underspecified "time designator"
T to be a space instead (because the posix says so, no idea why), initialize
default values reliably including zeroing daylight savings time field (which is
handled inconsistently by libc and just screws stuff up).
Rob Landley [Tue, 18 Oct 2016 04:52:51 +0000 (23:52 -0500)]
A few more sed tests.
Rob Landley [Mon, 17 Oct 2016 23:32:35 +0000 (18:32 -0500)]
The recent --help infrastructure fiddling made "toybox --help unknown" segfault
because lookup failure left this->which NULL and error_exit() dereferenced it.
(Oops.)
Elliott Hughes [Tue, 11 Oct 2016 20:03:50 +0000 (13:03 -0700)]
Stop renaming the ADDR field to PC on Android.
It's causing confusion, and it's not obvious that anyone's relying on
it (and even if they are, let's try to find and fix them first).
Rob Landley [Tue, 11 Oct 2016 13:19:41 +0000 (08:19 -0500)]
Make netcat work with nommu and factor out poll() loop into net/net.c.
Rob Landley [Sun, 9 Oct 2016 20:35:56 +0000 (15:35 -0500)]
Izabera pointed out that ls defaults to -q when output is a tty.
Rob Landley [Sat, 8 Oct 2016 22:30:50 +0000 (17:30 -0500)]
Teach ps -w not to truncate any fields.
Rob Landley [Sat, 8 Oct 2016 22:27:12 +0000 (17:27 -0500)]
Evgenii Stepanov found a bug where argv0len was set wrong for threads
(no /proc/$PID/cmdline so setting was skipped and previous value retained),
which led to memcpy() with an overlapping source/dest range (annoying asan).
Fix: move temp variable and assignment outside the if() statement so we assign
zero if we can''t read the file.
Rob Landley [Wed, 5 Oct 2016 18:29:55 +0000 (13:29 -0500)]
Explain some generic argument parsing features in toybox --help.
Rob Landley [Tue, 4 Oct 2016 20:08:48 +0000 (15:08 -0500)]
Explain dlist_terminate.
Elliott Hughes [Fri, 30 Sep 2016 23:33:12 +0000 (16:33 -0700)]
Updated Android roadmap.
Since we're actually getting close to the end of the toolbox list,
expand the "other stuff" with everything that's currently in /system/bin
that could reasonably be replaced by toybox (and remove things that might
sound practical, but actually aren't). Also update the list of things
being built from pending.
Rob Landley [Mon, 3 Oct 2016 19:09:59 +0000 (14:09 -0500)]
David Hedges pointed out that interface names can be longer than 10 chars.
Rob Landley [Mon, 3 Oct 2016 03:41:55 +0000 (22:41 -0500)]
Add install_airlock target for hermetic build environment setup, and rebuild
headers during install to make other install targets robust against single
command builds between "make" and "make install" of multiplexer version.
Rob Landley [Sat, 1 Oct 2016 23:19:45 +0000 (18:19 -0500)]
du: 32 bit systems were maxing out at 2GB when they should max out at 2TB
(1<<32 blocks * 512 bytes, done with unsigned 64 bit math).
Rob Landley [Sat, 1 Oct 2016 20:52:00 +0000 (15:52 -0500)]
Move --version handling next to --help handling, so it applies to all commands.
Say "toybox" before version string. Tweak sed to preserve lie-to-autoconf.
Rob Landley [Fri, 30 Sep 2016 22:35:34 +0000 (17:35 -0500)]
sed -i run as root wasn't preserving ownership.
Elliott Hughes [Wed, 28 Sep 2016 18:00:30 +0000 (11:00 -0700)]
Accept extra ps arguments as additional pids.
POSIX says nothing, but traditional ps lets you say "ps 123" in addition
to "ps -p 123". (You can mix and match too: "ps -p 123,124 666 667" works
fine.)
Bug:
31778761
Elliott Hughes [Tue, 27 Sep 2016 19:20:41 +0000 (12:20 -0700)]
Show thread names with "ps -T" on Android.
Android uses NAME rather than CMD by default, but that's not what we
want with -T. Noticed because it broke systrace's reporting of thread
names (see https://developer.android.com/studio/profile/systrace.html).
Bug:
31741954
Rob Landley [Wed, 28 Sep 2016 20:13:41 +0000 (15:13 -0500)]
Make setns depend on TOYBOX_CONTAINER probed value.
Rob Landley [Wed, 28 Sep 2016 19:22:34 +0000 (14:22 -0500)]
Kernels between 2006 and 2010 (such as the one in Centos 6.6) provide unshare()
but not nsenter(). So probe for both.
Lipi C.H. Lee [Sun, 25 Sep 2016 23:55:53 +0000 (08:55 +0900)]
Changed xopen_stdin() to xopen_stdio().
Elliott Hughes [Mon, 12 Sep 2016 19:30:33 +0000 (12:30 -0700)]
Fix ls -lh.
The recent refactoring broke ls -lh by multiplying all sizes by 0
rather than 1.
Elliott Hughes [Tue, 13 Sep 2016 21:35:43 +0000 (14:35 -0700)]
Add ar archive support to file.
Elliott Hughes [Tue, 13 Sep 2016 20:55:59 +0000 (13:55 -0700)]
Add -h and -L to file.
On a toybox system, most of your bin directory is symbolic links.
Bug: http://b/
31294746
Rob Landley [Mon, 12 Sep 2016 04:55:36 +0000 (23:55 -0500)]
Izabera pointed out that "file -" was inconsistent (calling stat on "-" but
then reading from stdin if it detected a file). Fixed it so "-" always
means stdin and you have to say ./- to look at a local "-".
Did some whitespace tweaks while I was there...
Rob Landley [Tue, 6 Sep 2016 05:14:24 +0000 (00:14 -0500)]
Teach sed s/// how to handle [:space:] type sequences.
Or more accurately, s@[[:space:]@]@replace@ which can't treat the @ in
[] as a delimiter but has to know about nested [[]] to make that decision.
Rob Landley [Mon, 5 Sep 2016 05:55:24 +0000 (00:55 -0500)]
Replace loopfiles' failok with WARN_ONLY open flag.
Rob Landley [Mon, 5 Sep 2016 05:52:44 +0000 (00:52 -0500)]
Export notstdio() wrapper.
Rob Landley [Mon, 5 Sep 2016 05:32:38 +0000 (00:32 -0500)]
Fluff up cmp tests.
Rob Landley [Mon, 5 Sep 2016 00:13:31 +0000 (19:13 -0500)]
make test_cmp caused the make invocation to exit with an error because the
last test exited with nonzero status and the script preserved it. In the
current context, that's counterproductive.
Rob Landley [Sun, 4 Sep 2016 23:07:12 +0000 (18:07 -0500)]
Add comment so I don't undo and then redo a thing again.
Rob Landley [Sun, 4 Sep 2016 22:42:32 +0000 (17:42 -0500)]
Remove a chunk of copied header that hasn't been upated in a while.
Rob Landley [Sun, 4 Sep 2016 22:26:34 +0000 (17:26 -0500)]
Add openro() and WARN_ONLY flag so xopen() and friends can warn without exiting.
Rob Landley [Sun, 4 Sep 2016 22:18:31 +0000 (17:18 -0500)]
Switch help.c from #ifdef to if()
Rob Landley [Sat, 3 Sep 2016 20:41:55 +0000 (15:41 -0500)]
Move genericish function to lib.
Rob Landley [Sun, 28 Aug 2016 05:32:41 +0000 (00:32 -0500)]
Add tap support to tunctl.
Rob Landley [Sun, 28 Aug 2016 04:27:45 +0000 (23:27 -0500)]
Make "LC_ALL=C ls -Cs --color" produce the same output on toybox and ubuntu.
(Two spaces padding between columns, and -k is hardwired on.)
Rob Landley [Sun, 28 Aug 2016 04:07:04 +0000 (23:07 -0500)]
Remove some redundancy and unnecessary xprintf().
(We should use xprintf and similar to flush and check if stdout went away
once per line. No point flushing partway through a line, so in ls only use it
on things outputting a newline char.)
Elliott Hughes [Thu, 25 Aug 2016 23:28:05 +0000 (16:28 -0700)]
Fix ls -sh.
-h should apply to -s too. (Previously it only applied to the "total"
line in -s output.)
Elliott Hughes [Wed, 24 Aug 2016 21:50:05 +0000 (14:50 -0700)]
Add chrt to pending.
Requested by a Google team whose product is based on Android.
Rob Landley [Tue, 23 Aug 2016 04:03:18 +0000 (23:03 -0500)]
Add tunctl.
Rob Landley [Mon, 22 Aug 2016 04:45:19 +0000 (23:45 -0500)]
A round of dd cleanup.
Rob Landley [Sun, 21 Aug 2016 01:24:30 +0000 (20:24 -0500)]
Promote setfattr
Rob Landley [Sun, 21 Aug 2016 01:20:06 +0000 (20:20 -0500)]
Clean up setfattr.
Rob Landley [Fri, 19 Aug 2016 02:33:27 +0000 (21:33 -0500)]
Change xgetpwnamid/xgetgrnamid to xgetuid/xgetgid returning the id number
instead of a struct. This means it can return "12345" even if that user/group
doesn't exist in /etc/passwd and similar.
All the users were immediately dereferencing it to get pw_uid or gr_gid
anyway, so just return it directly and adjust the users. This fixes
things like "chown 12345:23456 filename".
Rob Landley [Tue, 16 Aug 2016 19:14:22 +0000 (14:14 -0500)]
Add length modifier to date escapes, and length sanity check.
Rob Landley [Mon, 15 Aug 2016 07:02:32 +0000 (02:02 -0500)]
Make "stat -c %37G file" and "stat -c %.5G file" work, and fix %U and %G to
not segfault on a lookup failure (they print the number instead of UNKNOWN).
The whitespace in the default output may need some adjusting.
Rob Landley [Mon, 15 Aug 2016 00:04:02 +0000 (19:04 -0500)]
Explain shared library policy, fix an unblanaced tag, add some links.
Rob Landley [Sat, 13 Aug 2016 22:53:32 +0000 (17:53 -0500)]
Document deviations from posix for echo.
Rob Landley [Sat, 13 Aug 2016 22:50:54 +0000 (17:50 -0500)]
Add TOYFLAG_NOHELP to disable --help processing for individual commands,
apply it to "true" and "false".
Rob Landley [Sat, 13 Aug 2016 20:19:29 +0000 (15:19 -0500)]
Move getusername/getgroupname to lib. (Return name or string representation
of number, but never NULL. Both returned in static buffer good through
next call.)
Rob Landley [Thu, 11 Aug 2016 14:46:36 +0000 (09:46 -0500)]
Matthias Urhahn pointed out that %b returns hardwired 512 byte units
(man 2 stat says so) and %B is the units on %b (I.E. always 512), so change
output and help text. This matches what other implementations produce.
Rob Landley [Sun, 7 Aug 2016 00:38:25 +0000 (19:38 -0500)]
Inline setup_inout(), test ftruncate() return value, move gettimeofday() before
seek so seek time is included in total.
Rob Landley [Thu, 4 Aug 2016 15:16:59 +0000 (10:16 -0500)]
Make xopen() skip stdin/stdout/stderr, add xopen_stdio() if you want stdout,
add xopenro() that takes one argument and understands "-" means stdin,
and switch over lots of users.
Elliott Hughes [Tue, 2 Aug 2016 18:12:15 +0000 (11:12 -0700)]
Fix warning: 'XATTR_NAME_SMACK' macro redefined.
Recent Linux uapi <linux/xattr.h> headers define XATTR_NAME_SMACK.
The <sys/xattr.h> include at the top of lib/lsm.h means that even
though the direct include of <linux/xattr.h> is guarded, it may
have already happened transitively anyway.
(The alternative fixes would be to hard-code the correct value for
XATTR_NAME_SMACK here instead, or #undef XATTR_NAME_SMACK.)
Elliott Hughes [Fri, 29 Jul 2016 20:11:04 +0000 (13:11 -0700)]
Fix touch(1) date parsing on tzcode-derived systems.
The IANA tzcode implementation of mktime (used on Android and BSDs) sets
errno in some cases where it doesn't return -1 to indicate failure, so the
existing test always failed on those systems.
I don't think glibc ever sets errno (which is fine by ISO C, but not POSIX).
Other uses of mktime in toybox are already fine. This one would have been
caught by the existing tests if I was running them on the device :-(
Rob Landley [Sat, 30 Jul 2016 16:39:17 +0000 (11:39 -0500)]
Single builds skip commands with 0 in the install location so
"make test_scankey" didn't work.
Rob Landley [Fri, 29 Jul 2016 22:35:29 +0000 (17:35 -0500)]
Izabera reporeted that FLAG_v was never checked in timeout. (Oops.)
Rob Landley [Tue, 26 Jul 2016 18:35:56 +0000 (13:35 -0500)]
Move regexec0 into lib (regexec that takes length and matches after NUL).
Rob Landley [Sat, 23 Jul 2016 23:25:38 +0000 (18:25 -0500)]
Usischev Yury pointed out that id shouldn't use exit() directly.
Rob Landley [Sat, 23 Jul 2016 23:12:48 +0000 (18:12 -0500)]
Usischev Yury pointed out a use after free error.
Rob Landley [Sat, 23 Jul 2016 06:32:23 +0000 (01:32 -0500)]
Many failing tests I need to fix grep to pass while adding --color.
Rob Landley [Thu, 21 Jul 2016 21:37:03 +0000 (16:37 -0500)]
Common test infrastructure says command name, don't have sed.tests say 'sed sed'
Elliott Hughes [Sun, 17 Jul 2016 17:42:31 +0000 (10:42 -0700)]
Add getfattr(1) and setfattr(1).
Plus basic tests.
Rob Landley [Sun, 17 Jul 2016 07:14:35 +0000 (02:14 -0500)]
The recent option parsing changes broke the multiplexer, because the "toybox"
command was trying to parse their options and failing. (Commands
that aren't just disabled but have no option string even in the allyesconfig
case need an OPTSTR of 0.)
This is probably only a partial fix, there's some design work to think through
here.
Elliott Hughes [Fri, 15 Jul 2016 22:14:33 +0000 (15:14 -0700)]
Remove sendevent from the Android roadmap.
Also update the list of things Android builds from pending, which has
shrunk.
Rob Landley [Fri, 15 Jul 2016 09:51:56 +0000 (04:51 -0500)]
Fix non-library md5sum build. (Oops.)
Rob Landley [Fri, 15 Jul 2016 09:45:08 +0000 (04:45 -0500)]
Add optional openssl accelerated versions of hash functions, loosely based on
a patch from Elliott Hughes, who said:
[PATCH] Add support for libcrypto for MD5/SHA.
Orders of magnitude faster (for architectures where OpenSSL/BoringSSL
has optimized assembler).
Also adds sha224sum, sha256sum, sha384sum, and sha512sum for folks
building with libcrypto.
The fallback portable C implementations could easily be refactored
to be API-compatible, but I don't know whether they'd stay here or
move to lib/ so I've left that part alone for now.
Rob Landley [Fri, 15 Jul 2016 09:39:35 +0000 (04:39 -0500)]
Don't close stdin when loopfiles reads "-".
Rob Landley [Fri, 15 Jul 2016 07:50:15 +0000 (02:50 -0500)]
Somebody asked a FAQ on irc, so answer it.
Elliott Hughes [Thu, 14 Jul 2016 00:00:58 +0000 (17:00 -0700)]
Add Android's "sendevent".
The lack of support for named constants is not a regression relative
to the toolbox implementation.
Rob Landley [Thu, 14 Jul 2016 21:53:33 +0000 (16:53 -0500)]
Add -c to md5sum and sha1sum.
Elliott Hughes [Wed, 13 Jul 2016 18:59:42 +0000 (11:59 -0700)]
Increase ps' default RSS and VSIZE widths.
This is enough for everything on Android and everything except Java
on my desktop. Even desktop Chrome fits!
Rob Landley [Wed, 13 Jul 2016 18:46:50 +0000 (13:46 -0500)]
Bugfix: suffixless string was feeding terminating NUL to strchr() and matching.
Rob Landley [Tue, 12 Jul 2016 20:48:25 +0000 (15:48 -0500)]
Implement NOP find -noleaf
Rob Landley [Tue, 12 Jul 2016 19:51:51 +0000 (14:51 -0500)]
Convert atolx() and friends to use long long internally. Update design.html
to use this (and tail) as examples of simplicity of implementation winning
and losing.
Elliott Hughes [Fri, 8 Jul 2016 04:48:33 +0000 (21:48 -0700)]
dd improvements.
Support hex (requested by users).
Support status=noxfer and status=none (requested by users).
Fix status output.
Clarify large numbers in --help output.
Use O_TRUNC rather than ftruncate unless we're also seeking.
New tests.
Also partial cleanup (reuse of existing code, removal of non-GLOBALS globals,
and merge dd_main and do_dd).
Elliott Hughes [Fri, 8 Jul 2016 02:32:34 +0000 (19:32 -0700)]
Fix typo in chattr test.
Rob Landley [Wed, 6 Jul 2016 00:36:00 +0000 (19:36 -0500)]
Fix generated/make.sh. (Quotes in TOYBOX_VERSION need to wind up in
resulting macro.)
Elliott Hughes [Tue, 5 Jul 2016 22:05:09 +0000 (15:05 -0700)]
Implement xxd -s.
Elliott Hughes [Tue, 5 Jul 2016 20:39:42 +0000 (13:39 -0700)]
Don't try to guess the build id type in file(1).
They're really just arbitrary byte sequences of arbitrary length.
Sure, a 20-byte sequence is _probably_ a SHA-1, but there's no way
to know, so let's stop pretending...
Rob Landley [Tue, 5 Jul 2016 03:25:52 +0000 (22:25 -0500)]
Fix chattr and date tests.
Rob Landley [Mon, 4 Jul 2016 13:32:42 +0000 (08:32 -0500)]
Now that we're using the adjusted option string, need to skip placeholders in [groups].