JuliaInterop / JuliaInterop/JuliaCall

Support R v4.2.3 for openssl compatibility

Open
#247 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
287
Forks
43
PR merge metrics
No merged PRs in 30d

Description

The new version 0.17.6 depends on R>4.3, which is a problem with openssl support.

using CondaPkg and searching for r-juliacall we get the following r-base >=4.3,<4.4.0a0 restriction

julia> CondaPkg.withenv() do
           run(`micromamba search -c conda-forge r-juliacall`)
       end
Getting repodata from channels...

conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache


r-juliacall 0.17.6 r43h93ab643_0 (+ 1 builds)
─────────────────────────────────────────────

 Name            r-juliacall
 Version         0.17.6
 Build           r43h93ab643_0
 Size            819 kB
 License         MIT
 Subdir          linux-64
 File Name       r-juliacall-0.17.6-r43h93ab643_0.conda
 URL             https://conda.anaconda.org/conda-forge/linux-64/r-juliacall-0.17.6-r43h93ab643_0.conda
 MD5             5fab13ed882fed43a6c794167cdfd72e
 SHA256          54f4b2233e663faa4b7033d8239b063b3902c408955e220cd48b7ef4ac54db15

 Dependencies:
  - julia
  - r-rjson
  - __glibc >=2.17,<3.0.a0
  - libgcc >=13
  - libstdcxx >=13
  - r-base >=4.3,<4.4.0a0
  - r-rcpp >=0.12.7
  - r-knitr >=1.28

 Other Versions (2):

  Version Build                     
 ────────────────────────────────────
  0.17.5  r40h7525677_0 (+ 6 builds)
  0.17.4  r40h7525677_0 (+ 1 builds)

Process(`micromamba search -c conda-forge r-juliacall`, ProcessExited(0))

This is unfortunate, as Julia itself is bound to openssl >=3,<3.1 because of OpenSSL_jll sticking to the long term support version of openssl.

This results in 0.17.5 being used in CondaPkg (if PythonCall is also installed which adds the openssl restriction). However 0.17.5 breaks on julia 1.11.
When explicitly demanding 0.17.6, the following conda error is thrown

(testcondapkg) pkg> conda add r-juliacall==0.17.6
    CondaPkg Found dependencies: /home/myhome/.julia/dev/tmp/testcondapkg/CondaPkg.toml
    CondaPkg Found dependencies: /home/myhome/.julia/environments/v1.11/CondaPkg.toml
    CondaPkg Found dependencies: /home/myhome/.julia/dev/JolinWorkspaceServer/CondaPkg.toml
    CondaPkg Found dependencies: /home/myhome/.julia/dev/JolinWorkspace/CondaPkg.toml
    CondaPkg Found dependencies: /home/myhome/.julia/packages/PythonCall/Nr75f/CondaPkg.toml
    CondaPkg Resolving changes
             + r-juliacall
    CondaPkg Installing packages
             │ /home/myhome/.julia/artifacts/7973f2c7725e2d0eef7a95159454c4145f0945a2/bin/micromamba
             │ -r /home/myhome/.julia/scratchspaces/0b3b1443-0f03-428d-bdfb-f27f9c1191ea/root
             │ install
             │ -y
             │ -p /home/myhome/.julia/dev/tmp/testcondapkg/.CondaPkg/env
             │ --override-channels
             │ --no-channel-priority
             │ conda-build[version='*']
             │ langchain[version='*']
             │ langchain-openai[version='*']
             │ libstdcxx-ng[version='>=3.4,<13.0']
             │ openssl[version='>=3, <3.1']
             │ python[version='>=3.8,<4',channel='conda-forge',build='*cpython*']
             │ r[version='*']
             │ r-base[version='*']
             │ r-codetools[version='*']
             │ r-globals[version='*']
             │ r-juliacall[version='==0.17.6']
             └ -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.1  is requested and can be installed;
    └─ r-juliacall 0.17.6  is not installable because there are no viable options
       ├─ r-juliacall 0.17.6 would require
       │  └─ r-base >=4.3,<4.4.0a0  but there are no viable options
       │     ├─ r-base 4.3.0 would require
       │     │  ├─ krb5 >=1.20.1,<1.21.0a0  with the potential options
       │     │  │  ├─ krb5 1.20.1 would require
       │     │  │  │  └─ openssl >=3.0.7,<4.0a0  with the potential options
       │     │  │  │     ├─ openssl [3.0.10|3.0.11|...|3.0.9], which can be installed;
       │     │  │  │     ├─ openssl 3.1.0 conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl 3.1.1 conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl 3.1.2 conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl [3.1.3|3.1.4|3.1.5|3.1.6|3.1.7] conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl 3.2.0 conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl [3.2.1|3.2.2|3.2.3] conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl 3.3.0 conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl 3.3.1 conflicts with any installable versions previously reported;
       │     │  │  │     ├─ openssl 3.3.2 conflicts with any installable versions previously reported;
       │     │  │  │     └─ openssl 3.4.0 conflicts with any installable versions previously reported;
       │     │  │  └─ krb5 1.20.1 would require
       │     │  │     └─ openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported;
       │     │  └─ libcurl [>=8.0.1,<9.0a0 |>=8.1.0,<9.0a0 ] but there are no viable options
       │     │     ├─ libcurl [8.10.0|8.10.1] would require
       │     │     │  └─ openssl >=3.3.2,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl 8.11.1 would require
       │     │     │  └─ openssl >=3.4.0,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl [8.1.2|8.2.0|8.2.1] would require
       │     │     │  └─ openssl >=3.1.1,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl 8.3.0 would require
       │     │     │  └─ openssl >=3.1.2,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl 8.4.0 would require
       │     │     │  └─ openssl >=3.1.3,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl 8.5.0 would require
       │     │     │  └─ openssl >=3.2.0,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl [8.6.0|8.7.1] would require
       │     │     │  └─ openssl >=3.2.1,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl 8.8.0 would require
       │     │     │  └─ openssl >=3.3.0,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     ├─ libcurl [8.8.0|8.9.0|8.9.1] would require
       │     │     │  └─ openssl >=3.3.1,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     └─ libcurl [8.0.1|8.1.0|8.1.1|8.1.2] would require
       │     │        └─ openssl >=3.1.0,<4.0a0 , which conflicts with any installable versions previously reported;
       │     ├─ r-base [4.3.0|4.3.1] would require
       │     │  ├─ libcurl >=8.2.0,<9.0a0 , which cannot be installed (as previously explained);
       │     │  └─ libssh2 >=1.11.0,<2.0a0  but there are no viable options
       │     │     ├─ libssh2 1.11.0 would require
       │     │     │  └─ openssl >=3.1.1,<4.0a0 , which conflicts with any installable versions previously reported;
       │     │     └─ libssh2 1.11.1 would require
       │     │        └─ openssl >=3.4.0,<4.0a0 , which conflicts with any installable versions previously reported;
       │     ├─ r-base 4.3.1 would require
       │     │  └─ libcurl >=8.3.0,<9.0a0 , which cannot be installed (as previously explained);
       │     ├─ r-base 4.3.2 would require
       │     │  └─ libcurl >=8.4.0,<9.0a0 , which cannot be installed (as previously explained);
       │     ├─ r-base [4.3.2|4.3.3] would require
       │     │  └─ libcurl >=8.5.0,<9.0a0 , which cannot be installed (as previously explained);
       │     ├─ r-base [4.3.3|4.4.2] would require
       │     │  └─ libcurl >=8.11.1,<9.0a0 , which cannot be installed (as previously explained);
       │     ├─ r-base [4.3.3|4.4.1|4.4.2] would require
       │     │  └─ libcurl >=8.10.1,<9.0a0 , which cannot be installed (as previously explained);
       │     ├─ r-base [4.3.3|4.4.0|4.4.1] would require
       │     │  └─ libcurl >=8.8.0,<9.0a0 , which cannot be installed (as previously explained);
       │     ├─ r-base [4.3.3|4.4.1] would require
       │     │  └─ libcurl [>=8.9.0,<9.0a0 |>=8.9.1,<9.0a0 ], which cannot be installed (as previously explained);
       │     └─ r-base 4.3.3 would require
       │        └─ libcurl >=8.7.1,<9.0a0 , which cannot be installed (as previously explained);
       └─ r-juliacall 0.17.6 would require
          └─ r-base >=4.4,<4.5.0a0 , which cannot be installed (as previously explained).
critical libmamba Could not solve for environment specs
ERROR: failed process: Process(`/home/myhome/.julia/artifacts/7973f2c7725e2d0eef7a95159454c4145f0945a2/bin/micromamba -r /home/myhome/.julia/scratchspaces/0b3b1443-0f03-428d-bdfb-f27f9c1191ea/root install -y -p /home/myhome/.julia/dev/tmp/testcondapkg/.CondaPkg/env --override-channels --no-channel-priority "conda-build[version='*']" "langchain[version='*']" "langchain-openai[version='*']" "libstdcxx-ng[version='>=3.4,<13.0']" "openssl[version='>=3, <3.1']" "python[version='>=3.8,<4',channel='conda-forge',build='*cpython*']" "r[version='*']" "r-base[version='*']" "r-codetools[version='*']" "r-globals[version='*']" "r-juliacall[version='==0.17.6']" -c conda-forge`, ProcessExited(1)) [1]

It seems like r-base v4.2.3 is the most recent r version which works with openssl long term support version.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository files or tests are named. Start by reproducing the shown micromamba search and installation resolution with the openssl constraint; done means the supported JuliaCall version can resolve with R 4.2.3 and the stated OpenSSL compatibility requirements without relying on the broken 0.17.5 path.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.