Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#76786 - [julia] MbedTLS fails to compile due to hardcoded certificate store path

Attached to Project: Community Packages
Opened by Gabriel Souza Franco (gbs) - Friday, 09 December 2022, 13:54 GMT
Last edited by Antonio Rojas (arojas) - Friday, 09 December 2022, 21:18 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To No-one
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

When using some package that depends on MbedTLS, for example HTTP.jl, compilation will fail and the package remains unusable.

It seems that it gets the cert store path from the Julia-bundled MozillaCACerts_jll lib, which has a hardcoded path.
This file needs to be patched with the correct location in Arch:

/usr/share/julia/stdlib/v1.8/MozillaCACerts_jll/src/MozillaCACerts_jll.jl

Related: https://archlinux.org/todo/use-system-ca-store/

Steps to reproduce:

$ julia
>]add HTTP
>]precompile

See also:
- https://discourse.julialang.org/t/problems-installing-packages-cert-pm-no-such-file/83995/4
- https://github.com/JuliaLang/MbedTLS.jl/pull/238#issuecomment-1179609433
- https://github.com/JuliaLang/MbedTLS.jl/pull/246

The Julia community repeatedly calls out Arch's package as malfunctioning and completely broken, but this wouldn't be a problem if they stopped bundling everything under the sun…

Complete error:

Failed to precompile HTTP [cd3eb016-35fb-5094-929b-558a96fad6f3] to ~/.julia/compiled/v1.8/HTTP/jl_OEog6v.
ERROR: LoadError: InitError: SystemError: opening file "/usr/share/julia/cert.pem": No such file or directory
Stacktrace:
[1] open
@ ./io.jl:381 [inlined]
[2] read
@ ./io.jl:462 [inlined]
[3] __sslinit__()
@ MbedTLS ~/.julia/packages/MbedTLS/lqmet/src/ssl.jl:787
[4] __init__()
@ MbedTLS ~/.julia/packages/MbedTLS/lqmet/src/MbedTLS.jl:55
[5] top-level scope
@ stdin:1
during initialization of module MbedTLS
This task depends upon

Closed by  Antonio Rojas (arojas)
Friday, 09 December 2022, 21:18 GMT
Reason for closing:  Fixed
Additional comments about closing:  julia 1.8.3-2

Loading...