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