Skip to content
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

Install 7z, lld and dsymutils to private libexec/julia directory #48931

Merged
merged 3 commits into from
Mar 8, 2023

Conversation

nalimilan
Copy link
Member

Installing files directly into /usr/libexec pollutes the install tree and can create conflicts if other apps do the same. Instead, install them to private_libdir, which defaults to $(libexecdir)/julia. This is similar to what we do with private_libdir.

See #43005 (comment). I need this to build the RPM package as the Julia package isn't allowed to install lld in shared system directories.

Installing files directly into /usr/libexec pollutes the install tree
and can create conflicts if other apps do the same. Instead, install
them to `private_libdir`, which defaults to `$(libexecdir)/julia`.
This is similar to what we do with `private_libdir`.
@nalimilan nalimilan requested a review from staticfloat March 7, 2023 11:05
@vchuravy vchuravy added backport 1.9 Change should be backported to release-1.9 building Build system, or building Julia or its dependencies labels Mar 7, 2023
inkydragon

This comment was marked as resolved.

Copy link
Member

@staticfloat staticfloat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds good to me! Note that we'll be breaking the ability to run lld without setting environment variables for it, since it has an internal RPATH of $ORIGIN/../lib; it would be nice to change that to $ORIGIN/../../lib on Linux/FreeBSD. I don't think it's strictly necessary though, as we must provide the environment variables on Windows anyway, so we'll be providing them no matter what.

@KristofferC KristofferC mentioned this pull request Mar 7, 2023
52 tasks
@nalimilan
Copy link
Member Author

Good catch @inkydragon. I've pushed a commit, looks like it should fix the CI failures.

@staticfloat Indeed. I don't have an opinion on whether updating RPATH would be worth the increased complexity. Wasn't the current approach incorrect in general anyway, since it assumes that private_libdir_rel also works when taking libexecdir as the starting point, which is true for default values ($(prefix)/lib and $(prefix)/libexec) but isn't guaranteed?

@nalimilan nalimilan changed the title Install 7z and lld to private libexec/julia directory Install 7z, lld and dsymutils to private libexec/julia directory Mar 8, 2023
@vchuravy vchuravy merged commit eb2e968 into master Mar 8, 2023
@vchuravy vchuravy deleted the nl/libexec branch March 8, 2023 16:10
KristofferC pushed a commit that referenced this pull request Mar 24, 2023
)

* Install 7z, lld, dsymutil to private libexec/julia directory

Installing files directly into /usr/libexec pollutes the install tree
and can create conflicts if other apps do the same. Instead, install
them to `private_libdir`, which defaults to `$(libexecdir)/julia`.
This is similar to what we do with `private_libdir`.

(cherry picked from commit eb2e968)
@KristofferC KristofferC removed the backport 1.9 Change should be backported to release-1.9 label Mar 31, 2023
Xnartharax pushed a commit to Xnartharax/julia that referenced this pull request Apr 19, 2023
…iaLang#48931)

* Install 7z, lld, dsymutil to private libexec/julia directory

Installing files directly into /usr/libexec pollutes the install tree
and can create conflicts if other apps do the same. Instead, install
them to `private_libdir`, which defaults to `$(libexecdir)/julia`.
This is similar to what we do with `private_libdir`.
JamesWrigley added a commit to JamesWrigley/Clang.jl that referenced this pull request Dec 22, 2023
CMake.jl is currently broken on 1.9 because the location of 7z.exe changed:
- JuliaPackaging/CMake.jl#23
- JuliaLang/julia#48931
- JuliaInterop#458 (comment)
JamesWrigley added a commit to JamesWrigley/Clang.jl that referenced this pull request Dec 23, 2023
CMake.jl is currently broken on 1.9 because the location of 7z.exe changed:
- JuliaPackaging/CMake.jl#23
- JuliaLang/julia#48931
- JuliaInterop#458 (comment)
Gnimuc pushed a commit to JuliaInterop/Clang.jl that referenced this pull request Dec 24, 2023
CMake.jl is currently broken on 1.9 because the location of 7z.exe changed:
- JuliaPackaging/CMake.jl#23
- JuliaLang/julia#48931
- #458 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants