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