From: Rob Landley Date: Mon, 14 Nov 2011 02:02:47 +0000 (-0600) Subject: Prepare for license switch by (regrettably) removing Charlie Shepherd's code, at... X-Git-Tag: 0.2.0~74 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=43c2e62d74f1cf1e8b20b87bacac5b7b3e454f99;p=platform%2Fupstream%2Ftoybox.git Prepare for license switch by (regrettably) removing Charlie Shepherd's code, at least until I can get in touch with him to to get permission to relicense it. Charlie's @gentoo address bounces, and he hasn't replied to his @gmail address. I welcome him as a contributor but can't _find_ him, so I can't ship his basename, dirname, mkfifo, touch, and tty command code under a non-GPL license. This essentially reverts the following commits: 147: implement touch 157: implement mkfifo 160: tweak touch 161: touch bugfix 162: touch -l 176: implement basename, dirname 179: implement tty I also looked at these commits, which Charlie contributed to but which don't need to be reverted. (Mostly whitespace changes and typo fixes, plus some minor changes to build infrastructure that don't affect the resulting code.) *149: add null pointer check *154: add .hgignore *155: whitespace *156: whitespace (the rest is by me) *158: add toys/help.h to makefile dependencies *159: fix typo in description *164: typo in df (dereference pointer) *180: .hgignore *182: whitespace in error messages *183: add headers to make dependencies *244: comment and whitespace cleanups *247: build tweak: error checking *248: typo in comment *249: .hgignore *250: wrong word in comment *251: whitespace *252: whitespace Several files in the "scripts" directory are still GPLv2 (kconfig, bloat-o-meter, Robert Foglietta's bash version of config2help.sh), but they're just build infrastructure that doesn't wind up in the resulting binary. I plan to address this later on general principles, but it's "mere aggregation" and not an immediate priority.) --- diff --git a/toys/basename.c b/toys/basename.c deleted file mode 100644 index 70ffe5b..0000000 --- a/toys/basename.c +++ /dev/null @@ -1,31 +0,0 @@ -/* vi: set sw=4 ts=4: - * - * basename.c - print non-directory portion of path - * - * Copyright 2007 Charlie Shepherd - * - * See http://www.opengroup.org/onlinepubs/009695399/utilities/basename.html - -USE_BASENAME(NEWTOY(basename, "<1>2", TOYFLAG_BIN)) - -config BASENAME - bool "basename" - default y - help - usage: basename path [suffix] - - Print the part of path after the last slash, optionally minus suffix. -*/ - -#include "toys.h" - -void basename_main(void) -{ - char *name = basename(*toys.optargs); - char *suffix = toys.optargs[1]; - if (suffix) { - char *end = name+strlen(name)-strlen(suffix); - if (end>name && !strcmp(end,suffix)) *end=0; - } - puts(name); -} diff --git a/toys/dirname.c b/toys/dirname.c deleted file mode 100644 index 759cee7..0000000 --- a/toys/dirname.c +++ /dev/null @@ -1,26 +0,0 @@ -/* vi: set sw=4 ts=4: - * - * dirname.c - print directory portion of path, or "." if none. - * - * Copyright 2007 Charlie Shepherd - * - * See http://www.opengroup.org/onlinepubs/009695399/utilities/dirname.html - -USE_DIRNAME(NEWTOY(dirname, "<1>1", TOYFLAG_BIN)) - -config DIRNAME - bool "dirname" - default y - help - usage: dirname path - - Print the part of path up to the last slash. -*/ - -#include "toys.h" -#include - -void dirname_main(void) -{ - puts(dirname(*toys.optargs)); -} diff --git a/toys/mkfifo.c b/toys/mkfifo.c deleted file mode 100644 index 39ec51a..0000000 --- a/toys/mkfifo.c +++ /dev/null @@ -1,46 +0,0 @@ -/* vi: set sw=4 ts=4: - * - * mkfifo.c: Create a named pipe. - * - * See http://www.opengroup.org/onlinepubs/009695399/utilities/mkfifo.html - -USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_BIN|TOYFLAG_UMASK)) - -config MKFIFO - bool "mkfifo" - default y - help - usage: mkfifo [-m mode] name... - - Makes a named pipe at name. - - -m mode The mode of the pipe(s) created by mkfifo. It defaults - to 0644. This number is in octal, optionally preceded - by a leading zero. -*/ - -#include "toys.h" - -DEFINE_GLOBALS( - char *mode; -) - -#define TT this.mkfifo - -void mkfifo_main(void) -{ - char *arg; - int i; - mode_t mode; - - if (toys.optflags) { - char *end; - mode = (mode_t)strtol(TT.mode, &end, 8); - if (end<=TT.mode || *end || mode<0 || mode>0777) - error_exit("Invalid mode"); - } else mode = 0644; - - for (i = 0; (arg = toys.optargs[i]); i++) - if (mkfifo(arg, mode)) - perror_exit(arg); -} diff --git a/toys/touch.c b/toys/touch.c deleted file mode 100644 index bead28f..0000000 --- a/toys/touch.c +++ /dev/null @@ -1,108 +0,0 @@ -/* vi: set sw=4 ts=4: - * - * touch.c - Modify a file's timestamps. - * - * Copyright (C) 2007 Charlie Shepherd - * - * See http://www.opengroup.org/onlinepubs/009695399/utilities/touch.html - -USE_TOUCH(NEWTOY(touch, "l#t:r:mca", TOYFLAG_BIN|TOYFLAG_UMASK)) - -config TOUCH - bool "touch" - default y - help - usage: touch [-acm] [-r FILE] [-t MMDDhhmm] [-l bytes] FILE... - - Change file timestamps, ensure file existance and change file length. - - -a Only change the access time. - -c Do not create the file if it doesn't exist. - -l Length to truncate (or sparsely extend) file to. - -m Only change the modification time. - -r Reference file to take timestamps from. - -t Time to change {a,m}time to. -*/ - -#include "toys.h" - -DEFINE_GLOBALS( - char *ref_file; - char *time; - long length; -) - -#define TT this.touch - -#define OPT_MTIME 0x01 -#define OPT_NOCREATE 0x02 -#define OPT_ATIME 0x04 -#define OPT_REFERENCE 0x08 -#define OPT_TIME 0x10 -#define OPT_LENGTH 0x20 - -void touch_main(void) -{ - char *arg; - int i, set_a, set_m; - time_t curr_a, curr_m; - - set_a = !!(toys.optflags & OPT_ATIME); - set_m = !!(toys.optflags & OPT_MTIME); - - // Use timestamp on a file - if (toys.optflags & OPT_REFERENCE) { - struct stat sb; - - if (toys.optflags & OPT_TIME) - error_exit("Redundant time source"); - xstat(TT.ref_file, &sb); - curr_m = sb.st_mtime; - curr_a = sb.st_atime; - - // Use time specified on command line. - } else if (toys.optflags & OPT_TIME) { - struct tm t; - time_t curr; - char *c; - - curr = time(NULL); - if (localtime_r(&curr, &t) - || !(c = strptime(TT.time, "%m%d%H%M", &t)) - || *c || -1==(curr_a = curr_m = mktime(&t))) - { - error_exit("Unknown time %s", TT.time); - } - - // use current time - } else curr_m = curr_a = time(NULL); - - for (i = 0; (arg = toys.optargs[i]); i++) { - struct utimbuf buf; - struct stat sb; - - buf.modtime = curr_m; - buf.actime = curr_a; - - if (stat(arg, &sb)) { - if (!(toys.optflags & OPT_NOCREATE)) { - xcreate(arg, O_CREAT, 0644); - if (stat(arg, &sb)) - goto error; - } - } - - if ((set_a+set_m) == 1) { - /* We've been asked to only change one */ - if (set_a) buf.modtime = sb.st_mtime; - else if (set_m) buf.actime = sb.st_atime; - } - - if (toys.optflags & OPT_LENGTH) - if (truncate(arg, TT.length)) - goto error; - if (utime(arg, &buf)) -error: - perror_exit(arg); - } -} diff --git a/toys/tty.c b/toys/tty.c deleted file mode 100644 index 6bc9cd3..0000000 --- a/toys/tty.c +++ /dev/null @@ -1,29 +0,0 @@ -/* vi: set sw=4 ts=4: - * tty.c - print terminal name of stdin - * - * Copyright 2007 Charlie Shepherd - * - * See http://www.opengroup.org/onlinepubs/009695399/utilities/tty.html - -USE_TTY(NEWTOY(tty, "s", TOYFLAG_BIN)) - -config TTY - bool "tty" - default y - help - Print the filename of the terminal connected to standard input. - - -s Don't print anything, only return an exit status. -*/ - -#include "toys.h" - -void tty_main(void) -{ - char *name = ttyname(0); - if (!toys.optflags) { - if (name) puts(name); - else puts("Not a tty"); - } - toys.exitval = !name; -}