aports/testing/qgis/APKBUILD
2023-11-13 21:09:07 +00:00

338 lines
9.5 KiB
Plaintext

# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
pkgname=qgis
pkgver=3.28.12
pkgrel=1
pkgdesc="Geographic Information System (GIS) that supports vector, raster & database formats"
url="https://qgis.org/"
# armhf: py3-qscintilla qt5-qt3d-dev qt5-qtlocation-dev missing
# ppc64le and riscv64: qt5-qtwebengine-dev missing
# s390x: grass-gis-dev netcdf-dev qt5-qtwebengine-dev missing
arch="all !armhf !ppc64le !riscv64 !s390x"
license="GPL-2.0-or-later"
depends="font-opensans font-cantarell qt5-qtbase-sqlite postgresql-client"
makedepends="
bison
cmake
exiv2-dev
expat-dev
fcgi-dev
flex
gdal-dev
geos-dev
gsl-dev
grass-gis-dev
hdf5-dev
hdf5-static
libspatialindex-dev
libspatialite-dev
libzip-dev
netcdf-dev
opencl-dev
pdal-dev
postgresql-dev
proj-dev
protobuf-dev
py3-ply
py3-pyqt-builder
py3-qscintilla
py3-qt5
py3-sip
python3-dev
qca-dev
qscintilla-dev
qt5-qt3d-dev
qt5-qtbase-dev
qt5-qtlocation-dev
qt5-qtmultimedia-dev
qt5-qtserialport-dev
qt5-qtsvg-dev
qt5-qttools-dev
qt5-qtwebengine-dev
qtkeychain-dev
qwt-dev
samurai
sqlite-dev
unixodbc-dev
yarn
"
checkdepends="py3-nose2 py3-yaml py3-gdal py3-psycopg2 py3-oauthlib py3-owslib gdal-tools gdal-driver-all py3-mock py3-termcolor qpdf poppler-utils xvfb-run firefox bash"
subpackages="
$pkgname-dev
$pkgname-doc
$pkgname-lang
$pkgname-server
$pkgname-grass
py3-$pkgname:py3
"
options="!check" # test failures on builders
source="https://qgis.org/downloads/qgis-$pkgver.tar.bz2
10-exiv2-0.28.patch
20-protobuf-23.patch
30-qgstyle-infinite-loop.patch
40-pdal.patch
"
langdir="/usr/share/qgis/i18n"
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
-DQGIS_CGIBIN_SUBDIR=libexec/qgis \
-DBINDINGS_GLOBAL_INSTALL=TRUE \
-DBUILD_TESTING="$(want_check && echo TRUE || echo FALSE)" \ \
-DENABLE_TESTS="$(want_check && echo TRUE || echo FALSE)" \
-DWITH_3D=TRUE \
-DWITH_ANALYSIS=TRUE \
-DWITH_AUTH=TRUE \
-DWITH_BINDINGS=TRUE \
-DWITH_COPC=TRUE \
-DWITH_DESKTOP=TRUE \
-DWITH_EPT=TRUE \
-DWITH_GUI=TRUE \
-DWITH_GRASS8=TRUE \
-DGRASS_PREFIX8="$(pkg-config --variable=prefix grass)" \
-DWITH_HANA=TRUE \
-DWITH_ORACLE=FALSE \
-DWITH_PDAL=TRUE \
-DWITH_POSTGRESQL=TRUE \
-DWITH_QGIS_PROCESS=TRUE \
-DWITH_QSPATIALITE=TRUE \
-DWITH_SERVER=TRUE \
-DWITH_SERVER_LANDINGPAGE_WEBAPP=TRUE \
-DWITH_CUSTOM_WIDGETS=TRUE \
-DQGIS_MANUAL_SUBDIR=share/man \
-DWITH_QTWEBKIT=FALSE \
-DWITH_QWTPOLAR=TRUE \
-DQWTPOLAR_LIBRARY=/usr/lib/libqwt.so \
-DQWTPOLAR_INCLUDE_DIR=/usr/include/qwt \
-DCMAKE_CXX_FLAGS="$CXXFLAGS -DQWT_POLAR_VERSION=0x060200" \
-DWITH_INTERNAL_QWTPOLAR=FALSE \
$CMAKE_CROSSOPTS
cmake --build build
}
check() {
local test_excludes="(
logGitStatus$|
checkGitStatus$|
ProcessingQgisAlgorithmsTestPt1$|
ProcessingQgisAlgorithmsTestPt4$|
ProcessingGdalAlgorithmsRasterTest$|
ProcessingGdalAlgorithmsVectorTest$|
ProcessingGrass7AlgorithmsImageryTest$|
ProcessingGrass7AlgorithmsRasterTestPt1$|
ProcessingGrass7AlgorithmsRasterTestPt2$|
ProcessingOtbAlgorithmsTest$|
test_core_authconfig$|
test_core_authmanager$|
test_core_blendmodes$|
test_core_compositionconverter$|
test_core_dataitem$|
test_core_dxfexport$|
test_core_expression$|
test_core_gdalprovider$|
test_core_gdalutils$|
test_core_labelingengine$|
test_core_layoutgeopdfexport$|
test_core_layoutmap$|
test_core_layoutmapoverview$|
test_core_layoutpicture$|
test_core_layouttable$|
test_core_maprendererjob$|
test_core_maprotation$|
test_core_overlayexpression$|
test_core_projectstorage$|
test_core_rasterlayer$|
test_core_rastersublayer$|
test_core_openclutils$|
test_core_coordinatereferencesystem$|
test_gui_filedownloader$|
test_gui_layoutgui$|
test_gui_queryresultwidget$|
test_3d_3drendering$|
test_analysis_processingalgspt2$|
test_analysis_processing$|
test_geometry_checker_geometrychecks$|
test_provider_wcsprovider$|
test_provider_eptprovider$|
test_app_gpsinformationwidget$|
PyQgsAnnotation$|
PyQgsAuthenticationSystem$|
PyQgsBlendModes$|
PyQgsBlockingProcess$|
PyQgsConnectionRegistry$|
PyQgsDatumTransform$|
PyQgsExpression$|
PyQgsExternalStorageWebDAV$|
PyQgsFillSymbolLayers$|
PyQgsFileUtils$|
PyQgsGeometryTest$|
PyQgsHashLineSymbolLayer$|
PyQgsInterpolatedLineSymbolLayer$|
PyQgsLayerMetadataProviderPython$|
PyQgsLayoutExporter$|
PyQgsLayoutHtml$|
PyQgsLayoutLegend$|
PyQgsLayoutMapOverview$|
PyQgsLineSymbolLayers$|
PyQgsMapClippingRegion$|
PyQgsMapLayerComboBox$|
PyQgsMapLayerProxyModel$|
PyQgsMapUnitScale$|
PyQgsMergedFeatureRenderer$|
PyQgsNoApplication$|
PyQgsPalLabelingPlacement$|
PyQgsProcessExecutablePt1$|
PyQgsProcessExecutablePt2$|
PyQgsProviderConnectionGpkg$|
PyQgsProviderConnectionSpatialite$|
PyQgsRasterFileWriter$|
PyQgsRasterLayerRenderer$|
PyQgsShapefileProvider$|
PyQgsSvgCache$|
PyQgsTextRenderer$|
PyQgsOGRProvider$|
PyQgsSpatialiteProvider$|
PyQgsStyleModel$|
PyQgsVectorFileWriter$|
PyQgsVectorLayerEditBuffer$|
PyQgsVectorLayerNamedStyle$|
PyQgsVectorLayerProfileGenerator$|
PyQgsDBManagerGpkg$|
PyQgsSelectiveMasking$|
PyQgsPalLabelingServer$|
PyQgsAppStartup$|
PyQgsServerWMS$|
PyQgsServerWMSGetFeatureInfo$|
PyQgsServerWMSGetMap$|
PyQgsServerWMSGetLegendGraphic$|
PyQgsServerWMSGetPrint$|
PyQgsServerWMSGetPrintExtra$|
PyQgsServerWMSGetPrintOutputs$|
PyQgsServerWMSDimension$|
PyQgsServerProjectUtils$|
PyQgsServerWFS$|
PyQgsServerLocaleOverride$|
PyQgsServerConfigCache$|
qgis_sipify$|
qgis_sip_include$|
qgis_sip_uptodate$|
ProcessingQgisAlgorithmsTestPt2$|
ProcessingQgisAlgorithmsTestPt3$|
ProcessingGrass7AlgorithmsVectorTest$|
test_core_application$|
test_core_callout$|
test_core_centroidfillsymbol$|
test_core_filledmarker$|
test_core_gradients$|
test_core_layoutitem$|
test_core_linefillsymbol$|
test_core_meshlayer$|
test_core_meshlayerrenderer$|
test_core_networkaccessmanager$|
test_core_pointcloudexpression$|
test_core_pointcloudlayerexporter$|
test_core_pointpatternfillsymbol$|
test_core_rastercontourrenderer$|
test_core_simplemarker$|
test_core_svgmarker$|
test_gui_processinggui$|
test_3d_layout3dmap$|
test_3d_tessellator$|
test_analysis_processingalgspt1$|
test_analysis_meshcalculator$|
test_analysis_meshcontours$|
test_analysis_triangulation$|
test_provider_wmsprovider$|
test_provider_copcprovider$|
qgis_grassprovidertest8$|
test_app_fieldcalculator$|
test_app_maptoolcircularstring$|
test_app_maptooleditmesh$|
test_app_vertextool$|
PyQgsAnimatedMarkerSymbolLayer$|
PyQgsEmbeddedSymbolRenderer$|
PyQgsExpressionBuilderWidget$|
PyQgsGdalProvider$|
PyQgsGroupLayer$|
PyQgsHistoryProviderRegistry$|
PyQgsLayoutMap$|
PyQgsLayoutPicture$|
PyQgsPalLabelingCanvas$|
PyQgsPalLabelingLayout$|
PyQgsPointCloudAttributeByRampRenderer$|
PyQgsPointCloudClassifiedRenderer$|
PyQgsPointCloudLayerProfileGenerator$|
PyQgsPointCloudRgbRenderer$|
PyQgsProcessingAlgRunner$|
TestQgsRandomMarkerSymbolLayer$|
PyQgsRasterLayer$|
PyQgsRasterResampler$|
PyQgsWFSProvider$|
PyQgsServerPlugins$|
PyQgsServerApi$|
test_core_tiledownloadmanager$|
test_app_qgisappclipboard$|
PyQgsServerCacheManager$
)"
local test_excludes_regexp
local testcase; for testcase in $test_excludes
do
test_excludes_regexp=$test_excludes_regexp$testcase
done
xvfb-run -a -s "-screen 0 1280x1024x24 -dpi 96" ctest -j 1 --test-dir build --output-on-failure --timeout 15000 -E $test_excludes_regexp
}
package() {
DESTDIR="$pkgdir" cmake --install build
}
dev() {
default_dev
amove usr/share/qgis/FindQGIS.cmake
amove usr/lib/qt5/plugins/designer/libqgis_customwidgets.so*
}
server() {
pkgdesc="FCGI-based OGC web map server"
amove usr/bin/qgis_mapserver
amove usr/lib/qgis/server
amove usr/lib/libqgis_server.so*
amove usr/libexec/qgis
amove usr/lib/python3*/site-packages/qgis/server
amove usr/lib/python3*/site-packages/qgis/_server.so
amove usr/share/qgis/resources/server
}
grass() {
pkgdesc="GRASS Support Libraries for QGIS"
amove usr/lib/libqgisgrass*.so.*
amove usr/lib/qgis/plugins/libplugin_grass8.so
amove usr/lib/qgis/plugins/libprovider_grass8.so
amove usr/lib/qgis/plugins/libprovider_grassraster8.so
amove usr/lib/qgis/grass/
amove usr/share/qgis/grass/
}
py3() {
pkgdesc="Python integration and plug-ins for QGIS"
depends="py3-owslib py3-pyaml py3-gdal py3-httplib2 py3-jinja2
py3-matplotlib py3-psycopg2 py3-pygments py3-qscintilla"
amove usr/lib/libqgispython.so*
amove usr/share/qgis/python/
amove usr/lib/python3*/site-packages/qgis/
amove usr/lib/python3*/site-packages/PyQt5/uic/widget-plugins/
}
sha512sums="
0c5a095ba1c66391bc7feb5ac91595e4de29889c3921e6a6123a8446c85f5a81be32ef799e51c6483f795e2abd90367e05f6662a6eb6c76dea62488a41566cf7 qgis-3.28.12.tar.bz2
47cec7b889a2b12f321e8727b06b5edc24a5bb5947dd98671a9aebbbd17adffa515769afcc0e05911a2754b36e78acf0cea2e074b1316beb48a72f78b860a43a 10-exiv2-0.28.patch
a93bbd7655ded2aae734356ed06346f4508c7a9da916e424892abbdc88c8c1818bd53e818c1a5c41fb14f2bf9bc5309b11b331021ba44b5b4e530b942227ad79 20-protobuf-23.patch
ab9fe3afac98abbec5007c9c9604c9e3bef5e576f695a8b0a73a5fe29b3c07baec3f46ef4503d4f1df8e5587735c7565ae583f312167bd9c7e20554f88bb0bff 30-qgstyle-infinite-loop.patch
1beb94b0ccfd1f990c4cd2ed66793ac878526670c1295588539c026e214237c61a4f9f2d3474cbeb6f59f55138ab997fa4f02cf358f36687dd11666527d7616a 40-pdal.patch
"