Opened 2 weeks ago

Closed 13 days ago

#70883 closed defect (fixed)

py312-llvmlite: clang-14 is known to fail

Reported by: momeni133 (im133) Owned by: stromnov (Andrey Stromnov)
Priority: Normal Milestone:
Component: ports Version:
Keywords: sequoia Cc: bryanrscott (Bryan), nilason (Nicklas Larsson)
Port: py312-llvmlite

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Hi,
I just recently upgraded my Mac OS to 15.0.
When I try to install the M-series native version of QGIS using 'sudo port install qgis3 +grass' I receive the below error message:

--->  Computing dependencies for qgis3
clang-14 is known to fail. Try to install anyway? [y/N]: 

Any thoughts on this?

Change History (15)

comment:1 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: sequoia added; QGIS MacPorts clang removed
Owner: set to stromnov
Port: py312-llvmlite added
Priority: HighNormal
Status: newassigned
Summary: Error when installing QGIS on Mac 15py312-llvmlite: clang-14 is known to fail

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.

comment:2 Changed 2 weeks ago by nilason (Nicklas Larsson)

Try by disabling the plugin_support312 variant:

port install qgis3 -plugin_support312

comment:3 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Cc: bryanrscott added

Has duplicate #70914.

comment:4 Changed 2 weeks ago by nilason (Nicklas Larsson)

Probably fixed by commit 2bced97, please try out (and report back).

Last edited 2 weeks ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:5 in reply to:  4 Changed 2 weeks ago by nilason (Nicklas Larsson)

Replying to nilason:

Probably fixed by commit 2bced97, please try out (and report back).

Sorry, that only bumped to use llvm 15, I assume this is a limitation of py-llvmlite (and in end effect py-numba).

Last edited 2 weeks ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 2 weeks ago by nilason (Nicklas Larsson)

comment:7 Changed 2 weeks ago by nilason (Nicklas Larsson)

Cc: nilason added

comment:8 Changed 2 weeks ago by markmentovai (Mark Mentovai)

Both clang-14 and clang-15 now work on macOS 15. Does py-llvmlite work now?

comment:9 Changed 2 weeks ago by momeni133 (im133)

I tried it. Now the error message is different: Error: Failed to build py312-scipy: command execution failed

comment:10 Changed 13 days ago by kencu (Ken)

--->  Building py312-scipy
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-scipy/py312-scipy/work/scipy-1.11.4" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-scipy/py312-scipy/work 
* Getting build dependencies for wheel...

ERROR Missing dependencies:
	pythran>=0.12.0
	gast~=0.5.0
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-scipy/py312-scipy/work/scipy-1.11.4" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-scipy/py312-scipy/work 
Exit code: 1
Error: Failed to build py312-scipy: command execution failed

pythran is installed:

% port -v installed | grep pythran
  py312-pythran @0.16.1_0 (active) requested_variants='' platform='darwin any' archs='noarch' date='2024-09-27T18:40:28-0700'

and so is a version of gast (maybe not the right version?)

% port -v installed | grep gast   
  py312-gast @0.6.0_0 (active) requested_variants='' platform='darwin any' archs='noarch' date='2024-09-27T18:39:35-0700'

I don't know where the gast dependency is specified to change it though.

Last edited 13 days ago by kencu (Ken) (previous) (diff)

comment:11 in reply to:  10 ; Changed 13 days ago by markmentovai (Mark Mentovai)

OK, so this isn’t about py312-llvmlite anymore. Back to qgis3, then? Someone should re-title the ticket (or close this one and open a new one for qgis3).

Replying to kencu:

I don't know where the gast dependency is specified to change it though.

Probably https://github.com/serge-sans-paille/pythran/blob/0.16.1/requirements.txt. The master branch gives it as gast~=0.6.0, but there’s no pythran release with that incorporated yet.

This is no longer a macOS 15 issue. This would have happened as a result of d79d275b7b68, #70438.

Last edited 13 days ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:12 Changed 13 days ago by lershaid

Issue with Installing QGIS 3.38.3 on Apple Silicon

I have been working on installing QGIS 3.38.3 on an Apple Silicon machine and encountered a few difficulties along the way. Below are the steps I followed and the issues I encountered: Steps Taken:

  1. Overcoming qt5 Installation: I faced an issue with qt5 installation, which was resolved after checking ticket #70477. I found that installing boost181 sudo port install boost181 resolved the qt5 dependency issue.
  1. Installing With Missing Ports: While installing the ports, I removed the support ports to allow the package to work. As per this ticket, running the command sudo port install qgis3 -plugin_support312 and used sudo to get into QGIS3. It worked but some of the plugins didn't.
  1. Uninstallable Packages Due to Dependencies: There are certain packages that are currently uninstallable due to unmet dependencies, specifically:
    clang-15
    py312-scipy
    libvpx
    

Remaining Packages:

Here is a list of remaining packages that still need to be installed but may also have issues due to missing dependencies:

    clang-15
    ffmpeg
    libvpx
    opencv4
    py312-esda
    py312-giddy
    py312-inequality
    py312-libpysal
    py312-llvmlite
    py312-mapclassify
    py312-mgwr
    py312-momepy
    py312-numba
    py312-opencv4
    py312-pointpats
    py312-pysal
    py312-quantecon
    py312-scikit-learn
    py312-scipy
    py312-segregation
    py312-spaghetti
    py312-spglm
    py312-spint
    py312-splot
    py312-spopt
    py312-spreg
    py312-spvcm
    py312-statsmodels
    py312-tobler

It appears that there are still some missing dependencies. Any guidance on how to resolve these remaining issues would be appreciated!

comment:13 in reply to:  11 Changed 13 days ago by kencu (Ken)

So I read up about how python dependencies are specified.

Rebuilding py312-pythran from source, and manually changing the gast specification in requirements.txt to "0.6.0" instead of "0.5.0" before building it, indeed was all that was needed.

Once that updated version of py312-pythran was installed, py312-scipy installed without any intervention.

% port -v installed py312-scipy
The following ports are currently installed:
  py312-scipy @1.11.4_0+gfortran (active) requested_variants='' platform='darwin 24' archs='arm64' date='2024-09-28T08:34:44-0700'

Most likely a trivial patch to py-pythran to accomplish this is all that we need to do.

python is not my thing. I don't know how to test this to prove that it is all working perfectly, so I will leave this to someone who does know how to do that.

comment:14 Changed 13 days ago by kencu (Ken)

what to do with this ticket? THere is nothing left to fix here in llvmlite.

This ticket can either become one about pythran instead and it's gast issue, or this ticket can be closed and new one opened for pythran.

Dealer's choice.

comment:15 Changed 13 days ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

Let's call this ticket fixed since py-llvmlite no longer fails due to clang-14 being known to fail on macOS 15 because clang-14 was fixed in #70779.

The alternate solution, updating py-llvmlite to work with newer llvm, is not available; py-llvmlite doesn't support newer llvm yet. We have to wait for the developers to do that.

The problem that py-scipy doesn't build because it wants a version of py-gast older than the one now in MacPorts is already filed as #70460. Updating py-scipy (#70931) may fix that.

Note: See TracTickets for help on using tickets.