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