OSDN Git Service

android-x86/external-toybox.git
7 years agoThe kernel needs bc to build because
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.

7 years agoUse $(( rather than $[ for arithmetic in expand.test.
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 $[.

7 years agoMake ls.test work without awk.
Elliott Hughes [Fri, 14 Apr 2017 20:43:16 +0000 (13:43 -0700)]
Make ls.test work without awk.

7 years agoSpeed up tail.test for shells without builtin printf.
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.

7 years agoDefault to -b rather than -q when output is to a tty.
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.

7 years agoFix "make test_split".
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.

7 years agoSilence a broken warning by hitting it with a rock.
Rob Landley [Tue, 11 Apr 2017 18:38:37 +0000 (13:38 -0500)]
Silence a broken warning by hitting it with a rock.

7 years agoMake fdisk buildable.
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*.

7 years agoFix touch -a/-m (and add the missing tests).
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.

7 years agoAdd "uudecode -o -" support.
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.

7 years agoFix the ls -m test (which is just a whitespace issue, but eh).
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.

7 years agoMake renice.test work without awk.
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.

7 years agoRemove mount.test awk dependency.
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.

7 years agoMake pgrep tests runnable on toybox-only systems.
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.

7 years agoMake pkill tests runnable on a toybox-only system.
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.

7 years agoMake bzcat tests runnable on a toybox-only system.
Elliott Hughes [Sun, 2 Apr 2017 19:27:38 +0000 (12:27 -0700)]
Make bzcat tests runnable on a toybox-only system.

7 years agoAdd "testcmd" function as an alternative to "testing" for tests/*.test, and
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.

7 years agoFix ls -a and ls -A tests.
Elliott Hughes [Sun, 2 Apr 2017 18:58:49 +0000 (11:58 -0700)]
Fix ls -a and ls -A tests.

7 years agoTrivial cleanup. (Whitespace, brackets, and remove unnecessary typecasts.)
Rob Landley [Mon, 3 Apr 2017 21:57:40 +0000 (16:57 -0500)]
Trivial cleanup. (Whitespace, brackets, and remove unnecessary typecasts.)

7 years agoAdd gzip support. (Doesn't show source OS and timestamp, but reporting them
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.)

7 years agoImplement dmesg -T.
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

7 years agoDon't try to implement %s, we have @seconds, strptime() in libc tends
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.

7 years agoNew date range tests are simple, won't catch Feb 29 in non-leap-year
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.

7 years agoReplace chkmktime() (which produces false positive normalization failures)
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.

7 years agops: don't query for terminal size if not a tty.
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.

7 years agoFix the type of the callback in getprop.
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);
                                      ^~~~~~~~~~~~~

7 years agoWe grew a few more commands that weren't on the roadmap (mostly from android)
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.

7 years agoNow that just about everything has --help, don't output help for argument errors
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

7 years agoFix a typo and explain a mystery in news.html.
Elliott Hughes [Wed, 22 Mar 2017 17:39:36 +0000 (10:39 -0700)]
Fix a typo and explain a mystery in news.html.

7 years agoImplement uptime -s.
Elliott Hughes [Tue, 21 Mar 2017 19:11:29 +0000 (12:11 -0700)]
Implement uptime -s.

Also add trivial tests.

7 years agodirtree_flagread() returns DIRTREE_ABORTVAL when the initial node doesn't
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).

7 years agoPaste bugfix, more tests.
Rob Landley [Mon, 20 Mar 2017 18:14:14 +0000 (13:14 -0500)]
Paste bugfix, more tests.

7 years agoAdd TOYBOX_PEDANTIC_ARGS to check arguments when there are no arguments,
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.

7 years agoRewrite paste so it actually works.
Rob Landley [Mon, 20 Mar 2017 16:11:34 +0000 (11:11 -0500)]
Rewrite paste so it actually works.

7 years agoAnother FAQ entry.
Rob Landley [Sun, 5 Mar 2017 02:42:06 +0000 (20:42 -0600)]
Another FAQ entry.

7 years agoFAQ tweak: one more link on toybox history.
Rob Landley [Sat, 4 Mar 2017 03:21:26 +0000 (21:21 -0600)]
FAQ tweak: one more link on toybox history.

7 years agoCheck in web page announcement for 0.7.3.
Rob Landley [Sat, 4 Mar 2017 03:13:57 +0000 (21:13 -0600)]
Check in web page announcement for 0.7.3.

7 years agoIt's past time 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.

7 years agoIf the last ps field is left justified, it extends to the width of the screen.
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.)

7 years ago4a4b3d65644ce403b0f22887fc0d38b0202ec8c7 upset clang.
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.

7 years agoDeclaring todo bankruptcy, dmesg goes back into pending until I get a chance
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.

7 years agoFix dmesg -c and -C.
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...)

7 years agoAscii only showed 15 rows instead of 16 and spacing was wrong for 96-100.
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.

7 years agoFix the comment about the Android SIGPIPE behavior.
Elliott Hughes [Fri, 17 Feb 2017 22:43:56 +0000 (14:43 -0800)]
Fix the comment about the Android SIGPIPE behavior.

7 years agoTeach file(1) about bzip2 files.
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...

7 years agoAdd back bionic SIGPIPE handler workaround accidentally removed in 3b51a07e478d
Rob Landley [Fri, 10 Feb 2017 22:37:42 +0000 (16:37 -0600)]
Add back bionic SIGPIPE handler workaround accidentally removed in 3b51a07e478d

7 years agoDocument df -a
Rob Landley [Thu, 9 Feb 2017 19:58:03 +0000 (13:58 -0600)]
Document df -a

7 years agoAdd ascii: display ascii table.
Rob Landley [Tue, 7 Feb 2017 22:27:37 +0000 (16:27 -0600)]
Add ascii: display ascii table.

7 years agops -l has 4 chars left for "cmd", switch "ADDR" to "BIT" to save space.
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.

7 years agoMake tty size failure to enable -w (Elliott prefers that), and fix last field
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.

7 years agoDon't set SIGWINCH when reading ANSI size probe data, it causes a loop.
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.

7 years agoBugfix: last field was padding to width with trailing spaces (oops), and
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.

7 years agoPatch from Elliott to silence a "const" warning in android/getprop.c.
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.)

7 years agoSilence a warning.
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.)

7 years agoDefault to width 80 when tty size probe fails (ala serial console).
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.)

7 years agoPosix says stdio.h should define 'stdout' as a macro, and bionic turns it into
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.

7 years agoSwitch oneit to use xopen_stdio() for -c (oops) and switch XVFORK() to use
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

7 years agoFix typo in pgrep help.
Elliott Hughes [Thu, 2 Feb 2017 22:51:32 +0000 (14:51 -0800)]
Fix typo in pgrep help.

7 years agoFix operator precedence error in df.
Elliott Hughes [Fri, 3 Feb 2017 00:50:46 +0000 (16:50 -0800)]
Fix operator precedence error in df.

7 years agoBuild dependency tweak.
Rob Landley [Wed, 1 Feb 2017 22:13:01 +0000 (16:13 -0600)]
Build dependency tweak.

7 years agoExtend default USER length to 12 and output "+" as last character of truncated
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.

7 years agops bugfix: len of TTY field doesn't include null terminator, so memmove should
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.

7 years agoCleanup leftover debris.
Rob Landley [Tue, 31 Jan 2017 03:42:35 +0000 (21:42 -0600)]
Cleanup leftover debris.

7 years agoImprove file's ELF parsing.
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.)

7 years agoIzabera suggested seq should multiply to avoid accumulating rounding errors
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.

7 years agoTweak -w help text to clarify that it prevents truncating _any_ fields, not
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.

7 years agoFix padto in draw_trim_esc() so it behaves like printf %*.*s and matches the
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.

7 years agoAdd missing `static`s and remove an unused function.
Elliott Hughes [Fri, 27 Jan 2017 23:55:28 +0000 (15:55 -0800)]
Add missing `static`s and remove an unused function.

7 years agoWhitespace.
Rob Landley [Sat, 28 Jan 2017 23:40:55 +0000 (17:40 -0600)]
Whitespace.

7 years agomodprobe: Small cleanup pass, described on the list.
Rob Landley [Sat, 28 Jan 2017 23:35:20 +0000 (17:35 -0600)]
modprobe: Small cleanup pass, described on the list.

7 years agomodprobe: use finit_module when possible
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.

7 years agomodprobe: add -d option to specify module directory path(s)
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.

7 years agotop -H is more useful if it shows thread names.
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

7 years agoMinor Android roadmap update.
Elliott Hughes [Fri, 27 Jan 2017 18:54:11 +0000 (10:54 -0800)]
Minor Android roadmap update.

7 years agoRemove s6 from roadmap. (It wasn't in status.html anyway, haven't updated
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".)

7 years agoAnswer another question.
Rob Landley [Sat, 28 Jan 2017 22:27:44 +0000 (16:27 -0600)]
Answer another question.

7 years agoRemove name length limit for system properties
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

7 years agoPromote microcom to net.
Rob Landley [Wed, 25 Jan 2017 22:23:58 +0000 (16:23 -0600)]
Promote microcom to net.

7 years agoSwitch escape charcter to ^] (ascii 29, doesn't conflict with emacs or joe).
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).

7 years agoFix microcom command-line help and -X.
Elliott Hughes [Sun, 15 Jan 2017 18:51:55 +0000 (10:51 -0800)]
Fix microcom command-line help and -X.

7 years agoAdd "microcom" to pending.
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.

7 years agoQuick and dirty fix for CVE-2016-6321 but seriously this is in pending
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.

7 years agoMore pending shell tests.
Rob Landley [Tue, 10 Jan 2017 01:25:07 +0000 (19:25 -0600)]
More pending shell tests.

7 years agoImplicit function declarations are an error, not a warning.
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.)

7 years agoTweak install_airlock help text.
Rob Landley [Wed, 4 Jan 2017 20:18:12 +0000 (14:18 -0600)]
Tweak install_airlock help text.

7 years agoftpget: implement -mMdDlL, put ftp transactions into their own function so -v
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.

7 years agoFirst stab at ftpget/ftpput. (Documents a lot of options other than basic
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.)

7 years agoSome lib fixes: mark xvfork() noinline, make xsendfile() return bytes copied,
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.

7 years agoAn option can't exclude itself, so "abc[-ab][!abc]" with "command -a -b"
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.

7 years agoAlas, the backup list archive went down because https://lwn.net/Articles/695695/
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.

7 years agoRemove unnecessary casts in stat.c, fix a claimed buffer length.
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.

7 years agoStop lying to the compiler in modprobe's read_line.
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.

7 years agoAdmit that getprop requires selinux.
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.)

7 years agoSwitch to bionic <sys/system_properties.h>.
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.

7 years agoMove hostid to toys/example and have it "default n".
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.

7 years agolog: use error_msg instead of perror_msg when errno is meaningless.
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.

7 years agoAdd test for last sort commit.
Rob Landley [Mon, 26 Dec 2016 03:22:23 +0000 (21:22 -0600)]
Add test for last sort commit.

7 years agoFix a bug for sort. When the key_separator is not space, the sort commandline tool...
wxj [Sun, 25 Dec 2016 07:58:10 +0000 (15:58 +0800)]
Fix a bug for sort. When the key_separator is not space, the sort commandline tool fails to sort by the 3rd,4th,etc column. For example: when you exec

  $ sort -t',' -k 3n

on a file which cotains:

1,2,3,4
2,3,4,1
4,1,2,3
3,4,1,2

you got:

4,1,2,3
1,2,3,4
2,3,4,1
3,4,1,2

but the expected output should be:

3,4,1,2
4,1,2,3
1,2,3,4
2,3,4,1

The bug is due to the dependency of "isspace(str[end])" at line 113.
When searching for the non-space key_separator, the search stopped just at the position of first key_separator it met.
The bug can be easily fixed by adding "end++" when the search have found one separator and exit the for loop.

7 years agoCleanup: Have get_hostname() handle its own lookup failures. Inline is_prefix().
Rob Landley [Sat, 24 Dec 2016 20:06:12 +0000 (14:06 -0600)]
Cleanup: Have get_hostname() handle its own lookup failures. Inline is_prefix().
Kernel can handle 64k maximum segment size.

7 years agoAdd units for -atime and friends. (Also legacy -amin alias, but not in help text
Rob Landley [Tue, 20 Dec 2016 22:40:38 +0000 (16:40 -0600)]
Add units for -atime and friends. (Also legacy -amin alias, but not in help text
because there's no -asec or -ahour.)