1 # NOTE: when updating patchlevel, do not forget to update 'sources' file:
2 # $ md5sum bash44-??? > sources
5 %bcond_without static # don't build static version
6 %bcond_with bash_history # build with additional history in /var/log/bash_hist ;)
7 %bcond_without tests # do not perform "make test"
12 %define min_readline 8.1
13 Summary: GNU Bourne Again Shell (bash)
14 Summary(fr.UTF-8): Le shell Bourne Again de GNU
15 Summary(pl.UTF-8): Powłoka GNU Bourne Again Shell (bash)
17 Version: %{ver}%{?patchlevel:.%{patchlevel}}
18 Release: %{rel}%{?with_bash_history:inv}
20 Group: Applications/Shells
21 Source0: http://ftp.gnu.org/gnu/bash/%{name}-%{ver}.tar.gz
22 # Source0-md5: bb91a17fd6c9032c26d0b2b78b50aff5
24 Source2: %{name}-skel-.bash_logout
25 Source3: %{name}-skel-.bash_profile
26 Source4: %{name}-skel-.bashrc
27 Source5: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
28 # Source5-md5: d2aacf89c4a444c5da648da69afdb01a
29 Patch0: %{name}-paths.patch
30 Patch1: %{name}-security.patch
31 Patch2: %{name}-autoconf.patch
32 Patch3: %{name}-info.patch
33 Patch4: %{name}-profile.patch
34 Patch5: %{name}-requires.patch
35 Patch6: %{name}-compat.patch
36 Patch7: %{name}-loadables.patch
37 Patch8: %{name}-sighup.patch
38 Patch9: %{name}-backup_history.patch
39 Patch10: %{name}-act_like_sh.patch
40 Patch11: %{name}-elinks_cont.patch
41 Patch12: bash-5.1-parallel_make.patch
42 %patchset_source -f https://ftp.gnu.org/gnu/bash/bash-5.1-patches/bash51-%03g 1 %{patchlevel}
43 URL: http://www.gnu.org/software/bash/
44 BuildRequires: autoconf >= 2.61
45 BuildRequires: automake
47 BuildRequires: ncurses-devel >= 5.2
48 BuildRequires: readline-devel >= %{min_readline}
49 BuildRequires: rpmbuild(macros) >= 1.462
50 BuildRequires: sed >= 4.0
51 BuildRequires: texinfo
53 # Require static library only for static build
54 BuildRequires: glibc-static >= 2.2
55 BuildRequires: ncurses-static >= 5.2
56 BuildRequires: readline-static >= %{min_readline}
58 Requires: readline >= %{min_readline}
59 Requires: setup >= 2.4.6-2
64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
66 %define _noautoprovfiles %{_libdir}/%{name}
69 Bash is a GNU project sh-compatible shell or command language
70 interpreter. Bash (Bourne Again shell) incorporates useful features
71 from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
72 be run by bash without modification. Bash offers several improvements
73 over sh, including command line editing, unlimited size command
74 history, job control, shell functions and aliases, indexed arrays of
75 unlimited size and integer arithmetic in any base from two to 64. Bash
76 is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
77 Shell and Tools standard. Bash is the default shell for Linux
78 Mandrake. You should install bash because of its popularity and power.
79 You'll probably end up using it.
81 %description -l es.UTF-8
82 Bash es un interpretador de comandos compatible con sh, que ejecuta
83 comandos leídos de la entrada padrón o de un archivo. Bash también
84 incorpora características útiles de las shells Korn y C (ksh y csh).
85 Bash ha sido desarrollado para ser una adición compatible con la
86 especificación IEEE Posix para shells y herramientas (IEEE Working
89 %description -l de.UTF-8
90 Bash ist eine sh-kompatible Shell und Kommandosprache aus dem
91 GNU-Projekt. Bash (Bourne Again Shell) vereinigt die nützlichen
92 Features aus der Korn-Shell (ksh) und der C-Shell (csh). Die meisten
93 sh-Skripte laufen ohne Änderungen auf bash. Bash hat viele
94 Erweiterungen im Vergleich zur "normalen" sh, wie z.B.
95 Kommandozeilenbearbeitung, unbeschränkte Größe der command-history,
96 Job-Kontrolle, Shell-Funktionen und -Aliase, unbegrenzt große
97 indizierte Arrays und Integer-Arithmetik in einer Basis von 2 bis 64.
98 Hauptziel von bash ist es, den IEEE POSIX P1003.2/ISO 9945.2 Shell-
99 und Tools-Standard einzuhalten. Bash ist die Standard-Shell für Linux
102 %description -l fr.UTF-8
103 Bash est un shell (interpréteur de commande) du projet GNU, compatible
104 avec le shell historique sh. Bash (Bourne Again SHell) comprend de
105 nombreuses fonctionnalités du Korn SHell (ksh) et du C SHell (csh). La
106 plupart des scripts sh sont exécutables sans modifications. Bash
107 comprend nombre d'améliorations par rapport à sh : édition de la ligne
108 de commande, historique illimité, contrôle des processus
109 d'arrière-plan, fonctions de shell, alias, tableaux indexés de taille
110 illimitée et calcul sur des entiers dans n'importe quelle base de 2 à
111 64. Bash est conforme au standard IEEE POSIX P1003.2/ISO 9945.2 Shell
112 and Tools. Bash est le shell par défaut de Mandrake. Vous devriez
113 l'installer du fait de sa puissance et de sa popularité. Vous finirez
114 probablement par l'utiliser.
116 %description -l pl.UTF-8
117 Bash (Bourne Again SHell) jest projektem GNU powłoki kompatybilnej z
118 sh oraz interpretera języka poleceń. Posiada użyteczne właściwości
119 powłok Korn (ksh) i C (csh). Większość skryptów sh może być
120 uruchamiana w bashu bez modyfikacji. Oferuje on kilka ulepszeń w
121 stosunku do sh, włączając edycję linii poleceń, nieograniczony rozmiar
122 historii poleceń, funkcje i aliasy, indeksowane tablice
123 nieograniczonych rozmiarów oraz arytmetykę całkowitoliczbową o
124 dowolnej podstawie od 2 do 64. W zamierzeniu ostatecznie ma być zgodny
125 ze standardem IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools.
127 %description -l pt_BR.UTF-8
128 Bash é um interpretador de comandos compatível com sh, que executa
129 comandos lidos da entrada padrão ou de um arquivo. Bash também
130 incorpora características úteis das shells Korn e C (ksh e csh). Bash
131 tem sido desenvolvido para ser uma implementação compatível com a
132 especificação IEEE Posix para shells e ferramentas (IEEE Working Group
135 %description -l ru.UTF-8
136 Bash - это sh-совместимый интерпретатор командного языка (shell),
137 исполняющий команды, поступающие со стандартного ввода или из файла.
138 Bash включает полезные расширения из интерпретаторов Korn и C shell
141 Bash разрабатывается как реализация, отвечающая IEEE Posix Shell and
142 Tools specification (IEEE Working Group 1003.2).
144 %description -l tr.UTF-8
145 Bash standart girişten ya da bir dosyadan komut okuyup çalıştıran sh
146 uyumlu bir komut dili yorumlayıcısıdır. Aynı zamanda Korn ve C
147 kabuklarının (ksh ve csh) kullanışlı özelliklerini de kapsar. Bash,
148 IEEE Posix Kabuk ve Araç ayrıntılarına (IEEE Working Group 1003.2)
149 uyumlu bir uygulama olarak tasarlanmıştır.
151 %description -l uk.UTF-8
152 Bash - це sh-сумістний інтерпретатор командної мови (shell),
153 виконуючий команди зі стандартного вводу або з файла. Bash містить
154 користні розширення з інтерпретаторів Korn та C shell (ksh та csh).
156 Bash розроблявся як реалізація, що відповідає IEEE Posix Shell and
157 Tools specification (IEEE Working Group 1003.2).
160 Summary: Statically linked GNU Bourne Again Shell (bash)
161 Summary(pl.UTF-8): Statycznie skonsolidowany GNU Bourne Again Shell (bash)
162 Group: Applications/Shells
163 Requires: %{name} = %{version}-%{release}
166 Bash is a GNU project sh-compatible shell or command language
167 interpreter. Bash (Bourne Again shell) incorporates useful features
168 from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
169 be run by bash without modification. Bash offers several improvements
170 over sh, including command line editing, unlimited size command
171 history, job control, shell functions and aliases, indexed arrays of
172 unlimited size and integer arithmetic in any base from two to 64. Bash
173 is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
174 Shell and Tools standard. Bash is the default shell for Linux
175 Mandrake. You should install bash because of its popularity and power.
176 You'll probably end up using it. This package contains statically
177 linked version of bash.
179 %description static -l pl.UTF-8
180 Bash jest zaawansowaną powłoką, która wykonuje komendy czytane ze
181 standardowego wejścia (stdin) lub z pliku. Posiada właściwości powłok
182 Korn i C (ksh i csh). Bash jest również zaimplementowany IEEE Posix
183 Shell oraz jest zgodny ze specyfikacją - IEEE Working Group 1003.2. W
184 tym pakiecie jest wersja basha skonsolidowana statycznie.
187 Summary: Header files for bash plugins development
188 Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia wtyczek basha
189 Group: Development/Libraries
190 # doesn't require base
193 Header files for bash plugins development.
195 %description devel -l pl.UTF-8
196 Pliki nagłówkowe do tworzenia wtyczek basha.
199 %setup -q -n %{name}-%{ver} -a5
201 %{?patchlevel:%patchset_patch 1 %{patchlevel}}
211 %{?with_bash_history:%patch9 -p1}
216 %{__sed} -i -e 's#/usr/bin/printf#/bin/printf#g' tests/intl2.sub
219 cp -f /usr/share/automake/config.* support
221 for mode in %{?with_static:static} shared; do
224 --enable-help-builtin \
226 --enable-job-control \
227 --enable-restricted \
230 --enable-extended-glob \
231 --enable-dparen-arithmetic \
232 --enable-separate-helpfiles \
233 --without-bash-malloc \
234 $([ "$mode" = "static" ] && echo "--enable-static-link") \
235 --with-installed-readline
238 DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
240 if [ "$mode" = "static" ]; then
241 %{__mv} bash bash.static
245 %{?with_tests:%{__make} tests}
248 rm -rf $RPM_BUILD_ROOT
249 install -d $RPM_BUILD_ROOT{/bin,/etc/skel,%{_datadir}/%{name}}
250 %{?with_bash_history:install -d $RPM_BUILD_ROOT/var/log/bash_hist}
253 DESTDIR=$RPM_BUILD_ROOT
255 %{__mv} $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
256 %{?with_static:install bash.static $RPM_BUILD_ROOT/bin}
258 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/bashrc
259 echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/man1/rbash.1
261 for d in es fr it ja ko nl pl ; do
262 install -d $RPM_BUILD_ROOT%{_mandir}/$d/man1
263 install man/$d/* $RPM_BUILD_ROOT%{_mandir}/$d/man1
264 echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/$d/man1/rbash.1
267 ln -sf bash $RPM_BUILD_ROOT/bin/rbash
269 install %{SOURCE2} $RPM_BUILD_ROOT/etc/skel/.bash_logout
270 install %{SOURCE3} $RPM_BUILD_ROOT/etc/skel/.bash_profile
271 install %{SOURCE4} $RPM_BUILD_ROOT/etc/skel/.bashrc
273 # use our bugtracker, upstream will ignore reports from this anyway
274 %{__rm} $RPM_BUILD_ROOT%{_bindir}/bashbug \
275 $RPM_BUILD_ROOT%{_mandir}/man1/bashbug.1 \
276 $RPM_BUILD_ROOT%{_mandir}/*/man1/bashbug.1
278 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/bash
280 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
285 rm -rf $RPM_BUILD_ROOT
288 %lua_add_etc_shells /bin/bash /bin/rbash
289 os.execute("/usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1")
293 %lua_remove_etc_shells /bin/bash /bin/rbash
296 %postun -p /sbin/postshell
297 -/usr/sbin/fix-info-dir -c %{_infodir}
299 %post static -p <lua>
300 %lua_add_etc_shells /bin/bash.static
302 %preun static -p <lua>
304 %lua_remove_etc_shells /bin/bash.static
307 %files -f %{name}.lang
308 %defattr(644,root,root,755)
309 %doc AUTHORS CHANGES COMPAT NEWS POSIX README RBASH doc/{FAQ,INTRO,bash.html,bashref.html}
311 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bashrc
312 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_logout
313 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_profile
314 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bashrc
316 %attr(755,root,root) /bin/bash
317 %attr(755,root,root) /bin/rbash
319 %{?with_bash_history:%attr(1733,root,root) %dir /var/log/bash_hist}
320 %{_infodir}/bash.info*
321 %{_mandir}/man1/bash.1*
322 %{_mandir}/man1/rbash.1*
323 %lang(es) %{_mandir}/es/man1/*
324 %lang(fr) %{_mandir}/fr/man1/*
325 %lang(it) %{_mandir}/it/man1/*
326 %lang(ja) %{_mandir}/ja/man1/*
327 %lang(ko) %{_mandir}/ko/man1/*
328 %lang(nl) %{_mandir}/nl/man1/*
329 %lang(pl) %{_mandir}/pl/man1/*
330 %dir %{_datadir}/%{name}
331 %doc %{_datadir}/%{name}/*
334 %dir %{_libdir}/%{name}
335 %attr(755,root,root) %{_libdir}/%{name}/accept
336 %attr(755,root,root) %{_libdir}/%{name}/basename
337 %attr(755,root,root) %{_libdir}/%{name}/csv
338 %attr(755,root,root) %{_libdir}/%{name}/cut
339 %attr(755,root,root) %{_libdir}/%{name}/dirname
340 %attr(755,root,root) %{_libdir}/%{name}/fdflags
341 %attr(755,root,root) %{_libdir}/%{name}/finfo
342 %attr(755,root,root) %{_libdir}/%{name}/head
343 %attr(755,root,root) %{_libdir}/%{name}/id
344 %attr(755,root,root) %{_libdir}/%{name}/ln
345 %attr(755,root,root) %{_libdir}/%{name}/logname
346 %attr(755,root,root) %{_libdir}/%{name}/mkdir
347 %attr(755,root,root) %{_libdir}/%{name}/mkfifo
348 %attr(755,root,root) %{_libdir}/%{name}/mktemp
349 %attr(755,root,root) %{_libdir}/%{name}/mypid
350 %attr(755,root,root) %{_libdir}/%{name}/pathchk
351 %attr(755,root,root) %{_libdir}/%{name}/print
352 %attr(755,root,root) %{_libdir}/%{name}/printenv
353 %attr(755,root,root) %{_libdir}/%{name}/push
354 %attr(755,root,root) %{_libdir}/%{name}/realpath
355 %attr(755,root,root) %{_libdir}/%{name}/rm
356 %attr(755,root,root) %{_libdir}/%{name}/rmdir
357 %attr(755,root,root) %{_libdir}/%{name}/seq
358 %attr(755,root,root) %{_libdir}/%{name}/setpgid
359 %attr(755,root,root) %{_libdir}/%{name}/sleep
360 %attr(755,root,root) %{_libdir}/%{name}/strftime
361 %attr(755,root,root) %{_libdir}/%{name}/sync
362 %attr(755,root,root) %{_libdir}/%{name}/tee
363 %attr(755,root,root) %{_libdir}/%{name}/truefalse
364 %attr(755,root,root) %{_libdir}/%{name}/tty
365 %attr(755,root,root) %{_libdir}/%{name}/uname
366 %attr(755,root,root) %{_libdir}/%{name}/unlink
367 %attr(755,root,root) %{_libdir}/%{name}/whoami
371 %defattr(644,root,root,755)
372 %attr(755,root,root) /bin/bash.static
376 %defattr(644,root,root,755)
378 %dir %{_libdir}/%{name}
379 %{_libdir}/%{name}/Makefile.inc
380 %{_libdir}/%{name}/loadables.h
381 %{_pkgconfigdir}/bash.pc