From 42f157fd07d870ef0cacd1f5c6a0ba4d6eaecf05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= <dev@schuetz-co.de> Date: Sat, 20 Mar 2021 19:30:19 +0100 Subject: [PATCH] mapbox-gl-native: use upstream version, unvendor rapidjson, and move to libsForQt5 The first two patches are needed for mapbox-gl-qml. The third patch is required when building without the vendored rapidjson. --- .../libraries/mapbox-gl-native/default.nix | 38 +++++++++++++++---- pkgs/top-level/all-packages.nix | 2 - pkgs/top-level/qt5-packages.nix | 2 + 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/mapbox-gl-native/default.nix b/pkgs/development/libraries/mapbox-gl-native/default.nix index e98903e3a83..c71bf17a3c7 100644 --- a/pkgs/development/libraries/mapbox-gl-native/default.nix +++ b/pkgs/development/libraries/mapbox-gl-native/default.nix @@ -1,20 +1,44 @@ -{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config -, qtbase, curl, libuv, glfw3 }: +{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, pkg-config +, qtbase, curl, libuv, glfw3, rapidjson }: mkDerivation rec { pname = "mapbox-gl-native"; - version = "2020.06.07"; + version = "1.6.0"; src = fetchFromGitHub { owner = "mapbox"; repo = "mapbox-gl-native"; - rev = "e18467d755f470b26f61f6893eddd76ecf0816e6"; - sha256 = "1x271gg9h81jpi70pv63i6lsa1zg6bzja9mbz7bsa4s02fpqy7wh"; + rev = "maps-v${version}"; + sha256 = "027rw23yvd5a6nl9b5hsanddc44nyb17l2whdcq9fxb9n6vcda4c"; fetchSubmodules = true; }; + patches = [ + # https://github.com/mapbox/mapbox-gl-native/pull/16591 + (fetchpatch { + name = "add-support-for-qmapboxgl-installation.patch"; + url = "https://github.com/mapbox/mapbox-gl-native/commit/e18467d755f470b26f61f6893eddd76ecf0816e6.patch"; + sha256 = "0gs7wmkvyhf2db4cwbsq31sprsh1avi70ggvi32bk0wn3cw4d79b"; + }) + (fetchpatch { + name = "add-support-for-using-qmapboxgl-as-a-proper-cmake-dependency.patch"; + url = "https://github.com/mapbox/mapbox-gl-native/commit/ab27b9b8207754ef731b588d187c470ffb084455.patch"; + sha256 = "1lr5p1g4qaizs57vjqry9aq8k1ki59ks0y975chlnrm2sffp140r"; + }) + (fetchpatch { + name = "skip-license-check.patch"; + url = "https://git.alpinelinux.org/aports/plain/testing/mapbox-gl-native/0002-skip-license-check.patch?id=6751a93dca26b0b3ceec9eb151272253a2fe497e"; + sha256 = "1yybwzxbvn0lqb1br1fyg7763p2h117s6mkmywkl4l7qg9daa7ba"; + }) + ]; + + postPatch = '' + # don't use vendored rapidjson + rm -r vendor/mapbox-base/extras/rapidjson + ''; + nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ curl libuv glfw3 qtbase ]; + buildInputs = [ curl libuv glfw3 qtbase rapidjson ]; cmakeFlags = [ "-DMBGL_WITH_QT=ON" @@ -27,7 +51,7 @@ mkDerivation rec { description = "Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL"; homepage = "https://mapbox.com/mobile"; license = licenses.bsd2; - maintainers = [ maintainers.Thra11 ]; + maintainers = with maintainers; [ Thra11 dotlambda ]; platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b7831d8796..15aa3fae6a7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16077,8 +16077,6 @@ in opencl-clang = callPackage ../development/libraries/opencl-clang { }; - mapbox-gl-native = libsForQt5.callPackage ../development/libraries/mapbox-gl-native { }; - mapbox-gl-qml = libsForQt5.callPackage ../development/libraries/mapbox-gl-qml { }; mapnik = callPackage ../development/libraries/mapnik { }; diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix index 656a8a5c0f0..6517b717b1d 100644 --- a/pkgs/top-level/qt5-packages.nix +++ b/pkgs/top-level/qt5-packages.nix @@ -115,6 +115,8 @@ in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 // kpmcore = callPackage ../development/libraries/kpmcore { }; + mapbox-gl-native = libsForQt5.callPackage ../development/libraries/mapbox-gl-native { }; + mauikit = callPackage ../development/libraries/mauikit { }; mlt = callPackage ../development/libraries/mlt/qt-5.nix { };