# Openssl artifact carries old openssl version

**URL:** <https://discourse.julialang.org/t/openssl-artifact-carries-old-openssl-version/124420>\
**Category:** General Usage\
**Tags:** question, precompilation\
**Created:** [January 3, 2025, 8:47pm UTC](https://discourse.julialang.org/t/openssl-artifact-carries-old-openssl-version/124420 "2025-01-03T20:47:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![olaca09](https://avatars.discourse-cdn.com/v4/letter/o/a9adbd/32.png) [@olaca09](https://discourse.julialang.org/u/olaca09)\
**Post date:** [January 3, 2025, 8:47pm UTC](https://discourse.julialang.org/t/openssl-artifact-carries-old-openssl-version/124420/1 "2025-01-03T20:47:03Z")

</div>

I’ve encountered a strange issue, which I suspect might be system specific, but I am not well versed enough in these matters to understand how.

My Plots.jl stopped precompiling the other day, together with a handful of related packages. It turns out that it was GR.jl (a backend to Plots.jl), which stopped precompiling, throwing an error of the form  
`LoadError: InitError: could not load library "libcurl.so.4" /artifacts/[id-string]/lib/libssl.so: version `OPENSSL\_3.2.0’ not found (required by /usr/bin/…/lib/julia/…/libcurl.so.4)`.

I could tell by readelf inspection that the openssl artifact library in question indeed only carried openssl version 3.0. After fiddling around for a bit too much time, eventually I simply replaced the .so (symlink) files of the artifact with symlinks to my system openssl .so libraries (in /usr/lib/), and this appears to have completely solved my problem.

My impression was that such artifacts are just copies/symlinks of the system libraries anyways, how come it managed to pull an old version of the library only? Is this a package specific error, and ought I to rather write on the GR.jl github or similar? To manually replace .so files feels like an awkward, and perhaps bad practice solution in either case, so it would be good to perhaps find a better workaround.

---

<div class="post-metadata">

**Author:** ![benc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/benc/32/46974_2.png) [@benc](https://discourse.julialang.org/u/benc)\
**Post date:** [January 5, 2025, 2:03pm UTC](https://discourse.julialang.org/t/openssl-artifact-carries-old-openssl-version/124420/2 "2025-01-05T14:03:57Z")

</div>

Seems related to this issue [Linux julia 1.8.2/1.8.3 GMT package /lib/julia/libcurl.so: version `CURL\_OPENSSL\_4' not found error - #16 by gustaphe](https://discourse.julialang.org/t/linux-julia-1-8-2-1-8-3-gmt-package-lib-julia-libcurl-so-version-curl-openssl-4-not-found-error/90487/16) ?

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [January 5, 2025, 2:11pm UTC](https://discourse.julialang.org/t/openssl-artifact-carries-old-openssl-version/124420/3 "2025-01-05T14:11:50Z")

</div>

How did you install Julia? It doesn’t look like you’re using the [official binaries](https://julialang.org/downloads/), the only ones supported.

---

<div class="post-metadata">

**Author:** ![olaca09](https://avatars.discourse-cdn.com/v4/letter/o/a9adbd/32.png) [@olaca09](https://discourse.julialang.org/u/olaca09)\
**Post date:** [January 6, 2025, 2:54pm UTC](https://discourse.julialang.org/t/openssl-artifact-carries-old-openssl-version/124420/4 "2025-01-06T14:54:47Z")

</div>

This hits the nail on the head.  
Indeed I had even read the comment on [https://wiki.archlinux.org/title/Julia](https://wiki.archlinux.org/title/Julia) regarding the arch repo binaries being compiled against the system libraries and therefore causing issues like this.

I installed my binaries through the native package manager for my Manjaro installation, which pulls from the arch repo and of course has the same troubles. I’m not sure why I decided that my binaries were different, I feel silly now.

Getting the official binaries through juliaup lets Plots.jll precompile as it should, without modifying artifacts. It surprises me that I haven’t encountered any siimlar issue until now.
