Skip to content

Commit 52e7a10

Browse files
authored
Use Mapnik v4.0.0 for Dockerfiles and GitHub Actions (openstreetmap#452)
1 parent 3612c5f commit 52e7a10

File tree

15 files changed

+178
-280
lines changed

15 files changed

+178
-280
lines changed
Lines changed: 33 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,52 @@
11
---
22
inputs:
33
version:
4+
default: latest
45
description: Version of Mapnik to build & install
56
required: true
67

78
runs:
89
using: composite
910
steps:
10-
- name: Create `Mapnik` source directory
11-
run: |
12-
mkdir mapnik-src
13-
shell: bash --noprofile --norc -euxo pipefail {0}
14-
15-
- name: Cache "Download `Mapnik`" & "Build `Mapnik`"
16-
id: cache-mapnik-src
11+
- name: Cache "Checkout `Mapnik`" & "Build `Mapnik`"
12+
id: cache-mapnik
1713
uses: actions/cache@v4
1814
with:
19-
path: mapnik-src
20-
key: ${{ matrix.image }}-${{ matrix.compiler }}-mapnik-${{ inputs.version }}
15+
path: |
16+
mapnik-build
17+
mapnik-src
18+
key: ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.compiler }}-mapnik-${{ inputs.version }}
2119

22-
- name: Download `Mapnik`
23-
run: |
24-
curl --silent --location \
25-
https://github.com/mapnik/mapnik/releases/download/v${{ inputs.version }}/mapnik-v${{ inputs.version }}.tar.bz2 \
26-
| tar --extract --bzip2 --strip-components=1 --file=-
27-
shell: bash --noprofile --norc -euxo pipefail {0}
28-
working-directory: mapnik-src
29-
if: steps.cache-mapnik-src.outputs.cache-hit != 'true'
20+
- name: Checkout `Mapnik`
21+
uses: actions/checkout@v4
22+
with:
23+
path: mapnik-src
24+
ref: ${{ inputs.version != 'latest' && format('v{0}', inputs.version) || '' }}
25+
repository: mapnik/mapnik
26+
submodules: recursive
27+
if: steps.cache-mapnik.outputs.cache-hit != 'true'
3028

3129
- name: Build `Mapnik`
3230
run: |
33-
# Export variables
34-
export CUSTOM_DEFINES="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1"
35-
export GDAL_DATA=/usr/share/gdal
36-
export JOBS=${JOBS:-$(nproc)}
37-
export PROJ_LIB=/usr/share/proj
38-
export PYTHON=${PYTHON:-python3}
39-
40-
# Create GDAL_DATA/PROJ_LIB directories
41-
mkdir --parents ${GDAL_DATA} ${PROJ_LIB}
42-
43-
# Configure & build
44-
./configure \
45-
CC="${CC:-gcc}" \
46-
CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \
47-
CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \
48-
CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \
49-
CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \
50-
CXX="${CXX:-g++}" \
51-
FAST=True \
52-
OPTIMIZATION=0 \
53-
PREFIX="/usr"
54-
make PYTHON=${PYTHON} || make PYTHON=${PYTHON}
31+
export CMAKE_BUILD_PARALLEL_LEVEL=${BUILD_PARALLEL_LEVEL:-$(nproc)}
32+
cmake -B mapnik-build -S mapnik-src \
33+
-DBUILD_BENCHMARK:BOOL=OFF \
34+
-DBUILD_DEMO_CPP:BOOL=OFF \
35+
-DBUILD_DEMO_VIEWER:BOOL=OFF \
36+
-DBUILD_TESTING:BOOL=OFF \
37+
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
38+
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
39+
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
40+
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
41+
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
42+
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
43+
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
44+
-DCMAKE_BUILD_TYPE:STRING=Release \
45+
-DCMAKE_INSTALL_PREFIX:PATH=/usr
46+
cmake --build mapnik-build
5547
shell: bash --noprofile --norc -euxo pipefail {0}
56-
working-directory: mapnik-src
57-
if: steps.cache-mapnik-src.outputs.cache-hit != 'true'
48+
if: steps.cache-mapnik.outputs.cache-hit != 'true'
5849

5950
- name: Install `Mapnik`
60-
run: |
61-
# Export `PYTHON`
62-
export PYTHON=${PYTHON:-python3}
63-
64-
make install PYTHON=${PYTHON}
51+
run: ${{ !matrix.image && 'sudo' || '' }} cmake --install mapnik-build
6552
shell: bash --noprofile --norc -euxo pipefail {0}
66-
working-directory: mapnik-src

.github/actions/dependencies/build-and-install/mapnik/latest/action.yml

Lines changed: 0 additions & 46 deletions
This file was deleted.

.github/actions/dependencies/install/action.yml

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -104,27 +104,21 @@ inputs:
104104
memcached
105105
opensuse-mapnik-build-dependencies:
106106
default: >-
107-
bzip2
107+
cmake
108108
freetype-devel
109109
gdal-devel
110+
git
110111
harfbuzz-devel
111-
libboost_filesystem1_75_0-devel
112-
libboost_headers1_75_0-devel
113-
libboost_program_options1_75_0-devel
114112
libboost_regex1_75_0-devel
115-
libboost_system1_75_0-devel
116113
libicu-devel
117114
libjpeg8-devel
118115
libpng16-devel
119116
libtiff-devel
120117
libwebp-devel
121118
libxml2-devel
122-
make
123119
postgresql-devel
124120
proj-devel
125-
python3
126121
sqlite3-devel
127-
tar
128122
zlib-devel
129123
rhel-build-dependencies:
130124
default: >-
@@ -145,22 +139,20 @@ inputs:
145139
rhel-mapnik-build-dependencies:
146140
default: >-
147141
boost-devel
148-
bzip2
142+
cmake
149143
freetype-devel
150144
gdal-devel
145+
git
151146
harfbuzz-devel
152147
libicu-devel
153148
libjpeg-devel
154149
libpng-devel
155150
libtiff-devel
156151
libwebp-devel
157152
libxml2-devel
158-
make
159153
postgresql-devel
160154
proj-devel
161-
python3
162155
sqlite-devel
163-
tar
164156
zlib-devel
165157
ubuntu-build-dependencies:
166158
default: >-
@@ -196,9 +188,9 @@ inputs:
196188
lcov
197189
memcached
198190
mapnik-build-version-centos-stream:
199-
default: 3.1.0
191+
default: 4.0.0
200192
mapnik-build-version-opensuse:
201-
default: 3.1.0
193+
default: 4.0.0
202194

203195
runs:
204196
using: composite
@@ -309,11 +301,15 @@ runs:
309301
if: (!matrix.mapnik_latest && startsWith(matrix.image, 'opensuse/'))
310302

311303
- name: Build & Install latest `mapnik` (Debian/Ubuntu)
312-
uses: ./.github/actions/dependencies/build-and-install/mapnik/latest
304+
uses: ./.github/actions/dependencies/build-and-install/mapnik
305+
with:
306+
version: latest
313307
if: |
314308
matrix.mapnik_latest &&
315309
(startsWith(matrix.image, 'debian:') || startsWith(matrix.image, 'ubuntu:') || runner.os == 'Linux')
316310
317311
- name: Build & Install latest `mapnik` (openSUSE)
318-
uses: ./.github/actions/dependencies/build-and-install/mapnik/latest
312+
uses: ./.github/actions/dependencies/build-and-install/mapnik
313+
with:
314+
version: latest
319315
if: (matrix.mapnik_latest && startsWith(matrix.image, 'opensuse/'))

configure.ac

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ AC_CONFIG_HEADERS([includes/config.h])
1616
AC_CONFIG_MACRO_DIR([m4])
1717

1818
# Checks for programs.
19-
AC_PROG_CXX
2019
AC_PROG_CC
2120
AC_PROG_CC_C99
21+
AC_PROG_CXX
22+
AC_PROG_RANLIB
2223

2324
dnl Find C++ compiler
2425
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)

docker/archlinux/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
4040
-DENABLE_TESTS:BOOL=ON && \
4141
cmake --build .
4242
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
43-
export DESTDIR=/tmp/mod_tile && \
44-
ctest --output-on-failure && \
45-
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
43+
ctest --output-on-failure
44+
RUN export DESTDIR=/tmp/mod_tile && \
45+
cmake --install . --strip
4646

4747
# Runner
4848
FROM archlinux:latest as runner

0 commit comments

Comments
 (0)