Normalize HOMEBREW_CELLAR for immutable Fedora
#20983
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fedora immutable systems use
/homeas a symlink to/var/home. Homebrew has code inbrew.sh(lines 76-94) to normalizeHOMEBREW_PREFIXandHOMEBREW_REPOSITORYfor this situation, but it didn't normalizeHOMEBREW_CELLAR. This caused a path mismatch when creating symlinks; for example:/home/linuxbrew/.linuxbrew/opt/gum(using symlink)/var/home/linuxbrew/.linuxbrew/Cellar/gum/0.17.0(using real path)Ruby's
relative_path_fromthen generated broken symlinks like../../../../var/home/linuxbrew/.linuxbrew/Cellar/gum/0.17.0.The commit adds normalization for
HOMEBREW_CELLARinLibrary/Homebrew/brew.shto ensure it uses/homeconsistently withHOMEBREW_PREFIX.Without the patch
With the patch
brew stylewith your changes locally?brew typecheckwith your changes locally?brew testswith your changes locally?