0.40
* Added the -s option to du -beppu
* Fixed an embarrasing segfault in head -beppu
- * Fixed an bug in syslogd causing it to stop after 20 minutes. -erik
+ * New Apps: sort, uniq. -beppu
* New Apps: lsmod, rmmod -erik
* New Apps: fbset contributed by Randolph Chung <tausq@debian.org>.
+ * New App:: loadacm contributed by Peter Novodvorsky <petya@logic.ru>
+ for loading application character maps for Unicode fonts.
+ * Major init re-work. init now supports inittab (slightly different
+ but similar to sysvinit), allowing me to get all the policy out
+ of init and into the conf file. It works just fine without inittab
+ being present, but if you dont like the defautl behavior you can
+ now do something about it. Init is much cleaner as a result.
+ * Fixed an bug in syslogd causing it to stop after 20 minutes. -erik
* Fixed the embarrasing failure of 'logger -p'. -erik
* Re-worked the source tree a bit so it will compile under glibc 2.0.7
with the 2.0.x Linux kernel.
* Added 'grep -q' thanks to a patch from "Konstantin Boldyshev"
<konst@voshod.com>.
- * Implemented sort. -beppu
+ * Grep -i previously failed on UPPER CASE patterns due to a silly
+ regexp implementation bug that is now fixed.
* Fixed a bug where tar would set, and then clear SGID and SUID bits.
* Fixed a bug where tar would not set the user and group on device
special files.
+ * Fixed a bug where tar would not restore the time to files.
+ * Fixed a major security problem with tar -- it changed ownership
+ of any file pointed to by a symlink to 777 (like say libc....)
+ Ouch!!!
* cp and mv were very broken when moving directories. I have rewritten
- them so they should now work as expected.
- * New app: loadacm contributed by Peter Novodvorsky <petya@logic.ru>
- for loading application character maps for Unicode fonts.
+ them so they should now work as expected.
* sed now supports addresses (numeric or regexp, with negation) and
has an append command, thanks to Marco Pantaleoni <panta@prosa.it>
* Fixed dmesg. It wasn't parsing its options (-n or -s) properly.
* Some cosmetic fixes to ls output formatting to make it behave more
like GNU ls.
- * Fixed a bug where tar would not restore the time to files.
- * Fixed a major security problem with tar -- it changed ownership
- of any file pointed to by a symlink to 777 (like say libc....)
- Ouch!!!
* Fixed a stupid segfault in kill.
* Several fixes from Friedrich Vedder <fwv@myrtle.lahn.de>:
- Added gunzip -t, removed gunzip.c dead code,
- fixed several typos
- Glibc 2.0.7 and libc5 compile fixes
- * Grep -i previously failed on UPPER CASE patterns due to a silly
- regexp implementation bug that is now fixed.
- # Implemented uniq. -beppu
+ * Fixed a bug where 'mknod --help' would segfault.
-Erik Andersen
-----------
-* mknod --help segfaults
-
* Allow tar to create archives with sockets, devices, and other special files
* Make insmod actually work
-* init clearly needs to support some type of minimalist /etc/inittab. I
- currently have _way_ too much policy hardcoded in the source. Adding
- support for getty has made me realize how much that sucks.
* dnsdomainname
* traceroute/nslookup/netstat
* rdate
#include <fcntl.h>
#include <unistd.h>
-static const char mknod_usage[] = "mknod [OPTION]... NAME TYPE MAJOR MINOR\n\n"
+static const char mknod_usage[] = "mknod NAME TYPE MAJOR MINOR\n\n"
"Make block or character special files.\n\n"
-"Options:\n"
+"TYPEs include:\n"
"\tb:\tMake a block (buffered) device.\n"
"\tc or u:\tMake a character (un-buffered) device.\n"
"\tp:\tMake a named pipe. Major and minor are ignored for named pipes.\n";
mode_t mode = 0;
dev_t dev = 0;
+ if ( argc != 5 || **(argv+1) == '-' ) {
+ usage (mknod_usage);
+ }
switch(argv[2][0]) {
case 'c':
case 'u':
/* check for serial console and disable logging to tty3 & running a
* shell to tty2 */
if (ioctl(0,TIOCGSERIAL,&sr) == 0) {
- message(LOG|CONSOLE, "serial console detected. Disabling 2nd virtual terminal.\r\n", console );
+ message(LOG|CONSOLE, "serial console detected. Disabling virtual terminals.\r\n", console );
log = NULL;
second_console = NULL;
}
} else
strncpy(newAction->console, console, 255);
newAction->pid = 0;
- message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
- newAction->process, newAction->action, newAction->console);
+// message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
+// newAction->process, newAction->action, newAction->console);
}
void delete_initAction (initAction *action)
/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined,
* then parse_inittab() simply adds in some default
* actions(i.e runs INIT_SCRIPT and then starts a pair
- * of "askfirst" shells. If BB_FEATURE_USE_INITTAB
- * _is_ defined, but /etc/inittab is missing == same
- * default behavior.
+ * of "askfirst" shells). If BB_FEATURE_USE_INITTAB
+ * _is_ defined, but /etc/inittab is missing, this
+ * results in the same set of default behaviors.
* */
void parse_inittab(void)
{
/* check for serial console and disable logging to tty3 & running a
* shell to tty2 */
if (ioctl(0,TIOCGSERIAL,&sr) == 0) {
- message(LOG|CONSOLE, "serial console detected. Disabling 2nd virtual terminal.\r\n", console );
+ message(LOG|CONSOLE, "serial console detected. Disabling virtual terminals.\r\n", console );
log = NULL;
second_console = NULL;
}
} else
strncpy(newAction->console, console, 255);
newAction->pid = 0;
- message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
- newAction->process, newAction->action, newAction->console);
+// message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
+// newAction->process, newAction->action, newAction->console);
}
void delete_initAction (initAction *action)
/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined,
* then parse_inittab() simply adds in some default
* actions(i.e runs INIT_SCRIPT and then starts a pair
- * of "askfirst" shells. If BB_FEATURE_USE_INITTAB
- * _is_ defined, but /etc/inittab is missing == same
- * default behavior.
+ * of "askfirst" shells). If BB_FEATURE_USE_INITTAB
+ * _is_ defined, but /etc/inittab is missing, this
+ * results in the same set of default behaviors.
* */
void parse_inittab(void)
{
#include <fcntl.h>
#include <unistd.h>
-static const char mknod_usage[] = "mknod [OPTION]... NAME TYPE MAJOR MINOR\n\n"
+static const char mknod_usage[] = "mknod NAME TYPE MAJOR MINOR\n\n"
"Make block or character special files.\n\n"
-"Options:\n"
+"TYPEs include:\n"
"\tb:\tMake a block (buffered) device.\n"
"\tc or u:\tMake a character (un-buffered) device.\n"
"\tp:\tMake a named pipe. Major and minor are ignored for named pipes.\n";
mode_t mode = 0;
dev_t dev = 0;
+ if ( argc != 5 || **(argv+1) == '-' ) {
+ usage (mknod_usage);
+ }
switch(argv[2][0]) {
case 'c':
case 'u':