summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-05-17 01:02:16 +0000
committerMike Frysinger <vapier@gentoo.org>2005-05-17 01:02:16 +0000
commit53deb8d345f9677c7d626a73be5a1567a74fb590 (patch)
tree9fefe4d2e4ecb076853416022603b447c0a0fa08 /sys-apps/busybox/files
parentold (diff)
downloadgentoo-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.patch152
-rw-r--r--sys-apps/busybox/files/1.00/printenv.patch113
-rw-r--r--sys-apps/busybox/files/1.00/standalone.patch37
-rw-r--r--sys-apps/busybox/files/1.00/sum.patch245
-rw-r--r--sys-apps/busybox/files/busybox-1.00-pre3.config7
-rw-r--r--sys-apps/busybox/files/digest-busybox-1.00-r42
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