Am 04.11.20 um 20:40 schrieb Baptiste Daroussin:
On Wed, Nov 04, 2020 at 11:04:37AM -0800, Rodney W. Grimes wrote:For 25 years PREFIX has been rigidly a part of the ports infustructure, why is it that the BASE system has been allowed to de-evolve from this concept as documented and REQUIRED by:https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-prefix.html I again assert at one time the base system was clean of this, it has regressed and needs to be fixed. That fix should restore the independence of PREFIX. If 30k ported pieces of software can do it why can't the base system do it? Those ports do not require a recompile, why should the base system?I am just reacting on that phrase, you do really think the ports do not require a rebuild to be able to relocate from a PREFIX to another? this is a myth! ports support being built with another prefix than localbase but that is all it supports. There has been a flase claim for years that relocating work, but beside the tools proposing the feature it never worked, or to be fait only on some very specific port. But it is just an impossible goal to achieve otherwise as for example all the path which gets hardcoded at build time depending on the prefix will end up in the binary looking for resources in a hardcoded prefix at runtime and so fail if you relocate the package, for example its datadir.
Adding to Baptiste's reply: While ports have often contained hard-coded dependencies on the PREFIXused at build time, the changes currently being applied to the base system would actually ease having ports that adapt to a different prefix
at run-time. See Scott Longs proposed getlocalbase() function (D27022), which could be used by ports to derive at run-time the (currently hard-coded) path in a standardized way (with fall-back to _PATH_LOCALBASE or /usr/local). There are potential security issues with a run-time configured PREFIX though, e.g. if it is used to locate files that contain an admin- configured policy meant to restrict unprivileged users. Only hard-coded paths in the respective binaries protect against attacks that manipulate a dynamic prefix at run-time in such a szenario. But as long as not all supported versions of FreeBSD support the getlocalbase() function, it cannot be assumed to be generally available for use in ports. And since it will take some time for the currently supported releases to reach EoL, ports could only conditionally include such a feature when built on and for a system known to have getlocalbase(). We are in the process of creating the infrastructure that may one day allow ports to automatically adapt to the PREFIX in use on the system they are installed on, but we are not there, yet. Regards, STefan
OpenPGP_signature
Description: OpenPGP digital signature