diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index b7cf84ff9591..360d94d1b825 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -1,19 +1,23 @@ -{ stdenv, fetchurl, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw +{ stdenv, fetchFromGitHub, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw , cairo, readline, ffmpeg, makeWrapper, wxGTK30, netcdf, blas -, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages, libLAS +, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages, libLAS, proj-datumgrid }: -stdenv.mkDerivation { - name = "grass-7.2.2"; - src = fetchurl { - url = https://grass.osgeo.org/grass72/source/grass-7.2.2.tar.gz; - sha256 = "0yzljbrxlqp4wbw08n1dvmm4vmwkg8glf1ff4xyh589r5ryb7gxv"; +stdenv.mkDerivation rec { + name = "grass"; + version = "7.6.1"; + + src = with stdenv.lib; fetchFromGitHub { + owner = "OSGeo"; + repo = "grass"; + rev = "${name}_${replaceStrings ["."] ["_"] version}"; + sha256 = "1amjk9rz7vw5ha7nyl5j2bfwj5if9w62nlwx5qbp1x7spldimlll"; }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo + buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.connector-c blas - libLAS ] + libLAS proj-datumgrid ] ++ (with python2Packages; [ python dateutil wxPython30 numpy ]); # On Darwin the installer tries to symlink the help files into a system @@ -22,6 +26,8 @@ stdenv.mkDerivation { configureFlags = [ "--with-proj-share=${proj}/share/proj" + "--with-proj-includes=${proj.dev}/include" + "--with-proj-lib=${proj}/lib" "--without-opengl" "--with-readline" "--with-wxwidgets" @@ -49,9 +55,11 @@ stdenv.mkDerivation { scripts/d.what.vect/d.what.vect.py \ scripts/g.extension/g.extension.py \ scripts/g.extension.all/g.extension.all.py \ + scripts/r.drain/r.drain.py \ scripts/r.pack/r.pack.py \ scripts/r.tileset/r.tileset.py \ scripts/r.unpack/r.unpack.py \ + scripts/v.clip/v.clip.py \ scripts/v.rast.stats/v.rast.stats.py \ scripts/v.to.lines/v.to.lines.py \ scripts/v.what.strds/v.what.strds.py \ @@ -72,13 +80,15 @@ stdenv.mkDerivation { done ''; + NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1" ]; + postInstall = '' - wrapProgram $out/bin/grass72 \ + wrapProgram $out/bin/grass76 \ --set PYTHONPATH $PYTHONPATH \ --set GRASS_PYTHON ${python2Packages.python}/bin/${python2Packages.python.executable} \ --suffix LD_LIBRARY_PATH ':' '${gdal}/lib' - ln -s $out/grass-*/lib $out/lib - ln -s $out/grass-*/include $out/include + ln -s $out/grass*/lib $out/lib + ln -s $out/grass*/include $out/include ''; enableParallelBuilding = true; diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix index a5a0492ab876..b4d3e9f93a47 100644 --- a/pkgs/applications/gis/openorienteering-mapper/default.nix +++ b/pkgs/applications/gis/openorienteering-mapper/default.nix @@ -20,9 +20,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ - # Required by the build to be specified - "-DPROJ4_ROOT=${proj}" - # Building the manual and bundling licenses fails "-DLICENSING_PROVIDER:BOOL=OFF" "-DMapper_MANUAL_QTHELP:BOOL=OFF" @@ -43,6 +40,8 @@ stdenv.mkDerivation rec { "-DMapper_PACKAGE_GDAL=0" ]); + # Needs to be available when proj_api.h gets evaluted by CPP + NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ]; postInstall = stdenv.lib.optionalString stdenv.isDarwin '' diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix index 6e7fb375eab9..a57b180d5b23 100644 --- a/pkgs/applications/gis/qgis/unwrapped.nix +++ b/pkgs/applications/gis/qgis/unwrapped.nix @@ -1,6 +1,6 @@ -{ stdenv, lib, fetchurl, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl +{ stdenv, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl , qwt, fcgi, python3Packages, libspatialindex, libspatialite, postgresql -, txt2tags, openssl, libzip, hdf5, netcdf +, txt2tags, openssl, libzip, hdf5, netcdf, exiv2 , qtbase, qtwebkit, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns , withGrass ? true, grass }: @@ -10,12 +10,15 @@ let [ qscintilla-qt5 gdal jinja2 numpy psycopg2 chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ]; in stdenv.mkDerivation rec { - version = "3.4.8"; - name = "qgis-unwrapped-${version}"; + version = "3.8.0"; + pname = "qgis"; + name = "${pname}-unwrapped-${version}"; - src = fetchurl { - url = "http://qgis.org/downloads/qgis-${version}.tar.bz2"; - sha256 = "13dy9y7ipv25x3k31njhjljdav36xay6s82g6ywaqf1xxh3s567w"; + src = fetchFromGitHub { + owner = "qgis"; + repo = "QGIS"; + rev = "final-${lib.replaceStrings ["."] ["_"] version}"; + sha256 = "11jqj6lavpw9piv0rm8vvbgd99zhcxl6yfjg699wlrjlyf71xac5"; }; passthru = { @@ -23,7 +26,7 @@ in stdenv.mkDerivation rec { inherit python3Packages; }; - buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt + buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt exiv2 fcgi libspatialindex libspatialite postgresql txt2tags libzip hdf5 netcdf qtbase qtwebkit qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns] ++ (stdenv.lib.optional withGrass grass) ++ pythonBuildInputs; @@ -36,7 +39,7 @@ in stdenv.mkDerivation rec { # build to use PYQT5_SIP_DIR consistently. postPatch = '' substituteInPlace cmake/FindPyQt5.py \ - --replace 'pyqtcfg.pyqt_sip_dir' '"${python3Packages.pyqt5}/share/sip/PyQt5"' + --replace 'sip_dir = cfg.default_sip_dir' 'sip_dir = "${python3Packages.pyqt5}/share/sip/PyQt5"' ''; cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix index 34bb8c9f55ad..7440e2633a33 100644 --- a/pkgs/applications/gis/saga/default.nix +++ b/pkgs/applications/gis/saga/default.nix @@ -3,7 +3,9 @@ unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }: stdenv.mkDerivation rec { - name = "saga-7.2.0"; + pname = "saga"; + version = "7.3.0"; + name = "${pname}-${version}"; # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs # for why the have additional buildInputs on darwin @@ -17,8 +19,8 @@ stdenv.mkDerivation rec { CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing"; src = fetchurl { - url = "mirror://sourceforge/project/saga-gis/SAGA%20-%207/SAGA%20-%207.2.0/saga-7.2.0.tar.gz"; - sha256 = "10gjc5mc5kwg2c2la22hgwx6s5q60z9xxffjpjw0zrlhksijl5an"; + url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%207/SAGA%20-%207.3.0/saga-7.3.0.tar.gz"; + sha256 = "1g7v6vx7b8mfhbbg03pdk4kyks20maqbcdbasnxazhs8pl2zih7k"; }; meta = with stdenv.lib; { diff --git a/pkgs/applications/gis/saga/lts.nix b/pkgs/applications/gis/saga/lts.nix deleted file mode 100644 index ca0034aa9708..000000000000 --- a/pkgs/applications/gis/saga/lts.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, fetchgit, gdal, wxGTK30, proj, libiodbc, lzma, jasper, - libharu, opencv, vigra, postgresql, autoreconfHook, Cocoa - , unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }: - -stdenv.mkDerivation rec { - name = "saga-2.3.2"; - - # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs - # for why the have additional buildInputs on darwin - buildInputs = [ autoreconfHook gdal wxGTK30 proj libharu opencv vigra - postgresql libiodbc lzma jasper - unixODBC poppler hdf4.out hdf5 netcdf sqlite qhull giflib ] - ++ stdenv.lib.optional stdenv.isDarwin Cocoa ; - - enableParallelBuilding = true; - - CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing"; - - sourceRoot = "code-b6f474f/saga-gis"; - - patches = [ ./clang_patch.patch ./finite.patch]; - - src = fetchgit { - url = "https://git.code.sf.net/p/saga-gis/code.git"; - rev = "b6f474f8af4af7f0ff82548cc6f88c53547d91f5"; - sha256 = "0iakynai8mhcwj6wxvafkqhd7b417ss7hyhbcp9wf6092l6vc2zd"; - }; - - meta = with stdenv.lib; { - description = "System for Automated Geoscientific Analyses"; - homepage = http://www.saga-gis.org; - license = licenses.gpl2Plus; - maintainers = [ maintainers.mpickering ]; - platforms = with platforms; unix; - }; -} diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix index 0833464f2c25..dec55e9c1e5c 100644 --- a/pkgs/applications/misc/merkaartor/default.nix +++ b/pkgs/applications/misc/merkaartor/default.nix @@ -18,6 +18,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ]; + postInstall = '' wrapProgram $out/bin/merkaartor \ --set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-*/plugins/platforms diff --git a/pkgs/applications/misc/osm2xmap/default.nix b/pkgs/applications/misc/osm2xmap/default.nix index 5787adef2a3e..9d0fb3fdeb7c 100644 --- a/pkgs/applications/misc/osm2xmap/default.nix +++ b/pkgs/applications/misc/osm2xmap/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation rec { "INSTALL_SHAREDIR=$(out)/share/" ]; + NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ]; + installFlags = [ "DESTDIR=$(out)" ]; buildInputs = [ libroxml proj libyamlcpp boost ]; diff --git a/pkgs/applications/science/astronomy/openspace/default.nix b/pkgs/applications/science/astronomy/openspace/default.nix index ee3a71cf1813..dc7c7c920a17 100644 --- a/pkgs/applications/science/astronomy/openspace/default.nix +++ b/pkgs/applications/science/astronomy/openspace/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "0.11.1"; name = "openspace-${version}"; - + src = fetchFromGitHub { owner = "OpenSpace"; repo = "OpenSpace"; @@ -13,37 +13,37 @@ stdenv.mkDerivation rec { sha256 = "0msqixf30r0d41xmfmzkdfw6w9jkx2ph5clq8xiwrg1jc3z9q7nv"; fetchSubmodules = true; }; - + buildInputs = [ makeWrapper cmake curl boost gdal glew soil libX11 libXi libXxf86vm libXcursor libXrandr libXinerama ]; - + glmPlatformH = fetchurl { url = "https://raw.githubusercontent.com/g-truc/glm/dd48b56e44d699a022c69155c8672caacafd9e8a/glm/simd/platform.h"; sha256 = "0y91hlbgn5va7ijg5mz823gqkq9hqxl00lwmdwnf8q2g086rplzw"; }; - + # See prePatch = '' cp ${glmPlatformH} ext/sgct/include/glm/simd/platform.h cp ${glmPlatformH} ext/ghoul/ext/glm/glm/simd/platform.h ''; - + patches = [ # See ./vrpn.patch - + ./constexpr.patch ./config.patch # WARNING: This patch disables some slow torrents in a very dirty way. - ./assets.patch + ./assets.patch ]; - + bundle = "$out/usr/share/openspace"; - + preConfigure = '' cmakeFlagsArray=( $cmakeFlagsArray @@ -51,28 +51,28 @@ stdenv.mkDerivation rec { "-DCMAKE_INSTALL_PREFIX=${bundle}" ) ''; - + preInstall = '' mkdir -p $out/bin mkdir -p ${bundle} ''; - + postInstall = '' cp ext/spice/libSpice.so ${bundle}/lib cp ext/ghoul/ext/lua/libLua.so ${bundle}/lib ''; - + postFixup = '' for bin in ${bundle}/bin/* do rpath=$(patchelf --print-rpath $bin) patchelf --set-rpath $rpath:${bundle}/lib $bin - + name=$(basename $bin) makeWrapper $bin $out/bin/$name --run "cd ${bundle}" done ''; - + meta = { description = "Open-source astrovisualization project"; longDescription = '' @@ -85,5 +85,6 @@ stdenv.mkDerivation rec { homepage = https://www.openspaceproject.com/; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.linux; + broken = true; # fails to build }; } diff --git a/pkgs/development/libraries/gdal/001.3_0_1.darwin.patch b/pkgs/development/libraries/gdal/001.3_0_1.darwin.patch new file mode 100644 index 000000000000..3d34f689120f --- /dev/null +++ b/pkgs/development/libraries/gdal/001.3_0_1.darwin.patch @@ -0,0 +1,29 @@ +diff a/swig/python/setup.py b/swig/python/setup.py +--- a/swig/python/setup.py ++++ b/swig/python/setup.py +@@ -268,17 +268,17 @@ class gdal_ext(build_ext): + if ext.name != 'osgeo._gdalconst': + ext.extra_compile_args += [cxx11_flag] + +- # Adding arch flags here if OS X and compiler is clang +- if sys.platform == 'darwin' and [int(x) for x in os.uname()[2].split('.')] >= [11, 0, 0]: +- # since MacOS X 10.9, clang no longer accepts -mno-fused-madd +- # extra_compile_args.append('-Qunused-arguments') +- clang_flag = '-Wno-error=unused-command-line-argument-hard-error-in-future' +- if has_flag(self.compiler, clang_flag): +- ext.extra_compile_args += [clang_flag] +- else: +- clang_flag = '-Wno-error=unused-command-line-argument' +- if has_flag(self.compiler, clang_flag): +- ext.extra_compile_args += [clang_flag] ++ # Adding arch flags here if OS X and compiler is clang ++ if sys.platform == 'darwin' and [int(x) for x in os.uname()[2].split('.')] >= [11, 0, 0]: ++ # since MacOS X 10.9, clang no longer accepts -mno-fused-madd ++ # extra_compile_args.append('-Qunused-arguments') ++ clang_flag = '-Wno-error=unused-command-line-argument-hard-error-in-future' ++ if has_flag(self.compiler, clang_flag): ++ ext.extra_compile_args += [clang_flag] ++ else: ++ clang_flag = '-Wno-error=unused-command-line-argument' ++ if has_flag(self.compiler, clang_flag): ++ ext.extra_compile_args += [clang_flag] diff --git a/pkgs/development/libraries/gdal/2.4.0.nix b/pkgs/development/libraries/gdal/2.4.0.nix new file mode 100644 index 000000000000..14113d8b87eb --- /dev/null +++ b/pkgs/development/libraries/gdal/2.4.0.nix @@ -0,0 +1,95 @@ +{ stdenv, fetchurl, fetchpatch, unzip, libjpeg, libtiff, zlib +, postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl +, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat +, libiconv, libxml2 +, netcdfSupport ? true, netcdf, hdf5, curl +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "gdal-${version}"; + version = "2.4.0"; + + src = fetchurl { + url = "https://download.osgeo.org/gdal/${version}/${name}.tar.xz"; + sha256 = "09qgy36z0jc9w05373m4n0vm4j54almdzql6z9p9zr9pdp61syf3"; + }; + + buildInputs = [ unzip libjpeg libtiff libgeotiff libpng proj openssl sqlite + libspatialite poppler hdf4 qhull giflib expat libxml2 proj ] + ++ (with pythonPackages; [ python numpy wrapPython ]) + ++ stdenv.lib.optional stdenv.isDarwin libiconv + ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ]; + + configureFlags = [ + "--with-expat=${expat.dev}" + "--with-jpeg=${libjpeg.dev}" + "--with-libtiff=${libtiff.dev}" # optional (without largetiff support) + "--with-png=${libpng.dev}" # optional + "--with-poppler=${poppler.dev}" # optional + "--with-libz=${zlib.dev}" # optional + "--with-pg=${postgresql}/bin/pg_config" + "--with-mysql=${mysql.connector-c or mysql}/bin/mysql_config" + "--with-geotiff=${libgeotiff.dev}" + "--with-sqlite3=${sqlite.dev}" + "--with-spatialite=${libspatialite}" + "--with-python" # optional + "--with-proj=${proj.dev}" # optional + "--with-geos=${geos}/bin/geos-config"# optional + "--with-hdf4=${hdf4.dev}" # optional + "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional + (if netcdfSupport then "--with-netcdf=${netcdf}" else "") + ]; + + hardeningDisable = [ "format" ]; + + CXXFLAGS = "-fpermissive"; + + postPatch = '' + sed -i '/ifdef bool/i\ + #ifdef swap\ + #undef swap\ + #endif' ogr/ogrsf_frmts/mysql/ogr_mysql.h + # poppler 0.73.0 support + patch -lp2 <${ + fetchpatch { + url = "https://github.com/OSGeo/gdal/commit/29f4dfbcac2de718043f862166cd639ab578b552.diff"; + sha256 = "1h2rsjjrgwqfgqzppmzv5jgjs1dbbg8pvfmay0j9y0618qp3r734"; + } + } || true + patch -p2 <${ + fetchpatch { + url = "https://github.com/OSGeo/gdal/commit/19967e682738977e11e1d0336e0178882c39cad2.diff"; + sha256 = "12yqd77226i6xvzgqmxiac5ghdinixh8k2crg1r2gnhc0xlc3arj"; + } + } + ''; + + # - Unset CC and CXX as they confuse libtool. + # - teach gdal that libdf is the legacy name for libhdf + preConfigure = '' + unset CC CXX + substituteInPlace configure \ + --replace "-lmfhdf -ldf" "-lmfhdf -lhdf" + ''; + + preBuild = '' + substituteInPlace swig/python/GNUmakefile \ + --replace "ifeq (\$(STD_UNIX_LAYOUT),\"TRUE\")" "ifeq (1,1)" + ''; + + postInstall = '' + wrapPythonPrograms + ''; + + enableParallelBuilding = true; + + meta = { + description = "Translator library for raster geospatial data formats"; + homepage = https://www.gdal.org/; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.marcweber ]; + platforms = with stdenv.lib.platforms; linux ++ darwin; + }; +} diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix index e7ffdde6cb1c..0db16e2efe3a 100644 --- a/pkgs/development/libraries/gdal/default.nix +++ b/pkgs/development/libraries/gdal/default.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchurl, fetchpatch, unzip, libjpeg, libtiff, zlib +{ stdenv, fetchFromGitHub, fetchpatch, unzip, libjpeg, libtiff, zlib , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl , libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat -, libiconv, libxml2 +, libiconv, libxml2, autoreconfHook , netcdfSupport ? true, netcdf, hdf5, curl }: @@ -9,15 +9,23 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "gdal-${version}"; - version = "2.4.0"; + version = "3.0.1"; - src = fetchurl { - url = "https://download.osgeo.org/gdal/${version}/${name}.tar.xz"; - sha256 = "09qgy36z0jc9w05373m4n0vm4j54almdzql6z9p9zr9pdp61syf3"; + src = fetchFromGitHub { + owner = "OSGeo"; + repo = "gdal"; + rev = "v${version}"; + sha256 = "04rraqhygv8b8fy87qvdhkgx87whby9n98p3gxqr7kdrfymwnh8l"; }; + sourceRoot = "source/gdal"; + + patches = [ ./001.3_0_1.darwin.patch ]; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite - libspatialite poppler hdf4 qhull giflib expat libxml2 ] + libspatialite libgeotiff poppler hdf4 qhull giflib expat libxml2 ] ++ (with pythonPackages; [ python numpy wrapPython ]) ++ stdenv.lib.optional stdenv.isDarwin libiconv ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ]; @@ -35,7 +43,7 @@ stdenv.mkDerivation rec { "--with-sqlite3=${sqlite.dev}" "--with-spatialite=${libspatialite}" "--with-python" # optional - "--with-proj=${proj}" # optional + "--with-proj=${proj.dev}" # optional "--with-geos=${geos}/bin/geos-config"# optional "--with-hdf4=${hdf4.dev}" # optional "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional @@ -46,31 +54,9 @@ stdenv.mkDerivation rec { CXXFLAGS = "-fpermissive"; - postPatch = '' - sed -i '/ifdef bool/i\ - #ifdef swap\ - #undef swap\ - #endif' ogr/ogrsf_frmts/mysql/ogr_mysql.h - - # poppler 0.73.0 support - patch -lp2 <${ - fetchpatch { - url = "https://github.com/OSGeo/gdal/commit/29f4dfbcac2de718043f862166cd639ab578b552.diff"; - sha256 = "1h2rsjjrgwqfgqzppmzv5jgjs1dbbg8pvfmay0j9y0618qp3r734"; - } - } || true - patch -p2 <${ - fetchpatch { - url = "https://github.com/OSGeo/gdal/commit/19967e682738977e11e1d0336e0178882c39cad2.diff"; - sha256 = "12yqd77226i6xvzgqmxiac5ghdinixh8k2crg1r2gnhc0xlc3arj"; - } - } - ''; - # - Unset CC and CXX as they confuse libtool. # - teach gdal that libdf is the legacy name for libhdf preConfigure = '' - unset CC CXX substituteInPlace configure \ --replace "-lmfhdf -ldf" "-lmfhdf -lhdf" ''; diff --git a/pkgs/development/libraries/gdal/gdal-1_11.nix b/pkgs/development/libraries/gdal/gdal-1_11.nix index 32101221e64c..40308a957915 100644 --- a/pkgs/development/libraries/gdal/gdal-1_11.nix +++ b/pkgs/development/libraries/gdal/gdal-1_11.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "0hphxzvy23v3vqxx1y22hhhg4cypihrb8555y12nb4mrhzlw7zfl"; }; - buildInputs = [ unzip libjpeg libtiff libpng python pythonPackages.numpy proj openssl ]; + buildInputs = [ unzip libjpeg libtiff libgeotiff libpng python pythonPackages.numpy proj openssl ]; patches = [ # This ensures that the python package is installed into gdal's prefix, @@ -33,12 +33,17 @@ stdenv.mkDerivation rec { "--with-pg=${postgresql}/bin/pg_config" "--with-mysql=${mysql57.connector-c}/bin/mysql_config" - "--with-geotiff=${libgeotiff}" + "--with-geotiff=${libgeotiff.dev}" "--with-python" # optional "--with-static-proj4=${proj}" # optional "--with-geos=${geos}/bin/geos-config"# optional ]; + # Allow use of old proj_api.h + NIX_CFLAGS_COMPILE = [ + "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1" + ]; + # Prevent this: # # Checking .pth file support in /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/ diff --git a/pkgs/development/libraries/libgeotiff/default.nix b/pkgs/development/libraries/libgeotiff/default.nix index 33b9e7830e71..51520eb0fe38 100644 --- a/pkgs/development/libraries/libgeotiff/default.nix +++ b/pkgs/development/libraries/libgeotiff/default.nix @@ -1,18 +1,27 @@ -{ stdenv, fetchurl, libtiff, libjpeg, proj, zlib}: +{ stdenv, fetchFromGitHub, libtiff, libjpeg, proj, zlib, autoreconfHook }: stdenv.mkDerivation rec { - version = "1.4.3"; + version = "1.5.1"; name = "libgeotiff-${version}"; - src = fetchurl { - url = "https://download.osgeo.org/geotiff/libgeotiff/${name}.tar.gz"; - sha256 = "0rbjqixi4c8yz19larlzq6jda0px2gpmpp9c52cyhplbjsdhsldq"; + src = fetchFromGitHub { + owner = "OSGeo"; + repo = "libgeotiff"; + rev = version; + sha256 = "081ag23pn2n5y4fkb2rnh4hmcnq92siqiqv0s20jmx0j3s2nvfxy"; }; + outputs = [ "out" "dev" ]; + + sourceRoot = "source/libgeotiff"; + configureFlags = [ "--with-jpeg=${libjpeg.dev}" "--with-zlib=${zlib.dev}" ]; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ libtiff proj ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/development/libraries/libspatialite/default.nix b/pkgs/development/libraries/libspatialite/default.nix index 8e7b539527e1..7bd22248d876 100644 --- a/pkgs/development/libraries/libspatialite/default.nix +++ b/pkgs/development/libraries/libspatialite/default.nix @@ -11,12 +11,15 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libxml2 sqlite zlib proj geos libiconv ]; configureFlags = [ "--disable-freexl" ]; enableParallelBuilding = true; + CFLAGS = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1"; + postInstall = "" + optionalString stdenv.isDarwin '' ln -s $out/lib/mod_spatialite.{so,dylib} ''; diff --git a/pkgs/development/libraries/proj-datumgrid/default.nix b/pkgs/development/libraries/proj-datumgrid/default.nix new file mode 100644 index 000000000000..f1c13e93aecd --- /dev/null +++ b/pkgs/development/libraries/proj-datumgrid/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "proj-datumgrid"; + version = "world-1.0"; + + src = fetchFromGitHub { + owner = "OSGeo"; + repo = "proj-datumgrid"; + rev = version; + sha256 = "132wp77fszx33wann0fjkmi1isxvsb0v9iw0gd9sxapa9h6hf3am"; + }; + + sourceRoot = "source/scripts"; + + buildPhase = '' + $CC nad2bin.c -o nad2bin + ''; + + installPhase = '' + mkdir -p $out/bin + cp nad2bin $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "Repository for proj datum grids"; + homepage = https://proj4.org; + license = licenses.mit; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ ]; + }; +} diff --git a/pkgs/development/libraries/proj/5.2.nix b/pkgs/development/libraries/proj/5.2.nix new file mode 100644 index 000000000000..8fb4515e70da --- /dev/null +++ b/pkgs/development/libraries/proj/5.2.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "proj-5.2.0"; + + src = fetchurl { + url = https://download.osgeo.org/proj/proj-5.2.0.tar.gz; + sha256 = "0q3ydh2j8qhwlxmnac72pg69rw2znbi5b6k5wama8qmwzycr94gg"; + }; + + doCheck = stdenv.is64bit; + + meta = with stdenv.lib; { + description = "Cartographic Projections Library"; + homepage = https://proj4.org; + license = licenses.mit; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ vbgl ]; + }; +} diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix index 8fb4515e70da..ea89dbee0f61 100644 --- a/pkgs/development/libraries/proj/default.nix +++ b/pkgs/development/libraries/proj/default.nix @@ -1,13 +1,22 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchFromGitHub, pkg-config, sqlite, autoreconfHook }: -stdenv.mkDerivation { - name = "proj-5.2.0"; +stdenv.mkDerivation rec { + name = "proj"; + version = "6.1.1"; - src = fetchurl { - url = https://download.osgeo.org/proj/proj-5.2.0.tar.gz; - sha256 = "0q3ydh2j8qhwlxmnac72pg69rw2znbi5b6k5wama8qmwzycr94gg"; + src = fetchFromGitHub { + owner = "OSGeo"; + repo = "PROJ"; + rev = version; + sha256 = "0w2v2l22kv0xzq5hwl7n8ki6an8vfsr0lg0cdbkwcl4xv889ysma"; }; + outputs = [ "out" "dev"]; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + + buildInputs = [ sqlite ]; + doCheck = stdenv.is64bit; meta = with stdenv.lib; { diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix index e54136a50276..117b6fed5971 100644 --- a/pkgs/development/python-modules/cartopy/default.nix +++ b/pkgs/development/python-modules/cartopy/default.nix @@ -1,9 +1,10 @@ { buildPythonPackage, lib, fetchPypi , pytest, filelock, mock, pep8 , cython, isPy27 -, six, pyshp, shapely, geos, proj, numpy +, six, pyshp, shapely, geos, numpy , gdal, pillow, matplotlib, pyepsg, pykdtree, scipy, owslib, fiona , xvfb_run +, proj_5 # see https://github.com/SciTools/cartopy/pull/1252 for status on proj 6 support }: buildPythonPackage rec { @@ -27,17 +28,17 @@ buildPythonPackage rec { export HOME=$(mktemp -d) ${maybeXvfbRun} pytest --pyargs cartopy \ -m "not network and not natural_earth" \ - -k "not test_nightshade_image" + -k "not test_nightshade_image and not background_img" ''; nativeBuildInputs = [ cython geos # for geos-config - proj + proj_5 ]; buildInputs = [ - geos proj + geos proj_5 ]; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/fiona/default.nix b/pkgs/development/python-modules/fiona/default.nix index ebd100037b25..6dd74742741e 100644 --- a/pkgs/development/python-modules/fiona/default.nix +++ b/pkgs/development/python-modules/fiona/default.nix @@ -1,7 +1,7 @@ { stdenv, buildPythonPackage, fetchPypi, isPy3k, pythonOlder , attrs, click, cligj, click-plugins, six, munch, enum34 , pytest, boto3, mock -, gdal +, gdal_2 # can't bump to 3 yet, https://github.com/Toblerity/Fiona/issues/745 }: buildPythonPackage rec { @@ -16,11 +16,11 @@ buildPythonPackage rec { CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11"; nativeBuildInputs = [ - gdal # for gdal-config + gdal_2 # for gdal-config ]; buildInputs = [ - gdal + gdal_2 ]; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pyproj/001.proj.patch b/pkgs/development/python-modules/pyproj/001.proj.patch new file mode 100644 index 000000000000..b024c28156c1 --- /dev/null +++ b/pkgs/development/python-modules/pyproj/001.proj.patch @@ -0,0 +1,47 @@ +diff a/pyproj/datadir.py b/pyproj/datadir.py +--- a/pyproj/datadir.py ++++ b/pyproj/datadir.py +@@ -52,6 +52,7 @@ def get_data_dir(): + str: The valid data directory. + + """ ++ return "@proj@/share/proj" + # to avoid re-validating + global _VALIDATED_PROJ_DATA + if _VALIDATED_PROJ_DATA is not None: +diff a/setup.py b/setup.py +--- a/setup.py ++++ b/setup.py +@@ -16,7 +16,7 @@ INTERNAL_PROJ_DIR = os.path.join(CURRENT_FILE_PATH, "pyproj", BASE_INTERNAL_PROJ + + def check_proj_version(proj_dir): + """checks that the PROJ library meets the minimum version""" +- proj = os.path.join(proj_dir, "bin", "proj") ++ proj = "@proj@/bin/proj" + proj_ver_bytes = subprocess.check_output(proj, stderr=subprocess.STDOUT) + proj_ver_bytes = (proj_ver_bytes.decode("ascii").split()[1]).strip(",") + proj_version = parse_version(proj_ver_bytes) +@@ -33,6 +33,7 @@ def get_proj_dir(): + """ + This function finds the base PROJ directory. + """ ++ return "@proj@" + proj_dir = os.environ.get("PROJ_DIR") + if proj_dir is None and os.path.exists(INTERNAL_PROJ_DIR): + proj_dir = INTERNAL_PROJ_DIR +@@ -56,6 +57,7 @@ def get_proj_libdirs(proj_dir): + """ + This function finds the library directories + """ ++ return ["@proj@/lib"] + proj_libdir = os.environ.get("PROJ_LIBDIR") + libdirs = [] + if proj_libdir is None: +@@ -77,6 +79,7 @@ def get_proj_incdirs(proj_dir): + """ + This function finds the include directories + """ ++ return ["@proj@/include"] + proj_incdir = os.environ.get("PROJ_INCDIR") + incdirs = [] + if proj_incdir is None: diff --git a/pkgs/development/python-modules/pyproj/default.nix b/pkgs/development/python-modules/pyproj/default.nix index f08625f62b6d..ddfecbe8ec51 100644 --- a/pkgs/development/python-modules/pyproj/default.nix +++ b/pkgs/development/python-modules/pyproj/default.nix @@ -1,38 +1,49 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, python -, nose2 +{ lib, buildPythonPackage, fetchPypi, python, pkgs, pythonOlder, substituteAll +, aenum , cython -, proj ? null +, pytest +, mock +, numpy }: -buildPythonPackage (rec { +buildPythonPackage rec { pname = "pyproj"; - version = "unstable-2018-11-13"; + version = "2.2.1"; - src = fetchFromGitHub { - owner = "jswhit"; - repo = pname; - rev = "78540f5ff40da92160f80860416c91ee74b7643c"; - sha256 = "1vq5smxmpdjxialxxglsfh48wx8kaq9sc5mqqxn4fgv1r5n1m3n9"; + src = fetchPypi { + inherit pname version; + sha256 = "0yigcxwmx5cczipf2mpmy2gq1dnl0635yjvjq86ay47j1j5fd2gc"; }; - buildInputs = [ cython ]; + # force pyproj to use ${pkgs.proj} + patches = [ + (substituteAll { + src = ./001.proj.patch; + proj = pkgs.proj; + }) + ]; - checkInputs = [ nose2 ]; + buildInputs = [ cython pkgs.proj ]; + propagatedBuildInputs = [ + numpy + ] ++ lib.optional (pythonOlder "3.6") aenum; + + checkInputs = [ pytest mock ]; + + # ignore rounding errors, and impure docgen + # datadir is ignored because it does the proj look up logic, which isn't relevant checkPhase = '' - runHook preCheck - pushd unittest # changing directory should ensure we're importing the global pyproj - ${python.interpreter} test.py && ${python.interpreter} -c "import doctest, pyproj, sys; sys.exit(doctest.testmod(pyproj)[0])" - popd - runHook postCheck + pytest . -k 'not alternative_grid_name \ + and not transform_wgs84_to_alaska \ + and not repr' \ + --ignore=test/test_doctest_wrapper.py \ + --ignore=test/test_datadir.py ''; meta = { description = "Python interface to PROJ.4 library"; - homepage = https://github.com/jswhit/pyproj; + homepage = "https://github.com/jswhit/pyproj"; license = with lib.licenses; [ isc ]; }; -} // (if proj == null then {} else { PROJ_DIR = proj; })) +} diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix index 67e0c2b21d83..f14fb5269970 100644 --- a/pkgs/tools/misc/osm2pgsql/default.nix +++ b/pkgs/tools/misc/osm2pgsql/default.nix @@ -1,28 +1,26 @@ -{ stdenv, fetchgit, cmake, expat, proj, bzip2, zlib, boost, postgresql, lua}: +{ stdenv, fetchFromGitHub, cmake, expat, proj, bzip2, zlib, boost, postgresql, lua}: -let - version = "0.92.1-unstable"; -in stdenv.mkDerivation rec { name = "osm2pgsql-${version}"; + version = "0.96.0"; - src = fetchgit { - url = "https://github.com/openstreetmap/osm2pgsql.git"; - rev = "2b72b2121e91b72b0db6911d65c5165ca46d9d66"; - # Still waiting on release after: - # https://github.com/openstreetmap/osm2pgsql/pull/684 - # https://github.com/openstreetmap/osm2pgsql/issues/634 - #rev = "refs/tags/${version}"; - sha256 = "1v6s863zsv9p2mni35gfamawj0xr2cv2p8a31z7sijf8m6fn0vpy"; + src = fetchFromGitHub { + owner = "openstreetmap"; + repo = "osm2pgsql"; + rev = version; + sha256 = "032cydh8ynaqfhdzmkvgbmqyjql668y6qln1l59l2s3ni9963bbl"; }; - nativeBuildInputs = [cmake]; - buildInputs = [expat proj bzip2 zlib boost postgresql lua]; - meta = { + nativeBuildInputs = [ cmake ]; + + buildInputs = [ expat proj bzip2 zlib boost postgresql lua ]; + + NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ]; + + meta = with stdenv.lib; { description = "OpenStreetMap data to PostgreSQL converter"; - version = "0.92.1-unstable"; homepage = https://github.com/openstreetmap/osm2pgsql; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; + license = licenses.gpl2; + platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1acc477c0664..32528d03c850 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10575,6 +10575,8 @@ in gdal_1_11 = callPackage ../development/libraries/gdal/gdal-1_11.nix { }; + gdal_2 = callPackage ../development/libraries/gdal/2.4.0.nix { }; + gdcm = callPackage ../development/libraries/gdcm { }; ggz_base_libs = callPackage ../development/libraries/ggz_base_libs {}; @@ -12727,6 +12729,10 @@ in proj = callPackage ../development/libraries/proj { }; + proj_5 = callPackage ../development/libraries/proj/5.2.nix { }; + + proj-datumgrid = callPackage ../development/libraries/proj-datumgrid { }; + proselint = callPackage ../tools/text/proselint { inherit (python3Packages) buildPythonApplication click future six; @@ -19100,7 +19106,9 @@ in mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; }); - merkaartor = libsForQt59.callPackage ../applications/misc/merkaartor { }; + merkaartor = libsForQt59.callPackage ../applications/misc/merkaartor { + gdal = gdal_2; # https://github.com/openstreetmap/merkaartor/issues/179 + }; meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { }; @@ -21941,10 +21949,6 @@ in inherit (darwin.apple_sdk.frameworks) Cocoa; }; - saga_2_3_2 = callPackage ../applications/gis/saga/lts.nix { - inherit (darwin.apple_sdk.frameworks) Cocoa; - }; - samplv1 = callPackage ../applications/audio/samplv1 { }; sauerbraten = callPackage ../games/sauerbraten {}; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7b95941d0649..b8e85d775f5d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2712,7 +2712,7 @@ in { filelock = callPackage ../development/python-modules/filelock {}; - fiona = callPackage ../development/python-modules/fiona { gdal = pkgs.gdal; }; + fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; }; fitbit = callPackage ../development/python-modules/fitbit { }; @@ -4028,11 +4028,7 @@ in { pyotp = callPackage ../development/python-modules/pyotp { }; - pyproj = callPackage ../development/python-modules/pyproj { - # pyproj does *work* if you want to use a system supplied proj, but with the current version(s) the tests fail by - # a few decimal places, so caveat emptor. - proj = null; - }; + pyproj = callPackage ../development/python-modules/pyproj { }; pyqrcode = callPackage ../development/python-modules/pyqrcode { }; @@ -4230,7 +4226,9 @@ in { rabbitpy = callPackage ../development/python-modules/rabbitpy { }; - rasterio = callPackage ../development/python-modules/rasterio { }; + rasterio = callPackage ../development/python-modules/rasterio { + gdal = pkgs.gdal_2; # gdal 3.0 not supported yet + }; radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};