diff options
author | 2005-05-17 01:02:16 +0000 | |
---|---|---|
committer | 2005-05-17 01:02:16 +0000 | |
commit | 53deb8d345f9677c7d626a73be5a1567a74fb590 (patch) | |
tree | 9fefe4d2e4ecb076853416022603b447c0a0fa08 /sys-apps/busybox/files | |
parent | old (diff) | |
download | gentoo-2-53deb8d345f9677c7d626a73be5a1567a74fb590.tar.gz gentoo-2-53deb8d345f9677c7d626a73be5a1567a74fb590.tar.bz2 gentoo-2-53deb8d345f9677c7d626a73be5a1567a74fb590.zip |
Add more applets and prepare to replace sash.
(Portage version: 2.0.51.21-r1)
Diffstat (limited to 'sys-apps/busybox/files')
-rw-r--r-- | sys-apps/busybox/files/1.00/nice.patch | 152 | ||||
-rw-r--r-- | sys-apps/busybox/files/1.00/printenv.patch | 113 | ||||
-rw-r--r-- | sys-apps/busybox/files/1.00/standalone.patch | 37 | ||||
-rw-r--r-- | sys-apps/busybox/files/1.00/sum.patch | 245 | ||||
-rw-r--r-- | sys-apps/busybox/files/busybox-1.00-pre3.config | 7 | ||||
-rw-r--r-- | sys-apps/busybox/files/digest-busybox-1.00-r4 | 2 |
6 files changed, 556 insertions, 0 deletions
diff --git a/sys-apps/busybox/files/1.00/nice.patch b/sys-apps/busybox/files/1.00/nice.patch new file mode 100644 index 000000000000..d75fe517ddc7 --- /dev/null +++ b/sys-apps/busybox/files/1.00/nice.patch @@ -0,0 +1,152 @@ +Index: coreutils/Makefile.in +=================================================================== +--- coreutils/Makefile.in (revision 9867) ++++ coreutils/Makefile.in (revision 9868) +@@ -58,6 +58,7 @@ + COREUTILS-$(CONFIG_MKFIFO) += mkfifo.o + COREUTILS-$(CONFIG_MKNOD) += mknod.o + COREUTILS-$(CONFIG_MV) += mv.o ++COREUTILS-$(CONFIG_NICE) += nice.o + COREUTILS-$(CONFIG_OD) += od.o + COREUTILS-$(CONFIG_PRINTF) += printf.o + COREUTILS-$(CONFIG_PWD) += pwd.o +Index: coreutils/nice.c +=================================================================== +--- coreutils/nice.c (revision 0) ++++ coreutils/nice.c (revision 9868) +@@ -0,0 +1,86 @@ ++/* vi: set sw=4 ts=4: */ ++/* ++ * nice implementation for busybox ++ * ++ * Copyright (C) 2005 Manuel Novoa III <mjn3@codepoet.org> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <limits.h> ++#include <errno.h> ++#include <unistd.h> ++#include <sys/time.h> ++#include <sys/resource.h> ++#include "busybox.h" ++ ++static inline int int_add_no_wrap(int a, int b) ++{ ++ int s = a + b; ++ ++ if (b < 0) { ++ if (s > a) s = INT_MIN; ++ } else { ++ if (s < a) s = INT_MAX; ++ } ++ ++ return s; ++} ++ ++int nice_main(int argc, char **argv) ++{ ++ static const char Xetpriority_msg[] = "cannot %cet priority"; ++ ++ int old_priority, adjustment; ++ ++ errno = 0; /* Needed for getpriority error detection. */ ++ old_priority = getpriority(PRIO_PROCESS, 0); ++ if (errno) { ++ bb_perror_msg_and_die(Xetpriority_msg, 'g'); ++ } ++ ++ if (!*++argv) { /* No args, so (GNU) output current nice value. */ ++ bb_printf("%d\n", old_priority); ++ bb_fflush_stdout_and_exit(EXIT_SUCCESS); ++ } ++ ++ adjustment = 10; /* Set default adjustment. */ ++ ++ if ((argv[0][0] == '-') && (argv[0][1] == 'n') && !argv[0][2]) { /* "-n" */ ++ if (argc < 4) { /* Missing priority and/or utility! */ ++ bb_show_usage(); ++ } ++ adjustment = bb_xgetlarg(argv[1], 10, INT_MIN, INT_MAX); ++ argv += 2; ++ } ++ ++ { /* Set our priority. Handle integer wrapping for old + adjust. */ ++ int new_priority = int_add_no_wrap(old_priority, adjustment); ++ ++ if (setpriority(PRIO_PROCESS, 0, new_priority) < 0) { ++ bb_perror_msg_and_die(Xetpriority_msg, 's'); ++ } ++ } ++ ++ execvp(*argv, argv); /* Now exec the desired program. */ ++ ++ /* The exec failed... */ ++ bb_default_error_retval = (errno == ENOENT) ? 127 : 126; /* SUSv3 */ ++ bb_perror_msg_and_die("%s", *argv); ++} +Index: coreutils/Config.in +=================================================================== +--- coreutils/Config.in (revision 9867) ++++ coreutils/Config.in (revision 9868) +@@ -329,6 +329,12 @@ + help + mv is used to move or rename files or directories. + ++config CONFIG_NICE ++ bool "nice" ++ default n ++ help ++ nice runs a program with modified scheduling priority. ++ + config CONFIG_OD + bool "od" + default n +Index: include/usage.h +=================================================================== +--- include/usage.h (revision 9867) ++++ include/usage.h (revision 9868) +@@ -1813,6 +1813,13 @@ + "\t-w raw sockets\n" \ + "\t-x unix sockets" + ++#define nice_trivial_usage \ ++ "[-n ADJUST] [COMMAND [ARG] ...]" ++#define nice_full_usage \ ++ "Nice runs a program with modified scheduling priority.\n\n" \ ++ "Options:\n" \ ++ "\t-n ADJUST\tAdjust the scheduling priority by ADJUST.\n" \ ++ + #define nslookup_trivial_usage \ + "[HOST] [SERVER]" + #define nslookup_full_usage \ +Index: include/applets.h +=================================================================== +--- include/applets.h (revision 9867) ++++ include/applets.h (revision 9868) +@@ -412,6 +412,9 @@ + #ifdef CONFIG_NETSTAT + APPLET(netstat, netstat_main, _BB_DIR_BIN, _BB_SUID_NEVER) + #endif ++#ifdef CONFIG_NICE ++ APPLET(nice, nice_main, _BB_DIR_BIN, _BB_SUID_NEVER) ++#endif + #ifdef CONFIG_NSLOOKUP + APPLET(nslookup, nslookup_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) + #endif diff --git a/sys-apps/busybox/files/1.00/printenv.patch b/sys-apps/busybox/files/1.00/printenv.patch new file mode 100644 index 000000000000..4057395628d7 --- /dev/null +++ b/sys-apps/busybox/files/1.00/printenv.patch @@ -0,0 +1,113 @@ +Index: coreutils/Makefile.in +=================================================================== +--- coreutils/Makefile.in (revision 10146) ++++ coreutils/Makefile.in (revision 10147) +@@ -60,6 +60,7 @@ + COREUTILS-$(CONFIG_MV) += mv.o + COREUTILS-$(CONFIG_NICE) += nice.o + COREUTILS-$(CONFIG_OD) += od.o ++COREUTILS-$(CONFIG_PRINTENV) += printenv.o + COREUTILS-$(CONFIG_PRINTF) += printf.o + COREUTILS-$(CONFIG_PWD) += pwd.o + COREUTILS-$(CONFIG_REALPATH) += realpath.o +Index: coreutils/printenv.c +=================================================================== +--- coreutils/printenv.c (revision 0) ++++ coreutils/printenv.c (revision 10147) +@@ -0,0 +1,52 @@ ++/* ++ * printenv implementation for busybox ++ * ++ * Copyright (C) 2005 by Erik Andersen <andersen@codepoet.org> ++ * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++int printenv_main(int argc, char **argv) ++{ ++ extern char **environ; ++ int e = 0; ++ ++ /* no variables specified, show whole env */ ++ if (argc == 1) ++ while (environ[e]) ++ puts(environ[e++]); ++ ++ /* search for specified variables and print them out if found */ ++ else { ++ int i; ++ size_t l; ++ char *arg, *env; ++ ++ for (i=1; (arg = argv[i]); ++i) ++ for (; (env = environ[e]); ++e) { ++ l = strlen(arg); ++ if (!strncmp(env, arg, l) && env[l] == '=') ++ puts(env + l + 1); ++ } ++ } ++ ++ exit(EXIT_SUCCESS); ++} +Index: coreutils/Config.in +=================================================================== +--- coreutils/Config.in (revision 10146) ++++ coreutils/Config.in (revision 10147) +@@ -164,6 +164,12 @@ + a command; without options it displays the current + environment. + ++config CONFIG_PRINTENV ++ bool "printenv" ++ default n ++ help ++ printenv is used to print all or part of environment. ++ + config CONFIG_EXPR + bool "expr" + default n +--- include/usage.h ++++ include/usage.h +@@ -1949,6 +1949,12 @@ + "Options:\n" \ + "\t-d\t\tdelay interval for shutting off." + ++#define printenv_trivial_usage \ ++ "[VARIABLES...]" ++#define printenv_full_usage \ ++ "print all or part of environment\n\n" \ ++ "If no environment VARIABLE specified, print them all." ++ + #define printf_trivial_usage \ + "FORMAT [ARGUMENT...]" + #define printf_full_usage \ +--- include/applets.h ++++ include/applets.h +@@ -452,6 +452,9 @@ + #ifdef CONFIG_POWEROFF + APPLET(poweroff, poweroff_main, _BB_DIR_SBIN, _BB_SUID_NEVER) + #endif ++#ifdef CONFIG_PRINTENV ++ APPLET(printenv, printenv_main, _BB_DIR_BIN, _BB_SUID_NEVER) ++#endif + #ifdef CONFIG_PRINTF + APPLET(printf, printf_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) + #endif diff --git a/sys-apps/busybox/files/1.00/standalone.patch b/sys-apps/busybox/files/1.00/standalone.patch new file mode 100644 index 000000000000..25acc4faabef --- /dev/null +++ b/sys-apps/busybox/files/1.00/standalone.patch @@ -0,0 +1,37 @@ +--- trunk/busybox/shell/ash.c 2005/02/10 00:44:31 9838 ++++ trunk/busybox/shell/ash.c 2005/05/07 08:27:34 10264 +@@ -3722,27 +3722,13 @@ + { + int repeated = 0; + #ifdef CONFIG_FEATURE_SH_STANDALONE_SHELL +- int flg_bb = 0; +- char *name = cmd; +- +- if(strchr(name, '/') == NULL && find_applet_by_name(name) != NULL) { +- flg_bb = 1; +- } +- if(flg_bb) { +- char **ap; +- char **new; +- +- *argv = name; +- if(strcmp(name, "busybox")) { +- for (ap = argv; *ap; ap++); +- ap = new = xmalloc((ap - argv + 2) * sizeof(char *)); +- *ap++ = cmd = "/bin/busybox"; +- while ((*ap++ = *argv++)); +- argv = new; +- repeated++; +- } else { +- cmd = "/bin/busybox"; +- } ++ if(find_applet_by_name(cmd) != NULL) { ++ /* re-exec ourselves with the new arguments */ ++ execve("/proc/self/exe",argv,envp); ++ /* If proc isn't mounted, try hardcoded path to busybox binary*/ ++ execve("/bin/busybox",argv,envp); ++ /* If they called chroot or otherwise made the binary no longer ++ * executable, fall through */ + } + #endif + diff --git a/sys-apps/busybox/files/1.00/sum.patch b/sys-apps/busybox/files/1.00/sum.patch new file mode 100644 index 000000000000..106bdbb47edf --- /dev/null +++ b/sys-apps/busybox/files/1.00/sum.patch @@ -0,0 +1,245 @@ +Index: coreutils/Makefile.in +=================================================================== +--- coreutils/Makefile.in (revision 10147) ++++ coreutils/Makefile.in (revision 10148) +@@ -71,6 +71,7 @@ + COREUTILS-$(CONFIG_SLEEP) += sleep.o + COREUTILS-$(CONFIG_SORT) += sort.o + COREUTILS-$(CONFIG_STTY) += stty.o ++COREUTILS-$(CONFIG_SUM) += sum.o + COREUTILS-$(CONFIG_SYNC) += sync.o + COREUTILS-$(CONFIG_TAIL) += tail.o + COREUTILS-$(CONFIG_TEE) += tee.o +Index: coreutils/sum.c +=================================================================== +--- coreutils/sum.c (revision 0) ++++ coreutils/sum.c (revision 10148) +@@ -0,0 +1,182 @@ ++/* ++ * sum -- checksum and count the blocks in a file ++ * Like BSD sum or SysV sum -r, except like SysV sum if -s option is given. ++ * ++ * Copyright (C) 86, 89, 91, 1995-2002, 2004 Free Software Foundation, Inc. ++ * Copyright (C) 2005 by Erik Andersen <andersen@codepoet.org> ++ * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org> ++ * ++ * Written by Kayvan Aghaiepour and David MacKenzie ++ * Taken from coreutils and turned into a busybox applet by Mike Frysinger ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++#include <stdio.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <fcntl.h> ++#include <unistd.h> ++#include <getopt.h> ++ ++#include "libbb.h" ++ ++/* 1 if any of the files read were the standard input */ ++static int have_read_stdin; ++ ++/* make a little more readable and avoid using strcmp for just 2 bytes */ ++#define IS_STDIN(s) (s[0] == '-' && s[1] == '\0') ++ ++/* Calculate and print the rotated checksum and the size in 1K blocks ++ of file FILE, or of the standard input if FILE is "-". ++ If PRINT_NAME is >1, print FILE next to the checksum and size. ++ The checksum varies depending on sizeof (int). ++ Return 1 if successful. */ ++static int bsd_sum_file(const char *file, int print_name) ++{ ++ register FILE *fp; ++ register int checksum = 0; /* The checksum mod 2^16. */ ++ register uintmax_t total_bytes = 0; /* The number of bytes. */ ++ register int ch; /* Each character read. */ ++ ++ if (IS_STDIN(file)) { ++ fp = stdin; ++ have_read_stdin = 1; ++ } else { ++ fp = fopen(file, "r"); ++ if (fp == NULL) { ++ bb_perror_msg(file); ++ return 0; ++ } ++ } ++ ++ while ((ch = getc(fp)) != EOF) { ++ ++total_bytes; ++ checksum = (checksum >> 1) + ((checksum & 1) << 15); ++ checksum += ch; ++ checksum &= 0xffff; /* Keep it within bounds. */ ++ } ++ ++ if (ferror(fp)) { ++ bb_perror_msg(file); ++ if (!IS_STDIN(file)) ++ fclose(fp); ++ return 0; ++ } ++ ++ if (!IS_STDIN(file) && fclose(fp) == EOF) { ++ bb_perror_msg(file); ++ return 0; ++ } ++ ++ printf("%05d %5s ", checksum, ++ make_human_readable_str(total_bytes, 1, 1024)); ++ if (print_name > 1) ++ printf(file); ++ putchar('\n'); ++ ++ return 1; ++} ++ ++/* Calculate and print the checksum and the size in 512-byte blocks ++ of file FILE, or of the standard input if FILE is "-". ++ If PRINT_NAME is >0, print FILE next to the checksum and size. ++ Return 1 if successful. */ ++static int sysv_sum_file(const char *file, int print_name) ++{ ++ int fd; ++ unsigned char buf[8192]; ++ uintmax_t total_bytes = 0; ++ int r; ++ int checksum; ++ ++ /* The sum of all the input bytes, modulo (UINT_MAX + 1). */ ++ unsigned int s = 0; ++ ++ if (IS_STDIN(file)) { ++ fd = 0; ++ have_read_stdin = 1; ++ } else { ++ fd = open(file, O_RDONLY); ++ if (fd == -1) { ++ bb_perror_msg(file); ++ return 0; ++ } ++ } ++ ++ while (1) { ++ size_t i; ++ size_t bytes_read = safe_read(fd, buf, sizeof(buf)); ++ ++ if (bytes_read == 0) ++ break; ++ ++ if (bytes_read == -1) { ++ bb_perror_msg(file); ++ if (!IS_STDIN(file)) ++ close(fd); ++ return 0; ++ } ++ ++ for (i = 0; i < bytes_read; i++) ++ s += buf[i]; ++ total_bytes += bytes_read; ++ } ++ ++ if (!IS_STDIN(file) && close(fd) == -1) { ++ bb_perror_msg(file); ++ return 0; ++ } ++ ++ r = (s & 0xffff) + ((s & 0xffffffff) >> 16); ++ checksum = (r & 0xffff) + (r >> 16); ++ ++ printf("%d %s ", checksum, ++ make_human_readable_str(total_bytes, 1, 512)); ++ if (print_name) ++ printf(file); ++ putchar('\n'); ++ ++ return 1; ++} ++ ++int sum_main(int argc, char **argv) ++{ ++ int flags; ++ int ok; ++ int files_given; ++ int (*sum_func)(const char *, int) = bsd_sum_file; ++ ++ /* give the bsd func priority over sysv func */ ++ flags = bb_getopt_ulflags(argc, argv, "sr"); ++ if (flags & 1) ++ sum_func = sysv_sum_file; ++ if (flags & 2) ++ sum_func = bsd_sum_file; ++ ++ have_read_stdin = 0; ++ files_given = argc - optind; ++ if (files_given <= 0) ++ ok = sum_func("-", files_given); ++ else ++ for (ok = 1; optind < argc; optind++) ++ ok &= sum_func(argv[optind], files_given); ++ ++ if (have_read_stdin && fclose(stdin) == EOF) ++ bb_perror_msg_and_die("-"); ++ ++ exit(ok ? EXIT_SUCCESS : EXIT_FAILURE); ++} +Index: coreutils/Config.in +=================================================================== +--- coreutils/Config.in (revision 10147) ++++ coreutils/Config.in (revision 10148) +@@ -428,6 +428,12 @@ + help + stty is used to change and print terminal line settings. + ++config CONFIG_SUM ++ bool "sum" ++ default n ++ help ++ checksum and count the blocks in a file ++ + config CONFIG_SYNC + bool "sync" + default n +--- include/usage.h ++++ include/usage.h +@@ -2316,6 +2322,14 @@ + "\t-h\tName of the remote host for this login.\n" \ + "\t-p\tPreserve environment." + ++#define sum_trivial_usage \ ++ "[rs] [files...]" ++#define sum_full_usage \ ++ "checksum and count the blocks in a file\n\n" \ ++ "Options:\n" \ ++ "\t-r\tuse BSD sum algorithm (1K blocks)\n" \ ++ "\t-s\tuse System V sum algorithm (512byte blocks)\n" ++ + #define swapoff_trivial_usage \ + "[OPTION] [DEVICE]" + #define swapoff_full_usage \ +--- include/applets.h ++++ include/applets.h +@@ -545,6 +548,9 @@ + #ifdef CONFIG_SULOGIN + APPLET(sulogin, sulogin_main, _BB_DIR_SBIN, _BB_SUID_NEVER) + #endif ++#ifdef CONFIG_SUM ++ APPLET(sum, sum_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) ++#endif + #ifdef CONFIG_SWAPONOFF + APPLET(swapoff, swap_on_off_main, _BB_DIR_SBIN, _BB_SUID_NEVER) + #endif diff --git a/sys-apps/busybox/files/busybox-1.00-pre3.config b/sys-apps/busybox/files/busybox-1.00-pre3.config index a97a9360e875..5457704ed83c 100644 --- a/sys-apps/busybox/files/busybox-1.00-pre3.config +++ b/sys-apps/busybox/files/busybox-1.00-pre3.config @@ -103,7 +103,9 @@ CONFIG_MKDIR=y CONFIG_MKFIFO=y CONFIG_MKNOD=y CONFIG_MV=y +CONFIG_NICE=y # CONFIG_OD is not set +CONFIG_PRINTENV=y # CONFIG_PRINTF is not set CONFIG_PWD=y # CONFIG_REALPATH is not set @@ -114,6 +116,7 @@ CONFIG_RMDIR=y CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y CONFIG_SORT=y +CONFIG_SUM=y CONFIG_FEATURE_SORT_REVERSE=y CONFIG_FEATURE_SORT_UNIQUE=y CONFIG_STTY=y @@ -424,3 +427,7 @@ CONFIG_UMOUNT=y # Debugging Options # # CONFIG_DEBUG is not set + + +CONFIG_LSATTR=y +CONFIG_CHATTR=y diff --git a/sys-apps/busybox/files/digest-busybox-1.00-r4 b/sys-apps/busybox/files/digest-busybox-1.00-r4 new file mode 100644 index 000000000000..e85997c1b6b6 --- /dev/null +++ b/sys-apps/busybox/files/digest-busybox-1.00-r4 @@ -0,0 +1,2 @@ +MD5 5c7ea9b5d3b3677dfcdcec38b281a756 busybox-1.00.tar.bz2 1118427 +MD5 af5bc43f345f102fc257787d7beacaac busybox-1.00-e2fsprogs.patch.bz2 16713 |