]> git.pld-linux.org Git - packages/busybox.git/blame - busybox.spec
- 1.5.1 - bugfix-only release, with fixes to hdparm, hush, ifupdown, ps and sed.
[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
95f61a42 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
9a45af3a 31%ifarch ppc
32%undefine with_dietlibc
33%endif
ee61dafa 34Summary: Set of common unix utils for embeded systems
718bff43
ER
35Summary(pl.UTF-8): Zestaw narzędzi uniksowych dla systemów wbudowanych
36Summary(pt_BR.UTF-8): BusyBox é um conjunto de utilitários UNIX em um único binário
ee61dafa 37Name: busybox
3160b4b2 38Version: 1.5.1
b812df0b 39Release: 1
ee61dafa 40License: GPL
d79d7625 41Group: Applications
693dc2a0 42Source0: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
3160b4b2 43# Source0-md5: 30df6f796b350fd126c07cff7c33b538
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
bde46f79
AM
50Patch4: %{name}-ash_exec.patch
51Patch5: %{name}-kernel_headers.patch
52Patch6: %{name}-insmod-morearchs.patch
53Patch7: %{name}-dhcp.patch
54Patch8: %{name}-fix_64_archs.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
0b555ee8
JB
153%patch1 -p1
154%patch2 -p1
b2b9509f 155%patch3 -p1
0cf45dc5 156%patch4 -p1
0b555ee8 157%patch5 -p1
5a7abf9a 158%patch6 -p1
0b555ee8 159%patch7 -p1
36f88233 160%patch8 -p1
ea0cda84 161
ee61dafa 162%build
839c36a5 163install -d built
52db7bd4 164%if %{with initrd}
4f8fe04f
AM
165install %{SOURCE2} .config
166%{__make} oldconfig
52db7bd4 167%{__make} \
95f61a42 168 CROSS_CFLAGS="%{rpmcflags} -Os -D_BSD_SOURCE" \
02cf2722 169 LDFLAGS="%{ld_rpmldflags} -static" \
27ca3ce9 170%if %{with dietlibc}
52db7bd4
MM
171 LIBRARIES="-lrpc" \
172 CC="diet gcc"
1735ff25
MM
173%else
174%if %{with glibc}
9922ba41 175 %{CrossOpts} \
1735ff25 176 CC="%{__cc}"
27ca3ce9 177%else
9922ba41 178 %if "%{_target_base_arch}" != "%{_arch}"
179 CROSS="%{_target_cpu}-uclibc-" \
180 %endif
27ca3ce9
AM
181 CC="%{_target_cpu}-uclibc-gcc"
182%endif
1735ff25
MM
183%endif
184
839c36a5 185mv -f busybox built/busybox.initrd
52db7bd4 186%{__make} clean
52db7bd4
MM
187%endif
188
13fc95fb 189
1735ff25
MM
190%if %{with altconfig}
191install %{SOURCE3} .config
13fc95fb
ER
192%else
193install %{SOURCE1} .config
1735ff25
MM
194%endif
195
4a69c6c5 196%if %{with static}
4f8fe04f 197%{__make} oldconfig
6f6b5afa 198%{__make} \
9922ba41 199 %{CrossOpts} \
34ec6041 200 CFLAGS_EXTRA="%{rpmcflags}" \
02cf2722 201 LDFLAGS="%{ld_rpmldflags} -static" \
52db7bd4 202 CC="%{__cc}"
839c36a5 203mv -f busybox built/busybox.static
2481202a 204%{__make} clean
34ec6041 205%endif
2481202a 206
b5011fd7 207%{__make} oldconfig
b7f899e9 208%{__make} \
9922ba41 209 %{CrossOpts} \
b7f899e9 210 CFLAGS_EXTRA="%{rpmcflags}" \
02cf2722 211 LDFLAGS="%{ld_rpmldflags}" \
f5ad7fd6 212 CC="%{__cc}"
839c36a5 213%{__make} busybox.links docs/BusyBox.1
4e2ab1f5 214
ee61dafa
MM
215%install
216rm -rf $RPM_BUILD_ROOT
fc11b50f 217install -d $RPM_BUILD_ROOT{%{_initrd_bindir},%{_bindir},%{_mandir}/man1,%{_libdir}/busybox}
b7f899e9 218
839c36a5
JB
219%{?with_static:install built/busybox.static $RPM_BUILD_ROOT%{_bindir}}
220%{?with_initrd:install built/busybox.initrd $RPM_BUILD_ROOT%{_initrd_bindir}/initrd-busybox}
34ec6041 221
b7f899e9
JB
222install busybox.links $RPM_BUILD_ROOT%{_libdir}/busybox
223install docs/BusyBox.1 $RPM_BUILD_ROOT%{_mandir}/man1
65512310 224echo ".so BusyBox.1" > $RPM_BUILD_ROOT%{_mandir}/man1/busybox.1
ee61dafa 225
d635bde0 226# install links to busybox binary, when linkfl is defined
4a69c6c5 227%if %{with linkfl}
2678f462 228%{__make} install \
5a7abf9a 229 PREFIX=$RPM_BUILD_ROOT
4a69c6c5
MM
230%else
231install busybox $RPM_BUILD_ROOT%{_bindir}
232%endif
d635bde0 233
ee61dafa
MM
234%clean
235rm -rf $RPM_BUILD_ROOT
236
237%files
238%defattr(644,root,root,755)
a230e0df 239%doc AUTHORS README .config
d635bde0 240
4a69c6c5 241%if %{with linkfl}
d635bde0 242%attr(755,root,root) /bin/*
243%attr(755,root,root) /sbin/*
244%attr(755,root,root) %{_bindir}/*
245%attr(755,root,root) %{_sbindir}/*
4a69c6c5
MM
246%else
247%attr(755,root,root) %{_bindir}/busybox
d635bde0 248%endif
249
65512310 250%{_libdir}/busybox
251%{_mandir}/man1/*
bb4ca08e 252
4a69c6c5 253%if %{with static}
34ec6041
JB
254%files static
255%defattr(644,root,root,755)
256%attr(755,root,root) %{_bindir}/busybox.static
257%endif
52db7bd4
MM
258
259%if %{with initrd}
260%files initrd
261%defattr(644,root,root,755)
22221d88 262%attr(755,root,root) %{_initrd_bindir}/initrd-busybox
52db7bd4 263%endif
This page took 0.087582 seconds and 4 git commands to generate.