From 53b7d55bcd60e256e926ebe935a95886493be5e5 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Tue, 13 Sep 2022 21:56:56 +0300 Subject: [PATCH] tilemaker: fix build --- pkgs/applications/misc/tilemaker/default.nix | 27 +++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/misc/tilemaker/default.nix b/pkgs/applications/misc/tilemaker/default.nix index cc87c529e34d..dd05604501e9 100644 --- a/pkgs/applications/misc/tilemaker/default.nix +++ b/pkgs/applications/misc/tilemaker/default.nix @@ -1,17 +1,25 @@ -{ lib, stdenv, fetchFromGitHub, buildPackages, cmake, installShellFiles -, boost, lua, protobuf, rapidjson, shapelib, sqlite, zlib }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, buildPackages, cmake, installShellFiles +, boost, lua, protobuf, rapidjson, shapelib, sqlite, zlib, testers }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "tilemaker"; version = "2.2.0"; src = fetchFromGitHub { owner = "systemed"; - repo = pname; - rev = "v${version}"; + repo = "tilemaker"; + rev = "v${finalAttrs.version}"; hash = "sha256-st6WDCk1RZ2lbfrudtcD+zenntyTMRHrIXw3nX5FHOU="; }; + patches = [ + # Fix build with Boost >= 1.79, remove on next upstream release + (fetchpatch { + url = "https://github.com/systemed/tilemaker/commit/252e7f2ad8938e38d51783d1596307dcd27ed269.patch"; + hash = "sha256-YSkhmpzEYk/mxVPSDYdwZclooB3zKRjDPzqamv6Nvyc="; + }) + ]; + postPatch = '' substituteInPlace src/tilemaker.cpp \ --replace "config.json" "$out/share/tilemaker/config-openmaptiles.json" \ @@ -25,11 +33,18 @@ stdenv.mkDerivation rec { cmakeFlags = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DPROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc"; + NIX_CFLAGS_COMPILE = [ "-DTM_VERSION=${finalAttrs.version}" ]; + postInstall = '' installManPage ../docs/man/tilemaker.1 install -Dm644 ../resources/* -t $out/share/tilemaker ''; + passthru.tests.version = testers.testVersion { + package = finalAttrs.finalPackage; + command = "tilemaker --help"; + }; + meta = with lib; { description = "Make OpenStreetMap vector tiles without the stack"; homepage = "https://tilemaker.org/"; @@ -37,4 +52,4 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ sikmir ]; platforms = platforms.unix; }; -} +})