From 65cec7a97ee26db10c0e302b937a2d47ed827091 Mon Sep 17 00:00:00 2001
From: Nikolay Korotkiy <sikmir@gmail.com>
Date: Tue, 14 Sep 2021 23:04:18 +0300
Subject: [PATCH] mapserver: init at 7.6.4

---
 pkgs/servers/mapserver/default.nix | 60 ++++++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix    |  2 +
 2 files changed, 62 insertions(+)
 create mode 100644 pkgs/servers/mapserver/default.nix

diff --git a/pkgs/servers/mapserver/default.nix b/pkgs/servers/mapserver/default.nix
new file mode 100644
index 000000000000..4735264f0a97
--- /dev/null
+++ b/pkgs/servers/mapserver/default.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
+, cairo, curl, fcgi, freetype, fribidi, gdal, geos, giflib, harfbuzz
+, libjpeg, libpng, librsvg, libxml2, postgresql, proj, protobufc, zlib
+, withPython ? true, swig, python
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mapserver";
+  version = "7.6.4";
+
+  src = fetchFromGitHub {
+    owner = "MapServer";
+    repo = "MapServer";
+    rev = "rel-${lib.replaceStrings [ "." ] [ "-" ] version}";
+    sha256 = "sha256-NMo/7CtWYIP1oPKki09oDWLCbj2vPk3xCU4rkHq8YKY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ] ++ lib.optional withPython swig;
+
+  buildInputs = [
+    cairo
+    curl
+    fcgi
+    freetype
+    fribidi
+    gdal
+    geos
+    giflib
+    harfbuzz
+    libjpeg
+    libpng
+    librsvg
+    libxml2
+    postgresql
+    proj
+    protobufc
+    zlib
+  ] ++ lib.optional withPython python;
+
+  cmakeFlags = [
+    "-DWITH_KML=ON"
+    "-DWITH_SOS=ON"
+    "-DWITH_RSVG=ON"
+    "-DWITH_CURL=ON"
+    "-DWITH_CLIENT_WMS=ON"
+    "-DWITH_CLIENT_WFS=ON"
+  ] ++ lib.optional withPython "-DWITH_PYTHON=ON";
+
+  meta = with lib; {
+    description = "Platform for publishing spatial data and interactive mapping applications to the web";
+    homepage = "https://mapserver.org/";
+    changelog = "https://mapserver.org/development/changelog/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 424046b942b7..09acc9f0a49e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6630,6 +6630,8 @@ with pkgs;
 
   makebootfat = callPackage ../tools/misc/makebootfat { };
 
+  mapserver = callPackage ../servers/mapserver { };
+
   martin = callPackage ../servers/martin {
     inherit (darwin.apple_sdk.frameworks) Security;
   };