More minor fixes.
-Erik
This commit is contained in:
29
Changelog
29
Changelog
@@ -1,39 +1,44 @@
|
|||||||
0.40
|
0.40
|
||||||
* Added the -s option to du -beppu
|
* Added the -s option to du -beppu
|
||||||
* Fixed an embarrasing segfault in head -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: lsmod, rmmod -erik
|
||||||
* New Apps: fbset contributed by Randolph Chung <tausq@debian.org>.
|
* 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
|
* Fixed the embarrasing failure of 'logger -p'. -erik
|
||||||
* Re-worked the source tree a bit so it will compile under glibc 2.0.7
|
* Re-worked the source tree a bit so it will compile under glibc 2.0.7
|
||||||
with the 2.0.x Linux kernel.
|
with the 2.0.x Linux kernel.
|
||||||
* Added 'grep -q' thanks to a patch from "Konstantin Boldyshev"
|
* Added 'grep -q' thanks to a patch from "Konstantin Boldyshev"
|
||||||
<konst@voshod.com>.
|
<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 set, and then clear SGID and SUID bits.
|
||||||
* Fixed a bug where tar would not set the user and group on device
|
* Fixed a bug where tar would not set the user and group on device
|
||||||
special files.
|
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
|
* cp and mv were very broken when moving directories. I have rewritten
|
||||||
them so they should now work as expected.
|
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.
|
|
||||||
* sed now supports addresses (numeric or regexp, with negation) and
|
* sed now supports addresses (numeric or regexp, with negation) and
|
||||||
has an append command, thanks to Marco Pantaleoni <panta@prosa.it>
|
has an append command, thanks to Marco Pantaleoni <panta@prosa.it>
|
||||||
* Fixed dmesg. It wasn't parsing its options (-n or -s) properly.
|
* Fixed dmesg. It wasn't parsing its options (-n or -s) properly.
|
||||||
* Some cosmetic fixes to ls output formatting to make it behave more
|
* Some cosmetic fixes to ls output formatting to make it behave more
|
||||||
like GNU ls.
|
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.
|
* Fixed a stupid segfault in kill.
|
||||||
* Several fixes from Friedrich Vedder <fwv@myrtle.lahn.de>:
|
* Several fixes from Friedrich Vedder <fwv@myrtle.lahn.de>:
|
||||||
- Added gunzip -t, removed gunzip.c dead code,
|
- Added gunzip -t, removed gunzip.c dead code,
|
||||||
- fixed several typos
|
- fixed several typos
|
||||||
- Glibc 2.0.7 and libc5 compile fixes
|
- Glibc 2.0.7 and libc5 compile fixes
|
||||||
* Grep -i previously failed on UPPER CASE patterns due to a silly
|
* Fixed a bug where 'mknod --help' would segfault.
|
||||||
regexp implementation bug that is now fixed.
|
|
||||||
# Implemented uniq. -beppu
|
|
||||||
|
|
||||||
|
|
||||||
-Erik Andersen
|
-Erik Andersen
|
||||||
|
5
TODO
5
TODO
@@ -10,13 +10,8 @@ around to it some time. If you have any good ideas, please let me know.
|
|||||||
|
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
* mknod --help segfaults
|
|
||||||
|
|
||||||
* Allow tar to create archives with sockets, devices, and other special files
|
* Allow tar to create archives with sockets, devices, and other special files
|
||||||
* Make insmod actually work
|
* 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
|
* dnsdomainname
|
||||||
* traceroute/nslookup/netstat
|
* traceroute/nslookup/netstat
|
||||||
* rdate
|
* rdate
|
||||||
|
@@ -27,9 +27,9 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.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"
|
"Make block or character special files.\n\n"
|
||||||
"Options:\n"
|
"TYPEs include:\n"
|
||||||
"\tb:\tMake a block (buffered) device.\n"
|
"\tb:\tMake a block (buffered) device.\n"
|
||||||
"\tc or u:\tMake a character (un-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";
|
"\tp:\tMake a named pipe. Major and minor are ignored for named pipes.\n";
|
||||||
@@ -40,6 +40,9 @@ mknod_main(int argc, char** argv)
|
|||||||
mode_t mode = 0;
|
mode_t mode = 0;
|
||||||
dev_t dev = 0;
|
dev_t dev = 0;
|
||||||
|
|
||||||
|
if ( argc != 5 || **(argv+1) == '-' ) {
|
||||||
|
usage (mknod_usage);
|
||||||
|
}
|
||||||
switch(argv[2][0]) {
|
switch(argv[2][0]) {
|
||||||
case 'c':
|
case 'c':
|
||||||
case 'u':
|
case 'u':
|
||||||
|
12
init.c
12
init.c
@@ -312,7 +312,7 @@ static void console_init()
|
|||||||
/* check for serial console and disable logging to tty3 & running a
|
/* check for serial console and disable logging to tty3 & running a
|
||||||
* shell to tty2 */
|
* shell to tty2 */
|
||||||
if (ioctl(0,TIOCGSERIAL,&sr) == 0) {
|
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;
|
log = NULL;
|
||||||
second_console = NULL;
|
second_console = NULL;
|
||||||
}
|
}
|
||||||
@@ -523,8 +523,8 @@ void new_initAction (initActionEnum action,
|
|||||||
} else
|
} else
|
||||||
strncpy(newAction->console, console, 255);
|
strncpy(newAction->console, console, 255);
|
||||||
newAction->pid = 0;
|
newAction->pid = 0;
|
||||||
message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
|
// message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
|
||||||
newAction->process, newAction->action, newAction->console);
|
// newAction->process, newAction->action, newAction->console);
|
||||||
}
|
}
|
||||||
|
|
||||||
void delete_initAction (initAction *action)
|
void delete_initAction (initAction *action)
|
||||||
@@ -542,9 +542,9 @@ void delete_initAction (initAction *action)
|
|||||||
/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined,
|
/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined,
|
||||||
* then parse_inittab() simply adds in some default
|
* then parse_inittab() simply adds in some default
|
||||||
* actions(i.e runs INIT_SCRIPT and then starts a pair
|
* actions(i.e runs INIT_SCRIPT and then starts a pair
|
||||||
* of "askfirst" shells. If BB_FEATURE_USE_INITTAB
|
* of "askfirst" shells). If BB_FEATURE_USE_INITTAB
|
||||||
* _is_ defined, but /etc/inittab is missing == same
|
* _is_ defined, but /etc/inittab is missing, this
|
||||||
* default behavior.
|
* results in the same set of default behaviors.
|
||||||
* */
|
* */
|
||||||
void parse_inittab(void)
|
void parse_inittab(void)
|
||||||
{
|
{
|
||||||
|
12
init/init.c
12
init/init.c
@@ -312,7 +312,7 @@ static void console_init()
|
|||||||
/* check for serial console and disable logging to tty3 & running a
|
/* check for serial console and disable logging to tty3 & running a
|
||||||
* shell to tty2 */
|
* shell to tty2 */
|
||||||
if (ioctl(0,TIOCGSERIAL,&sr) == 0) {
|
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;
|
log = NULL;
|
||||||
second_console = NULL;
|
second_console = NULL;
|
||||||
}
|
}
|
||||||
@@ -523,8 +523,8 @@ void new_initAction (initActionEnum action,
|
|||||||
} else
|
} else
|
||||||
strncpy(newAction->console, console, 255);
|
strncpy(newAction->console, console, 255);
|
||||||
newAction->pid = 0;
|
newAction->pid = 0;
|
||||||
message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
|
// message(LOG|CONSOLE, "process='%s' action='%d' console='%s'\n",
|
||||||
newAction->process, newAction->action, newAction->console);
|
// newAction->process, newAction->action, newAction->console);
|
||||||
}
|
}
|
||||||
|
|
||||||
void delete_initAction (initAction *action)
|
void delete_initAction (initAction *action)
|
||||||
@@ -542,9 +542,9 @@ void delete_initAction (initAction *action)
|
|||||||
/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined,
|
/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined,
|
||||||
* then parse_inittab() simply adds in some default
|
* then parse_inittab() simply adds in some default
|
||||||
* actions(i.e runs INIT_SCRIPT and then starts a pair
|
* actions(i.e runs INIT_SCRIPT and then starts a pair
|
||||||
* of "askfirst" shells. If BB_FEATURE_USE_INITTAB
|
* of "askfirst" shells). If BB_FEATURE_USE_INITTAB
|
||||||
* _is_ defined, but /etc/inittab is missing == same
|
* _is_ defined, but /etc/inittab is missing, this
|
||||||
* default behavior.
|
* results in the same set of default behaviors.
|
||||||
* */
|
* */
|
||||||
void parse_inittab(void)
|
void parse_inittab(void)
|
||||||
{
|
{
|
||||||
|
7
mknod.c
7
mknod.c
@@ -27,9 +27,9 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.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"
|
"Make block or character special files.\n\n"
|
||||||
"Options:\n"
|
"TYPEs include:\n"
|
||||||
"\tb:\tMake a block (buffered) device.\n"
|
"\tb:\tMake a block (buffered) device.\n"
|
||||||
"\tc or u:\tMake a character (un-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";
|
"\tp:\tMake a named pipe. Major and minor are ignored for named pipes.\n";
|
||||||
@@ -40,6 +40,9 @@ mknod_main(int argc, char** argv)
|
|||||||
mode_t mode = 0;
|
mode_t mode = 0;
|
||||||
dev_t dev = 0;
|
dev_t dev = 0;
|
||||||
|
|
||||||
|
if ( argc != 5 || **(argv+1) == '-' ) {
|
||||||
|
usage (mknod_usage);
|
||||||
|
}
|
||||||
switch(argv[2][0]) {
|
switch(argv[2][0]) {
|
||||||
case 'c':
|
case 'c':
|
||||||
case 'u':
|
case 'u':
|
||||||
|
Reference in New Issue
Block a user