biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / nominatim / default.nix
blobdb126863fe04b915497949d7fadc53d50a5482ae
1 { stdenv, lib, fetchFromGitHub, fetchurl
2 , clang-tools, cmake, bzip2, zlib, expat, boost, git, pandoc
3 # Nominatim needs to be built with the same postgres version it will target
4 , postgresql
5 , python3, php
6 }:
8 let
9   countryGrid = fetchurl {
10     # Nominatim docs mention https://www.nominatim.org/data/country_grid.sql.gz but it's not a very good URL for pinning
11     url = "https://web.archive.org/web/20220323041006/https://nominatim.org/data/country_grid.sql.gz";
12     sha256 = "sha256-/mY5Oq9WF0klXOv0xh0TqEJeMmuM5QQJ2IxANRZd4Ek=";
13   };
15 stdenv.mkDerivation rec {
16   pname = "nominatim";
17   version = "4.0.1";
19   src = fetchFromGitHub {
20     owner = "osm-search";
21     repo = "Nominatim";
22     rev = "v${version}";
23     fetchSubmodules = true;
24     sha256 = "sha256-sKI/KBKveb5kAWJ7y1xw+ZF1thynr402rJhVjkIdFMo=";
25   };
27   nativeBuildInputs = [
28     cmake
29     clang-tools
30     git
31     pandoc
32     php
33   ];
35   buildInputs = [
36     bzip2
37     zlib
38     expat
39     boost
40     (python3.withPackages (ps: with ps; [
41       pyyaml
42       python-dotenv
43       psycopg2
44       psutil
45       jinja2
46       pyicu
47       datrie
48       pyosmium
49     ]))
50     # python3Packages.pylint  # We don't want to run pylint because the package could break on pylint bumps which is really annoying.
51     # python3Packages.pytest  # disabled since I can't get it to run tests anyway
52     # python3Packages.behave  # disabled since I can't get it to run tests anyway
53     postgresql
54   ];
56   postPatch = ''
57     mkdir -p ./data
58     ln -s ${countryGrid} ./data/country_osm_grid.sql.gz
59   '';
61   meta = with lib; {
62     description = "Search engine for OpenStreetMap data";
63     homepage = "https://nominatim.org/";
64     license = licenses.gpl2Plus;
65     platforms = platforms.unix;
66     maintainers = [ maintainers.mausch ];
67     mainProgram = "nominatim";
68   };