diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-04-16 07:01:33 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-04-16 07:01:33 +0000 |
commit | 28f24d77860c11225c0c03351376b1ccabf469ca (patch) | |
tree | d006e0fe1cc20238c3129c8edcbfcedb74d71b9e /sys-apps/busybox | |
parent | ia64 tests ! (diff) | |
download | gentoo-2-28f24d77860c11225c0c03351376b1ccabf469ca.tar.gz gentoo-2-28f24d77860c11225c0c03351376b1ccabf469ca.tar.bz2 gentoo-2-28f24d77860c11225c0c03351376b1ccabf469ca.zip |
Add fixes from upstream to support more bash code and more cp options #88841.
(Portage version: 2.0.51.19)
Diffstat (limited to 'sys-apps/busybox')
-rw-r--r-- | sys-apps/busybox/ChangeLog | 11 | ||||
-rw-r--r-- | sys-apps/busybox/busybox-1.00-r2.ebuild | 217 | ||||
-rw-r--r-- | sys-apps/busybox/files/1.00/bash-tests.patch | 45 | ||||
-rw-r--r-- | sys-apps/busybox/files/1.00/cp-posix-opts.patch | 45 | ||||
-rw-r--r-- | sys-apps/busybox/files/1.00/more-insmod-arches.patch | 19 | ||||
-rw-r--r-- | sys-apps/busybox/files/digest-busybox-1.00-r2 | 1 |
6 files changed, 334 insertions, 4 deletions
diff --git a/sys-apps/busybox/ChangeLog b/sys-apps/busybox/ChangeLog index 81cbfd2d3730..489d283c46a4 100644 --- a/sys-apps/busybox/ChangeLog +++ b/sys-apps/busybox/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-apps/busybox -# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/ChangeLog,v 1.61 2005/04/08 18:37:44 solar Exp $ +# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/ChangeLog,v 1.62 2005/04/16 07:01:33 vapier Exp $ + +*busybox-1.00-r2 (16 Apr 2005) + + 16 Apr 2005; Mike Frysinger <vapier@gentoo.org> + +files/1.00/bash-tests.patch, files/1.00/more-insmod-arches.patch, + +files/1.00/cp-posix-opts.patch, +busybox-1.00-r2.ebuild: + Add fixes from upstream to support more bash code and more cp options #88841. 08 Apr 2005; <solar@gentoo.org> busybox-1.00-r1.ebuild: - added ~ppc64 keyword. bug 73241 diff --git a/sys-apps/busybox/busybox-1.00-r2.ebuild b/sys-apps/busybox/busybox-1.00-r2.ebuild new file mode 100644 index 000000000000..221e77f9f257 --- /dev/null +++ b/sys-apps/busybox/busybox-1.00-r2.ebuild @@ -0,0 +1,217 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/busybox/busybox-1.00-r2.ebuild,v 1.1 2005/04/16 07:01:33 vapier Exp $ + +inherit eutils + +#SNAPSHOT=20040726 + +DESCRIPTION="Utilities for rescue and embedded systems" +HOMEPAGE="http://www.busybox.net/" +if [[ -n $SNAPSHOT ]] ; then + MY_P=${PN} + SRC_URI="http://www.busybox.net/downloads/snapshots/${PN}-${SNAPSHOT}.tar.bz2" +else + MY_P=${PN}-${PV/_/-} + SRC_URI="http://www.busybox.net/downloads/${MY_P}.tar.bz2" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86" +IUSE="debug uclibc static savedconfig netboot floppyboot make-symlinks" + +DEPEND="virtual/libc + >=sys-apps/sed-4" +RDEPEND="!static? ( virtual/libc )" + +S=${WORKDIR}/${MY_P} + +# <pebenito> then eventually turning on selinux would mean +# adding a dep: selinux? ( sys-libs/libselinux ) + +busybox_config_option() { + [[ -z $2 ]] && return 1 + case $1 in + y) sed -i -e "s:.*CONFIG_$2.*set:CONFIG_$2=y:g" .config;; + n) sed -i -e "s:CONFIG_$2=y:# CONFIG_$2 is not set:g" .config;; + *) return 1;; + esac + einfo $(grep CONFIG_$2 .config) +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # patches for 1.00 go here. + epatch "${FILESDIR}"/1.00/busybox-read-timeout.patch + epatch "${FILESDIR}"/1.00/readlink-follow.patch + epatch "${FILESDIR}"/1.00/more-insmod-arches.patch + epatch "${FILESDIR}"/1.00/bash-tests.patch + epatch "${FILESDIR}"/1.00/cp-posix-opts.patch + + # Don't let KBUILD_OUTPUT mess us up #88088 + unset KBUILD_OUTPUT + + #bunzip + #ftp://ftp.simtreas.ru/pub/my/bb/new/find.c.gz + + # check for a busybox config before making one of our own. + # if one exist lets return and use it. + # fine grained config control for user defined busybox configs. + # [package]-[version]-[revision].config + # [package]-[version].config + # [package].config + + if use savedconfig ; then + [ -r .config ] && rm .config + for conf in ${PN}-${PV}-${PR} ${PN}-${PV} ${PN}; do + configfile=/etc/${PN}/${CHOST}/${conf}.config + if [ -r ${configfile} ]; then + cp ${configfile} ${S}/.config + break; + fi + done + if [ -r "${S}/.config" ]; then + einfo "Found your ${configfile} and using it." + return 0 + fi + fi + if use netboot ; then + cp ${FILESDIR}/config-netboot .config + sed -i \ + -e '/DEFAULT_SCRIPT/s:/share/udhcpc/default.script:/lib/udhcpc.script:' \ + networking/udhcp/libbb_udhcp.h \ + || die "fixing netboot/udhcpc" + elif use floppyboot ; then + cp ${FILESDIR}/config-floppyboot .config + fi + + # busybox has changed quite a bit from 0.[5-6]* to 1.x so this + # config might not be cd ready. + + make allyesconfig > /dev/null + busybox_config_option n DMALLOC + busybox_config_option n FEATURE_SUID + + # If these are not set and we are using a uclibc/busybox setup + # all calls to system() will fail. + busybox_config_option y FEATURE_SH_IS_ASH + busybox_config_option n FEATURE_SH_IS_NONE + + use static \ + && busybox_config_option y STATIC \ + || busybox_config_option n STATIC + + # 1.00-pre2 uses the old selinux api which is no longer + # maintained. perhaps the next stable release will include + # support. + # 1.00-pre5 pebenito says busybox is still using the old se api. + #use selinux \ + # && busybox_config_option y SELINUX \ + # || + busybox_config_option n SELINUX + + use debug \ + && busybox_config_option y DEBUG \ + || busybox_config_option n DEBUG + + #busybox_features=`grep CONFIG_ .config | tr '#' '\n' | + # awk '{print $1}' | cut -d = -f 1 | grep -v ^$ | cut -c 8- | + # tr [A-Z] [a-z] | awk '{print "busybox_"$1}'` + #for f in $busybox_features; do + # has $f ${FEATURES} && busybox_config_option y `echo ${f/busybox_/}|tr [a-z] [A-Z]` + #done + ( echo | make clean oldconfig > /dev/null ) || : +} + +busybox_set_cross_compiler() { + type -p ${CHOST}-ar && export CROSS=${CHOST}- +} + +src_compile() { + busybox_set_cross_compiler + #emake -j1 CROSS="${CROSS}" include/config.h busybox || die + emake -j1 CROSS="${CROSS}" busybox || die +} + +src_install() { + busybox_set_cross_compiler + + into / + dobin busybox + if use make-symlinks ; then + if [ ! "${VERY_BRAVE_OR_VERY_DUMB}" = "yes" ] && [ "${ROOT}" = "/" ]; + then + ewarn "setting USE=make-symlinks and emerging to / is very dangerous." + ewarn "it WILL overwrite lots of system programs like: ls bash awk grep (bug 60805 for full list)." + ewarn "If you are creating a binary only and not merging this is probably ok." + ewarn "set env VERY_BRAVE_OR_VERY_DUMB=yes if this is realy what you want." + die "silly options will destroy your system" + fi + make CROSS="${CROSS}" install || die + dodir /bin + cp -a _install/bin/* ${D}/bin/ + dodir /sbin + cp -a _install/sbin/* ${D}/sbin/ + cd ${D} + local symlink + for symlink in {bin,sbin}/* ; do + [ -L "${symlink}" ] || continue + [ -e "${ROOT}/${symlink}" ] \ + && eerror "Deleting symlink ${symlink} because it exists in ${ROOT}" \ + && rm ${symlink} + done + cd ${S} + fi + + dodoc AUTHORS Changelog README TODO + + cd docs || die + docinto txt + dodoc *.txt + docinto pod + dodoc *.pod + dohtml *.html *.sgml + + # no man files? + # cd ../man && doman *.1 + + cd ../examples || die + docinto examples + dodoc inittab depmod.pl + + cd bootfloppy || die + docinto bootfloppy + dodoc bootfloppy.txt display.txt mkdevs.sh etc/* etc/init.d/* 2>/dev/null + + cd ../../ || die + if has buildpkg ${FEATURES} && has keepwork ${FEATURES} ; then + cd ${S} + # this should install to the ./_install/ dir by default. + # we make a micro pkg of busybox that can be used for + # embedded systems -solar + if ! use make-symlinks ; then + make CROSS="${CROSS}" install || die + fi + cd ./_install/ \ + && tar --no-same-owner -jcvf ${WORKDIR}/${MY_P}-${ARCH}.bz2 . \ + && cd .. + fi + + if use savedconfig ; then + einfo "Saving this build config to /etc/${PN}/${CHOST}/${PN}-${PV}-${PR}.config" + einfo "Read this ebuild for more info on how to take advantage of this option" + insinto /etc/${PN}/${CHOST}/ + newins ${S}/.config ${PN}-${PV}-${PR}.config + fi +} + +pkg_postinst() { + echo + einfo "This ebuild has support for user defined configs" + einfo "Please read this ebuild for more details and re-emerge as needed" + einfo "if you want to add or remove functionality for ${PN}" + echo +} diff --git a/sys-apps/busybox/files/1.00/bash-tests.patch b/sys-apps/busybox/files/1.00/bash-tests.patch new file mode 100644 index 000000000000..9e8b099049ca --- /dev/null +++ b/sys-apps/busybox/files/1.00/bash-tests.patch @@ -0,0 +1,45 @@ +Index: coreutils/test.c +=================================================================== +--- coreutils/test.c (revision 10073) ++++ coreutils/test.c (revision 10096) +@@ -51,7 +51,7 @@ + unary-operator ::= "-r"|"-w"|"-x"|"-f"|"-d"|"-c"|"-b"|"-p"| + "-u"|"-g"|"-k"|"-s"|"-t"|"-z"|"-n"|"-o"|"-O"|"-G"|"-L"|"-S"; + +- binary-operator ::= "="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"| ++ binary-operator ::= "="|"=="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"| + "-nt"|"-ot"|"-ef"; + operand ::= <any legal UNIX file name> + */ +@@ -135,6 +135,7 @@ + "-L", FILSYM, UNOP}, { + "-S", FILSOCK, UNOP}, { + "=", STREQ, BINOP}, { ++ "==", STREQ, BINOP}, { + "!=", STRNE, BINOP}, { + "<", STRLT, BINOP}, { + ">", STRGT, BINOP}, { +@@ -191,6 +192,11 @@ + bb_error_msg_and_die("missing ]"); + argv[argc] = NULL; + } ++ if (strcmp(bb_applet_name, "[[") == 0) { ++ if (strcmp(argv[--argc], "]]")) ++ bb_error_msg_and_die("missing ]]"); ++ argv[argc] = NULL; ++ } + /* Implement special cases from POSIX.2, section 4.62.4 */ + switch (argc) { + case 1: +Index: include/applets.h +=================================================================== +--- include/applets.h (revision 10073) ++++ include/applets.h (revision 10096) +@@ -50,6 +50,7 @@ + + #ifdef CONFIG_TEST + APPLET_NOUSAGE("[", test_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) ++ APPLET_NOUSAGE("[[", test_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) + #endif + #ifdef CONFIG_ADDGROUP + APPLET(addgroup, addgroup_main, _BB_DIR_BIN, _BB_SUID_NEVER) diff --git a/sys-apps/busybox/files/1.00/cp-posix-opts.patch b/sys-apps/busybox/files/1.00/cp-posix-opts.patch new file mode 100644 index 000000000000..f944bb1abb33 --- /dev/null +++ b/sys-apps/busybox/files/1.00/cp-posix-opts.patch @@ -0,0 +1,45 @@ +Grabbed from upstream SVN + +--- coreutils/cp.c ++++ coreutils/cp.c +@@ -42,7 +42,7 @@ + #include "libcoreutils/coreutils.h" + + /* WARNING!! ORDER IS IMPORTANT!! */ +-static const char cp_opts[] = "pdRfiar"; ++static const char cp_opts[] = "pdRfiarPHL"; + + extern int cp_main(int argc, char **argv) + { +@@ -79,6 +79,20 @@ + */ + flags |= FILEUTILS_DEREFERENCE; + } ++ if (flags & 128) { ++ /* Make -P a synonym for -d, ++ * -d is the GNU option while -P is the POSIX 2003 option ++ */ ++ flags |= FILEUTILS_DEREFERENCE; ++ } ++ /* Default behavior of cp is to dereference, so we don't have to do ++ * anything special when we are given -L. ++ * The behavior of -H is *almost* like -L, but not quite, so let's ++ * just ignore it too for fun. ++ if (flags & 256 || flags & 512) { ++ ; ++ } ++ */ + + flags ^= FILEUTILS_DEREFERENCE; /* The sense of this flag was reversed. */ + +--- include/usage.h ++++ include/usage.h +@@ -205,6 +205,7 @@ + "\n" \ + "\t-a\tSame as -dpR\n" \ +- "\t-d\tPreserves links\n" \ ++ "\t-d,-P\tPreserves links\n" \ ++ "\t-H,-L\tDereference all symlinks (implied by default)\n" \ + "\t-p\tPreserves file attributes if possible\n" \ + "\t-f\tforce (implied; ignored) - always set\n" \ + "\t-i\tinteractive, prompt before overwrite\n" \ diff --git a/sys-apps/busybox/files/1.00/more-insmod-arches.patch b/sys-apps/busybox/files/1.00/more-insmod-arches.patch index 7a88cb6fa31a..42e1f88708bd 100644 --- a/sys-apps/busybox/files/1.00/more-insmod-arches.patch +++ b/sys-apps/busybox/files/1.00/more-insmod-arches.patch @@ -4,8 +4,8 @@ RCS file: /var/cvs/busybox/modutils/insmod.c,v retrieving revision 1.125 retrieving revision 1.126 diff -u -r1.125 -r1.126 ---- busybox/modutils/insmod.c 2 Sep 2004 23:03:25 -0000 1.125 -+++ busybox/modutils/insmod.c 26 Dec 2004 09:13:32 -0000 1.126 +--- modutils/insmod.c 2 Sep 2004 23:03:25 -0000 1.125 ++++ modutils/insmod.c 26 Dec 2004 09:13:32 -0000 1.126 @@ -109,6 +109,14 @@ #endif @@ -41,3 +41,18 @@ diff -u -r1.125 -r1.126 /* H8/300 */ #if defined(__H8300H__) || defined(__H8300S__) #define MATCH_MACHINE(x) (x == EM_H8_300) +Index: modutils/insmod.c +=================================================================== +--- modutils/insmod.c (revision 9620) ++++ modutils/insmod.c (revision 10061) +@@ -290,8 +290,8 @@ + /* X86_64 */ + #if defined(__x86_64__) + #define MATCH_MACHINE(x) (x == EM_X86_64) +-#define SHT_RELM SHT_REL +-#define Elf64_RelM Elf64_Rel ++#define SHT_RELM SHT_RELA ++#define Elf64_RelM Elf64_Rela + #define ELFCLASSM ELFCLASS64 + #endif + diff --git a/sys-apps/busybox/files/digest-busybox-1.00-r2 b/sys-apps/busybox/files/digest-busybox-1.00-r2 new file mode 100644 index 000000000000..659145bbe83c --- /dev/null +++ b/sys-apps/busybox/files/digest-busybox-1.00-r2 @@ -0,0 +1 @@ +MD5 5c7ea9b5d3b3677dfcdcec38b281a756 busybox-1.00.tar.bz2 1118427 |