wok-next annotate bash/receipt @ rev 20333

Up bmpanel2, urxvt, usbip
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Nov 15 16:27:09 2017 +0200 (2017-11-15)
parents e9bd4eca24b2
children 90a5eb560fd6
rev   line source
al@19743 1 # SliTaz package receipt v2.
pankso@14 2
pankso@14 3 PACKAGE="bash"
al@19743 4 VERSION="4.4.12"
pascal@17197 5 BASEVERSION="${VERSION%.*}"
al@19561 6 CATEGORY="shells"
al@19561 7 SHORT_DESC="The GNU bourne shell"
pankso@14 8 MAINTAINER="pankso@slitaz.org"
pascal@15201 9 LICENSE="GPL3"
al@19561 10 WEB_SITE="https://www.gnu.org/software/bash/"
al@19561 11 TAGS="shell"
al@19561 12
pascal@17197 13 TARBALL="$PACKAGE-$BASEVERSION.tar.gz"
pankso@14 14 WGET_URL="$GNU_MIRROR/$PACKAGE/$TARBALL"
al@19561 15
pascal@17195 16 BASHCHECKURL="https://raw.githubusercontent.com/hannob/bashcheck/master/bashcheck"
pascal@17195 17 BASHCHECK="$(basename $BASHCHECKURL)"
pascal@17197 18 BASHPATCHES="$(for i in $(seq 1 ${VERSION##*.}); do printf "bash${BASEVERSION/./}-%03d " $i; done)"
pascal@17195 19 EXTRA_SOURCE_FILES="$BASHCHECK $BASHPATCHES"
pankso@14 20
al@19574 21 BUILD_DEPENDS="ncurses-dev readline-dev texinfo gettext patch"
al@19743 22 SPLIT="bash-dev"
pascal@17195 23
pascal@17195 24 patch_bash()
pascal@17195 25 {
al@19561 26 for i in $BASHPATCHES; do
al@19561 27 [ -s "$SOURCES_REPOSITORY/$i" ] ||
pascal@17195 28 wget -O "$SOURCES_REPOSITORY/$i" \
pascal@17197 29 http://ftp.gnu.org/gnu/bash/bash-$BASEVERSION-patches/$i
al@19561 30 echo "Apply $i patch..."
al@19561 31 patch -p0 -i $SOURCES_REPOSITORY/$i | awk '{print " * " $0;}'
pascal@17195 32 done
pascal@17195 33 }
slaxemulator@10407 34
gokhlayeh@8171 35 # Rules to compile & install the temporary toolchain.
gokhlayeh@8171 36 cook_tmp_toolchain()
gokhlayeh@8171 37 {
gokhlayeh@8171 38 cd $src
pascal@17195 39 patch_bash
gokhlayeh@8171 40 ./configure --without-bash-malloc &&
gokhlayeh@8171 41 make && make install
gokhlayeh@8171 42 }
gokhlayeh@8171 43
pankso@14 44 # Rules to configure and make the package.
pankso@14 45 compile_rules()
pankso@14 46 {
pankso@14 47 # Patch and then build.
pascal@17195 48 patch_bash
pankso@10352 49 # Skip tests that can not run while cross-compiling.
al@19561 50 cat > config.cache <<EOF
pankso@10352 51 ac_cv_func_mmap_fixed_mapped=yes
pankso@10352 52 ac_cv_func_strcoll_works=yes
pankso@10352 53 ac_cv_func_working_mktime=yes
pankso@10352 54 bash_cv_func_sigsetjmp=present
pankso@10352 55 bash_cv_getcwd_malloc=yes
pankso@10352 56 bash_cv_job_control_missing=present
pankso@10352 57 bash_cv_printf_a_format=yes
pankso@10352 58 bash_cv_sys_named_pipes=present
pankso@10352 59 bash_cv_ulimit_maxfds=yes
pankso@10352 60 bash_cv_under_sys_siglist=yes
pankso@10352 61 bash_cv_unusable_rtsigs=no
pankso@10352 62 gt_cv_int_divbyzero_sigfpe=yes
pankso@10352 63 EOF
pankso@10344 64 ./configure \
pankso@10352 65 $CONFIGURE_ARGS \
pankso@10352 66 --cache-file=config.cache \
pankso@10344 67 --bindir=/bin \
al@19561 68 --enable-history \
al@19561 69 --enable-alias \
al@19561 70 --disable-nls \
al@19561 71 --without-bash-malloc \
pankso@10344 72 --disable-help-builtin \
pankso@10344 73 --with-installed-readline &&
pascal@1553 74 make &&
gokhlayeh@8171 75 # Bash doesn't care about DESTDIR in environnment variable.
gokhlayeh@8171 76 make DESTDIR=$DESTDIR install
al@19561 77
al@19743 78 # Config files
al@19743 79 cp -a $stuff/etc $install
al@19743 80 chown -R root:root $install
al@19743 81
al@19561 82 # Check bash against vulnerabilities
al@19561 83 [ -s "$SOURCES_REPOSITORY/$BASHCHECK" ] ||
al@19561 84 wget -O "$SOURCES_REPOSITORY/$BASHCHECK" $BASHCHECKURL
al@19561 85 echo
al@19561 86 $DESTDIR/bin/bash $SOURCES_REPOSITORY/$BASHCHECK $DESTDIR/bin/bash | \
al@19561 87 tee bashcheck.log
al@19561 88 echo
pascal@17195 89 grep Vulnerable bashcheck.log && echo "ERROR: Vulnerable"
pankso@14 90 }
pankso@14 91
pankso@14 92 # Rules to gen a SliTaz package suitable for Tazpkg.
pankso@14 93 genpkg_rules()
pankso@14 94 {
al@19743 95 case $PACKAGE in
al@19743 96 bash)
al@19743 97 copy @std
al@19743 98 DEPENDS="ncurses readline"
al@19743 99 ;;
al@19743 100 *-dev) copy @dev;;
al@19743 101 esac
pankso@14 102 }
pankso@14 103
xfred222@13689 104
al@19743 105 post_install_bash()
pankso@14 106 {
al@18467 107 mkdir -p "$1/etc/skel"; cp -a "$1/etc/bashrc" "$1/etc/skel/.bashrc"
al@18466 108
al@18466 109 # Exit function in non-interactive mode (when user can't answer question)
al@18968 110 ! tty -s && return
al@18466 111
al@19561 112 echo -n 'Do you want to set /bin/bash to default (y/N) ? : '
al@18466 113 read -t 30 answer
al@18481 114 [ "$answer" != 'y' ] && return
al@18466 115
al@18466 116 echo
al@19561 117 echo 'Setting /bin/bash as default shell for all users'
al@18466 118 sed -i 's|:/bin/[ckz]*sh$|:/bin/bash|' "$1/etc/passwd"
al@18466 119
al@18466 120 echo 'Creating ~/.bashrc file for all users'
al@18466 121 for i in $(awk -F: '$7=="/bin/bash"{print $6}' "$1/etc/passwd"); do
al@18466 122 [ -e "$1$i/.bashrc" ] && continue
al@18466 123 cp "$1/etc/bashrc" "$1$i/.bashrc"
al@18466 124 chown $(stat -c%U:%G "$1$i") "$1$i/.bashrc"
al@18466 125 done
pankso@14 126 }
pankso@2156 127
xfred222@13689 128
al@19743 129 pre_remove_bash()
pankso@2156 130 {
al@18466 131 echo
al@19561 132 echo 'Setting /bin/sh as default shell for all users'
al@18466 133 sed -i 's|:/bin/bash$|:/bin/sh|' "$1/etc/passwd"
al@18466 134 [ -f "$1/etc/skel/.bashrc" ] && rm "$1/etc/skel/.bashrc"
pankso@2156 135 }