Skip to content

Commit

Permalink
qgis-dev-0.9.0 (#139)
Browse files Browse the repository at this point in the history
update to 0.9.0
  • Loading branch information
PeterPetrik committed Sep 15, 2021
1 parent 5bef67f commit bf925f3
Show file tree
Hide file tree
Showing 59 changed files with 716 additions and 283 deletions.
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <libname>`

# Server Setup

Expand All @@ -53,12 +54,11 @@ 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<ver>`
- 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
- 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
Expand All @@ -69,14 +69,14 @@ 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
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
Expand Down Expand Up @@ -108,5 +108,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`
2 changes: 1 addition & 1 deletion config/defaults.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
8 changes: 6 additions & 2 deletions config/dev.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -15,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
Expand Down
4 changes: 4 additions & 0 deletions config/ltr.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -15,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
Expand Down
6 changes: 5 additions & 1 deletion config/nightly.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -15,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
Expand Down
4 changes: 4 additions & 0 deletions config/pr.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -15,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
Expand Down
45 changes: 45 additions & 0 deletions qgis_bundle/recipes/brotli/recipe.sh
Original file line number Diff line number Diff line change
@@ -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() {
:
}
3 changes: 2 additions & 1 deletion qgis_bundle/recipes/fontconfig/recipe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion qgis_bundle/recipes/freetype/recipe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion qgis_bundle/recipes/gdal/recipe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
20 changes: 14 additions & 6 deletions qgis_bundle/recipes/proj/recipe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
80 changes: 39 additions & 41 deletions qgis_bundle/recipes/python_gdal/recipe.sh
Original file line number Diff line number Diff line change
@@ -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 \
Expand All @@ -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 \
Expand All @@ -53,49 +78,22 @@ 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
done
}

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
}

Loading

0 comments on commit bf925f3

Please sign in to comment.