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

Native support for Apple Silicon (ARM64 architecture) #46299

Open
frozenpandaman opened this issue Nov 30, 2021 · 151 comments
Open

Native support for Apple Silicon (ARM64 architecture) #46299

frozenpandaman opened this issue Nov 30, 2021 · 151 comments
Labels
Build/Install Related to compiling or installing QGIS Feature Request macOS

Comments

@frozenpandaman
Copy link

Feature description

A build of QGIS that runs natively on M1 Macs would be great to see.

https://doesitarm.com/app/qgis/

Additional context

No response

@gioman gioman added the Build/Install Related to compiling or installing QGIS label Dec 1, 2021
@3nids 3nids added the macOS label Jan 19, 2022
@AtelierCartographique
Copy link

It would be great indeed! Any news on this?

@zadorozhko
Copy link

Just FYI: Rosetta2 is claimed to be REMOVED in OSX 11.3 beta 3 update in certain countries. I guess M1 owners will run QGIS in QEMU very soon.

@tsmcgrath
Copy link

I want to see QGIS run natively on the M1 Ultra with a Mac Studio.

@beginor
Copy link

beginor commented Mar 22, 2022

Is there anyone who can provide remote access to a M1 mac may be it's better to donate a M1 😊

@tsmcgrath
Copy link

@tsmcgrath
Copy link

But there are python performance issues on M1: https://developer.apple.com/forums/thread/695963

@felix-ht
Copy link

felix-ht commented May 3, 2022

@tsmcgrath this is not a generic python issue - but rather a issue with numpy. Python in general is actually really fast on a M1 - the issue is that the default numpy wheels seem to ship with a slow numerical library.

This can be fixed by compiling numpy from source. So this should not be a blocker.

@Mielie
Copy link

Mielie commented May 18, 2022

Any news/progress on this? Native M1 QGIS is something I would very much like to have.

@geodowd
Copy link

geodowd commented Jun 28, 2022

Just to add to this, I find QGIS quite slow to start and use on an M1 Mac as it is running under Rosetta. Native support would be very much appreciated.

@Smo-RBR
Copy link

Smo-RBR commented Jul 10, 2022

M1 multiprocessing support would be very, very great. Especially with large datasets, qgis will often not repsonding because 100% CPU usage :/

@zadorozhko
Copy link

zadorozhko commented Jul 18, 2022

In MacOS 13 Ventura Rosetta is not installed by default. QGIS still can be launched after installing it from command line:
softwareupdate --install-rosetta
Make your own conclusions.

@Mielie
Copy link

Mielie commented Jul 18, 2022

Rosetta 2 is not installed by default on Monterey either, it gives the user the option to install it when you try to launch an intel binary. Seems Ventura is getting additional translation support for intel binaries running within a linux VM as well, so it is hardly showing signs of going away.

@shaunakv1
Copy link

Native apple silicon build would be great to have! Is this on the roadmap?

@joaquinezcurra
Copy link

+1 for Apple Silicon M1 native support

@bryik
Copy link

bryik commented Aug 25, 2022

Edit: Turns out it is possible to run QGIS natively on M1 via MacPorts. See the discussion below, particularly this comment which gives a good idea of the steps required. Note that brew must be uninstalled since "You can’t have Homebrew and MacPorts running on the same Mac".


I'm not affiliated with QGIS, but was curious about M1 support.

tl;dr: QGIS needs to move to Qt 6. When that is done, native M1 support should be possible show up in binaries distributed by QGIS.org. This is on the roadmap and work is in-progress.

#46299 (comment)

From looking around Github issues:

Donations to QGIS partly go towards funding these kinds of grants.

@Veence
Copy link

Veence commented Aug 25, 2022

Well, I do have QGIS 3.26.2 running natively on my M1 MacBookPro. Everything is installed from source using MacPorts

@tudorbarascu
Copy link
Member

Just FYI if you use Asahi Linux on M1 macs QGIS runs natively out of the box.

@bryik
Copy link

bryik commented Aug 26, 2022

Well, I do have QGIS 3.26.2 running natively on my M1 MacBookPro. Everything is installed from source using MacPorts

Interesting. I guess I should have said "native M1 builds probably won't show up on QGIS.org until after the Qt 6 transition". Good to know MacPorts is an option.

It was hard to find official info on the state of Qt 5's support for M1. All I turned up was a blog post which mentions at the very end:

Some patches already went into Qt 5, so Qt 5.15.4 and above should build and run by passing -device-option QMAKE_APPLE_DEVICE_ARCHS=arm64 to configure. Note that this configuration is not tested in CI, and is hence unsupported at this point.

Sounds scary 😅

@beginor
Copy link

beginor commented Aug 26, 2022

Just FYI if you use Asahi Linux on M1 macs QGIS runs natively out of the box.

Would you like to share it? I think it is not easy to build qgis from source?

@tudorbarascu
Copy link
Member

tudorbarascu commented Aug 26, 2022

Just FYI if you use Asahi Linux on M1 macs QGIS runs natively out of the box.

Would you like to share it? I think it is not easy to build qgis from source?

Actually the latest QGIS comes with the packages.

If you want to run the LTR you can go to https://aur.archlinux.org/packages/qgis-ltr and click download from the snapshot of the build, after you unzip you go to that directory, edit the PKGBUILD file and change the architecture from arch=('x86_64') to arch=('aarch64'), after which you build the package with makepkg --clean --syncdeps --rmdeps -f. To install just run sudo pacman -U qgis-ltr-3.22.10-1-aarch64.pkg.tar.xz. So it's very easy.

Of course you need to install asahi linux first.

@Veence
Copy link

Veence commented Aug 26, 2022

For information, the only part of QT5 that doesn’t compile on M1 is Scintilla. We’re stuck at 2.13.1 currently, but that’s not a dealbreaker.

Does Qt6 uses Metal for 3D display?

@nyalldawson
Copy link
Collaborator

@Veence

Does Qt6 uses Metal for 3D display?

No, qgis requires OpenGL right now -- even for qt 6 builds.

@Mielie
Copy link

Mielie commented Aug 26, 2022

For information, the only part of QT5 that doesn’t compile on M1 is Scintilla. We’re stuck at 2.13.1 currently, but that’s not a dealbreaker.

Does Qt6 uses Metal for 3D display?

Any pointers for getting QGIS to install using MacPorts? I've tried installing with the -s option but the install fails because it can't build py310-pyqt5-scintilla (command execution failed).

@Veence
Copy link

Veence commented Aug 26, 2022

That’s exactly where the nub of the problem lies. I know there’s a way to install old versions, I’ll figure that out and post it here

@Mielie
Copy link

Mielie commented Aug 26, 2022

I can get the install past the error with pyqt5-scintilla by adding "use_xcode yes" to the portfile for py310-pyqt5-scintilla. Have now got it past all the dependencies but the QGIS build fails at 31%, still trying to figure that one out.

@Veence
Copy link

Veence commented Aug 26, 2022

Ah, nice, I knew there was a workaround, it had been discussed in the mailing list. I’m going to do that too, thanks for posting it.

@Mielie
Copy link

Mielie commented Aug 26, 2022

This is the output of my qgis build, any pointers would be appreciated. Not getting much more with the log file:

% sudo port -sp install qgis3
---> Computing dependencies for qgis3
---> Fetching distfiles for qgis3
---> Verifying checksums for qgis3
---> Extracting qgis3
---> Applying patches to qgis3
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/AssignProjection.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/fillnodata.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/gdal2tiles.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/gdal2xyz.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/gdalcalc.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/merge.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/polygonize.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/proximity.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/retile.py
Warning: reinplace s|+ '.py'|+ '.py-3.10'| didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/plugins/processing/algs/gdal/sieve.py
---> Configuring qgis3
Warning: reinplace s/$$$$/$$/ didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build/src/core/CMakeFiles/qgis_core.dir/build.make
Warning: reinplace s/$$$$/$$/ didn't change anything in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build/src/core/CMakeFiles/qgis_core_autogen.dir/build.make
---> Building qgis3
Error: Failed to build qgis3: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port qgis3 failed
---> Scanning binaries for linking errors
---> No broken files found.
---> No broken ports found.
jamesmilmine@MacBook-Pro qt5 % sudo port -s install qgis3
Password:
---> Computing dependencies for qgis3
---> Building qgis3
Error: Failed to build qgis3: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port qgis3 failed

And:

% tail -20 main.log
:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/PyQt && /opt/local/bin/cmake -E make_directory /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build/output/python/qgis/PyQt/uic
:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/QGIS-3_26_2/python/PyQt && /opt/local/bin/cmake -E copy PyQt5/uic/properties.py /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build/output/python/qgis/PyQt/uic
:info:build make[2]: Leaving directory /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build' :info:build [ 31%] Built target pyqtcompat :info:build make[1]: Leaving directory /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build'
:info:build make: *** [all] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build'
:info:build Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/work/build" && /usr/bin/make -j8 -w all VERBOSE=ON
:info:build Exit code: 2
:error:build Failed to build qgis3: command execution failed
:debug:build Error code: CHILDSTATUS 85281 2
:debug:build Backtrace: command execution failed
:debug:build while executing
:debug:build "system {}$notty {}$callback {*}$nice $fullcmdstring"
:debug:build invoked from within
:debug:build "command_exec -callback portprogress::target_progress_callback build"
:debug:build (procedure "portbuild::build_main" line 8)
:debug:build invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gis_qgis3/qgis3/main.log for details.

@jcm36
Copy link

jcm36 commented Sep 23, 2024

QGIS no longer builds via macports on MacOs 15 due to llvm-14 no longer being supported/maintained. Has anyone come across any alternative methods to compile QGIS for Apple Silicon?

I don’t understand where you got the connection macOS 15, llvm 14 and QGIS. In general the introduction of a new macOS version is a maintainer’s nightmare especially with a dependency stack like QGIS. With some patience things will sort themselves out eventually. Also, if you depend on open source software you should be careful to upgrade OS early.

The connection between MacOS 15 and llvm-14 was just my assumption, as I successfully built QGIS a few weeks ago on MacOS 14, but could no longer build on my new machine which is running MacOS 15.

Oh I agree, it can't be easy to maintain something as complex as QGIS with new os releases. Was just a polite note and asking if there were any alternative options. Thanks

@nilason
Copy link
Contributor

nilason commented Sep 23, 2024

The connection between MacOS 15 and llvm-14 was just my assumption, as I successfully built QGIS a few weeks ago on MacOS 14, but could no longer build on my new machine which is running MacOS 15.

Oh I agree, it can't be easy to maintain something as complex as QGIS with new os releases. Was just a polite note and asking if there were any alternative options. Thanks

No worries, the best you could do to help fix this is reporting at https://trac.macports.org/newticket?port=qgis3 (and don’t forget to append the main.log).

@nilason
Copy link
Contributor

nilason commented Sep 23, 2024

@jcm36 I'd suggest asking the macports maintainers to switch to a qt6 based build of qgis. Those should be fully functional now, and fully compatible with Apple silicon chips

@nyalldawson I’ve planned this for some time, but never got to it. Is the some documentation regarding building QGIS with QT6?

@momeni133
Copy link

momeni133 commented Sep 23, 2024 via email

@nilason
Copy link
Contributor

nilason commented Sep 23, 2024

Someone from MacPorts responded to my question: Indeed clang-14 is known to fail to build on macOS 15 so you can't use it or anything that depends on it. clang-18 and later build on macOS 15. In this case, qgis3 depends on py312-llvmlite which depends on clang-14. py312-llvmlite will need to use clang-18 or later for compatibility with macOS 15.

llvmlite is part of the default variant plugin_support312, try install without that variant: port install qgis3 -plugin_support312 (which anyway only is a convenient variant adding a bunch of useful dependencies.)

@jcm36
Copy link

jcm36 commented Sep 24, 2024

Someone from MacPorts responded to my question: Indeed clang-14 is known to fail to build on macOS 15 so you can't use it or anything that depends on it. clang-18 and later build on macOS 15. In this case, qgis3 depends on py312-llvmlite which depends on clang-14. py312-llvmlite will need to use clang-18 or later for compatibility with macOS 15.

llvmlite is part of the default variant plugin_support312, try install without that variant: port install qgis3 -plugin_support312 (which anyway only is a convenient variant adding a bunch of useful dependencies.)

Unfortunately the build failed when excluding the plugin_support312 option too. "Failed to build qt5-qtlocation: command execution failed."

I guess the discussion here probably isn't the best place to get into - so I'll see if I can raise a ticket at MacPorts.

[Edit]: Trac ticket already exists for qt5-qlocation: https://trac.macports.org/ticket/70477

@MtnBiker
Copy link

MtnBiker commented Sep 24, 2024 via email

@MaintenanceCosts
Copy link

MaintenanceCosts commented Sep 25, 2024

Just a note to confirm that I've successfully built AS-native QGIS3 on Sequoia with MacPorts, but only the base app - no plugins, with -plugin_support312.

You have to install the ports boost and boost181 (yes, both of them, redundantly) before trying to build qgis3 in order for qt5-qtlocation to build correctly.

The plugin ports all are still relying on clang 14 and will not be installable on Sequoia until that is fixed.

@okkymabruri
Copy link

Just a note to confirm that I've successfully built AS-native QGIS3 on Sequoia with MacPorts, but only the base app - no plugins, with -plugin_support312.

You have to install the ports boost and boost181 (yes, both of them, redundantly) before trying to build qgis3 in order for qt5-qtlocation to build correctly.

The plugin ports all are still relying on clang 14 and will not be installable on Sequoia until that is fixed.

Thanks @MaintenanceCosts
Works for me on M2 Chip with macOS 15 (Sequoia):

port install boost boost181  
port install qgis3 -plugin_support312  

@momeni133
Copy link

momeni133 commented Oct 8, 2024 via email

@nilason
Copy link
Contributor

nilason commented Oct 8, 2024

On my computer the error message has changed now. The latest one is:

---> Building qt5-qtlocation

Error: Failed to build qt5-qtlocation: command execution failed

That is reported with https://trac.macports.org/ticket/70477

@AtmosphericIgnition
Copy link

AtmosphericIgnition commented Oct 9, 2024

I tried building QGIS on my ARM MacBook, followed all the instructions, but gave up when I kept getting bombarded with warning about the many unsigned libraries the build tried to load in. All the dependencies the tar.gz has in it are available through either pip or Homebrew.

EDIT:
The unofficial native ARM build of QGIS available here achieves almost 5x the read speed from a large database, compared to the official Intel build.

@aksoysamet
Copy link

Just a note to confirm that I've successfully built AS-native QGIS3 on Sequoia with MacPorts, but only the base app - no plugins, with -plugin_support312.
You have to install the ports boost and boost181 (yes, both of them, redundantly) before trying to build qgis3 in order for qt5-qtlocation to build correctly.
The plugin ports all are still relying on clang 14 and will not be installable on Sequoia until that is fixed.

Thanks @MaintenanceCosts Works for me on M2 Chip with macOS 15 (Sequoia):

port install boost boost181  
port install qgis3 -plugin_support312  

I have tried this one on my M3 air. However, after a while it stuck with the below error:

Error: Failed to build pinentry-mac: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_aqua_pinentry-mac/pinentry-mac/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port qgis3 failed

Do you have any idea to fix this?

@jcm36
Copy link

jcm36 commented Oct 15, 2024

port install boost boost181
port install qgis3 -plugin_support312

I can confirm this worked for me on an M3 Macbook Pro. Great to have QGIS running on Apple Silicon again. Thanks!

@Veence
Copy link

Veence commented Oct 18, 2024 via email

@jcm36
Copy link

jcm36 commented Oct 23, 2024

EDIT:
The unofficial native ARM build of QGIS available here achieves almost 5x the read speed from a large database, compared to the official Intel build.

This looks to solve the issue - a pre-packaged installed for QGIS ARM64 Apple Silicon. Excellent. Thank you!

@palikao
Copy link

palikao commented Oct 28, 2024

I tried building QGIS on my ARM MacBook, followed all the instructions, but gave up when I kept getting bombarded with warning about the many unsigned libraries the build tried to load in. All the dependencies the tar.gz has in it are available through either pip or Homebrew.

EDIT: The unofficial native ARM build of QGIS available here achieves almost 5x the read speed from a large database, compared to the official Intel build.

Is that build "so unofficial"? I mean.. It is an opensource software.. Could it be "so official"?
Could both Intel and Silicon builds coexist (and be installed on the same M-machine)?

@joaoponceleao
Copy link

That build is basically packaging the conda version of qgis which is being maintained upstream. I use the conda version for quite a while now and while not ideal (and not something you can expect most people to use), it has been working quite well. I'd say I have more incompatibilities with plugins and the current QGIS python version than with the build itself. I imagine the reason it is not being promoted in the qgis website is because most people will not want to use the command line for conda, and because the qgis-conda-builder repository is not being actively maintained.

@joaoponceleao
Copy link

Also, intel and silicon builds can coexist but I wouldn't recommend it. Partly because it seem unnecessary if it's the same version, but also because QGIS sometimes uses Env variables in the settings, and these would have to change depending on the architecture build (and you can't easily have different settings for the same QGIS3).

@MtnBiker
Copy link

@jcm What does one do with https://github.com/opengisch/qgis-conda-builder/. I'm not a conda user, but would like a native QGIS.

In the mean time I'm trying
➜ brew install boost boost181 >> got error which recommended
➜ brew install [email protected]
➜ brew install qgis3 -plugin_support312
Warning: No available formula with the name "qgis3".
To install qgis, run:
brew install --cask qgis
➜ brew install --cask qgis
==> Caveats
qgis is built for Intel macOS and so requires Rosetta 2 to be installed.
You can install Rosetta 2 with:
softwareupdate --install-rosetta --agree-to-license
Note that it is very difficult to remove Rosetta 2 once it is installed.

This obviously is not what is desired.

Thanks for any help

@felix-ht
Copy link

I think the overall goal here should be is to offer a binary that one can just download from the offical website. Dealing with conda is way beyond the ability of most users.

@dawgermany
Copy link

@jcm What does one do with https://github.com/opengisch/qgis-conda-builder/. I'm not a conda user, but would like a native QGIS.

In the mean time I'm trying ➜ brew install boost boost181 >> got error which recommended ➜ brew install [email protected] ➜ brew install qgis3 -plugin_support312 Warning: No available formula with the name "qgis3". To install qgis, run: brew install --cask qgis ➜ brew install --cask qgis ==> Caveats qgis is built for Intel macOS and so requires Rosetta 2 to be installed. You can install Rosetta 2 with: softwareupdate --install-rosetta --agree-to-license Note that it is very difficult to remove Rosetta 2 once it is installed.

This obviously is not what is desired.

Thanks for any help

you download from the release section

I think the overall goal here should be is to offer a binary that one can just download from the offical website. Dealing with conda is way beyond the ability of most users.

i think that was the goal with the conda-builder. but somehow it was kinda abandoned after finishing it which is surprising b/c the QEP to do this was only approved as a special decision after it was first rejected and there was a bit of "backlash" (if you can call it that even) from macOS users frustrated by old libaries. I think it is the goal but nobody seems to care enough to create a proper en par solution....

@joaoponceleao
Copy link

joaoponceleao commented Dec 1, 2024

I feel I need to chime in here since there seems to be a bit of confusion going on.
QGIS-conda-builder is not being actively maintained and there are open issues that need to be addressed, but it is usable and the best "user-friendly" native m1 implementation of QGIS. There is no need to enter the terminal or do any advanced installation - it is self-contained.
To install it you just need to download the latest (or desired) release .pkg file for your architecture (arm64 for apple silicon) from https://github.com/opengisch/qgis-conda-builder/releases, and double click. It will install and you can run it. There will be an error when you open QGIS, but this can be ignored.

As for the other implementations:

  • I am not aware of a working homebrew binary (cask) or formula. There used to be one many years ago but this was abandoned since homebrew is designed to always be on the latest library versions at the global system level.
  • Macports has been pushing a native QGIS implementation, but I would consider this to be quite advanced, experimental, and not necessarily stable (upgrade at your own risk). I am surprised that QGIS.org offers this as a native Apple Silicon alternative.
  • Conda has a native implementation that is being maintained at conda-forge here (https://github.com/conda-forge/qgis-feedstock). You just need to create a conda environment and do conda install qgis. In my opinion this should be the preferred method to use qgis natively on apple silicon, though it does require a minimum knowledge of the terminal shell and conda.

The binaries from qgis-conda-builder, as far as I'm aware, are all built from the conda-forge formula above and are up to date. They are simple installers and this should be the preferred method to use qgis natively on apple silicon for users that prefer a graphical user interface. Personally, it should also replace the macports link on qgis.org. We can, and should, refer to macports and conda builds in qgis.org, but they really serve a very different audience.

So yes, it does seem abandoned, but it is working and new versions are released soon after they're published by QGIS, largely due to the fact it is feeding of the official conda-forge feedstock channel.

I have not encountered major issues in the conda version (whether installed from conda, or the conda-builder binary). That does not mean they do not exist - they do, but these issues probably need to be solved upstream and have little to do with the actual packaging. I personally doubt we will see a properly maintained Apple Silicon version before QGIS v4, and I do wish the QGIS group would adopt a cross-platform packaging workflow. This worries me quite a bit. The migration from qgis 2 to 3 was not without headaches for plugin developers. With qt6 coming in QGIS v4, I imagine it will be even more complex.

@joaquinezcurra
Copy link

Amazing summary Joao, thanks! In summary, if you are not very technical leave your Mac aside and do your GIS work on a PC. This is what I do. Forget about loosing time trying to make it work, the bugs, etc. QGIS on a PC just works fantastic. It's a shame, but at the same time it's an open source software community, so you can't really expect the level of service from a corporate software solution.

@MtnBiker
Copy link

MtnBiker commented Dec 1, 2024

Thanks for the summaries. In my limited use of such things, Homebrew seems to be the preferred solution over MacPorts. I say that based on more libraries and apps offer Homebrew installations as a solution. Also can often just substitute brew for npm and it just works thanks to hard work by others. Maybe port could be substituted but MacPorts gave me more problems. My 2 cents. I know this is international, so to translate my minuscule contribution.

@gy-mate
Copy link

gy-mate commented Dec 1, 2024

To install it you just need to download the latest (or desired) release .pkg file for your architecture (arm64 for apple silicon) from https://github.com/opengisch/qgis-conda-builder/releases, and double click. It will install and you can run it.

@joaoponceleao Unfortunately that's not really the case. First, many users can't open it at all. Even if the the launch command can be given, the app still doesn't start. And even if it does, it's not an ARM64-native app so it still needs Rosetta to run.

Neither does this work for me due to conda-forge/qgis-feedstock#475. :(

This one actually works, thank you for mentioning it!! :)

@MtnBiker
Copy link

MtnBiker commented Dec 1, 2024

"To install it you just need to download the latest (or desired) release .pkg file for your architecture (arm64 for apple silicon) from https://github.com/opengisch/qgis-conda-builder/releases, and double click. It will install and you can run it. There will be an error when you open QGIS, but this can be ignored."

Download path: https://github.com/opengisch/qgis-conda-builder/releases/download/3.40.1/QGIS-3.40.1-MacOSX-arm64.pkg

When try to open QGIS 3.40.1 MacOSX.pkg: Apple could not verify “QGIS 3.40.1 MacOSX.pkg” is free of malware that may harm your Mac or compromise your privacy.

Tried Control Open too with same response.

Sequoia.

Can you verify this @joaoponceleao since it seems to contradict what you wrote?

@e-kotov
Copy link

e-kotov commented Dec 1, 2024

Tried Control Open too with same response.

@MtnBiker

This is a problem since the last update of Sequoia. You have to go to System Preferences -> Privacy and Security and click open anyway. You can only do that immediately after the unsuccessful launch of an app.

image

Screenshot source and more details at: https://support.ujam.com/hc/en-us/articles/15955153878940-macOS-15-Sequoia

@joaoponceleao
Copy link

The issue with any program not launching due to an "error" reported by MacOS is simply a security measure from Apple. Before Sequoia you had to right click and press open (sometime twice) on first launch to override. With Sequoia there are new security measures in place. To be frank, this is something that the QGIS.org should look into as all that is necessary is a paid Apple developer account to sign it, and if QGIS is going to be funding the packaging, than this should be part of the funds.

This is only for the downloaded pkg binaries. Using conda from the terminal is fine, and you can easily create an icon and launcher for it using automator if you like. There are still issues with some tools, but these are issues that come and go on Windows as well so it's something that needs to be looked upstream. Personally, if you want an easy to use system, I would just download and install the intel version from the qgis.org website and run it under Rosetta. That one is quite stable. If you want a little bit more performance or need to install python dependencies, than the conda arm version may be better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build/Install Related to compiling or installing QGIS Feature Request macOS
Projects
None yet
Development

No branches or pull requests