X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=busybox.spec;h=3b9165c78b2af018d5e0e6581d757868491c29af;hb=c574afd9c370699db8b5e76d6a37a3ca4ad4b39d;hp=af1071d8e620b59e3656777ac41ef31ec7179e57;hpb=e7982b0598b5fcfe9a8388f506f11c71182fc4f1;p=packages%2Fbusybox.git diff --git a/busybox.spec b/busybox.spec index af1071d..3b9165c 100644 --- a/busybox.spec +++ b/busybox.spec @@ -1,82 +1,93 @@ -# # TODO: -# - sparc64 modules support in sparc(32) version -# - make internal commands work even if busybox is not in /bin/busybox -# +# - 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" +# 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 %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! +# 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 # build dietlibc-based initrd version -%bcond_with glibc # build glibc-based initrd version -# -%ifnarch %{ix86} +%ifnarch %{ix86} %{x8664} ppc %define with_glibc 1 %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.00 -%define pre pre10 -Release: 0.%{pre}.4 +# stable line only +Version: 1.13.3 +Release: 0.1 License: GPL Group: Applications -Source0: http://www.busybox.net/downloads/%{name}-%{version}-%{pre}.tar.bz2 -# Source0-md5: e64c855f4b9e5e8c0645422c34499753 +Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2 +# Source0-md5: 0cde6d2790e790837d6d7e82faae3ca1 Source1: %{name}.config Source2: %{name}-initrd.config %{?with_altconfig:Source3: %{cfgfile}} -Patch0: %{name}-logconsole.patch -Patch1: %{name}-printf-gettext.patch -Patch2: %{name}-loadfont.patch -Patch3: %{name}-pivot_root.patch -Patch4: %{name}-raid_start.patch -Patch5: %{name}-force-dietlibc.patch -Patch6: %{name}-ash_exec.patch -Patch7: %{name}-kernel_headers.patch -Patch8: %{name}-insmod-morearchs.patch -Patch9: %{name}-readahead.patch -Patch10: %{name}-dhcp.patch +Patch1: %{name}-logconsole.patch +Patch2: %{name}-printf-gettext.patch +Patch3: %{name}-loadfont.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 -%{?with_static:BuildRequires: glibc-static} -%if %{with initrd} - %if %{with dietlibc} +BuildRequires: perl-tools-pod +BuildRequires: rpmbuild(macros) >= 1.333 +%if %{with initrd} || %{with static} + %if %{with dietlibc} BuildRequires: dietlibc-static - %else - %if %{with glibc} + %else + %if %{with glibc} BuildRequires: glibc-static - %else -BuildRequires: uClibc-static >= 0.9.21 - %endif - %endif + %else +%if "%{_target_base_arch}" != "%{_arch}" +BuildRequires: cross%{_target_base_arch}-uClibc-static +%else + %ifarch ppc %{x8664} +BuildRequires: uClibc-static >= 3:0.9.30.1 + %else +BuildRequires: uClibc-static >= 3:0.9.30.1 + %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 +%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 @@ -94,50 +105,49 @@ 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 +Summary(pl.UTF-8): Statycznie skonsolidowany busybox dla initrd Group: Applications Conflicts: geninitrd < 3075 %description initrd Static busybox for initrd. -%description initrd -l pl +%description initrd -l pl.UTF-8 Statycznie skonsolidowany busybox dla initrd. %prep -%setup -q -n %{name}-%{version}-%{pre} -%patch0 -p1 +%setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -145,61 +155,83 @@ Statycznie skonsolidowany busybox dla initrd. %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 %patch9 -p1 -%patch10 -p1 %build -install %{SOURCE1} .config - +install -d built %if %{with initrd} install %{SOURCE2} .config %{__make} oldconfig %{__make} \ - CFLAGS_EXTRA="%{rpmcflags} -D_BSD_SOURCE" \ - LDFLAGS="%{rpmldflags} -static" \ + %{?with_verbose:V=1} \ + CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \ + LDFLAGS="%{ld_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 %endif -mv -f busybox busybox.initrd +mv -f busybox built/busybox.initrd %{__make} clean -install %{SOURCE1} .config %endif + %if %{with altconfig} install %{SOURCE3} .config +%else +install %{SOURCE1} .config %endif %if %{with static} %{__make} oldconfig -%{__make} \ - CFLAGS_EXTRA="%{rpmcflags}" \ - LDFLAGS="%{rpmldflags} -static" \ +%{__make} \ + %{?with_verbose:V=1} \ + CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \ + LDFLAGS="%{ld_rpmldflags} -static" \ +%if %{with dietlibc} + LIBRARIES="-lrpc" \ + CC="diet gcc" +%else +%if %{with glibc} + %{CrossOpts} \ CC="%{__cc}" -mv -f busybox busybox.static +%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="%{rpmldflags}" \ + LDFLAGS="%{ld_rpmldflags}" \ CC="%{__cc}" +%{__make} busybox.links docs/BusyBox.1 %install rm -rf $RPM_BUILD_ROOT 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%{_initrd_bindir}/initrd-busybox} +%{?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 @@ -218,7 +250,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc AUTHORS Changelog README .config +%doc AUTHORS README .config %if %{with linkfl} %attr(755,root,root) /bin/*