mapnik: 4.0.7 -> 4.1.0 (#414803)

This commit is contained in:
Nikolay Korotkiy 2025-06-08 18:12:58 +04:00 committed by GitHub
commit 5f226d4da4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 17 additions and 51 deletions

View file

@ -27,15 +27,15 @@
sparsehash, sparsehash,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "mapnik"; pname = "mapnik";
version = "4.0.7"; version = "4.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mapnik"; owner = "mapnik";
repo = "mapnik"; repo = "mapnik";
rev = "v${version}"; tag = "v${finalAttrs.version}";
hash = "sha256-gJktRWcJiSGxxjvWFt+Kl9d7g+TOSPk2PfGP0LIVxt4="; hash = "sha256-EhRMG0xPOGwcRAMQD2B4z7nVlXQf4HFFfL3oUaUfXBY=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -47,18 +47,14 @@ stdenv.mkDerivation rec {
rm -r scons rm -r scons
# Remove bundled 'sparsehash' directory in favor of 'sparsehash' package # Remove bundled 'sparsehash' directory in favor of 'sparsehash' package
rm -r deps/mapnik/sparsehash rm -r deps/mapnik/sparsehash
# Remove bundled 'protozero' directory in favor of 'protozero' package
rm -r deps/mapbox/protozero
''; '';
# a distinct dev output makes python-mapnik fail # a distinct dev output makes python-mapnik fail
outputs = [ "out" ]; outputs = [ "out" ];
patches = [ patches = [
# The lib/cmake/harfbuzz/harfbuzz-config.cmake file in harfbuzz.dev is faulty,
# as it provides the wrong libdir. The workaround is to just rely on
# pkg-config to locate harfbuzz shared object files.
# Upstream HarfBuzz wants to drop CMake support anyway.
# See discussion: https://github.com/mapnik/mapnik/issues/4265
./cmake-harfbuzz.patch
# Account for full paths when generating libmapnik.pc # Account for full paths when generating libmapnik.pc
./export-pkg-config-full-paths.patch ./export-pkg-config-full-paths.patch
# Use 'sparsehash' package. # Use 'sparsehash' package.
@ -75,7 +71,7 @@ stdenv.mkDerivation rec {
cairo cairo
freetype freetype
gdal gdal
harfbuzz (harfbuzz.override { withIcu = true; })
icu icu
libjpeg libjpeg
libpng libpng
@ -97,6 +93,8 @@ stdenv.mkDerivation rec {
(lib.cmakeBool "BUILD_DEMO_CPP" false) (lib.cmakeBool "BUILD_DEMO_CPP" false)
## Would require QT otherwise. ## Would require QT otherwise.
(lib.cmakeBool "BUILD_DEMO_VIEWER" false) (lib.cmakeBool "BUILD_DEMO_VIEWER" false)
# disable the find_package call and force pkg-config, see https://github.com/mapnik/mapnik/pull/4270
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_harfbuzz" true)
# Use 'protozero' package. # Use 'protozero' package.
(lib.cmakeBool "USE_EXTERNAL_MAPBOX_PROTOZERO" true) (lib.cmakeBool "USE_EXTERNAL_MAPBOX_PROTOZERO" true)
# macOS builds fail when using memory mapped file cache. # macOS builds fail when using memory mapped file cache.
@ -118,19 +116,19 @@ stdenv.mkDerivation rec {
''; '';
preInstall = '' preInstall = ''
mkdir -p $out/bin install -Dm755 ../utils/mapnik-config/mapnik-config -t $out/bin
cp ../utils/mapnik-config/mapnik-config $out/bin/mapnik-config
''; '';
meta = with lib; { meta = {
description = "Open source toolkit for developing mapping applications"; description = "Open source toolkit for developing mapping applications";
homepage = "https://mapnik.org"; homepage = "https://mapnik.org";
maintainers = with maintainers; [ changelog = "https://github.com/mapnik/mapnik/blob/${finalAttrs.src.tag}/CHANGELOG.md";
maintainers = with lib.maintainers; [
hrdinka hrdinka
hummeltech hummeltech
]; ];
teams = [ teams.geospatial ]; teams = [ lib.teams.geospatial ];
license = licenses.lgpl21Plus; license = lib.licenses.lgpl21Plus;
platforms = platforms.all; platforms = lib.platforms.all;
}; };
} })

View file

@ -1,26 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ffb86d4ac..1775b986f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -177,19 +177,8 @@ endif()
mapnik_find_package(Freetype REQUIRED)
-# try to find harfbuzz with the native configuration and fallback to our "own" FindHarfBuzz
-mapnik_find_package(harfbuzz CONFIG QUIET)
-if(harfbuzz_FOUND)
- message(STATUS "Found harfbuzz native cmake")
- list(APPEND MAPNIK_OPTIONAL_LIBS harfbuzz::harfbuzz)
-else()
- # Use pkg-config when harfbuzz is not found.
- # It might be possible that in future version harfbuzz could only be found via pkg-config.
- # harfbuzz related discussion: https://github.com/harfbuzz/harfbuzz/issues/2653
- message(STATUS "harfbuzz not found via cmake. Searching via pkg-config...")
- mapnik_pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz>=${HARFBUZZ_MIN_VERSION})
- list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::harfbuzz)
-endif()
+pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz)
+list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::harfbuzz)
if(USE_EXTERNAL_MAPBOX_GEOMETRY)
# this is used to provide a way to specify include dirs with CACHE VARIABLES

View file

@ -9007,12 +9007,6 @@ with pkgs;
asciidoc = asciidoc-full; asciidoc = asciidoc-full;
}; };
mapnik = callPackage ../development/libraries/mapnik {
harfbuzz = harfbuzz.override {
withIcu = true;
};
};
matterhorn = matterhorn =
# TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013 # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
( (