Summary: Bourne-Again SHell Name: bash Version: 4.3.48 Release: 2%{?dist} License: GPLv3 URL: https://www.gnu.org/software/bash/ Group: System Environment/Base Vendor: VMware, Inc. Distribution: Photon Source0: http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz %define sha1 bash=45ac3c5727e7262334f4dfadecdf601b39434e84 #Upstream patches Patch001: bash43-001 Patch002: bash43-002 Patch003: bash43-003 Patch004: bash43-004 Patch005: bash43-005 Patch006: bash43-006 Patch007: bash43-007 Patch008: bash43-008 Patch009: bash43-009 Patch010: bash43-010 Patch011: bash43-011 Patch012: bash43-012 Patch013: bash43-013 Patch014: bash43-014 Patch015: bash43-015 Patch016: bash43-016 Patch017: bash43-017 Patch018: bash43-018 Patch019: bash43-019 Patch020: bash43-020 Patch021: bash43-021 Patch022: bash43-022 Patch023: bash43-023 Patch024: bash43-024 Patch025: bash43-025 Patch026: bash43-026 Patch027: bash43-027 Patch028: bash43-028 Patch029: bash43-029 Patch030: bash43-030 Patch031: bash43-031 Patch032: bash43-032 Patch033: bash43-033 Patch034: bash43-034 Patch035: bash43-035 Patch036: bash43-036 Patch037: bash43-037 Patch038: bash43-038 Patch039: bash43-039 Patch040: bash43-040 Patch041: bash43-041 Patch042: bash43-042 Patch043: bash43-043 Patch044: bash43-044 Patch045: bash43-045 Patch046: bash43-046 Patch047: bash43-047 Patch048: bash43-048 #https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-006 # with patchlevel removed. Patch440: bash-CVE-2016-9401.patch Patch500: fix-save_bash_input-segfault.patch Patch501: bash-4.3.patch Provides: /bin/sh Provides: /bin/bash Requires(post): ncurses Requires(post): readline %description The package contains the Bourne-Again SHell %package lang Summary: Additional language files for bash Group: System Environment/Base Requires: %{name} == %{version}-%{release} %description lang These are the additional language files of bash. %prep %setup -q -n bash-4.3 %patch001 -p0 %patch002 -p0 %patch003 -p0 %patch004 -p0 %patch005 -p0 %patch006 -p0 %patch007 -p0 %patch008 -p0 %patch009 -p0 %patch010 -p0 %patch011 -p0 %patch012 -p0 %patch013 -p0 %patch014 -p0 %patch015 -p0 %patch016 -p0 %patch017 -p0 %patch018 -p0 %patch019 -p0 %patch020 -p0 %patch021 -p0 %patch022 -p0 %patch023 -p0 %patch024 -p0 %patch025 -p0 %patch026 -p0 %patch027 -p0 %patch028 -p0 %patch029 -p0 %patch030 -p0 %patch031 -p0 %patch032 -p0 %patch033 -p0 %patch034 -p0 %patch035 -p0 %patch036 -p0 %patch037 -p0 %patch038 -p0 %patch039 -p0 %patch040 -p0 %patch041 -p0 %patch042 -p0 %patch043 -p0 %patch044 -p0 %patch045 -p0 %patch046 -p0 %patch047 -p0 %patch048 -p0 %patch440 -p0 %patch500 -p1 %patch501 -p1 %build %configure --bindir=/bin \ --without-bash-malloc \ --with-installed-readline make %{?_smp_mflags} #check if the bash version matches our spec file BASHVERSION="$(./bashversion -r).$(./bashversion -v).$(./bashversion -p)" if [ "$BASHVERSION" != "%{version}" ]; then echo "Please update the bash version to $BASHVERION" >&2 exit 1 fi %install make DESTDIR=%{buildroot} install ln -s bash %{buildroot}/bin/sh install -vdm 755 %{buildroot}/etc install -vdm 755 %{buildroot}/etc/profile.d install -vdm 755 %{buildroot}/etc/skel # Create dircolors cat > %{buildroot}/etc/profile.d/dircolors.sh << "EOF" # Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc. if [ -f "/etc/dircolors" ] ; then eval $(dircolors -b /etc/dircolors) if [ -f "$HOME/.dircolors" ] ; then eval $(dircolors -b $HOME/.dircolors) fi fi alias ls='ls --color=auto' alias grep='grep --color=auto' EOF cat > %{buildroot}/etc/profile.d/extrapaths.sh << "EOF" if [ -d /usr/local/lib/pkgconfig ] ; then pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH fi if [ -d /usr/local/bin ]; then pathprepend /usr/local/bin fi if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then pathprepend /usr/local/sbin fi EOF cat > %{buildroot}/etc/profile.d/readline.sh << "EOF" # Setup the INPUTRC environment variable. if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then INPUTRC=/etc/inputrc fi export INPUTRC EOF cat > %{buildroot}/etc/profile.d/umask.sh << "EOF" # By default, the umask should be set. if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then umask 002 else umask 022 fi EOF cat > %{buildroot}/etc/profile.d/i18n.sh << "EOF" # Begin /etc/profile.d/i18n.sh unset LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES \ LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION if [ -n "$XDG_CONFIG_HOME" ] && [ -r "$XDG_CONFIG_HOME/locale.conf" ]; then . "$XDG_CONFIG_HOME/locale.conf" elif [ -r /etc/locale.conf ]; then . /etc/locale.conf fi export LANG="${LANG:-C}" [ -n "$LC_CTYPE" ] && export LC_CTYPE [ -n "$LC_NUMERIC" ] && export LC_NUMERIC [ -n "$LC_TIME" ] && export LC_TIME [ -n "$LC_COLLATE" ] && export LC_COLLATE [ -n "$LC_MONETARY" ] && export LC_MONETARY [ -n "$LC_MESSAGES" ] && export LC_MESSAGES [ -n "$LC_PAPER" ] && export LC_PAPER [ -n "$LC_NAME" ] && export LC_NAME [ -n "$LC_ADDRESS" ] && export LC_ADDRESS [ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE [ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT [ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION # End /etc/profile.d/i18n.sh EOF cat > %{buildroot}/etc/bash.bashrc << "EOF" # Begin /etc/bash.bashrc # Written for Beyond Linux From Scratch # by James Robertson # updated by Bruce Dubbs # System wide aliases and functions. # System wide environment variables and startup programs should go into # /etc/profile. Personal environment variables and startup programs # should go into ~/.bash_profile. Personal aliases and functions should # go into ~/.bashrc # Provides colored /bin/ls and /bin/grep commands. Used in conjunction # with code in /etc/profile. alias ls='ls --color=auto' alias grep='grep --color=auto' # Provides prompt for non-login shells, specifically shells started # in the X environment. [Review the LFS archive thread titled # PS1 Environment Variable for a great case study behind this script # addendum.] NORMAL="\[\e[0m\]" RED="\[\e[1;31m\]" GREEN="\[\e[1;32m\]" if [[ $EUID == 0 ]] ; then PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL" else PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL" fi unset RED GREEN NORMAL if test -n "$SSH_CONNECTION" -a -z "$PROFILEREAD"; then . /etc/profile > /dev/null 2>&1 fi # End /etc/bash.bashrc EOF cat > %{buildroot}/etc/skel/.bash_profile << "EOF" # Begin ~/.bash_profile # Written for Beyond Linux From Scratch # by James Robertson # updated by Bruce Dubbs # Personal environment variables and startup programs. # Personal aliases and functions should go in ~/.bashrc. System wide # environment variables and startup programs are in /etc/profile. # System wide aliases and functions are in /etc/bashrc. if [ -f "$HOME/.bashrc" ] ; then source $HOME/.bashrc fi if [ -d "$HOME/bin" ] ; then pathprepend $HOME/bin fi # Having . in the PATH is dangerous #if [ $EUID -gt 99 ]; then # pathappend . #fi # End ~/.bash_profile EOF cat > %{buildroot}/etc/skel/.bashrc << "EOF" # Begin ~/.bashrc # Written for Beyond Linux From Scratch # by James Robertson # Personal aliases and functions. # Personal environment variables and startup programs should go in # ~/.bash_profile. System wide environment variables and startup # programs are in /etc/profile. System wide aliases and functions are # in /etc/bashrc. if [ -f "/etc/bash.bashrc" ] ; then source /etc/bash.bashrc fi # End ~/.bashrc EOF cat > %{buildroot}/etc/skel/.bash_logout << "EOF" # Begin ~/.bash_logout # Written for Beyond Linux From Scratch # by James Robertson # Personal items to perform on logout. # End ~/.bash_logout EOF dircolors -p > %{buildroot}/etc/dircolors %find_lang %{name} rm -rf %{buildroot}/%{_infodir} %post if [ $1 -eq 1 ] ; then if [ ! -f "/root/.bash_logout" ] ; then cp /etc/skel/.bash_logout /root/.bash_logout fi if [ ! -f /etc/shells ]; then echo "/bin/sh" >> /etc/shells echo "/bin/bash" >> /etc/shells echo "%{_bindir}/sh" >> /etc/shells echo "%{_bindir}/bash" >> /etc/shells else grep -q '^/bin/sh$' /etc/shells || \ echo "/bin/sh" >> /etc/shells grep -q '^/bin/bash$' /etc/shells || \ echo "/bin/bash" >> /etc/shells grep -q '^%{_bindir}/sh$' /etc/shells || \ echo "%{_bindir}/sh" >> /etc/shells grep -q '^%{_bindir}/bash$' /etc/shells || \ echo "%{_bindir}/bash" >> /etc/shells fi fi if [ $1 -eq 2 ] ; then if [ ! -f /etc/shells ]; then echo "/bin/sh" >> /etc/shells echo "/bin/bash" >> /etc/shells echo "%{_bindir}/sh" >> /etc/shells echo "%{_bindir}/bash" >> /etc/shells else grep -q '^/bin/sh$' /etc/shells || \ echo "/bin/sh" >> /etc/shells grep -q '^/bin/bash$' /etc/shells || \ echo "/bin/bash" >> /etc/shells grep -q '^%{_bindir}/sh$' /etc/shells || \ echo "%{_bindir}/sh" >> /etc/shells grep -q '^%{_bindir}/bash$' /etc/shells || \ echo "%{_bindir}/bash" >> /etc/shells fi fi %postun if [ $1 -eq 0 ] ; then if [ -f "/root/.bash_logout" ] ; then rm -f /root/.bash_logout fi if [ ! -x /bin/sh ]; then grep -v '^/bin/sh$' /etc/shells | \ grep -v '^/bin/sh$' > /etc/shells.rpm && \ mv /etc/shells.rpm /etc/shells fi if [ ! -x /bin/bash ]; then grep -v '^/bin/bash$' /etc/shells | \ grep -v '^/bin/bash$' > /etc/shells.rpm && \ mv /etc/shells.rpm /etc/shells fi if [ ! -x %{_bindir}/sh ]; then grep -v '^%{_bindir}/sh$' /etc/shells | \ grep -v '^%{_bindir}/sh$' > /etc/shells.rpm && \ mv /etc/shells.rpm /etc/shells fi if [ ! -x %{_bindir}/bash ]; then grep -v '^%{_bindir}/bash$' /etc/shells | \ grep -v '^%{_bindir}/bash$' > /etc/shells.rpm && \ mv /etc/shells.rpm /etc/shells fi fi %files %defattr(-,root,root) /bin/* %{_sysconfdir}/bash.bashrc %{_sysconfdir}/dircolors %{_sysconfdir}/profile.d/* %{_sysconfdir}/skel/.bashrc %{_sysconfdir}/skel/.bash_logout %{_sysconfdir}/skel/.bash_profile %doc %{_defaultdocdir}/%{name} %doc %{_mandir}/*/* %files lang -f %{name}.lang #%defattr(-,root,root) %changelog * Mon Nov 13 2017 Xiaolin Li 4.3.48-2 - Fix CVE-2016-9401. * Thu Oct 19 2017 Bo Gan 4.3.48-1 - Upstream patch level 48 applied - Fix rpm version to match upstream patch level - Address CVE-2016-0634 * Fri Jun 9 2017 Bo Gan 4.3.30-10 - Add post dependency * Fri Jun 2 2017 Divya Thaluru 4.3.30-9 - Added /usr/bin/sh and /bin/sh entries in /etc/shells * Tue Apr 04 2017 Anish Swaminathan 4.3.30-8 - Apply patch for CVE-2016-7543 * Tue Feb 7 2017 Divya Thaluru 4.3.30-7 - Added /usr/bin/bash and /bin/bash entries in /etc/shells * Thu Feb 2 2017 Divya Thaluru 4.3.30-6 - Modified bash entry in /etc/shells * Tue Jan 10 2017 Divya Thaluru 4.3.30-5 - Added bash entry to /etc/shells * Tue May 24 2016 Priyesh Padmavilasom 4.3.30-4 - GA - Bump release of all rpms * Tue May 3 2016 Divya Thaluru 4.3.30-3 - Fixing spec file to handle rpm upgrade scenario correctly * Thu Mar 10 2016 Divya Thaluru 4.3.30-2 - Adding compile options to load bash.bashrc file and loading source file during non-inetractive non-login shell * Tue Jan 12 2016 Xiaolin Li 4.3.30-1 - Updated to version 4.3.30 * Wed Aug 05 2015 Kumar Kaushik 4.3-4 - Adding post unstall section. * Wed Jul 22 2015 Alexey Makhalov 4.3-3 - Fix segfault in save_bash_input. * Tue Jun 30 2015 Alexey Makhalov 4.3-2 - /etc/profile.d permission fix. Pack /etc files into rpm * Wed Oct 22 2014 Divya Thaluru 4.3-1 - Initial version