blob: 369ed7210009a163e3d6697178e74fb5c98eefd9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#!/bin/sh
# Helper script to install bison 3 into system via SUDO
#
# This is primarily for travis CI
set -x
# Binary that is installed that should be checked for version
program_name=${BISON:-bison}
# Name of package - will be tarball prefix
package_name=${PACKAGE:-bison}
########### Should be generic for any GNU package below here ########
AWK=${AWK:-awk}
CURL=${CURL:-curl}
WGET=${WGET:-wget}
package_ucname=$(echo "${package_name}" | tr '[:lower:]' '[:upper:]')
package_min_version=$($AWK -F= "/^${package_ucname}_MIN_VERSION/ {print \$2}" configure.ac)
package_rec_version=$($AWK -F= "/^${package_ucname}_REC_VERSION/ {print \$2}" configure.ac)
# Package specific overrides
case "$package_name" in
bison)
# Bison requires that CC is a C compiler
CC=cc
export CC
;;
*)
;;
esac
DESTDIR=${DESTDIR:-/usr}
ROOT_DIR=${TMPDIR:-/tmp}
BUILD_DIR="$ROOT_DIR/build-${package_name}"
installed_version=$(${program_name} --version 2>&1 | $AWK "/^${package_name}.*[.0-9]\$/ { print \$NF}")
# shellcheck disable=SC2016
installed_version_dec=$(echo "$installed_version" | $AWK -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};')
# shellcheck disable=SC2016
min_version_dec=$(echo "$package_min_version" | $AWK -F. '{printf("%d\n", 10000*$1 + 100*$2 + $3)};')
if test "$installed_version_dec" -ge "$min_version_dec"; then
echo "${package_name} $installed_version is new enough"
else
echo "Building and installing ${package_rec_version} from source into ${DESTDIR}"
mkdir "$BUILD_DIR" && cd "$BUILD_DIR" || exit 1
package_dir="${package_name}-${package_rec_version}"
tarball_file="${package_dir}.tar.gz"
package_url="http://ftp.gnu.org/gnu/${package_name}/${tarball_file}"
$WGET -O "$tarball_file" "$package_url" || \
$CURL -o "$tarball_file" "$package_url"
tar -x -z -f "$tarball_file" && rm "$tarball_file"
cd "${package_dir}" && \
./configure "--prefix=${DESTDIR}" && \
make && \
sudo make install
cd / && rm -rf "$BUILD_DIR"
fi
|