-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
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
cleaner: rewrite pkg-config file Cellar paths and keg-only #18229
base: master
Are you sure you want to change the base?
Conversation
Library/Homebrew/cleaner.rb
Outdated
keg_only_pc_files = @formula.deps | ||
.reject { |d| d.build? || d.test? } | ||
.map(&:to_formula) | ||
.select(&:keg_only?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps controversial idea: I think this could be usefully done for all formulae, not just keg-only. We've debated for a while about whether we should try to support formulae when brew unlink
ed and, generally, I think we should.
d7266a1
to
b45a7a2
Compare
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
Would be nice to get this in in some form at some point. |
b45a7a2
to
8add1db
Compare
.filter_map { |dep| dep.to_formula if !dep.build? && !dep.test? } | ||
.select(&:keg_only?) | ||
.flat_map { |f| f.opt_prefix.glob("{lib,share}/pkgconfig/*.pc") } | ||
.to_h { |pc_file| [pc_file.basename(".pc").to_s.downcase, pc_file.to_s] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to figure out if there is a way to deal with whitespaces in HOMEBREW_PREFIX
as this will break pkgconfig file. If I can't figure out a way, can just skip the modification if we detect whitespaces.
There is also an odd case of pkgconfig file backslash handling, e.g.
Cflags: -I/this/\
is/a/single/path
results in:
❯ PKG_CONFIG_PATH=. pkg-config test --cflags
-I/this/is/a/single/path
May just ignore this for now until we find a scenario that needs it.
EDIT: This is actually more annoying due to possibility of installing relocatable bottle on system with whitespace in HOMEBREW_PREFIX.
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?Concept idea based on manual work in Homebrew/core, e.g.