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