diff --git a/sci-geosciences/qgis/additional-files/qgis.rdef.in b/sci-geosciences/qgis/additional-files/qgis.rdef.in new file mode 100644 index 000000000..451e96830 --- /dev/null +++ b/sci-geosciences/qgis/additional-files/qgis.rdef.in @@ -0,0 +1,46 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "QGIS", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E6369660703EE791302000602000000BA60073A60070000004A80B146624900" + $"589632FF93B02302000602AE4F00BA5F303A5F30AE4F004923FE466C4C005896" + $"32FF93B02303F0E64A04FF2C0500040069060207B772B637B772B637B711B637" + $"B64FB637B6B0B637B64FB695B64FB74FB64FB6F2B6A2B7A1B747B845B6F4B7F3" + $"B747B7E4B747B722B747B783B7A4B722B85FB722B802B722B810B6D4B772B637" + $"B7C1B686B772B637020EB6E420B6E420B4AB2020B6A820B48E20B8C4B6E4BA5B" + $"B4ABBA5BB778BA5BB87CBA0EB801BA40B822B9B5B76FB9022CB95CB743B90CB6" + $"EBB911B717B911B5A5B911B490B6AAB490B805B490B54FB6EBB449B5A2B449B8" + $"33B449B939B6AAB939B54FB939B6E3B925B74CB932B719B98AB7B1BA53B87AB9" + $"EEB815BAA1B7F2BACCB6A8BACCB753BACCB490B6E420B92120B6E420B6E420B6" + $"E420B6E4200207B7BCB797B7BCB797B7BCB7F8B7BCB8BAB7BCB859B85CB95AB9" + $"9BBA98B8FCB9F9BA00BA98BACABA98BA65BA98BACABA3DBACAB986BACAB9E1BA" + $"23B8E1B8D6B797B97DB83CB878B797B7BCB797B81AB797B7BCB7970207B85FB7" + $"22B85FB722B802B722B747B722B7A4B722B747B783B747B845B747B7E4B76EB8" + $"6CB7BCB8BAB795B893B7BCB859B7BCB797B7BCB7F8B81AB797B8D6B797B878B7" + $"97B8AEB770B85FB722B887B749B85FB7220207B64FB637B64FB637B7CEB7ADBA" + $"CABA98B94CB922BACABA3DBACAB986BACAB9E1BA23B8E1B8D6B797B97DB83CB8" + $"AEB770B85FB722B887B749B810B6D4B772B637B7C1B686B711B637B64FB637B6" + $"B0B637B64FB63702044030C34530BC3A30304030BC3A30C3454050BC3A50C345" + $"50504050C34550BC3A0A0A060105024170000000000000003EC000C8500049A0" + $"000A05010012429B8000000000000042A6A842C4A94630CE01178200040A0001" + $"0002429B8000000000000042A6A842C4A94630CE0A00010002429B8000000000" + $"000042A6A842C4A94630CE0A05010112429B8000000000000042A6A842C4A946" + $"30CE01178200040A01010102429B8000000000000042A6A842C4A94630CE0A05" + $"010212429B8000000000000042A6A842C4A94630CE01178200040A0201020242" + $"9B8000000000000042A6A842C4A94630CE0A03010302429B8000000000000042" + $"A6A842C4A94630CE0A04010402429B8000000000000042A6A842C4A94630CE" +}; diff --git a/sci-geosciences/qgis/patches/qgis-3.24.2.patchset b/sci-geosciences/qgis/patches/qgis-3.24.2.patchset new file mode 100644 index 000000000..d2bb335d3 --- /dev/null +++ b/sci-geosciences/qgis/patches/qgis-3.24.2.patchset @@ -0,0 +1,84 @@ +From dde093a597490042e2a7148c180409114d37d5e6 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 13 May 2022 14:53:30 +1000 +Subject: Fixes for Haiku + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a23a601..986a2e7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -333,7 +333,7 @@ if(WITH_CORE) + ############################################################# + # search for dependencies + +- if(NOT WIN32 AND NOT ANDROID) ++ if(NOT WIN32 AND NOT ANDROID AND NOT HAIKU) + include(CheckFunctionExists) + CHECK_FUNCTION_EXISTS(openpty OPENPTY_IN_LIBC) + if(NOT OPENPTY_IN_LIBC) +diff --git a/external/laz-perf/portable_endian.hpp b/external/laz-perf/portable_endian.hpp +index af2598a..deca17a 100644 +--- a/external/laz-perf/portable_endian.hpp ++++ b/external/laz-perf/portable_endian.hpp +@@ -12,7 +12,7 @@ + + // use standard posix style headers for apple emscripten builds as well since emscripten sdk now ships its own + // libc headers +-#if defined(__linux__) || defined(__CYGWIN__) || defined(__EMSCRIPTEN__) ++#if defined(__linux__) || defined(__HAIKU__) || defined(__CYGWIN__) || defined(__EMSCRIPTEN__) + + # include + +@@ -43,7 +43,7 @@ + # define __PDP_ENDIAN PDP_ENDIAN + **/ + +-#elif defined(__OpenBSD__)|| defined(__FreeBSD__) ++#elif defined(__OpenBSD__)|| defined(__FreeBSD__) + + # include + +diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt +index 0571d10..00193e5 100644 +--- a/src/app/CMakeLists.txt ++++ b/src/app/CMakeLists.txt +@@ -622,6 +622,10 @@ if (WITH_PDAL) + target_link_libraries(qgis_app ${PDAL_LIBRARIES}) + endif() + ++if (HAIKU) ++ target_link_libraries(qgis_app network) ++endif() ++ + if(MSVC) + install(FILES qgis.ico qgis-mime.ico qgis-qgs.ico qgis-qlr.ico qgis-qml.ico qgis-qpt.ico DESTINATION ${CMAKE_INSTALL_PREFIX}/icons) + endif() +diff --git a/src/app/main.cpp b/src/app/main.cpp +index 1faeae8..5cfb75a 100644 +--- a/src/app/main.cpp ++++ b/src/app/main.cpp +@@ -887,7 +887,7 @@ int main( int argc, char *argv[] ) + // Initialize the application and the translation stuff + ///////////////////////////////////////////////////////////////////// + +-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(ANDROID) ++#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(ANDROID) && !defined(Q_OS_HAIKU) + bool myUseGuiFlag = nullptr != getenv( "DISPLAY" ); + #else + bool myUseGuiFlag = true; +diff --git a/src/process/CMakeLists.txt b/src/process/CMakeLists.txt +index c4691d8..cccccb2 100644 +--- a/src/process/CMakeLists.txt ++++ b/src/process/CMakeLists.txt +@@ -45,6 +45,7 @@ target_link_libraries(qgis_process + ${PROJ_LIBRARY} + ${GEOS_LIBRARY} + ${GDAL_LIBRARY} ++ network + ) + + if (WITH_3D) +-- +2.30.2 + diff --git a/sci-geosciences/qgis/qgis-3.24.2.recipe b/sci-geosciences/qgis/qgis-3.24.2.recipe new file mode 100644 index 000000000..03cc838ff --- /dev/null +++ b/sci-geosciences/qgis/qgis-3.24.2.recipe @@ -0,0 +1,151 @@ +SUMMARY="A Free and Open Source Geographic Information System" +DESCRIPTION="QGIS functions as geographic information system (GIS) software, \ +allowing users to analyze and edit spatial information, in addition to composing \ +and exporting graphical maps.[3] QGIS supports raster, vector and mesh layers. \ +Vector data is stored as either point, line, or polygon features. Multiple \ +formats of raster images are supported, and the software can georeference images. + +QGIS supports shapefiles, personal geodatabases, dxf, MapInfo, PostGIS, and other \ +industry-standard formats. Web services, including Web Map Service and Web Feature \ +Service, are also supported to allow use of data from external sources. + +QGIS integrates with other open-source GIS packages, including PostGIS, GRASS GIS, \ +and MapServer. Plugins written in Python or C++ extend QGIS's capabilities. \ +Plugins can geocode using the Google Geocoding API, perform geoprocessing \ +functions similar to those of the standard tools found in ArcGIS, and interface \ +with PostgreSQL/PostGIS, SpatiaLite and MySQL databases." +HOMEPAGE="https://www.qgis.org/" +COPYRIGHT="QGIS Development Team" +LICENSE="GNU GPL v2 + GNU GPL v3" +REVISION="1" +SOURCE_URI="https://download.qgis.org/downloads/qgis-$portVersion.tar.bz2" +CHECKSUM_SHA256="898b148ab83e751c8c5de936929438315dec4cc449307cb405b156cd02b8d127" +PATCHES="qgis-$portVersion.patchset" +ADDITIONAL_FILES="qgis.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qgis$secondaryArchSuffix = $portVersion + app:QGIS$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libexpat$secondaryArchSuffix + lib:libexiv2$secondaryArchSuffix + lib:libgdal$secondaryArchSuffix + lib:libgeos$secondaryArchSuffix + lib:libgeos_c$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libgsl$secondaryArchSuffix + lib:libhdf5$secondaryArchSuffix + lib:libnetcdf$secondaryArchSuffix + lib:libpq$secondaryArchSuffix + lib:libproj$secondaryArchSuffix + lib:libprotobuf$secondaryArchSuffix + lib:libqca$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libqt5keychain$secondaryArchSuffix + lib:libQt5WebKit$secondaryArchSuffix + lib:libQt5WebKitWidgets$secondaryArchSuffix + lib:libQt5Widgets$secondaryArchSuffix + lib:libqwt$secondaryArchSuffix + lib:libqscintilla2_qt5$secondaryArchSuffix + lib:libspatialindex$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libzip$secondaryArchSuffix + lib:libzstd$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libcrypto$secondaryArchSuffix + devel:libexpat$secondaryArchSuffix + devel:libexiv2$secondaryArchSuffix + devel:libgdal$secondaryArchSuffix + devel:libgeos$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libgsl$secondaryArchSuffix + devel:libhdf5$secondaryArchSuffix + devel:libnetcdf$secondaryArchSuffix + devel:libopencl_headers$secondaryArchSuffix + devel:libpq$secondaryArchSuffix + devel:libproj$secondaryArchSuffix + devel:libprotobuf$secondaryArchSuffix + devel:libqca$secondaryArchSuffix >= 2 + devel:libQt5Core$secondaryArchSuffix + devel:libqt5keychain$secondaryArchSuffix + devel:libQt5WebKit$secondaryArchSuffix + devel:libqwt$secondaryArchSuffix + devel:libqscintilla2_qt5$secondaryArchSuffix + devel:libspatialindex$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libzip$secondaryArchSuffix + devel:libzstd$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:bison + cmd:cmake + cmd:flex + cmd:g++$secondaryArchSuffix + cmd:lrelease$secondaryArchSuffix >= 5 + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:python3.7 + " + +BUILD() +{ + mkdir -p build + cd build + + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$appsDir \ + -DQGIS_BIN_SUBDIR="QGIS" \ + -DQGIS_LIB_SUBDIR="QGIS/lib" \ + -DQGIS_PLUGIN_SUBDIR="QGIS/plugins" \ + -DQGIS_DATA_SUBDIR="QGIS/data" \ + -DQGIS_QML_SUBDIR="QGIS" \ + -DWITH_BINDINGS=FALSE \ + -DWITH_SPATIALITE=FALSE \ + -DWITH_3D=TRUE \ + -DENABLE_TESTS=FALSE + + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + mv $appsDir/QGIS/qgis $appsDir/QGIS/QGIS + rm -rf $appsDir/{man,lib,include,share} + + local APP_SIGNATURE="application/x-vnd.qgis" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/qgis.rdef.in > qgis.rdef + + addResourcesToBinaries qgis.rdef $appsDir/QGIS/QGIS + addAppDeskbarSymlink $appsDir/QGIS/QGIS +}