]> git.pld-linux.org Git - packages/busybox.git/blame - busybox.spec
- rel 2; inetd, tar_z, tr, trylink upstream fixes
[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
8670c3d3 25%bcond_with dietlibc # build dietlibc-based initrd version
2678f462
JB
26%bcond_with glibc # build glibc-based initrd version
27#
9922ba41 28%ifnarch %{ix86} %{x8664} ppc sparc64
1735ff25
MM
29%define with_glibc 1
30%endif
ee61dafa 31Summary: Set of common unix utils for embeded systems
718bff43
ER
32Summary(pl.UTF-8): Zestaw narzędzi uniksowych dla systemów wbudowanych
33Summary(pt_BR.UTF-8): BusyBox é um conjunto de utilitários UNIX em um único binário
ee61dafa 34Name: busybox
9e33dfb6 35Version: 1.8.1
829271b0 36Release: 2
ee61dafa 37License: GPL
d79d7625 38Group: Applications
693dc2a0 39Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
9e33dfb6 40# Source0-md5: c54554851d989328654a3eeab915a04f
4f8fe04f
AM
41Source1: %{name}.config
42Source2: %{name}-initrd.config
8f98fac8 43%{?with_altconfig:Source3: %{cfgfile}}
b2b9509f 44Patch1: %{name}-logconsole.patch
45Patch2: %{name}-printf-gettext.patch
46Patch3: %{name}-loadfont.patch
bde46f79
AM
47Patch4: %{name}-ash_exec.patch
48Patch5: %{name}-kernel_headers.patch
49Patch6: %{name}-insmod-morearchs.patch
50Patch7: %{name}-dhcp.patch
51Patch8: %{name}-fix_64_archs.patch
829271b0
AM
52Patch9: %{name}-1.8.1-inetd.patch
53Patch10: %{name}-1.8.1-tar_z.patch
54Patch11: %{name}-1.8.1-tr.patch
55Patch12: %{name}-1.8.1-trylink.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
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
829271b0
AM
162%patch9 -p1
163%patch10 -p1
164%patch11 -p1
165%patch12 -p1
ea0cda84 166
ee61dafa 167%build
839c36a5 168install -d built
52db7bd4 169%if %{with initrd}
4f8fe04f
AM
170install %{SOURCE2} .config
171%{__make} oldconfig
52db7bd4 172%{__make} \
95f61a42 173 CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
02cf2722 174 LDFLAGS="%{ld_rpmldflags} -static" \
27ca3ce9 175%if %{with dietlibc}
52db7bd4
MM
176 LIBRARIES="-lrpc" \
177 CC="diet gcc"
1735ff25
MM
178%else
179%if %{with glibc}
9922ba41 180 %{CrossOpts} \
1735ff25 181 CC="%{__cc}"
27ca3ce9 182%else
9922ba41 183 %if "%{_target_base_arch}" != "%{_arch}"
184 CROSS="%{_target_cpu}-uclibc-" \
185 %endif
27ca3ce9
AM
186 CC="%{_target_cpu}-uclibc-gcc"
187%endif
1735ff25
MM
188%endif
189
839c36a5 190mv -f busybox built/busybox.initrd
52db7bd4 191%{__make} clean
52db7bd4
MM
192%endif
193
13fc95fb 194
1735ff25
MM
195%if %{with altconfig}
196install %{SOURCE3} .config
13fc95fb
ER
197%else
198install %{SOURCE1} .config
1735ff25
MM
199%endif
200
4a69c6c5 201%if %{with static}
4f8fe04f 202%{__make} oldconfig
6f6b5afa 203%{__make} \
9922ba41 204 %{CrossOpts} \
34ec6041 205 CFLAGS_EXTRA="%{rpmcflags}" \
02cf2722 206 LDFLAGS="%{ld_rpmldflags} -static" \
52db7bd4 207 CC="%{__cc}"
839c36a5 208mv -f busybox built/busybox.static
2481202a 209%{__make} clean
34ec6041 210%endif
2481202a 211
b5011fd7 212%{__make} oldconfig
b7f899e9 213%{__make} \
9922ba41 214 %{CrossOpts} \
b7f899e9 215 CFLAGS_EXTRA="%{rpmcflags}" \
02cf2722 216 LDFLAGS="%{ld_rpmldflags}" \
f5ad7fd6 217 CC="%{__cc}"
839c36a5 218%{__make} busybox.links docs/BusyBox.1
4e2ab1f5 219
ee61dafa
MM
220%install
221rm -rf $RPM_BUILD_ROOT
fc11b50f 222install -d $RPM_BUILD_ROOT{%{_initrd_bindir},%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
b7f899e9 223
839c36a5
JB
224%{?with_static:install built/busybox.static $RPM_BUILD_ROOT%{_bindir}}
225%{?with_initrd:install built/busybox.initrd $RPM_BUILD_ROOT%{_initrd_bindir}/initrd-busybox}
34ec6041 226
b7f899e9
JB
227install busybox.links $RPM_BUILD_ROOT%{_libdir}/busybox
228install docs/BusyBox.1 $RPM_BUILD_ROOT%{_mandir}/man1
65512310 229echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1
ee61dafa 230
d635bde0 231# install links to busybox binary, when linkfl is defined
4a69c6c5 232%if %{with linkfl}
2678f462 233%{__make} install \
5a7abf9a 234 PREFIX=$RPM_BUILD_ROOT
4a69c6c5
MM
235%else
236install busybox $RPM_BUILD_ROOT%{_bindir}
237%endif
d635bde0 238
ee61dafa
MM
239%clean
240rm -rf $RPM_BUILD_ROOT
241
242%files
243%defattr(644,root,root,755)
a230e0df 244%doc AUTHORS README .config
d635bde0 245
4a69c6c5 246%if %{with linkfl}
d635bde0 247%attr(755,root,root) /bin/*
248%attr(755,root,root) /sbin/*
249%attr(755,root,root) %{_bindir}/*
250%attr(755,root,root) %{_sbindir}/*
4a69c6c5
MM
251%else
252%attr(755,root,root) %{_bindir}/busybox
d635bde0 253%endif
254
65512310 255%{_libdir}/busybox
256%{_mandir}/man1/*
bb4ca08e 257
4a69c6c5 258%if %{with static}
34ec6041
JB
259%files static
260%defattr(644,root,root,755)
261%attr(755,root,root) %{_bindir}/busybox.static
262%endif
52db7bd4
MM
263
264%if %{with initrd}
265%files initrd
266%defattr(644,root,root,755)
22221d88 267%attr(755,root,root) %{_initrd_bindir}/initrd-busybox
52db7bd4 268%endif
This page took 0.110432 seconds and 4 git commands to generate.