]> git.pld-linux.org Git - packages/busybox.git/blobdiff - busybox.spec
- rel 3; show usage help in initrd applets when wrongly called
[packages/busybox.git] / busybox.spec
index 11f5ee481de9300b2de0dbff9dc16c31ac8b4611..7e408cb9af7cf59d857aaa924a6a77dd04e06ebb 100644 (file)
@@ -1,15 +1,23 @@
 # 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)
+# - review patch 3. Updated to 1.17.3, but the code changed so much it's unclear
+#   if it still serves a purpose
+# - 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       # use alternative config (defined by cfgfile)
 %bcond_with    linkfl          # creates links to busybox binary and puts them into file list
+%bcond_without static          # don't build static version
+%bcond_without initrd          # don't build initrd version
+%bcond_with    dietlibc        # build dietlibc-based initrd and static versions
+%bcond_with    glibc           # build glibc-based initrd and static versions
+%bcond_with    verbose         # verbose build
 # 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
 # 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        # build dietlibc-based initrd version
-%bcond_with    glibc           # build glibc-based initrd version
-#
-%ifnarch %{ix86} %{x8664} ppc sparc64
+%ifnarch %{ix86} %{x8664} ppc
 %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
+Summary:       Set of common Unix utilities for embeded systems
+Summary(pl.UTF-8):     Zestaw narzędzi uniksowych dla systemów wbudowanych
+Summary(pt_BR.UTF-8):  BusyBox é um conjunto de utilitários UNIX em um único binário
 Name:          busybox
-Version:       1.4.0
-Release:       1
+# stable line only
+Version:       1.18.3
+Release:       3
 License:       GPL
 Group:         Applications
 Source0:       http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: f24a3c1e08bc55ec44381d588e8bcced
+# Source0-md5: 660af4d44661d32b22025a66f4f78df2
 Source1:       %{name}.config
 Source2:       %{name}-initrd.config
 %{?with_altconfig:Source3:     %{cfgfile}}
+Patch100:      busybox-1.18.3-buildsys.patch
+Patch101:      busybox-1.18.3-modutils24.patch
+Patch102:      busybox-1.18.3-wget.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}-noerror.patch
+Patch4:                %{name}-kernel_headers.patch
+Patch5:                %{name}-insmod-morearchs.patch
+Patch6:                %{name}-dhcp.patch
+Patch7:                %{name}-fix_64_archs.patch
+Patch9:                %{name}-ash-export-PATH.patch
 URL:           http://www.busybox.net/
 BuildRequires: gcc >= 3.2
 BuildRequires: perl-tools-pod
 BuildRequires: rpmbuild(macros) >= 1.333
-%{?with_static:BuildRequires:  glibc-static}
-%if %{with initrd}
+%if %{with initrd} || %{with static}
        %if %{with dietlibc}
 BuildRequires: dietlibc-static
        %else
@@ -69,21 +71,20 @@ BuildRequires:      glibc-static
 BuildRequires: cross%{_target_base_arch}-uClibc-static
 %else
        %ifarch ppc %{x8664}
-BuildRequires: uClibc-static >= 2:0.9.29
+BuildRequires: uClibc-static >= 3:0.9.30.1
        %else
-BuildRequires: uClibc-static >= 2:0.9.21
+BuildRequires: uClibc-static >= 3:0.9.30.1
        %endif
 %endif
                %endif
        %endif
 %endif
+%{?with_sh_prov:Provides:      /bin/sh}
 %{?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
 
 %if "%{_target_base_arch}" != "%{_arch}"
        %define CrossOpts CROSS="%{_target_cpu}-pld-linux-"
@@ -91,6 +92,8 @@ BuildRoot:    %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
        %define CrossOpts %{nil}
 %endif
 
+%define                filterout_ld    -Wl,-z,(combreloc|relro)
+
 %description
 BusyBox combines tiny versions of many common UNIX utilities into a
 single small executable. It provides minimalist replacements for most
@@ -108,57 +111,59 @@ customize your embedded systems. To create a working system, just add
 a kernel, a shell (such as ash), and an editor (such as elvis-tiny or
 ae).
 
-%description -l pl
-BusyBox sk³ada ma³e wersje wielu narzêdzi uniksowych w jeden ma³y plik
-wykonywalny. Zapewnia minimalne zastêpniki wiêkszo¶ci narzêdzi
+%description -l pl.UTF-8
+BusyBox składa małe wersje wielu narzędzi uniksowych w jeden mały plik
+wykonywalny. Zapewnia minimalne zastępniki większości narzędzi
 zawartych w pakietach fileutils, shellutils, findutils, grep, gzip,
-tar itp. BusyBox daje w miarê kompletne ¶rodowisko POSIX dla ma³ych
-lub wbudowanych systemów. Narzêdzia maj± mniej opcji ni¿ ich pe³ne
-odpowiedniki GNU, ale maj± podstawow± funkcjonalno¶æ. Do dzia³aj±cego
+tar itp. BusyBox daje w miarę kompletne środowisko POSIX dla małych
+lub wbudowanych systemów. Narzędzia mają mniej opcji niż ich pełne
+odpowiedniki GNU, ale mają podstawową funkcjonalność. Do działającego
 systemu potrzeba jeszcze tylko kernela, shella (np. ash) oraz edytora
 (np. elvis-tiny albo ae).
 
-%description -l pt_BR
-BusyBox combina versões reduzidas de muitos utilitários UNIX num único
-executável, fornecendo substitutos minimalistas para muitos dos
-executáveis encontrados em pacotes como fileutils, shellutils,
-findutils, textutils, grep, gzip, tar, etc. Os utilitários do BusyBox
-em geral têm menos opções que os utilitários GNU, mas as opções
+%description -l pt_BR.UTF-8
+BusyBox combina versões reduzidas de muitos utilitários UNIX num único
+executável, fornecendo substitutos minimalistas para muitos dos
+executáveis encontrados em pacotes como fileutils, shellutils,
+findutils, textutils, grep, gzip, tar, etc. Os utilitários do BusyBox
+em geral têm menos opções que os utilitários GNU, mas as opções
 implementadas comportam-se de maneira similar aos equivalentes GNU.
 
 %package static
 Summary:       Static busybox
-Summary(pl):   Statycznie skonsolidowany busybox
+Summary(pl.UTF-8):     Statycznie skonsolidowany busybox
 Group:         Applications
 
 %description static
 Static busybox.
 
-%description static -l pl
+%description static -l pl.UTF-8
 Statycznie skonsolidowany busybox.
 
 %package initrd
 Summary:       Static busybox for initrd
-Summary(pl):   Statycznie skonsolidowany busybox dla initrd
-Group:         Applications
-Conflicts:     geninitrd < 3075
+Summary(pl.UTF-8):     Statycznie skonsolidowany busybox dla initrd
+Group:         Base
+Conflicts:     geninitrd < 10000.20
 
 %description initrd
 Static busybox for initrd.
 
-%description initrd -l pl
+%description initrd -l pl.UTF-8
 Statycznie skonsolidowany busybox dla initrd.
 
 %prep
 %setup -q
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
 %patch1 -p1
 %patch2 -p1
-%patch3 -p1
+#%patch3 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
-%patch8 -p1
 %patch9 -p1
 
 %build
@@ -167,19 +172,20 @@ install -d built
 install %{SOURCE2} .config
 %{__make} oldconfig
 %{__make} \
+       %{?with_verbose:V=1} \
        CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
        LDFLAGS="%{ld_rpmldflags} -static" \
 %if %{with dietlibc}
        LIBRARIES="-lrpc" \
-       CC="diet gcc"
+       CC="diet %{__cc}"
 %else
 %if %{with glibc}
        %{CrossOpts} \
        CC="%{__cc}"
 %else
-    %if "%{_target_base_arch}" != "%{_arch}"
+       %if "%{_target_base_arch}" != "%{_arch}"
        CROSS="%{_target_cpu}-uclibc-" \
-    %endif
+       %endif
        CC="%{_target_cpu}-uclibc-gcc"
 %endif
 %endif
@@ -198,32 +204,49 @@ install %{SOURCE1} .config
 %if %{with static}
 %{__make} oldconfig
 %{__make} \
-       %{CrossOpts} \
-       CFLAGS_EXTRA="%{rpmcflags}" \
+       %{?with_verbose:V=1} \
+       CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
        LDFLAGS="%{ld_rpmldflags} -static" \
+%if %{with dietlibc}
+       LIBRARIES="-lrpc" \
+       CC="diet %{__cc}"
+%else
+%if %{with glibc}
+       %{CrossOpts} \
        CC="%{__cc}"
+%else
+       %if "%{_target_base_arch}" != "%{_arch}"
+       CROSS="%{_target_cpu}-uclibc-" \
+       %endif
+       CC="%{_target_cpu}-uclibc-gcc"
+%endif
+%endif
+
 mv -f busybox built/busybox.static
 %{__make} clean
 %endif
 
 %{__make} oldconfig
 %{__make} \
+       %{?with_verbose:V=1} \
        %{CrossOpts} \
        CFLAGS_EXTRA="%{rpmcflags}" \
        LDFLAGS="%{ld_rpmldflags}" \
        CC="%{__cc}"
-%{__make} busybox.links docs/BusyBox.1
+%{__make} busybox.links docs/busybox.1
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_initrd_bindir},%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
 
 %{?with_static:install built/busybox.static $RPM_BUILD_ROOT%{_bindir}}
-%{?with_initrd:install built/busybox.initrd $RPM_BUILD_ROOT%{_initrd_bindir}/initrd-busybox}
+%if %{with initrd}
+install -d $RPM_BUILD_ROOT%{_libdir}/initrd
+install built/busybox.initrd $RPM_BUILD_ROOT%{_libdir}/initrd/busybox
+%endif
 
 install busybox.links $RPM_BUILD_ROOT%{_libdir}/busybox
-install docs/BusyBox.1 $RPM_BUILD_ROOT%{_mandir}/man1
-echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1
+install docs/busybox.1 $RPM_BUILD_ROOT%{_mandir}/man1
 
 # install links to busybox binary, when linkfl is defined
 %if %{with linkfl}
@@ -241,7 +264,7 @@ rm -rf $RPM_BUILD_ROOT
 %doc AUTHORS README .config
 
 %if %{with linkfl}
-%attr(755,root,root) /bin/*
+%attr(755,root,root) %{_bindir}/*
 %attr(755,root,root) /sbin/*
 %attr(755,root,root) %{_bindir}/*
 %attr(755,root,root) %{_sbindir}/*
@@ -261,5 +284,5 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with initrd}
 %files initrd
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_initrd_bindir}/initrd-busybox
+%attr(755,root,root) %{_libdir}/initrd/busybox
 %endif
This page took 0.064331 seconds and 4 git commands to generate.