about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/os/osm2pgsql/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/os/osm2pgsql/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/os/osm2pgsql/package.nix80
1 files changed, 80 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/os/osm2pgsql/package.nix b/nixpkgs/pkgs/by-name/os/osm2pgsql/package.nix
new file mode 100644
index 000000000000..0ddfb737fcee
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/os/osm2pgsql/package.nix
@@ -0,0 +1,80 @@
+{ lib, stdenv
+, fetchFromGitHub
+, cmake
+, expat
+, fmt
+, proj
+, bzip2
+, cli11
+, zlib
+, boost
+, postgresql
+, python3
+, withLuaJIT ? false
+, lua
+, luajit
+, libosmium
+, nlohmann_json
+, opencv
+, potrace
+, protozero
+, testers
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "osm2pgsql";
+  version = "1.11.0";
+
+  src = fetchFromGitHub {
+    owner = "osm2pgsql-dev";
+    repo = "osm2pgsql";
+    rev = finalAttrs.version;
+    hash = "sha256-95B4WVaf3AwaC+S6dCJpUq/1J47rOZjWUBxmRqHCu4w=";
+  };
+
+  postPatch = ''
+    # Remove bundled libraries
+    rm -r contrib
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    boost
+    bzip2
+    cli11
+    expat
+    fmt
+    libosmium
+    nlohmann_json
+    opencv
+    postgresql
+    potrace
+    proj
+    protozero
+    (python3.withPackages (p: with p; [ psycopg2 pyosmium ]))
+    zlib
+  ] ++ lib.optional withLuaJIT luajit
+    ++ lib.optional (!withLuaJIT) lua;
+
+  cmakeFlags = [
+    (lib.cmakeBool "EXTERNAL_LIBOSMIUM" true)
+    (lib.cmakeBool "EXTERNAL_PROTOZERO" true)
+    (lib.cmakeBool "EXTERNAL_FMT" true)
+    (lib.cmakeBool "WITH_LUAJIT" withLuaJIT)
+  ];
+
+  installFlags = [ "install-gen" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+  };
+
+  meta = with lib; {
+    description = "OpenStreetMap data to PostgreSQL converter";
+    homepage = "https://osm2pgsql.org";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; teams.geospatial.members ++ [ jglukasik das-g ];
+  };
+})