OSDN Git Service
Rob Landley [Wed, 26 Apr 2017 21:36:19 +0000 (16:36 -0500)]
Elliott wants to run the toybox tests on android host and there's an sh but
it isn't toysh, so test for a bash alias.
Rob Landley [Tue, 25 Apr 2017 07:21:39 +0000 (02:21 -0500)]
Forgot to check in one of the files for bzcat.test
Rob Landley [Tue, 25 Apr 2017 00:01:33 +0000 (19:01 -0500)]
Another FAQ, and some related tweaks as long as I was there.
Rob Landley [Wed, 19 Apr 2017 06:44:16 +0000 (01:44 -0500)]
Add ls -ll (with --full-time as a compatibility synonym) to show nanoseconds.
(And, for some reason, timezone. Individual files have timezones?)
Rob Landley [Tue, 18 Apr 2017 18:19:07 +0000 (13:19 -0500)]
The kernel needs bc to build because
https://landley.net/notes-2013.html#28-03-2013 so add it to the airlock install.
Elliott Hughes [Sat, 15 Apr 2017 18:27:18 +0000 (11:27 -0700)]
Use $(( rather than $[ for arithmetic in expand.test.
I can't find any reference to $[ for arithmetic on the bash man page, but it
seems to be a synonym for $((. mksh doesn't support this, so the expand tests
that use it fail on Android. No other toybox tests are using $[.
Elliott Hughes [Fri, 14 Apr 2017 20:43:16 +0000 (13:43 -0700)]
Make ls.test work without awk.
Elliott Hughes [Sat, 8 Apr 2017 06:15:52 +0000 (23:15 -0700)]
Speed up tail.test for shells without builtin printf.
The test only needs echo, and Android currently doesn't use mksh's
builtin printf; the toybox printf is fuller featured and less buggy,
but a lot slower to call in a loop like this (and mksh doesn't fall
back to the printf on the path if given something it can't handle,
so we can't have the best of both worlds).
Without this hack, the tail test takes as long as all the other
tests put together.
Rob Landley [Wed, 12 Apr 2017 18:41:10 +0000 (13:41 -0500)]
Default to -b rather than -q when output is to a tty.
Elliott Hughes [Sat, 8 Apr 2017 06:00:54 +0000 (23:00 -0700)]
Fix "make test_split".
The test shouldn't assume there's a toybox binary on the path.
Rob Landley [Tue, 11 Apr 2017 18:38:37 +0000 (13:38 -0500)]
Silence a broken warning by hitting it with a rock.
Elliott Hughes [Wed, 5 Apr 2017 17:13:47 +0000 (10:13 -0700)]
Make fdisk buildable.
The argument to help_exit is a char*, not a FILE*.
Elliott Hughes [Thu, 6 Apr 2017 21:44:45 +0000 (14:44 -0700)]
Fix touch -a/-m (and add the missing tests).
utimensat takes atime in [0] and mtime in [1], but since we're overwriting
with UTIME_OMIT, we actually want to flip the comparison so -a blats 1 and
-m blats 0.
Elliott Hughes [Mon, 3 Apr 2017 21:12:08 +0000 (14:12 -0700)]
Add "uudecode -o -" support.
busybox uudecode supports this, and POSIX explicitly mentions it (albeit
only in the "STDOUT" section). Plus Android doesn't have /dev/stdout and
/dev/stdin, so this lets us rewrite the uudecode tests so they pass on
Android too.
Rob Landley [Sat, 8 Apr 2017 18:52:18 +0000 (13:52 -0500)]
Fix the ls -m test (which is just a whitespace issue, but eh).
While we're at it, ls -m wordwrap was one column early.
Elliott Hughes [Mon, 3 Apr 2017 15:57:42 +0000 (08:57 -0700)]
Make renice.test work without awk.
Also try to only kill processes we created.
Elliott Hughes [Mon, 3 Apr 2017 15:33:23 +0000 (08:33 -0700)]
Remove mount.test awk dependency.
Parsing file(1) output isn't a good way to determine file system type anyway.
Elliott Hughes [Sun, 2 Apr 2017 19:29:39 +0000 (12:29 -0700)]
Make pgrep tests runnable on toybox-only systems.
Also make the cleanup kill more focused.
Elliott Hughes [Sun, 2 Apr 2017 19:20:53 +0000 (12:20 -0700)]
Make pkill tests runnable on a toybox-only system.
Also use a much stricter regex in the regex test to avoid killing innocent
bystanders.
Elliott Hughes [Sun, 2 Apr 2017 19:27:38 +0000 (12:27 -0700)]
Make bzcat tests runnable on a toybox-only system.
Rob Landley [Tue, 4 Apr 2017 23:13:51 +0000 (18:13 -0500)]
Add "testcmd" function as an alternative to "testing" for tests/*.test, and
check in two converted commands.
Elliott Hughes [Sun, 2 Apr 2017 18:58:49 +0000 (11:58 -0700)]
Fix ls -a and ls -A tests.
Rob Landley [Mon, 3 Apr 2017 21:57:40 +0000 (16:57 -0500)]
Trivial cleanup. (Whitespace, brackets, and remove unnecessary typecasts.)
Rob Landley [Mon, 3 Apr 2017 20:48:21 +0000 (15:48 -0500)]
Add gzip support. (Doesn't show source OS and timestamp, but reporting them
isn't obviously useful.)
Elliott Hughes [Sat, 25 Mar 2017 20:08:20 +0000 (13:08 -0700)]
Implement dmesg -T.
Also refactor so that legacy mode gets all the new functionality too, and
add -S to make it easier to test legacy mode on 3.5 or newer kernels (at least
on the host; on Android the syslog(2) system call is no longer allowed).
Bug: http://b/
36090178
Rob Landley [Wed, 29 Mar 2017 01:39:31 +0000 (20:39 -0500)]
Don't try to implement %s, we have @seconds, strptime() in libc tends
not to have it, and implementing our own means a pattern like
"Time %%%s%%" is expensive to handle the corner cases of.
Rob Landley [Wed, 29 Mar 2017 01:19:28 +0000 (20:19 -0500)]
New date range tests are simple, won't catch Feb 29 in non-leap-year
(or April 31 in any year). Some normalization allowed, exclusions are just
what http://pubs.opengroup.org/onlinepubs/
9699919799/basedefs/time.h.html says.
Rob Landley [Wed, 29 Mar 2017 01:16:41 +0000 (20:16 -0500)]
Replace chkmktime() (which produces false positive normalization failures)
with range checks for seconds, minutes, hours, day of month, and month.
Josh Gao [Mon, 27 Mar 2017 22:53:03 +0000 (15:53 -0700)]
ps: don't query for terminal size if not a tty.
`ps -A | cat` shouldn't have different output depending on the size of
your terminal window.
Elliott Hughes [Wed, 22 Mar 2017 17:35:14 +0000 (10:35 -0700)]
Fix the type of the callback in getprop.
Fixes:
toys/android/getprop.c:56:39: warning: incompatible pointer types
passing 'void (void *, const char *, const char *)' to parameter of
type 'void (*)(void *, const char *, const char *, uint32_t)'
(aka 'void (*)(void *, const char *, const char *, unsigned int)')
[-Wincompatible-pointer-types]
__system_property_read_callback(pi, read_callback, NULL);
^~~~~~~~~~~~~
Rob Landley [Fri, 24 Mar 2017 16:59:26 +0000 (11:59 -0500)]
We grew a few more commands that weren't on the roadmap (mostly from android)
so throw them in the "requests" category so they show up in status.html.
Rob Landley [Thu, 23 Mar 2017 16:35:09 +0000 (11:35 -0500)]
Now that just about everything has --help, don't output help for argument errors
Elliott Hughes [Wed, 22 Mar 2017 17:39:36 +0000 (10:39 -0700)]
Fix a typo and explain a mystery in news.html.
Elliott Hughes [Tue, 21 Mar 2017 19:11:29 +0000 (12:11 -0700)]
Implement uptime -s.
Also add trivial tests.
Rob Landley [Wed, 22 Mar 2017 00:25:33 +0000 (19:25 -0500)]
dirtree_flagread() returns DIRTREE_ABORTVAL when the initial node doesn't
exist, which can hit ps when /proc isn't there or /proc/$PID/task isn't
there (because process exited between the time we checked its contents
and the time we looked for its threads).
Rob Landley [Mon, 20 Mar 2017 18:14:14 +0000 (13:14 -0500)]
Paste bugfix, more tests.
Rob Landley [Mon, 20 Mar 2017 17:41:22 +0000 (12:41 -0500)]
Add TOYBOX_PEDANTIC_ARGS to check arguments when there are no arguments,
and make uptime use it.
Rob Landley [Mon, 20 Mar 2017 16:11:34 +0000 (11:11 -0500)]
Rewrite paste so it actually works.
Rob Landley [Sun, 5 Mar 2017 02:42:06 +0000 (20:42 -0600)]
Another FAQ entry.
Rob Landley [Sat, 4 Mar 2017 03:21:26 +0000 (21:21 -0600)]
FAQ tweak: one more link on toybox history.
Rob Landley [Sat, 4 Mar 2017 03:13:57 +0000 (21:13 -0600)]
Check in web page announcement for 0.7.3.
Rob Landley [Tue, 21 Feb 2017 17:27:25 +0000 (11:27 -0600)]
It's past time for 0.7.3.
Rob Landley [Tue, 21 Feb 2017 04:40:10 +0000 (22:40 -0600)]
If the last ps field is left justified, it extends to the width of the screen.
(Recent "show + for last char when truncated" change broke that, putting it
back.)
Elliott Hughes [Sun, 19 Feb 2017 17:22:45 +0000 (09:22 -0800)]
4a4b3d65644ce403b0f22887fc0d38b0202ec8c7 upset clang.
Recent-ish clang doesn't like self-assignment. Google/Android code always
uses the [template-based moral equivalent of] __attribute__((__unused__))
to keep both compilers happy.
Rob Landley [Tue, 21 Feb 2017 03:42:58 +0000 (21:42 -0600)]
Declaring todo bankruptcy, dmesg goes back into pending until I get a chance
to unify the two codepaths in Elliott's rewrite.
Elliott Hughes [Wed, 4 Jan 2017 18:45:55 +0000 (10:45 -0800)]
Fix dmesg -c and -C.
I never use these, so I didn't notice I'd broken them until someone who
does bringup complained.
The "one weird trick" with SEEK_DATA is documented at the URL we already
point to. SEEK_DATA was added in Linux 3.1 (2011) and isn't available in
glibc 2.19 (2014), so I've added that to "portability.h" for the benefit
of Ubuntu 14.04.
Also make -c and -C mutually exclusive.
Also fix some of the formatting I introduced earlier. (A clang-format file
would help prevent these mistakes...)
Rob Landley [Sat, 18 Feb 2017 18:51:35 +0000 (12:51 -0600)]
Ascii only showed 15 rows instead of 16 and spacing was wrong for 96-100.
Elliott Hughes [Fri, 17 Feb 2017 22:43:56 +0000 (14:43 -0800)]
Fix the comment about the Android SIGPIPE behavior.
Elliott Hughes [Thu, 16 Feb 2017 01:23:19 +0000 (17:23 -0800)]
Teach file(1) about bzip2 files.
If we can read and write bzip2 files, we should be able to identify them
too...
Rob Landley [Fri, 10 Feb 2017 22:37:42 +0000 (16:37 -0600)]
Add back bionic SIGPIPE handler workaround accidentally removed in
3b51a07e478d
Rob Landley [Thu, 9 Feb 2017 19:58:03 +0000 (13:58 -0600)]
Document df -a
Rob Landley [Tue, 7 Feb 2017 22:27:37 +0000 (16:27 -0600)]
Add ascii: display ascii table.
Rob Landley [Tue, 7 Feb 2017 02:46:56 +0000 (20:46 -0600)]
ps -l has 4 chars left for "cmd", switch "ADDR" to "BIT" to save space.
Rob Landley [Mon, 6 Feb 2017 22:07:57 +0000 (16:07 -0600)]
Make tty size failure to enable -w (Elliott prefers that), and fix last field
to be left justified again.
Rob Landley [Mon, 6 Feb 2017 02:02:47 +0000 (20:02 -0600)]
Don't set SIGWINCH when reading ANSI size probe data, it causes a loop.
Rob Landley [Mon, 6 Feb 2017 01:39:31 +0000 (19:39 -0600)]
Bugfix: last field was padding to width with trailing spaces (oops), and
when we can't query terminal size pad to 80 but add -w.
Rob Landley [Sun, 5 Feb 2017 06:53:13 +0000 (00:53 -0600)]
Patch from Elliott to silence a "const" warning in android/getprop.c.
(Broken out of a larger patch, fixed the other part a different way.)
Rob Landley [Sun, 5 Feb 2017 06:51:18 +0000 (00:51 -0600)]
Silence a warning.
Once upon a time you could call fchown() and let it fail. Then gcc decided
not using its return code was inconcievable, but you could typecast it to (void)
to shut it up. Then gcc noticed people doing that and clutched its pearls and
took it away, so I added an if() statement that does nothing with the result
because we _expect_ this to fail when we're not root. Then clang started
complaining about an if (); statement with the semicolon on the same line,
but decided it's ok if the ; is on the next line (I.E. significant whitespace
in C), so I'm adding an "assignemnt to self" that gets optimized away so
it does a more _explicit_ nothing (the same way you suppress gcc's broken
"this isn't used uninitialized" warnings).
If the compilers weren't going to so much trouble to force the issue I might
add code to only call fchown when we're UID 0, but I refuse to be coerced
into it. (And if getpid() is still a system call instead of a vdso member
then it doesn't actually _save_ us anything, the dentry should be hot and
the permission check was just "if (!uid)" before selinux entered into it and
we're operating on an fd so the security's the same.)
Rob Landley [Sun, 5 Feb 2017 06:44:29 +0000 (00:44 -0600)]
Default to width 80 when tty size probe fails (ala serial console).
(It was defaulting to 99999 but not FLAG_w, so it tried to _pad_ to 99999.)
Rob Landley [Sat, 4 Feb 2017 20:55:36 +0000 (14:55 -0600)]
Posix says stdio.h should define 'stdout' as a macro, and bionic turns it into
an array index, which doesn't work as a local variable name. So rename it.
Rob Landley [Sat, 4 Feb 2017 06:34:31 +0000 (00:34 -0600)]
Switch oneit to use xopen_stdio() for -c (oops) and switch XVFORK() to use
__attribute__((returns_twice)) instead of noinline.
Yes LLVM supports it: https://llvm.org/bugs/show_bug.cgi?id=6287
Elliott Hughes [Thu, 2 Feb 2017 22:51:32 +0000 (14:51 -0800)]
Fix typo in pgrep help.
Elliott Hughes [Fri, 3 Feb 2017 00:50:46 +0000 (16:50 -0800)]
Fix operator precedence error in df.
Rob Landley [Wed, 1 Feb 2017 22:13:01 +0000 (16:13 -0600)]
Build dependency tweak.
Rob Landley [Wed, 1 Feb 2017 21:57:52 +0000 (15:57 -0600)]
Extend default USER length to 12 and output "+" as last character of truncated
(left-justified) fields.
Rob Landley [Tue, 31 Jan 2017 07:46:34 +0000 (01:46 -0600)]
ps bugfix: len of TTY field doesn't include null terminator, so memmove should
subtract one _less_ than /dev prefix length or string isn't terminated.
Rob Landley [Tue, 31 Jan 2017 03:42:35 +0000 (21:42 -0600)]
Cleanup leftover debris.
Elliott Hughes [Sun, 29 Jan 2017 20:35:54 +0000 (12:35 -0800)]
Improve file's ELF parsing.
An ELF file with no program headers is valid, and binutils leaves e_phentsize
zero in that case. Fix the corruption check to cope.
Also, since notes are in both the program and section headers (and I'm not
aware of the possibility of having no sections but still having notes ---
where would they be?), look for them in the section headers instead.
Also extend the parsing of the .android.note.ident ELF note to include the
NDK version information if present. (This won't be present for platform
binaries, but will be present for NDK-built binaries such as app libraries.)
Rob Landley [Sun, 29 Jan 2017 07:50:09 +0000 (01:50 -0600)]
Izabera suggested seq should multiply to avoid accumulating rounding errors
from incrementing by a double.
Rob Landley [Sun, 29 Jan 2017 00:51:11 +0000 (18:51 -0600)]
Tweak -w help text to clarify that it prevents truncating _any_ fields, not
just for terminal width.
Rob Landley [Sun, 29 Jan 2017 00:36:43 +0000 (18:36 -0600)]
Fix padto in draw_trim_esc() so it behaves like printf %*.*s and matches the
comment (I.E. negative first value _left_ justifies). This makes ps display
the same truncated values with and without a tty.
Also add a few comments to the rest of the file.
Elliott Hughes [Fri, 27 Jan 2017 23:55:28 +0000 (15:55 -0800)]
Add missing `static`s and remove an unused function.
Rob Landley [Sat, 28 Jan 2017 23:40:55 +0000 (17:40 -0600)]
Whitespace.
Rob Landley [Sat, 28 Jan 2017 23:35:20 +0000 (17:35 -0600)]
modprobe: Small cleanup pass, described on the list.
Steve Muckle [Thu, 26 Jan 2017 01:51:40 +0000 (17:51 -0800)]
modprobe: use finit_module when possible
The finit_module() system call, introduced in Linux 3.8, reads the
module from a supplied file descriptor. This allows the kernel to do
security checks based on the file's location.
Steve Muckle [Mon, 9 Jan 2017 19:54:20 +0000 (11:54 -0800)]
modprobe: add -d option to specify module directory path(s)
While most systems have their kernel modules, modules.dep etc located at
/lib/modules/`uname -r` this is not always the case.
The -d option may be used to specify a nonstandard path for these files.
It may be used more than once to specify multiple directories where
these files may be found.
Elliott Hughes [Fri, 27 Jan 2017 20:54:25 +0000 (12:54 -0800)]
top -H is more useful if it shows thread names.
I knew that just showing the process name was a divergence from
traditional Android behavior, but I was curious to see whether anyone
cared. Bug reports show that they do. I've not made this conditional on
CFG_TOYBOX_ON_ANDROID on the assumption that this is more useful for
everyone else too. (Why are you asking for per-thread information if
you don't actually want to be able to identify individual threads?)
Why not _just_ show the thread name? Because on Android at least, every
process has lots of identically-named threads; everyone has GC threads,
everyone has JIT threads, and so knowing _just_ the thread name is
rarely useful.
Why show thread name first? Because the kernel limits thread names to 15
bytes plus a NUL, so any left-over space should go to the process name,
so that should come last.
Why call the thread name THREAD? Because "CMD" isn't obviously "thread
name" to folks who don't know how this is implemented behind the scenes.
This change also removes an incorrect "usage:" comment. None of the
other commands in this file duplicated their "usage:" lines, and this
copy wasn't even close to being correct.
Bug: http://b/
34610082
Elliott Hughes [Fri, 27 Jan 2017 18:54:11 +0000 (10:54 -0800)]
Minor Android roadmap update.
Rob Landley [Sat, 28 Jan 2017 22:33:13 +0000 (16:33 -0600)]
Remove s6 from roadmap. (It wasn't in status.html anyway, haven't updated
our comparison in years, and email with the maintainer convinced me it's
not a good yardstick for "what a traditional linux system expects to have".)
Rob Landley [Sat, 28 Jan 2017 22:27:44 +0000 (16:27 -0600)]
Answer another question.
Dimitry Ivanov [Wed, 25 Jan 2017 21:27:03 +0000 (13:27 -0800)]
Remove name length limit for system properties
Android O removes name length limit for system properties.
Use __system_property_read_callback instead of deprecated
__system_property_read in getprop and remove check for
property name length in setprop.
Test: adb shell setprop debug.test.very.very.long.property.name valueforpropertywithlongname
Test: adb shell getprop | grep debug.test.very.very.long.property.name
Bug: http://b/
33926793
Change-Id: I57ca99ea33283d069cd1b7b9f110ec9fb27f3d19
Rob Landley [Wed, 25 Jan 2017 22:23:58 +0000 (16:23 -0600)]
Promote microcom to net.
Rob Landley [Wed, 25 Jan 2017 21:53:58 +0000 (15:53 -0600)]
Switch escape charcter to ^] (ascii 29, doesn't conflict with emacs or joe).
Recognize full range of linux serial speeds (only error cfsetspeed returns
is invalid speed value).
Elliott Hughes [Sun, 15 Jan 2017 18:51:55 +0000 (10:51 -0800)]
Fix microcom command-line help and -X.
Elliott Hughes [Sat, 14 Jan 2017 21:12:13 +0000 (13:12 -0800)]
Add "microcom" to pending.
Our device bringup folks wanted a simple serial console, both on the
host and on the device. This is certainly enough to replace what I've
been using personally on the host.
I'd never heard of "microcom" until I asked the internets what busybox
users use, so I don't care what we call this or what the options are
called. (But would like to decide before it gets ossified in a million
factory test scripts and the like!)
The tool that this replaces for me defaulted to /dev/ttyUSB0, but since
I don't know whether that default would be useful for most other people
too, I left that out. Command-line history will solve my transition
problem.
Rob Landley [Sat, 14 Jan 2017 22:51:43 +0000 (16:51 -0600)]
Quick and dirty fix for CVE-2016-6321 but seriously this is in pending
for a reason and I need to completely rewrite it.
Rob Landley [Tue, 10 Jan 2017 01:25:07 +0000 (19:25 -0600)]
More pending shell tests.
Rob Landley [Wed, 4 Jan 2017 20:19:06 +0000 (14:19 -0600)]
Implicit function declarations are an error, not a warning.
(The switch to 64 bits screwed up varargs: everything used to be promoted to 32
bits, but now it's 32 bits or 64 bits depending on type declarations, so you
need the type declarations. Because promoting "char" arguments to 32 bits back
when a megabyte was a lot of memory was ok, but promoting everything to 64 bits
now that you can get 2 gigabytes of ram in a phone is unacceptable.)
Rob Landley [Wed, 4 Jan 2017 20:18:12 +0000 (14:18 -0600)]
Tweak install_airlock help text.
Rob Landley [Wed, 4 Jan 2017 20:16:03 +0000 (14:16 -0600)]
ftpget: implement -mMdDlL, put ftp transactions into their own function so -v
can show both output and reply lines.
Rob Landley [Wed, 4 Jan 2017 07:33:19 +0000 (01:33 -0600)]
First stab at ftpget/ftpput. (Documents a lot of options other than basic
upload/download that aren't implemented yet.)
Rob Landley [Wed, 4 Jan 2017 07:32:44 +0000 (01:32 -0600)]
Some lib fixes: mark xvfork() noinline, make xsendfile() return bytes copied,
make xsocket()'s returned fd CLOEXEC.
Rob Landley [Wed, 4 Jan 2017 07:14:07 +0000 (01:14 -0600)]
An option can't exclude itself, so "abc[-ab][!abc]" with "command -a -b"
shouldn't segfault falling off the end of the list trying to report a
nonexistent error condition.
Rob Landley [Mon, 2 Jan 2017 18:20:13 +0000 (12:20 -0600)]
Alas, the backup list archive went down because https://lwn.net/Articles/695695/
and although it was partially restored by https://lwn.net/Articles/699704/
that didn't include this list.
Elliott Hughes [Fri, 30 Dec 2016 19:19:08 +0000 (11:19 -0800)]
Remove unnecessary casts in stat.c, fix a claimed buffer length.
POSIX does have a name for the struct timespec in struct stat.
Elliott Hughes [Thu, 29 Dec 2016 02:26:55 +0000 (18:26 -0800)]
Stop lying to the compiler in modprobe's read_line.
sizeof(int) != sizeof(size_t) for LP64, leading to hilarity^Wcrashes.
Elliott Hughes [Tue, 27 Dec 2016 20:27:06 +0000 (12:27 -0800)]
Admit that getprop requires selinux.
The "lsm" portability stuff could abstract this away, but Android doesn't
need it, and getprop is meaningless on non-Android. (And if you're just
building with the NDK, on recent enough versions of Android you won't be
able to read most of the system properties anyway because access to them is
increasingly restricted by selinux.)
Elliott Hughes [Tue, 27 Dec 2016 20:17:50 +0000 (12:17 -0800)]
Switch to bionic <sys/system_properties.h>.
Removes the dependency on libcutils for everything except ps.
Rob Landley [Mon, 26 Dec 2016 18:10:29 +0000 (12:10 -0600)]
Move hostid to toys/example and have it "default n".
A "globally unique 32 bit number" is a concept the Linux world has outgrown.
Elliott Hughes [Sun, 25 Dec 2016 21:06:21 +0000 (13:06 -0800)]
log: use error_msg instead of perror_msg when errno is meaningless.