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