aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/geo.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/geo.scm')
-rw-r--r--gnu/packages/geo.scm406
1 files changed, 405 insertions, 1 deletions
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 4352129fe2..cf0b31aa43 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -46,10 +46,13 @@
#: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)
@@ -58,19 +61,25 @@
#: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)
@@ -80,12 +89,16 @@
#: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
@@ -1621,3 +1634,394 @@ track your position right from your laptop.")
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))))