1{ fetchFromGitHub
2, lib
3, stdenv
4, cmake
5, pkg-config
6, apacheHttpd
7, apr
8, aprutil
9, boost
10, cairo
11, curl
12, glib
13, harfbuzz
14, icu
15, iniparser
16, libmemcached
17, mapnik
18, nix-update-script
19}:
20
21stdenv.mkDerivation rec {
22 pname = "mod_tile";
23 version = "0.7.1";
24
25 src = fetchFromGitHub {
26 owner = "openstreetmap";
27 repo = "mod_tile";
28 rev = "refs/tags/v${version}";
29 hash = "sha256-zXUwTG8cqAkY5MC1jAc2TtMgNMQPLc5nc22okVYP4ME=";
30 };
31
32 nativeBuildInputs = [
33 cmake
34 pkg-config
35 ];
36
37 buildInputs = [
38 apacheHttpd
39 apr
40 aprutil
41 boost
42 cairo
43 curl
44 glib
45 harfbuzz
46 icu
47 iniparser
48 libmemcached
49 mapnik
50 ];
51
52 enableParallelBuilding = true;
53
54 # Explicitly specify directory paths
55 cmakeFlags = [
56 (lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
57 (lib.cmakeFeature "CMAKE_INSTALL_MANDIR" "share/man")
58 (lib.cmakeFeature "CMAKE_INSTALL_MODULESDIR" "modules")
59 (lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "")
60 (lib.cmakeBool "ENABLE_TESTS" doCheck)
61 ];
62
63 # And use DESTDIR to define the install destination
64 installFlags = [ "DESTDIR=$(out)" ];
65
66 doCheck = true;
67
68 passthru.updateScript = nix-update-script { };
69
70 meta = with lib; {
71 homepage = "https://github.com/openstreetmap/mod_tile";
72 description = "Efficiently render and serve OpenStreetMap tiles using Apache and Mapnik";
73 license = licenses.gpl2;
74 maintainers = with maintainers; [ jglukasik ];
75 platforms = platforms.linux;
76 };
77}