+# NOTE: when updating patchlevel, do not forget to update 'sources' file:
+# $ md5sum bash44-??? > sources
+#
# 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"
+%bcond_without static # static version
+%bcond_with bash_history # additional history in /var/log/bash_hist ;)
+%bcond_without tests # unit testing
-%define ver 4.2
-%define patchlevel 45
+%define ver 5.2
+%define patchlevel 26
%define rel 1
+%define min_readline 8.2
Summary: 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: %{ver}%{?patchlevel:.%{patchlevel}}
Release: %{rel}%{?with_bash_history:inv}
-License: GPL
+License: GPL v3+
Group: Applications/Shells
-Source0: http://ftp.gnu.org/gnu/bash/%{name}-%{ver}.tar.gz
-# Source0-md5: 3fb927c7c33022f1c327f14a81c0d4b0
+Source0: https://ftp.gnu.org/gnu/bash/%{name}-%{ver}.tar.gz
+# Source0-md5: cfb4cf795fc239667f187b3d6b3d396f
Source1: %{name}rc
Source2: %{name}-skel-.bash_logout
Source3: %{name}-skel-.bash_profile
Patch4: %{name}-profile.patch
Patch5: %{name}-requires.patch
Patch6: %{name}-compat.patch
+Patch7: %{name}-loadables.patch
Patch8: %{name}-sighup.patch
Patch9: %{name}-backup_history.patch
Patch10: %{name}-act_like_sh.patch
Patch11: %{name}-elinks_cont.patch
-Patch12: %{name}-pl.po-update.patch
-Patch13: %{name}-format-string.patch
-%patchset_source -f http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-%03g 1 %{patchlevel}
+%patchset_source -f https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-%03g 1 %{patchlevel}
URL: http://www.gnu.org/software/bash/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.69
BuildRequires: automake
BuildRequires: bison
BuildRequires: ncurses-devel >= 5.2
-BuildRequires: readline-devel >= 6.2
+BuildRequires: readline-devel >= %{min_readline}
BuildRequires: rpmbuild(macros) >= 1.462
BuildRequires: sed >= 4.0
BuildRequires: texinfo
# Require static library only for static build
BuildRequires: glibc-static >= 2.2
BuildRequires: ncurses-static >= 5.2
-BuildRequires: readline-static >= 6.2
+BuildRequires: readline-static >= %{min_readline}
%endif
-Requires: readline >= 6.2
+Requires: readline >= %{min_readline}
Requires: setup >= 2.4.6-2
Obsoletes: bash-doc
-Obsoletes: bash2
-Obsoletes: bash2-doc
+Obsoletes: bash2 < 3
+Obsoletes: bash2-doc < 3
Obsoletes: etcskel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define _noautoprovfiles %{_libdir}/%{name}
+
%description
Bash is a GNU project sh-compatible shell or command language
interpreter. Bash (Bourne Again shell) incorporates useful features
Shell oraz jest zgodny ze specyfikacją - IEEE Working Group 1003.2. W
tym pakiecie jest wersja basha skonsolidowana statycznie.
+%package devel
+Summary: Header files for bash plugins development
+Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia wtyczek basha
+Group: Development/Libraries
+# doesn't require base
+
+%description devel
+Header files for bash plugins development.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe do tworzenia wtyczek basha.
+
%prep
%setup -q -n %{name}-%{ver} -a5
# official patches
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
%patch8 -p1
%{?with_bash_history:%patch9 -p1}
%patch10 -p1
%patch11 -p1
-%patch12 -p1
-%patch13 -p1
+
+%{__sed} -i -e 's#/usr/bin/printf#/bin/printf#g' tests/intl2.sub
%build
cp -f /usr/share/automake/config.* support
--enable-dparen-arithmetic \
--enable-separate-helpfiles \
--without-bash-malloc \
- `[ "$mode" = "static" ] && echo "--enable-static-link"` \
+ $([ "$mode" = "static" ] && echo "--enable-static-link") \
--with-installed-readline
%{__make} \
DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
-[ "$mode" = "static" ] && mv -f bash bash.static || :
+if [ "$mode" = "static" ]; then
+ %{__mv} bash bash.static
+fi
done
%{?with_tests:%{__make} tests}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-mv -f $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
%{?with_static:install bash.static $RPM_BUILD_ROOT/bin}
install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/bashrc
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
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/bashbug \
+ $RPM_BUILD_ROOT%{_mandir}/man1/bashbug.1 \
+ $RPM_BUILD_ROOT%{_mandir}/*/man1/bashbug.1
+# packaged as %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/bash
+
+rm -f $RPM_BUILD_ROOT%{_infodir}/dir
%find_lang %{name}
%lua_remove_etc_shells /bin/bash /bin/rbash
end
-%postun -p /sbin/postshell
+%postun -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
%post static -p <lua>
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc CHANGES NEWS README doc/{FAQ,INTRO}
+%doc AUTHORS CHANGES COMPAT NEWS POSIX README RBASH doc/{FAQ,INTRO,bash.html,bashref.html}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bashrc
%config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_logout
%{?with_bash_history:%attr(1733,root,root) %dir /var/log/bash_hist}
%{_infodir}/bash.info*
-%{_mandir}/man1/*
+%{_mandir}/man1/bash.1*
+%{_mandir}/man1/rbash.1*
%lang(es) %{_mandir}/es/man1/*
%lang(fr) %{_mandir}/fr/man1/*
%lang(it) %{_mandir}/it/man1/*
%dir %{_datadir}/%{name}
%doc %{_datadir}/%{name}/*
+# loadables
+%dir %{_libdir}/%{name}
+%attr(755,root,root) %{_libdir}/%{name}/accept
+%attr(755,root,root) %{_libdir}/%{name}/basename
+%attr(755,root,root) %{_libdir}/%{name}/csv
+%attr(755,root,root) %{_libdir}/%{name}/cut
+%attr(755,root,root) %{_libdir}/%{name}/dirname
+%attr(755,root,root) %{_libdir}/%{name}/dsv
+%attr(755,root,root) %{_libdir}/%{name}/fdflags
+%attr(755,root,root) %{_libdir}/%{name}/finfo
+%attr(755,root,root) %{_libdir}/%{name}/getconf
+%attr(755,root,root) %{_libdir}/%{name}/head
+%attr(755,root,root) %{_libdir}/%{name}/id
+%attr(755,root,root) %{_libdir}/%{name}/ln
+%attr(755,root,root) %{_libdir}/%{name}/logname
+%attr(755,root,root) %{_libdir}/%{name}/mkdir
+%attr(755,root,root) %{_libdir}/%{name}/mkfifo
+%attr(755,root,root) %{_libdir}/%{name}/mktemp
+%attr(755,root,root) %{_libdir}/%{name}/mypid
+%attr(755,root,root) %{_libdir}/%{name}/pathchk
+%attr(755,root,root) %{_libdir}/%{name}/print
+%attr(755,root,root) %{_libdir}/%{name}/printenv
+%attr(755,root,root) %{_libdir}/%{name}/push
+%attr(755,root,root) %{_libdir}/%{name}/realpath
+%attr(755,root,root) %{_libdir}/%{name}/rm
+%attr(755,root,root) %{_libdir}/%{name}/rmdir
+%attr(755,root,root) %{_libdir}/%{name}/seq
+%attr(755,root,root) %{_libdir}/%{name}/setpgid
+%attr(755,root,root) %{_libdir}/%{name}/sleep
+%attr(755,root,root) %{_libdir}/%{name}/stat
+%attr(755,root,root) %{_libdir}/%{name}/strftime
+%attr(755,root,root) %{_libdir}/%{name}/sync
+%attr(755,root,root) %{_libdir}/%{name}/tee
+%attr(755,root,root) %{_libdir}/%{name}/truefalse
+%attr(755,root,root) %{_libdir}/%{name}/tty
+%attr(755,root,root) %{_libdir}/%{name}/uname
+%attr(755,root,root) %{_libdir}/%{name}/unlink
+%attr(755,root,root) %{_libdir}/%{name}/whoami
+
%if %{with static}
%files static
%defattr(644,root,root,755)
%attr(755,root,root) /bin/bash.static
%endif
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/bash
+%dir %{_libdir}/%{name}
+%{_libdir}/%{name}/Makefile.inc
+%{_libdir}/%{name}/Makefile.sample
+%{_libdir}/%{name}/loadables.h
+%{_pkgconfigdir}/bash.pc