Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

qgis-dev-0.9.0 #139

Merged
merged 7 commits into from
Sep 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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