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