Summary: | [TRACKER] eselect modules fiddling with package-manager controlled locations | ||
---|---|---|---|
Product: | Quality Assurance | Reporter: | Michał Górny <mgorny> |
Component: | Trackers | Assignee: | Gentoo Quality Assurance Team <qa> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | alexander, flow |
Priority: | Normal | Keywords: | Tracker |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 531842, 632576, 632624 | ||
Bug Blocks: |
Description
Michał Górny
2017-10-01 08:31:46 UTC
Michal, what's your recommendation for dealing with headers and static libraries? (In reply to Benda Xu from comment #1) > Michal, what's your recommendation for dealing with headers and static > libraries? Always use reference headers and libraries to build stuff. Or just put proper -L/-I flags to any implementation if they are truly compatible. (In reply to Michał Górny from comment #2) > (In reply to Benda Xu from comment #1) > > Michal, what's your recommendation for dealing with headers and static > > libraries? > > Always use reference headers and libraries to build stuff. Or just put > proper -L/-I flags to any implementation if they are truly compatible. Hmmm, I quickly had an answer myself. The should be only 1 set of headers, and should be shared by all the implementations by definition. headers don't need to be switched. Agree with you. We should ban eselect switch of static libraries, otherwise eselect would cause an impact on the build time behavior. Nice and clear. Thanks! Using eselect-emacs as an example, I see two alternatives to fix this: 1. Have a double-step link, e.g. /usr/bin/emacsclient -> /etc/emacs/emacsclient -> /usr/bin/emacsclient-emacs-28. The eselect module would then update the link in /etc/emacs. 2. Wrapper script, e.g. /usr/bin/emacsclient would be a bash script reading a config file in /etc/emacs and then exec the appropriate variant. Option 1 seems simpler and more efficient. Is there anything that speaks against it? A problem with both options is that there can be stale symlinks or wrappers. For example, previous Emacs versions came with grep-changelog and rcs-checkin commands, but these are no longer provided by newer versions. If we want /usr/bin to be static, we would have to place them there in any case. |