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