Skip to content
This repository was archived by the owner on Aug 16, 2023. It is now read-only.
This repository was archived by the owner on Aug 16, 2023. It is now read-only.

Control what is added to the library path #180

@morris25

Description

@morris25

It might be a good idea to use more granularity in what we include in "LD_LIBRARY_PATH" when installing executables.

My use-case is this:
I have a private package that installs an openssl dependency using a version of the build script supplied by Yggdrasil. Initially I installed openssl as an ExecutableProduct. This worked perfectly until I created a system image of my project using PackageCompiler.jl. After that every time I would run a curl command through julia I would get an error like:

ERROR: failed process: Process(`curl http://google.com`, ProcessExited(48)) [48]
Stacktrace:
 [1] error(::String, ::Base.Process, ::String, ::Int64, ::String) at ./error.jl:42
 [2] pipeline_error at ./process.jl:705 [inlined]
 [3] read(::Base.CmdRedirect) at ./process.jl:636
 [4] read(::Base.CmdRedirect, ::Type{String}) at ./process.jl:645
 [5] top-level scope at none:0

When I install openssl as a FileProduct the problem no longer occurs, but if any other package builds an ExcecutableProduct the error starts reoccurring.

It seems this problem could be easily fixed by adding the directory of the individual ExcecutableProducts instead of the julia_libdir to the "LD_LIBRARY_PATH" when writing the deps file.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions