GithubHelp home page GithubHelp logo

isabella232 / qgis-mac-packager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from qgis/qgis-mac-packager

0.0 0.0 0.0 1.73 MB

Scripts for Official QGIS MacOS Packages

Home Page: https://www.qgis.org

License: GNU General Public License v2.0

Python 6.38% Shell 93.62%

qgis-mac-packager's Introduction

PR Status

LTR Status

NIGHTLY Status

Latest Passed Builds

PR LTR Nightly
DMG DMG DMG
SHA256 SHA256 SHA256
DEPS DEPS DEPS

QGIS Mac Packager

Set of scripts to create MacOS standalone QGIS package (dmg)

To know when we release, see QGIS release schedule

How to report issues

  • Add link to the installed package
  • Add crash report if QGIS crashed
  • State MacOS version (e.g. 10.15.0), QGIS version
  • Run /Applications/QGIS*.app/Contents/MacOS/QGIS from Terminal and add the output
  • Append any messages from QGIS message log or python warnings log if present

Debugging Tips

  • gatekeeper: codesign --verbose --deep-verify /Applications/QGIS*.app/
  • loaded dylibs: ps -A | grep -i qgis; vmmap <pid>
  • signature: codesign -d -vvvv <file>
  • accept by gatekeeper: spctl -a -t exec -vv <path>.dmg
  • signature: codesign --verify --deep --strict --verbose=2
  • library deps (similar to Windows' Dependency Walker): https://github.com/kwin/macdependency
  • 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

  • Get macOS Big Sur server

  • Get Apple Development Program for your Apple ID

  • Login to the server (have static IP)

  • Change default password to some secure one

  • Open Settings > Spotlight and disable all search locations & add /opt and ~/qgis to exclude locations

  • Install XCode from App Store (It is enough to JUST install command line tools!)

  • Go to Apple Developer Download page -> More and command line tools. Install both

  • Sign out from the apple developer page and app store

  • Open XCode and accept license

  • install homebrew and QGIS deps by running install_brew.bash

  • Download MrSID SDK referenced in and place it in the folder $HOME/Library/Caches/Homebrew. Make a symbolic link in ../external/MrSID_DSDK-<ver>-darwin14.universal.clang60

  • Download erdas-ecw-jp2 5.5.0 referenced in. 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. 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

  • 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 "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
    • Double click on cer file and install it on the server
    • On Machine where you created request, export private key and copy and install on server too.
    • install p12 cert to login identity
    • security find-identity -v to find existing identities
    • 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/
  external/ECW.. --> link to SDK
  external/MrSid.. --> link to SDK
  external/Oracle/sdk
  external/Oracle/instantclient
  builds/
  logs/
  ssh/
  • Run run_pkg.bash with nightly/ltr/pr to build releases/nightlies (detects the latest version)
  • Nightly releases should be set as launchd once per day (use tabs!)
cp scripts/org.qgis.build.plist ~/Library/LaunchAgents/
plutil ~/Library/LaunchAgents/org.qgis.build.plist 
echo $UID
launchctl bootstrap gui/503 ~/Library/LaunchAgents/org.qgis.build.plist
launchctl enable gui/503/org.qgis.build

If you want to kick the cron manually and see the errors try

launchctl kickstart gui/503/org.qgis.build
tail -n 200 -f /var/log/system.log | grep qgis
cat 

Server Update

  • remove all build folders
  • remove homebrew (/usr/local/*)
  • reinstall homebrew packages
  • clear ccache ccache -C

qgis-mac-packager's People

Contributors

3nids avatar agiudiceandrea avatar andrewannex avatar delazj avatar jctull avatar jef-n avatar justinbb avatar mrylov avatar peterpetrik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.