|
|
|
|
##
|
|
|
|
|
## bash.spec -- OpenPKG RPM Package Specification
|
|
|
|
|
## Copyright (c) 2000-2019 OpenPKG Project <http://openpkg.org/>
|
|
|
|
|
##
|
|
|
|
|
## Permission to use, copy, modify, and distribute this software for
|
|
|
|
|
## any purpose with or without fee is hereby granted, provided that
|
|
|
|
|
## the above copyright notice and this permission notice appear in all
|
|
|
|
|
## copies.
|
|
|
|
|
##
|
|
|
|
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
|
|
|
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
|
|
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
|
|
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
|
|
|
|
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
|
|
|
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
|
|
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
|
|
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
|
|
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
|
## SUCH DAMAGE.
|
|
|
|
|
##
|
|
|
|
|
|
|
|
|
|
# package version
|
|
|
|
|
%define V_base_real 5.0
|
|
|
|
|
%define V_base_comp 50
|
|
|
|
|
%define V_plvl_raw 9
|
|
|
|
|
%define V_plvl_pad 009
|
|
|
|
|
|
|
|
|
|
# package information
|
|
|
|
|
Name: bash
|
|
|
|
|
Summary: Bourne-Again Shell
|
|
|
|
|
URL: http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
|
|
|
|
|
Vendor: Free Software Foundation
|
|
|
|
|
Packager: OpenPKG Project
|
|
|
|
|
Distribution: OpenPKG Community
|
|
|
|
|
Class: CORE
|
|
|
|
|
Group: Shell
|
|
|
|
|
License: GPL
|
|
|
|
|
Version: %{V_base_real}.%{V_plvl_raw}
|
|
|
|
|
Release: 20190815
|
|
|
|
|
|
|
|
|
|
# package options
|
|
|
|
|
%option with_multibyte yes
|
|
|
|
|
|
|
|
|
|
# list of sources
|
|
|
|
|
Source0: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}.tar.gz
|
|
|
|
|
Source1: bash.txt
|
|
|
|
|
Patch0: bash.patch
|
|
|
|
|
Patch1: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-001
|
|
|
|
|
Patch2: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-002
|
|
|
|
|
Patch3: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-003
|
|
|
|
|
Patch4: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-004
|
|
|
|
|
Patch5: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-005
|
|
|
|
|
Patch6: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-006
|
|
|
|
|
Patch7: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-007
|
|
|
|
|
Patch8: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-008
|
|
|
|
|
Patch9: ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/bash%{V_base_comp}-009
|
|
|
|
|
|
|
|
|
|
# build information
|
|
|
|
|
BuildPreReq: OpenPKG, openpkg >= 20160101
|
|
|
|
|
PreReq: OpenPKG, openpkg >= 20160101
|
|
|
|
|
BuildPreReq: readline
|
|
|
|
|
PreReq: readline
|
|
|
|
|
%if "%{with_multibyte}" == "yes"
|
|
|
|
|
BuildPreReq: libiconv, readline::with_multibyte = yes
|
|
|
|
|
PreReq: libiconv, readline::with_multibyte = yes
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%description
|
|
|
|
|
Bash (Bourne-Again Shell) 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 intended to be a conformant
|
|
|
|
|
implementation of the IEEE POSIX Shell and Tools specification (IEEE
|
|
|
|
|
Working Group 1003.2).
|
|
|
|
|
|
|
|
|
|
%track
|
|
|
|
|
prog bash = {
|
|
|
|
|
version = %{V_base_real}
|
|
|
|
|
url = ftp://ftp.cwru.edu/pub/bash/
|
|
|
|
|
regex = bash-(\d+\.\d+)\.tar\.gz
|
|
|
|
|
}
|
|
|
|
|
prog bash:patches = {
|
|
|
|
|
version = %{V_base_comp}-%{V_plvl_pad}
|
|
|
|
|
url = ftp://ftp.cwru.edu/pub/bash/bash-%{V_base_real}-patches/
|
|
|
|
|
regex = bash(\S+-\d+)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
%prep
|
|
|
|
|
# unpack and patch distribution
|
|
|
|
|
%setup -q -n bash-%{V_base_real}
|
|
|
|
|
%patch -p0
|
|
|
|
|
%patch -p0 -P 1
|
|
|
|
|
%patch -p0 -P 2
|
|
|
|
|
%patch -p0 -P 3
|
|
|
|
|
%patch -p0 -P 4
|
|
|
|
|
%patch -p0 -P 5
|
|
|
|
|
%patch -p0 -P 6
|
|
|
|
|
%patch -p0 -P 7
|
|
|
|
|
%patch -p0 -P 8
|
|
|
|
|
%patch -p0 -P 9
|
|
|
|
|
|
|
|
|
|
# ensure generated data is not re-generated on-the-fly
|
|
|
|
|
sleep 1
|
|
|
|
|
touch y.tab.[ch]
|
|
|
|
|
touch configure config.h.in
|
|
|
|
|
|
|
|
|
|
# adjust paths
|
|
|
|
|
%{l_shtool} subst \
|
|
|
|
|
-e 's;^\(#define.*SYS_PROFILE[^"]*\).*;\1 "%{l_prefix}/etc/bash/profile";' \
|
|
|
|
|
pathnames.h.in
|
|
|
|
|
%{l_shtool} subst \
|
|
|
|
|
-e 's;/etc/profile;%{l_prefix}/etc/bash/profile;' \
|
|
|
|
|
doc/bash.1
|
|
|
|
|
%{l_shtool} subst \
|
|
|
|
|
-e 's;^/\* \(#define.*SYS_BASHRC[^"]*\).*;\1 "%{l_prefix}/etc/bash/bashrc";' \
|
|
|
|
|
-e 's;^/\* \(#define.*SYS_BASH_LOGOUT[^"]*\).*;\1 "%{l_prefix}/etc/bash/bash_logout";' \
|
|
|
|
|
-e 's;/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:\.;%{l_prefix}/bin:/bin:/usr/bin:%{l_prefix}/sbin:/sbin:/usr/sbin:.;' \
|
|
|
|
|
-e 's;/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc;%{l_prefix}/bin:/bin:/usr/bin:%{l_prefix}/sbin:/sbin:/usr/sbin;' \
|
|
|
|
|
config-top.h
|
|
|
|
|
%{l_shtool} subst \
|
|
|
|
|
-e 's;^\(#define.*SYS_INPUTRC[^"]*\).*;\1 "%{l_prefix}/etc/bash/inputrc";' \
|
|
|
|
|
lib/readline/rlconf.h
|
|
|
|
|
|
|
|
|
|
# brand with OpenPKG release
|
|
|
|
|
%{l_shtool} subst \
|
|
|
|
|
-e 's;@l_openpkg_release@;%{l_openpkg_release};' \
|
|
|
|
|
version.c
|
|
|
|
|
|
|
|
|
|
%build
|
|
|
|
|
# configure package
|
|
|
|
|
(
|
|
|
|
|
%if "%{with_multibyte}" == "no"
|
|
|
|
|
# force disabled wide-character support
|
|
|
|
|
echo "ac_cv_header_wchar_h=no"
|
|
|
|
|
echo "ac_cv_header_wctype_h=no"
|
|
|
|
|
echo "ac_cv_func_mbsrtowcs=no"
|
|
|
|
|
%endif
|
|
|
|
|
# force disabled internationalization support
|
|
|
|
|
echo "ac_cv_header_libintl_h=no"
|
|
|
|
|
echo "ac_cv_func_gettext=no"
|
|
|
|
|
echo "ac_cv_func_textdomain=no"
|
|
|
|
|
echo "ac_cv_func_bindtextdomain=no"
|
|
|
|
|
echo "ac_cv_lib_intl_bindtextdomain=no"
|
|
|
|
|
) >config.cache
|
|
|
|
|
CC="%{l_cc}" \
|
|
|
|
|
CFLAGS="%{l_cflags -O}" \
|
|
|
|
|
GREP="grep" \
|
|
|
|
|
./configure \
|
|
|
|
|
--cache-file=./config.cache \
|
|
|
|
|
--prefix=%{l_prefix} \
|
|
|
|
|
--mandir=%{l_prefix}/man \
|
|
|
|
|
--infodir=%{l_prefix}/info \
|
|
|
|
|
--enable-readline \
|
|
|
|
|
--enable-debugger \
|
|
|
|
|
--enable-alias \
|
|
|
|
|
--enable-arith-for-command \
|
|
|
|
|
--enable-array-variables \
|
|
|
|
|
--enable-bang-history \
|
|
|
|
|
--enable-brace-expansion \
|
|
|
|
|
--enable-command-timing \
|
|
|
|
|
--enable-cond-command \
|
|
|
|
|
--enable-cond-regexp \
|
|
|
|
|
--enable-coprocesses \
|
|
|
|
|
--enable-direxpand-default \
|
|
|
|
|
--enable-directory-stack \
|
|
|
|
|
--enable-dparen-arithmetic \
|
|
|
|
|
--enable-extended-glob \
|
|
|
|
|
--enable-help-builtin \
|
|
|
|
|
--enable-history \
|
|
|
|
|
--enable-job-control \
|
|
|
|
|
--enable-net-redirections \
|
|
|
|
|
--enable-process-substitution \
|
|
|
|
|
--enable-progcomp \
|
|
|
|
|
--enable-prompt-string-decoding \
|
|
|
|
|
--enable-select \
|
|
|
|
|
--without-gnu-malloc \
|
|
|
|
|
--without-curses \
|
|
|
|
|
%if "%{with_multibyte}" == "yes"
|
|
|
|
|
--enable-multibyte \
|
|
|
|
|
%else
|
|
|
|
|
--disable-multibyte \
|
|
|
|
|
%endif
|
|
|
|
|
--disable-nls
|
|
|
|
|
|
|
|
|
|
# build package
|
|
|
|
|
%{l_make} %{l_mflags}
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
# install package
|
|
|
|
|
%{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
|
|
|
|
|
|
|
|
|
|
# strip down installation
|
|
|
|
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
|
|
|
|
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/bashbug.1
|
|
|
|
|
rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/bashbug
|
|
|
|
|
strip $RPM_BUILD_ROOT%{l_prefix}/bin/bash || true
|
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
|
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/bash
|
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig
|
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{l_prefix}/include
|
|
|
|
|
|
|
|
|
|
# install global configuration files
|
|
|
|
|
%{l_shtool} mkdir -f -p -m 755 \
|
|
|
|
|
$RPM_BUILD_ROOT%{l_prefix}/etc/bash/profile.d
|
|
|
|
|
for name in `grep "^<file" %{SOURCE bash.txt} | sed -e 's;^.*name=";;' -e 's;".*$;;'`; do
|
|
|
|
|
(echo ""; cat %{SOURCE bash.txt}; echo "") |\
|
|
|
|
|
sed -e "1,/^<file name=\"$name\">/d" -e "/<\/file>/,\$d" >$name
|
|
|
|
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \
|
|
|
|
|
$name $RPM_BUILD_ROOT%{l_prefix}/etc/bash/
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# determine installation files
|
|
|
|
|
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
|
|
|
|
|
%{l_files_std} \
|
|
|
|
|
'%config %{l_prefix}/etc/bash/*'
|
|
|
|
|
|
|
|
|
|
%files -f files
|
|
|
|
|
|
|
|
|
|
%clean
|
|
|
|
|
|
|
|
|
|
%post
|
|
|
|
|
if [ ".$1" = .1 ]; then
|
|
|
|
|
# display note about login shell prerequisite
|
|
|
|
|
if [ -f /etc/shells ]; then
|
|
|
|
|
if [ ".`grep $RPM_INSTALL_PREFIX/bin/bash /etc/shells`" = . ]; then
|
|
|
|
|
( echo "Hint: To use $RPM_INSTALL_PREFIX/bin/bash as the login"
|
|
|
|
|
echo "shell for users, please add this path to /etc/shells."
|
|
|
|
|
) | %{l_rpmtool} msg -b -t notice
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|