%define uclibc_version 0.9.30.1 Summary: Statically linked binary providing simplified versions of system commands Name: busybox Version: 1.13.4 Release: 2%{?_dist_release} License: GPLv2 Group: System Environment/Shells Source: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2 Source2: http://www.uclibc.org/downloads/uClibc-%{uclibc_version}.tar.bz2 Source3: uClibc.config Patch0: busybox-1.12.1-static.patch Patch1: busybox-1.12.1-anaconda.patch Patch12: busybox-1.2.2-ls.patch Patch14: busybox-1.9.0-msh.patch Patch16: busybox-1.10.1-hwclock.patch Patch20: uClibc-0.9.30.1_remove-erroneous-hidden-defs.patch URL: http://www.busybox.net BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description Busybox is a single binary which includes versions of a large number of system commands, including a shell. This package can be very useful for recovering from certain types of system failures, particularly those involving broken shared libraries. %package anaconda Group: System Environment/Shells Summary: Version of busybox configured for use with anaconda %description anaconda Busybox is a single binary which includes versions of a large number of system commands, including a shell. The version contained in this package is designed for use with the Red Hat installation program, anaconda. The busybox package provides a binary better suited to normal use. %prep %setup -q -a2 %patch0 -b .static -p1 %patch12 -b .ls -p1 %patch14 -b .msh -p1 %patch16 -b .ia64 -p1 cat %{SOURCE3} >uClibc-%{uclibc_version}/.config1 %patch20 -b .hidden-defs -p0 %build # create static busybox - the executable is kept as busybox-static # We use uclibc instead of system glibc, uclibc is several times # smaller, this is important for static build. # Build uclibc first. cd uClibc-%{uclibc_version} # fixme: mkdir kernel-include cp -a /usr/include/asm kernel-include cp -a /usr/include/asm-generic kernel-include cp -a /usr/include/linux kernel-include # uclibc can't be built on ppc64, we set $arch to "" in this case arch=`uname -m | sed -e 's/i.86/i386/' -e 's/ppc/powerpc/' -e 's/ppc64//' -e 's/powerpc64//'` echo "TARGET_$arch=y" >.config echo "TARGET_ARCH=\"$arch\"" >>.config cat .config1 >>.config if test "$arch"; then yes "" | make oldconfig; fi if test "$arch"; then cat .config; fi if test "$arch"; then make V=1; fi if test "$arch"; then make install; fi if test "$arch"; then make install_kernel_headers; fi cd .. # we are back in busybox-NN.MM dir now make defconfig # gcc needs to be convinced to use neither system headers, nor libs, # nor startfiles (i.e. crtXXX.o files) if test "$arch"; then \ mv .config .config1 && \ grep -v ^CONFIG_SELINUX .config1 >.config && \ yes "" | make oldconfig && \ cat .config && \ make V=1 \ EXTRA_CFLAGS="-isystem uClibc-%{uclibc_version}/installed/include" \ CFLAGS_busybox="-static -nostartfiles -LuClibc-%{uclibc_version}/installed/lib uClibc-%{uclibc_version}/installed/lib/crt1.o uClibc-%{uclibc_version}/installed/lib/crti.o uClibc-%{uclibc_version}/installed/lib/crtn.o"; \ else \ cat .config && \ make V=1 CC="gcc $RPM_OPT_FLAGS"; \ fi cp busybox busybox-static # create busybox optimized for anaconda make clean # revert the static patches patch -R -p1 <%{PATCH0} # applied anaconda patch patch -b --suffix .anaconda -p1 < %{PATCH1} make defconfig make CONFIG_DEBUG=y CC="gcc $RPM_OPT_FLAGS" cp busybox busybox.anaconda %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/sbin install -m 755 busybox-static $RPM_BUILD_ROOT/sbin/busybox install -m 755 busybox.anaconda $RPM_BUILD_ROOT/sbin/busybox.anaconda %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc LICENSE docs/busybox.net/*.html docs/busybox.net/images/* /sbin/busybox %files anaconda %defattr(-,root,root,-) %doc LICENSE docs/busybox.net/*.html docs/busybox.net/images/* /sbin/busybox.anaconda %changelog * Fri May 08 2009 MATSUBAYASHI Kohji - 1.13.4-2 - add Patch20 to fix build failure on ppc http://lists.uclibc.org/pipermail/uclibc-cvs/2009-January/025891.html * Mon May 04 2009 Daisuke SUZUKI 1.13.4-1 - new upstream release - use uClibc for static build instead of glibc * Fri Sep 19 2008 Shu KONNO 1.2.0-1vl5 - applied new versioning policy * Tue Aug 08 2006 Daisuke SUZUKI 1.2.0-0vl1 - initial build for Vine Linux based on FC-devel * Wed Jul 12 2006 Jesse Keating - 1:1.2.0-1.1 - rebuild * Tue Jul 4 2006 Ivana Varekova - 1:1.2.0-1 - update to 1.2.0 * Thu Jun 8 2006 Jeremy Katz - 1:1.1.3-2 - fix so that busybox.anaconda has sh * Wed May 31 2006 Ivana Varekova - 1:1.1.3-1 - update to 1.1.3 * Mon May 29 2006 Ivana Varekova - 1:1.1.2-3 - fix Makefile typo (#193354) * Fri May 5 2006 Ivana Varekova - 1:1.1.2-1 - update to 1.1.2 * Thu May 4 2006 Ivana Varekova - 1:1.1.1-2 - add -Z option to id command, rename ps command -Z option (#190534) * Wed May 03 2006 Ivana Varekova - 1:1.1.1-1 - update to 1.1.1 - fix CVE-2006-1058 - BusyBox passwd command fails to generate password with salt (#187386) - add -minimal-toc option - add RPM_OPT_FLAGS - remove asm/page.h used sysconf command to get PAGE_SIZE - add overfl patch to aviod Buffer warning * Fri Feb 10 2006 Jesse Keating - 1:1.01-2.2.1 - bump again for double-long bug on ppc(64) * Tue Feb 07 2006 Jesse Keating - 1:1.01-2.2 - rebuilt for new gcc4.1 snapshot and glibc changes * Fri Dec 09 2005 Jesse Keating - rebuilt * Thu Oct 13 2005 Daniel Walsh - 1.01-2 - Add sepol for linking load_policy * Thu Sep 1 2005 Ivana Varekova - 1.01-1 - update to 1.01 * Tue May 11 2005 Ivana Varekova - 1.00-5 - add debug files to debug_package * Mon Mar 7 2005 Ivana Varekova - 1.00-4 - rebuilt * Wed Jan 26 2005 Ivana Varekova - 1.00-3 - update to 1.00 - fix bug #145681 - rebuild * Thu Jan 13 2005 Jeremy Katz - 1.00.rc1-6 - enable ash as the shell in busybox-anaconda * Sat Oct 2 2004 Bill Nottingham - 1.00.rc1-5 - fix segfault in SELinux patch (#134404, #134406) * Fri Sep 17 2004 Phil Knirsch - 1.00.rc1-4 - Fixed double free in freecon() call (#132809) * Fri Sep 10 2004 Daniel Walsh - 1.00.rc1-3 - Add CONFIG_STATIC=y for static builds * Wed Aug 25 2004 Jeremy Katz - 1.00.rc1-2 - rebuild * Fri Jun 25 2004 Dan Walsh 1.00-pre10.1 - Add BuildRequires libselinux-devel - Update to latest from upstream * Tue Jun 15 2004 Elliot Lee - rebuilt * Tue May 11 2004 Karsten Hopp 1.00.pre8-4 - add mknod to busybox-anaconda * Wed Apr 21 2004 Karsten Hopp 1.00.pre8-3 - fix LS_COLOR in anaconda patch * Tue Mar 23 2004 Jeremy Katz 1.00.pre8-2 - add awk to busybox-anaconda * Sat Mar 20 2004 Dan Walsh 1.00-pre8.1 - Update with latest patch. - Turn off LS_COLOR in static patch * Fri Feb 13 2004 Elliot Lee - rebuilt * Tue Jan 27 2004 Dan Walsh 1.00-pre5.2 - Fix is_selinux_enabled calls * Mon Dec 29 2003 Dan Walsh 1.00-pre5.1 -Latest update * Wed Nov 26 2003 Dan Walsh 1.00-pre3.2 - Add insmod * Mon Sep 15 2003 Dan Walsh 1.00-pre3.1 - Upgrade to pre3 * Thu Sep 11 2003 Dan Walsh 1.00.2 - Upgrade selinux support * Wed Jul 23 2003 Dan Walsh 1.00.1 - Upgrade to 1.00 package * Wed Jul 16 2003 Elliot Lee 0.60.5-10 - Rebuild * Mon Jul 14 2003 Jeremy Katz 0.60.5-9 - rebuild * Mon Jul 14 2003 Jeremy Katz 0.60.5-8 - add dmesg to busybox-anaconda * Wed Jun 04 2003 Elliot Lee - rebuilt * Wed Jan 22 2003 Tim Powers - rebuilt * Mon Jan 13 2003 Jeremy Katz 0.60.5-5 - lost nolock for anaconda mount when rediffing, it returns (#81764) * Mon Jan 6 2003 Dan Walsh 0.60.5-4 - Upstream developers wanted to eliminate the use of floats * Thu Jan 3 2003 Dan Walsh 0.60.5-3 - Fix free to work on large memory machines. * Sat Dec 28 2002 Jeremy Katz 0.60.5-2 - update Config.h for anaconda build to include more useful utils * Thu Dec 19 2002 Dan Walsh 0.60.5-1 - update latest release * Thu Dec 19 2002 Dan Walsh 0.60.2-8 - incorporate hammer changes * Fri Jun 21 2002 Tim Powers - automated rebuild * Thu May 23 2002 Tim Powers - automated rebuild * Mon May 06 2002 Florian La Roche - fix compilation on mainframe * Tue Apr 2 2002 Jeremy Katz - fix static busybox (#60701) * Thu Feb 28 2002 Jeremy Katz - don't include mknod in busybox.anaconda so we get collage mknod * Fri Feb 22 2002 Jeremy Katz - rebuild in new environment * Wed Jan 30 2002 Jeremy Katz - update to 0.60.2 - include more pieces for the anaconda version so that collage can go away - make the mount in busybox.anaconda default to -onolock * Wed Jan 09 2002 Tim Powers `- automated rebuild * Mon Jul 9 2001 Tim Powers - don't obsolete sash - fix URL and spelling in desc. to satisfy rpmlint * Thu Jul 05 2001 Florian La Roche - add missing defattr for anaconda subpackage * Thu Jun 28 2001 Erik Troan - initial build for Red Hat