The input plugins' location differs per mapnik generation: mapnik 3.1
on Ubuntu LTS lives in /usr/lib/mapnik/<version>/input (no multiarch),
while Debian/Ubuntu mapnik 4.x packages place them under
/usr/lib/<triplet>/mapnik/<version>/input. The hardcoded 3.1 path left
MapnikConfig.ensureInitialized() without datasource plugins under
mapnik 4 (e.g. the Debian trixie package).
Discovery order on Linux (computed once, cached):
1. pkg-config libmapnik --variable=plugins_dir — mapnik 4.x packages
ship libmapnik.pc exposing the directory (mapnik 3.1 ships no .pc
file, so this probe fails and the next step applies).
2. glob /usr/lib/*/mapnik/*/input — the Debian 4.x layout; the highest
version wins.
3. glob /usr/lib/mapnik/*/input — the legacy 3.1 layout; the highest
version wins.
A candidate only counts when it is an existing directory containing at
least one .input plugin. macOS keeps the Homebrew path unchanged.