Repository navigation
[mapnik-polylabel] Replacement for mapbox-polylabel - #53409
SunBlack (SunBlack) wants to merge 1 commit into
Conversation
dcdef73 to
2fd8143
Compare
|
GPT 5.6 Sol reports:
[...]
I have not dug into the guts of the failures here because builds are broken. Drafting due to build failures, I am not making a concrete statement that all of the above need be addressed to merge. |
13e9f8c to
453970a
Compare
| "dependencies": [ | ||
| "gdal" | ||
| ] | ||
| }, |
There was a problem hiding this comment.
I suggest we keep this combined in input-gdal. I believe that wanting one without the other will be very unlikely. (It could still be achieved via triplet settings.)
There was a problem hiding this comment.
That was my first thought, too. But, as you've seen yourself, there's another OGR feature further down. So for now, I've decided to stay with the existing structure. I think we could look into merging some things there when the PR is ready, since the CI time for this port is really quite long. Right now, though, the PR is failing anyway because I still don't have any idea what the issue is with the Linux CI, and when I give the log to AI, the solution it suggests seems a bit strange to me (even though I haven't tested it yet).
There was a problem hiding this comment.
The "existing structure" might be a reflection of the historical OGR being separate from the historical GDAL. Proliferating this now only to (perhaps) merge it later does not sound convincing.
And more features mean more testing mean more CI time.
There was a problem hiding this comment.
I just took a quick moment to look at their code. The old options seem to be broken anyway (mapnik/mapnik#4595), as far as I can tell, so we'll just use the combined one.
There was a problem hiding this comment.
Oh, another ogr?
45ab757 to
9a4f27b
Compare
090ede0 to
46493e5
Compare
Note that this isn't like "we removed the nice C++ wrappers around some C thing", this is a library where they had a C++ port of a Java thing in the same repo and they removed the C++ port. So there is no reason for C++ customers to expect support from the "original" implementation going forward, so we shouldn't fear the usual forms of conflict that come from forks. (EDIT: To clarify, this is me confirming that I believe swapping in the fork is the correct thing to do) |
|
Drafting due to build failures, SunBlack#95 may fix. Additionally, GPT 6 Sol reports:
|
|
(I didn't ask it to try to fix the features report because you and Kai Pastor (@dg0yt) were discussing above and as not a user of this myself it's not clear what the correct change is) |
|
Looks like build is fixed but I'm still not sure what the right feature fix is. |
2914e07 to
b19526a
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Enabled datasource plugins are unavailable in static builds, MinGW utility linking is broken by an invalid libdl dependency, and the tiles feature omits a required redistribution license notice.
4 open issues
What changed in this PR
Replaces mapbox-polylabel with Mapnik’s maintained C++ fork and updates Mapnik to 4.3.2 to use it.
Changes:
- Adds
mapnik-polylabel2.1.0 and removes the old port. - Updates Mapnik dependencies and plugin features, including tiles support with optional SSL.
- Adds build patches and refreshes version records and viewer CI expectations.
Validation used the supplied diff and targeted upstream source inspection; no builds or consumer examples were run.
| File | Description |
|---|---|
versions/m-/mapnik.json |
Records Mapnik 4.3.2. |
versions/m-/mapnik-polylabel.json |
Adds the fork’s initial version record. |
versions/baseline.json |
Updates Mapnik and replaces the polylabel baseline. |
scripts/ci.feature.baseline.txt |
Updates expected viewer feature failures. |
ports/mapnik/vcpkg.json |
Updates dependencies and plugin features. |
ports/mapnik/usage |
Normalizes whitespace without changing guidance. |
ports/mapnik/tiles.patch |
Makes tiles compile definitions target-scoped. |
ports/mapnik/portfile.cmake |
Updates source, feature mappings, downloads, and packaging. |
ports/mapnik/mapnik-index.patch |
Adjusts utility linkage on non-MSVC, non-Apple builds. |
ports/mapnik-polylabel/vcpkg.json |
Declares the renamed fork and version. |
ports/mapnik-polylabel/portfile.cmake |
Packages the fork’s headers and license. |
ports/mapbox-polylabel/portfile.cmake |
Removes the old Mapbox build recipe. |
Review effort: Balanced
| "grid-renderer" USE_GRID_RENDERER | ||
| "svg-renderer" USE_SVG_RENDERER | ||
| "input-csv" USE_PLUGIN_INPUT_CSV | ||
| "input-gdal-ogr" USE_PLUGIN_INPUT_GDAL_OGR |
There was a problem hiding this comment.
no idea what the AI want's here as the targets were not renamed, just the CMake option
cf01cec to
c64dac3
Compare
c64dac3 to
ff6d377
Compare


./vcpkg x-add-version --alland committing the result.mapbox-polylabel removed the C++ code in mapbox/polylabel#124. As mapnik requires it, they created a fork of it (see mapnik/mapnik#4567), therefore replace the port.
We could also move mapnik-polylabel into the source code of mapnik, similar to mapnik-vector-tile