Debian Patches

Status for tilemaker/3.0.0-2

Patch Description Author Forwarded Bugs Origin Last update
0001-A-short-note-to-remember-kleunen.patch A short note to remember @kleunen systemed <richard@systemeD.net> no 2024-01-15
0002-Mention-store-in-the-readme.patch Mention --store in the readme systemed <richard@systemeD.net> no 2024-01-18
0003-Don-t-default-to-ocean-for-other-shp-geojson.patch Don't default to ocean for other shp/geojson systemed <richard@systemeD.net> no 2024-01-18
0004-Standalone-coastline-config-and-docs.patch Standalone coastline config and docs systemed <richard@systemeD.net> no 2024-01-18
0005-Centroid-.-should-return-nil-on-error.patch Centroid(...) should return nil on error
Previously, calling Centroid(...) on an invalid geometry (such as
https://www.openstreetmap.org/relation/9769005, which I think gets
simplified to having 0 rings) would throw, killing the lua process.

Instead, return nil.
Colin Dellow <cldellow@gmail.com> no 2024-01-18
0006-support-GeoJSON-lines-format.patch support GeoJSON lines format
Described at https://stevage.github.io/ndgeojson/; each feature is given
its own line, rather than being wrapped in a FeatureCollection.
Colin Dellow <cldellow@gmail.com> no 2024-01-20
0007-satisfy-windows-build.patch satisfy windows build? Colin Dellow <cldellow@gmail.com> no 2024-01-20
0008-support-.geojsonseq-.jsonseq.patch support .geojsonseq/.jsonseq Colin Dellow <cldellow@gmail.com> no 2024-01-21
0009-parallelize-geojsonl-reading.patch parallelize geojsonl reading
For a ~300MB geojson file of mine, this decreases wall clock time from
2.5s to 1s.
Colin Dellow <cldellow@gmail.com> no 2024-01-21
0010-build.patch build Colin Dellow <cldellow@gmail.com> no 2024-01-21
0011-build.patch build Colin Dellow <cldellow@gmail.com> no 2024-01-21
0012-Update-process-debug.lua.patch Update process-debug.lua
Adjust to v3.0.0 syntax: `LayerAsCentroid(layer_name, algorithm, role, role...)`
knowname <github@know.name> no 2024-01-25
0013-warn-when-compact-used-on-non-renumbered-PBF.patch warn when --compact used on non-renumbered PBF
A future commit will make it safe to do so, but it's still
memory-inefficient to use --compact on a non-renumbered PBF
Colin Dellow <cldellow@gmail.com> no 2024-01-26
0014-shard-stores-and-compact-aren-t-compatible.patch --shard-stores and --compact aren't compatible
CompactNodeStore doesn't know how to compute if it contains a node,
which is a prerequisite for sharding.

The two settings don't make much sense together: sharding will create N
CompactNodeStores, which each will take as much memory as a single one,
since each will likely have a large node ID.

This differs from BinarySearchNodeStore and SortedNodeStore, where each of
the N store instances will take roughly 1/N memory.

Instead:

- fail faster and more clearly by throwing if CompactNodeStore.contains is
called
- don't enable sharding if --compact is passed
Colin Dellow <cldellow@gmail.com> no 2024-01-26
0015-GeoJSON-lines-skip-leading-whitespace-in-a-chunk.patch GeoJSON lines: skip leading whitespace in a chunk
If the chunking algorithm returns a chunk that consists only of
whitespace, the current code will try to parse at least one JSON
object out of it, and fail.

This fixes that bug by consuming all the whitespace before trying to
parse an item -- the `while(is.Tell() < chunk.length)` loop will no
longer be entered, as there will be no non-whitespace content to
consume.
Colin Dellow <cldellow@gmail.com> no 2024-01-28
0016-GeoJSON-writer-support-points-and-linestrings.patch GeoJSON writer: support points and linestrings Colin Dellow <cldellow@gmail.com> no 2024-02-04
0017-touch-file.patch touch file Colin Dellow <cldellow@gmail.com> no 2024-02-04
0018-add-Makefile-build.patch add Makefile build
Only for Linux / Mac OS X

Still todo: actually install needed deps, run make test
Colin Dellow <cldellow@gmail.com> no 2024-02-04
0019-deps.patch deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0020-deps.patch deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0021-deps.patch deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0022-deps.patch deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0023-macosx.patch macosx Colin Dellow <cldellow@gmail.com> no 2024-02-04
0024-linux-only-deps.patch linux-only deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0025-linux-only-deps.patch linux-only deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0026-mac-only-deps.patch mac-only deps Colin Dellow <cldellow@gmail.com> no 2024-02-04
0027-print-c-version.patch print c++ version Colin Dellow <cldellow@gmail.com> no 2024-02-04
0028-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0029-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0030-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0031-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0032-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0033-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0034-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0035-apple-silicon.patch apple silicon Colin Dellow <cldellow@gmail.com> no 2024-02-04
0036-run-make-test.patch run make test Colin Dellow <cldellow@gmail.com> no 2024-02-04
0037-give-up-on-apple-silicon-cmake-build.patch give up on apple silicon cmake build
vcpkg isn't installed by default, and I'm not familiar enough with how
to install + use it. Hopefully the Makefile build will catch Apple Silicon issues
Colin Dellow <cldellow@gmail.com> no 2024-02-04
0038-fail-build-if-non-zero-exit.patch fail build if non-zero exit Colin Dellow <cldellow@gmail.com> no 2024-02-04
0039-use-ifstream-binary.patch use ifstream::binary Colin Dellow <cldellow@gmail.com> no 2024-02-04
0040-build-pmtiles-no-store-mbtiles-store.patch build pmtiles/no store, mbtiles/store
Future work: ensure they're the same.
Colin Dellow <cldellow@gmail.com> no 2024-02-04
0041-revert-README-change.patch revert README change Colin Dellow <cldellow@gmail.com> no 2024-02-04
0042-AttributePair-use-uint-not-char.patch AttributePair: use uint, not char
Since we only allocate 4 bits and `char` is signed, the usable space
was -8..7. Larger values (like, say, 12) overflow, and get interpreted
as a negative value, which means they don't act as a filter, since all
zoom values are natural numbers.

The tests didn't actually test that a zoom value could be roundtripped.
I updated them, and verified they failed before the code change, and
passed after the code change.

I've also allocated an extra bit so that we support minzooms up to z31,
vs just up to z15, since I think (?) some people generate up to z16
Colin Dellow <cldellow@gmail.com> no 2024-02-06
0043-windows-build-uint-uint8_t.patch windows build: uint -> uint8_t Colin Dellow <cldellow@gmail.com> no 2024-02-06
0044-Empty-strings-are-ok-really.patch Empty strings are ok really systemed <richard@systemeD.net> no 2024-02-10
0045-SortedNodeStore-publishGroup-out-of-bounds-read.patch SortedNodeStore::publishGroup: out of bounds read
Fixes the issued identified by @freeExec in #661

This code is a bit gross. It intentionally loops 1 past the size of the
vector to ensure that we "publish" all the chunks.

There's a similar loop at lines 511-602.

In both loops, there's sort of three chunks of code, which I'll
call "pre", "body" and "post". The pre/post sections need to be guarded,
and the guard for the first loop's "post" section was missing.

Looking at it with fresh eyes, I think we could extract the "body" parts
of both loops to their own functions, and then just call them again
after the loop ends. For now, I'm inclined to let a sleeping dog lie,
but if more work happens in here, that'd be a good cleanup step.

This was also visible in valgrind, as it turns out--the error
goes away with this change:

```
==1968107== Invalid read of size 4
==1968107== at 0x33ABCD: SortedNodeStore::publishGroup(std::vector<std::pair<unsigned long, LatpLon>, std::allocator<std::pair<unsigned long, LatpLon> > > const&) (in /usr/local/bin/tilemaker)
==1968107== by 0x33B715: SortedNodeStore::finalize(unsigned long) (in /usr/local/bin/tilemaker)
==1968107== by 0x2FEE77: PbfProcessor::ReadPbfFile(unsigned int, bool, SignificantTags const&, SignificantTags const&, unsigned int, std::function<std::shared_ptr<std::istream> ()> const&, std::function<std::shared_ptr<OsmLuaProcessing> ()> const&, NodeStore const&, WayStore const&) (in /usr/local/bin/tilemaker)
==1968107== by 0x140801: main (in /usr/local/bin/tilemaker)
```

SortedWayStore has a similar publishGroup function, but its internal
implementation is different and it doesn't have this issue.
Colin Dellow <cldellow@gmail.com> no 2024-02-10
0046-Fix-thread-safety-issue-with-shapefile-index.patch Fix thread safety issue with shapefile index systemed <richard@systemeD.net> no 2024-02-10
0047-typo.patch typo systemed <richard@systemeD.net> no 2024-02-10
0048-Faster-polygon-combining-681.patch Faster polygon combining (#681) Richard Fairhurst <richard@systemeD.net> no 2024-02-17
0049-When-serving-tiles-add-the-CORS-Access-Control-Allow.patch When serving tiles, add the CORS Access-Control-Allow-Origin: * header (#684) Amanda <amanda@technomancy.org> no 2024-02-21
0050-remove-FAT_TILE_INDEX-700.patch remove FAT_TILE_INDEX (#700) Colin Dellow <cldellow@gmail.com> no 2024-04-01
0051-support-multiple-input-files-701.patch support multiple input files (#701)
Fixes #696, a regression introduced in the v3.0 work:

- use the old NodeStore/WayStore when multiple input files
- don't use lazy geometries when multiple input files
- compute the bbox from the union of all the pbfs

I suspect we could probably restore lazy geometries for multiple input
files, but I haven't dug in to see what would be required.

For testing, I built a pmtiles with monaco + liechtenstein and verified
they both showed up.
Colin Dellow <cldellow@gmail.com> no 2024-04-02
0052-Reduce-differences-between-official-OpenMapTiles-til.patch Reduce differences between official OpenMapTiles tiles and Tilemaker implementation (#686)

* Add missing features classes to landcover layer.

They are already documented but have been missing in the implementation.

* Add missing place values, add islands mapped as polygons

* Hand over variables to the function instead of relying on global access

* Set correct minzoom for railway features, add railway subclass

Minzoom for railway features depends on railway=*, service=* and
usage=*. Only railway features with specific railway=* values are added
to the vector tiles. This means, railway=construction/disused/… and
railway=fancy_value are ignored.

The OpenMapTiles schema defines a subclass field for railways as well.
This commit adds this field.

* Drop railway features without names from transportation_name

It makes vector tiles smaller if we do not add railway features without
names to the vector tiles.

* Cleanup transportation_name, drop roads without name or ref from it

* Drop layers transportation_name_mid and transportation_name_detail, use
MinZoom() instead.
* Do not write roads without names or ref into the vector tiles.

* Use write_to_transportation_layer function for ferries

* Do not write ferries without names to the vector tiles

* transportation* layers: minzoom, construction, raceway

* Set correct minzoom values for all roads in the transportation and
transportation_name layer.
* Add highway=raceway
* Align handling of roads under construction to OpenMapTiles.

* Do not set mtb_scale if the tag is not present

* Add aerialways

* Do not set expressway if the tag is missing

* Add areas for pedestrians, add platforms

* Add missing subclass attribute to transportation layer

* Improve handling of polygons on transporation layer

* Do not write polygons other than infrastructure for pedestrians and
piers.
* Set minzoom according to area size and absolute minzoom.

* Add man_made=bridge, add brunnel attribute for polygons

* Add man_made=bridge to layer transportation.
* Set brunnel attribute for all polygon features on that layer.
Nakaner <michael.reichert@geofabrik.de> no 2024-04-02
0053-Fix-roundabouts-708.patch Fix roundabouts (#708) Richard Fairhurst <richard@systemeD.net> no 2024-04-25
0054-Remove-macos-latest-CMake-CI-718.patch Remove macos-latest CMake CI (#718) Richard Fairhurst <richard@systemeD.net> no 2024-05-08
0055-Improves-docker-setup-for-basic-usage-to-get-started.patch Improves docker setup for basic usage to get started more easily (#713) "Daniel J. H" <daniel+github@trvx.org> no 2024-05-08
0056-Fix-reading-bools-from-shapefiles-715.patch Fix reading bools from shapefiles (#715) Richard Fairhurst <richard@systemeD.net> no 2024-05-08
0057-Only-use-Mac-specific-LuaJIT-linking-for-2.0-716.patch Only use Mac-specific LuaJIT linking for 2.0 (#716) Richard Fairhurst <richard@systemeD.net> no 2024-05-08
0058-Update-RUNNING.md-docker-old-config-name-721.patch Update RUNNING.md docker old config name (#721)
Replace the old config name with the new .json extension.
Martijn van Laar <martijn@mvanlaar.net> no 2024-05-15
0059-Adds-convenience-scripts-to-download-coastline-and-l.patch Adds convenience scripts to download coastline and landuse data, see #720 (#723) "Daniel J. H" <daniel@trvx.org> no 2024-05-28
0060-Merges-compatible-points-into-multipoints-closes-719.patch Merges compatible points into multipoints, closes #719 (#725) "Daniel J. H" <daniel@trvx.org> no 2024-05-28
0061-Fix-indexing-nodes-when-basezoom-14-728.patch Fix indexing nodes when basezoom>14 (#728) Richard Fairhurst <richard@systemeD.net> no 2024-06-09
0062-Boost-186-759.patch Boost 186 (#759) Colin Dellow <cldellow@gmail.com> no 2024-09-20
0063-docs-adjust-role-explanation-for-NextRelation-757.patch docs: adjust role explanation for NextRelation (#757)
The current docs describe a single return value that is an array of size 2,
but the `NextRelation()` function actually has two return values.

See https://www.lua.org/pil/5.1.html for more.

Hat tip to @BenOnTrack, who noticed it in https://github.com/systemed/tilemaker/discussions/749
Colin Dellow <cldellow@gmail.com> no 2024-09-20
0064-Default-encoding-UTF-8-742.patch Default encoding UTF-8 (#742) Richard Fairhurst <richard@systemeD.net> no 2024-09-20
0065-Fix-750-allow-no-more-than-512-attribute-names-760.patch Fix #750: allow no more than 512 attribute names (#760)
This fixes two issues:

- use an unsigned type, so we can use the whole 9 bits and have 512
keys, not 256
- fix the bounds check in AttributeKeyStore to reflex the lower
threshold that was introduced in #618

Hat tip @oobayly for reporting this.
Colin Dellow <cldellow@gmail.com> no 2024-09-21
0066-thread-safety-fixes-PooledString-layer-metadata-761.patch thread-safety fixes: PooledString, layer metadata (#761) Colin Dellow <cldellow@gmail.com> no 2024-09-23
0067-faster-Intersects-queries-765.patch faster Intersects queries (#765) Colin Dellow <cldellow@gmail.com> no 2024-10-03
0068-don-t-require-any-Lua-functions-770.patch don't require any Lua functions (#770) Colin Dellow <cldellow@gmail.com> no 2024-10-13
0069-be-less-chatty-when-run-non-interactively-767.patch be less chatty when run non-interactively (#767) Colin Dellow <cldellow@gmail.com> no 2024-10-13
0070-use-libdeflate-rather-than-zlib-769.patch use libdeflate rather than zlib (#769) Colin Dellow <cldellow@gmail.com> no 2024-10-13
0071-Add-AllKeys-and-AllTags-Lua-functions-755.patch Add AllKeys and AllTags Lua functions (#755)
See systemed/tilemaker#748
John Bayly <3430117+oobayly@users.noreply.github.com> no 2024-10-13
0072-Add-optional-quiet-flag-to-tilemaker-754.patch Add optional --quiet flag to tilemaker (#754) John Bayly <3430117+oobayly@users.noreply.github.com> no 2024-10-13
0073-Explicitly-added-lua5.1-to-the-install-list-727.patch Explicitly added lua5.1 to the install list (#727) SomeoneElseOSM <SomeoneElseOSM@users.noreply.github.com> no 2024-10-13
0074-Add-per-layer-ability-to-disable-multipoints-771.patch Add per-layer ability to disable multipoints (#771) Richard Fairhurst <richard@systemeD.net> no 2024-10-13
0075-docker-luarocks-luaflock-lua-sql-sqlite3-766.patch docker: luarocks, luaflock, lua-sql-sqlite3 (#766) Colin Dellow <cldellow@gmail.com> no 2024-10-18
0076-docs-fix-docker-command-syntax-and-add-code-formatti.patch docs: fix docker command syntax and add code formatting in README.md (#732) Mark <113889912+KnotzerIO@users.noreply.github.com> no 2024-10-18
0077-Add-optional-BUILD_DEBUG-build-argument-753.patch Add optional BUILD_DEBUG build argument (#753) John Bayly <3430117+oobayly@users.noreply.github.com> no 2024-10-18
0078-Adds-documentation-on-how-to-use-config-paths-with-d.patch Adds documentation on how to use config paths with docker, closes #720 (#722) "Daniel J. H." <daniel@trvx.org> no 2024-10-18
0079-Visvalingam-Whyatt-simplification-772.patch Visvalingam-Whyatt simplification (#772) Richard Fairhurst <richard@systemeD.net> no 2024-10-19
0080-Update-process-openmaptiles.lua-775.patch Update process-openmaptiles.lua (#775)
Remove duplicate untagged railway lines, see https://github.com/systemed/tilemaker/issues/773
Mael <laem@kont.me> no 2024-10-28
0081-pmtiles-always-set-leafStart-when-closing-file-794-7.patch pmtiles: always set leafStart when closing file [#794] (#795)
* the leafStart was only assigned in flushEntries, which never happens if there is only a root directory.
* resulted in erroneous leafDirectoryOffset and tileDataLength in the pmtiles header.
Brandon Liu <bdon@users.noreply.github.com> no 2025-01-30
0082-IsMultiPolygon-Lua-method-810.patch IsMultiPolygon Lua method (#810) Richard Fairhurst <richard@systemeD.net> no 2025-04-14
0083-Fix-filter_area-when-used-with-combine_polygons_belo.patch Fix filter_area when used with combine_polygons_below (#814) Richard Fairhurst <richard@systemeD.net> no 2025-04-16
0084-Simple-key-value-store-817.patch Simple key/value store (#817) Richard Fairhurst <richard@systemeD.net> no 2025-04-17
0085-not-using-visvalingam-breaks-earcut-in-maplibre.-828.patch not using visvalingam breaks earcut in maplibre. (#828) arichnad <adrian-sw@aporter.org> no 2025-09-29
0086-feat-write-attribution-in-pmtiles-metadata-818.patch feat: write attribution in pmtiles metadata (#818) Echoz <github@echoz.io> no 2025-09-29
0087-document-include_ids-and-compress-in-configuration-r.patch document `include_ids` and `compress` in configuration readme (#832) etienneJr <115074079+etienneJr@users.noreply.github.com> no 2025-09-29
0088-Add-AttributeInteger-for-writing-int-values-827.patch Add AttributeInteger for writing int values (#827) Richard Fairhurst <richard@systemeD.net> no 2025-09-29
0089-feat-tilemaker-server-graceful-shutdown-on-signals-8.patch feat: tilemaker-server graceful shutdown on signals (#801) Cosimo Crocchini <616846+c84c@users.noreply.github.com> no 2025-09-29
0090-create-function-to-get-OSM-type-834.patch create function to get OSM type (#834) etienneJr <115074079+etienneJr@users.noreply.github.com> no 2025-09-29
0091-Allow-combine_lines_below-on-each-layer-850.patch Allow `combine_lines_below` on each layer (#850) Richard Fairhurst <richard@systemeD.net> no 2025-09-30
0092-handle-numeric-values-of-layer-and-level-tags-with-m.patch handle numeric values of layer and level tags with math.floor (#859) etienneJr <115074079+etienneJr@users.noreply.github.com> no 2025-11-14
0093-Add-new-function-to-allow-ID-modification-866.patch Add new function to allow ID modification (#866)
* add new function to allow ID modification

* document modifyId
etienneJr <115074079+etienneJr@users.noreply.github.com> no 2026-01-11
0094-fix-area-test-for-platforms-in-OMT-process-854.patch fix area test for platforms in OMT process (#854) etienneJr <115074079+etienneJr@users.noreply.github.com> no 2026-01-11
0095-Fix-build-with-Boost-1.89.patch Fix build with Boost 1.89
* `boost::range::sort` conflicts with `boost::sort`. Implementations are moved into a dedicated .cpp file.
* `boost::system` is a header only library now and the stub is removed
AlanIWBFT <alaniwbft@outlook.com> no 2026-01-13
0096-842-Update-Dockerfile-844.patch #842: Update Dockerfile (#844)
resolve issue #842
Opher Shachar <133236912+kingtistel@users.noreply.github.com> no 2026-02-09
0097-Fix-GeoJSON-string-reading.patch Fix GeoJSON string reading systemed <richard@systemeD.net> no 2026-02-09
0098-Fix-Lua-5.4-compatibility-in-kaguya.hpp.patch Fix Lua 5.4 compatibility in kaguya.hpp
Some Lua 5.4 builds (e.g., vcpkg) removed LUA_GCSETPAUSE and
LUA_GCSETSTEPMUL constants, replacing them with LUA_GCPPAUSE and
LUA_GCPSTEPMUL. Add conditional defines to handle both cases.
John Carmack <johncarmack@me.com> no 2026-01-13
0099-Update-CI-workflow-and-fix-infrastructure-issues.patch Update CI workflow and fix infrastructure issues
- Update actions/checkout from v2 to v4
- Update actions/cache from v2 to v4
- Update docker/login-action to v3
- Update docker/metadata-action to v5
- Update docker/build-push-action to v6
- Add -L flag to curl commands to follow redirects
- Use HTTPS for Geofabrik downloads
- Fix Docker CMake boost_system variant issue with -DBoost_USE_DEBUG_RUNTIME=OFF
John Carmack <johncarmack@me.com> no 2026-01-13
0100-Add-new-file-to-Makefile.patch Add new file to Makefile systemed <richard@systemeD.net> no 2026-02-10
0101-Fix-compiler-warning.patch Fix compiler warning systemed <richard@systemeD.net> no 2026-02-10

All known versions for source package 'tilemaker'

Links