Bug 2240448

Summary: Bad Julia build
Product: [Fedora] Fedora Reporter: tklsni
Component: juliaAssignee: Milan Bouchet-Valat <nalimilan>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 38CC: chris, gaspard, nalimilan
Target Milestone: ---Keywords: Bugfix, Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://github.com/JuliaLang/Downloads.jl/issues/149#issuecomment-1384271009
Whiteboard:
Fixed In Version: julia-1.11.0-9.beta1.fc40 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-08-28 02:35:47 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description tklsni 2023-09-24 12:50:17 UTC
The build of Julia distributed by the Fedora repo has limited functionality. One cannot install Julia packages. This occurs with Julia 1.9.2 and libcurl 8.0.1 installed.

It would be nice to be able to install Julia from the official repos.

Reproducible: Always

Steps to Reproduce:
1. Install Julia
2. Open Julia REPL
3. Try to install a Julia package
Actual Results:  
Error message, curl_easy_setopt: 48

Expected Results:  
Julia package is downloaded and installed

Fedora 38
x86_64
Julia 1.9.2
libcurl 8.0.1

Comment 1 Milan Bouchet-Valat 2023-09-25 07:55:51 UTC
You mean this happens when trying to install any package? I cannot reproduce this. Can you post the full error output?

Comment 2 Gaspard Jankowiak 2023-11-28 10:14:12 UTC
I have a similar problem. Packages seem to install but the console is filled with this error message:

┌ Error: curl_easy_setopt: 48
│ 
│ You may be using an old system libcurl library that doesn't understand options that Julia uses. You can try the following Julia code to see which libcurl library you are using:
│ 
│     using Libdl
│     filter!(contains("curl"), dllist())
│ 
│ If this indicates that Julia is not using the libcurl library that is shipped with Julia, then that is likely to be the problem. This either means:
│ 
│   1. You are using an unofficial Julia build which is configured to use a system libcurl library that is not recent enough; you may be able to fix this by upgrading the system libcurl. You should complain to your distro maintainers for allowing Julia to use a too-old libcurl version and consider using official Julia binaries instead.
│ 
│   2. You are overriding the library load path by setting `LD_LIBRARY_PATH`, in which case you are in advanced usage territory. You can try upgrading the system libcurl, unsetting `LD_LIBRARY_PATH`, or otherwise arranging for Julia to load a recent libcurl library.
│ 
│ If neither of these is the case and Julia is picking up a too old libcurl, please file an issue with the `Downloads.jl` package.
│ 
└ @ Downloads.Curl /usr/share/julia/stdlib/v1.9/Downloads/src/Curl/utils.jl:34

The output of "filter!(contains("curl"), dllist())" (as per the hint) is:

1-element Vector{String}:
 "/usr/bin/../lib64/julia/libcurl.so"

There is no issue with the binary provided by julialang.org.

Comment 3 Milan Bouchet-Valat 2023-11-29 09:20:40 UTC
What Fedora version and what version of the Julia RPM are you using?

Comment 4 Gaspard Jankowiak 2023-11-29 10:49:52 UTC
I'm running Fedora 39

Partial output of $ rpm -qi julia                                                                                                                                                                                                          
Name        : julia
Version     : 1.9.2
Release     : 3.fc39
Architecture: x86_64
Install Date: Mon 13 Nov 2023 14:22:28 CET
Group       : Unspecified
Size        : 273792393
License     : MIT and Apache-2.0-WITH-LLVM-exception
Signature   : RSA/SHA256, Sun 27 Aug 2023 22:15:09 CEST, Key ID 75cf5ac418b8e74c
Source RPM  : julia-1.9.2-3.fc39.src.rpm
Build Date  : Sun 27 Aug 2023 01:23:44 CEST

Comment 5 Gaspard Jankowiak 2023-12-19 09:11:08 UTC
Here's a follow up on the issue.

Julia uses /usr/lib64/julia/libcurl.so, which is provided by libcurl-minimal.

"This is a replacement of the 'libcurl' package for minimal installations.  It
comes with a limited set of features compared to the 'libcurl' package.  On the
other hand, the package is smaller and requires fewer run-time dependencies to
be installed."

An obvious solution would be to use the full libcurl, but installing libcurl
(which installs /usr/lib/julia/libcurl.so) and reinstalling the julia package
does not solve the issue. I also cannot remove libcurl-minimal, because
NetworkManager depends on it.

Surely NetworkManager can use libcurl instead of libcurl-minimal...

Comment 6 Gaspard Jankowiak 2023-12-19 09:16:45 UTC
Sorry, I did not check the install log carefully, dnf installed the libcurl.i686 instead of libcurl.x86_64.
Installing with --allowerasing fixes the issue. 

$ dnf deplist julia

  ...
  dependency: libcurl.so.4()(64bit)
   provider: libcurl-8.2.1-4.fc39.x86_64
   provider: libcurl-minimal-8.2.1-4.fc39.x86_64
  ...

↑ I think this is the issue, libcurl-minimal is not an acceptable provider for julia. This should be fixed somehow.

Comment 7 Milan Bouchet-Valat 2023-12-19 21:05:04 UTC
Good catch. So the problem only happens on newly installed systems, which is why I cannot reproduce it. I've pushed a commit to add Requires: libcurl-full. Unfortunately, the build hangs for probably unrelated reasons.

Comment 8 Fedora Update System 2024-05-01 21:25:13 UTC
FEDORA-2024-3f9b24f1ec (julia-1.11.0-0.beta1.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-3f9b24f1ec

Comment 9 Fedora Update System 2024-05-02 03:46:20 UTC
FEDORA-2024-3f9b24f1ec has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-3f9b24f1ec`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-3f9b24f1ec

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Fedora Update System 2024-05-02 19:36:17 UTC
FEDORA-2024-b87b0c2aa4 (julia-1.11.0-2.beta1.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-b87b0c2aa4

Comment 11 Fedora Update System 2024-05-03 03:11:57 UTC
FEDORA-2024-b87b0c2aa4 has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-b87b0c2aa4`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-b87b0c2aa4

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 12 Fedora Update System 2024-05-03 14:50:41 UTC
FEDORA-2024-450662f67e (julia-1.11.0-5.beta1.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-450662f67e

Comment 13 Fedora Update System 2024-05-04 03:38:20 UTC
FEDORA-2024-450662f67e has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-450662f67e`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-450662f67e

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Aoife Moloney 2024-05-31 08:34:14 UTC
Fedora Linux 38 entered end-of-life (EOL) status on 2024-05-21.

Fedora Linux 38 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 15 Fedora Update System 2024-06-07 07:09:02 UTC
FEDORA-2024-8a00986001 (julia-1.11.0-8.beta1.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-8a00986001

Comment 16 Fedora Update System 2024-06-08 06:51:47 UTC
FEDORA-2024-8a00986001 has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-8a00986001`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-8a00986001

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2024-06-13 19:38:42 UTC
FEDORA-2024-b73636a9e6 (julia-1.11.0-9.beta1.fc40) has been submitted as an update to Fedora 40.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-b73636a9e6

Comment 18 Fedora Update System 2024-06-14 02:04:08 UTC
FEDORA-2024-b73636a9e6 has been pushed to the Fedora 40 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-b73636a9e6`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-b73636a9e6

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Fedora Update System 2024-08-28 02:35:47 UTC
FEDORA-2024-b73636a9e6 (julia-1.11.0-9.beta1.fc40) has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.