X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=busybox.spec;h=e7df2bfb506333f9cbaad742b1274b9d00cbb6a9;hb=7f5251d7fc5d3e5a88866d3b15ff81e328694e3d;hp=d2c08eb55449c9b6de16d49334a6451f15f4f02f;hpb=ac342a9b090651fc0010ebc3c9e6f5914beb5388;p=packages%2Fbusybox.git diff --git a/busybox.spec b/busybox.spec index d2c08eb..e7df2bf 100644 --- a/busybox.spec +++ b/busybox.spec @@ -1,15 +1,24 @@ # 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 dynamic # don't build dynamic (base) version +%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_without 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 @@ -20,71 +29,73 @@ # 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 -%bcond_with verbose -# %ifnarch %{ix86} %{x8664} ppc -%define with_glibc 1 +%define with_glibc 1 +%endif +%ifarch x32 +# until uClibc builds on x32 +%undefine with_static %endif 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 # stable line only -Version: 1.12.4 -Release: 2 -License: GPL +Version: 1.24.2 +Release: 1 +License: GPL v2 Group: Applications Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2 -# Source0-md5: 5b8c427bf596732d6b6156672e6e093f +# Source0-md5: 2eaae519cac1143bcf583636a745381f Source1: %{name}.config Source2: %{name}-initrd.config %{?with_altconfig:Source3: %{cfgfile}} +Patch100: https://busybox.net/downloads/fixes-1.24.2/busybox-1.24.2-CVE-2016-2147.patch +# Patch100-md5: c45a85f5ced712743efbb683900f8c1d +Patch101: https://busybox.net/downloads/fixes-1.24.2/busybox-1.24.2-CVE-2016-2148.patch +# Patch101-md5: 850a57ca2871e370b4916161a0320a3f +Patch102: https://busybox.net/downloads/fixes-1.24.2/busybox-1.24.2-ash-recursive-heredocs.patch +# Patch102-md5: b59eb7536609db1ab5215de860d9e558 +Patch0: x32.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}-inotify.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} +BuildRequires: rpmbuild(macros) >= 1.652 +%if %{with initrd} || %{with static} %if %{with dietlibc} BuildRequires: dietlibc-static %else %if %{with glibc} BuildRequires: glibc-static %else -%if "%{_target_base_arch}" != "%{_arch}" +%if "%{_target_base_arch}" != "%{_host_base_arch}" 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}" +%if "%{_target_base_arch}" != "%{_host_base_arch}" %define CrossOpts CROSS="%{_target_cpu}-pld-linux-" %else %define CrossOpts %{nil} @@ -141,8 +152,8 @@ Statycznie skonsolidowany busybox. %package initrd Summary: Static busybox for initrd Summary(pl.UTF-8): Statycznie skonsolidowany busybox dla initrd -Group: Applications -Conflicts: geninitrd < 3075 +Group: Base +Conflicts: geninitrd < 10000.20 %description initrd Static busybox for initrd. @@ -152,14 +163,18 @@ Statycznie skonsolidowany busybox dla initrd. %prep %setup -q +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 + +%patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 +#%patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 %patch9 -p1 %build @@ -170,18 +185,18 @@ install %{SOURCE2} .config %{__make} \ %{?with_verbose:V=1} \ CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \ - LDFLAGS="%{ld_rpmldflags} -static" \ + LDFLAGS="%{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}" != "%{_host_base_arch}" CROSS="%{_target_cpu}-uclibc-" \ - %endif + %endif CC="%{_target_cpu}-uclibc-gcc" %endif %endif @@ -190,7 +205,6 @@ mv -f busybox built/busybox.initrd %{__make} clean %endif - %if %{with altconfig} install %{SOURCE3} .config %else @@ -201,33 +215,55 @@ install %{SOURCE1} .config %{__make} oldconfig %{__make} \ %{?with_verbose:V=1} \ + CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \ + LDFLAGS="%{rpmldflags} -static" \ +%if %{with dietlibc} + LIBRARIES="-lrpc" \ + CC="diet %{__cc}" +%else +%if %{with glibc} %{CrossOpts} \ - CFLAGS_EXTRA="%{rpmcflags}" \ - LDFLAGS="%{ld_rpmldflags} -static" \ CC="%{__cc}" +%else + %if "%{_target_base_arch}" != "%{_host_base_arch}" + CROSS="%{_target_cpu}-uclibc-" \ + %endif + CC="%{_target_cpu}-uclibc-gcc" +%endif +%endif + mv -f busybox built/busybox.static %{__make} clean %endif +%if %{with dynamic} %{__make} oldconfig %{__make} \ %{?with_verbose:V=1} \ %{CrossOpts} \ CFLAGS_EXTRA="%{rpmcflags}" \ - LDFLAGS="%{ld_rpmldflags}" \ + LDFLAGS="%{rpmldflags}" \ CC="%{__cc}" -%{__make} busybox.links docs/BusyBox.1 +%{__make} busybox.links docs/busybox.1 +%endif %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_initrd_bindir},%{_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 static} +install -d $RPM_BUILD_ROOT%{_bindir} +install built/busybox.static $RPM_BUILD_ROOT%{_bindir} +%endif + +%if %{with initrd} +install -d $RPM_BUILD_ROOT%{_libdir}/initrd +install built/busybox.initrd $RPM_BUILD_ROOT%{_libdir}/initrd/busybox +%endif +%if %{with dynamic} +install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_libdir}/busybox} 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} @@ -236,10 +272,12 @@ echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1 %else install busybox $RPM_BUILD_ROOT%{_bindir} %endif +%endif %clean rm -rf $RPM_BUILD_ROOT +%if %{with dynamic} %files %defattr(644,root,root,755) %doc AUTHORS README .config @@ -254,7 +292,8 @@ rm -rf $RPM_BUILD_ROOT %endif %{_libdir}/busybox -%{_mandir}/man1/* +%{_mandir}/man1/busybox.1* +%endif %if %{with static} %files static @@ -265,5 +304,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