Page MenuHomePhabricator

Install mapnik 3.0.20 on Stretch
Closed, ResolvedPublic

Description

Many maps stack dependency upgrades are blocked on being able to upgrade to the recent 3.7.x versions of node-mapnik. Version 3.7.2, the latest in the 3.7.x series, depends on mapnik 3.0.20, the release packaged for Debian Buster. It fails to build against mapnik 3.0.12, which is packaged for Stretch. There doesn't appear to be a publicly available backport of 3.0.20.

https://packages.debian.org/search?searchon=sourcenames&keywords=mapnik

Options:

  1. Have mapnik 3.0.20 backported
  2. Build it from source
  3. Wait until we upgrade to Buster in production

(1) is what was done for current version in Jessie for node 6 compatibility (see T150354 and subtasks T152131 and T150722). It's probably what should be done here.
(2) is also possible according to @MSantos's testing in Docker, but building from source seems uncommon in production. Is it possible in this instance?
(3) probably won't be possible in practice. The dependency versions we're forced to rely on are aging, and npm install is already throwing many warnings. Some of these will convert to errors as soon as we upgrade npm (see T195316), and in the meantime we are very poorly situated in the event an upgrade is urgently needed, for example because of a node security issue.

Event Timeline

Mholloway removed Mholloway as the assignee of this task.Jul 24 2018, 6:42 PM
Mholloway triaged this task as Medium priority.
Mholloway created this task.
Mholloway removed a project: Maps-Sprint.
MSantos added a comment.EditedJul 24 2018, 6:55 PM

The Dockerfile tested can be accessed at the Docker Compose prototype project.

Mholloway updated the task description. (Show Details)Jul 24 2018, 6:57 PM

As a proof of concept I did a backport of mapnik-3.0.20+ds-1 from Buster according to the instructions at https://wiki.debian.org/SimpleBackportCreation. It worked and node-mapnik 3.7.2 built against it fine. I can upload the debs if anyone wants to test them out.

@Gehel Can "simple" backports like this be uploaded to the Wikimedia apt repos, or do we need to be more formal?

Mholloway updated the task description. (Show Details)Jul 24 2018, 11:34 PM
akosiaris added a subscriber: akosiaris.EditedJul 30 2018, 6:25 PM

@Mholloway Yes, we follow a similar approach. Anyway, I 've rebuilt mapnik from buster for stretch and have it temporarily in https://apt.wikimedia.org/mapnik/ if you want to run any tests with it. Let me know and I 'll upload it to apt.wikimedia.org/stretch-wikimedia.

@akosiaris I tested the packages and they worked successfully.

I tested using the following Kartotherian Dockerfile:
https://github.com/mateusbs17/gisdock/blob/mapnik_v0.3.20/kartotherian/mapnik3.0.20/Dockerfile

Thank you for testing, @MSantos! Yes, @akosiaris, please upload to apt.wikimedia.org/stretch-wikimedia.

Mentioned in SAL (#wikimedia-operations) [2018-08-01T15:43:14Z] <akosiaris> upload mapnik_3.0.20+ds-1 to apt.wikimedia.org/stretch-wikimedia/main T200284

Mholloway closed this task as Resolved.Aug 2 2018, 7:07 PM
Mholloway claimed this task.

Thank you, @akosiaris!