%define bashversion 5.0 %define patchlevel 18 Summary: The GNU Bourne Again shell (bash). Summary(ja): GNU Bourne Again シェル (bash). Name: bash Version: %{bashversion}.%{patchlevel} Release: 1%{?_dist_release} Group: system Vendor: Project Vine Distribution: Vine Linux Packager: daisuke License: GPLv3+ Source0: http://ftp.gnu.org/pub/gnu/bash/bash-%{bashversion}.tar.gz Source10: bashrc-vine # Official upstream patches Patch1: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-001 Patch2: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-002 Patch3: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-003 Patch4: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-004 Patch5: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-005 Patch6: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-006 Patch7: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-007 Patch8: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-008 Patch9: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-009 Patch10: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-010 Patch11: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-011 Patch12: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-012 Patch13: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-013 Patch14: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-014 Patch15: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-015 Patch16: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-016 Patch17: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-017 Patch18: http://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-018 # Other patches #Patch101: bash-2.02-security.patch Patch102: bash-2.03-paths.patch Patch103: bash-2.03-profile.patch Patch104: bash-2.05a-interpreter.patch Patch105: bash-2.05b-debuginfo.patch #Patch106: bash-2.05b-manso.patch Patch107: bash-2.05b-pgrp_sync.patch #Patch108: bash-2.05b-readline-oom.patch #Patch109: bash-2.05b-xcc.patch Patch110: bash-3.2-audit.patch Patch111: bash-3.2-ssh_source_bash.patch #Patch112: bash-bashbug.patch Patch113: bash-infotags.patch Patch114: bash-requires.patch Patch115: bash-setlocale.patch Patch116: bash-tty-tests.patch # 484809, check if interp section is NOBITS Patch117: bash-4.0-nobits.patch # Do the same CFLAGS in generated Makefile in examples Patch118: bash-4.1-examples.patch # Builtins like echo and printf won't report errors # when output does not succeed due to EPIPE Patch119: bash-4.1-broken_pipe.patch # Enable system-wide .bash_logout for login shells Patch120: bash-4.2-rc2-logout.patch # Static analyzis shows some issues in bash-2.05a-interpreter.patch Patch121: bash-4.2-coverity.patch # Don't call malloc in signal handler #Patch122: bash-4.1-defer-sigchld-trap.patch # 799958, updated info about trap Patch123: bash-4.2-manpage_trap.patch # https://www.securecoding.cert.org/confluence/display/seccode/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow Patch125: bash-4.2-size_type.patch # 1112710 - mention ulimit -c and -f POSIX block size Patch128: bash-4.3-man-ulimit.patch # A series of patches emitted by upstream since 4.3-18 #Patch134: bash-4.3-pathexp-globignore-delim.patch # 1102815 - fix double echoes in vi visual mode Patch135: bash-4.3-noecho.patch # 1182278 - bash crashes on `select' if REPLY is readonly #Patch137: bash-4.3-select-readonly.patch #1241533,1224855 - bash leaks memory when LC_ALL set Patch138: bash-4.3-memleak-lc_all.patch #1245233 - old memleak reappeared, taken from upstream #Patch139: bash-4.3-old-memleak.patch # bash-4.4 builds loadable builtin examples by default # this patch disables it Patch140: bash-4.4-no-loadable-builtins.patch Buildroot: %{_tmppath}/%{name}-%{version}-root BuildRequires: texinfo, bison, ncurses-devel, autoconf, gettext Obsoletes: bash <= 1.14.7 Obsoletes: bash2 %description 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. %package doc Summary: Documentation for the GNU Bourne Again shell (bash). Summary(ja): GNU Bourne Again シェル向けドキュメント Group: documentation Requires: %{name} = %{version}-%{release} Obsoletes: bash2-doc %description doc This is a separate documentation package for the GNU Bourne Again shell. %debug_package %prep %setup -q -n %{name}-%{bashversion} # Official upstream patches %patch1 -p0 -b .001 %patch2 -p0 -b .002 %patch3 -p0 -b .003 %patch4 -p0 -b .004 %patch5 -p0 -b .005 %patch6 -p0 -b .006 %patch7 -p0 -b .007 %patch8 -p0 -b .008 %patch9 -p0 -b .009 %patch10 -p0 -b .010 %patch11 -p0 -b .011 %patch12 -p0 -b .012 %patch13 -p0 -b .013 %patch14 -p0 -b .014 %patch15 -p0 -b .015 %patch16 -p0 -b .016 %patch17 -p0 -b .017 %patch18 -p0 -b .018 # Other patches %patch102 -p1 -b .paths %patch103 -p1 -b .profile %patch104 -p1 -b .interpreter %patch105 -p1 -b .debuginfo %patch107 -p1 -b .pgrp_sync %patch110 -p1 -b .audit %patch111 -p1 -b .ssh_source_bash %patch113 -p1 -b .infotags %patch114 -p1 -b .requires %patch115 -p1 -b .setlocale %patch116 -p1 -b .tty_tests %patch117 -p1 -b .nobits %patch118 -p1 -b .examples %patch119 -p1 -b .broken_pipe %patch120 -p1 -b .logout %patch121 -p1 -b .coverity %patch123 -p1 %patch125 -p1 -b .size_type %patch128 -p1 -b .ulimit %patch135 -p1 -b .noecho %patch138 -p1 -b .lc_all %patch140 -p1 -b .no_loadable_builtin echo %{version} > _distribution echo %{release} |sed 's/vl.*//' > _patchlevel %build %configure --with-bash-malloc=no make CPPFLAGS="-D_GNU_SOURCE -DRECYCLES_PIDS `getconf LFS_CFLAGS`" %install rm -rf %{buildroot} # Fix bug #83776 perl -pi -e 's,bashref\.info,bash.info,' doc/bashref.info make DESTDIR=$RPM_BUILD_ROOT install pushd $RPM_BUILD_ROOT mkdir ./bin mv ./usr/bin/bash ./bin/bash ln -s bash ./bin/sh rm -f .%{_infodir}/dir popd ln -s bash.1 %{buildroot}%{_mandir}/man1/sh.1 # make manpages for bash builtins as per suggestion in DOC/README pushd doc sed -e ' /^\.SH NAME/, /\\- bash built-in commands, see \\fBbash\\fR(1)$/{ /^\.SH NAME/d s/^bash, // s/\\- bash built-in commands, see \\fBbash\\fR(1)$// s/,//g b } d ' builtins.1 > man.pages for i in echo pwd test kill; do perl -pi -e "s,$i,,g" man.pages perl -pi -e "s, , ,g" man.pages done install -c -m 644 builtins.1 %{buildroot}%{_mandir}/man1/builtins.1 for i in `cat man.pages` ; do echo .so man1/builtins.1 > %{buildroot}%{_mandir}/man1/$i.1 chmod 0644 ${RPM_BUILD_ROOT}%{_mandir}/man1/$i.1 done mkdir -p $RPM_BUILD_ROOT/etc/profile.d/ install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/etc/bashrc # Not for printf, false and true (conflict with coreutils) rm -f $RPM_BUILD_ROOT%{_mandir}/man1/printf.1 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/true.1 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/false.1 popd %find_lang %{name} rm -rf $RPM_BUILD_ROOT/%{_docdir}/bash %clean rm -rf %{buildroot} # ***** bash doesn't use install-info. It's always listed in %{_infodir}/dir # to prevent prereq loops # post is in lua so that we can run it without any external deps. Helps # for bootstrapping a new install. # Jesse Keating 2009-01-29 (code from Ignacio Vazquez-Abrams) %post -p bashfound = false; shfound = false; f = io.open("/etc/shells", "r"); if f == nil then f = io.open("/etc/shells", "w"); else repeat t = f:read(); if t == "/bin/bash" then bashfound = true; end if t == "/bin/sh" then shfound = true; end until t == nil; end f:close() f = io.open("/etc/shells", "a"); if not bashfound then f:write("/bin/bash\n") end if not shfound then f:write("/bin/sh\n") end f:close() %files -f %{name}.lang %defattr(-,root,root) %license COPYING %doc CHANGES %doc examples %config(noreplace) /etc/bashrc /bin/bash /bin/sh %{_infodir}/bash.info* %{_mandir}/*/* %{_mandir}/*/..1* %{_bindir}/bashbug %files doc %defattr(-,root,root) %doc COMPAT NEWS NOTES POSIX RBASH %doc examples/functions/ examples/misc/ %doc examples/scripts*/ %doc examples/startup-files/ examples/complete/ examples/loadables/ %doc doc/*.ps doc/*.0 doc/*.html doc/article.txt %doc doc/FAQ doc/INTRO doc/article.ms doc/README %changelog * Sat Sep 12 2020 Tomohiro "Tomo-p" KATO 5.0.18-1 - updated to 5.0 patch level 18. * Sat Feb 15 2020 Tomohiro "Tomo-p" KATO 5.0.16-1 - updated to 5.0 patch level 16. * Thu Sep 12 2019 Tomohiro "Tomo-p" KATO 5.0.11-1 - updated to 5.0 patch level 11. * Thu Aug 29 2019 Tomohiro "Tomo-p" KATO 5.0.9-1 - updated to 5.0 patch level 9. - dropped Patch101, 106, 108, 109, 112, 122, 134, 137 and 139. - imported Patch140 from rawhide. * Tue Jul 5 2016 Tomohiro "Tomo-p" KATO 4.3.46-1 - updated to 4.3 patch level 46. * Sat Sep 26 2015 Tomohiro "Tomo-p" KATO 4.3.42-1 - updated to 4.3 patch level 42. - imported patch 128-139 from RawHide. * Fri Oct 3 2014 Tomohiro "Tomo-p" KATO 4.3.29-1 - updated to 4.3 patch level 29. - removed patch1000 (included in 4.3.26). * Thu Sep 25 2014 Tomohiro "Tomo-p" KATO 4.3.25-2 - added patch1000 to fix CVE-2014-7169. * Thu Sep 25 2014 Tomohiro "Tomo-p" KATO 4.3.25-1 - updated to 4.3 patch level 25. * Tue Jun 10 2014 Daisuke SUZUKI 4.3.18-1 - update to 4.3 patch level 18 * Wed May 14 2014 Daisuke SUZUKI 4.3.11-1 - update to 4.3 patch level 11 * Mon Mar 18 2013 Daisuke SUZUKI 4.2.45-1 - update to 4.2 patch level 45 - import some patch from fedora package (122-127) - patch122: Don't call malloc in signal handler - patch123: #799958, updated info about trap - patch124: #695656, block the signal and unblock it after the new handler is installed - patch125: Use unsigned type for size https://www.securecoding.cert.org/confluence/display/seccode/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow - patch126: #903833, Fix missing close(), fixes fd leaks * Sat Oct 6 2012 Satoshi IWAMOTO 4.2.37-2 - remove postun lua script because bash will be never uninstalled * Mon Sep 17 2012 Daisuke SUZUKI 4.2.37-1 - update to 4.2 patch level 37 * Fri Feb 17 2012 Daisuke SUZUKI 4.2.20-1 - update to 4.2 patch level 20 * Tue Apr 12 2011 Daisuke SUZUKI 4.2.8-1 - update to 4.2 patch level 8 - use lua script in post/postun - update patches from fedora * Fri Sep 03 2010 Daisuke SUZUKI 4.1-1 - update to 4.1 patch level 7 * Fri Mar 5 2010 MATSUBAYASHI Kohji - 3.2-9 - check if /bin/grep exists on %%post script * Fri Feb 12 2010 MATSUBAYASHI Kohji - 3.2-8 - rebuilt with gcc-4.4.3-3 on ppc * Tue Feb 2 2010 MATSUBAYASHI Kohji - 3.2-7 - rebuilt with new toolchain * Fri Dec 4 2009 MATSUBAYASHI Kohji - 3.2-6 - revert changes on 3.2-5 (avoid a nasty dependency loop on bootstrapping) * Fri Dec 4 2009 MATSUBAYASHI Kohji - 3.2-5 - add Requires(post): grep * Sat Oct 24 2009 MATSUBAYASHI Kohji - 3.2-4 - remove obsolete /bin/bash2 entry from /etc/shells * Mon Apr 27 2009 Daisuke SUZUKI 3.2-3 - add Requires(post): ncurses (should be added by find-requires..) * Sun Mar 29 2009 Daisuke SUZUKI 3.2-2 - add upstream patch (from 040 to 048) - build against ncurses-devel (libtinfo) - spec in utf-8 * Mon May 12 2008 Ryoichi INAGAKI 3.2-1vl5 - added upstream patch (from 026 to 039) - added Japanese summary - applied new versioning policy * Fri Jan 18 2008 Shu KONNO 3.2-0vl2 - rebuilt with libtermcap-devel * Fri Oct 26 2007 Daisuke SUZUKI 3.2-0vl1 - new upstream release - add upstream patch (from 001 to 025) - remove Provides: bash2 * Wed May 09 2007 MATSUBAYASHI Kohji 2.05b-0vl4 - rebuilt with new toolchain * Mon Sep 11 2006 Kazutaka HARADA 2.05b-0vl3 - change doc Group to Applications/Documentation. - quote CPPFLAGS to avoid configure error. * Mon Jun 28 2004 NISHIMURA Daisuke 2.05b-0vl2 - Don't read /etc/profile.d/*.sh in /etc/bashrc; done in /etc/profile * Wed Mar 10 2004 Ryoichi INAGAKI 2.05b-0vl1 - update to 2.05b - rebuild with new toolchains - add make check - add %postun script based on Fedora development - README file moved doc package - update Patch5 and Patch8 from Fedora development - change Patch6 - remove Patch2 and Patch100 (bash-2.05b supports multibyte string) - add Patch11--39 from Fedora development 2.05b-36 * Tim Waugh - Fix parameter expansion in multibyte locales (bug #112657). - Speed up UTF-8 command-line redrawing in the common case (bug #102353, bug #110777). - Apply upstream patches (bug #109269 among others). - Fix bash.info (bug #83776). - Add bash205b-007 patch to fix bug #106876. - Avoid crashing on multibyte input when locale is set incorrectly (bug #74266). - LFS support (bug #103627). - Fix completion display when multibyte or control characters are to be shown (bug #90201). - Fix a warning message (bug #79629). - Don't build with AFS support (bug #86514). - Don't explicitly strip binaries (bug #85995). - Really fix bug #83331 for good. - Fix builtins.1. - Actually apply the patch (bug #83331). - Fix history/UTF-8 bug (bug #83331). - More tab-completion fixing (bug #72512). - Force pgrp synchronization (bug #81653). - Prevent prompt overwriting output (bug #74383). - Fix '-rbash' (bug #78455). - Add readline-init patch (bug #74925). - Add the (4) patches from ftp.gnu.org (bug #75888, bug #72512). - Ship '.' man page, which doesn't get picked up by glob. - Locale shell variables fix (bug #74701). * Elliot Lee - (patch26) Don't call 'size' in makefile. Pointless, and interferes with cross compiles. * Wed Oct 9 2002 NISHIMURA Daisuke 2.05-0vl1 - update to 2.05 - add README.jpatch to %doc - remove patch4 (bash2): revert command name in man pages to "bash" - fix perl command to remove man pages conflict with sh-utils - remove section of config.h.in from patch0 to prevent remake of configure - change patch9: define in config-top.h to avoid conflict with patch100 - remove patches 7, 10 & 101 * Mon Apr 8 2002 NISHIMURA Daisuke 2.04-1vl14 - made a link for man sh * Thu Nov 15 2001 MATSUBAYASHI Kohji 2.04-1vl13 - added missing %%post and %%triggerpostun section * Sun Jul 15 2001 MATSUBAYASHI 'Shaolin' Kohji - 2.04-1vl12 - now bash2 is finally bash * Sun Jul 15 2001 Daisuke SUZUKI 2.04-1vl11 - build for Playstation2 * Mon Jun 11 2001 MATSUBAYASHI 'Shaolin' Kohji - 2.04-1vl10 - Provides: bash = %%{version} * Thu Jun 07 2001 Satoshi MACHINO 2.04-1vl9 - added Provides: bash * Thu Jun 07 2001 Satoshi MACHINO 2.04-1vl8 - Obsoletes: bash - changed Copyright to License * Fri Dec 29 2000 Lisa Sagami - 2.04-1vl7 - deleted: /etc/profile.d/alias.sh (which we have in /etc/skel/.bashrc) - corrected: bashrc-vine -> bashrc * Sat Dec 16 2000 Satoshi MACHINO 2.04-1vl6 - combined bash-1.x and bash-2.x packages - added some patches from bash-2.04-13mdk * Sun Dec 10 2000 Jun Nishii 2.04-1vl5 - fix spec macros - added tests * Sun Nov 19 2000 Satoshi MACHINO 2.04-1vl5 - build with gcc-2.95.3 - partially used rpmmacros * Fri Sep 8 2000 Jun Nishii - minor bug fix in spec file * Sun Aug 27 2000 MATSUBAYASHI 'Shaolin' Kohji - 2.04-1vl3 - modified %install and %files section to handle compressed man page(s) * Thu Mar 23 2000 Yasuyuki Furukawa - added pcomplete patch to fix complete if the candidate list is NULL. * Wed Mar 22 2000 Yasuyuki Furukawa - updated to 2.04 * Tue Sep 14 1999 Dale Lovelace - Remove annoying ^H's from documentation * Fri Jul 16 1999 Ken Estes - patch to detect what executables are required by a script. * Sun Mar 21 1999 Cristian Gafton - auto rebuild in the new build environment (release 4) * Fri Mar 19 1999 Jeff Johnson - strip binaries. - include bash-doc correctly. * Thu Mar 18 1999 Preston Brown - fixed post/postun /etc/shells work. * Thu Mar 18 1999 Cristian Gafton - updated again text in the spec file * Mon Feb 22 1999 Jeff Johnson - updated text in spec file. - update to 2.03. * Fri Feb 12 1999 Cristian Gafton - build it as bash2 instead of bash * Tue Feb 9 1999 Bill Nottingham - set 'NON_INTERACTIVE_LOGIN_SHELLS' so profile gets read * Thu Jan 14 1999 Jeff Johnson - rename man pages in bash-doc to avoid packaging conflicts (#606). * Wed Dec 02 1998 Cristian Gafton - patch for the arm - use $RPM_ARCH-redhat-linux as the build target * Tue Oct 6 1998 Bill Nottingham - rewrite %pre, axe %postun (to avoid prereq loops) * Wed Aug 19 1998 Jeff Johnson - resurrect for RH 6.0. * Sun Jul 26 1998 Jeff Johnson - update to 2.02.1 * Thu Jun 11 1998 Jeff Johnson - Package for 5.2. * Mon Apr 20 1998 Ian Macdonald - added POSIX.NOTES doc file - some extraneous doc files removed - minor .spec file changes * Sun Apr 19 1998 Ian Macdonald - upgraded to version 2.02 - Alpha, MIPS & Sparc patches removed due to lack of test platforms - glibc & signal patches no longer required - added documentation subpackage (doc) * Fri Nov 07 1997 Donnie Barnes - added signal handling patch from Dean Gaudet that is based on a change made in bash 2.0. Should fix some early exit problems with suspends and fg. * Mon Oct 20 1997 Donnie Barnes - added %clean * Mon Oct 20 1997 Erik Troan - added comment explaining why install-info isn't used - added mips patch * Fri Oct 17 1997 Donnie Barnes - added BuildRoot * Tue Jun 03 1997 Erik Troan - built against glibc