-
+#
+# TODO:
+# - sparc64 modules support in sparc(32) version
+# - make internal commands work even if busybox is not in /bin/busybox
+#
+#
+# Conditional build:
# alternative busybox config file (replaces default one) you should
# define cfgfile macro, i.e.
#
-# rpm --rebuild busybox.*.src.rpm --with altconfig --define "cfgfile bb-emb-config.h"
-%bcond_with altconfig
-
-%bcond_with linkfl # creates links to busybox binary and puts them into file list
-
+# rpm --rebuild busybox.*.src.rpm --with altconfig --define "cfgfile bb-emb-config.h"
+%bcond_with altconfig # use alternative config (defined by cfgfile)
+%bcond_with linkfl # creates links to busybox binary and puts them into file list
# Options below are useful, when you want fileutils and grep providing.
# For example, ash package requires fileutils and grep.
-%bcond_with fileutl_prov # adds fileutils providing
-%bcond_with grep_prov # adds grep providing
-
+%bcond_with fileutl_prov # adds fileutils providing
+%bcond_with grep_prov # adds grep providing
# Option below is useful, when busybox is built with shell support.
-%bcond_with sh_prov # adds /bin/sh providing
-
+%bcond_with sh_prov # adds /bin/sh providing
# WARNING! Shell, filetuils and grep providing may depend on config file!
# Fileutils, grep and shell provided with busybox have not such
# functionality as their GNU countenders.
-
-%bcond_without static # don't build static version
-%bcond_without initrd # don't build initrd version
-
-%bcond_with dietlibc
-%bcond_with glibc
-
-%ifnarch %{ix86}
+#
+%bcond_without static # don't build static version
+%bcond_without initrd # don't build initrd version
+%bcond_with dietlibc # build dietlibc-based initrd version
+%bcond_with glibc # build glibc-based initrd version
+#
+%ifnarch %{ix86} ppc
%define with_glibc 1
%endif
-
-%define pre pre4
+%ifarch ppc
+%undefine with_dietlibc
+%endif
Summary: Set of common unix utils for embeded systems
Summary(pl): Zestaw narzêdzi uniksowych dla systemów wbudowanych
Summary(pt_BR): BusyBox é um conjunto de utilitários UNIX em um único binário
Name: busybox
-Version: 1.00
-Release: 0.%{pre}.1
+Version: 1.1.1
+Release: 1
License: GPL
Group: Applications
-Source0: http://www.busybox.net/downloads/%{name}-%{version}-pre4.tar.bz2
-# Source0-md5: e423335994b5cd2d078dad3492768d51
+Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
+# Source0-md5: ff1ade47255c643b68c9113c267ce712
Source1: %{name}.config
Source2: %{name}-initrd.config
%{?with_altconfig:Source3: %{cfgfile}}
Patch0: %{name}-logconsole.patch
-Patch1: %{name}-print_ascii.patch
-Patch2: %{name}-printf-gettext.patch
-Patch3: %{name}-loadfont.patch
-Patch4: %{name}-pivot_root.patch
-Patch5: %{name}-malloc.patch
-Patch6: %{name}-raid_start.patch
-Patch7: %{name}-insmod_ng.patch
-Patch8: %{name}-force-dietlibc.patch
-Patch9: %{name}-ash_exec.patch
-Patch10: %{name}-amd64.patch
+Patch1: %{name}-printf-gettext.patch
+Patch2: %{name}-loadfont.patch
+Patch3: %{name}-force-dietlibc.patch
+Patch4: %{name}-ash_exec.patch
+Patch5: %{name}-kernel_headers.patch
+Patch6: %{name}-insmod-morearchs.patch
+Patch7: %{name}-dhcp.patch
+Patch8: %{name}-fix_64_archs.patch
URL: http://www.busybox.net/
-%{?with_fileutl_prov:Provides: fileutils}
-%{?with_grep_prov:Provides: grep}
-%{?with_sh_prov:Provides: /bin/sh}
+BuildRequires: gcc >= 3.2
%{?with_static:BuildRequires: glibc-static}
%if %{with initrd}
- %if %{with dietlibc}
+ %if %{with dietlibc}
BuildRequires: dietlibc-static
- %else
- %if %{with glibc}
+ %else
+ %if %{with glibc}
BuildRequires: glibc-static
- %else
+ %else
+%ifarch ppc
+BuildRequires: uClibc-static > 0.9.28
+%else
BuildRequires: uClibc-static >= 0.9.21
- %endif
- %endif
%endif
+ %endif
+ %endif
+%endif
+%{?with_fileutl_prov:Provides: fileutils}
+%{?with_grep_prov:Provides: grep}
+%{?with_sh_prov:Provides: /bin/sh}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define _bindir /bin
%define _initrd_bindir /bin
%description
Summary: Static busybox for initrd
Summary(pl): Statycznie skonsolidowany busybox dla initrd
Group: Applications
+Conflicts: geninitrd < 3075
%description initrd
Static busybox for initrd.
Statycznie skonsolidowany busybox dla initrd.
%prep
-%setup -q -n %{name}-%{version}-%{pre}
+%setup -q
%patch0 -p1
%patch1 -p1
-#X %patch2 -p1 // UPDATE ME
+%patch2 -p1
%patch3 -p1
%patch4 -p1
-#%patch5 -p1 // not needed
+%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
-%patch10 -p1
%build
install %{SOURCE1} .config
%if %{with static}
%{__make} oldconfig
-%{__make} \
+%{__make} \
CFLAGS_EXTRA="%{rpmcflags}" \
LDFLAGS="%{rpmldflags} -static" \
CC="%{__cc}"
# install links to busybox binary, when linkfl is defined
%if %{with linkfl}
-make install \
+%{__make} install \
PREFIX=$RPM_BUILD_ROOT
%else
install busybox $RPM_BUILD_ROOT%{_bindir}
%files
%defattr(644,root,root,755)
-%doc AUTHORS TODO Changelog README .config
+%doc AUTHORS README .config
%if %{with linkfl}
%attr(755,root,root) /bin/*