conda-forge / pyside2-feedstock

A conda-smithy repository for pyside2.
BSD 3-Clause "New" or "Revised" License
17 stars 19 forks source link

Trouble installing alongside VTK 9.2 #159

Closed hoechenberger closed 1 year ago

hoechenberger commented 1 year ago

Comment:

Hello, I just wanted to bring to your attention that I'm struggling to install pyside6 on my ARM Mac alongside VTK 9.2 (unresolvable dependencies). I have reported this on the VTK feedstock's issue tracker, but I'm not sure if that's the right place :) So here's a cross-reference just to be sure: https://github.com/conda-forge/vtk-feedstock/issues/269

FYI parallel installation of vtk and qt6-main does work; things are only falling apart when I try to install vtk together with pyside6.

Things also seem to work when not requesting VTK 9.2, but 9.1. But I need 9.2, unfortunately.

jschueller commented 1 year ago

it looks like an issue with openssl pinning, I got this one too and disabled the arm64 builds for now, maybe retry if openssl is migrated to 3.x

hoechenberger commented 1 year ago

Thanks @jschueller! Is there any ETA regarding the openssl migration?

jschueller commented 1 year ago

probably sometime next year: https://github.com/conda-forge/conda-forge-pinning-feedstock/issues/3838

hoechenberger commented 1 year ago

Oh noes, so far away :( But thanks for the link!

h-vetinari commented 1 year ago

it looks like an issue with openssl pinning, I got this one too and disabled the arm64 builds for now, maybe retry if openssl is migrated to 3.x

I don't know the constraints here, but if it's a resolver error, then it should be solvable by having the right openssl 3 builds, and it's not dependent on dropping openssl 1.1.1. We've been pushing hard to button up all the missing 3.0 pieces, so if you can identify what's blocking the solver, that would be great. Maybe it's just an aarch-build that failed on a feedstock somewhere?

larsoner commented 1 year ago

Okay I'm on my M1 machine -- happy to run any commands you recommend!

This one fails:

$ mamba create -n test1 -c conda-forge "openssl=3" "python=3.10" "pyside6=6.4.1" "qt6-main=6.4.1"
...
Looking for: ['openssl=3', 'python=3.10', 'pyside6=6.4.1', 'qt6-main=6.4.1']
...
Encountered problems while solving:
  - package qt6-main-6.4.1-h0633097_0 requires openssl >=1.1.1s,<1.1.2a, but none of the providers can be installed

And conda gives us a more verbose answer:

conda create failure ``` $ conda create -n test1 -c conda-forge "openssl=3" "python=3.10" "pyside6=6.4.1" "qt6-main=6.4.1" ... UnsatisfiableError: The following specifications were found to be incompatible with each other: Output in format: Requested package -> Available versions Package qt6-main conflicts for: qt6-main=6.4.1 pyside6=6.4.1 -> qt6-main[version='>=6.4.0,<6.5.0a0'] Package python conflicts for: python=3.10 pyside6=6.4.1 -> python_abi=3.10[build=*_cp310] -> python[version='3.10.*|3.9.*|3.8.*'] pyside6=6.4.1 -> python[version='>=3.10,<3.11.0a0|>=3.9,<3.10.0a0|>=3.8,<3.9.0a0'] Package libzlib conflicts for: python=3.10 -> libzlib[version='>=1.2.11,<1.3.0a0|>=1.2.12,<1.3.0a0|>=1.2.13,<1.3.0a0'] python=3.10 -> zlib[version='>=1.2.13,<1.3.0a0'] -> libzlib[version='1.2.11|1.2.11|1.2.11|1.2.12|1.2.12|1.2.12|1.2.12|1.2.12|1.2.13',build='hee7b306_1012|hee7b306_1013|ha287fd2_2|h03a7124_4|h03a7124_3|ha287fd2_1|h90dfc92_0|h90dfc92_1014'] Package ca-certificates conflicts for: openssl=3 -> ca-certificates python=3.10 -> openssl[version='>=3.0.7,<4.0a0'] -> ca-certificates qt6-main=6.4.1 -> openssl[version='>=3.0.7,<4.0a0'] -> ca-certificates Package xz conflicts for: pyside6=6.4.1 -> libxml2[version='>=2.9.14,<2.10.0a0'] -> xz[version='>=5.2.5,<5.3.0a0|>=5.2.5,<6.0a0|>=5.2.6,<6.0a0|>=5.2.6,<5.3.0a0'] qt6-main=6.4.1 -> libtiff[version='>=4.4.0,<5.0a0'] -> xz[version='>=5.2.5,<5.3.0a0|>=5.2.6,<5.3.0a0|>=5.2.6,<6.0a0|>=5.2.5,<6.0a0'] python=3.10 -> xz[version='>=5.2.5,<5.3.0a0|>=5.2.6,<5.3.0a0|>=5.2.6,<6.0a0|>=5.2.5,<6.0a0'] Package libsqlite conflicts for: python=3.10 -> sqlite[version='>=3.38.5,<4.0a0'] -> libsqlite[version='3.39.2|3.39.3|3.39.4|3.40.0',build='h76d750c_0|h2c9beb0_1'] python=3.10 -> libsqlite[version='>=3.39.2,<4.0a0|>=3.40.0,<4.0a0'] Package openssl conflicts for: python=3.10 -> openssl[version='>=1.1.1j,<1.1.2a|>=1.1.1l,<1.1.2a|>=1.1.1n,<1.1.2a|>=1.1.1o,<1.1.2a|>=1.1.1q,<1.1.2a|>=1.1.1s,<1.1.2a|>=3.0.7,<4.0a0|>=3.0.5,<4.0a0|>=3.0.3,<4.0a0|>=3.0.2,<4.0a0|>=3.0.0,<4.0a0|>=1.1.1m,<1.1.2a'] qt6-main=6.4.1 -> openssl[version='>=1.1.1s,<1.1.2a|>=3.0.7,<4.0a0'] openssl=3 qt6-main=6.4.1 -> krb5[version='>=1.19.3,<1.20.0a0'] -> openssl[version='>=1.1.1l,<1.1.2a|>=3.0.0,<4.0a0|>=1.1.1q,<1.1.2a|>=3.0.5,<4.0a0'] pyside6=6.4.1 -> python[version='>=3.10,<3.11.0a0'] -> openssl[version='>=1.1.1g,<1.1.2a|>=1.1.1h,<1.1.2a|>=1.1.1i,<1.1.2a|>=1.1.1j,<1.1.2a|>=1.1.1l,<1.1.2a|>=1.1.1n,<1.1.2a|>=1.1.1o,<1.1.2a|>=1.1.1q,<1.1.2a|>=1.1.1s,<1.1.2a|>=3.0.7,<4.0a0|>=3.0.5,<4.0a0|>=3.0.3,<4.0a0|>=3.0.2,<4.0a0|>=3.0.0,<4.0a0|>=1.1.1m,<1.1.2a|>=1.1.1k,<1.1.2a'] ```

but if I remove the pyside6 requirement it works and offers to install:

$ mamba create -n test1 -c conda-forge "openssl=3" "python=3.10" "qt6-main=6.4.1"
...
Looking for: ['openssl=3', 'python=3.10', 'qt6-main=6.4.1']
  + python                           3.10.8  h3ba56d0_0_cpython  conda-forge/osx-arm64       11MB
  + openssl                           3.0.7  h03a7124_1          conda-forge/osx-arm64        2MB
  + qt6-main                          6.4.1  h5dc23fd_5          conda-forge/osx-arm64       33MB

So it appears to be that something specific about requiring pyside6=6.4.1 causes it to require some other qt6-main version (?).

h-vetinari commented 1 year ago

Well, given https://github.com/conda-forge/pyside2-feedstock/blob/92ee15cc781a673dec37e26c96dc4dce7dd4a863/recipe/meta.yaml#L28-L29

it seems there are no osx-arm builds of pyside6 for openssl3 yet.

Why not open a PR that undoes this skip, and then we see what's going wrong.

hmaarrfk commented 1 year ago

@h-vetinari we've been trying to open a PR for a few days. somewhat unsucessfully.

I think the problem is with llvmdev trying to choose 15.0.6. while only 14.0.6 is supported by the compiler: https://github.com/conda-forge/clang-compiler-activation-feedstock/blob/main/recipe/meta.yaml#L2

h-vetinari commented 1 year ago

I think the problem is with llvmdev trying to choose 15.0.6. while only 14.0.6 is supported by the compiler:

I'd be surprised if that's the issue. llvmdev is not exposed to openssl, and the 14.x branch was rebuilt barely over a month ago as well.

hmaarrfk commented 1 year ago

i don't think it is an openssl thing:

 CONDA_SUBDIR=osx-arm64 mamba create --no-banner --name qt641-arm qt6-main=6.4.1 pyside6=6.4.1 --channel conda-forge --override-channels

Looking for: ['qt6-main=6.4.1', 'pyside6=6.4.1']

conda-forge/osx-arm64                                       Using cache
conda-forge/noarch                                          Using cache
Could not solve for environment specs
Encountered problems while solving:
  - package qt6-main-6.4.1-h0633097_0 requires libclang >=15.0.4,<16.0a0, but none of the providers can be installed

The environment can't be solved, aborting the operation

for some reason, pyside6 requires libclang 14, not 15, creating an incompatibility. I haven't been able to rebuild it. See open PRs.

hmaarrfk commented 1 year ago

I think that this PR should resolve things: https://github.com/conda-forge/qt-main-feedstock/pull/93

h-vetinari commented 1 year ago

I think this might actually be a libxml2 issue. That the solver is picking an older clang (15.0.3 while 15.0.{4,5,6} is already available) looks like something is still pinned, and the (more or less) recent libxml migration comes to mind. From https://github.com/conda-forge/pyside2-feedstock/pull/165:

- Encountered problems while solving:
-   - package qt6-main-6.4.0-h024db75_4 requires libclang >=15.0.3,<16.0a0, but none of the providers can be installed
hoechenberger commented 1 year ago

This has been resolved now, thank you!