PythonCall.jl icon indicating copy to clipboard operation
PythonCall.jl copied to clipboard

How to debug `openssl` could not resolve for environment spec inside a package?

Open Moelf opened this issue 1 year ago • 4 comments

(UnROOT) pkg> st
Project UnROOT v0.10.32
Status `~/Documents/github/dotFiles/homedir/.julia/dev/UnROOT/Project.toml`
  [1520ce14] AbstractTrees v0.4.5
  [7d9f7c33] Accessors v0.1.38
  [65a8f2f4] ArraysOfArrays v0.6.5
  [c3b6d118] BitIntegers v0.3.2
  [5ba52731] CodecLz4 v0.4.5
  [ba30903b] CodecXz v0.7.4
  [6b39b394] CodecZstd v0.8.5
  [68837c9b] FHist v0.11.6
  [cd3eb016] HTTP v1.10.8
  [c8e1da08] IterTools v1.10.0
  [8ac3fa9e] LRUCache v1.6.1
  [9255714d] LibDeflate v0.4.2
  [3f54b04b] LorentzVectors v0.4.3
  [6fafb56a] Memoization v0.2.1
  [2a8e4939] Mixers v0.1.2
  [d96e819e] Parameters v0.12.3
  [aea7be01] PrecompileTools v1.2.1
  [08abe8d2] PrettyTables v2.4.0
  [6099a3de] PythonCall v0.9.23
  [91c51154] SentinelArrays v1.4.5
  [90137ffa] StaticArrays v1.9.7
  [09ab397b] StructArrays v0.6.18
  [bd369af6] Tables v1.12.0
  [164e3b87] XRootD v0.1.0
  [e5d8e439] XXHashNative v1.0.1
  [a63ad114] Mmap
  [fa267f1f] TOML v1.0.3

(UnROOT) pkg> conda add openssl=3.3.0
    CondaPkg Found dependencies: /home/akako/Documents/github/dotFiles/homedir/.julia/dev/UnROOT/CondaPkg.toml
    CondaPkg Found dependencies: /home/akako/.julia/packages/PythonCall/Nr75f/CondaPkg.toml
    CondaPkg Resolving changes
             ~ openssl
    CondaPkg Installing packages
             │ /home/akako/.julia/artifacts/7973f2c7725e2d0eef7a95159454c4145f0945a2/bin/micromamba
             │ -r /home/akako/.julia/scratchspaces/0b3b1443-0f03-428d-bdfb-f27f9c1191ea/root
             │ install
             │ -y
             │ -p /home/akako/Documents/github/dotFiles/homedir/.julia/dev/UnROOT/.CondaPkg/env
             │ --override-channels
             │ --no-channel-priority
             │ libstdcxx-ng[version='>=3.4,<13.0']
             │ openssl[version='=3.3.0']
             │ openssl[version='>=1.1, <1.1.24']
             │ python[version='>=3.8,<4',channel='conda-forge',build='*cpython*']
             └ -c conda-forge
conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache
error    libmamba Could not solve for environment specs
    The following packages are incompatible
    ├─ openssl 3.3.0*  is requested and can be installed;
    └─ openssl >=1.1,<1.1.24  is not installable because it conflicts with any installable versions previously reported.
critical libmamba Could not solve for environment specs
ERROR: failed process: Process(`/home/akako/.julia/artifacts/7973f2c7725e2d0eef7a95159454c4145f0945a2/bin/micromamba -r /home/akako/.julia/scratchspaces/0b3b1443-0f03-428d-bdfb-f27f9c1191ea/root install -y -p /home/akako/Documents/github/dotFiles/homedir/.julia/dev/UnROOT/.CondaPkg/env --override-channels --no-channel-priority "libstdcxx-ng[version='>=3.4,<13.0']" "openssl[version='=3.3.0']" "openssl[version='>=1.1, <1.1.24']" "python[version='>=3.8,<4',channel='conda-forge',build='*cpython*']" -c conda-forge`, ProcessExited(1)) [1]

this doesn't happen in a clean environment, but it's not clear what dependency is causing openssl to lock at a specific version

Moelf avatar Oct 02 '24 08:10 Moelf

    CondaPkg Found dependencies: /home/akako/Documents/github/dotFiles/homedir/.julia/dev/UnROOT/CondaPkg.toml
    CondaPkg Found dependencies: /home/akako/.julia/packages/PythonCall/Nr75f/CondaPkg.toml

These two lines tell you where the dependencies come from. It's most likely your dev version of UnROOT.

cjdoris avatar Oct 03 '24 07:10 cjdoris

that CondaPkg.toml has nothing but the openssl I just added

> cat /home/akako/Documents/github/dotFiles/homedir/.julia/dev/UnROOT/CondaPkg.toml
[deps]
openssl = "=3.3.0"

for completness:

> cat /home/akako/.julia/packages/PythonCall/Nr75f/CondaPkg.toml
[deps.libstdcxx-ng]
version = "<=julia"

[deps.openssl]
version = "<=julia"

[deps.python]
build = "**cpython**"
version = ">=3.8,<4"

Moelf avatar Oct 03 '24 08:10 Moelf

Could you do a

pkg> st -m

to check for Julia's OpenSSL packages? From you output it looks as if the two version restrictions

libstdcxx-ng[version='>=3.4,<13.0']
openssl[version='>=1.1, <1.1.24']

result from the version = "<=julia" I suspect that your OpenSSL or OpenSSL_jll is at 1.x. In that case you could do a

pkg> st -m --outdated

To check what's restricting your version. Maybe, you just need a package update?

hhaensel avatar Oct 04 '24 06:10 hhaensel

It's your XRootD dependency, in particular its dependency of an older version of CxxWrap. You might open an issue and ask the author to support a newer version of CxxWrap.jl.

hhaensel avatar Oct 04 '24 07:10 hhaensel

You can now set JULIA_CONDAPKG_OPENSSL_VERSION=ignore if you'd like to turn off this behaviour. See the README for more info.

cjdoris avatar Nov 08 '24 22:11 cjdoris