File: bootstrap.sh

package info (click to toggle)
python-mapnik 1%3A0.0~20200224-7da019cf9-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 10,784 kB
  • sloc: python: 12,085; cpp: 5,717; sh: 101; makefile: 18
file content (87 lines) | stat: -rwxr-xr-x 2,848 bytes parent folder | download | duplicates (3)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env bash

set -eu
set -o pipefail

function install() {
    MASON_PLATFORM_ID=$(mason env MASON_PLATFORM_ID)
    if [[ ! -d ./mason_packages/${MASON_PLATFORM_ID}/${1}/ ]]; then
        mason install $1 $2
        mason link $1 $2
    fi
}

ICU_VERSION="57.1"

function install_mason_deps() {
    install mapnik 3.0.15
    install jpeg_turbo 1.5.1
    install libpng 1.6.28
    install libtiff 4.0.7
    install libpq 9.6.2
    install sqlite 3.17.0
    install expat 2.2.0
    install icu ${ICU_VERSION}
    install proj 4.9.3
    install pixman 0.34.0
    install cairo 1.14.8
    install webp 0.6.0
    install libgdal 2.1.3
    install boost 1.63.0
    install boost_libsystem 1.63.0
    install boost_libfilesystem 1.63.0
    install boost_libprogram_options 1.63.0
    install boost_libregex_icu57 1.63.0
    install freetype 2.7.1
    install harfbuzz 1.4.2-ft
    # deps needed by python-mapnik (not mapnik core)
    install boost_libthread 1.63.0
    install boost_libpython 1.63.0
    install postgis 2.3.2-1
}

function setup_runtime_settings() {
    local MASON_LINKED_ABS=$(pwd)/mason_packages/.link
    echo "export PROJ_LIB=${MASON_LINKED_ABS}/share/proj" > mason-config.env
    echo "export ICU_DATA=${MASON_LINKED_ABS}/share/icu/${ICU_VERSION}" >> mason-config.env
    echo "export GDAL_DATA=${MASON_LINKED_ABS}/share/gdal" >> mason-config.env
    echo "export PATH=$(pwd)/mason_packages/.link/bin:${PATH}" >> mason-config.env
    echo "export PGTEMP_DIR=$(pwd)/local-tmp" >> mason-config.env
    echo "export PGDATA=$(pwd)/local-postgres" >> mason-config.env
    echo "export PGHOST=$(pwd)/local-unix-socket" >> mason-config.env
    echo "export PGPORT=1111" >> mason-config.env

    source mason-config.env
    rm -rf ${PGHOST}
    mkdir -p ${PGHOST}
    rm -rf ${PGDATA}
    mkdir -p ${PGDATA}
    rm -rf ${PGTEMP_DIR}
    mkdir -p ${PGTEMP_DIR}
    ./mason_packages/.link/bin/initdb
    sleep 2
    ./mason_packages/.link/bin/postgres -k ${PGHOST} > postgres.log &
    sleep 2
    ./mason_packages/.link/bin/createdb template_postgis -T postgres
    ./mason_packages/.link/bin/psql template_postgis -c "CREATE TABLESPACE temp_disk LOCATION '${PGTEMP_DIR}';"
    ./mason_packages/.link/bin/psql template_postgis -c "SET temp_tablespaces TO 'temp_disk';"
    ./mason_packages/.link/bin/psql template_postgis -c "CREATE PROCEDURAL LANGUAGE 'plpythonu' HANDLER plpython_call_handler;"
    ./mason_packages/.link/bin/psql template_postgis -c "CREATE EXTENSION postgis;"
    ./mason_packages/.link/bin/psql template_postgis -c "SELECT PostGIS_Full_Version();"
    ./mason_packages/.link/bin/pg_ctl -w stop
}

function main() {
    source scripts/setup_mason.sh
    setup_mason
    install_mason_deps
    setup_runtime_settings
    echo "Ready, now run:"
    echo ""
    echo "    make test"
}

main

set +eu
set +o pipefail