]> git.pld-linux.org Git - packages/bash.git/blame - bash.spec
fix build without both static and tests
[packages/bash.git] / bash.spec
CommitLineData
12ec2d09 1# NOTE: when updating patchlevel, do not forget to update 'sources' file:
4e85d24a 2# $ md5sum bash44-??? > sources
12ec2d09 3#
cb14c662 4# Conditional build:
a651f1c4
JB
5%bcond_without static # don't build static version
6%bcond_with bash_history # build with additional history in /var/log/bash_hist ;)
e407816c 7%bcond_without tests # do not perform "make test"
4adb4b80 8
9ecd8d09 9%define ver 5.0
4f8768bd 10%define patchlevel 18
1003364f 11%define rel 1
9ecd8d09 12%define min_readline 8.0
7d6d2b69 13Summary: GNU Bourne Again Shell (bash)
dcd748fa
ER
14Summary(fr.UTF-8): Le shell Bourne Again de GNU
15Summary(pl.UTF-8): Powłoka GNU Bourne Again Shell (bash)
7d6d2b69 16Name: bash
03cee40d 17Version: %{ver}%{?patchlevel:.%{patchlevel}}
8bd2c87f 18Release: %{rel}%{?with_bash_history:inv}
12ec2d09 19License: GPL v3+
23ed535f 20Group: Applications/Shells
ec429726 21Source0: http://ftp.gnu.org/gnu/bash/%{name}-%{ver}.tar.gz
9ecd8d09 22# Source0-md5: 2b44b47b905be16f45709648f671820b
23ed535f 23Source1: %{name}rc
678800bc
JB
24Source2: %{name}-skel-.bash_logout
25Source3: %{name}-skel-.bash_profile
26Source4: %{name}-skel-.bashrc
df8b9a69 27Source5: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
60c0b40e 28# Source5-md5: d2aacf89c4a444c5da648da69afdb01a
23ed535f 29Patch0: %{name}-paths.patch
070ee007 30Patch1: %{name}-security.patch
31Patch2: %{name}-autoconf.patch
32Patch3: %{name}-info.patch
33Patch4: %{name}-profile.patch
34Patch5: %{name}-requires.patch
35Patch6: %{name}-compat.patch
9ecd8d09 36Patch7: %{name}-loadables.patch
60c0b40e
JB
37Patch8: %{name}-sighup.patch
38Patch9: %{name}-backup_history.patch
716158f0 39Patch10: %{name}-act_like_sh.patch
232f944c 40Patch11: %{name}-elinks_cont.patch
9ecd8d09 41%patchset_source -f https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-%03g 1 %{patchlevel}
8cdc40d7 42URL: http://www.gnu.org/software/bash/
12ec2d09 43BuildRequires: autoconf >= 2.61
c0ebe85a 44BuildRequires: automake
0422a072 45BuildRequires: bison
de477a4d 46BuildRequires: ncurses-devel >= 5.2
9ecd8d09 47BuildRequires: readline-devel >= %{min_readline}
41a1b1c8 48BuildRequires: rpmbuild(macros) >= 1.462
ccf2597d 49BuildRequires: sed >= 4.0
6b611e4d 50BuildRequires: texinfo
cf6e8919 51%if %{with static}
de477a4d 52# Require static library only for static build
0422a072 53BuildRequires: glibc-static >= 2.2
4e122b9a 54BuildRequires: ncurses-static >= 5.2
9ecd8d09 55BuildRequires: readline-static >= %{min_readline}
de477a4d 56%endif
9ecd8d09 57Requires: readline >= %{min_readline}
0c55bbdc 58Requires: setup >= 2.4.6-2
0b28b541 59Obsoletes: bash-doc
f40d50c2 60Obsoletes: bash2
61Obsoletes: bash2-doc
0b28b541 62Obsoletes: etcskel
60c0b40e 63BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67581caa 64
65%description
001c539f 66Bash is a GNU project sh-compatible shell or command language
67interpreter. Bash (Bourne Again shell) incorporates useful features
68from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
69be run by bash without modification. Bash offers several improvements
70over sh, including command line editing, unlimited size command
71history, job control, shell functions and aliases, indexed arrays of
72unlimited size and integer arithmetic in any base from two to 64. Bash
73is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
74Shell and Tools standard. Bash is the default shell for Linux
75Mandrake. You should install bash because of its popularity and power.
76You'll probably end up using it.
a3871122 77
ef6e8bca 78%description -l es.UTF-8
1d0ad239 79Bash es un interpretador de comandos compatible con sh, que ejecuta
ef6e8bca
JR
80comandos leídos de la entrada padrón o de un archivo. Bash también
81incorpora características útiles de las shells Korn y C (ksh y csh).
82Bash ha sido desarrollado para ser una adición compatible con la
83especificación IEEE Posix para shells y herramientas (IEEE Working
1d0ad239 84Group 1003.2).
85
ef6e8bca 86%description -l de.UTF-8
001c539f 87Bash ist eine sh-kompatible Shell und Kommandosprache aus dem
ef6e8bca 88GNU-Projekt. Bash (Bourne Again Shell) vereinigt die nützlichen
001c539f 89Features aus der Korn-Shell (ksh) und der C-Shell (csh). Die meisten
ef6e8bca 90sh-Skripte laufen ohne Änderungen auf bash. Bash hat viele
001c539f 91Erweiterungen im Vergleich zur "normalen" sh, wie z.B.
ef6e8bca
JR
92Kommandozeilenbearbeitung, unbeschränkte Größe der command-history,
93Job-Kontrolle, Shell-Funktionen und -Aliase, unbegrenzt große
001c539f 94indizierte Arrays und Integer-Arithmetik in einer Basis von 2 bis 64.
95Hauptziel von bash ist es, den IEEE POSIX P1003.2/ISO 9945.2 Shell-
ef6e8bca 96und Tools-Standard einzuhalten. Bash ist die Standard-Shell für Linux
8a4ad51c 97Mandrake.
a3871122 98
ef6e8bca
JR
99%description -l fr.UTF-8
100Bash est un shell (interpréteur de commande) du projet GNU, compatible
001c539f 101avec le shell historique sh. Bash (Bourne Again SHell) comprend de
ef6e8bca
JR
102nombreuses fonctionnalités du Korn SHell (ksh) et du C SHell (csh). La
103plupart des scripts sh sont exécutables sans modifications. Bash
104comprend nombre d'améliorations par rapport à sh : édition de la ligne
105de commande, historique illimité, contrôle des processus
106d'arrière-plan, fonctions de shell, alias, tableaux indexés de taille
107illimitée et calcul sur des entiers dans n'importe quelle base de 2 à
001c539f 10864. Bash est conforme au standard IEEE POSIX P1003.2/ISO 9945.2 Shell
ef6e8bca
JR
109and Tools. Bash est le shell par défaut de Mandrake. Vous devriez
110l'installer du fait de sa puissance et de sa popularité. Vous finirez
001c539f 111probablement par l'utiliser.
7d6d2b69 112
ef6e8bca
JR
113%description -l pl.UTF-8
114Bash (Bourne Again SHell) jest projektem GNU powłoki kompatybilnej z
115sh oraz interpretera języka poleceń. Posiada użyteczne właściwości
116powłok Korn (ksh) i C (csh). Większość skryptów sh może być
117uruchamiana w bashu bez modyfikacji. Oferuje on kilka ulepszeń w
118stosunku do sh, włączając edycję linii poleceń, nieograniczony rozmiar
119historii poleceń, funkcje i aliasy, indeksowane tablice
120nieograniczonych rozmiarów oraz arytmetykę całkowitoliczbową o
121dowolnej podstawie od 2 do 64. W zamierzeniu ostatecznie ma być zgodny
4d6d135d 122ze standardem IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools.
67581caa 123
ef6e8bca
JR
124%description -l pt_BR.UTF-8
125Bash é um interpretador de comandos compatível com sh, que executa
126comandos lidos da entrada padrão ou de um arquivo. Bash também
127incorpora características úteis das shells Korn e C (ksh e csh). Bash
128tem sido desenvolvido para ser uma implementação compatível com a
129especificação IEEE Posix para shells e ferramentas (IEEE Working Group
1d0ad239 1301003.2).
131
ef6e8bca
JR
132%description -l ru.UTF-8
133Bash - это sh-совместимый интерпретатор командного языка (shell),
134исполняющий команды, поступающие со стандартного ввода или из файла.
135Bash включает полезные расширения из интерпретаторов Korn и C shell
136(ksh и csh).
1d0ad239 137
ef6e8bca 138Bash разрабатывается как реализация, отвечающая IEEE Posix Shell and
1d0ad239 139Tools specification (IEEE Working Group 1003.2).
140
ef6e8bca
JR
141%description -l tr.UTF-8
142Bash standart girişten ya da bir dosyadan komut okuyup çalıştıran sh
143uyumlu bir komut dili yorumlayıcısıdır. Aynı zamanda Korn ve C
144kabuklarının (ksh ve csh) kullanışlı özelliklerini de kapsar. Bash,
145IEEE Posix Kabuk ve Araç ayrıntılarına (IEEE Working Group 1003.2)
146uyumlu bir uygulama olarak tasarlanmıştır.
67581caa 147
ef6e8bca
JR
148%description -l uk.UTF-8
149Bash - це sh-сумістний інтерпретатор командної мови (shell),
150виконуючий команди зі стандартного вводу або з файла. Bash містить
151користні розширення з інтерпретаторів Korn та C shell (ksh та csh).
1d0ad239 152
ef6e8bca 153Bash розроблявся як реалізація, що відповідає IEEE Posix Shell and
1d0ad239 154Tools specification (IEEE Working Group 1003.2).
155
4f62851f 156%package static
0d32bda9 157Summary: Statically linked GNU Bourne Again Shell (bash)
dcd748fa 158Summary(pl.UTF-8): Statycznie skonsolidowany GNU Bourne Again Shell (bash)
23ed535f 159Group: Applications/Shells
80a4c26d 160Requires: %{name} = %{version}-%{release}
4f62851f
JR
161
162%description static
001c539f 163Bash is a GNU project sh-compatible shell or command language
164interpreter. Bash (Bourne Again shell) incorporates useful features
165from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
166be run by bash without modification. Bash offers several improvements
167over sh, including command line editing, unlimited size command
168history, job control, shell functions and aliases, indexed arrays of
169unlimited size and integer arithmetic in any base from two to 64. Bash
170is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
171Shell and Tools standard. Bash is the default shell for Linux
172Mandrake. You should install bash because of its popularity and power.
2f1a3089 173You'll probably end up using it. This package contains statically
c59be5db 174linked version of bash.
4f62851f 175
ef6e8bca
JR
176%description static -l pl.UTF-8
177Bash jest zaawansowaną powłoką, która wykonuje komendy czytane ze
178standardowego wejścia (stdin) lub z pliku. Posiada właściwości powłok
179Korn i C (ksh i csh). Bash jest również zaimplementowany IEEE Posix
180Shell oraz jest zgodny ze specyfikacją - IEEE Working Group 1003.2. W
97eb1e25 181tym pakiecie jest wersja basha skonsolidowana statycznie.
4f62851f 182
12ec2d09
JB
183%package devel
184Summary: Header files for bash plugins development
185Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia wtyczek basha
186Group: Development/Libraries
187# doesn't require base
188
189%description devel
190Header files for bash plugins development.
191
192%description devel -l pl.UTF-8
193Pliki nagłówkowe do tworzenia wtyczek basha.
194
67581caa 195%prep
8bd2c87f 196%setup -q -n %{name}-%{ver} -a5
e588d508 197# official patches
03cee40d 198%{?patchlevel:%patchset_patch 1 %{patchlevel}}
7d6d2b69 199%patch0 -p1
200%patch1 -p1
201%patch2 -p1
202%patch3 -p1
0e4146b6 203%patch4 -p1
6ff1ee53 204%patch5 -p1
de76156e 205%patch6 -p1
9ecd8d09 206%patch7 -p1
c23570b7 207%patch8 -p1
60c0b40e 208%{?with_bash_history:%patch9 -p1}
f2c0c7f0 209%patch10 -p1
232f944c 210%patch11 -p1
4dfcefcb 211
322c0adb
AM
212sed -i -e 's#/usr/bin/printf#/bin/printf#g' tests/intl2.sub
213
67581caa 214%build
80a4c26d 215cp -f /usr/share/automake/config.* support
f2c0c7f0 216%{__autoconf}
cf6e8919 217for mode in %{?with_static:static} shared; do
a3871122 218%configure \
7d6d2b69 219 --enable-alias \
220 --enable-help-builtin \
221 --enable-history \
222 --enable-job-control \
223 --enable-restricted \
67581caa 224 --enable-readline \
e301b341 225 --with-curses \
226 --enable-extended-glob \
96160a7f 227 --enable-dparen-arithmetic \
c70eed6a 228 --enable-separate-helpfiles \
2246337a 229 --without-bash-malloc \
d7465fdf 230 $([ "$mode" = "static" ] && echo "--enable-static-link") \
61e3c662 231 --with-installed-readline
31838660 232
80a4c26d
JB
233%{__make} \
234 DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
c23570b7 235
bec03478
JP
236if [ "$mode" = "static" ]; then
237 mv -f bash bash.static
238fi
c23570b7 239done
67581caa 240
e407816c
ER
241%{?with_tests:%{__make} tests}
242
67581caa 243%install
5b3ea703 244rm -rf $RPM_BUILD_ROOT
c70eed6a 245install -d $RPM_BUILD_ROOT{/bin,/etc/skel,%{_datadir}/%{name}}
cf6e8919 246%{?with_bash_history:install -d $RPM_BUILD_ROOT/var/log/bash_hist}
83cdd671 247
2e52df12
PG
248%{__make} install \
249 DESTDIR=$RPM_BUILD_ROOT
7d6d2b69 250
12ec2d09 251%{__mv} $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
a651f1c4 252%{?with_static:install bash.static $RPM_BUILD_ROOT/bin}
e301b341 253
5b3ea703 254install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/bashrc
001c539f 255echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/man1/rbash.1
256
1e516eb0 257for d in es fr it ja ko nl pl ; do
6bcdcdc6
JB
258 install -d $RPM_BUILD_ROOT%{_mandir}/$d/man1
259 install man/$d/* $RPM_BUILD_ROOT%{_mandir}/$d/man1
260 echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/$d/man1/rbash.1
261done
262
7a3d4a72 263ln -sf bash $RPM_BUILD_ROOT/bin/rbash
67581caa 264
5b3ea703
TP
265install %{SOURCE2} $RPM_BUILD_ROOT/etc/skel/.bash_logout
266install %{SOURCE3} $RPM_BUILD_ROOT/etc/skel/.bash_profile
267install %{SOURCE4} $RPM_BUILD_ROOT/etc/skel/.bashrc
8f301559 268
d5597b0f 269# use our bugtracker, upstream will ignore reports from this anyway
12ec2d09
JB
270%{__rm} $RPM_BUILD_ROOT%{_bindir}/bashbug \
271 $RPM_BUILD_ROOT%{_mandir}/man1/bashbug.1 \
272 $RPM_BUILD_ROOT%{_mandir}/*/man1/bashbug.1
273# packaged as %doc
274%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/bash
275
276rm -f $RPM_BUILD_ROOT%{_infodir}/dir
d5597b0f 277
60c0b40e
JB
278%find_lang %{name}
279
7a3d4a72
JB
280%clean
281rm -rf $RPM_BUILD_ROOT
282
41a1b1c8
ER
283%post -p <lua>
284%lua_add_etc_shells /bin/bash /bin/rbash
b77458b2 285os.execute("/usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1")
7d6d2b69 286
41a1b1c8
ER
287%preun -p <lua>
288if arg[2] == 0 then
289 %lua_remove_etc_shells /bin/bash /bin/rbash
290end
4f62851f 291
12ec2d09 292%postun -p /sbin/postshell
27fc3f6e 293-/usr/sbin/fix-info-dir -c %{_infodir}
f358ed26 294
41a1b1c8
ER
295%post static -p <lua>
296%lua_add_etc_shells /bin/bash.static
297
298%preun static -p <lua>
299if arg[2] == 0 then
300 %lua_remove_etc_shells /bin/bash.static
301end
ee4033f9 302
60c0b40e 303%files -f %{name}.lang
7d6d2b69 304%defattr(644,root,root,755)
12ec2d09 305%doc AUTHORS CHANGES COMPAT NEWS POSIX README RBASH doc/{FAQ,INTRO,bash.html,bashref.html}
7d6d2b69 306
3eb3ef3a
ER
307%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bashrc
308%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_logout
309%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_profile
310%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bashrc
7d6d2b69 311
96160a7f 312%attr(755,root,root) /bin/bash
313%attr(755,root,root) /bin/rbash
7d6d2b69 314
b26f8c7c 315%{?with_bash_history:%attr(1733,root,root) %dir /var/log/bash_hist}
dd7e7833 316%{_infodir}/bash.info*
12ec2d09
JB
317%{_mandir}/man1/bash.1*
318%{_mandir}/man1/rbash.1*
1e516eb0 319%lang(es) %{_mandir}/es/man1/*
6bcdcdc6
JB
320%lang(fr) %{_mandir}/fr/man1/*
321%lang(it) %{_mandir}/it/man1/*
322%lang(ja) %{_mandir}/ja/man1/*
323%lang(ko) %{_mandir}/ko/man1/*
324%lang(nl) %{_mandir}/nl/man1/*
325%lang(pl) %{_mandir}/pl/man1/*
38cd3b3d
ER
326%dir %{_datadir}/%{name}
327%doc %{_datadir}/%{name}/*
67581caa 328
12ec2d09
JB
329# loadables
330%dir %{_libdir}/%{name}
331%attr(755,root,root) %{_libdir}/%{name}/basename
332%attr(755,root,root) %{_libdir}/%{name}/dirname
9ecd8d09 333%attr(755,root,root) %{_libdir}/%{name}/fdflags
12ec2d09
JB
334%attr(755,root,root) %{_libdir}/%{name}/finfo
335%attr(755,root,root) %{_libdir}/%{name}/head
336%attr(755,root,root) %{_libdir}/%{name}/id
337%attr(755,root,root) %{_libdir}/%{name}/ln
338%attr(755,root,root) %{_libdir}/%{name}/logname
339%attr(755,root,root) %{_libdir}/%{name}/mkdir
340%attr(755,root,root) %{_libdir}/%{name}/mypid
341%attr(755,root,root) %{_libdir}/%{name}/pathchk
342%attr(755,root,root) %{_libdir}/%{name}/print
343%attr(755,root,root) %{_libdir}/%{name}/printenv
344%attr(755,root,root) %{_libdir}/%{name}/push
345%attr(755,root,root) %{_libdir}/%{name}/realpath
346%attr(755,root,root) %{_libdir}/%{name}/rmdir
9ecd8d09 347%attr(755,root,root) %{_libdir}/%{name}/seq
12ec2d09
JB
348%attr(755,root,root) %{_libdir}/%{name}/setpgid
349%attr(755,root,root) %{_libdir}/%{name}/sleep
350%attr(755,root,root) %{_libdir}/%{name}/strftime
351%attr(755,root,root) %{_libdir}/%{name}/sync
352%attr(755,root,root) %{_libdir}/%{name}/tee
353%attr(755,root,root) %{_libdir}/%{name}/truefalse
354%attr(755,root,root) %{_libdir}/%{name}/tty
355%attr(755,root,root) %{_libdir}/%{name}/uname
356%attr(755,root,root) %{_libdir}/%{name}/unlink
357%attr(755,root,root) %{_libdir}/%{name}/whoami
358
a651f1c4
JB
359%if %{with static}
360%files static
361%defattr(644,root,root,755)
362%attr(755,root,root) /bin/bash.static
363%endif
12ec2d09
JB
364
365%files devel
366%defattr(644,root,root,755)
367%{_includedir}/bash
368%dir %{_libdir}/%{name}
0af7f780
JB
369%{_libdir}/%{name}/Makefile.inc
370%{_libdir}/%{name}/loadables.h
12ec2d09 371%{_pkgconfigdir}/bash.pc
This page took 0.214886 seconds and 4 git commands to generate.