+#
+# Conditional build:
+# _without_static - don't build static version
+# _with_bash_history - build with additional history in /var/log/hist ;)
+#
Summary: GNU Bourne Again Shell (bash)
-Summary(pl): GNU Bourne Again Shell (bash)
-Summary(de): GNU Bourne Again Shell (bash)
-Summary(fr): GNU Bourne Again Shell (bash)
-Summary(tr): 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)
Name: bash
-Version: 2.03
-Release: 7
-Group: Shells
-Group(pl): Pow³oki
-Copyright: GPL
-Source0: ftp://prep.ai.mit.edu/pub/gnu/bash/%{name}-%{version}.tar.gz
-Source1: bashrc
-Source2: bash-extra.tar.bz2
-Patch0: bash-arm.patch
-Patch1: bash-fixes.patch
-Patch2: bash-paths.patch
-Patch3: bash-security.patch
-Patch4: bash-autoconf.patch
-Patch5: bash-info.patch
-BuildPrereq: ncurses-devel
-Buildroot: /tmp/%{name}-%{version}-root
+Version: 2.05b
+Release: 10%{?_with_bash_history:inv}
+License: GPL
+Group: Applications/Shells
+Source0: ftp://ftp.gnu.org/pub/gnu/bash/%{name}-%{version}.tar.gz
+# Source0-md5: 5238251b4926d778dfe162f6ce729733
+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
+Patch0: %{name}-paths.patch
+Patch1: %{name}-security.patch
+Patch2: %{name}-autoconf.patch
+Patch3: %{name}-info.patch
+Patch4: %{name}-profile.patch
+Patch5: %{name}-requires.patch
+Patch6: %{name}-compat.patch
+Patch7: %{name}-shellfunc.patch
+Patch8: %{name}-DESTDIR.patch
+Patch9: %{name}-rlimit_locks.patch
+Patch10: %{name}-sighup.patch
+Patch11: %{name}-backup_history.patch
+Patch12: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-001
+Patch13: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-002
+Patch14: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-003
+Patch15: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-004
+Patch16: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-005
+Patch17: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-006
+Patch18: ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-007
+Patch19: %{name}-pmake.patch
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: bison
+BuildRequires: glibc-devel >= 2.2
+BuildRequires: ncurses-devel >= 5.2
+BuildRequires: readline-devel >= 4.2
+BuildRequires: texinfo
+%if %{!?_without_static:1}%{?_without_static:0}
+# Require static library only for static build
+BuildRequires: glibc-static >= 2.2
+BuildRequires: ncurses-static >= 5.2
+BuildRequires: readline-static >= 4.3
+%endif
+Requires(post,preun): grep
+Requires(preun): fileutils
+Requires: readline >= 4.3
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Obsoletes: bash-doc
+Obsoletes: bash2
+Obsoletes: bash2-doc
+Obsoletes: etcskel
%description
-Bash is an sh-compatible command language interpreter that
-executes commands read from the standard input or from a
-file. Bash also incorporates useful features from the
-Korn and C shells (ksh and csh).
-
-Bash is ultimately intended to be a conformant implementation
-of the IEEE Posix Shell and Tools specification (IEEE
-Working Group 1003.2).
-
-%description -l pl
-Bash jest zaawansowanym shellem, który wykonuje komendy czytane ze
-standardowego wej¶cia (stdin) lub z pliku. Posiada w³a¶ciwo¶ci
-shelli Korn i C (ksh i csh).
-
-Bash ma równie¿ zaimplementowany IEEE Posix Shell oraz jest zgodny ze
-specyfikacj± - IEEE Working Group 1003.2.
+Bash is a GNU project sh-compatible shell or command language
+interpreter. Bash (Bourne Again shell) incorporates useful features
+from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
+be run by bash without modification. Bash offers several improvements
+over sh, including command line editing, unlimited size command
+history, job control, shell functions and aliases, indexed arrays of
+unlimited size and integer arithmetic in any base from two to 64. Bash
+is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
+Shell and Tools standard. Bash is the default shell for Linux
+Mandrake. You should install bash because of its popularity and power.
+You'll probably end up using it.
+
+%description -l es
+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
+Group 1003.2).
%description -l de
-Bash ist ein sh-kompatibler Befehlssprachen-Interpreter, der
-über die Standardeingabe oder eine Datei gelesene Befehle ausführt.
-Bash beinhaltet außerdem nützliche Funktionen der Korn- und der
-C-Shell (ksh und csh).
-
-Bash soll eine kompatible Implementierung der
-'IEEE Posix Shell and Tools Specification' (IEEE
-Working Group 1003.2) sein.
+Bash ist eine sh-kompatible Shell und Kommandosprache aus dem
+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
+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
+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
+Mandrake.
%description -l fr
-Bash est un interpréteur de commande compatible sh qui exécute
-les commandes lues sur l'entrée standard ou depuis un fichier.
-Bash inclue également des fonctionnalités utiles des shells Korn et C
-(ksh et csh).
+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 à
+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
+probablement par l'utiliser.
-Bash est prévu pour être une implémentation de shell conforme la
-spécification Posix IEEE sur les shell et les outils (Groupe de
-travail IEEE 1003.2).
+%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
+stusunku 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
+1003.2).
+
+%description -l ru
+Bash - ÜÔÏ sh-ÓÏ×ÍÅÓÔÉÍÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ËÏÍÁÎÄÎÏÇÏ ÑÚÙËÁ (shell),
+ÉÓÐÏÌÎÑÀÝÉÊ ËÏÍÁÎÄÙ, ÐÏÓÔÕÐÁÀÝÉÅ ÓÏ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ ÉÌÉ ÉÚ ÆÁÊÌÁ.
+Bash ×ËÌÀÞÁÅÔ ÐÏÌÅÚÎÙÅ ÒÁÓÛÉÒÅÎÉÑ ÉÚ ÉÎÔÅÒÐÒÅÔÁÔÏÒÏ× Korn É C shell
+(ksh É csh).
+
+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.
+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).
+
+Bash ÒÏÚÒÏÂÌÑ×ÓÑ ÑË ÒÅÁ̦ÚÁæÑ, ÝÏ ×¦ÄÐÏצÄÁ¤ IEEE Posix Shell and
+Tools specification (IEEE Working Group 1003.2).
%package static
-Summary: Staticly linked GNU Bourne Again Shell (bash)
+Summary: Statically linked GNU Bourne Again Shell (bash)
Summary(pl): Statycznie zlinkowany GNU Bourne Again Shell (bash)
-Group: Shells
-Group(pl): Pow³oki
+Group: Applications/Shells
Requires: %{name}
+Requires(post,preun): grep
+Requires(preun): fileutils
%description static
-Bash is an sh-compatible command language interpreter that
-executes commands read from the standard input or from a
-file. Bash also incorporates useful features from the
-Korn and C shells (ksh and csh).
-
-Bash is ultimately intended to be a conformant implementation
-of the IEEE Posix Shell and Tools specification (IEEE
-Working Group 1003.2).
-
-This packege contains staticly linked version of bash.
+Bash is a GNU project sh-compatible shell or command language
+interpreter. Bash (Bourne Again shell) incorporates useful features
+from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
+be run by bash without modification. Bash offers several improvements
+over sh, including command line editing, unlimited size command
+history, job control, shell functions and aliases, indexed arrays of
+unlimited size and integer arithmetic in any base from two to 64. Bash
+is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
+Shell and Tools standard. Bash is the default shell for Linux
+Mandrake. You should install bash because of its popularity and power.
+You'll probably end up using it. This package contains statically
+linked version of bash.
%description static -l pl
Bash jest zaawansowanym shellem, który wykonuje komendy czytane ze
-standardowego wej¶cia (stdin) lub z pliku. Posiada w³a¶ciwo¶ci
-shelli Korn i C (ksh i csh).
-
-Bash ma równie¿ zaimplementowany IEEE Posix Shell oraz jest zgodny ze
-specyfikacj± - IEEE Working Group 1003.2.
-
-W tym pakiecie jest statycznie zlinkowany bash.
+standardowego wej¶cia (stdin) lub z pliku. Posiada w³a¶ciwo¶ci pow³ok
+Korn i C (ksh i csh). Bash ma równie¿ zaimplementowany IEEE Posix
+Shell oraz jest zgodny ze specyfikacj± - IEEE Working Group 1003.2. W
+tym pakiecie jest statycznie zlinkowany bash.
%prep
-%setup -q -a2
+%setup -q -a5
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%{?_with_bash_history:%patch11 -p1}
+%patch12 -p0
+%patch13 -p0
+%patch14 -p0
+%patch15 -p0
+%patch16 -p0
+%patch17 -p0
+%patch18 -p0
+%patch19 -p1
+
+echo %{version} > _distribution
+echo %{release} > _patchlevel
%build
-CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="-s" \
-./configure \
- --prefix=%{_prefix} \
+%{__autoconf}
+cp -f /usr/share/automake/config.* support/
+for mode in %{!?_without_static:static} shared; do
+%configure \
--enable-alias \
--enable-help-builtin \
--enable-history \
--with-curses \
--enable-extended-glob \
--enable-dparen-arithmetic \
- --enable-static-link \
- --infodir=%{_infodir} \
- %{_target_platform}
+ `[ "$mode" = "static" ] && echo "--enable-static-link"` \
+ --with-installed-readline
+
+%{__make} DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
-make TERMCAP_LIB="-lncurses"
-mv bash bash.static
-make TERMCAP_LIB="-lncurses" STATIC_LD=""
+[ "$mode" = "static" ] && mv -f bash bash.static || :
+done
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/{bin,etc/skel}
+%{?_with_bash_history:install -d $RPM_BUILD_ROOT/var/log/bash_hist}
-install -d $RPM_BUILD_ROOT%{_datadir}/{man,info}
-install -d $RPM_BUILD_ROOT/{bin,etc}
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-make install \
- prefix=$RPM_BUILD_ROOT%{_prefix} \
- infodir=$RPM_BUILD_ROOT%{_infodir} \
- mandir=$RPM_BUILD_ROOT%{_mandir} \
+mv -f $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
+%{?_without_static:#}install bash.static $RPM_BUILD_ROOT/bin
-mv $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
-install -s bash.static $RPM_BUILD_ROOT/bin
+install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/bashrc
+echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/man1/rbash.1
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/bashrc
-cp -a skel $RPM_BUILD_ROOT/etc
-echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/man1/rbash.1
-ln -sf bash $RPM_BUILD_ROOT/bin/rbash
+for d in es fr it ja ko nl pl ; do
+ install -d $RPM_BUILD_ROOT%{_mandir}/$d/man1
+ install man/$d/* $RPM_BUILD_ROOT%{_mandir}/$d/man1
+ echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/$d/man1/rbash.1
+done
-gzip -9nf $RPM_BUILD_ROOT{%{_infodir}/bash.info,%{_mandir}/man1/*} \
- NEWS README doc/{FAQ,INTRO}
+ln -sf bash $RPM_BUILD_ROOT/bin/rbash
+
+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
+
+%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 '^/bin/bash$' /etc/shells > /dev/null; then
+ if ! grep -q '^/bin/bash$' /etc/shells; then
echo "/bin/bash" >> /etc/shells
fi
- if ! grep '^/bin/rbash$' /etc/shells > /dev/null; then
+ if ! grep -q '^/bin/rbash$' /etc/shells; then
echo "/bin/rbash" >> /etc/shells
fi
-
fi
-/sbin/install-info %{_infodir}/bash.info.gz /etc/info-dir
+[ ! -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 '^/bin/bash.static$' /etc/shells > /dev/null; then
+ if ! grep -q '^/bin/bash.static$' /etc/shells; then
echo "/bin/bash.static" >> /etc/shells
fi
fi
-%preun
-if [ $1 = 0 ]; then
- grep -v /bin/bash /etc/shells | grep -v /bin/rbash > /etc/shells.new
- mv /etc/shells.new /etc/shells
-fi
-
-/sbin/install-info --delete %{_infodir}/bash.info.gz /etc/info-dir
-
%preun static
-if [ $1 = 0 ]; then
+if [ "$1" = "0" ]; then
+ umask 022
grep -v /bin/bash.static /etc/shells > /etc/shells.new
- mv /etc/shells.new /etc/shells
+ mv -f /etc/shells.new /etc/shells
fi
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+%postun
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
%files
%defattr(644,root,root,755)
-%doc {NEWS,README}.gz doc/{FAQ,INTRO}.gz
+%doc NEWS README doc/{FAQ,INTRO}
-/etc/bashrc
-/etc/skel
+%config %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
%attr(755,root,root) /bin/bash
%attr(755,root,root) /bin/rbash
%attr(755,root,root) %{_bindir}/bashbug
-%{_infodir}/bash.info.gz
+%{?_with_bash_history:%attr(751,root,root) %dir /var/log/bash_hist}
+%{_infodir}/bash.info*
%{_mandir}/man1/*
-
-%files static
-%defattr(644,root,root,755)
-%attr(755,root,root) /bin/bash
-
-%changelog
-* Sat Jun 5 1999 Jan Rêkorajski <baggins@pld.org.pl>
- [2.03-7]
-- added static subpackage
-
-* Wed May 19 1999 Wojtek ¦lusarczyk <wojtek@shadow.eu.org>
- [2.03-5]
-- more macros,
-- FHS 2.0.
-
-* Mon May 3 1999 Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
- [2.03-4]
-- added {un}registering info page for bash (added bash-info.patch).
-
-* Mon Feb 22 1999 Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
- [2.03-1]
-- removed /bin/sh link from bash (this is now provided by pdksh),
-- removed man group from man pages,
-- gzipping instead bzipping2 man pages,
-- rewrited %post, %preun,
-- removed %config and %verify rules from /etc/bashrc (all extensions can be
- added by adding /etc/profile.d/*.sh scripts).
-
-* Sun Sep 05 1998 Wojtek ¦lusarczyk <wojtek@shadow.eu.org>
- [2.02.1-1d]
-- fixed files permissions,
-- build with restricted shell support.
-
-* Wed Jun 17 1998 Wojtek ¦lusarczyk <wojtek@shadow.eu.org>
- [14.7-9d]
-- build against glibc-2.1,
-- translation modified for pl,
-- added %defattr support,
-- build from non root's account,
-- start at RH spec.
+%lang(es) %{_mandir}/es/man1/*
+%lang(fr) %{_mandir}/fr/man1/*
+%lang(it) %{_mandir}/it/man1/*
+%lang(ja) %{_mandir}/ja/man1/*
+%lang(ko) %{_mandir}/ko/man1/*
+%lang(nl) %{_mandir}/nl/man1/*
+%lang(pl) %{_mandir}/pl/man1/*
+
+%{?_without_static:#}%files static
+%{?_without_static:#}%defattr(644,root,root,755)
+%{?_without_static:#}%attr(755,root,root) /bin/bash.static