diff options
author | Nicolas Graves <ngraves@ngraves.fr> | 2024-05-14 22:01:21 +0200 |
---|---|---|
committer | Guillaume Le Vaillant <glv@posteo.net> | 2024-05-15 13:43:42 +0200 |
commit | 65f58ade59e1a0e1b6438b51e79d343f5f143122 (patch) | |
tree | 962989b35dba99757e8325b8593e5926ffd6562c /gnu/packages/geo.scm | |
parent | dcc278885c9d04809008e3053c4ca40760033f55 (diff) | |
download | guix-65f58ade59e1a0e1b6438b51e79d343f5f143122.tar.gz guix-65f58ade59e1a0e1b6438b51e79d343f5f143122.zip |
gnu: qgis: Improve package style.
* gnu/packages/geo.scm (qgis)[arguments]<#:phases>: Extract
ignored-tests to make them more readable. Re-indent.
Change-Id: I2373bba49b9d21ff7dfa0014cf34fafa0e1f3175
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
Diffstat (limited to 'gnu/packages/geo.scm')
-rw-r--r-- | gnu/packages/geo.scm | 301 |
1 files changed, 151 insertions, 150 deletions
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 3073af8d32..66ec5f3075 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -2931,7 +2931,93 @@ growing set of geoscientific methods.") #:configure-flags #~(list "-DWITH_QTWEBKIT=NO") #:phases - #~(let* ((grass-version #$(package-version (this-package-input "grass"))) + #~(let* ((ignored-tests (list + ;; Disable tests that require network access + "PyQgsExternalStorageAwsS3" + "PyQgsExternalStorageWebDav" + "qgis_filedownloader" + "test_core_networkaccessmanager" + "test_core_tiledownloadmanager" + "test_gui_filedownloader" + "test_provider_wcsprovider" + ;; Disable tests that need OGR built with + ;; libspatialite support + "PyQgsAttributeTableModel" + "PyQgsOGRProviderSqlite" + "PyQgsWFSProvider" + "PyQgsOapifProvider" + ;; Disable tests that need Python compiled + ;; with loadable SQLite extensions. + "PyQgsFieldFormattersTest" + "PyQgsSpatialiteProvider" + "PyQgsLayerDependencies" + "PyQgsDBManagerGpkg" + "PyQgsDBManagerSpatialite" + ;; Disable tests that need poppler (with Cairo) + "PyQgsLayoutExporter" + "PyQgsPalLabelingLayout" + ;; Disable tests that need Orfeo ToolBox + "ProcessingOtbAlgorithmsTest" + ;; TODO: Find why the following tests fail + "ProcessingQgisAlgorithmsTestPt1" + "ProcessingQgisAlgorithmsTestPt3" + "ProcessingQgisAlgorithmsTestPt4" + "ProcessingGdalAlgorithmsRasterTest" + "ProcessingGdalAlgorithmsVectorTest" + "ProcessingGrass7AlgorithmsImageryTest" + "ProcessingGrass7AlgorithmsRasterTestPt1" + "ProcessingGrass7AlgorithmsRasterTestPt2" + "ProcessingGrass7AlgorithmsVectorTest" + "test_core_authconfig" + "test_core_authmanager" + "test_core_compositionconverter" + "test_core_expression" + "test_core_gdalutils" + "test_core_labelingengine" + "test_core_layoutpicture" + "test_core_layouttable" + "test_core_pointcloudlayerexporter" + "test_core_projectstorage" + "test_core_coordinatereferencesystem" + "test_core_overlayexpression" + "test_gui_queryresultwidget" + "test_provider_copcprovider" + "test_provider_eptprovider" + "test_analysis_processingalgspt1" + "test_analysis_processingalgspt2" + "test_analysis_processing" + "test_app_gpsintegration" + "PyQgsAnnotation" + "PyQgsAuthenticationSystem" + "PyQgsConnectionRegistry" + "PyQgsDatumTransform" + "PyQgsFileUtils" + "PyQgsGeometryTest" + "PyQgsGoogleMapsGeocoder" + "PyQgsGroupLayer" + "PyQgsHashLineSymbolLayer" + "PyQgsLayerMetadataProviderPython" + "PyQgsLayoutHtml" + "PyQgsLineSymbolLayers" + "PyQgsMapLayer" + "PyQgsOGRProviderGpkg" + "PyQgsProcessExecutablePt1" + "PyQgsProcessExecutablePt2" + "PyQgsProjectionSelectionWidgets" + "PyQgsProviderConnectionGpkg" + "PyQgsProviderConnectionSpatialite" + "PyQgsOGRProvider" + "PyQgsSettingsTreeNode" + "PyQgsTextRenderer" + "PyQgsVectorFileWriter" + "PyQgsVectorLayerEditBuffer" + "PyQgsVirtualLayerProvider" + "PyQgsAuxiliaryStorage" + "PyQgsSelectiveMasking" + "qgis_sipify" + "qgis_sip_include" + "qgis_sip_uptodate")) + (grass-version #$(package-version (this-package-input "grass"))) (grass-majorminor (string-join (list-head (string-split grass-version #\.) 2) @@ -2939,142 +3025,57 @@ growing set of geoscientific methods.") (grass-dir (string-append #$(this-package-input "grass") "/grass" grass-majorminor))) (modify-phases %standard-phases - ;; Configure correct path to PyQt5 SIP directory - (add-after 'unpack 'configure-pyqt5-sip-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((sip-dir (string-append - (assoc-ref inputs "python-pyqt+qscintilla") - "/lib/python" - (python:python-version (assoc-ref inputs "python")) - "/site-packages/PyQt5/bindings"))) - (substitute* "cmake/FindPyQt5.py" - (("sip_dir = cfg.default_sip_dir") - (string-append "sip_dir = \"" sip-dir "\""))) - (substitute* "cmake/FindPyQt5.cmake" - (("SET\\(PYQT5_SIP_DIR \"\\$\\{Python_SITEARCH\\}/PyQt5/bindings\"\\)") - (string-append "SET(PYQT5_SIP_DIR \"" sip-dir "\")")))) - (substitute* (list "tests/code_layout/test_qt_imports.sh" - "tests/code_layout/test_qgsscrollarea.sh") - (("\\$\\(git rev-parse --show-toplevel\\)") - (getcwd))))) - (replace 'check - (lambda* (#:key inputs outputs tests? parallel-tests? - #:allow-other-keys) - (if tests? - (begin - (setenv "HOME" "/tmp") - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - (setenv "TRAVIS" "true") - (setenv "CTEST_OUTPUT_ON_FAILURE" "1") - (setenv "GISBASE" grass-dir) - (invoke "ctest" - "-j" (if parallel-tests? - (number->string (parallel-job-count)) - "1") - "-E" (string-join - '(;; Disable tests that require network access - "PyQgsExternalStorageAwsS3" - "PyQgsExternalStorageWebDav" - "qgis_filedownloader" - "test_core_networkaccessmanager" - "test_core_tiledownloadmanager" - "test_gui_filedownloader" - "test_provider_wcsprovider" - ;; Disable tests that need OGR built with - ;; libspatialite support - "PyQgsAttributeTableModel" - "PyQgsOGRProviderSqlite" - "PyQgsWFSProvider" - "PyQgsOapifProvider" - ;; Disable tests that need Python compiled - ;; with loadable SQLite extensions. - "PyQgsFieldFormattersTest" - "PyQgsSpatialiteProvider" - "PyQgsLayerDependencies" - "PyQgsDBManagerGpkg" - "PyQgsDBManagerSpatialite" - ;; Disable tests that need poppler (with Cairo) - "PyQgsLayoutExporter" - "PyQgsPalLabelingLayout" - ;; Disable tests that need Orfeo ToolBox - "ProcessingOtbAlgorithmsTest" - ;; TODO: Find why the following tests fail - "ProcessingQgisAlgorithmsTestPt1" - "ProcessingQgisAlgorithmsTestPt3" - "ProcessingQgisAlgorithmsTestPt4" - "ProcessingGdalAlgorithmsRasterTest" - "ProcessingGdalAlgorithmsVectorTest" - "ProcessingGrass7AlgorithmsImageryTest" - "ProcessingGrass7AlgorithmsRasterTestPt1" - "ProcessingGrass7AlgorithmsRasterTestPt2" - "ProcessingGrass7AlgorithmsVectorTest" - "test_core_authconfig" - "test_core_authmanager" - "test_core_compositionconverter" - "test_core_expression" - "test_core_gdalutils" - "test_core_labelingengine" - "test_core_layoutpicture" - "test_core_layouttable" - "test_core_pointcloudlayerexporter" - "test_core_projectstorage" - "test_core_coordinatereferencesystem" - "test_core_overlayexpression" - "test_gui_queryresultwidget" - "test_provider_copcprovider" - "test_provider_eptprovider" - "test_analysis_processingalgspt1" - "test_analysis_processingalgspt2" - "test_analysis_processing" - "test_app_gpsintegration" - "PyQgsAnnotation" - "PyQgsAuthenticationSystem" - "PyQgsConnectionRegistry" - "PyQgsDatumTransform" - "PyQgsFileUtils" - "PyQgsGeometryTest" - "PyQgsGoogleMapsGeocoder" - "PyQgsGroupLayer" - "PyQgsHashLineSymbolLayer" - "PyQgsLayerMetadataProviderPython" - "PyQgsLayoutHtml" - "PyQgsLineSymbolLayers" - "PyQgsMapLayer" - "PyQgsOGRProviderGpkg" - "PyQgsProcessExecutablePt1" - "PyQgsProcessExecutablePt2" - "PyQgsProjectionSelectionWidgets" - "PyQgsProviderConnectionGpkg" - "PyQgsProviderConnectionSpatialite" - "PyQgsOGRProvider" - "PyQgsSettingsTreeNode" - "PyQgsTextRenderer" - "PyQgsVectorFileWriter" - "PyQgsVectorLayerEditBuffer" - "PyQgsVirtualLayerProvider" - "PyQgsAuxiliaryStorage" - "PyQgsSelectiveMasking" - "qgis_sipify" - "qgis_sip_include" - "qgis_sip_uptodate") - "|"))) - (format #t "test suite not run~%")))) - (add-after 'install 'wrap-python - (assoc-ref python:%standard-phases 'wrap)) - (add-after 'wrap-python 'wrap-qt - (lambda* (#:key outputs inputs #:allow-other-keys) - (wrap-qt-program "qgis" #:output #$output #:inputs inputs))) - (add-after 'wrap-qt 'wrap-gis - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; TODO: Find if there is a way to get SAGA to work. - ;; Currently QGIS says "version of SAGA not supported". - ;; Disable it for now. - (wrap-program (string-append #$output "/bin/qgis") - ;; `("PATH" ":" prefix - ;; (,(dirname (search-input-file inputs "/bin/saga_cmd")))) - `("QGIS_PREFIX_PATH" = (,#$output)) - `("GISBASE" = (,grass-dir))))))))) + ;; Configure correct path to PyQt5 SIP directory + (add-after 'unpack 'configure-pyqt5-sip-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((sip-dir (string-append + (assoc-ref inputs "python-pyqt+qscintilla") + "/lib/python" + (python:python-version (assoc-ref inputs "python")) + "/site-packages/PyQt5/bindings"))) + (substitute* "cmake/FindPyQt5.py" + (("sip_dir = cfg.default_sip_dir") + (string-append "sip_dir = \"" sip-dir "\""))) + (substitute* "cmake/FindPyQt5.cmake" + (("\ +SET\\(PYQT5_SIP_DIR \"\\$\\{Python_SITEARCH\\}/PyQt5/bindings\"\\)") + (string-append "SET(PYQT5_SIP_DIR \"" sip-dir "\")")))) + (substitute* (list "tests/code_layout/test_qt_imports.sh" + "tests/code_layout/test_qgsscrollarea.sh") + (("\\$\\(git rev-parse --show-toplevel\\)") + (getcwd))))) + (replace 'check + (lambda* (#:key inputs outputs tests? parallel-tests? + #:allow-other-keys) + (if tests? + (begin + (setenv "HOME" "/tmp") + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + (setenv "TRAVIS" "true") + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (setenv "GISBASE" grass-dir) + (invoke "ctest" + "-j" (if parallel-tests? + (number->string (parallel-job-count)) + "1") + "-E" (string-join ignored-tests "|"))) + (format #t "test suite not run~%")))) + (add-after 'install 'wrap-python + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'wrap-python 'wrap-qt + (lambda* (#:key inputs #:allow-other-keys) + (wrap-qt-program "qgis" #:output #$output #:inputs inputs))) + (add-after 'wrap-qt 'wrap-gis + (lambda* (#:key inputs #:allow-other-keys) + ;; TODO: Find if there is a way to get SAGA to work. + ;; Currently QGIS says "version of SAGA not supported". + ;; Disable it for now. + (wrap-program (string-append #$output "/bin/qgis") + ;; `("PATH" ":" prefix + ;; (,(dirname (search-input-file inputs "/bin/saga_cmd")))) + `("QGIS_PREFIX_PATH" = (,#$output)) + `("GISBASE" = (,grass-dir))))))))) (inputs (list bash-minimal exiv2 @@ -3124,19 +3125,19 @@ growing set of geoscientific methods.") (list zstd "lib"))) (native-inputs (append - (list bison - flex - perl - perl-yaml-tiny - pkg-config - python-mock - python-nose2 - python-pyqt-builder - qttools-5) - (if (supported-package? shellcheck) - (list shellcheck) - '()) - (list xorg-server-for-tests))) + (list bison + flex + perl + perl-yaml-tiny + pkg-config + python-mock + python-nose2 + python-pyqt-builder + qttools-5) + (if (supported-package? shellcheck) + (list shellcheck) + '()) + (list xorg-server-for-tests))) (home-page "https://qgis.org") (synopsis "Geographical information system") (description "QGIS is an easy to use Geographical Information |