# Conditional build:
%bcond_without static # don't build static version
%bcond_with bash_history # build with additional history in /var/log/bash_hist ;)
-##
+%bcond_without tests # do not perform "make test"
+#
+%define ver 4.1
+%define patchlevel 0
+%define rel 3
Summary: GNU Bourne Again Shell (bash)
-Summary(es): GNU Bourne Again Shell (bash)
-Summary(fr): Le shell Bourne Again de GNU
-Summary(pl): Pow³oka GNU Bourne Again Shell (bash)
-Summary(pt_BR): GNU Bourne Again Shell (bash)
-Summary(ru): GNU Bourne Again Shell (bash)
-Summary(uk): GNU Bourne Again Shell (bash)
+Summary(fr.UTF-8): Le shell Bourne Again de GNU
+Summary(pl.UTF-8): Powłoka GNU Bourne Again Shell (bash)
Name: bash
-Version: 3.0
-Release: 6%{?with_bash_history:inv}
+Version: %{ver}.%{patchlevel}
+Release: %{rel}%{?with_bash_history:inv}
License: GPL
Group: Applications/Shells
-Source0: ftp://ftp.gnu.org/pub/gnu/bash/%{name}-%{version}.tar.gz
-# Source0-md5: 26c4d642e29b3533d8d754995bc277b3
+Source0: http://ftp.gnu.org/gnu/bash/%{name}-%{ver}.tar.gz
+# Source0-md5: 9800d8724815fd84994d9be65ab5e7b8
Source1: %{name}rc
Source2: %{name}-skel-.%{name}_logout
Source3: %{name}-skel-.%{name}_profile
Source4: %{name}-skel-.%{name}rc
Source5: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source5-md5: d2aacf89c4a444c5da648da69afdb01a
+# based on GNU TP; omitted: eo (not supported), rw (empty)
+Source6: %{name}-translations.tar.bz2
+# Source6-md5: 99701bc1f919cfc527cb95fadbc66c93
Patch0: %{name}-paths.patch
Patch1: %{name}-security.patch
Patch2: %{name}-autoconf.patch
Patch4: %{name}-profile.patch
Patch5: %{name}-requires.patch
Patch6: %{name}-compat.patch
-Patch7: %{name}-rlimit_locks.patch
Patch8: %{name}-sighup.patch
Patch9: %{name}-backup_history.patch
-Patch10: %{name}-pmake.patch
-Patch11: %{name}-act_like_sh.patch
-Patch21: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-001
-Patch22: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-002
-Patch23: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-003
-Patch24: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-004
-Patch25: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-005
-Patch26: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-006
-Patch27: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-007
-Patch28: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-008
-Patch29: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-009
-Patch30: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-010
-Patch31: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-011
-Patch32: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-012
-Patch33: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-013
-Patch34: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-014
-Patch35: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-015
-Patch36: ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/bash30-016
-Patch37: %{name}-WCONTINUED.patch
+Patch10: %{name}-act_like_sh.patch
+Patch11: %{name}-elinks_cont.patch
+#%%patchset_source -f http://ftp.gnu.org/gnu/bash/bash-4.0-patches/bash40-%03g 1 %{patchlevel}
URL: http://www.gnu.org/software/bash/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: ncurses-devel >= 5.2
-BuildRequires: readline-devel >= 5.0
+BuildRequires: readline-devel >= 6.1
+BuildRequires: rpmbuild(macros) >= 1.462
+BuildRequires: sed >= 4.0
BuildRequires: texinfo
%if %{with static}
# Require static library only for static build
BuildRequires: glibc-static >= 2.2
BuildRequires: ncurses-static >= 5.2
-BuildRequires: readline-static >= 5.0
+BuildRequires: readline-static >= 6.1
%endif
-PreReq: grep
-Requires(preun): fileutils
+Requires: readline >= 6.1
Requires: setup >= 2.4.6-2
-Requires: readline >= 5.0
Obsoletes: bash-doc
Obsoletes: bash2
Obsoletes: bash2-doc
Mandrake. You should install bash because of its popularity and power.
You'll probably end up using it.
-%description -l es
+%description -l es.UTF-8
Bash es un interpretador de comandos compatible con sh, que ejecuta
-comandos leídos de la entrada padrón o de un archivo. Bash también
-incorpora características útiles de las shells Korn y C (ksh y csh).
-Bash ha sido desarrollado para ser una adición compatible con la
-especificación IEEE Posix para shells y herramientas (IEEE Working
+comandos leídos de la entrada padrón o de un archivo. Bash también
+incorpora características útiles de las shells Korn y C (ksh y csh).
+Bash ha sido desarrollado para ser una adición compatible con la
+especificación IEEE Posix para shells y herramientas (IEEE Working
Group 1003.2).
-%description -l de
+%description -l de.UTF-8
Bash ist eine sh-kompatible Shell und Kommandosprache aus dem
-GNU-Projekt. Bash (Bourne Again Shell) vereinigt die nützlichen
+GNU-Projekt. Bash (Bourne Again Shell) vereinigt die nützlichen
Features aus der Korn-Shell (ksh) und der C-Shell (csh). Die meisten
-sh-Skripte laufen ohne Änderungen auf bash. Bash hat viele
+sh-Skripte laufen ohne Änderungen auf bash. Bash hat viele
Erweiterungen im Vergleich zur "normalen" sh, wie z.B.
-Kommandozeilenbearbeitung, unbeschränkte Größe der command-history,
-Job-Kontrolle, Shell-Funktionen und -Aliase, unbegrenzt große
+Kommandozeilenbearbeitung, unbeschränkte Größe der command-history,
+Job-Kontrolle, Shell-Funktionen und -Aliase, unbegrenzt große
indizierte Arrays und Integer-Arithmetik in einer Basis von 2 bis 64.
Hauptziel von bash ist es, den IEEE POSIX P1003.2/ISO 9945.2 Shell-
-und Tools-Standard einzuhalten. Bash ist die Standard-Shell für Linux
+und Tools-Standard einzuhalten. Bash ist die Standard-Shell für Linux
Mandrake.
-%description -l fr
-Bash est un shell (interpréteur de commande) du projet GNU, compatible
+%description -l fr.UTF-8
+Bash est un shell (interpréteur de commande) du projet GNU, compatible
avec le shell historique sh. Bash (Bourne Again SHell) comprend de
-nombreuses fonctionnalités du Korn SHell (ksh) et du C SHell (csh). La
-plupart des scripts sh sont exécutables sans modifications. Bash
-comprend nombre d'améliorations par rapport à sh : édition de la ligne
-de commande, historique illimité, contrôle des processus
-d'arrière-plan, fonctions de shell, alias, tableaux indexés de taille
-illimitée et calcul sur des entiers dans n'importe quelle base de 2 à
+nombreuses fonctionnalités du Korn SHell (ksh) et du C SHell (csh). La
+plupart des scripts sh sont exécutables sans modifications. Bash
+comprend nombre d'améliorations par rapport à sh : édition de la ligne
+de commande, historique illimité, contrôle des processus
+d'arrière-plan, fonctions de shell, alias, tableaux indexés de taille
+illimitée et calcul sur des entiers dans n'importe quelle base de 2 à
64. Bash est conforme au standard IEEE POSIX P1003.2/ISO 9945.2 Shell
-and Tools. Bash est le shell par défaut de Mandrake. Vous devriez
-l'installer du fait de sa puissance et de sa popularité. Vous finirez
+and Tools. Bash est le shell par défaut de Mandrake. Vous devriez
+l'installer du fait de sa puissance et de sa popularité. Vous finirez
probablement par l'utiliser.
-%description -l pl
-Bash (Bourne Again SHell) jest projektem GNU pow³oki kompatybilnej z
-sh oraz interpretera jêzyka poleceñ. Posiada u¿yteczne w³a¶ciwo¶ci
-pow³ok Korn (ksh) i C (csh). Wiêkszo¶æ skryptów sh mo¿e byæ
-uruchamiana w bashu bez modyfikacji. Oferuje on kilka ulepszeñ w
-stosunku do sh, w³±czaj±c edycjê linii poleceñ, nieograniczony rozmiar
-historii poleceñ, funkcje i aliasy, indeksowane tablice
-nieograniczonych rozmiarów oraz arytmetykê ca³kowitoliczbow± o
-dowolnej podstawie od 2 do 64. W zamierzeniu ostatecznie ma byæ zgodny
+%description -l pl.UTF-8
+Bash (Bourne Again SHell) jest projektem GNU powłoki kompatybilnej z
+sh oraz interpretera języka poleceń. Posiada użyteczne właściwości
+powłok Korn (ksh) i C (csh). Większość skryptów sh może być
+uruchamiana w bashu bez modyfikacji. Oferuje on kilka ulepszeń w
+stosunku do sh, włączając edycję linii poleceń, nieograniczony rozmiar
+historii poleceń, funkcje i aliasy, indeksowane tablice
+nieograniczonych rozmiarów oraz arytmetykę całkowitoliczbową o
+dowolnej podstawie od 2 do 64. W zamierzeniu ostatecznie ma być zgodny
ze standardem IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools.
-%description -l pt_BR
-Bash é um interpretador de comandos compatível com sh, que executa
-comandos lidos da entrada padrão ou de um arquivo. Bash também
-incorpora características úteis das shells Korn e C (ksh e csh). Bash
-tem sido desenvolvido para ser uma implementação compatível com a
-especificação IEEE Posix para shells e ferramentas (IEEE Working Group
+%description -l pt_BR.UTF-8
+Bash é um interpretador de comandos compatível com sh, que executa
+comandos lidos da entrada padrão ou de um arquivo. Bash também
+incorpora características úteis das shells Korn e C (ksh e csh). Bash
+tem sido desenvolvido para ser uma implementação compatível com a
+especificação IEEE Posix para shells e ferramentas (IEEE Working Group
1003.2).
-%description -l ru
-Bash - ÜÔÏ sh-ÓÏ×ÍÅÓÔÉÍÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ËÏÍÁÎÄÎÏÇÏ ÑÚÙËÁ (shell),
-ÉÓÐÏÌÎÑÀÝÉÊ ËÏÍÁÎÄÙ, ÐÏÓÔÕÐÁÀÝÉÅ ÓÏ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ ÉÌÉ ÉÚ ÆÁÊÌÁ.
-Bash ×ËÌÀÞÁÅÔ ÐÏÌÅÚÎÙÅ ÒÁÓÛÉÒÅÎÉÑ ÉÚ ÉÎÔÅÒÐÒÅÔÁÔÏÒÏ× Korn É C shell
-(ksh É csh).
+%description -l ru.UTF-8
+Bash - это sh-совместимый интерпретатор командного языка (shell),
+исполняющий команды, поступающие со стандартного ввода или из файла.
+Bash включает полезные расширения из интерпретаторов Korn и C shell
+(ksh и csh).
-Bash ÒÁÚÒÁÂÁÔÙ×ÁÅÔÓÑ ËÁË ÒÅÁÌÉÚÁÃÉÑ, ÏÔ×ÅÞÁÀÝÁÑ IEEE Posix Shell and
+Bash разрабатывается как реализация, отвечающая IEEE Posix Shell and
Tools specification (IEEE Working Group 1003.2).
-%description -l tr
-Bash standart giriþten ya da bir dosyadan komut okuyup çalýþtýran sh
-uyumlu bir komut dili yorumlayýcýsýdýr. Ayný zamanda Korn ve C
-kabuklarýnýn (ksh ve csh) kullanýþlý özelliklerini de kapsar. Bash,
-IEEE Posix Kabuk ve Araç ayrýntýlarýna (IEEE Working Group 1003.2)
-uyumlu bir uygulama olarak tasarlanmýþtýr.
+%description -l tr.UTF-8
+Bash standart girişten ya da bir dosyadan komut okuyup çalıştıran sh
+uyumlu bir komut dili yorumlayıcısıdır. Aynı zamanda Korn ve C
+kabuklarının (ksh ve csh) kullanışlı özelliklerini de kapsar. Bash,
+IEEE Posix Kabuk ve Araç ayrıntılarına (IEEE Working Group 1003.2)
+uyumlu bir uygulama olarak tasarlanmıştır.
-%description -l uk
-Bash - ÃÅ sh-ÓÕͦÓÔÎÉÊ ¦ÎÔÅÒÐÒÅÔÁÔÏÒ ËÏÍÁÎÄÎϧ ÍÏ×É (shell),
-×ÉËÏÎÕÀÞÉÊ ËÏÍÁÎÄÉ Ú¦ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÕ ÁÂÏ Ú ÆÁÊÌÁ. Bash ͦÓÔÉÔØ
-ËÏÒÉÓÔΦ ÒÏÚÛÉÒÅÎÎÑ Ú ¦ÎÔÅÒÐÒÅÔÁÔÏÒ¦× Korn ÔÁ C shell (ksh ÔÁ csh).
+%description -l uk.UTF-8
+Bash - це sh-сумістний інтерпретатор командної мови (shell),
+виконуючий команди зі стандартного вводу або з файла. Bash містить
+користні розширення з інтерпретаторів Korn та C shell (ksh та csh).
-Bash ÒÏÚÒÏÂÌÑ×ÓÑ ÑË ÒÅÁ̦ÚÁæÑ, ÝÏ ×¦ÄÐÏצÄÁ¤ IEEE Posix Shell and
+Bash розроблявся як реалізація, що відповідає IEEE Posix Shell and
Tools specification (IEEE Working Group 1003.2).
%package static
Summary: Statically linked GNU Bourne Again Shell (bash)
-Summary(pl): Statycznie skonsolidowany GNU Bourne Again Shell (bash)
+Summary(pl.UTF-8): Statycznie skonsolidowany GNU Bourne Again Shell (bash)
Group: Applications/Shells
-Requires(post,preun): grep
-Requires(preun): fileutils
Requires: %{name} = %{version}-%{release}
%description static
You'll probably end up using it. This package contains statically
linked version of bash.
-%description static -l pl
-Bash jest zaawansowan± pow³ok±, która wykonuje komendy czytane ze
-standardowego wej¶cia (stdin) lub z pliku. Posiada w³a¶ciwo¶ci pow³ok
-Korn i C (ksh i csh). Bash jest równie¿ zaimplementowany IEEE Posix
-Shell oraz jest zgodny ze specyfikacj± - IEEE Working Group 1003.2. W
+%description static -l pl.UTF-8
+Bash jest zaawansowaną powłoką, która wykonuje komendy czytane ze
+standardowego wejścia (stdin) lub z pliku. Posiada właściwości powłok
+Korn i C (ksh i csh). Bash jest również zaimplementowany IEEE Posix
+Shell oraz jest zgodny ze specyfikacją - IEEE Working Group 1003.2. W
tym pakiecie jest wersja basha skonsolidowana statycznie.
%prep
-%setup -q -a5
+%setup -q -n %{name}-%{ver} -a5
+# official patches
+#%%patchset_patch 1 %{patchlevel}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
-%patch7 -p1
%patch8 -p1
%{?with_bash_history:%patch9 -p1}
-#%patch10 -p1 -- no longer needed?
+%patch10 -p1
%patch11 -p1
-%patch21 -p0
-%patch22 -p0
-%patch23 -p0
-%patch24 -p0
-%patch25 -p0
-%patch26 -p0
-%patch27 -p0
-%patch28 -p0
-%patch29 -p0
-%patch30 -p0
-%patch31 -p0
-%patch32 -p0
-%patch33 -p0
-%patch34 -p0
-%patch35 -p0
-%patch36 -p0
-%patch37 -p1
-
-echo %{version} > _distribution
-echo %{release} > _patchlevel
+%{__tar} xjf %{SOURCE6} -C po
+sed -e 's/boldquot ru/boldquot ru af ca de es et fr hu ja nl pl pt_BR ro tr vi/' -i po/LINGUAS
%build
-%{__autoconf}
cp -f /usr/share/automake/config.* support
+%{__autoconf}
for mode in %{?with_static:static} shared; do
%configure \
--enable-alias \
--with-curses \
--enable-extended-glob \
--enable-dparen-arithmetic \
+ --enable-separate-helpfiles \
--without-bash-malloc \
`[ "$mode" = "static" ] && echo "--enable-static-link"` \
--with-installed-readline
[ "$mode" = "static" ] && mv -f bash bash.static || :
done
+%{?with_tests:%{__make} tests}
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/{bin,etc/skel}
+install -d $RPM_BUILD_ROOT{/bin,/etc/skel,%{_datadir}/%{name}}
%{?with_bash_history:install -d $RPM_BUILD_ROOT/var/log/bash_hist}
%{__make} install \
install %{SOURCE2} $RPM_BUILD_ROOT/etc/skel/.bash_logout
install %{SOURCE3} $RPM_BUILD_ROOT/etc/skel/.bash_profile
install %{SOURCE4} $RPM_BUILD_ROOT/etc/skel/.bashrc
+rm -f $RPM_BUILD_ROOT%{_infodir}/dir
+
+# use our bugtracker, upstream will ignore reports from this anyway
+rm -f $RPM_BUILD_ROOT%{_bindir}/bashbug
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-umask 022
-if [ ! -f /etc/shells ]; then
- echo "/bin/bash" > /etc/shells
- echo "/bin/rbash" >> /etc/shells
-else
- if ! grep -q '^/bin/bash$' /etc/shells; then
- echo "/bin/bash" >> /etc/shells
- fi
- if ! grep -q '^/bin/rbash$' /etc/shells; then
- echo "/bin/rbash" >> /etc/shells
- fi
-fi
-
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-
-%preun
-if [ "$1" = "0" ]; then
- umask 022
- grep -v /bin/bash /etc/shells | grep -v /bin/rbash > /etc/shells.new
- mv -f /etc/shells.new /etc/shells
-fi
-
-%post static
-umask 022
-if [ ! -f /etc/shells ]; then
- echo "/bin/bash.static" > /etc/shells
-else
- if ! grep -q '^/bin/bash.static$' /etc/shells; then
- echo "/bin/bash.static" >> /etc/shells
- fi
-fi
-
-%preun static
-if [ "$1" = "0" ]; then
- umask 022
- grep -v /bin/bash.static /etc/shells > /etc/shells.new
- mv -f /etc/shells.new /etc/shells
-fi
-
-%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post -p <lua>
+%lua_add_etc_shells /bin/bash /bin/rbash
+os.execute("/usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1")
+
+%preun -p <lua>
+if arg[2] == 0 then
+ %lua_remove_etc_shells /bin/bash /bin/rbash
+end
+
+%postun -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post static -p <lua>
+%lua_add_etc_shells /bin/bash.static
+
+%preun static -p <lua>
+if arg[2] == 0 then
+ %lua_remove_etc_shells /bin/bash.static
+end
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc CHANGES NEWS README doc/{FAQ,INTRO}
-%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/bashrc
-%config(noreplace,missingok) %verify(not md5 size mtime) /etc/skel/.bash_logout
-%config(noreplace,missingok) %verify(not md5 size mtime) /etc/skel/.bash_profile
-%config(noreplace,missingok) %verify(not md5 size mtime) /etc/skel/.bashrc
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bashrc
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_logout
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_profile
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bashrc
%attr(755,root,root) /bin/bash
%attr(755,root,root) /bin/rbash
-%attr(755,root,root) %{_bindir}/bashbug
-%{?with_bash_history:%attr(751,root,root) %dir /var/log/bash_hist}
+%{?with_bash_history:%attr(1733,root,root) %dir /var/log/bash_hist}
%{_infodir}/bash.info*
%{_mandir}/man1/*
%lang(es) %{_mandir}/es/man1/*
%lang(ko) %{_mandir}/ko/man1/*
%lang(nl) %{_mandir}/nl/man1/*
%lang(pl) %{_mandir}/pl/man1/*
+%dir %{_datadir}/%{name}
+%doc %{_datadir}/%{name}/*
%if %{with static}
%files static