summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-04-16 07:01:33 +0000
committerMike Frysinger <vapier@gentoo.org>2005-04-16 07:01:33 +0000
commit28f24d77860c11225c0c03351376b1ccabf469ca (patch)
treed006e0fe1cc20238c3129c8edcbfcedb74d71b9e /sys-apps/busybox
parentia64 tests ! (diff)
downloadgentoo-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/ChangeLog11
-rw-r--r--sys-apps/busybox/busybox-1.00-r2.ebuild217
-rw-r--r--sys-apps/busybox/files/1.00/bash-tests.patch45
-rw-r--r--sys-apps/busybox/files/1.00/cp-posix-opts.patch45
-rw-r--r--sys-apps/busybox/files/1.00/more-insmod-arches.patch19
-rw-r--r--sys-apps/busybox/files/digest-busybox-1.00-r21
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