Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at python-updates 99 lines 2.1 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 pkg-config, 6 validatePkgConfig, 7 freexl, 8 geos, 9 librttopo, 10 libxml2, 11 minizip, 12 proj, 13 sqlite, 14 libiconv, 15 zlib, 16 testers, 17}: 18 19stdenv.mkDerivation (finalAttrs: { 20 pname = "libspatialite"; 21 version = "5.1.0"; 22 23 outputs = [ 24 "out" 25 "dev" 26 ]; 27 28 src = fetchurl { 29 url = "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${finalAttrs.version}.tar.gz"; 30 hash = "sha256-Q74t00na/+AW3RQAxdEShYKMIv6jXKUQnyHz7VBgUIA="; 31 }; 32 33 patches = [ 34 # Drop use of deprecated libxml2 HTTP API. 35 # From: https://www.gaia-gis.it/fossil/libspatialite/info/7c452740fe 36 # see also: https://github.com/NixOS/nixpkgs/issues/347085 37 ./xmlNanoHTTPCleanup.patch 38 ]; 39 40 postPatch = lib.optionalString (!stdenv.hostPlatform.isStatic) '' 41 substituteInPlace spatialite.pc.in \ 42 --replace-fail "@LIBS@ @LIBXML2_LIBS@ @SQLITE3_LIBS@ -lm" "" 43 ''; 44 45 nativeBuildInputs = [ 46 pkg-config 47 validatePkgConfig 48 geos # for geos-config 49 ]; 50 51 buildInputs = [ 52 freexl 53 geos 54 librttopo 55 libxml2 56 minizip 57 proj 58 sqlite 59 zlib 60 ] 61 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 62 libiconv 63 ]; 64 65 enableParallelBuilding = true; 66 67 postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' 68 ln -s $out/lib/mod_spatialite.{so,dylib} 69 ''; 70 71 # Failed tests (linux & darwin): 72 # - check_virtualtable6 73 # - check_drop_rename 74 doCheck = false; 75 76 preCheck = '' 77 export LD_LIBRARY_PATH=$(pwd)/src/.libs 78 export DYLD_LIBRARY_PATH=$(pwd)/src/.libs 79 ''; 80 81 passthru.tests = { 82 pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; 83 }; 84 85 meta = { 86 description = "Extensible spatial index library in C++"; 87 homepage = "https://www.gaia-gis.it/fossil/libspatialite"; 88 # They allow any of these 89 license = with lib.licenses; [ 90 gpl2Plus 91 lgpl21Plus 92 mpl11 93 ]; 94 pkgConfigModules = [ "spatialite" ]; 95 platforms = lib.platforms.unix; 96 maintainers = with lib.maintainers; [ dotlambda ]; 97 teams = [ lib.teams.geospatial ]; 98 }; 99})