Rob Landley [Wed, 25 Jun 2014 11:26:17 +0000 (06:26 -0500)]
Cleanup pass on makedevs. Need to test it before promoting.
Rob Landley [Wed, 25 Jun 2014 02:47:07 +0000 (21:47 -0500)]
Glibc and uClibc provide CERASE from termios.h, but musl requies you to #include a non-posix header and the maintainer considers this a feature. So just use the constant directly.
Rob Landley [Tue, 24 Jun 2014 13:19:24 +0000 (08:19 -0500)]
find_in_path() is supposed to work with a NULL path, but didn't. Fix it.
Rob Landley [Tue, 24 Jun 2014 12:00:13 +0000 (07:00 -0500)]
Tweak license page to explicitly say that zero clause BSD is functionally equivalent to placing the code in the public domain.
This license variant looks like BSD, but is an unrestricted permission grant that doesn't require you to copy specific license text into derivative works. (The second paragraph is about something we DON'T do, I.E. provide any sort of warantee, and is just boilerplate from BSD to make it look like a BSD license.)
Rob Landley [Tue, 24 Jun 2014 11:42:08 +0000 (06:42 -0500)]
Move deallocvt.c into openvt.c, cleanup both.
Rob Landley [Sat, 21 Jun 2014 18:03:42 +0000 (13:03 -0500)]
Forgot to check in main() part of TOYFLAG_LOCALE change.
Rob Landley [Thu, 12 Jun 2014 03:44:48 +0000 (22:44 -0500)]
The readme, a text file, has an HTML close paragraph tag.
(Sheer force of habit.)
Rob Landley [Thu, 12 Jun 2014 03:43:54 +0000 (22:43 -0500)]
Option parsing for nohup needs to stop at first nonoption argument. Minor cleanups.
Rob Landley [Thu, 12 Jun 2014 03:41:25 +0000 (22:41 -0500)]
Cleanup pass on login
Rob Landley [Thu, 12 Jun 2014 03:18:35 +0000 (22:18 -0500)]
Enable fallocate in defconfig.
Rob Landley [Thu, 12 Jun 2014 03:14:44 +0000 (22:14 -0500)]
Cleanup pass on host.c
Rob Landley [Thu, 12 Jun 2014 03:13:28 +0000 (22:13 -0500)]
Move toys.toycount initialization _after_ zeroing toys, so help -a works again.
Rob Landley [Wed, 11 Jun 2014 13:11:38 +0000 (08:11 -0500)]
Promote strings.
Rob Landley [Wed, 11 Jun 2014 13:02:55 +0000 (08:02 -0500)]
Cleanup strings.
Rob Landley [Wed, 11 Jun 2014 02:57:05 +0000 (21:57 -0500)]
Update toybox help to say how to install the static binary.
Isaac Dunham [Tue, 10 Jun 2014 13:29:10 +0000 (08:29 -0500)]
pending/useradd: unbreak build
When useradd started using xfork(), the conditional in else if (pid > 0)
became unnecessary, since else means pid is nonzero and xfork makes it
non-negative. However, the "if" was not deleted.
Rob Landley [Mon, 9 Jun 2014 12:13:05 +0000 (07:13 -0500)]
Promote rfkill.
Rob Landley [Mon, 9 Jun 2014 12:12:49 +0000 (07:12 -0500)]
Forgot to check in strstart().
Rob Landley [Mon, 9 Jun 2014 12:07:33 +0000 (07:07 -0500)]
Cleanup pass on rfkill.
Rob Landley [Mon, 9 Jun 2014 10:53:43 +0000 (05:53 -0500)]
host needs -lresolv
Rob Landley [Mon, 9 Jun 2014 10:51:04 +0000 (05:51 -0500)]
When locale is enabled, sprintf("%.123s", str) is counting characters, not bytes, so we can't globally enable locale without opening stack/heap smashing vulnerabilities. Make commands individually request setlocale() using TOYFLAGS instead.
Rob Landley [Sun, 8 Jun 2014 22:05:10 +0000 (17:05 -0500)]
Warning fix from Rich Felker.
Rob Landley [Sun, 8 Jun 2014 20:03:32 +0000 (15:03 -0500)]
Add host by Rich Felker.
Rob Landley [Sun, 8 Jun 2014 19:01:37 +0000 (14:01 -0500)]
Isaac Dunham also reported that some diff implementations can't handle nonseekable input, so write to a temporary file instead of <(command).
Use trap EXIT to make sure the temporary files get deleted.
Rob Landley [Sun, 8 Jun 2014 18:49:57 +0000 (13:49 -0500)]
Isaac Dunham pointed out that busybox diff only implements unified diffs, and sent a patch to convert bloatcheck to use that. I tweaked it a bit.
Rob Landley [Sun, 8 Jun 2014 18:24:02 +0000 (13:24 -0500)]
Replace large parenthetical in bloatcheck with a function.
Rob Landley [Sat, 7 Jun 2014 17:03:54 +0000 (12:03 -0500)]
Minor tweaks to code style section.
Rob Landley [Sat, 7 Jun 2014 15:42:20 +0000 (10:42 -0500)]
Make md5sum/sha1sum -b flag be "brief" output (just the hash).
(It's not like systems implementing -b binary and -t text still matter.)
Rob Landley [Tue, 3 Jun 2014 11:27:24 +0000 (06:27 -0500)]
mount: start on option parsing, implement loopback and bind mount autodetection.
Rob Landley [Tue, 3 Jun 2014 02:16:20 +0000 (21:16 -0500)]
Help text should have a blank line after usage: lines, and a couple other whitespace tweaks.
Isaac Dunham [Sun, 1 Jun 2014 22:47:19 +0000 (17:47 -0500)]
The tests for link and du are attached.
Isaac Dunham [Sun, 1 Jun 2014 18:50:39 +0000 (13:50 -0500)]
cpio: archive more files
While writing tests for cpio, I found that cpio tries to open empty
files if they're regular files, and fails to archive them if unreadable.
This can be easily avoided, and is not the usual behavior.
Felix Janda [Sat, 31 May 2014 09:18:30 +0000 (11:18 +0200)]
iconv: some fixes
- fix problem with sequences at buffer boundaries
- add (ignored) -c and -s options
- don't try to continue with a file when read() fails
Rob Landley [Sat, 31 May 2014 23:00:04 +0000 (18:00 -0500)]
Promote partprobe.
Rob Landley [Sat, 31 May 2014 22:59:27 +0000 (17:59 -0500)]
Cleanup partprobe.
Rob Landley [Sat, 31 May 2014 17:33:24 +0000 (12:33 -0500)]
Introduce xfork() and make commands use it, and make some WEXITSTATUS() use WIFEXITED() and WTERMSIG()+127.
Ashwini Sharma [Thu, 29 May 2014 13:21:48 +0000 (08:21 -0500)]
killall5 - kill all the processes not in its session.
Ashwini Sharma [Thu, 29 May 2014 13:20:30 +0000 (08:20 -0500)]
makedevs - making devices/nodes in a range. Supports reading the tabled entry from file.
Ashwini Sharma [Thu, 29 May 2014 13:18:50 +0000 (08:18 -0500)]
strings - print the strings in the file.
Rob Landley [Thu, 29 May 2014 11:49:59 +0000 (06:49 -0500)]
First stab at mount, very incomplete.
Rob Landley [Thu, 29 May 2014 11:29:12 +0000 (06:29 -0500)]
Make "losetup /dev/loop0 filename" work.
Sigh. Implement the complex cases and you screw up the simple cases you already tested...
Rob Landley [Thu, 29 May 2014 10:22:02 +0000 (05:22 -0500)]
Switch mtab_list to doubly linked so we can traverse in either order. Convert umount and df. Add dlist_terminate() to break lists for traversal in either direction.
Rob Landley [Tue, 27 May 2014 12:56:51 +0000 (07:56 -0500)]
Add mount options to data getmountlist collects.
Rob Landley [Tue, 27 May 2014 01:39:20 +0000 (20:39 -0500)]
Brush the dust off toysh.
Simplify the config micromanagement tangle to just a single "interactive"
option. Fix an unused variable and wrong variable type.
Rob Landley [Mon, 26 May 2014 17:25:47 +0000 (12:25 -0500)]
Isaac Dunham suggested xprintf() should call fflush() instead of ferror(), and posix-2008 doesn't say if fflush() covers ferror() (or can return success when the stream's error state is set), so call both.
Bertold Van den Bergh [Mon, 26 May 2014 01:49:51 +0000 (20:49 -0500)]
I have attached a patch adding a program that allows re-reading the partition table. This is often used on embedded systems booting from SD/USB devices that need to resize partitions on first boot.
Ashwini Sharma [Sun, 25 May 2014 16:52:27 +0000 (11:52 -0500)]
atolx_range() is already added into lib/lib.c, in vconfig.c atolx_range() can be used in place of locally defined strtorange() function.
Isaac Dunham [Sun, 25 May 2014 16:46:58 +0000 (11:46 -0500)]
logname and whoami are the same as id -un, so merge them.
Since the starting letters are greater than those for 'id' or 'groups',
we cn just check if the first letter is greater than 'i'.
Rob Landley [Sun, 25 May 2014 03:40:41 +0000 (22:40 -0500)]
Bugfix from Isaac Dunham (new pci database has # comments in it) and some minor cleanups I had in my tree already.
Rob Landley [Sat, 24 May 2014 19:41:30 +0000 (14:41 -0500)]
Pending commands should default n
Ashwini Sharma [Sat, 24 May 2014 19:40:02 +0000 (14:40 -0500)]
Single-user login.
Rob Landley [Sat, 24 May 2014 18:50:19 +0000 (13:50 -0500)]
The "not root" test happens before looking for --help, so "./sulogin --help" doesn't show it. Instead make the "not root" failure case always show help text.
Rob Landley [Sat, 24 May 2014 17:51:53 +0000 (12:51 -0500)]
Remove debug detritus I didn't mean to to check in, and treat an "this variable can never actually be used uninitialized but gcc's warning generator can't tell and fails spamwards" warning.
Rob Landley [Sat, 24 May 2014 17:49:21 +0000 (12:49 -0500)]
Pass the same $CFLAGS to the library probe as the final build, to work with broken build environments that provide different libraries for --static and dynamic builds.
Rob Landley [Sat, 24 May 2014 17:48:32 +0000 (12:48 -0500)]
patch from ashwini sharma: treat 0 length read at the start of password read as EOF.
Ashwini Sharma [Fri, 23 May 2014 14:00:09 +0000 (09:00 -0500)]
rfkill - enable/disable the radio devices
e.g. Wireless adapter, Bluetooth devices...
Ashwini Sharma [Fri, 23 May 2014 13:58:08 +0000 (08:58 -0500)]
inotifyd - watch for filesystem events.
Rob Landley [Fri, 23 May 2014 09:14:46 +0000 (04:14 -0500)]
Ashwini Sharma pointed out I screwed up last.c.
Renamed the function, missed a user...
Rob Landley [Fri, 23 May 2014 02:33:10 +0000 (21:33 -0500)]
date: add -ds, document +FORMAT escapes.
Rob Landley [Thu, 22 May 2014 13:16:55 +0000 (08:16 -0500)]
Update docs for example and pending directories.
Rob Landley [Wed, 21 May 2014 12:57:48 +0000 (07:57 -0500)]
Convert bootchartd to generic_signal().
Rob Landley [Wed, 21 May 2014 12:51:11 +0000 (07:51 -0500)]
Make telnet use generic_signal(), minor in-passing cleanups.
Rob Landley [Wed, 21 May 2014 12:41:27 +0000 (07:41 -0500)]
Make telnetd use generic_signal(), inline kill_session(), close race window where a SIGCHLD could get lost.
Rob Landley [Wed, 21 May 2014 12:24:16 +0000 (07:24 -0500)]
Add generic_signal() handler, which sets toys.signal and writes byte to toys.signalfd if set.
Rob Landley [Wed, 21 May 2014 12:09:09 +0000 (07:09 -0500)]
First pass init cleanup: use sigatexit() to set multiple signal handlers, rename set_sane_term() to reset_term() and have it take the fd it works on as an argument, some whitespace and help text tweaks.
Rob Landley [Wed, 21 May 2014 12:02:51 +0000 (07:02 -0500)]
Make fsck.c use common list free function, collate cleanup code and move inline.
Rob Landley [Wed, 21 May 2014 12:01:16 +0000 (07:01 -0500)]
Make last use common llist free function, minor cleanups.
Rob Landley [Wed, 21 May 2014 11:57:43 +0000 (06:57 -0500)]
Add free functions for predefined llist types.
Ashwini Sharma [Wed, 21 May 2014 10:12:38 +0000 (05:12 -0500)]
dhcp client had a segfault, when DHCP message contained 'pad' option.
The parsing logic kept checking for other options beyond __pad__ option, without
checking if it was __end__ option after that or not.
Isaac Dunham [Wed, 21 May 2014 02:19:17 +0000 (21:19 -0500)]
lspci text output: add -i, allow -n when disabled
-i is how standard lspci handles changing the PCI ID database.
lspci -n should be a no-op when text is disabled.
Rob Landley [Tue, 20 May 2014 00:34:55 +0000 (19:34 -0500)]
Cleanup pass on bootchartd.
Might have broken something, don't actually have a test case for bootchartd yet.
Rob Landley [Mon, 19 May 2014 23:24:35 +0000 (18:24 -0500)]
Fluff out the coding style section, but the result was a bit big for the start of code.html, so move it to design.html.
Rob Landley [Sun, 18 May 2014 19:05:13 +0000 (14:05 -0500)]
Quick cleanup pass on ps.
Rob Landley [Sun, 18 May 2014 18:08:36 +0000 (13:08 -0500)]
Cleanup pass on lspci
Rob Landley [Sun, 18 May 2014 16:47:08 +0000 (11:47 -0500)]
Teach singleconfig to switch on sub-options of commands it's building.
If we're building a standalone version, it might as well have all the bells and whistles enabled.
Rob Landley [Fri, 16 May 2014 00:11:21 +0000 (19:11 -0500)]
bootchartd by Bilal Qureshi.
Daniel Verkamp [Fri, 16 May 2014 00:05:16 +0000 (19:05 -0500)]
Here's a quick cleanup of md5sum. Executive summary: smaller and faster.
On my machine, for a 2.2 GB file of random bytes, the timings with
warm cache are:
toybox before: 11.4 seconds
toybox after: 8.3 seconds
GNU md5sum: 3.9 seconds
openssl dgst -md5: 3.5 seconds
This is clearly better than before (3x openssl), but still slow (2x openssl).
I suspect there is more low-hanging fruit to be had by eliminating the
memcpy in hash_update (maybe not too much - hash_update accounts for
about 4% of total runtime versus 92% for md5_transform according to
perf - but this would also help sha1sum).
make bloatcheck on x86_64 gcc 4.8.2 -Os:
name old new delta
-----------------------------------------------------------------------
md5rot 0 64 64
md5_transform 365 223 -142
-----------------------------------------------------------------------
-78 total
Rationale for the changes:
Move definition of 'rol' up so it can be used in md5_transform. This
is purely cosmetic; it expands to exactly the same code.
Put rotation counts in a lookup table instead of calculating them on
the fly. This is mostly a wash size-wise, +5 bytes total, but
worthwhile for readability and speed.
Instead of accessing the state array using a rotating index (the
variable formerly known as 'a'), access the state with constant
offsets and rotate the contents of the array instead. This is the big
win - it eliminates all the crazy memory addressing math inside the
loop.
Rob Landley [Thu, 15 May 2014 10:34:08 +0000 (05:34 -0500)]
Promote sysctl from pending to other, default y.
Rob Landley [Thu, 15 May 2014 10:32:52 +0000 (05:32 -0500)]
More sysctl cleanup: fix error message on nonexistent key, write path, and -p.
Rob Landley [Wed, 14 May 2014 00:45:01 +0000 (19:45 -0500)]
Cleanup pass on sysctl.
Not heavily tested yet but should be finished at the design level.
Rob Landley [Mon, 12 May 2014 12:52:12 +0000 (07:52 -0500)]
First cleanup pass on sysctl.
Remove unnecessary typecasting of things that are already char * to char *,
and multiplying by sizeof(char *) which is 1. Rename do_process() do_flag_a()
since that's the only caller. Move read_key_values() down past trim_spaces()
and read_config_file() so it's next to its only two users. Replace some
euphemisms for 0 with 0.
replace_char() really sounds like something libc should already have one of,
but I'm blanking on it if so. (It doesn't need a temporary variable when the
argument variable is already a copy so changing it won't affect the caller.)
Rob Landley [Mon, 12 May 2014 11:22:10 +0000 (06:22 -0500)]
Add sysctl by Bilal Qureshi.
Rob Landley [Mon, 12 May 2014 11:12:20 +0000 (06:12 -0500)]
Add arp from Sandeep Sharma and Kyungwan Han.
Rob Landley [Sat, 10 May 2014 18:24:58 +0000 (13:24 -0500)]
sizeof("string") treats it as a char array _including_ the null terminator, so strncmp(dest, "string", sizeof("string")) is just strcpy.
Rob Landley [Sat, 10 May 2014 18:20:03 +0000 (13:20 -0500)]
Initial cleanup of last: mostly whitespace, move no record test to start of loop, don't bother to stat an empty file to report when an empty log was created (just report current time).
Rob Landley [Sat, 10 May 2014 18:06:31 +0000 (13:06 -0500)]
Catch duplicate command name (which breaks the build already, but doesn't identify the culprit).
Rob Landley [Tue, 6 May 2014 11:31:28 +0000 (06:31 -0500)]
Switch human_readable() to just outputing decimal kilo/mega/gigabytes, make du use it, move it from lib/pending.c to lib.c.
Rob Landley [Tue, 6 May 2014 11:14:20 +0000 (06:14 -0500)]
Use compiler built-in macros to determine if argument parsing can use double or float for FLOAT arguments. (I.E. whether double fits in a long's memory.) Check in a way that the macros not being defined just gives us the shorter one.
Rob Landley [Tue, 6 May 2014 02:20:11 +0000 (21:20 -0500)]
Fix bug reported by Ashwini Sharma: rebound has to be at the end or toy_init() doesn't zero the rest of the struct.
Ashwini Sharma [Fri, 2 May 2014 11:24:11 +0000 (06:24 -0500)]
In function readfile(), the buffer buf is free'd when readall() fails. This free can cause a crash, if the buffer passed by user of function is not malloc'ed one.
names_to_pid() is one usecase example here.
Ashwini Sharma [Fri, 2 May 2014 11:17:48 +0000 (06:17 -0500)]
Attached is the patch for lsattr and chattr implementation.
This is the modified and better version from the last one I sent.
It is having the both the mains (lsattr_main() and chattr_main() )
in single file.
Also removed the dependency of additional file in lib, as common code is in the
same .c file.
Rob Landley [Tue, 29 Apr 2014 11:03:17 +0000 (06:03 -0500)]
Teach cpio to set uid/gid and timestamp. (Timestamp has year 2100 problem.)
Note that directory timestamps are still sometimes wrong because creating
things in a directory can update the timestamp. Also, cp -r has logic to
ensure we can write to a directory that doesn't have write permission,
cpio does not. This is fixable, but not what existing cpio does.
Rob Landley [Fri, 25 Apr 2014 10:56:16 +0000 (05:56 -0500)]
fold cleanup: whitespace and curly brackets.
Rob Landley [Fri, 25 Apr 2014 10:50:00 +0000 (05:50 -0500)]
Cosmetic tweak: spell out "Linux Standard Base" in menuconfig.
Rob Landley [Fri, 25 Apr 2014 10:48:11 +0000 (05:48 -0500)]
Fix od bug reported by Samuel Holland ("od -v -b" was appending default output type even though an output type was specified).
Rob Landley [Wed, 23 Apr 2014 22:23:09 +0000 (17:23 -0500)]
Add example directory, move hello.c into it, add skeleton.c to demonstrate more complciated stuff (multiple commands per file, etc), and have genconfig.sh sort backwards so posix is first and example last in menuconfig.
Rob Landley [Wed, 23 Apr 2014 13:38:29 +0000 (08:38 -0500)]
As long as uClibc's still around and requires you to jump through hoops to get iconv(), probe and build defconfig without it if it's not there.
Rob Landley [Wed, 23 Apr 2014 13:37:07 +0000 (08:37 -0500)]
usage: is lower case (the help generator looks for that, might as well be consistent).
Rob Landley [Sun, 20 Apr 2014 19:22:19 +0000 (14:22 -0500)]
Release announcement for 0.4.8.
Rob Landley [Sun, 20 Apr 2014 18:38:07 +0000 (13:38 -0500)]
Added tag 0.4.8 for changeset
8556669d3928