From d219e9df3443b858a9be6a150db8568baebfe67a Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Fri, 10 Sep 2021 16:51:07 +0200 Subject: [PATCH 1/7] first round of changes, builds python, spatialite and proj --- README.md | 4 +- config/defaults.conf | 2 +- config/dev.conf | 5 +- config/ltr.conf | 1 + config/nightly.conf | 3 +- config/pr.conf | 1 + qgis_bundle/recipes/python_pyqt5/recipe.sh | 8 +-- qgis_deps/create_package.bash | 10 +-- qgis_deps/distribute.sh | 6 +- qgis_deps/recipes/exiv2/recipe.sh | 2 +- qgis_deps/recipes/expat/recipe.sh | 4 +- qgis_deps/recipes/freetype/recipe.sh | 2 +- qgis_deps/recipes/freexl/recipe.sh | 4 +- qgis_deps/recipes/gdal/recipe.sh | 2 +- qgis_deps/recipes/hdf5/recipe.sh | 2 +- qgis_deps/recipes/libffi/recipe.sh | 12 ++-- qgis_deps/recipes/libtiff/recipe.sh | 33 ++++++---- qgis_deps/recipes/openssl/recipe.sh | 4 +- qgis_deps/recipes/proj/recipe.sh | 17 +++-- qgis_deps/recipes/proj_data/recipe.sh | 57 ++++++++++++++++ qgis_deps/recipes/python/recipe.sh | 39 ++++++----- qgis_deps/recipes/python_sip/recipe.sh | 6 +- qgis_deps/recipes/qgis_deps/recipe.sh | 1 + qgis_deps/recipes/rttopo/recipe.sh | 76 ++++++++++++++++++++++ qgis_deps/recipes/spatialite/recipe.sh | 12 ++-- qgis_deps/recipes/sqlite/recipe.sh | 10 ++- qgis_deps/recipes/webp/recipe.sh | 2 +- qgis_deps/upload_to_qgis2.bash | 4 +- scripts/deps.bash | 1 + scripts/fetch_proj-datumgrid.bash | 55 ---------------- 30 files changed, 243 insertions(+), 142 deletions(-) create mode 100644 qgis_deps/recipes/proj_data/recipe.sh create mode 100644 qgis_deps/recipes/rttopo/recipe.sh delete mode 100755 scripts/fetch_proj-datumgrid.bash diff --git a/README.md b/README.md index 3f532b5d..ea022b83 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ To know when we release, see [QGIS release schedule](https://www.qgis.org/en/sit - to debug Qt Plugins (e.g. SQL), use : `QT_DEBUG_PLUGINS=1 open /Application/QGIS*.app` - if QGIS crashes on start, try with clean profile `mv ~/Library/Application\ Support/QGIS/QGIS3/profiles ~/Library/Application\ Support/QGIS/QGIS3/profiles_bk` - if QGIS crashes after load, try use clean profile from the QGIS Menu +- list symbols of dynlib: `nm -gU ` # Server Setup @@ -53,7 +54,6 @@ To know when we release, see [QGIS release schedule](https://www.qgis.org/en/sit - Download erdas-ecw-jp2 5.5.0 [referenced in](https://github.com/OSGeo/homebrew-osgeo4mac/blob/master/Formula/osgeo-ecwjp2-sdk.rb). Open dmg, open pkg and install to default location (Desktop Read-Only Free type). Make a symbolic link in `../external/ERDASEcwJpeg2000SDK` - Download Oracle (18.1.0.0.0) package [from Oracle Download Section](https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html). Only "Instant Client Package - Basic" and "Instant Client Package - SDK" are needed. Unpack/install to `../external/oracle` - install homebrew packages by `install_brew_dev_packages.bash` -- get proj datumgrids by running `scripts/fetch_proj-datumgrid.bash` - Update `~/.bash_profile` from `scrips/bash_profile` - now clone this repository - for upload, add you ssh keys to `qgis/ssh/` and secure them @@ -76,7 +76,6 @@ To know when we release, see [QGIS release schedule](https://www.qgis.org/en/sit qgis.keychain.db --> ~/Library/Keychains/login.keychain-db run_cronjob.bash QGIS-Mac-Packager/ - proj-datumgrid/ external/ECW.. --> link to SDK external/MrSid.. --> link to SDK external/Oracle/sdk @@ -108,5 +107,4 @@ cat - remove all build folders - remove homebrew (`/usr/local/*`) - reinstall homebrew packages -- update version & run `scripts/fetch_proj-datumgrid.bash` - clear ccache `ccache -C` \ No newline at end of file diff --git a/config/defaults.conf b/config/defaults.conf index c151d05d..26b10829 100644 --- a/config/defaults.conf +++ b/config/defaults.conf @@ -59,7 +59,7 @@ export BUNDLE_PYTHON_SITE_PACKAGES_DIR=$BUNDLE_PYTHON_PACKAGES_DIR/site-packages # some refactoring # TODO replace for above export QGIS_DEPS_STAGE_PATH=$STAGE_PATH -export QGIS_DEPS_SDK_VERSION=$RELEASE_VERSION +export QGIS_DEPS_SDK_VERSION=$RELEASE_VERSION.$RELEASE_VERSION_PATCH export SIGN_FILE=$CONFIGDIR/../../sign_identity.txt export KEYCHAIN_FILE=$CONFIGDIR/../../qgis.keychain-db diff --git a/config/dev.conf b/config/dev.conf index ff7bfa5a..a6997a4f 100644 --- a/config/dev.conf +++ b/config/dev.conf @@ -2,9 +2,10 @@ CONFIGDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -export VERSION_major_python=3.8 +export VERSION_major_python=3.9 export VERSION_qt=5.15.2 -export RELEASE_VERSION=0.8.0 +export RELEASE_VERSION=0.9 +export RELEASE_VERSION_PATCH=0 export RELEASE=dev export WITH_ECW="true" diff --git a/config/ltr.conf b/config/ltr.conf index 4a6860c2..ed64c372 100644 --- a/config/ltr.conf +++ b/config/ltr.conf @@ -5,6 +5,7 @@ CONFIGDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" export VERSION_major_python=3.8 export VERSION_qt=5.14.2 export RELEASE_VERSION=0.7.0 +export RELEASE_VERSION_PATCH=0 export RELEASE=ltr export WITH_ECW="true" diff --git a/config/nightly.conf b/config/nightly.conf index 028f40ba..79933848 100644 --- a/config/nightly.conf +++ b/config/nightly.conf @@ -4,7 +4,8 @@ CONFIGDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" export VERSION_major_python=3.8 export VERSION_qt=5.15.2 -export RELEASE_VERSION=0.8.0 +export RELEASE_VERSION=0.9 +export RELEASE_VERSION_PATCH=0 export RELEASE=nightly export WITH_ECW="true" diff --git a/config/pr.conf b/config/pr.conf index fed78b03..aa5dd307 100644 --- a/config/pr.conf +++ b/config/pr.conf @@ -5,6 +5,7 @@ CONFIGDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" export VERSION_major_python=3.8 export VERSION_qt=5.15.2 export RELEASE_VERSION=0.8.0 +export RELEASE_VERSION_PATCH=0 export RELEASE=pr export WITH_ECW="true" diff --git a/qgis_bundle/recipes/python_pyqt5/recipe.sh b/qgis_bundle/recipes/python_pyqt5/recipe.sh index 46976465..b75cb0bd 100644 --- a/qgis_bundle/recipes/python_pyqt5/recipe.sh +++ b/qgis_bundle/recipes/python_pyqt5/recipe.sh @@ -54,16 +54,16 @@ function fix_binaries_python_pyqt5() { PYQT5_LIB=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/$i.so if [ -f "$PYQT5_LIB" ]; then install_name_delete_rpath $QT_BASE/clang_64/lib $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/$i.so - install_name_delete_rpath /opt/QGIS/qgis-deps-${RELEASE_VERSION}/stage/lib $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/$i.so + install_name_delete_rpath $DEPS_LIB_DIR $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/$i.so # for some reason "some" have it twice - install_name_tool -delete_rpath /opt/QGIS/qgis-deps-${RELEASE_VERSION}/stage/lib $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/$i.so >/dev/null 2>&1 + install_name_tool -delete_rpath $DEPS_LIB_DIR $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/$i.so >/dev/null 2>&1 else info "skipping pyqt5 lib $PYQT5_LIB, not present in this version of Qt/PyQt5" fi done - install_name_delete_rpath /opt/QGIS/qgis-deps-${RELEASE_VERSION}/stage/lib $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/Qt.so - install_name_delete_rpath /opt/QGIS/qgis-deps-${RELEASE_VERSION}/stage/lib $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/Qt.so + install_name_delete_rpath $DEPS_LIB_DIR $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/Qt.so + install_name_delete_rpath $DEPS_LIB_DIR $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/Qt.so install_name_change $DEPS_LIB_DIR/$LINK_libqscintilla2_qt5 @rpath/$LINK_libqscintilla2_qt5 $BUNDLE_PYTHON_SITE_PACKAGES_DIR/PyQt5/Qsci.so } diff --git a/qgis_deps/create_package.bash b/qgis_deps/create_package.bash index 253022b3..08b02047 100755 --- a/qgis_deps/create_package.bash +++ b/qgis_deps/create_package.bash @@ -32,11 +32,11 @@ if [ ! -d $ROOT_OUT_PATH ]; then error "The root output directory '$ROOT_OUT_PATH' not found." fi -echo "Create packages for qgis-deps-${RELEASE_VERSION}" +echo "Create packages for qgis-deps-${QGIS_DEPS_SDK_VERSION}" ############################################## # Create install script -INSTALL_SCRIPT=$ROOT_OUT_PATH/install_qgis_deps-${RELEASE_VERSION}.bash +INSTALL_SCRIPT=$ROOT_OUT_PATH/install_qgis_deps-${QGIS_DEPS_SDK_VERSION}.bash if [ -f $INSTALL_SCRIPT ]; then rm -rf $INSTALL_SCRIPT touch $INSTALL_SCRIPT @@ -72,7 +72,7 @@ echo "fi" >> $INSTALL_SCRIPT ############################################## # Create Deps package -QGIS_DEPS_PACKAGE_FILE=qgis-deps-${RELEASE_VERSION}.tar.gz +QGIS_DEPS_PACKAGE_FILE=qgis-deps-${QGIS_DEPS_SDK_VERSION}.tar.gz QGIS_DEPS_PACKAGE=$ROOT_OUT_PATH/${QGIS_DEPS_PACKAGE_FILE} QGIS_INSTALL_DIR=\$\{QGIS_DEPS_PREFIX\}$ROOT_OUT_PATH/stage/ if [ -f $QGIS_DEPS_PACKAGE ]; then @@ -85,12 +85,12 @@ $COMPRESS ${QGIS_DEPS_PACKAGE} ./ cd $PWD echo "echo \"----------------------\"" >> $INSTALL_SCRIPT echo "if [ -f \$ROOT_PATH/$QGIS_DEPS_PACKAGE_FILE ] && [ ! -d $QGIS_INSTALL_DIR ]; then" >> $INSTALL_SCRIPT -echo " echo \"Installing QGIS_deps ${RELEASE_VERSION} to $QGIS_INSTALL_DIR\"" >> $INSTALL_SCRIPT +echo " echo \"Installing QGIS_deps ${QGIS_DEPS_SDK_VERSION} to $QGIS_INSTALL_DIR\"" >> $INSTALL_SCRIPT echo " mkdir -p $QGIS_INSTALL_DIR" >> $INSTALL_SCRIPT echo " cd $QGIS_INSTALL_DIR" >> $INSTALL_SCRIPT echo " $DECOMPRESS \$ROOT_PATH/$QGIS_DEPS_PACKAGE_FILE" >> $INSTALL_SCRIPT echo "else " >> $INSTALL_SCRIPT -echo " echo \"Skipped installation of QGIS_deps ${RELEASE_VERSION} to $QGIS_INSTALL_DIR\"" >> $INSTALL_SCRIPT +echo " echo \"Skipped installation of QGIS_deps ${QGIS_DEPS_SDK_VERSION} to $QGIS_INSTALL_DIR\"" >> $INSTALL_SCRIPT echo "fi" >> $INSTALL_SCRIPT ############################################## diff --git a/qgis_deps/distribute.sh b/qgis_deps/distribute.sh index 7e5c0899..281b0564 100755 --- a/qgis_deps/distribute.sh +++ b/qgis_deps/distribute.sh @@ -68,6 +68,10 @@ function check_config_conf_vars() { error "you need at RELEASE_VERSION in config.conf" fi + if [ "X$RELEASE_VERSION_PATCH" == "X" ]; then + error "you need at RELEASE_VERSION_PATCH in config.conf" + fi + if [ "X$MACOSX_DEPLOYMENT_TARGET" == "X" ]; then error "you need at MACOSX_DEPLOYMENT_TARGET in config.conf" fi @@ -798,7 +802,7 @@ function run_create_config_file() { append_to_config_file "export VERSION_qt=${VERSION_qt}" append_to_config_file "export QT_BASE=/opt/Qt/${VERSION_qt}" append_to_config_file "export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}" - append_to_config_file "export RELEASE_VERSION=${RELEASE_VERSION}" + append_to_config_file "export QGIS_DEPS_SDK_VERSION=${QGIS_DEPS_SDK_VERSION}" cd $BUILD_PATH for module in $MODULES; do diff --git a/qgis_deps/recipes/exiv2/recipe.sh b/qgis_deps/recipes/exiv2/recipe.sh index be13bbd3..94ebfa4d 100644 --- a/qgis_deps/recipes/exiv2/recipe.sh +++ b/qgis_deps/recipes/exiv2/recipe.sh @@ -3,7 +3,7 @@ DESC_exiv2="EXIF and IPTC metadata manipulation library and tools" # version of your package -VERSION_exiv2=0.27.2 +VERSION_exiv2=0.27.3 LINK_exiv2=libexiv2.27.dylib # dependencies of this recipe diff --git a/qgis_deps/recipes/expat/recipe.sh b/qgis_deps/recipes/expat/recipe.sh index 9c0cafd0..16587dcd 100644 --- a/qgis_deps/recipes/expat/recipe.sh +++ b/qgis_deps/recipes/expat/recipe.sh @@ -3,7 +3,7 @@ DESC_expat="XML 1.0 parser" # version of your package -VERSION_expat=2.2.9 +VERSION_expat=2.2.10 LINK_expat=libexpat.1.dylib # dependencies of this recipe @@ -13,7 +13,7 @@ DEPS_expat=() URL_expat=https://github.com/libexpat/libexpat/releases/download/R_${VERSION_expat//./_}/expat-${VERSION_expat}.tar.xz # md5 of the package -MD5_expat=d2384fa607223447e713e1b9bd272376 +MD5_expat=e0fe49a6b3480827c9455e4cfc799133 # default build path BUILD_expat=$BUILD_PATH/expat/$(get_directory $URL_expat) diff --git a/qgis_deps/recipes/freetype/recipe.sh b/qgis_deps/recipes/freetype/recipe.sh index 55dfb6ee..42388ed3 100644 --- a/qgis_deps/recipes/freetype/recipe.sh +++ b/qgis_deps/recipes/freetype/recipe.sh @@ -3,7 +3,7 @@ DESC_freetype="Software library to render fonts" # version of your package -VERSION_freetype=2.10.0 +VERSION_freetype=2.10.2 LINK_freetype=libfreetype.6.dylib # dependencies of this recipe diff --git a/qgis_deps/recipes/freexl/recipe.sh b/qgis_deps/recipes/freexl/recipe.sh index 03011139..75e07c48 100644 --- a/qgis_deps/recipes/freexl/recipe.sh +++ b/qgis_deps/recipes/freexl/recipe.sh @@ -3,7 +3,7 @@ DESC_freexl="Library to extract data from Excel .xls files" # version of your package -VERSION_freexl=1.0.5 +VERSION_freexl=1.0.6 LINK_freexl=libfreexl.1.dylib # dependencies of this recipe @@ -13,7 +13,7 @@ DEPS_freexl=() URL_freexl=https://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-${VERSION_freexl}.tar.gz # md5 of the package -MD5_freexl=3ed2a0486f03318820b25f0ccae5e14d +MD5_freexl=d3d2df0d2ad7713038ce99024738172a # default build path BUILD_freexl=$BUILD_PATH/freexl/$(get_directory $URL_freexl) diff --git a/qgis_deps/recipes/gdal/recipe.sh b/qgis_deps/recipes/gdal/recipe.sh index b7f8fd2a..7d93eab6 100644 --- a/qgis_deps/recipes/gdal/recipe.sh +++ b/qgis_deps/recipes/gdal/recipe.sh @@ -4,7 +4,7 @@ DESC_gdal="Geospatial Data Abstraction Library" # version of your package # keep in SYNC with python_gdal receipt -VERSION_gdal=3.2.3 +VERSION_gdal=3.3.2 source $RECIPES_PATH/netcdf/recipe.sh source $RECIPES_PATH/xerces/recipe.sh diff --git a/qgis_deps/recipes/hdf5/recipe.sh b/qgis_deps/recipes/hdf5/recipe.sh index b123f3ee..86a66f3e 100644 --- a/qgis_deps/recipes/hdf5/recipe.sh +++ b/qgis_deps/recipes/hdf5/recipe.sh @@ -4,7 +4,7 @@ DESC_hdf5="File format designed to store large amounts of data" # version of your package VERSION_hdf5_major=1.10 -VERSION_hdf5=${VERSION_hdf5_major}.0 +VERSION_hdf5=${VERSION_hdf5_major}.7 LINK_libhdf5=libhdf5.100.dylib LINK_libhdf5_hl=libhdf5_hl.100.dylib diff --git a/qgis_deps/recipes/libffi/recipe.sh b/qgis_deps/recipes/libffi/recipe.sh index 66e9565e..a2124bd3 100644 --- a/qgis_deps/recipes/libffi/recipe.sh +++ b/qgis_deps/recipes/libffi/recipe.sh @@ -3,17 +3,17 @@ DESC_libffi="Portable Foreign Function Interface library" # version of your package -VERSION_libffi=3.2.1 -LINK_libffi=libffi.6.dylib +VERSION_libffi=3.4.2 +LINK_libffi=libffi.8.dylib # dependencies of this recipe DEPS_libffi=() # url of the package -URL_libffi=https://sourceware.org/pub/libffi/libffi-${VERSION_libffi}.tar.gz +URL_libffi=https://github.com/libffi/libffi/releases/download/v${VERSION_libffi}/libffi-${VERSION_libffi}.tar.gz # md5 of the package -MD5_libffi=83b89587607e3eb65c70d361f13bab43 +MD5_libffi=294b921e6cf9ab0fbaea4b639f8fdbe8 # default build path BUILD_libffi=$BUILD_PATH/libffi/$(get_directory $URL_libffi) @@ -58,10 +58,6 @@ function build_libffi() { try $MAKESMP try $MAKE install - mkdir -p $STAGE_PATH/include - cp $STAGE_PATH/lib/libffi-${VERSION_libffi}/include/* $STAGE_PATH/include/ - rm -rf $STAGE_PATH/lib/libffi-${VERSION_libffi} - pop_env } diff --git a/qgis_deps/recipes/libtiff/recipe.sh b/qgis_deps/recipes/libtiff/recipe.sh index 850e7f0d..fa6464b8 100644 --- a/qgis_deps/recipes/libtiff/recipe.sh +++ b/qgis_deps/recipes/libtiff/recipe.sh @@ -3,9 +3,10 @@ DESC_libtiff="TIFF library and utilities" # version of your package -VERSION_libtiff=4.1.0 +VERSION_libtiff=4.3.0 LINK_libtiff=libtiff.5.dylib +LINK_libtiffxx=libtiffxx.5.dylib # dependencies of this recipe DEPS_libtiff=(xz zstd webp jpeg) @@ -14,7 +15,7 @@ DEPS_libtiff=(xz zstd webp jpeg) URL_libtiff=http://download.osgeo.org/libtiff/tiff-${VERSION_libtiff}.tar.gz # md5 of the package -MD5_libtiff=2165e7aba557463acc0664e71a3ed424 +MD5_libtiff=0a2e4744d1426a8fc8211c0cdbc3a1b3 # default build path BUILD_libtiff=$BUILD_PATH/libtiff/$(get_directory $URL_libtiff) @@ -49,23 +50,26 @@ function shouldbuild_libtiff() { # function called to build the source code function build_libtiff() { - try rsync -a $BUILD_libtiff/ $BUILD_PATH/libtiff/build-$ARCH/ + try mkdir -p $BUILD_PATH/libtiff/build-$ARCH try cd $BUILD_PATH/libtiff/build-$ARCH push_env - try ${CONFIGURE} \ - --disable-debug \ - --disable-dependency-tracking \ - --disable-lzma \ - --with-jpeg-include-dir=$STAGE_PATH/include \ - --with-jpeg-lib-dir=$STAGE_PATH/lib \ - --without-x + try $CMAKE $BUILD_libtiff . + check_file_configuration CMakeCache.txt - check_file_configuration config.status + try $NINJA + try $NINJA install - try $MAKESMP - try $MAKE install + try install_name_tool -id $STAGE_PATH/lib/$LINK_libtiff $STAGE_PATH/lib/$LINK_libtiff + try install_name_tool -change $BUILD_PATH/libtiff/build-$ARCH/libtiff/$LINK_libtiff $STAGE_PATH/lib/$LINK_libtiff $STAGE_PATH/lib/$LINK_libtiff + try install_name_tool -change $BUILD_PATH/libtiff/build-$ARCH/libtiff/$LINK_libtiffxx $STAGE_PATH/lib/$LINK_libtiffxx $STAGE_PATH/lib/$LINK_libtiff + + try install_name_tool -id $STAGE_PATH/lib/$LINK_libtiffxx $STAGE_PATH/lib/$LINK_libtiffxx + try install_name_tool -change $BUILD_PATH/libtiff/build-$ARCH/libtiff/$LINK_libtiff $STAGE_PATH/lib/$LINK_libtiff $STAGE_PATH/lib/$LINK_libtiffxx + try install_name_tool -change $BUILD_PATH/libtiff/build-$ARCH/libtiff/$LINK_libtiffxx $STAGE_PATH/lib/$LINK_libtiffxx $STAGE_PATH/lib/$LINK_libtiffxx + + try install_name_tool -change $BUILD_PATH/libtiff/build-$ARCH/libtiff/$LINK_libtiff $STAGE_PATH/lib/$LINK_libtiff $STAGE_PATH/bin/tiffsplit pop_env } @@ -73,7 +77,7 @@ function build_libtiff() { # function called after all the compile have been done function postbuild_libtiff() { verify_binary lib/$LINK_libtiff - verify_binary lib/libtiffxx.dylib + verify_binary lib/${LINK_libtiffxx} verify_binary bin/tiffsplit } @@ -82,4 +86,5 @@ function add_config_info_libtiff() { append_to_config_file "# libtiff-${VERSION_libtiff}: ${DESC_libtiff}" append_to_config_file "export VERSION_libtiff=${VERSION_libtiff}" append_to_config_file "export LINK_libtiff=${LINK_libtiff}" + append_to_config_file "export LINK_libtiffxx=${LINK_libtiffxx}" } \ No newline at end of file diff --git a/qgis_deps/recipes/openssl/recipe.sh b/qgis_deps/recipes/openssl/recipe.sh index 081ab07d..369b7547 100644 --- a/qgis_deps/recipes/openssl/recipe.sh +++ b/qgis_deps/recipes/openssl/recipe.sh @@ -5,7 +5,7 @@ DESC_openssl="Cryptography and SSL/TLS Toolkit" # version of your package # NOTE openssl version must be compatible with QT version, for example # for Qt 5.14 see https://wiki.qt.io/Qt_5.14.1_Known_Issues -VERSION_openssl=1.1.1d +VERSION_openssl=1.1.1h # dependencies of this recipe DEPS_openssl=() @@ -18,7 +18,7 @@ LINK_libcrypto=libcrypto.${LINK_libssl_version}.dylib URL_openssl=https://github.com/openssl/openssl/archive/OpenSSL_${VERSION_openssl//./_}.tar.gz # md5 of the package -MD5_openssl=148010aa1eff4c317fb9f68b78b1216e +MD5_openssl=e365330dabdc29bb8b5d2984f14d2e62 # default build path BUILD_openssl=$BUILD_PATH/openssl/$(get_directory $URL_openssl) diff --git a/qgis_deps/recipes/proj/recipe.sh b/qgis_deps/recipes/proj/recipe.sh index 3618d369..cc3b521e 100644 --- a/qgis_deps/recipes/proj/recipe.sh +++ b/qgis_deps/recipes/proj/recipe.sh @@ -4,18 +4,18 @@ DESC_proj="Cartographic Projections Library" # version of your package # keep in SYNC with python_pyproj receipt -VERSION_proj=6.3.2 +VERSION_proj=8.1.1 -LINK_libproj=libproj.18.dylib +LINK_libproj=libproj.22.dylib # dependencies of this recipe -DEPS_proj=(sqlite libxml2 openssl) +DEPS_proj=(sqlite libxml2 openssl libtiff) # url of the package URL_proj=https://github.com/OSGeo/PROJ/releases/download/$VERSION_proj/proj-$VERSION_proj.tar.gz # md5 of the package -MD5_proj=2ca6366e12cd9d34d73b4602049ee480 +MD5_proj=f017fd7d35311b0d65b2cf0503844690 # default build path BUILD_proj=$BUILD_PATH/proj/$(get_directory $URL_proj) @@ -49,7 +49,14 @@ function build_proj() { push_env - try $CMAKE $BUILD_proj . + try $CMAKE \ + -DPROJ_CMAKE_SUBDIR=share/cmake/proj4 \ + -DPROJ_DATA_SUBDIR=share/proj \ + -DPROJ_INCLUDE_SUBDIR=include \ + -DBUILD_TESTING=OFF \ + -DBUILD_SHARED_LIBS=ON \ + $BUILD_proj . + check_file_configuration CMakeCache.txt try $NINJA diff --git a/qgis_deps/recipes/proj_data/recipe.sh b/qgis_deps/recipes/proj_data/recipe.sh new file mode 100644 index 00000000..9597ed8d --- /dev/null +++ b/qgis_deps/recipes/proj_data/recipe.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +DESC_proj_data="Cartographic proj library data" + +# version of your package +VERSION_proj_data=1.7 + +# dependencies of this recipe +DEPS_proj_data=(proj) + +# url of the package +URL_proj_data=http://ftp.osuosl.org/pub/osgeo/download/proj/proj-data-$VERSION_proj_data.tar.gz + +# md5 of the package +MD5_proj_data=2ca6366e12cd9d34d73b4602049ee480 + +# default build path +BUILD_proj_data=$BUILD_PATH/proj_data/$(get_directory $URL_proj_data) + +# default recipe path +RECIPE_proj_data=$RECIPES_PATH/proj_data + +# function called for preparing source code if needed +# (you can apply patch etc here.) +function prebuild_proj_data() { + cd $BUILD_proj_data + + # check marker + if [ -f .patched ]; then + return + fi + + touch .patched +} + +function shouldbuild_proj_data() { + if [ ${STAGE_PATH}/lib/${LINK_libproj_data} -nt $BUILD_proj_data/.patched ]; then + DO_BUILD=0 + fi +} + +# function called to build the source code +function build_proj_data() { + mkdir -p ${STAGE_PATH}/share/proj + try cp -R $BUILD_proj_data/* ${STAGE_PATH}/share/proj/ +} + +# function called after all the compile have been done +function postbuild_proj_data() { + : +} + +# function to append information to config file +function add_config_info_proj_data() { + append_to_config_file "# proj_data-${VERSION_proj_data}: ${DESC_proj_data}" + append_to_config_file "export VERSION_proj_data=${VERSION_proj_data}" +} \ No newline at end of file diff --git a/qgis_deps/recipes/python/recipe.sh b/qgis_deps/recipes/python/recipe.sh index 13453837..4d837549 100644 --- a/qgis_deps/recipes/python/recipe.sh +++ b/qgis_deps/recipes/python/recipe.sh @@ -3,7 +3,7 @@ DESC_python="Interpreted, interactive, object-oriented programming language" # version of your package (set in config.conf) -VERSION_minor_python=7 +VERSION_minor_python=5 VERSION_python=${VERSION_major_python}.${VERSION_minor_python} LINK_python=libpython${VERSION_major_python}.dylib @@ -14,7 +14,7 @@ DEPS_python=(openssl xz libffi zlib libzip sqlite expat unixodbc bz2 gettext lib URL_python=https://www.python.org/ftp/python/${VERSION_python}/Python-${VERSION_python}.tar.xz # md5 of the package -MD5_python=60fe018fffc7f33818e6c340d29e2db9 +MD5_python=71f7ada6bec9cdbf4538adc326120cfd # default build path BUILD_python=$BUILD_PATH/python/$(get_directory $URL_python) @@ -24,18 +24,28 @@ RECIPE_python=$RECIPES_PATH/python # requirements REQUIREMENTS_python=( - setuptools==https://files.pythonhosted.org/packages/df/ed/bea598a87a8f7e21ac5bbf464102077c7102557c07db9ff4e207bd9f7806/setuptools-46.0.0.zip==74de3ab356d1246d251977e16a44ef1e - pip==https://files.pythonhosted.org/packages/8e/76/66066b7bc71817238924c7e4b448abdb17eb0c92d645769c223f9ace478f/pip-20.0.2.tar.gz==7d42ba49b809604f0df3d55df1c3fd86 - wheel==https://files.pythonhosted.org/packages/75/28/521c6dc7fef23a68368efefdcd682f5b3d1d58c2b90b06dc1d0b805b51ae/wheel-0.34.2.tar.gz==ce2a27f99c130a927237b5da1ff5ceaf + setuptools==https://files.pythonhosted.org/packages/9a/74/de4d8c69466b6413b1616048b39f8b73d65f98c15f6202b68ccfc9550f1f/setuptools-58.0.4.tar.gz==17245af34e1a7d54976bca8c1bf092b7 + pip==https://files.pythonhosted.org/packages/52/e1/06c018197d8151383f66ebf6979d951995cf495629fc54149491f5d157d0/pip-21.2.4.tar.gz==efbdb4201a5e6383fb4d12e26f78f355 + wheel==https://files.pythonhosted.org/packages/4e/be/8139f127b4db2f79c8b117c80af56a3078cc4824b5b94250c7f81a70e03b/wheel-0.37.0.tar.gz==79f55b898e6f274f5586bbde39f6fe8e ) -install_default_packages() { +download_default_packages() { for i in ${REQUIREMENTS_python[*]}; do arr=(${i//==/ }) NAME=${arr[0]} URL=${arr[1]} MD5=${arr[2]} + info "Downloading $NAME" download_file $NAME $URL $MD5 + done +} + +install_default_packages() { + for i in ${REQUIREMENTS_python[*]}; do + arr=(${i//==/ }) + NAME=${arr[0]} + URL=${arr[1]} + MD5=${arr[2]} info "Installing $NAME" @@ -43,15 +53,9 @@ install_default_packages() { push_env # when building extensions in setup.py it - # dlopen some libraries (e.g. _ssl -> libcrypto.dylib) + # dlopen some libraries (e.g. _ssl -> libcrypto.dylib, _ffi_call -> _ffi_call) export DYLD_LIBRARY_PATH=$STAGE_PATH/lib - if [ "X$NAME" == "Xsetuptools" ]; then - try $PYTHON bootstrap.py - fi - - echo $(pwd) - try $PYTHON \ -s setup.py \ --no-user-cfg install \ @@ -110,21 +114,23 @@ function install_python() { export CFLAGS="$CFLAGS -I$STAGE_PATH/unixodbc/include" export LDFLAGS="$LDFLAGS -L$STAGE_PATH/unixodbc/lib" export CXXFLAGS="${CFLAGS}" + # pkg-config removes -I flags for paths in CPATH, which confuses python. + export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 + # --enable-optimizations \ try ${CONFIGURE} \ --enable-ipv6 \ --datarootdir=$STAGE_PATH/share \ --datadir=$STAGE_PATH/share \ --without-gcc \ --with-openssl=$STAGE_PATH \ - --enable-optimizations \ --enable-shared \ --with-system-expat \ --with-system-ffi \ + --with-computed-gotos \ --with-ensurepip=no \ --with-ssl-default-suites=openssl \ - --enable-loadable-sqlite-extensions \ - --with-system-ffi + --enable-loadable-sqlite-extensions check_file_configuration config.status @@ -136,6 +142,7 @@ function install_python() { # function called to build the source code function build_python() { + download_default_packages install_python install_default_packages } diff --git a/qgis_deps/recipes/python_sip/recipe.sh b/qgis_deps/recipes/python_sip/recipe.sh index 8eeead2c..a8ddf78d 100644 --- a/qgis_deps/recipes/python_sip/recipe.sh +++ b/qgis_deps/recipes/python_sip/recipe.sh @@ -5,16 +5,16 @@ DESC_python_sip="SIP bindings package for python" # version of your package # we need SIP 4.x and the version is not longer updated in pip # so we need to compile directly -VERSION_python_sip=4.19.21 +VERSION_python_sip=4.19.25 # dependencies of this recipe DEPS_python_sip=(python qtwebkit qscintilla qtwebkit) # url of the package -URL_python_sip=https://www.riverbankcomputing.com/hg/sip/archive/a2a4d8ba9178.tar.bz2 +URL_python_sip=https://www.riverbankcomputing.com/static/Downloads/sip/${VERSION_python_sip}/sip-${VERSION_python_sip}.tar.gz # md5 of the package -MD5_python_sip=68231ac70fccf4dff4b09e8bc01d9f9a +MD5_python_sip=1891a7b71c72d83951d5851ae10b2f0c # default build path BUILD_python_sip=$BUILD_PATH/python_sip/sip-$(get_directory $URL_python_sip) diff --git a/qgis_deps/recipes/qgis_deps/recipe.sh b/qgis_deps/recipes/qgis_deps/recipe.sh index 5e837755..9cfeead1 100644 --- a/qgis_deps/recipes/qgis_deps/recipe.sh +++ b/qgis_deps/recipes/qgis_deps/recipe.sh @@ -24,6 +24,7 @@ DEPS_qgis_deps=( netcdf postgres protobuf + proj_data python python_packages python_matplotlib diff --git a/qgis_deps/recipes/rttopo/recipe.sh b/qgis_deps/recipes/rttopo/recipe.sh new file mode 100644 index 00000000..0d8515b0 --- /dev/null +++ b/qgis_deps/recipes/rttopo/recipe.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +DESC_rttopo="RT Topology Library" + +# version of your package +VERSION_rttopo=1.1.0 +LINK_rttopo=librttopo.1.dylib + +# dependencies of this recipe +DEPS_rttopo=(geos) + +# url of the package +URL_rttopo=https://gitlab.com/rttopo/rttopo/-/archive/librttopo-$VERSION_rttopo/rttopo-librttopo-$VERSION_rttopo.tar.gz + +# md5 of the package +MD5_rttopo=3c92498ce25b7f086cc3cd0d8e7bafdd + +# default build path +BUILD_rttopo=$BUILD_PATH/rttopo/$(get_directory $URL_rttopo) + +# default recipe path +RECIPE_rttopo=$RECIPES_PATH/rttopo + +# function called for preparing source code if needed +# (you can apply patch etc here.) +function prebuild_rttopo() { + cd $BUILD_rttopo + + # check marker + if [ -f .patched ]; then + return + fi + + + + touch .patched +} + +function shouldbuild_rttopo() { + # If lib is newer than the sourcecode skip build + if [ ${STAGE_PATH}/lib/$LINK_rttopo -nt $BUILD_rttopo/.patched ]; then + DO_BUILD=0 + fi +} + +# function called to build the source code +function build_rttopo() { + try rsync -a $BUILD_rttopo/ $BUILD_PATH/rttopo/build-$ARCH/ + try cd $BUILD_PATH/rttopo/build-$ARCH + push_env + + try ./autogen.sh + patch_configure_file configure + + try ${CONFIGURE} \ + --enable-geocallbacks \ + --disable-dependency-tracking + + check_file_configuration config.status + try $MAKESMP + try $MAKESMP install + + pop_env +} + +# function called after all the compile have been done +function postbuild_rttopo() { + verify_binary lib/$LINK_rttopo +} + +# function to append information to config file +function add_config_info_rttopo() { + append_to_config_file "# rttopo-${VERSION_rttopo}: ${DESC_rttopo}" + append_to_config_file "export VERSION_rttopo=${VERSION_rttopo}" + append_to_config_file "export LINK_rttopo=${LINK_rttopo}" +} \ No newline at end of file diff --git a/qgis_deps/recipes/spatialite/recipe.sh b/qgis_deps/recipes/spatialite/recipe.sh index 230151b1..cb330290 100644 --- a/qgis_deps/recipes/spatialite/recipe.sh +++ b/qgis_deps/recipes/spatialite/recipe.sh @@ -3,17 +3,17 @@ DESC_spatialite="SpatiaLite database" # version of your package -VERSION_spatialite=4.3.0a +VERSION_spatialite=5.0.1 LINK_spatialite=libspatialite.7.dylib # dependencies of this recipe -DEPS_spatialite=(proj geos freexl libxml2) +DEPS_spatialite=(proj geos freexl libxml2 rttopo minizip) # url of the package -URL_spatialite=https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${VERSION_spatialite}.tar.gz +URL_spatialite=https://www.gaia-gis.it/gaia-sins/libspatialite-${VERSION_spatialite}.tar.gz # md5 of the package -MD5_spatialite=6b380b332c00da6f76f432b10a1a338c +MD5_spatialite=5f4a961afbb95dcdc715b5d7f8590573 # default build path BUILD_spatialite=$BUILD_PATH/spatialite/$(get_directory $URL_spatialite) @@ -49,11 +49,7 @@ function build_spatialite() { try cd $BUILD_PATH/spatialite/build-$ARCH push_env - # Use Proj 6.0.0 compatibility headers. - # Remove in libspatialite 5.0.0 - CFLAGS="$CFLAGS -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" \ try ${CONFIGURE} \ - --disable-debug \ --enable-geocallbacks \ --disable-dependency-tracking diff --git a/qgis_deps/recipes/sqlite/recipe.sh b/qgis_deps/recipes/sqlite/recipe.sh index 7565c0d3..5eb92dce 100644 --- a/qgis_deps/recipes/sqlite/recipe.sh +++ b/qgis_deps/recipes/sqlite/recipe.sh @@ -3,17 +3,21 @@ DESC_sqlite="Portable Foreign Function Interface library" # version of your package -VERSION_sqlite=3.31.1 +VERSION_sqlite_MAJOR=3 +VERSION_sqlite_MINOR=35 +VERSION_sqlite_PATCH=2 +VERSION_sqlite=${VERSION_sqlite_MAJOR}.${VERSION_sqlite_MINOR}.${VERSION_sqlite_PATCH} LINK_sqlite=libsqlite3.0.dylib # dependencies of this recipe DEPS_sqlite=() # url of the package -URL_sqlite=https://sqlite.org/2020/sqlite-autoconf-3310100.tar.gz +URL_sqlite_BASE=$(printf "%d%02d%02d00" $VERSION_sqlite_MAJOR $VERSION_sqlite_MINOR $VERSION_sqlite_PATCH) +URL_sqlite=https://sqlite.org/2021/sqlite-autoconf-${URL_sqlite_BASE}.tar.gz # md5 of the package -MD5_sqlite=2d0a553534c521504e3ac3ad3b90f125 +MD5_sqlite=454e0899d99a7b28825db3d807526774 # default build path BUILD_sqlite=$BUILD_PATH/sqlite/$(get_directory $URL_sqlite) diff --git a/qgis_deps/recipes/webp/recipe.sh b/qgis_deps/recipes/webp/recipe.sh index 95b44bd6..baeaa566 100644 --- a/qgis_deps/recipes/webp/recipe.sh +++ b/qgis_deps/recipes/webp/recipe.sh @@ -9,7 +9,7 @@ LINK_libwebp=libwebp.7.dylib LINK_libwebpdemux=libwebpdemux.2.dylib # dependencies of this recipe -DEPS_webp=() +DEPS_webp=(png) # url of the package URL_webp=https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${VERSION_webp}.tar.gz diff --git a/qgis_deps/upload_to_qgis2.bash b/qgis_deps/upload_to_qgis2.bash index d555e4e0..d84ab276 100755 --- a/qgis_deps/upload_to_qgis2.bash +++ b/qgis_deps/upload_to_qgis2.bash @@ -20,8 +20,8 @@ shift source $CONFIG_FILE QT_PACKAGE=$ROOT_OUT_PATH/qt-${VERSION_qt}.tar.gz -QGIS_DEPS_PACKAGE=$ROOT_OUT_PATH/qgis-deps-${RELEASE_VERSION}.tar.gz -INSTALL_SCRIPT=$ROOT_OUT_PATH/install_qgis_deps-${RELEASE_VERSION}.bash +QGIS_DEPS_PACKAGE=$ROOT_OUT_PATH/qgis-deps-${QGIS_DEPS_SDK_VERSION}.tar.gz +INSTALL_SCRIPT=$ROOT_OUT_PATH/install_qgis_deps-${QGIS_DEPS_SDK_VERSION}.bash if [ ! -f $QT_PACKAGE ] || [ ! -f $QGIS_DEPS_PACKAGE ] || [ ! -f $INSTALL_SCRIPT ] ; then echo "Missing archives to upload, maybe you forgot to run ./create_package.bash?" diff --git a/scripts/deps.bash b/scripts/deps.bash index cf9bfc08..66b856f9 100755 --- a/scripts/deps.bash +++ b/scripts/deps.bash @@ -26,6 +26,7 @@ echo "QGIS-DEPS $QGIS_DEPS_SDK_VERSION" DEPS=$(grep "VERSION" "${QGIS_DEPS_STAGE_PATH}/qgis-deps.config") DEPS="${DEPS//export VERSION_/}" DEPS="${DEPS//export RELEASE_VERSION_/}" +DEPS="${DEPS//export QGIS_DEPS_SDK_VERSION_/}" DEPS="${DEPS//python_packages_pre_/python: }" DEPS="${DEPS//python_packages_post_/python: }" DEPS="${DEPS//python_/python: }" diff --git a/scripts/fetch_proj-datumgrid.bash b/scripts/fetch_proj-datumgrid.bash deleted file mode 100755 index 4fe56c62..00000000 --- a/scripts/fetch_proj-datumgrid.bash +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# 2019 Peter Petrik (zilolv at gmail dot com) -# GNU General Public License 2 any later version - -PWD=`pwd` -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" - -WORLD_VER="world-1.0" -EUROPE_VER="europe-1.6" -OCEANIA_VER="oceania-1.2" -NORTH_AMERICA_VER="north-america-1.4" -MAIN_VER="1.8" - -WORLD="https://github.com/OSGeo/proj-datumgrid/releases/download/$WORLD_VER/proj-datumgrid-$WORLD_VER.tar.gz" -EUROPE="https://github.com/OSGeo/proj-datumgrid/releases/download/$EUROPE_VER/proj-datumgrid-$EUROPE_VER.tar.gz" -OCEANIA="https://github.com/OSGeo/proj-datumgrid/releases/download/$OCEANIA_VER/proj-datumgrid-$OCEANIA_VER.tar.gz" -NORTH_AMERICA="https://github.com/OSGeo/proj-datumgrid/releases/download/$NORTH_AMERICA_VER/proj-datumgrid-$NORTH_AMERICA_VER.tar.gz" -MAIN="https://github.com/OSGeo/proj-datumgrid/releases/download/$MAIN_VER/proj-datumgrid-$MAIN_VER.tar.gz" - -if (( $# == 1 )); then - echo "- proj-datumgrid-$WORLD_VER" - echo "- proj-datumgrid-$EUROPE_VER" - echo "- proj-datumgrid-$OCEANIA_VER" - echo "- proj-datumgrid-$NORTH_AMERICA_VER" - echo "- proj-datumgrid-$MAIN_VER" - exit 0 -fi - -BUILD_DIR=$DIR/../../proj-datumgrid - -rm -rf $BUILD_DIR - -echo "Fetching Proj-datumgrid packages to $BUILD_DIR" -mkdir -p $BUILD_DIR -mkdir -p $BUILD_DIR/downloads -cd $BUILD_DIR/downloads -wget -O world.tar.gz $WORLD -wget -O europe.tar.gz $EUROPE -wget -O oceania.tar.gz $OCEANIA -wget -O north_america.tar.gz $NORTH_AMERICA -wget -O main.tar.gz $MAIN - -echo "Extracting" -tar -xvzf world.tar.gz -tar -xvzf europe.tar.gz -tar -xvzf oceania.tar.gz -tar -xvzf north_america.tar.gz -tar -xvzf main.tar.gz - -echo "Creating proj share folder" -mkdir -p $BUILD_DIR/grids -rsync -av --exclude='*.tar.gz' --exclude='README*' $BUILD_DIR/downloads/ $BUILD_DIR/grids/ From 8c8ae0cd36611dbea8bb4c5d0aff2a451b540acc Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Tue, 14 Sep 2021 13:04:10 +0200 Subject: [PATCH 2/7] update to 0.9.0 --- qgis_deps/distribute.sh | 2 +- qgis_deps/recipes/brotli/recipe.sh | 84 +++++++++++++++++++ qgis_deps/recipes/exiv2/recipe.sh | 2 +- qgis_deps/recipes/freetype/recipe.sh | 4 +- qgis_deps/recipes/gdal/recipe.sh | 4 +- qgis_deps/recipes/grass/recipe.sh | 8 +- qgis_deps/recipes/hdf5/recipe.sh | 20 +++-- qgis_deps/recipes/libgeotiff/recipe.sh | 4 +- qgis_deps/recipes/pdal/recipe.sh | 10 +-- qgis_deps/recipes/proj_data/recipe.sh | 28 +++++-- qgis_deps/recipes/python_packages/recipe.sh | 6 +- qgis_deps/recipes/python_pandas/recipe.sh | 6 +- qgis_deps/recipes/python_pyproj/recipe.sh | 6 +- qgis_deps/recipes/python_pyqt5/recipe.sh | 6 +- qgis_deps/recipes/python_pysal/recipe.sh | 4 +- qgis_deps/recipes/python_qscintilla/recipe.sh | 4 +- qgis_deps/recipes/python_rtree/recipe.sh | 6 +- qgis_deps/recipes/python_sip/recipe.sh | 4 +- qgis_deps/recipes/qca/recipe.sh | 4 +- qgis_deps/recipes/qscintilla/recipe.sh | 4 +- qgis_deps/recipes/saga/recipe.sh | 6 +- qgis_deps/recipes/wxmac/recipe.sh | 10 +-- 22 files changed, 173 insertions(+), 59 deletions(-) create mode 100644 qgis_deps/recipes/brotli/recipe.sh diff --git a/qgis_deps/distribute.sh b/qgis_deps/distribute.sh index 281b0564..f9beba42 100755 --- a/qgis_deps/distribute.sh +++ b/qgis_deps/distribute.sh @@ -288,7 +288,7 @@ function push_env() { ################### # PYTHON export PYTHON="$STAGE_PATH/bin/python3" - export PIP="$STAGE_PATH/bin/pip3" + export PIP="$STAGE_PATH/bin/pip3 --trusted-host pypi.org" export PIP_NO_BINARY="$PIP install --no-dependencies --no-binary all" export PIP_NO_BINARY="$PIP_NO_BINARY --global-option=build_ext" diff --git a/qgis_deps/recipes/brotli/recipe.sh b/qgis_deps/recipes/brotli/recipe.sh new file mode 100644 index 00000000..de581393 --- /dev/null +++ b/qgis_deps/recipes/brotli/recipe.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +DESC_brotli="Generic-purpose lossless compression algorithm by Google" + +# version of your package +VERSION_brotli_major=1 +VERSION_brotli=${VERSION_brotli_major}.0.9 + +LINK_libbrotlicommon=libbrotlicommon.${VERSION_brotli_major}.dylib +LINK_libbrotlidec=libbrotlidec.${VERSION_brotli_major}.dylib + +# dependencies of this recipe +DEPS_brotli=() + +# url of the package +URL_brotli=https://github.com/google/brotli/archive/v${VERSION_brotli}.tar.gz + +# md5 of the package +MD5_brotli=c2274f0c7af8470ad514637c35bcee7d + +# default build path +BUILD_brotli=$BUILD_PATH/brotli/$(get_directory $URL_brotli) + +# default recipe path +RECIPE_brotli=$RECIPES_PATH/brotli + +# function called for preparing source code if needed +# (you can apply patch etc here.) +function prebuild_brotli() { + cd $BUILD_brotli + + # check marker + if [ -f .patched ]; then + return + fi + + touch .patched +} + +function shouldbuild_brotli() { + if [ ${STAGE_PATH}/lib/${LINK_libbrotlidec} -nt $BUILD_brotli/.patched ]; then + DO_BUILD=0 + fi +} + +# function called to build the source code +function build_brotli() { + try mkdir -p $BUILD_PATH/brotli/build-$ARCH + try cd $BUILD_PATH/brotli/build-$ARCH + + push_env + + try $CMAKE \ + $BUILD_brotli . + + check_file_configuration CMakeCache.txt + + try $NINJA + try $NINJA install + + try install_name_tool -id $STAGE_PATH/lib/$LINK_libbrotlicommon $STAGE_PATH/lib/$LINK_libbrotlicommon + try install_name_tool -change $BUILD_PATH/brotli/build-$ARCH/$LINK_libbrotlidec $STAGE_PATH/lib/$LINK_libbrotlidec $STAGE_PATH/lib/$LINK_libbrotlicommon + try install_name_tool -change $BUILD_PATH/brotli/build-$ARCH/$LINK_libbrotlicommon $STAGE_PATH/lib/$LINK_libbrotlicommon $STAGE_PATH/lib/$LINK_libbrotlicommon + + try install_name_tool -id $STAGE_PATH/lib/$LINK_libbrotlidec $STAGE_PATH/lib/$LINK_libbrotlidec + try install_name_tool -change $BUILD_PATH/brotli/build-$ARCH/$LINK_libbrotlidec $STAGE_PATH/lib/$LINK_libbrotlidec $STAGE_PATH/lib/$LINK_libbrotlidec + try install_name_tool -change $BUILD_PATH/brotli/build-$ARCH/$LINK_libbrotlicommon $STAGE_PATH/lib/$LINK_libbrotlicommon $STAGE_PATH/lib/$LINK_libbrotlidec + + pop_env +} + +# function called after all the compile have been done +function postbuild_brotli() { + verify_binary lib/$LINK_libbrotlicommon + verify_binary lib/$LINK_libbrotlidec +} + +# function to append information to config file +function add_config_info_brotli() { + append_to_config_file "# brotli-${VERSION_brotli}: ${DESC_brotli}" + append_to_config_file "export VERSION_brotli=${VERSION_brotli}" + append_to_config_file "export LINK_libbrotlicommon=${LINK_libbrotlicommon}" + append_to_config_file "export LINK_libbrotlidec=${LINK_libbrotlidec}" +} \ No newline at end of file diff --git a/qgis_deps/recipes/exiv2/recipe.sh b/qgis_deps/recipes/exiv2/recipe.sh index 94ebfa4d..0950387b 100644 --- a/qgis_deps/recipes/exiv2/recipe.sh +++ b/qgis_deps/recipes/exiv2/recipe.sh @@ -13,7 +13,7 @@ DEPS_exiv2=() URL_exiv2=https://www.exiv2.org/builds/exiv2-${VERSION_exiv2}-Source.tar.gz # md5 of the package -MD5_exiv2=8c39c39dc8141bb158e8e9d663bcbf21 +MD5_exiv2=68a59595e8617284b2e1eee528ae1f77 # default build path BUILD_exiv2=$BUILD_PATH/exiv2/$(get_directory $URL_exiv2) diff --git a/qgis_deps/recipes/freetype/recipe.sh b/qgis_deps/recipes/freetype/recipe.sh index 42388ed3..c6f533ae 100644 --- a/qgis_deps/recipes/freetype/recipe.sh +++ b/qgis_deps/recipes/freetype/recipe.sh @@ -7,13 +7,13 @@ VERSION_freetype=2.10.2 LINK_freetype=libfreetype.6.dylib # dependencies of this recipe -DEPS_freetype=(png) +DEPS_freetype=(png brotli bz2 zlib) # url of the package URL_freetype=https://download.savannah.gnu.org/releases/freetype/freetype-$VERSION_freetype.tar.gz # md5 of the package -MD5_freetype=58d56c9ad775326d6c9c5417c462a527 +MD5_freetype=b1cb620e4c875cd4d1bfa04945400945 # default build path BUILD_freetype=$BUILD_PATH/freetype/$(get_directory $URL_freetype) diff --git a/qgis_deps/recipes/gdal/recipe.sh b/qgis_deps/recipes/gdal/recipe.sh index 7d93eab6..531acd1c 100644 --- a/qgis_deps/recipes/gdal/recipe.sh +++ b/qgis_deps/recipes/gdal/recipe.sh @@ -9,7 +9,7 @@ VERSION_gdal=3.3.2 source $RECIPES_PATH/netcdf/recipe.sh source $RECIPES_PATH/xerces/recipe.sh -LINK_libgdal_version=28 +LINK_libgdal_version=29 LINK_gdal=libgdal.$LINK_libgdal_version.dylib # dependencies of this recipe @@ -42,7 +42,7 @@ DEPS_gdal=( URL_gdal=https://github.com/OSGeo/gdal/releases/download/v${VERSION_gdal}/gdal-${VERSION_gdal}.tar.gz # md5 of the package -MD5_gdal=86f7975190981820bbe0544870bdd164 +MD5_gdal=fd82c580ec9e16a0a46cd176243a8a56 # default build path BUILD_gdal=$BUILD_PATH/gdal/$(get_directory $URL_gdal) diff --git a/qgis_deps/recipes/grass/recipe.sh b/qgis_deps/recipes/grass/recipe.sh index 2fa327d6..cc1e323b 100644 --- a/qgis_deps/recipes/grass/recipe.sh +++ b/qgis_deps/recipes/grass/recipe.sh @@ -5,7 +5,8 @@ DESC_grass="Geographic Resources Analysis Support System" # version of your package VERSION_grass_major=7 VERSION_grass_minor=8 -VERSION_grass=${VERSION_grass_major}.${VERSION_grass_minor}.5 +VERSION_grass=${VERSION_grass_major}.${VERSION_grass_minor}.6 +VERSION_grass_build=${VERSION_grass}RC2 # dependencies of this recipe DEPS_grass=(python boost bison flex libtiff png sqlite geos zlib wxmac zstd zlib xz netcdf proj gdal libgeotiff python_pyqt5 mysql postgres openssl ) @@ -13,10 +14,10 @@ DEPS_grass=(python boost bison flex libtiff png sqlite geos zlib wxmac zstd zli LINK_libgrass_version=26 # url of the package -URL_grass=https://github.com/OSGeo/grass/archive/${VERSION_grass}.tar.gz +URL_grass=https://github.com/OSGeo/grass/archive/${VERSION_grass_build}.tar.gz # md5 of the package -MD5_grass=91f4830a5164cea703384814cd89cdf9 +MD5_grass=915440060be87c3fa9bd22212aaeb55d # default build path BUILD_grass=$BUILD_PATH/grass/$(get_directory $URL_grass) @@ -164,4 +165,5 @@ function add_config_info_grass() { append_to_config_file "export VERSION_grass_major=${VERSION_grass_major}" append_to_config_file "export VERSION_grass_minor=${VERSION_grass_minor}" append_to_config_file "export VERSION_grass=${VERSION_grass}" + append_to_config_file "export VERSION_grass_build=${VERSION_grass_build}" } \ No newline at end of file diff --git a/qgis_deps/recipes/hdf5/recipe.sh b/qgis_deps/recipes/hdf5/recipe.sh index 86a66f3e..2a358fa9 100644 --- a/qgis_deps/recipes/hdf5/recipe.sh +++ b/qgis_deps/recipes/hdf5/recipe.sh @@ -6,8 +6,11 @@ DESC_hdf5="File format designed to store large amounts of data" VERSION_hdf5_major=1.10 VERSION_hdf5=${VERSION_hdf5_major}.7 -LINK_libhdf5=libhdf5.100.dylib +LINK_libhdf5=libhdf5.103.dylib +LINK_libhdf5_cpp=libhdf5_cpp.103.dylib LINK_libhdf5_hl=libhdf5_hl.100.dylib +LINK_libhdf5_hl_cpp=libhdf5_hl_cpp.100.dylib + # dependencies of this recipe DEPS_hdf5=() @@ -16,7 +19,7 @@ DEPS_hdf5=() URL_hdf5=https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${VERSION_hdf5_major}/hdf5-${VERSION_hdf5}/src/hdf5-${VERSION_hdf5}.tar.bz2 # md5 of the package -MD5_hdf5=355243bda5df386aea25f079d550947b +MD5_hdf5=dff8a882b61d0b59296dccc3ad13dc29 # default build path BUILD_hdf5=$BUILD_PATH/hdf5/$(get_directory $URL_hdf5) @@ -72,10 +75,15 @@ function build_hdf5() { function postbuild_hdf5() { verify_binary lib/$LINK_libhdf5 verify_binary lib/$LINK_libhdf5_hl - verify_binary lib/"libhdf5_cpp.dylib" - verify_binary lib/"libhdf5_hl_cpp.dylib" - + verify_binary lib/$LINK_libhdf5_cpp + verify_binary lib/$LINK_libhdf5_hl_cpp verify_binary bin/"h5copy" + verify_binary bin/h5perf_serial + verify_binary bin/h5repack + verify_binary bin/h5jam + verify_binary bin/h5unjam + verify_binary bin/h5format_convert + verify_binary bin/h5stat } # function to append information to config file @@ -83,5 +91,7 @@ function add_config_info_hdf5() { append_to_config_file "# hdf5-${VERSION_hdf5}: ${DESC_hdf5}" append_to_config_file "export VERSION_hdf5=${VERSION_hdf5}" append_to_config_file "export LINK_libhdf5=${LINK_libhdf5}" + append_to_config_file "export LINK_libhdf5_cpp=${LINK_libhdf5_cpp}" append_to_config_file "export LINK_libhdf5_hl=${LINK_libhdf5_hl}" + append_to_config_file "export LINK_libhdf5_hl_cpp=${LINK_libhdf5_hl_cpp}" } diff --git a/qgis_deps/recipes/libgeotiff/recipe.sh b/qgis_deps/recipes/libgeotiff/recipe.sh index 08a4bef1..cace492e 100644 --- a/qgis_deps/recipes/libgeotiff/recipe.sh +++ b/qgis_deps/recipes/libgeotiff/recipe.sh @@ -3,7 +3,7 @@ DESC_libgeotiff="Library and tools for dealing with GeoTIFF" # version of your package -VERSION_libgeotiff=1.5.1 +VERSION_libgeotiff=1.7.0 # dependencies of this recipe DEPS_libgeotiff=(proj libtiff) @@ -12,7 +12,7 @@ DEPS_libgeotiff=(proj libtiff) URL_libgeotiff=https://github.com/OSGeo/libgeotiff/releases/download/${VERSION_libgeotiff}/libgeotiff-${VERSION_libgeotiff}.tar.gz # md5 of the package -MD5_libgeotiff=6d0fa650c206791bc7d5e60ef625ea77 +MD5_libgeotiff=e57b69098d70a008ddfc65b675cbfcf4 # default build path BUILD_libgeotiff=$BUILD_PATH/libgeotiff/$(get_directory $URL_libgeotiff) diff --git a/qgis_deps/recipes/pdal/recipe.sh b/qgis_deps/recipes/pdal/recipe.sh index d871a2c5..78f3e238 100644 --- a/qgis_deps/recipes/pdal/recipe.sh +++ b/qgis_deps/recipes/pdal/recipe.sh @@ -3,11 +3,11 @@ DESC_pdal="Point data abstraction library" # version of your package -VERSION_pdal=2.2.0 +VERSION_pdal=2.3.0 -LINK_libpdalcpp=libpdalcpp.12.dylib -LINK_libpdal_plugin_kernel_fauxplugin=libpdal_plugin_kernel_fauxplugin.12.dylib -LINK_libpdal_util=libpdal_util.12.dylib +LINK_libpdalcpp=libpdalcpp.13.dylib +LINK_libpdal_plugin_kernel_fauxplugin=libpdal_plugin_kernel_fauxplugin.13.dylib +LINK_libpdal_util=libpdal_util.13.dylib # dependencies of this recipe DEPS_pdal=( @@ -26,7 +26,7 @@ DEPS_pdal=( URL_pdal=https://github.com/PDAL/PDAL/releases/download/${VERSION_pdal}/PDAL-${VERSION_pdal}-src.tar.gz # md5 of the package -MD5_pdal=52d84c5b64b7cd30770a225e3d13fce3 +MD5_pdal=1c899546211df92029df3ed884d1d560 # default build path BUILD_pdal=$BUILD_PATH/pdal/$(get_directory $URL_pdal) diff --git a/qgis_deps/recipes/proj_data/recipe.sh b/qgis_deps/recipes/proj_data/recipe.sh index 9597ed8d..55328ea3 100644 --- a/qgis_deps/recipes/proj_data/recipe.sh +++ b/qgis_deps/recipes/proj_data/recipe.sh @@ -3,16 +3,17 @@ DESC_proj_data="Cartographic proj library data" # version of your package -VERSION_proj_data=1.7 +VERSION_proj_data_major=1.7 +VERSION_proj_data=${VERSION_proj_data_major}.0 # dependencies of this recipe DEPS_proj_data=(proj) # url of the package -URL_proj_data=http://ftp.osuosl.org/pub/osgeo/download/proj/proj-data-$VERSION_proj_data.tar.gz +URL_proj_data=https://github.com/OSGeo/PROJ-data/archive/refs/tags/${VERSION_proj_data}.zip # md5 of the package -MD5_proj_data=2ca6366e12cd9d34d73b4602049ee480 +MD5_proj_data=6bef1715b34a3048240a0536fc85a10c # default build path BUILD_proj_data=$BUILD_PATH/proj_data/$(get_directory $URL_proj_data) @@ -34,15 +35,30 @@ function prebuild_proj_data() { } function shouldbuild_proj_data() { - if [ ${STAGE_PATH}/lib/${LINK_libproj_data} -nt $BUILD_proj_data/.patched ]; then + if [ ${STAGE_PATH}/share/proj/README.DATA -nt $BUILD_proj_data/.patched ]; then DO_BUILD=0 fi } # function called to build the source code function build_proj_data() { - mkdir -p ${STAGE_PATH}/share/proj - try cp -R $BUILD_proj_data/* ${STAGE_PATH}/share/proj/ + try mkdir -p $BUILD_PATH/proj_data/build-$ARCH + try cd $BUILD_PATH/proj_data/build-$ARCH + + push_env + + try $CMAKE $BUILD_proj_data . + + check_file_configuration CMakeCache.txt + + try $NINJA dist + + mkdir -p install + cd install + try tar -zxf ../proj-data-${VERSION_proj_data_major}.tar.gz + try cp -R * $STAGE_PATH/share/proj/ + + pop_env } # function called after all the compile have been done diff --git a/qgis_deps/recipes/python_packages/recipe.sh b/qgis_deps/recipes/python_packages/recipe.sh index da493958..1e0f8722 100644 --- a/qgis_deps/recipes/python_packages/recipe.sh +++ b/qgis_deps/recipes/python_packages/recipe.sh @@ -98,12 +98,13 @@ REQUIREMENTS_python_packages=( toml==0.10.1 pytest==6.0.1 pytest-cov==2.10.0 - beautifulsoup4==4.9.1 + beautifulsoup4==4.10.0 Sphinx==2.4.3 quantecon==0.4.8 tqdm==4.48.2 seaborn==0.10.1 click==7.1.2 + click-plugins==1.1.1 cligj==0.5.0 munch==2.5.0 appdirs==1.4.4 @@ -118,6 +119,8 @@ REQUIREMENTS_python_packages=( clipboard==0.0.4 pyperclip==1.8.1 pyvenv==0.2.2 + snuggs==1.4.7 + affine==2.3.0 ) IMPORTS_python_packages=( @@ -125,6 +128,7 @@ IMPORTS_python_packages=( requests dateutil yaml + affine ) # function called for preparing source code if needed diff --git a/qgis_deps/recipes/python_pandas/recipe.sh b/qgis_deps/recipes/python_pandas/recipe.sh index f33446e2..0a0cf397 100644 --- a/qgis_deps/recipes/python_pandas/recipe.sh +++ b/qgis_deps/recipes/python_pandas/recipe.sh @@ -3,16 +3,16 @@ DESC_python_pandas="python pandas" # version of your package -VERSION_python_pandas=1.1.0 +VERSION_python_pandas=1.3.3 # dependencies of this recipe DEPS_python_pandas=(python python_packages python_numpy) # url of the package -URL_python_pandas=https://github.com/pandas-dev/pandas/archive/v${VERSION_python_pandas}.tar.gz +URL_python_pandas=https://github.com/pandas-dev/pandas/archive/refs/tags/v${VERSION_python_pandas}.tar.gz # md5 of the package -MD5_python_pandas=54f460787f2fe8f3ff58b20f07274c62 +MD5_python_pandas=413a3efbd23832d48517b3091ff44800 # default build path BUILD_python_pandas=$BUILD_PATH/python_pandas/$(get_directory $URL_python_pandas) diff --git a/qgis_deps/recipes/python_pyproj/recipe.sh b/qgis_deps/recipes/python_pyproj/recipe.sh index d8102e12..49cae607 100644 --- a/qgis_deps/recipes/python_pyproj/recipe.sh +++ b/qgis_deps/recipes/python_pyproj/recipe.sh @@ -4,17 +4,17 @@ DESC_python_pyproj="Proj binding for python" # version of your package # keep in SYNC with proj receipt -VERSION_python_pyproj=2.6.0 +VERSION_python_pyproj=3.2.0 # dependencies of this recipe # depends on PyQt5 DEPS_python_pyproj=(python openssl libtiff sqlite proj python_packages) # url of the package -URL_python_pyproj=https://github.com/pyproj4/pyproj/archive/v${VERSION_python_pyproj}rel.tar.gz +URL_python_pyproj=https://github.com/pyproj4/pyproj/archive/refs/tags/${VERSION_python_pyproj}.tar.gz # md5 of the package -MD5_python_pyproj=c0b3357bec18b0a3c42e7e538229dd94 +MD5_python_pyproj=dc548c8990e10bc52d012bae5a87030f # default build path BUILD_python_pyproj=$BUILD_PATH/python_pyproj/$(get_directory $URL_python_pyproj) diff --git a/qgis_deps/recipes/python_pyqt5/recipe.sh b/qgis_deps/recipes/python_pyqt5/recipe.sh index d779d79c..d5a82280 100644 --- a/qgis_deps/recipes/python_pyqt5/recipe.sh +++ b/qgis_deps/recipes/python_pyqt5/recipe.sh @@ -3,16 +3,16 @@ DESC_python_pyqt5="PyQt5 package for python" # version of your package -VERSION_python_pyqt5=$VERSION_qt +VERSION_python_pyqt5=5.15.4 # dependencies of this recipe DEPS_python_pyqt5=(python python_sip qtwebkit qscintilla) # url of the package -URL_python_pyqt5=https://files.pythonhosted.org/packages/28/6c/640e3f5c734c296a7193079a86842a789edb7988dca39eab44579088a1d1/PyQt5-${VERSION_python_pyqt5}.tar.gz +URL_python_pyqt5=https://files.pythonhosted.org/packages/8e/a4/d5e4bf99dd50134c88b95e926d7b81aad2473b47fde5e3e4eac2c69a8942/PyQt5-${VERSION_python_pyqt5}.tar.gz # md5 of the package -MD5_python_pyqt5=b94576e9e013210dc5aba061913e4bd4 +MD5_python_pyqt5=8082ab8fd83d2cd6572bc446e08855e0 # default build path BUILD_python_pyqt5=$BUILD_PATH/python_pyqt5/$(get_directory $URL_python_pyqt5) diff --git a/qgis_deps/recipes/python_pysal/recipe.sh b/qgis_deps/recipes/python_pysal/recipe.sh index fe94e42a..4c770387 100644 --- a/qgis_deps/recipes/python_pysal/recipe.sh +++ b/qgis_deps/recipes/python_pysal/recipe.sh @@ -3,8 +3,8 @@ DESC_python_pysal="A library of spatial analysis functions." # version of your package -VERSION_python_pysal=2.2.0 -VERSION_python_libpysal=4.3.0 +VERSION_python_pysal=2.5.0 +VERSION_python_libpysal=4.5.1 # dependencies of this recipe diff --git a/qgis_deps/recipes/python_qscintilla/recipe.sh b/qgis_deps/recipes/python_qscintilla/recipe.sh index d0b00f50..f57bac97 100644 --- a/qgis_deps/recipes/python_qscintilla/recipe.sh +++ b/qgis_deps/recipes/python_qscintilla/recipe.sh @@ -4,7 +4,7 @@ DESC_python_qscintilla="QScintilla package for python" # version of your package # keep in SYNC with qscintilla receipt -VERSION_python_qscintilla=2.11.4 +VERSION_python_qscintilla=2.11.5 # dependencies of this recipe # depends on PyQt5 @@ -14,7 +14,7 @@ DEPS_python_qscintilla=(python qscintilla python_sip python_pyqt5 python_package URL_python_qscintilla=https://www.riverbankcomputing.com/static/Downloads/QScintilla/${VERSION_python_qscintilla}/QScintilla-${VERSION_python_qscintilla}.tar.gz # md5 of the package -MD5_python_qscintilla=d750d9143b0697df2e4662cea3efd20d +MD5_python_qscintilla=c31d77e1fcc218ed3f27458fa80d4dc9 # default build path BUILD_python_qscintilla=$BUILD_PATH/python_qscintilla/$(get_directory $URL_python_qscintilla) diff --git a/qgis_deps/recipes/python_rtree/recipe.sh b/qgis_deps/recipes/python_rtree/recipe.sh index 9cfdb933..15def26d 100644 --- a/qgis_deps/recipes/python_rtree/recipe.sh +++ b/qgis_deps/recipes/python_rtree/recipe.sh @@ -4,7 +4,7 @@ DESC_python_rtree="Python bindings for libspatialindex" # version of your package # keep in SYNC with proj receipt -VERSION_python_rtree=0.9.4 +VERSION_python_rtree=0.9.7 # dependencies of this recipe DEPS_python_rtree=(python python_packages spatialindex) @@ -13,7 +13,7 @@ DEPS_python_rtree=(python python_packages spatialindex) URL_python_rtree=https://github.com/Toblerity/rtree/archive/${VERSION_python_rtree}.tar.gz # md5 of the package -MD5_python_rtree=de495b17c663721261fbcb4144ca5e3d +MD5_python_rtree=eec976e7bd2d8e44ab71cf4c0d7eca9f # default build path BUILD_python_rtree=$BUILD_PATH/python_rtree/$(get_directory $URL_python_rtree) @@ -49,7 +49,7 @@ function build_python_rtree() { DYLD_LIBRARY_PATH=$STAGE_PATH/lib try $PYTHON setup.py install # see https://github.com/qgis/QGIS-Mac-Packager/issues/80 - cd $STAGE_PATH/lib/python${VERSION_major_python}/site-packages/Rtree-${VERSION_python_rtree}-py${VERSION_major_python}.egg/rtree + cd $STAGE_PATH/lib/python${VERSION_major_python}/site-packages/Rtree-${VERSION_python_rtree}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg/rtree if [ -f _core.py ]; then info "python_rtree core.py already patched" else diff --git a/qgis_deps/recipes/python_sip/recipe.sh b/qgis_deps/recipes/python_sip/recipe.sh index a8ddf78d..f85fb7d0 100644 --- a/qgis_deps/recipes/python_sip/recipe.sh +++ b/qgis_deps/recipes/python_sip/recipe.sh @@ -17,7 +17,7 @@ URL_python_sip=https://www.riverbankcomputing.com/static/Downloads/sip/${VERSION MD5_python_sip=1891a7b71c72d83951d5851ae10b2f0c # default build path -BUILD_python_sip=$BUILD_PATH/python_sip/sip-$(get_directory $URL_python_sip) +BUILD_python_sip=$BUILD_PATH/python_sip/$(get_directory $URL_python_sip) # default recipe path RECIPE_python_sip=$RECIPES_PATH/python_sip @@ -49,8 +49,6 @@ function build_python_sip() { push_env - try $PYTHON build.py prepare - try $PYTHON ./configure.py \ --sipdir=$STAGE_PATH/share/sip \ --bindir=$STAGE_PATH/bin \ diff --git a/qgis_deps/recipes/qca/recipe.sh b/qgis_deps/recipes/qca/recipe.sh index 2060b0fd..4d5ae90c 100644 --- a/qgis_deps/recipes/qca/recipe.sh +++ b/qgis_deps/recipes/qca/recipe.sh @@ -3,7 +3,7 @@ DESC_qca="Qt Cryptographic Architecture (QCA)" # version of your package -VERSION_qca=2.3.0 +VERSION_qca=2.3.1 LINK_qca=qca-qt5 # dependencies of this recipe @@ -13,7 +13,7 @@ DEPS_qca=(openssl) URL_qca=https://github.com/KDE/qca/archive/v${VERSION_qca}.tar.gz # md5 of the package -MD5_qca=46bf9aef445129fa101dd68a3596a58f +MD5_qca=96c4769d51140e03087266cf705c2b86 # default build path BUILD_qca=$BUILD_PATH/qca/$(get_directory $URL_qca) diff --git a/qgis_deps/recipes/qscintilla/recipe.sh b/qgis_deps/recipes/qscintilla/recipe.sh index 1c069734..4ca7f9a3 100644 --- a/qgis_deps/recipes/qscintilla/recipe.sh +++ b/qgis_deps/recipes/qscintilla/recipe.sh @@ -4,7 +4,7 @@ DESC_qscintilla="Port to Qt of the Scintilla editing component" # version of your package # keep in SYNC with python_qscintilla receipt -VERSION_qscintilla=2.11.4 +VERSION_qscintilla=2.11.5 # full link version of the library LINK_libqscintilla2_qt5=libqscintilla2_qt5.15.dylib @@ -16,7 +16,7 @@ DEPS_qscintilla=() URL_qscintilla=https://www.riverbankcomputing.com/static/Downloads/QScintilla/${VERSION_qscintilla}/QScintilla-${VERSION_qscintilla}.tar.gz # md5 of the package -MD5_qscintilla=d750d9143b0697df2e4662cea3efd20d +MD5_qscintilla=c31d77e1fcc218ed3f27458fa80d4dc9 # default build path BUILD_qscintilla=$BUILD_PATH/qscintilla/$(get_directory $URL_qscintilla) diff --git a/qgis_deps/recipes/saga/recipe.sh b/qgis_deps/recipes/saga/recipe.sh index 06c13aaa..40db411d 100644 --- a/qgis_deps/recipes/saga/recipe.sh +++ b/qgis_deps/recipes/saga/recipe.sh @@ -3,9 +3,9 @@ DESC_saga="System for Automated Geoscientific Analyses" # version of your package -# see https://github.com/qgis/QGIS/blob/master/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py +# see https://github.com/qgis/QGIS/blob/master/python/plugins/sagaprovider/SagaAlgorithmProvider.py # for supported versions -VERSION_saga=7.3.0 +VERSION_saga=7.8.2 LINK_saga_version=${VERSION_saga} @@ -16,7 +16,7 @@ DEPS_saga=( proj gdal python geos libtiff xz sqlite hdf5 netcdf postgres wxmac ) URL_saga=https://downloads.sourceforge.net/project/saga-gis/SAGA%20-%207/SAGA%20-%20${VERSION_saga}/saga-${VERSION_saga}.tar.gz # md5 of the package -MD5_saga=2383eb43f12da743c5ac52ecc8dfd302 +MD5_saga=895345d820098fb0e1f671d67ce2e798 # default build path BUILD_saga=$BUILD_PATH/saga/$(get_directory $URL_saga) diff --git a/qgis_deps/recipes/wxmac/recipe.sh b/qgis_deps/recipes/wxmac/recipe.sh index a8d1b40d..5f2f19dc 100644 --- a/qgis_deps/recipes/wxmac/recipe.sh +++ b/qgis_deps/recipes/wxmac/recipe.sh @@ -3,9 +3,9 @@ DESC_wxmac="Cross-platform C++ GUI toolkit (wxWidgets for macOS)" # version of your package -VERSION_wxmac_major=3.0 -VERSION_wxmac=${VERSION_wxmac_major}.4 -LINK_wxmac_version=3.0.0.4.0 +VERSION_wxmac_major=3.1 +VERSION_wxmac=${VERSION_wxmac_major}.5 +LINK_wxmac_version=3.1.5.0.0 # dependencies of this recipe DEPS_wxmac=( jpeg png libtiff ) @@ -14,7 +14,7 @@ DEPS_wxmac=( jpeg png libtiff ) URL_wxmac=https://github.com/wxWidgets/wxWidgets/releases/download/v${VERSION_wxmac}/wxWidgets-${VERSION_wxmac}.tar.bz2 # md5 of the package -MD5_wxmac=b0035731777acc5597cea8982da10317 +MD5_wxmac=8b2ac42364a02bb5f3df22e1b1a517e5 # default build path BUILD_wxmac=$BUILD_PATH/wxmac/$(get_directory $URL_wxmac) @@ -60,7 +60,6 @@ function build_wxmac() { --enable-std_string \ --enable-svg \ --enable-unicode \ - --enable-webkit \ --with-expat \ --with-libjpeg \ --with-libpng \ @@ -86,6 +85,7 @@ function postbuild_wxmac() { verify_binary lib/"libwx_baseu_net-${VERSION_wxmac_major}.dylib" verify_binary lib/"libwx_baseu_xml-${VERSION_wxmac_major}.dylib" verify_binary lib/"libwx_osx_cocoau_html-${VERSION_wxmac_major}.dylib" + verify_binary lib/"libwx_osx_cocoau_html-${LINK_wxmac_version}.dylib" } # function to append information to config file From 49fa8ac0a501c5170cdaf8ffe993ac470fdc9417 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 15 Sep 2021 12:30:10 +0200 Subject: [PATCH 3/7] fixing bundle step --- config/dev.conf | 3 + config/ltr.conf | 3 + config/nightly.conf | 3 + config/pr.conf | 3 + qgis_bundle/recipes/brotli/recipe.sh | 45 ++++++++++++ qgis_bundle/recipes/fontconfig/recipe.sh | 3 +- qgis_bundle/recipes/freetype/recipe.sh | 3 +- qgis_bundle/recipes/gdal/recipe.sh | 3 +- qgis_bundle/recipes/proj/recipe.sh | 20 ++++-- qgis_bundle/recipes/python_gdal/recipe.sh | 80 ++++++++++----------- qgis_bundle/recipes/python_pyproj/recipe.sh | 33 ++++++--- qgis_bundle/recipes/python_rtree/recipe.sh | 6 ++ qgis_bundle/recipes/rttopo/recipe.sh | 39 ++++++++++ qgis_bundle/recipes/saga/recipe.sh | 15 +++- qgis_bundle/recipes/spatialite/recipe.sh | 4 +- qgis_bundle/recipes/wxmac/recipe.sh | 2 + qgis_deps/recipes/fontconfig/recipe.sh | 2 +- qgis_deps/recipes/python_all/recipe.sh | 72 +++++++++++++++++++ qgis_deps/recipes/qgis_deps/recipe.sh | 26 +------ 19 files changed, 279 insertions(+), 86 deletions(-) create mode 100644 qgis_bundle/recipes/brotli/recipe.sh create mode 100644 qgis_bundle/recipes/rttopo/recipe.sh create mode 100644 qgis_deps/recipes/python_all/recipe.sh diff --git a/config/dev.conf b/config/dev.conf index a6997a4f..7c52bdd9 100644 --- a/config/dev.conf +++ b/config/dev.conf @@ -16,6 +16,9 @@ export WITH_PDAL="true" export USE_SEM="true" export QGIS_321_PROVIDER_NAMES="true" +export WITH_BROTLI="true" +export WITH_RTTOPO="true" +export OLD_PROJ="false" BASEDIR=/opt/QGIS/qgis-${RELEASE} export QGIS_BUILD_DIR=$BASEDIR/build diff --git a/config/ltr.conf b/config/ltr.conf index ed64c372..9daa26fd 100644 --- a/config/ltr.conf +++ b/config/ltr.conf @@ -16,6 +16,9 @@ export WITH_PDAL="false" export USE_SEM="false" export QGIS_321_PROVIDER_NAMES="false" +export WITH_BROTLI="false" #available from 0.9.0 +export WITH_RTTOPO="false" #available from 0.9.0 +export OLD_PROJ="true" BASEDIR=/Users/admin/qgis/builds/${RELEASE} export QGIS_BUILD_DIR=$BASEDIR/build diff --git a/config/nightly.conf b/config/nightly.conf index 79933848..f2646608 100644 --- a/config/nightly.conf +++ b/config/nightly.conf @@ -16,6 +16,9 @@ export WITH_PDAL="true" export USE_SEM="false" export QGIS_321_PROVIDER_NAMES="true" +export WITH_BROTLI="true" +export WITH_RTTOPO="true" +export OLD_PROJ="false" BASEDIR=/Users/admin/qgis/builds/${RELEASE} export QGIS_BUILD_DIR=$BASEDIR/build diff --git a/config/pr.conf b/config/pr.conf index aa5dd307..bcbf1d7f 100644 --- a/config/pr.conf +++ b/config/pr.conf @@ -16,6 +16,9 @@ export WITH_PDAL="true" export USE_SEM="false" export QGIS_321_PROVIDER_NAMES="false" +export WITH_BROTLI="false" #available from 0.9.0 +export WITH_RTTOPO="false" #available from 0.9.0 +export OLD_PROJ="true" BASEDIR=/Users/admin/qgis/builds/${RELEASE} export QGIS_BUILD_DIR=$BASEDIR/build diff --git a/qgis_bundle/recipes/brotli/recipe.sh b/qgis_bundle/recipes/brotli/recipe.sh new file mode 100644 index 00000000..cec6e0f3 --- /dev/null +++ b/qgis_bundle/recipes/brotli/recipe.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +function check_brotli() { + if [[ "$WITH_BROTLI" == "true" ]]; then + env_var_exists VERSION_brotli + fi +} + +function bundle_brotli() { + if [[ "$WITH_BROTLI" == "true" ]]; then + try cp -av $DEPS_LIB_DIR/libbrotlicommon.*dylib $BUNDLE_LIB_DIR + try cp -av $DEPS_LIB_DIR/libbrotlidec.*dylib $BUNDLE_LIB_DIR + fi +} + +function fix_binaries_brotli() { + if [[ "$WITH_BROTLI" == "true" ]]; then + install_name_id @rpath/$LINK_libbrotlicommon $BUNDLE_LIB_DIR/$LINK_libbrotlicommon + + + for i in \ + $LINK_libbrotlicommon \ + $LINK_libbrotlidec + do + install_name_id @rpath/$i $BUNDLE_LIB_DIR/$i + install_name_change $DEPS_LIB_DIR/$LINK_libbrotlicommon @rpath/$LINK_libbrotlicommon $BUNDLE_LIB_DIR/$i + install_name_change $DEPS_LIB_DIR/$LINK_libbrotlidec @rpath/$LINK_libbrotlidec $BUNDLE_LIB_DIR/$i + done + fi +} + +function fix_binaries_brotli_check() { + if [[ "$WITH_BROTLI" == "true" ]]; then + verify_binary $BUNDLE_LIB_DIR/$LINK_libbrotlicommon + verify_binary $BUNDLE_LIB_DIR/$LINK_libbrotlidec + fi +} + +function fix_paths_brotli() { + : +} + +function fix_paths_brotli_check() { + : +} diff --git a/qgis_bundle/recipes/fontconfig/recipe.sh b/qgis_bundle/recipes/fontconfig/recipe.sh index 6d9fad7e..ea8d1d9f 100644 --- a/qgis_bundle/recipes/fontconfig/recipe.sh +++ b/qgis_bundle/recipes/fontconfig/recipe.sh @@ -17,7 +17,8 @@ function fix_binaries_fontconfig() { $LINK_freetype \ $LINK_libintl \ $LINK_zlib \ - $LINK_libpng + $LINK_libpng \ + $LINK_libbrotlidec do install_name_change $DEPS_LIB_DIR/$i @rpath/$i $BUNDLE_LIB_DIR/$LINK_fontconfig done diff --git a/qgis_bundle/recipes/freetype/recipe.sh b/qgis_bundle/recipes/freetype/recipe.sh index 2e776309..8b5ecb0d 100644 --- a/qgis_bundle/recipes/freetype/recipe.sh +++ b/qgis_bundle/recipes/freetype/recipe.sh @@ -14,7 +14,8 @@ function fix_binaries_freetype() { for i in \ $LINK_bz2 \ $LINK_zlib \ - $LINK_libpng + $LINK_libpng \ + $LINK_libbrotlidec do install_name_change $DEPS_LIB_DIR/$i @rpath/$i $BUNDLE_LIB_DIR/$LINK_freetype done diff --git a/qgis_bundle/recipes/gdal/recipe.sh b/qgis_bundle/recipes/gdal/recipe.sh index 77e4e25c..3629c48e 100644 --- a/qgis_bundle/recipes/gdal/recipe.sh +++ b/qgis_bundle/recipes/gdal/recipe.sh @@ -146,7 +146,8 @@ function fix_binaries_gdal() { $LINK_libltdl \ $LINK_libcurl \ $LINK_libssh2 \ - $LINK_gdal + $LINK_gdal \ + $LINK_rttopo do install_name_change $DEPS_LIB_DIR/$j @rpath/$j $BUNDLE_CONTENTS_DIR/MacOS/$i done diff --git a/qgis_bundle/recipes/proj/recipe.sh b/qgis_bundle/recipes/proj/recipe.sh index 15d581ff..180f25e6 100644 --- a/qgis_bundle/recipes/proj/recipe.sh +++ b/qgis_bundle/recipes/proj/recipe.sh @@ -14,18 +14,26 @@ function bundle_proj() { # see src/app/qgsapplication/cpp in QgsApplication::init for PROJ setup paths try rsync -av $DEPS_SHARE_DIR/proj $BUNDLE_RESOURCES_DIR/ - # https://github.com/qgis/QGIS-Mac-Packager/issues/47 - GRID_DIR=$QGIS_BUNDLE_SCRIPT_DIR/../../proj-datumgrid/grids - if [ ! -d "$GRID_DIR" ]; then - error "Missing $GRID_DIR. Use scripts/fetch_proj-datumgrid.bash to download grids" + if [[ "$OLD_PROJ" == "true" ]]; then + # https://github.com/qgis/QGIS-Mac-Packager/issues/47 + GRID_DIR=$QGIS_BUNDLE_SCRIPT_DIR/../../proj-datumgrid/grids + if [ ! -d "$GRID_DIR" ]; then + error "Missing $GRID_DIR. Use scripts/fetch_proj-datumgrid.bash to download grids" + fi + try cp -av $GRID_DIR/* $BUNDLE_RESOURCES_DIR/proj/ fi - try cp -av $GRID_DIR/* $BUNDLE_RESOURCES_DIR/proj/ } function fix_binaries_proj() { install_name_id @rpath/$LINK_libproj $BUNDLE_LIB_DIR/$LINK_libproj - install_name_change $DEPS_LIB_DIR/$LINK_sqlite @rpath/$LINK_sqlite $BUNDLE_LIB_DIR/$LINK_libproj + for i in \ + $LINK_sqlite \ + $LINK_libcurl \ + $LINK_libtiff + do + install_name_change $DEPS_LIB_DIR/$i @rpath/$i $BUNDLE_LIB_DIR/$LINK_libproj + done } function fix_binaries_proj_check() { diff --git a/qgis_bundle/recipes/python_gdal/recipe.sh b/qgis_bundle/recipes/python_gdal/recipe.sh index ed210fd0..89639d72 100644 --- a/qgis_bundle/recipes/python_gdal/recipe.sh +++ b/qgis_bundle/recipes/python_gdal/recipe.sh @@ -1,11 +1,10 @@ #!/bin/bash -function check_python_gdal() { - env_var_exists VERSION_python_gdal -} +GDAL_EGG_DIR=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/GDAL-${VERSION_gdal}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg/ -function bundle_python_gdal() { - for i in \ +# REMOVE when qgis-deps-0.9 is used everywhere +if [ "${VERSION_python_gdal:0:2}" = "3.2" ]; then + PYGDAL_SCRIPTS=( epsg_tr.py \ esri2wkt.py \ gcps2vec.py \ @@ -31,15 +30,41 @@ function bundle_python_gdal() { ogrmerge.py \ pct2rgb.py \ rgb2pct.py \ - ogrmerge.py + ) +else + PYGDAL_SCRIPTS=( + gdal2tiles.py \ + gdal2xyz.py \ + gdal_calc.py \ + gdal_edit.py \ + gdal_fillnodata.py \ + gdal_merge.py \ + gdal_pansharpen.py \ + gdal_polygonize.py \ + gdal_proximity.py \ + gdal_retile.py \ + gdal_sieve.py \ + gdalcompare.py \ + gdalmove.py \ + ogrmerge.py \ + pct2rgb.py \ + rgb2pct.py \ + gdalattachpct.py +) +fi + +function check_python_gdal() { + env_var_exists VERSION_python_gdal +} + +function bundle_python_gdal() { + for i in "${PYGDAL_SCRIPTS[@]}" do try cp -av $DEPS_BIN_DIR/$i $BUNDLE_BIN_DIR/$i done } function fix_binaries_python_gdal() { - GDAL_EGG_DIR=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/GDAL-${VERSION_gdal}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg/ - for i in \ _osr \ _gdal_array \ @@ -53,40 +78,11 @@ function fix_binaries_python_gdal() { } function fix_binaries_python_gdal_check() { - GDAL_EGG_DIR=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/GDAL-${VERSION_gdal}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg/ - verify_binary $GDAL_EGG_DIR/osgeo/_gdal.cpython-${VERSION_major_python//./}-darwin.so } function fix_paths_python_gdal() { - GDAL_EGG_DIR=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/GDAL-${VERSION_gdal}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg/ - - for i in \ - epsg_tr.py \ - esri2wkt.py \ - gcps2vec.py \ - gcps2wld.py \ - gdal2tiles.py \ - gdal2xyz.py \ - gdal_auth.py \ - gdal_calc.py \ - gdal_edit.py \ - gdal_fillnodata.py \ - gdal_merge.py \ - gdal_pansharpen.py \ - gdal_polygonize.py \ - gdal_proximity.py \ - gdal_retile.py \ - gdal_sieve.py \ - gdalchksum.py \ - gdalcompare.py \ - gdalident.py \ - gdalimport.py \ - gdalmove.py \ - mkgraticule.py \ - ogrmerge.py \ - pct2rgb.py \ - rgb2pct.py + for i in "${PYGDAL_SCRIPTS[@]}" do fix_python_exec_link $GDAL_EGG_DIR/EGG-INFO/scripts/$i fix_python_exec_link $BUNDLE_BIN_DIR/$i @@ -94,8 +90,10 @@ function fix_paths_python_gdal() { } function fix_paths_python_gdal_check() { - GDAL_EGG_DIR=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/GDAL-${VERSION_gdal}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg/ - verify_file_paths $BUNDLE_BIN_DIR/$i - verify_file_paths $GDAL_EGG_DIR/EGG-INFO/scripts/$i + for i in "${PYGDAL_SCRIPTS[@]}" + do + verify_file_paths $BUNDLE_BIN_DIR/$i + verify_file_paths $GDAL_EGG_DIR/EGG-INFO/scripts/$i + done } diff --git a/qgis_bundle/recipes/python_pyproj/recipe.sh b/qgis_bundle/recipes/python_pyproj/recipe.sh index 4d2cf919..94334e54 100644 --- a/qgis_bundle/recipes/python_pyproj/recipe.sh +++ b/qgis_bundle/recipes/python_pyproj/recipe.sh @@ -11,20 +11,37 @@ function bundle_python_pyproj() { } function fix_binaries_python_pyproj() { - for i in \ - _list \ - _datadir \ - _crs \ - _geod \ - _proj \ - _transformer + PYPROJ_LIBS= + if [[ "$OLD_PROJ" == "true" ]]; then + PYPROJ_LIBS=( + _list \ + _datadir \ + _crs \ + _geod \ + _proj \ + _transformer + ) + else + PYPROJ_LIBS=( + _compat \ + list \ + _datadir \ + _crs \ + _geod \ + _network \ + _sync \ + database \ + _transformer + ) + fi + + for i in "${PYPROJ_LIBS[@]}" do install_name_change $DEPS_LIB_DIR/$LINK_libproj @rpath/$LINK_libproj $PYPROJ_EGG/pyproj/$i.cpython-${VERSION_major_python//./}-darwin.so done } function fix_binaries_python_pyproj_check() { - verify_binary $PYPROJ_EGG/pyproj/_proj.cpython-${VERSION_major_python//./}-darwin.so verify_binary $PYPROJ_EGG/pyproj/_datadir.cpython-${VERSION_major_python//./}-darwin.so } diff --git a/qgis_bundle/recipes/python_rtree/recipe.sh b/qgis_bundle/recipes/python_rtree/recipe.sh index 3d7a3e9d..3a8d2a1a 100644 --- a/qgis_bundle/recipes/python_rtree/recipe.sh +++ b/qgis_bundle/recipes/python_rtree/recipe.sh @@ -18,7 +18,13 @@ function fix_binaries_python_rtree_check() { function fix_paths_python_rtree() { # see https://github.com/qgis/QGIS-Mac-Packager/issues/80 + RTREE_EGG=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/Rtree-${VERSION_python_rtree}-py${VERSION_major_python}.egg + if [ ! -d "$RTREE_EGG" ] + then + RTREE_EGG=$BUNDLE_PYTHON_SITE_PACKAGES_DIR/Rtree-${VERSION_python_rtree}-py${VERSION_major_python}-macosx-${MACOSX_DEPLOYMENT_TARGET}-x86_64.egg + fi + try rm $RTREE_EGG/rtree/core.py try cp -av $RECIPES_PATH/python_rtree/core.py $RTREE_EGG/rtree/core.py diff --git a/qgis_bundle/recipes/rttopo/recipe.sh b/qgis_bundle/recipes/rttopo/recipe.sh new file mode 100644 index 00000000..b7a058cc --- /dev/null +++ b/qgis_bundle/recipes/rttopo/recipe.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +function check_rttopo() { + if [[ "$WITH_RTTOPO" == "true" ]]; then + env_var_exists VERSION_rttopo + fi +} + +function bundle_rttopo() { + if [[ "$WITH_RTTOPO" == "true" ]]; then + try cp -av $DEPS_LIB_DIR/librttopo.*dylib $BUNDLE_LIB_DIR + fi +} + +function fix_binaries_rttopo() { + if [[ "$WITH_RTTOPO" == "true" ]]; then + for i in \ + $LINK_libgeos_c \ + $LINK_rttopo + do + install_name_id @rpath/$i $BUNDLE_LIB_DIR/$i + install_name_change $DEPS_LIB_DIR/$i @rpath/$i $BUNDLE_LIB_DIR/$LINK_rttopo + done + fi +} + +function fix_binaries_rttopo_check() { + if [[ "$WITH_RTTOPO" == "true" ]]; then + verify_binary $BUNDLE_LIB_DIR/$LINK_rttopo + fi +} + +function fix_paths_rttopo() { + : +} + +function fix_paths_rttopo_check() { + : +} diff --git a/qgis_bundle/recipes/saga/recipe.sh b/qgis_bundle/recipes/saga/recipe.sh index 8f8ff46c..9c150556 100644 --- a/qgis_bundle/recipes/saga/recipe.sh +++ b/qgis_bundle/recipes/saga/recipe.sh @@ -21,8 +21,21 @@ function fix_binaries_saga() { install_name_change $DEPS_LIB_DIR/libsaga_api-$VERSION_saga.dylib @rpath/libsaga_api-$VERSION_saga.dylib $BUNDLE_CONTENTS_DIR/MacOS/bin/_saga_cmd install_name_id @rpath/libsaga_api-$VERSION_saga.dylib $BUNDLE_LIB_DIR/libsaga_api-$VERSION_saga.dylib install_name_add_rpath @executable_path/../lib $BUNDLE_BIN_DIR/_saga_cmd - + + CLIFFMETRICS= + if [ -f "$BUNDLE_LIB_DIR/saga/libta_cliffmetrics.dylib" ]; then + CLIFFMETRICS=libta_cliffmetrics + fi + + WEBSERVICES= + if [ -f "$BUNDLE_LIB_DIR/saga/libio_webservices.dylib" ]; then + WEBSERVICES=libio_webservices + fi + + for i in \ + $CLIFFMETRICS \ + $WEBSERVICES \ libimagery_segmentation \ libgarden_games \ libgarden_fractals \ diff --git a/qgis_bundle/recipes/spatialite/recipe.sh b/qgis_bundle/recipes/spatialite/recipe.sh index c5aa9cda..a0a24b8d 100644 --- a/qgis_bundle/recipes/spatialite/recipe.sh +++ b/qgis_bundle/recipes/spatialite/recipe.sh @@ -21,7 +21,9 @@ function fix_binaries_spatialite() { $LINK_libxml2 \ $LINK_libproj \ $LINK_sqlite \ - $LINK_zlib + $LINK_zlib \ + $LINK_libminizip \ + $LINK_rttopo do install_name_change $DEPS_LIB_DIR/$i @rpath/$i $BUNDLE_LIB_DIR/$LINK_spatialite install_name_change $DEPS_LIB_DIR/$i @rpath/$i $BUNDLE_LIB_DIR/mod_spatialite.so diff --git a/qgis_bundle/recipes/wxmac/recipe.sh b/qgis_bundle/recipes/wxmac/recipe.sh index a29a7982..0d900eae 100644 --- a/qgis_bundle/recipes/wxmac/recipe.sh +++ b/qgis_bundle/recipes/wxmac/recipe.sh @@ -35,6 +35,8 @@ function fix_binaries_wxmac() { $LINK_jpeg \ $LINK_libtiff \ $LINK_expat \ + $LINK_libcurl \ + $LINK_liblzma \ libwx_baseu_xml-${LINK_wxmac_version}.dylib \ libwx_baseu_net-${LINK_wxmac_version}.dylib \ libwx_osx_cocoau_gl-${LINK_wxmac_version}.dylib \ diff --git a/qgis_deps/recipes/fontconfig/recipe.sh b/qgis_deps/recipes/fontconfig/recipe.sh index d13feb63..ad58d8b0 100644 --- a/qgis_deps/recipes/fontconfig/recipe.sh +++ b/qgis_deps/recipes/fontconfig/recipe.sh @@ -8,7 +8,7 @@ VERSION_fontconfig=2.13.92 LINK_fontconfig=libfontconfig.1.dylib # dependencies of this recipe -DEPS_fontconfig=(libtool gettext freetype png) +DEPS_fontconfig=(libtool gettext freetype png brotli) # url of the package URL_fontconfig=https://www.freedesktop.org/software/fontconfig/release/fontconfig-$VERSION_fontconfig.tar.gz diff --git a/qgis_deps/recipes/python_all/recipe.sh b/qgis_deps/recipes/python_all/recipe.sh new file mode 100644 index 00000000..68c4bdaf --- /dev/null +++ b/qgis_deps/recipes/python_all/recipe.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +DESC_python_all="python and all its site-packages" + +# version of your package +VERSION_python_all=${RELEASE_VERSION} + +# dependencies of this recipe +DEPS_python_all=( + python + python_packages + python_matplotlib + python_llvmlite + python_pymssql + python_statsmodels + python_gdal + python_fiona + python_opencv + python_scikit_learn + python_pyproj + python_h5py + python_netcdf4 + python_numpy + python_owslib + python_pyqt5 + python_qscintilla + python_sip + python_pillow + python_scipy + python_shapely + python_psycopg2 + python_pysal + python_patsy + python_pandas +) + +# url of the package +URL_python_all= + +# md5 of the package +MD5_python_all= + +# default build path +BUILD_python_all=$BUILD_PATH/python_all/python_all + +# default recipe path +RECIPE_python_all=$RECIPES_PATH/python_all + +# function called for preparing source code if needed +# (you can apply patch etc here.) +function prebuild_python_all() { + : +} + +function shouldbuild_python_all() { + : +} + +# function called to build the source code +function build_python_all() { + rm -f ${STAGE_PATH}/bin/cmake +} + +# function called after all the compile have been done +function postbuild_python_all() { + : +} + +# function to append information to config file +function add_config_info_python_all() { + : +} \ No newline at end of file diff --git a/qgis_deps/recipes/qgis_deps/recipe.sh b/qgis_deps/recipes/qgis_deps/recipe.sh index 9cfeead1..eaa69fbb 100644 --- a/qgis_deps/recipes/qgis_deps/recipe.sh +++ b/qgis_deps/recipes/qgis_deps/recipe.sh @@ -25,31 +25,7 @@ DEPS_qgis_deps=( postgres protobuf proj_data - python - python_packages - python_matplotlib - python_llvmlite - python_pymssql - python_statsmodels - python_gdal - python_fiona - python_opencv - python_scikit_learn - python_pyproj - python_h5py - python_netcdf4 - python_numpy - python_owslib - python_pyqt5 - python_qscintilla - python_sip - python_pillow - python_scipy - python_shapely - python_psycopg2 - python_pysal - python_patsy - python_pandas + python_all qca qscintilla qtextra From c2dd2a0a159b1f4915b38ec6f2297d75caa184f4 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 15 Sep 2021 13:35:29 +0200 Subject: [PATCH 4/7] some fixed --- qgis_bundle/recipes/saga/recipe.sh | 11 +++++++++++ qgis_bundle/recipes/wxmac/recipe.sh | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/qgis_bundle/recipes/saga/recipe.sh b/qgis_bundle/recipes/saga/recipe.sh index 9c150556..3d76a05e 100644 --- a/qgis_bundle/recipes/saga/recipe.sh +++ b/qgis_bundle/recipes/saga/recipe.sh @@ -22,20 +22,28 @@ function fix_binaries_saga() { install_name_id @rpath/libsaga_api-$VERSION_saga.dylib $BUNDLE_LIB_DIR/libsaga_api-$VERSION_saga.dylib install_name_add_rpath @executable_path/../lib $BUNDLE_BIN_DIR/_saga_cmd + # introduced in qgis-deps-0.9.0 CLIFFMETRICS= if [ -f "$BUNDLE_LIB_DIR/saga/libta_cliffmetrics.dylib" ]; then CLIFFMETRICS=libta_cliffmetrics fi + # introduced in qgis-deps-0.9.0 WEBSERVICES= if [ -f "$BUNDLE_LIB_DIR/saga/libio_webservices.dylib" ]; then WEBSERVICES=libio_webservices fi + # introduced in qgis-deps-0.9.0 + AIR_FLOW= + if [ -f "$BUNDLE_LIB_DIR/saga/libsim_air_flow.dylib" ]; then + AIR_FLOW=libsim_air_flow + fi for i in \ $CLIFFMETRICS \ $WEBSERVICES \ + $AIR_FLOW \ libimagery_segmentation \ libgarden_games \ libgarden_fractals \ @@ -108,12 +116,14 @@ function fix_binaries_saga() { install_name_change $DEPS_LIB_DIR/$LINK_libproj @rpath/$LINK_libproj $BUNDLE_LIB_DIR/saga/libpj_proj4.dylib for i in \ + lib/saga/${WEBSERVICES}.dylib \ lib/saga/libpointcloud_tools.dylib \ lib/saga/libio_shapes.dylib \ lib/saga/libio_virtual.dylib \ lib/libsaga_api-$VERSION_saga.dylib \ bin/_saga_cmd do + install_name_change $DEPS_LIB_DIR/$LINK_libcurl @rpath/$LINK_libcurl $BUNDLE_CONTENTS_DIR/MacOS/$i install_name_change $DEPS_LIB_DIR/libwx_baseu-${VERSION_wxmac_major}.dylib @rpath/libwx_baseu-${VERSION_wxmac_major}.dylib $BUNDLE_CONTENTS_DIR/MacOS/$i install_name_change $DEPS_LIB_DIR/libwx_baseu_net-${VERSION_wxmac_major}.dylib @rpath/libwx_baseu_net-${VERSION_wxmac_major}.dylib $BUNDLE_CONTENTS_DIR/MacOS/$i install_name_change $DEPS_LIB_DIR/libwx_baseu_xml-${VERSION_wxmac_major}.dylib @rpath/libwx_baseu_xml-${VERSION_wxmac_major}.dylib $BUNDLE_CONTENTS_DIR/MacOS/$i @@ -121,6 +131,7 @@ function fix_binaries_saga() { done for i in \ + lib/saga/${WEBSERVICES}.dylib \ lib/saga/libpointcloud_tools.dylib \ lib/saga/libio_shapes.dylib \ lib/saga/libio_virtual.dylib diff --git a/qgis_bundle/recipes/wxmac/recipe.sh b/qgis_bundle/recipes/wxmac/recipe.sh index 0d900eae..2651a2d1 100644 --- a/qgis_bundle/recipes/wxmac/recipe.sh +++ b/qgis_bundle/recipes/wxmac/recipe.sh @@ -10,7 +10,17 @@ function bundle_wxmac() { } function fix_binaries_wxmac() { + + # introduced in qgis-deps-0.9.0 + WEBVIEW= + WEBVIEW_FULL= + if [ -f "$BUNDLE_LIB_DIR/libwx_osx_cocoau_webview-${LINK_wxmac_version}.dylib" ]; then + WEBVIEW=libwx_osx_cocoau_webview + WEBVIEW_FULL=libwx_osx_cocoau_webview-${LINK_wxmac_version}.dylib + fi + for i in \ + $WEBVIEW \ libwx_baseu_xml \ libwx_baseu_net \ libwx_osx_cocoau_gl \ @@ -37,6 +47,7 @@ function fix_binaries_wxmac() { $LINK_expat \ $LINK_libcurl \ $LINK_liblzma \ + $WEBVIEW_FULL \ libwx_baseu_xml-${LINK_wxmac_version}.dylib \ libwx_baseu_net-${LINK_wxmac_version}.dylib \ libwx_osx_cocoau_gl-${LINK_wxmac_version}.dylib \ From 4cbbfe23e48e9d76a47b1e98836c60bf7261f723 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 15 Sep 2021 13:46:50 +0200 Subject: [PATCH 5/7] some fixes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea022b83..d1bddd8a 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ To know when we release, see [QGIS release schedule](https://www.qgis.org/en/sit - now clone this repository - for upload, add you ssh keys to `qgis/ssh/` and secure them - copy `run_cronjob` one folder above -- to Code Signing (you need Apple certificate to be "Indentified developer") +- to Code Signing (you need Apple certificate to be "Identified developer") - You need application certificate from https://developer.apple.com/account - Generate production/development signing identify - Get cer file and scp to the server From 861375db754ff4c61e87f236db8d79d21de45a71 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 15 Sep 2021 13:53:42 +0200 Subject: [PATCH 6/7] fix saga bundle --- qgis_bundle/recipes/saga/recipe.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qgis_bundle/recipes/saga/recipe.sh b/qgis_bundle/recipes/saga/recipe.sh index 3d76a05e..9c960fdf 100644 --- a/qgis_bundle/recipes/saga/recipe.sh +++ b/qgis_bundle/recipes/saga/recipe.sh @@ -30,8 +30,10 @@ function fix_binaries_saga() { # introduced in qgis-deps-0.9.0 WEBSERVICES= + WEBSERVICES_FULL= if [ -f "$BUNDLE_LIB_DIR/saga/libio_webservices.dylib" ]; then WEBSERVICES=libio_webservices + WEBSERVICES_FULL=lib/saga/libio_webservices.dylib fi # introduced in qgis-deps-0.9.0 @@ -116,7 +118,7 @@ function fix_binaries_saga() { install_name_change $DEPS_LIB_DIR/$LINK_libproj @rpath/$LINK_libproj $BUNDLE_LIB_DIR/saga/libpj_proj4.dylib for i in \ - lib/saga/${WEBSERVICES}.dylib \ + {WEBSERVICES_FULL} \ lib/saga/libpointcloud_tools.dylib \ lib/saga/libio_shapes.dylib \ lib/saga/libio_virtual.dylib \ @@ -131,7 +133,7 @@ function fix_binaries_saga() { done for i in \ - lib/saga/${WEBSERVICES}.dylib \ + {WEBSERVICES_FULL} \ lib/saga/libpointcloud_tools.dylib \ lib/saga/libio_shapes.dylib \ lib/saga/libio_virtual.dylib From 3601f68fa4e5240fe0122eb2d48dd90ca2bff030 Mon Sep 17 00:00:00 2001 From: PeterPetrik Date: Wed, 15 Sep 2021 14:26:07 +0200 Subject: [PATCH 7/7] docs tweaks --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d1bddd8a..e873a47f 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,8 @@ To know when we release, see [QGIS release schedule](https://www.qgis.org/en/sit - create `sing_identity.txt` with the ID of your identity - allow to use it in cronjob (https://stackoverflow.com/a/20324331/2838364) - create symbolic link to keychain with the imported identity - + - if used for signing the qgis-deps, you may need to "unlock" it in KeyChain Access App + - so your folders structure is ``` sign_identity.txt