From dfa2fbc087bdc942ab8a7693e0c0589759ac18b6 Mon Sep 17 00:00:00 2001 From: David Hummel <6109326+hummeltech@users.noreply.github.com> Date: Tue, 26 Dec 2023 12:48:47 -0700 Subject: [PATCH] mapnik: unstable-2022-10-18 -> unstable-2023-11-28 Removed no-longer-needed patch: * `include.patch`: Fixed [here](https://github.com/mapnik/mapnik/commit/64a031a19bd8f77eb6f3cc7ee64839e9e7770332) Added patch to account for `FONTS_INSTALL_DIR`/`PLUGINS_INSTALL_DIR` containing full paths, causing this issue: ``` Broken paths found in a .pc file! /nix/store/lriysmfydb9p6g6s02q6ri24nzwmi494-mapnik-unstable-2023-11-28/lib/pkgconfig/libmapnik.pc The following lines have issues (specifically '//' in paths). 5:fonts_dir=${prefix}//nix/store/lriysmfydb9p6g6s02q6ri24nzwmi494-mapnik-unstable-2023-11-28/lib/mapnik/fonts 6:plugins_dir=${prefix}//nix/store/lriysmfydb9p6g6s02q6ri24nzwmi494-mapnik-unstable-2023-11-28/lib/mapnik/input ``` Enabled `Checks`, which requires a patch to allow one test to fail: * `datasource-ogr-test-should-fail.patch` --- .../libraries/mapnik/cmake-harfbuzz.patch | 6 +++--- .../mapnik/datasource-ogr-test-should-fail.patch | 13 +++++++++++++ pkgs/development/libraries/mapnik/default.nix | 16 +++++++++++----- .../mapnik/export-pkg-config-full-paths.patch | 15 +++++++++++++++ pkgs/development/libraries/mapnik/include.patch | 11 ----------- 5 files changed, 42 insertions(+), 19 deletions(-) create mode 100644 pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch create mode 100644 pkgs/development/libraries/mapnik/export-pkg-config-full-paths.patch delete mode 100644 pkgs/development/libraries/mapnik/include.patch diff --git a/pkgs/development/libraries/mapnik/cmake-harfbuzz.patch b/pkgs/development/libraries/mapnik/cmake-harfbuzz.patch index 1d5ca6903d0b..aa08f351aa69 100644 --- a/pkgs/development/libraries/mapnik/cmake-harfbuzz.patch +++ b/pkgs/development/libraries/mapnik/cmake-harfbuzz.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index d87a7052d..837867551 100644 +index ffb86d4ac..1775b986f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -153,19 +153,8 @@ endif() +@@ -177,19 +177,8 @@ endif() mapnik_find_package(Freetype REQUIRED) @@ -16,7 +16,7 @@ index d87a7052d..837867551 100644 - # 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...") -- pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz>=${HARFBUZZ_MIN_VERSION}) +- 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) diff --git a/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch b/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch new file mode 100644 index 000000000000..1df64216d20b --- /dev/null +++ b/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch @@ -0,0 +1,13 @@ +diff --git a/test/unit/datasource/ogr.cpp b/test/unit/datasource/ogr.cpp +index 8441ecc55..8dabc67b0 100644 +--- a/test/unit/datasource/ogr.cpp ++++ b/test/unit/datasource/ogr.cpp +@@ -30,7 +30,7 @@ + #include + #include + +-TEST_CASE("ogr") ++TEST_CASE("ogr", "[!shouldfail]") + { + const bool have_ogr_plugin = mapnik::datasource_cache::instance().plugin_registered("ogr"); + if (have_ogr_plugin) diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix index 8d0f5565947b..e220dd408a22 100644 --- a/pkgs/development/libraries/mapnik/default.nix +++ b/pkgs/development/libraries/mapnik/default.nix @@ -26,13 +26,13 @@ stdenv.mkDerivation rec { pname = "mapnik"; - version = "unstable-2022-10-18"; + version = "unstable-2023-11-28"; src = fetchFromGitHub { owner = "mapnik"; repo = "mapnik"; - rev = "05661e54392bcbb3367747f97a3ef6e468c105ba"; - hash = "sha256-96AneLPH1gbh/u880Pdc9OdFq2MniSdaTJoKYqId7sw="; + rev = "2e1b32512b1f8b52331994f2a809d8a383c0c984"; + hash = "sha256-qGdUfu6gFWum/Id/W3ICeGZroMQ3Tz9PQf1tt+gaaXM="; fetchSubmodules = true; }; @@ -57,7 +57,11 @@ stdenv.mkDerivation rec { src = ./catch2-src.patch; catch2_src = catch2.src; }) - ./include.patch + # Disable broken test + # See discussion: https://github.com/mapnik/mapnik/issues/4329#issuecomment-1248778398 + ./datasource-ogr-test-should-fail.patch + # Account for full paths when generating libmapnik.pc + ./export-pkg-config-full-paths.patch ]; nativeBuildInputs = [ cmake pkg-config ]; @@ -83,9 +87,11 @@ stdenv.mkDerivation rec { cmakeFlags = [ # Would require qt otherwise. - "-DBUILD_DEMO_VIEWER=OFF" + "-DBUILD_DEMO_VIEWER:BOOL=OFF" ]; + doCheck = true; + # mapnik-config is currently not build with CMake. So we use the SCons for # this one. We can't add SCons to nativeBuildInputs though, as stdenv would # then try to build everything with scons. diff --git a/pkgs/development/libraries/mapnik/export-pkg-config-full-paths.patch b/pkgs/development/libraries/mapnik/export-pkg-config-full-paths.patch new file mode 100644 index 000000000000..ec80423689d3 --- /dev/null +++ b/pkgs/development/libraries/mapnik/export-pkg-config-full-paths.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/MapnikExportPkgConfig.cmake b/cmake/MapnikExportPkgConfig.cmake +index e459f80ef..ec18a71a2 100644 +--- a/cmake/MapnikExportPkgConfig.cmake ++++ b/cmake/MapnikExportPkgConfig.cmake +@@ -65,8 +65,8 @@ prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} + includedir=${prefix}/include + libdir=${exec_prefix}/lib +-fonts_dir=${prefix}/@FONTS_INSTALL_DIR@ +-plugins_dir=${prefix}/@PLUGINS_INSTALL_DIR@ ++fonts_dir=@FONTS_INSTALL_DIR@ ++plugins_dir=@PLUGINS_INSTALL_DIR@ + + Name: @_lib_name@ + Description: @_description@ diff --git a/pkgs/development/libraries/mapnik/include.patch b/pkgs/development/libraries/mapnik/include.patch deleted file mode 100644 index e13f4a43cbcb..000000000000 --- a/pkgs/development/libraries/mapnik/include.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/benchmark/src/test_png_encoding2.cpp b/benchmark/src/test_png_encoding2.cpp -index 19897d180..5791b139c 100644 ---- a/benchmark/src/test_png_encoding2.cpp -+++ b/benchmark/src/test_png_encoding2.cpp -@@ -1,5 +1,6 @@ - #include "bench_framework.hpp" - #include "compare_images.hpp" -+#include - - class test : public benchmark::test_case - {