diff options
Diffstat (limited to 'gnu/packages/geo.scm')
-rw-r--r-- | gnu/packages/geo.scm | 502 |
1 files changed, 493 insertions, 9 deletions
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 0e5afdae30..e895c064ba 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -46,37 +46,59 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages astronomy) + #:use-module (gnu packages audio) #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) + #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) + #:use-module (gnu packages elf) + #:use-module (gnu packages flex) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gps) #:use-module (gnu packages gtk) + #:use-module (gnu packages haskell-apps) #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) #:use-module (gnu packages icu4c) #:use-module (gnu packages java) + #:use-module (gnu packages kde) #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages pcre) + #:use-module (gnu packages pdf) #:use-module (gnu packages perl) + #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages readline) + #:use-module (gnu packages swig) #:use-module (gnu packages sqlite) + #:use-module (gnu packages textutils) + #:use-module (gnu packages time) #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages wxwidgets) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg)) (define-public geos (package @@ -831,7 +853,7 @@ to create databases that are optimized for rendering/tile/map-services.") (define-public libosmium (package (name "libosmium") - (version "2.14.2") + (version "2.15.4") (source (origin (method git-fetch) @@ -840,16 +862,18 @@ to create databases that are optimized for rendering/tile/map-services.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "123ri1l0a2b9fljgpwsl7z2w4i3kmgxz79d4ns9z4mwbp8sw0250")))) + (base32 "0mlcvqrhp40bzj5r5j9nfc5vbis8hmzcq9xi8jylkciyydaynhz4")))) (build-system cmake-build-system) (propagated-inputs `(("boost" ,boost) + ("bzip2" ,bzip2) ("expat" ,expat) ("gdal" ,gdal) ("geos" ,geos) - ("proj.4" ,proj.4) + ("proj" ,proj) ("protozero" ,protozero) ("sparsehash" ,sparsehash) + ("utfcpp" ,utfcpp) ("zlib" ,zlib))) (native-inputs `(("doxygen" ,doxygen))) @@ -862,7 +886,7 @@ OpenStreetMap data.") (define-public osm2pgsql (package (name "osm2pgsql") - (version "0.96.0") + (version "1.2.1") (source (origin (method git-fetch) @@ -871,7 +895,7 @@ OpenStreetMap data.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "032cydh8ynaqfhdzmkvgbmqyjql668y6qln1l59l2s3ni9963bbl")) + (base32 "1ysan01lpqzjxlq3y2kdminfjs5d9zksicpf9vvzpdk3fzq51fc9")) (modules '((guix build utils))) (snippet '(begin @@ -890,16 +914,17 @@ OpenStreetMap data.") "/include")))) (inputs `(("boost" ,boost) + ("bzip2" ,bzip2) ("expat" ,expat) ("libosmium" ,libosmium) ("lua" ,lua) ("postgresql" ,postgresql) - ("proj.4" ,proj.4) + ("proj" ,proj) ("protozero" ,protozero) ("zlib" ,zlib))) (native-inputs - `(("python-2" ,python-2) - ("python2-psycopg2" ,python2-psycopg2))) + `(("python" ,python) + ("python-psycopg2" ,python-psycopg2))) (home-page "https://github.com/openstreetmap/osm2pgsql") (synopsis "OSM data importer to postgresql") (description "Osm2pgsql is a tool for loading OpenStreetMap data into a @@ -1549,3 +1574,462 @@ exchanged form one Spatial DBMS and the other.") (license (list license:gpl2+ license:lgpl2.1+ license:mpl1.1)))) + +(define-public opencpn + (package + (name "opencpn") + (version "5.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenCPN/OpenCPN.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xv3h6svw9aay5ixpql231md3pf00qxvhg62z88daraf18hlkfja")))) + (build-system cmake-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("bzip2" ,bzip2) + ("cairo" ,cairo) + ("curl" ,curl) + ("glu" ,glu) + ("gtk+" ,gtk+) + ("libarchive" ,libarchive) + ("libelf" ,libelf) + ("libexif" ,libexif) + ("libsndfile" ,libsndfile) + ("lz4" ,lz4) + ("mesa" ,mesa) + ("pango" ,pango) + ("portaudio" ,portaudio) + ("sqlite" ,sqlite) + ("tinyxml" ,tinyxml) + ("wxsvg" ,wxsvg) + ("wxwidgets" ,wxwidgets) + ("xz" ,xz) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags '("-DENABLE_PORTAUDIO=ON" + "-DENABLE_SNDFILE=ON" + "-DBUNDLE_TCDATA=ON" + "-DBUNDLE_GSHHS=CRUDE") + #:tests? #f ; No tests defined + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + (substitute* "CMakeLists.txt" + (("set\\(wxWidgets_CONFIG_OPTIONS.*--toolkit=gtk3" all) + (string-append all " --libs all"))) + #t))))) + (synopsis "Chart plotter and marine GPS navigation software") + (description + "OpenCPN is a chart plotter and marine navigation software designed to be +used at the helm station of your boat while underway. Chart a course and +track your position right from your laptop.") + (home-page "https://opencpn.org/") + (license (list license:asl2.0 + license:cc0 + license:bsd-2 + license:bsd-3 + license:expat + license:gpl3+ + license:lgpl2.1+ + license:lgpl3+ + license:sgifreeb2.0 + license:zlib)))) + +(define-public grass + (let* ((version "7.8.2") + (majorminor (string-join (list-head (string-split version #\.) 2) "")) + (grassxx (string-append "grass" majorminor))) + (package + (name "grass") + (version version) + (source + (origin + (method url-fetch) + (uri (string-append "https://grass.osgeo.org/" grassxx + "/source/grass-" version ".tar.gz")) + (sha256 + (base32 "1fwsm99kz0bxvjk7442qq1h45ikrmhba8bqclafb61gqg1q6ymrk")))) + (build-system gnu-build-system) + (inputs + `(("bzip2", bzip2) + ("cairo" ,cairo) + ("fftw" ,fftw) + ("freetype" ,freetype) + ("gdal" ,gdal) + ("geos" ,geos) + ("glu" ,glu) + ("lapack" ,lapack) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("mesa" ,mesa) + ("mariadb-dev" ,mariadb "dev") + ("mariadb-lib" ,mariadb "lib") + ("netcdf" ,netcdf) + ("openblas" ,openblas) + ("perl" ,perl) + ("postgresql" ,postgresql) + ("proj.4" ,proj.4) + ("python" ,python) + ("python-dateutil" ,python-dateutil) + ("python-numpy" ,python-numpy) + ("python-wxpython" ,python-wxpython) + ("readline" ,readline) + ("sqlite" ,sqlite) + ("wxwidgets" ,wxwidgets) + ("zlib" ,zlib) + ("zstd" ,zstd "lib"))) + (native-inputs + `(("bash" ,bash-minimal) + ("bison" ,bison) + ("flex" ,flex) + ("pkg-config" ,pkg-config))) + (arguments + `(#:tests? #f ; No tests + #:modules ((guix build gnu-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build python-build-system)) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((shell (string-append (assoc-ref inputs "bash") + "/bin/bash"))) + (setenv "SHELL" shell) + (setenv "CONFIG_SHELL" shell) + (setenv "LDFLAGS" (string-append "-Wl,-rpath -Wl," + (assoc-ref outputs "out") + "/" ,grassxx "/lib"))) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + "--with-blas" + "--with-bzlib" + (string-append "--with-freetype-includes=" + (assoc-ref inputs "freetype") + "/include/freetype2") + (string-append "--with-freetype-libs=" + (assoc-ref inputs "freetype") + "/lib") + "--with-geos" + "--with-lapack" + "--with-mysql" + (string-append "--with-mysql-includes=" + (assoc-ref inputs "mariadb-dev") + "/include/mysql") + (string-append "--with-mysql-libs=" + (assoc-ref inputs "mariadb-lib") + "/lib") + "--with-netcdf" + "--with-postgres" + (string-append "--with-proj-share=" + (assoc-ref inputs "proj.4") + "/share/proj") + "--with-pthread" + "--with-readline" + "--with-sqlite" + "--with-wxwidgets"))) + (add-after 'install 'install-links + (lambda* (#:key outputs #:allow-other-keys) + ;; Put links for includes and libraries in the standard places. + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/" ,grassxx))) + (symlink (string-append dir "/include") + (string-append out "/include")) + (symlink (string-append dir "/lib") + (string-append out "/lib"))) + #t)) + (add-after 'install-links 'wrap-python + (assoc-ref python:%standard-phases 'wrap))))) + (synopsis "GRASS Geographic Information System") + (description + "GRASS (Geographic Resources Analysis Support System), is a Geographic +Information System (GIS) software suite used for geospatial data management and +analysis, image processing, graphics and maps production, spatial modeling, and +visualization.") + (home-page "https://grass.osgeo.org/") + (license license:gpl2+)))) + +(define-public saga + (package + (name "saga") + (version "7.6.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/saga-gis/SAGA%20-%20" + (version-major version) "/SAGA%20-%20" version + "/saga-" version ".tar.gz")) + (sha256 + (base32 "09j5magmayq2y620kqa490mfd1kpdp3lng2ifcgbrmssc079ybm0")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("swig" ,swig))) + (inputs + `(("curl" ,curl) + ("fftw" ,fftw) + ("gdal" ,gdal) + ("hdf5" ,hdf5) + ("jasper" ,jasper) + ("libharu" ,libharu) + ("libtiff" ,libtiff) + ("opencv" ,opencv) + ("postgresql" ,postgresql) + ("proj.4" ,proj.4) + ("python" ,python) + ("qhull" ,qhull) + ("unixodbc" ,unixodbc) + ("vigra" ,vigra) + ("wxwidgets" ,wxwidgets))) + (arguments + '(#:configure-flags '("--enable-python"))) + (synopsis "System for Automated Geoscientific Analyses") + (description + "SAGA (System for Automated Geoscientific Analyses) is a Geographic +Information System (GIS) software. It has been designed for an easy and +effective implementation of spatial algorithms and it offers a comprehensive, +growing set of geoscientific methods.") + (home-page "http://www.saga-gis.org") + (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public qgis + (package + (name "qgis") + (version "3.12.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://qgis.org/downloads/qgis-" + version ".tar.bz2")) + (sha256 + (base32 "1a41525y8ac44gzcfaffjx0lyrm49hgnr83jrq40r5mqd3vpmp57")))) + (build-system cmake-build-system) + (arguments + `(#:modules ((guix build cmake-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build qt-utils) + (guix build utils)) + #:imported-modules (,@%cmake-build-system-modules + (guix build python-build-system) + (guix build qt-utils)) + #:phases + (modify-phases %standard-phases + ;; Configure correct path to PyQt5 SIP directory + (add-after 'unpack 'configure-pyqt5-sip-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "cmake/FindPyQt5.cmake" + (("\"\\\\\\\\1\" PYQT5_SIP_DIR") + (string-append "\"" (assoc-ref inputs "python-pyqt+qscintilla") + "/share/sip\" PYQT5_SIP_DIR"))) + (substitute* (list "scripts/prepare-commit.sh" + "scripts/runtests-local-travis-config.sh" + "scripts/sip_include.sh" + "scripts/sipdiff" + "scripts/sipify_all.sh" + "scripts/spell_check/check_spelling.sh" + "scripts/spell_check/spell_test.sh" + "scripts/verify-indentation.sh" + "tests/code_layout/test_banned_keywords.sh" + "tests/code_layout/test_licenses.sh" + "tests/code_layout/test_shellcheck.sh" + "tests/code_layout/test_sip_include.sh" + "tests/code_layout/test_sipfiles_uptodate.sh" + "tests/code_layout/test_sipify.sh") + (("\\$\\(git rev-parse --show-toplevel\\)") + (getcwd))) + (substitute* "tests/code_layout/test_sip_include.sh" + (("^REV=.*") "REV=currentrev\n")) + #t)) + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (setenv "HOME" "/tmp") + (system (string-append (assoc-ref inputs "xorg-server") + "/bin/Xvfb :1 &")) + (setenv "DISPLAY" ":1") + (setenv "TRAVIS" "true") + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (invoke "ctest" + "-E" (string-join + '(;; Disable tests that require network access + "qgis_filedownloader" + ;; TODO: Find why the following tests fail + "ProcessingQgisAlgorithmsTestPt1" + "ProcessingQgisAlgorithmsTestPt3" + "ProcessingQgisAlgorithmsTestPt4" + "ProcessingGdalAlgorithmsRasterTest" + "ProcessingGdalAlgorithmsVectorTest" + "ProcessingGrass7AlgorithmsImageryTest" + "ProcessingGrass7AlgorithmsRasterTest" + "ProcessingGrass7AlgorithmsVectorTest" + "ProcessingOtbAlgorithmsTest" + "qgis_authmanagertest" + "qgis_compositionconvertertest" + "qgis_coordinatereferencesystemtest" + "qgis_geometrytest" + "qgis_layouthtmltest" + "qgis_layoutmaptest" + "qgis_painteffecttest" + "qgis_pallabelingtest" + "qgis_svgmarkertest" + "qgis_taskmanagertest" + "qgis_ziplayertest" + "qgis_processingtest" + "qgis_wcsprovidertest" + "qgis_arcgisrestutilstest" + "qgis_grassprovidertest7" + "qgis_gpsinformationwidget" + "PyCoreAdittions" + "PyQgsPythonProvider" + "PyQgsAnnotation" + "PyQgsAuthenticationSystem" + "PyQgsProject" + "PyQgsFileUtils" + "PyQgsGeometryTest" + "PyQgsImageCache" + "PyQgsLayoutExporter" + "PyQgsLayoutLegend" + "PyQgsMapLayer" + "PyQgsOGRProviderGpkg" + "PyQgsPalLabelingLayout" + "PyQgsImportIntoPostGIS" + "PyQgsProviderConnectionPostgres" + "PyQgsProviderConnectionGpkg" + "PyQgsShapefileProvider" + "PyQgsSvgCache" + "PyQgsTextRenderer" + "PyQgsOGRProvider" + "PyQgsSpatialiteProvider" + "PyQgsVectorFileWriter" + "PyQgsVectorLayer" + "PyQgsVectorLayerUtils" + "PyQgsVirtualLayerProvider" + "PyQgsWFSProvider" + "PyQgsOapifProvider" + "PyQgsLayerDependencies" + "PyQgsDBManagerGpkg" + "PyQgsDBManagerSpatialite" + "PyQgsSettings" + "PyQgsAuxiliaryStorage" + "PyQgsSelectiveMasking" + "PyQgsAppStartup" + "qgis_geometrycheckstest" + "qgis_shellcheck" + "qgis_sipify" + "qgis_sip_include" + "qgis_sip_uptodate") + "|")))) + (add-after 'install 'wrap-python + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'wrap-python 'wrap-qt + (lambda* (#:key outputs #:allow-other-keys) + (wrap-qt-program (assoc-ref outputs "out") "qgis") + #t))))) + (inputs + `(("exiv2" ,exiv2) + ("expat" ,expat) + ("gdal" ,gdal) + ("geos" ,geos) + ("gpsbabel" ,gpsbabel) + ("grass" ,grass) + ("gsl" ,gsl) + ("hdf5" ,hdf5) + ("libspatialindex" ,libspatialindex) + ("libspatialite" ,libspatialite) + ("libxml2" ,libxml2) + ("libzip" ,libzip) + ("netcdf" ,netcdf) + ("postgresql" ,postgresql) + ("proj" ,proj) + ("python" ,python) + ("python-chardet" ,python-chardet) + ("python-dateutil" ,python-dateutil) + ("python-gdal" ,python-gdal) + ("python-jinja2" ,python-jinja2) + ("python-numpy" ,python-numpy) + ("python-owslib" ,python-owslib) + ("python-psycopg2" ,python-psycopg2) + ("python-pygments" ,python-pygments) + ("python-pyqt+qscintilla" ,python-pyqt+qscintilla) + ("python-pytz" ,python-pytz) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests) + ("python-sip" ,python-sip) + ("python-six" ,python-six) + ("python-urllib3" ,python-urllib3) + ("qca" ,qca) + ("qscintilla" ,qscintilla) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtkeychain" ,qtkeychain) + ("qtlocation" ,qtlocation) + ("qtserialport" ,qtserialport) + ("qtsvg" ,qtsvg) + ("qtwebkit" ,qtwebkit) + ("qwt" ,qwt) + ("saga" ,saga) + ("sqlite" ,sqlite-with-column-metadata))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("perl" ,perl) + ("perl-yaml-tiny" ,perl-yaml-tiny) + ("pkg-config" ,pkg-config) + ("python-mock" ,python-mock) + ("python-nose2" ,python-nose2) + ("qttools" ,qttools) + ("shellcheck" ,shellcheck) + ("xorg-server" ,xorg-server-for-tests))) + (home-page "https://qgis.org") + (synopsis "Geographical information system") + (description "QGIS is an easy to use Geographical Information +System (GIS). It is a GIS data viewer and editor. QGIS supports a number of +raster and vector data formats, with new support easily added using the plugin +architecture.") + (license + (list + license:asl1.1 + license:asl2.0 + license:bsd-2 + license:bsd-3 + license:boost1.0 + license:cc-by3.0 + license:cc-by4.0 + license:cc-by-sa3.0 + license:cc-by-sa4.0 + (license:fsdg-compatible "https://www.deviantart.com/elvensword") + (license:fsf-free "file://debian/copyright" "Go Squared") + license:expat + license:fdl1.2+ + (license:fsf-free + "https://www.deviantart.com/webgoddess/art/Reddish-Inspired-Gradients-42208824") + (license:fsf-free + "file://debian/copyright" + "QT-Commercial or LGPL-2.1 with Digia Qt LGPL Exception 1.1 or GPL-3") + license:gpl2 + license:gpl2+ + license:gpl3 + license:gpl3+ + license:isc + license:lgpl2.0+ + license:lgpl2.1 + license:lgpl2.1+ + license:lgpl3 + (license:non-copyleft "file://debian/copyright" "BSD-like-gist") + (license:non-copyleft "file://debian/copyright" "Jim Mossman Attribution") + (license:non-copyleft + "https://www.ncl.ucar.edu/Download/NCL_source_license.shtml" + "NCL Source Code License") + license:ogl-psi1.0 + license:opl1.0+ + license:public-domain + license:qwt1.0)))) |