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