]> git.pld-linux.org Git - packages/busybox.git/blame - busybox.spec
- BR uClibc-static >= 3:0.9.30.1 (it has combreloc|relro filtering built in)
[packages/busybox.git] / busybox.spec
CommitLineData
e7982b05 1# TODO:
9296731a 2# - sparc64 modules support in sparc(32), x86_64 modules support in i386 version
b45e83f9 3# - make internal commands work even if busybox is not in /bin/busybox (initrd)
4# or when /proc is not mounted (static / normal)
598da0d3 5#
2678f462 6# Conditional build:
b5011fd7 7# alternative busybox config file (replaces default one) you should
4a69c6c5 8# define cfgfile macro, i.e.
d635bde0 9#
6f6b5afa 10# rpm --rebuild busybox.*.src.rpm --with altconfig --define "cfgfile bb-emb-config.h"
2678f462
JB
11%bcond_with altconfig # use alternative config (defined by cfgfile)
12%bcond_with linkfl # creates links to busybox binary and puts them into file list
3637c580
JR
13%bcond_without static # don't build static version
14%bcond_without initrd # don't build initrd version
15%bcond_with dietlibc # build dietlibc-based initrd and static versions
16%bcond_with glibc # build glibc-based initrd and static versions
17%bcond_with verbose # verbose build
18#
d635bde0 19# Options below are useful, when you want fileutils and grep providing.
20# For example, ash package requires fileutils and grep.
2678f462
JB
21%bcond_with fileutl_prov # adds fileutils providing
22%bcond_with grep_prov # adds grep providing
d635bde0 23# Option below is useful, when busybox is built with shell support.
2678f462 24%bcond_with sh_prov # adds /bin/sh providing
6b50dd3e 25# WARNING! Shell, fileutils and grep providing may depend on config file!
d635bde0 26# Fileutils, grep and shell provided with busybox have not such
27# functionality as their GNU countenders.
2678f462 28#
c15e3058 29%ifnarch %{ix86} %{x8664} ppc
1735ff25
MM
30%define with_glibc 1
31%endif
dce89576 32Summary: Set of common Unix utilities for embeded systems
718bff43
ER
33Summary(pl.UTF-8): Zestaw narzędzi uniksowych dla systemów wbudowanych
34Summary(pt_BR.UTF-8): BusyBox é um conjunto de utilitários UNIX em um único binário
ee61dafa 35Name: busybox
586f52e3 36# stable line only
3637c580
JR
37Version: 1.13.3
38Release: 0.1
ee61dafa 39License: GPL
d79d7625 40Group: Applications
693dc2a0 41Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
3637c580 42# Source0-md5: 0cde6d2790e790837d6d7e82faae3ca1
4f8fe04f
AM
43Source1: %{name}.config
44Source2: %{name}-initrd.config
8f98fac8 45%{?with_altconfig:Source3: %{cfgfile}}
b2b9509f 46Patch1: %{name}-logconsole.patch
47Patch2: %{name}-printf-gettext.patch
48Patch3: %{name}-loadfont.patch
29a4a582
JR
49Patch4: %{name}-kernel_headers.patch
50Patch5: %{name}-insmod-morearchs.patch
51Patch6: %{name}-dhcp.patch
52Patch7: %{name}-fix_64_archs.patch
29a4a582 53Patch9: %{name}-ash-export-PATH.patch
87902b66 54URL: http://www.busybox.net/
255676bf 55BuildRequires: gcc >= 3.2
839c36a5 56BuildRequires: perl-tools-pod
02cf2722 57BuildRequires: rpmbuild(macros) >= 1.333
ef0df9c1 58%if %{with initrd} || %{with static}
6f6b5afa 59 %if %{with dietlibc}
1735ff25 60BuildRequires: dietlibc-static
6f6b5afa 61 %else
62 %if %{with glibc}
1735ff25 63BuildRequires: glibc-static
6f6b5afa 64 %else
9922ba41 65%if "%{_target_base_arch}" != "%{_arch}"
66BuildRequires: cross%{_target_base_arch}-uClibc-static
9a45af3a 67%else
9922ba41 68 %ifarch ppc %{x8664}
c574afd9 69BuildRequires: uClibc-static >= 3:0.9.30.1
9922ba41 70 %else
c574afd9 71BuildRequires: uClibc-static >= 3:0.9.30.1
9922ba41 72 %endif
9a45af3a 73%endif
6f6b5afa 74 %endif
75 %endif
1735ff25 76%endif
2678f462
JB
77%{?with_fileutl_prov:Provides: fileutils}
78%{?with_grep_prov:Provides: grep}
79%{?with_sh_prov:Provides: /bin/sh}
ee61dafa
MM
80BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81
e7982b05 82%define _bindir /bin
fc11b50f
AM
83%define _initrd_bindir /bin
84
9922ba41 85%if "%{_target_base_arch}" != "%{_arch}"
86 %define CrossOpts CROSS="%{_target_cpu}-pld-linux-"
87%else
88 %define CrossOpts %{nil}
89%endif
90
ee61dafa 91%description
65512310 92BusyBox combines tiny versions of many common UNIX utilities into a
93single small executable. It provides minimalist replacements for most
94of the utilities you usually find in fileutils, shellutils, findutils,
95textutils, grep, gzip, tar, etc. BusyBox provides a fairly complete
96POSIX environment for any small or embedded system. The utilities in
97BusyBox generally have fewer options than their full-featured GNU
98cousins; however, the options that are included provide the expected
99functionality and behave very much like their GNU counterparts.
100
101BusyBox has been written with size-optimization and limited resources
102in mind. It is also extremely modular so you can easily include or
103exclude commands (or features) at compile time. This makes it easy to
104customize your embedded systems. To create a working system, just add
105a kernel, a shell (such as ash), and an editor (such as elvis-tiny or
106ae).
ee61dafa 107
c499e458
JR
108%description -l pl.UTF-8
109BusyBox składa małe wersje wielu narzędzi uniksowych w jeden mały plik
110wykonywalny. Zapewnia minimalne zastępniki większości narzędzi
b7f899e9 111zawartych w pakietach fileutils, shellutils, findutils, grep, gzip,
c499e458
JR
112tar itp. BusyBox daje w miarę kompletne środowisko POSIX dla małych
113lub wbudowanych systemów. Narzędzia mają mniej opcji niż ich pełne
114odpowiedniki GNU, ale mają podstawową funkcjonalność. Do działającego
b7f899e9
JB
115systemu potrzeba jeszcze tylko kernela, shella (np. ash) oraz edytora
116(np. elvis-tiny albo ae).
117
c499e458
JR
118%description -l pt_BR.UTF-8
119BusyBox combina versões reduzidas de muitos utilitários UNIX num único
120executável, fornecendo substitutos minimalistas para muitos dos
121executáveis encontrados em pacotes como fileutils, shellutils,
122findutils, textutils, grep, gzip, tar, etc. Os utilitários do BusyBox
123em geral têm menos opções que os utilitários GNU, mas as opções
68092394 124implementadas comportam-se de maneira similar aos equivalentes GNU.
125
34ec6041
JB
126%package static
127Summary: Static busybox
718bff43 128Summary(pl.UTF-8): Statycznie skonsolidowany busybox
34ec6041 129Group: Applications
34ec6041
JB
130
131%description static
132Static busybox.
133
c499e458 134%description static -l pl.UTF-8
dfafd31f 135Statycznie skonsolidowany busybox.
34ec6041 136
52db7bd4
MM
137%package initrd
138Summary: Static busybox for initrd
718bff43 139Summary(pl.UTF-8): Statycznie skonsolidowany busybox dla initrd
52db7bd4 140Group: Applications
e301059c 141Conflicts: geninitrd < 3075
52db7bd4
MM
142
143%description initrd
144Static busybox for initrd.
145
c499e458 146%description initrd -l pl.UTF-8
dfafd31f 147Statycznie skonsolidowany busybox dla initrd.
52db7bd4 148
ee61dafa 149%prep
693dc2a0 150%setup -q
0b555ee8
JB
151%patch1 -p1
152%patch2 -p1
b2b9509f 153%patch3 -p1
0cf45dc5 154%patch4 -p1
0b555ee8 155%patch5 -p1
5a7abf9a 156%patch6 -p1
0b555ee8 157%patch7 -p1
586f52e3 158%patch9 -p1
ea0cda84 159
ee61dafa 160%build
839c36a5 161install -d built
52db7bd4 162%if %{with initrd}
4f8fe04f
AM
163install %{SOURCE2} .config
164%{__make} oldconfig
52db7bd4 165%{__make} \
91a4c8e3 166 %{?with_verbose:V=1} \
95f61a42 167 CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
02cf2722 168 LDFLAGS="%{ld_rpmldflags} -static" \
27ca3ce9 169%if %{with dietlibc}
52db7bd4
MM
170 LIBRARIES="-lrpc" \
171 CC="diet gcc"
1735ff25
MM
172%else
173%if %{with glibc}
9922ba41 174 %{CrossOpts} \
1735ff25 175 CC="%{__cc}"
27ca3ce9 176%else
9922ba41 177 %if "%{_target_base_arch}" != "%{_arch}"
178 CROSS="%{_target_cpu}-uclibc-" \
179 %endif
27ca3ce9
AM
180 CC="%{_target_cpu}-uclibc-gcc"
181%endif
1735ff25
MM
182%endif
183
839c36a5 184mv -f busybox built/busybox.initrd
52db7bd4 185%{__make} clean
52db7bd4
MM
186%endif
187
13fc95fb 188
1735ff25
MM
189%if %{with altconfig}
190install %{SOURCE3} .config
13fc95fb
ER
191%else
192install %{SOURCE1} .config
1735ff25
MM
193%endif
194
4a69c6c5 195%if %{with static}
4f8fe04f 196%{__make} oldconfig
6f6b5afa 197%{__make} \
91a4c8e3 198 %{?with_verbose:V=1} \
ef0df9c1 199 CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
02cf2722 200 LDFLAGS="%{ld_rpmldflags} -static" \
ef0df9c1
JR
201%if %{with dietlibc}
202 LIBRARIES="-lrpc" \
203 CC="diet gcc"
204%else
205%if %{with glibc}
206 %{CrossOpts} \
52db7bd4 207 CC="%{__cc}"
ef0df9c1
JR
208%else
209 %if "%{_target_base_arch}" != "%{_arch}"
210 CROSS="%{_target_cpu}-uclibc-" \
211 %endif
212 CC="%{_target_cpu}-uclibc-gcc"
213%endif
214%endif
215
839c36a5 216mv -f busybox built/busybox.static
2481202a 217%{__make} clean
34ec6041 218%endif
2481202a 219
b5011fd7 220%{__make} oldconfig
b7f899e9 221%{__make} \
91a4c8e3 222 %{?with_verbose:V=1} \
9922ba41 223 %{CrossOpts} \
b7f899e9 224 CFLAGS_EXTRA="%{rpmcflags}" \
02cf2722 225 LDFLAGS="%{ld_rpmldflags}" \
f5ad7fd6 226 CC="%{__cc}"
839c36a5 227%{__make} busybox.links docs/BusyBox.1
4e2ab1f5 228
ee61dafa
MM
229%install
230rm -rf $RPM_BUILD_ROOT
fc11b50f 231install -d $RPM_BUILD_ROOT{%{_initrd_bindir},%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
b7f899e9 232
839c36a5
JB
233%{?with_static:install built/busybox.static $RPM_BUILD_ROOT%{_bindir}}
234%{?with_initrd:install built/busybox.initrd $RPM_BUILD_ROOT%{_initrd_bindir}/initrd-busybox}
34ec6041 235
b7f899e9
JB
236install busybox.links $RPM_BUILD_ROOT%{_libdir}/busybox
237install docs/BusyBox.1 $RPM_BUILD_ROOT%{_mandir}/man1
65512310 238echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1
ee61dafa 239
d635bde0 240# install links to busybox binary, when linkfl is defined
4a69c6c5 241%if %{with linkfl}
2678f462 242%{__make} install \
5a7abf9a 243 PREFIX=$RPM_BUILD_ROOT
4a69c6c5
MM
244%else
245install busybox $RPM_BUILD_ROOT%{_bindir}
246%endif
d635bde0 247
ee61dafa
MM
248%clean
249rm -rf $RPM_BUILD_ROOT
250
251%files
252%defattr(644,root,root,755)
a230e0df 253%doc AUTHORS README .config
d635bde0 254
4a69c6c5 255%if %{with linkfl}
d635bde0 256%attr(755,root,root) /bin/*
257%attr(755,root,root) /sbin/*
258%attr(755,root,root) %{_bindir}/*
259%attr(755,root,root) %{_sbindir}/*
4a69c6c5
MM
260%else
261%attr(755,root,root) %{_bindir}/busybox
d635bde0 262%endif
263
65512310 264%{_libdir}/busybox
265%{_mandir}/man1/*
bb4ca08e 266
4a69c6c5 267%if %{with static}
34ec6041
JB
268%files static
269%defattr(644,root,root,755)
270%attr(755,root,root) %{_bindir}/busybox.static
271%endif
52db7bd4
MM
272
273%if %{with initrd}
274%files initrd
275%defattr(644,root,root,755)
22221d88 276%attr(755,root,root) %{_initrd_bindir}/initrd-busybox
52db7bd4 277%endif
This page took 0.11443 seconds and 4 git commands to generate.