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