[Qgis-psc] Status of macOS Builds

Matthias Kuhn matthias at opengis.ch
Wed Dec 18 06:48:07 PST 2024


Dear PSC,

Over the last two years, I have had the opportunity to work on different
build systems, namely conda and vcpkg.
I'd like to thank you for this possibility and give a brief overview over
what has been done and the current status.

Last year, we worked on creating QGIS packages using conda.
Conda is a python driven package distribution system which besides
providing excellent python packages also provides QGIS builds for a long
time already. It is great for fine control over installed packages and has
a cross-platform nature. There is an active community improving python
packages and QGIS builds.
We have worked on a set of scripts that uses a tool called "constructor" to
bundle conda provided packages into a macOS .pkg. The scripts are still
active and packages are regularly created and can be downloaded from
https://github.com/opengisch/qgis-conda-builder.

This year we have also been working on vcpkg based packages (focussed on
windows/qt6). Vcpkg is a bit different in the approach, in that it focuses
more on the C++ side of things and is developer centric.
As vcpkg is also cross platform in nature, we went the extra mile and also
unlocked building <https://github.com/qgis/QGIS/pull/59177> with vcpkg for
macOS <https://github.com/qgis/QGIS/pull/59177>. Accomplishing this wasn't
for free, as we had to improve the vcpkg support for "dynamic" (shared)
libraries on osx as well as python packages.
Over the last few years, we have used vcpkg with QField and made really
good experiences which allowed us to collaborate closer with upstream (by
testing patches locally) and quickly react in case of troubles with some
libraries (pinning to specific version, backporting patches before they are
released).

With all this accomplished, QGIS packages (dmg) for macOS based on vcpkg
libraries are around the corner and I'm currently working on the last bits
to produce functional packages.
There will still be a few bits missing from these (e.g. no grass or saga
included yet, only Qt6 at the moment, notarisation, ecw, mrsid) and some
parts for which I am not sure yet if they need to be part of a dmg (e.g. is
it expected that QGIS server can be run from a dmg or is it acceptable to
install this via homebrew or conda, as for installing QGIS server it is ok
to expect some sysadmin skills?).

You might be asking, why did we not start with vcpkg for macOS from the
beginning but with conda? Two years ago, there was no python support for
vcpkg available, and we only unlocked that thanks to another project
earlier this year. Plus the ground work required a lot of dedication which
we were unable to estimate beforehand (so hey, why not just do it in
evenings and weekends ;-) )
We also found that relying on packaging third-party-binaries (as in the
case of conda) is not ideal for onboarding our developers whereas we can
already see a few pull requests land in QGIS only after a few weeks of
having vcpkg integrated.

I am motivated to finalize the mac packages based on vcpkg in the upcoming
days and am also available for longer term maintenance of providing stable
mac builds and improving these where needed.

Thanks again for helping us make this happen
Matthias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-psc/attachments/20241218/7f5d1e9a/attachment.htm>


More information about the QGIS-PSC mailing list