-
-
Notifications
You must be signed in to change notification settings - Fork 192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Limit libraries to be included in the bundle #742
base: master
Are you sure you want to change the base?
Conversation
If `julia_libdir() == "/usr/lib"` then it will attempt to bundle the whole directory into the app. Fixes #16.
Thank you! This seems to fix the
at I am somehow not able to find a |
Thanks @alexriss: I'm not sure how the certificates are used, so don't know what the fix is (can we just drop them?) FWIW, the recommendation is to use the binaries from https://julialang.org/downloads/, as system packages often don't include patches or other fixes to upstream libraries that Julia requires. |
Codecov Report
@@ Coverage Diff @@
## master #742 +/- ##
==========================================
- Coverage 93.46% 92.88% -0.58%
==========================================
Files 2 2
Lines 520 520
==========================================
- Hits 486 483 -3
- Misses 34 37 +3
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
I tried to compile a small demo project with aur/juliaup, aur/julia-bin and the community/julia package. With the new branch of PackageCompiler aur/juliaup and aur/julia-bin work. the community/julia package was throwing an error: ERROR: IOError: open("/usr/bin/../share/julia/cert.pem", 0, 0): no such file or directory (ENOENT)
Stacktrace:
[1] cp
@ ./file.jl:376 [inlined]
[2] bundle_cert
@ ~/.julia/packages/PackageCompiler/Lz0Nj/src/PackageCompiler.jl:1211 [inlined]
[3] create_app(package_dir::String, app_dir::String; executables::Nothing, precompile_execution_file::Vector{String}, precompile_statements_file::Vector{String}, incremental::Bool, filter_stdlibs::Bool, force::Bool, c_driver_program::String, cpu_target::String, include_lazy_artifacts::Bool, sysimage_build_args::Cmd, include_transitive_dependencies::Bool)
@ PackageCompiler ~/.julia/packages/PackageCompiler/Lz0Nj/src/PackageCompiler.jl:712
[4] create_app(package_dir::String, app_dir::String)
@ PackageCompiler ~/.julia/packages/PackageCompiler/Lz0Nj/src/PackageCompiler.jl:685
[5] top-level scope
@ REPL[3]:1 The community/julia package, however, does not ship cert.pem at all. |
I have done some more tests. If I install the official binaries on my Manjaro distro, everything works, even with the previous version without any changes. With the version from the package manager, everything is more complicated. I have adapted the
I am not quite sure if this is the right
I have traced the problem down further, it seems to come from the package MozillaCACerts_jll.jl, which seems to be generated by JLLWrappers.jl. Now somewhere there is a function
and it ends up with:
So this does not seem to be a tl;dr: Seems like the solution is to not use the community/julia package for now. |
If
julia_libdir() == "/usr/lib"
then it will attempt to bundle the whole directory into the app. Fixes #16.@jlapeyre, @OliverEvans96, @feanor12, @alexriss: would you please be able to try out this branch (
]add PackageCompiler#sb/limit-bundle
) and see if it fixes the problem?