]> git.pld-linux.org Git - packages/busybox.git/blobdiff - busybox.spec
- updated to 1.3.1, updated configs
[packages/busybox.git] / busybox.spec
index 245788e93c54333d966e6f336399447f959fbd06..6e43c89a4e9d807549bd2dd14209bebdb61a8aa7 100644 (file)
@@ -1,61 +1,98 @@
-
-# alternative busybox config file (replaces default one) you should 
+# TODO:
+#      - sparc64 modules support in sparc(32), x86_64 modules support in i386 version
+#      - make internal commands work even if busybox is not in /bin/busybox (initrd)
+#        or when /proc is not mounted (static / normal)
+#
+# 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
-
-# WARNING! Shell, filetuils and grep providing may depend on config file!
+%bcond_with    sh_prov         # adds /bin/sh providing
+# WARNING! Shell, fileutils 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
-
-%define        pre     pre2
+#
+%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} %{x8664} ppc sparc64
+%define with_glibc 1
+%endif
+%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.3.1
+Release:       1
 License:       GPL
 Group:         Applications
-Source0:       http://www.busybox.net/downloads/%{name}-%{version}-pre2.tar.bz2
-# Source0-md5: 06e433389a8b34ce1031a144ba5677d1
+Source0:       http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
+# Source0-md5: 571531cfa83726947ccb566de017ad4f
 Source1:       %{name}.config
 Source2:       %{name}-initrd.config
 %{?with_altconfig:Source3:     %{cfgfile}}
-Patch0:                %{name}-logconsole.patch
-Patch1:                %{name}-tee.patch
-Patch3:                %{name}-printf-gettext.patch
-Patch4:                %{name}-loadfont.patch
-Patch5:                %{name}-pivot_root.patch
-Patch6:                %{name}-malloc.patch
-Patch7:                %{name}-raid_start.patch
-Patch8:                %{name}-insmod_ng.patch
-Patch100:      %{name}-config.patch
-Patch101:      %{name}-initrd-config.patch
+Patch1:                %{name}-logconsole.patch
+Patch2:                %{name}-printf-gettext.patch
+Patch3:                %{name}-loadfont.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
+Patch9:                %{name}-LFS.patch
+Patch10:       %{name}-noshadow.patch
 URL:           http://www.busybox.net/
+BuildRequires: gcc >= 3.2
+BuildRequires: perl-tools-pod
+%{?with_static:BuildRequires:  glibc-static}
+%if %{with initrd}
+       %if %{with dietlibc}
+BuildRequires: dietlibc-static
+       %else
+               %if %{with glibc}
+BuildRequires: glibc-static
+               %else
+%if "%{_target_base_arch}" != "%{_arch}"
+BuildRequires: cross%{_target_base_arch}-uClibc-static
+%else
+       %ifarch ppc %{x8664}
+BuildRequires: uClibc-static >= 2:0.9.29
+       %else
+BuildRequires: uClibc-static >= 2:0.9.21
+       %endif
+%endif
+               %endif
+       %endif
+%endif
 %{?with_fileutl_prov:Provides: fileutils}
 %{?with_grep_prov:Provides:    grep}
 %{?with_sh_prov:Provides:      /bin/sh}
-%{?with_static:BuildRequires:  glibc-static}
-%{?with_initrd:BuildRequires:  %{?with_dietlibc:dietlibc}%{?!with_dietlibc:uClibc}-static}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                _bindir         /bin
+%define                _initrd_bindir  /bin
+# ld is used to link applets
+%define                filterout_ld    -Wl,--as-needed
+
+%if "%{_target_base_arch}" != "%{_arch}"
+       %define CrossOpts CROSS="%{_target_cpu}-pld-linux-"
+%else
+       %define CrossOpts %{nil}
+%endif
+
 %description
 BusyBox combines tiny versions of many common UNIX utilities into a
 single small executable. It provides minimalist replacements for most
@@ -93,83 +130,99 @@ implementadas comportam-se de maneira similar aos equivalentes GNU.
 
 %package static
 Summary:       Static busybox
-Summary(pl):   Statycznie linkowany busybox
+Summary(pl):   Statycznie skonsolidowany busybox
 Group:         Applications
 
 %description static
 Static busybox.
 
 %description static -l pl
-Statycznie linkowany busybox.
+Statycznie skonsolidowany busybox.
 
 %package initrd
 Summary:       Static busybox for initrd
-Summary(pl):   Statycznie linkowany busybox dla initrd
+Summary(pl):   Statycznie skonsolidowany busybox dla initrd
 Group:         Applications
+Conflicts:     geninitrd < 3075
 
 %description initrd
 Static busybox for initrd.
 
 %description initrd -l pl
-Statycznie linkowany busybox dla initrd.
+Statycznie skonsolidowany busybox dla initrd.
 
 %prep
-%setup -q -n %{name}-%{version}-%{pre}
-%patch0 -p1
+%setup -q
 %patch1 -p1
-#X %patch3 -p1 // UPDATE ME
+%patch2 -p1
+%patch3 -p1
 %patch4 -p1
 %patch5 -p1
-#%patch6 -p1 // not needed
+%patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
+%patch10 -p1
 
 %build
-install %{SOURCE1} .config
-
-%if %{with altconfig}
-install %{SOURCE3} .config
-%endif
-
+install -d built
 %if %{with initrd}
 install %{SOURCE2} .config
 %{__make} oldconfig
 %{__make} \
-       CFLAGS_EXTRA="%{rpmcflags} -D_BSD_SOURCE" \
+       CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
        LDFLAGS="%{rpmldflags} -static" \
 %if %{with dietlibc}
        LIBRARIES="-lrpc" \
        CC="diet gcc"
 %else
+%if %{with glibc}
+       %{CrossOpts} \
+       CC="%{__cc}"
+%else
+    %if "%{_target_base_arch}" != "%{_arch}"
+       CROSS="%{_target_cpu}-uclibc-" \
+    %endif
        CC="%{_target_cpu}-uclibc-gcc"
 %endif
-mv -f busybox busybox.initrd
+%endif
+
+mv -f busybox built/busybox.initrd
 %{__make} clean
+%endif
+
+
+%if %{with altconfig}
+install %{SOURCE3} .config
+%else
 install %{SOURCE1} .config
 %endif
 
 %if %{with static}
 %{__make} oldconfig
-%{__make}  \
+%{__make} \
+       %{CrossOpts} \
        CFLAGS_EXTRA="%{rpmcflags}" \
        LDFLAGS="%{rpmldflags} -static" \
        CC="%{__cc}"
-mv -f busybox busybox.static
+mv -f busybox built/busybox.static
 %{__make} clean
 %endif
 
-%{__make} oldconfig 
+%{__make} oldconfig
 %{__make} \
+       %{CrossOpts} \
        CFLAGS_EXTRA="%{rpmcflags}" \
        LDFLAGS="%{rpmldflags}" \
        CC="%{__cc}"
+%{__make} busybox.links docs/BusyBox.1
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
+install -d $RPM_BUILD_ROOT{%{_initrd_bindir},%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
 
-%{?with_static:install busybox.static $RPM_BUILD_ROOT%{_bindir}}
-%{?with_initrd:install busybox.initrd $RPM_BUILD_ROOT%{_bindir}}
+%{?with_static:install built/busybox.static $RPM_BUILD_ROOT%{_bindir}}
+%{?with_initrd:install built/busybox.initrd $RPM_BUILD_ROOT%{_initrd_bindir}/initrd-busybox}
 
 install busybox.links $RPM_BUILD_ROOT%{_libdir}/busybox
 install docs/BusyBox.1 $RPM_BUILD_ROOT%{_mandir}/man1
@@ -177,7 +230,8 @@ echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1
 
 # install links to busybox binary, when linkfl is defined
 %if %{with linkfl}
-make install PREFIX=$RPM_BUILD_ROOT
+%{__make} install \
+       PREFIX=$RPM_BUILD_ROOT
 %else
 install busybox $RPM_BUILD_ROOT%{_bindir}
 %endif
@@ -187,7 +241,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS TODO Changelog README .config
+%doc AUTHORS README .config
 
 %if %{with linkfl}
 %attr(755,root,root) /bin/*
@@ -210,5 +264,5 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with initrd}
 %files initrd
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/busybox.initrd
+%attr(755,root,root) %{_initrd_bindir}/initrd-busybox
 %endif
This page took 0.045737 seconds and 4 git commands to generate.