]> git.pld-linux.org Git - packages/busybox.git/blobdiff - busybox.spec
rel 8; enable builtin sleep for initrd
[packages/busybox.git] / busybox.spec
index 8152a0b4bc893e828aa7825bf196109b216f5d82..5e3783f79629fad196edf0ee11458265e0a9b218 100644 (file)
@@ -16,9 +16,9 @@
 %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    musl            # build musl-based initrd and static versions
 %bcond_with    glibc           # build glibc-based initrd and static versions
-%bcond_with    verbose         # verbose build
+%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
 # functionality as their GNU countenders.
 #
 %ifnarch %{ix86} %{x8664} ppc
-%define with_glibc 1
+%define                with_musl       1
 %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.20.2
-Release:       3
+Version:       1.35.0
+Release:       8
 License:       GPL v2
 Group:         Applications
 Source0:       http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: e025414bc6cd79579cc7a32a45d3ae1c
+# Source0-md5: 585949b1dd4292b604b7d199866e9913
 Source1:       %{name}.config
 Source2:       %{name}-initrd.config
 %{?with_altconfig:Source3:     %{cfgfile}}
-Patch100:      http://busybox.net/downloads/fixes-1.20.2/busybox-1.20.2-kernel_ver.patch
-# Patch100-md5:        3386a2bf992f2284b86608498f4cb822
-Patch101:      http://busybox.net/downloads/fixes-1.20.2/busybox-1.20.2-pkg-config-selinux.patch
-# Patch101-md5:        a1b6587697c70808808f3693c4610884
-Patch102:      http://busybox.net/downloads/fixes-1.20.2/busybox-1.20.2-sys-resource.patch
-# Patch102-md5:        cfb5d5d7ed1414b5749f2c2ec0bf066a
-
+Patch0:                x32.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
+Patch8:                busybox-1.31.1-stime-fix.patch
 Patch9:                %{name}-ash-export-PATH.patch
+Patch10:       0001-modutils-check-ELF-header-before-calling-finit_module.patch
+Patch11:       strip-quotes.patch
 URL:           http://www.busybox.net/
 BuildRequires: gcc >= 3.2
 BuildRequires: perl-tools-pod
 BuildRequires: rpmbuild(macros) >= 1.652
+%if %{with glibc} || %{with dynamic}
+BuildRequires: libtirpc-devel
+BuildRequires: pkgconfig
+%endif
 %if %{with initrd} || %{with static}
-       %if %{with dietlibc}
-BuildRequires: dietlibc-static
+       %if %{with musl}
+BuildRequires: linux-musl-headers
+BuildRequires: musl-devel
+BuildRequires: libtirpc-musl-devel
        %else
                %if %{with glibc}
 BuildRequires: glibc-static
+BuildRequires: libcom_err-static
+BuildRequires: libtirpc-static
+BuildRequires: openssl-static
+BuildRequires: sqlite3-static
                %else
 %if "%{_target_base_arch}" != "%{_host_base_arch}"
 BuildRequires: cross%{_target_base_arch}-uClibc-static
@@ -87,8 +93,11 @@ BuildRequires:       uClibc-static >= 3:0.9.30.1
 %{?with_sh_prov:Provides:      /bin/sh}
 %{?with_fileutl_prov:Provides: fileutils}
 %{?with_grep_prov:Provides:    grep}
+Provides:      busybox-implementation = %{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                _enable_debug_packages  0
+
 %define                _bindir         /bin
 
 %if "%{_target_base_arch}" != "%{_host_base_arch}"
@@ -99,6 +108,31 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                filterout_ld    -Wl,-z,(combreloc|relro)
 
+%if %{with dynamic}
+%define                tirpcdcflags    %(pkg-config --cflags libtirpc)
+%endif
+%if %{with initrd} || %{with static}
+%if %{with musl}
+%define                tirpcscflags    -I%{_includedir}/musl/tirpc
+%endif
+%if %{with glibc}
+%define                tirpcscflags    %(pkg-config --cflags libtirpc)
+%endif
+%endif
+%if %{with glibc}
+%if %{with initrd} || %{with static}
+%define                tirpcslibs      %(pkg-config --libs --static libtirpc krb5 krb5-gssapi openssl sqlite3|sed 's/-l//g')
+%endif
+%endif
+
+%if %{with dynamic}
+%define         tirpcdlibs      %(pkg-config --libs libtirpc|sed s/-l//g)
+%endif
+
+%if %{with musl}
+%define                tirpcslibs      tirpc
+%endif
+
 %description
 BusyBox combines tiny versions of many common UNIX utilities into a
 single small executable. It provides minimalist replacements for most
@@ -150,6 +184,7 @@ Summary:    Static busybox for initrd
 Summary(pl.UTF-8):     Statycznie skonsolidowany busybox dla initrd
 Group:         Base
 Conflicts:     geninitrd < 10000.20
+Provides:      busybox-implementation = %{version}-%{release}
 
 %description initrd
 Static busybox for initrd.
@@ -159,31 +194,33 @@ Statycznie skonsolidowany busybox dla initrd.
 
 %prep
 %setup -q
-%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-
+%patch0 -p1
 %patch1 -p1
 %patch2 -p1
-#%patch3 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
+%patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
 
 %build
 install -d built
 %if %{with initrd}
 install %{SOURCE2} .config
+%if %{with musl}
+sed -i -e 's|CONFIG_FEATURE_VI_REGEX_SEARCH=y|# CONFIG_FEATURE_VI_REGEX_SEARCH is not set|g' .config
+%endif
+echo 'CONFIG_EXTRA_LDLIBS="%{?with_glibc:%{tirpcslibs}} %{?with_musl:%{tirpcslibs}}"' >> .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}"
+       EXTRA_CFLAGS="%{rpmcflags} %{?tirpcscflags} -Os -D_GNU_SOURCE %{?with_musl:-I%{_includedir}/musl} %{!?with_glibc:-fno-stack-protector}" \
+       EXTRA_LDFLAGS="%{rpmldflags} -static -Wl,-z,noexecstack %{?with_musl:-L%{_libdir}/musl}" \
+%if %{with musl}
+       CC="musl-gcc"
 %else
 %if %{with glibc}
        %{CrossOpts} \
@@ -200,21 +237,24 @@ mv -f busybox built/busybox.initrd
 %{__make} clean
 %endif
 
+%if %{with static}
 %if %{with altconfig}
 install %{SOURCE3} .config
 %else
 install %{SOURCE1} .config
+echo 'CONFIG_EXTRA_LDLIBS="%{?with_glibc:%{tirpcslibs}} %{?with_musl:%{tirpcslibs}}""' >> .config
+%endif
+%if %{with musl}
+sed -i -e 's|CONFIG_FEATURE_VI_REGEX_SEARCH=y|# CONFIG_FEATURE_VI_REGEX_SEARCH is not set|g' .config
+sed -i -e 's|CONFIG_EXTRA_COMPAT=y|# CONFIG_EXTRA_COMPAT is not set|g' .config
 %endif
-
-%if %{with static}
 %{__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}"
+       EXTRA_CFLAGS="%{rpmcflags} %{?tirpcscflags} -Os -D_GNU_SOURCE %{?with_musl:-I%{_includedir}/musl} %{!?with_glibc:-fno-stack-protector}" \
+       EXTRA_LDFLAGS="%{rpmldflags} -static -Wl,-z,noexecstack %{?with_musl:-L%{_libdir}/musl}" \
+%if %{with musl}
+       CC="musl-gcc"
 %else
 %if %{with glibc}
        %{CrossOpts} \
@@ -232,12 +272,18 @@ mv -f busybox built/busybox.static
 %endif
 
 %if %{with dynamic}
+%if %{with altconfig}
+install %{SOURCE3} .config
+%else
+install %{SOURCE1} .config
+echo 'CONFIG_EXTRA_LDLIBS="%{tirpcdlibs}"' >> .config
+%endif
 %{__make} oldconfig
 %{__make} \
        %{?with_verbose:V=1} \
        %{CrossOpts} \
-       CFLAGS_EXTRA="%{rpmcflags}" \
-       LDFLAGS="%{rpmldflags}" \
+       EXTRA_CFLAGS="%{rpmcflags} %{tirpcdcflags} %{!?with_glibc:-fno-stack-protector}" \
+       EXTRA_LDFLAGS="%{rpmldflags} -Wl,-z,noexecstack" \
        CC="%{__cc}"
 %{__make} busybox.links docs/busybox.1
 %endif
This page took 0.230113 seconds and 4 git commands to generate.