The openssl module fails to load, giving an `ssl-load-fail-reason` of `ffi-lib: couldn't open "libcrypto.so" (libcrypto.so: cannot open shared object file: No such file or directory)`. This also has the effect of causing package installations through `raco` to fail with the following message: "ssl-make-client-context: requested protocol not supported; SSL not available; check `ssl-load-fail-reason'" Reproducible: Always Steps to Reproduce: 1. Launch the racket REPL. 2. Enter (require openssl) into the REPL. 3. Type ssl-load-fail-reason into the REPL. Actual Results: The REPL returns `"ffi-lib: couldn't open "libcrypto.so" (libcrypto.so: cannot open shared object file: No such file or directory)"`. Expected Results: The module should load and ssl-load-fail-reason should not return a message.
I just tried on an up-to-date F39 system and I can't reproduce actually. racket-minimal-7.9-1.fc39.x86_64 openssl-3.1.1-4.fc39.x86_64 What package versions do you have?
(In reply to Jens Petersen from comment #1) > I just tried on an up-to-date F39 system and I can't reproduce actually. > > racket-minimal-7.9-1.fc39.x86_64 > openssl-3.1.1-4.fc39.x86_64 > > What package versions do you have? I can still reproduce on a fresh, fully-updated install of Fedora 39. I have the same package versions. I can also reproduce on Fedora 40.
Could you please copy the exact full output you see in a terminal here? that would be helpful eg this is what I am seeing: fedora:~$ racket bash: racket: command not found... Install package 'racket-minimal' to provide command 'racket'? [N/y] y * Waiting in queue... * Loading list of packages.... The following packages have to be installed: racket-collects-7.9-1.fc40.noarch Racket's core collections libraries racket-minimal-7.9-1.fc40.x86_64 A minimal Racket installation Proceed with changes? [N/y] y * Waiting in queue... * Waiting for authentication... * Waiting in queue... * Downloading packages... * Requesting data... * Testing changes... * Installing packages... Welcome to Racket v7.9 [bc]. > (require openssl) > So I don't know how to reproduce. Could it be something related with the openssl for your system?
Oh, I can reproduce with raco but not in the repl (perhaps your repl env is different?) fedora:~$ raco pkg install pandoc Resolving "pandoc" via https://download.racket-lang.org/releases/7.9/catalog/ ssl-make-client-context: requested protocol not supported; SSL not available; check `ssl-load-fail-reason' requested: 'auto context...: /usr/share/racket/collects/openssl/mzssl.rkt:717:0: make-raw-context /usr/share/racket/collects/openssl/mzssl.rkt:734:0: ssl-make-client-context /usr/share/racket/collects/openssl/mzssl.rkt:1031:0: ssl-secure-client-context /usr/share/racket/collects/openssl/mzssl.rkt:586:18 /usr/share/racket/collects/racket/private/more-scheme.rkt:266:2: call-with-exception-handler /usr/share/racket/collects/openssl/mzssl.rkt:1520:0: wrap-ports /usr/share/racket/collects/net/http-client.rkt:67:0: http-conn-open! /usr/share/racket/collects/net/http-client.rkt:274:0 /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3 /usr/share/racket/collects/net/url.rkt:201:0: http://getpost-impure-port /usr/share/racket/collects/net/url.rkt:309:2: redirection-loop /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3 /usr/share/racket/collects/pkg/private/network.rkt:59:3 /usr/share/racket/collects/pkg/private/catalog.rkt:218:0: read-from-server /usr/share/racket/collects/pkg/private/catalog.rkt:138:9: for-loop /usr/share/racket/collects/pkg/private/catalog.rkt:135:2: lookup-normally ... Hmm
I just built racket-8.12 for Rawhide - the version 7.9 in current releases is very old... Maybe racket 7 does not support openssl v3? So this might be sufficient reason to backport 8.12 to F40 and possibly earlier releases even. I can reproduce the raco problem even for epel9 :-(
(In reply to Jens Petersen from comment #3) > Could you please copy the exact full output you see in a terminal here? that > would be helpful > > eg this is what I am seeing: > > fedora:~$ racket > bash: racket: command not found... > Install package 'racket-minimal' to provide command 'racket'? [N/y] y > > * Waiting in queue... > * Loading list of packages.... > The following packages have to be installed: > racket-collects-7.9-1.fc40.noarch Racket's core collections libraries > racket-minimal-7.9-1.fc40.x86_64 A minimal Racket installation > Proceed with changes? [N/y] y > > * Waiting in queue... > * Waiting for authentication... > * Waiting in queue... > * Downloading packages... > * Requesting data... > * Testing changes... > * Installing packages... > Welcome to Racket v7.9 [bc]. > > (require openssl) > > > > So I don't know how to reproduce. > > Could it be something related with the openssl for your system? (require openssl) will not produce any output. Afterwards you have to enter "ssl-load-fail-reason" to see the failure. The raco failure you saw is how I first found the problem.
Okay you are right - when I tested yesterday I got '#f' for ssl-load-fail-reason, but I see it now in my F40 VM. I guess I had openssl-devel installed where I had tested. ;-) So that is the workaround: install openssl-devel, which provides libcrypto.so . I will add it as a Requires. Thanks for reporting and nice bug number btw. :-)
(Though I also feel it is kind of an upstream bug that openssl-devel is needed.)
(In reply to Jens Petersen from comment #8) > (Though I also feel it is kind of an upstream bug that openssl-devel is > needed.) Looks fixed in racket 8.12 at least.
FEDORA-2024-1c898aa44f (racket-8.12-2.fc39) has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-1c898aa44f
FEDORA-2024-1c898aa44f (racket-8.12-2.fc39) has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report.