On Saturday 07 May 2005 23:49, Ciaran McCreesh wrote: > Hrm. Being able to say "I need xyz installed globally, and abc installed > either globally or at home level" would work if and only if there was a > way of finding out where abc and xyz had been installed.
The "being able to say" is the harder part. ;) Having a package find out where it's dependencies are is quite simple. Enhancing portageq to support it will be one of the smaller tasks in all of this. Wrapping that with a dev-friendly bash function will be even easier. So to summarise prefixed install support thus far: 1 Portage needs to be enhanced with a new SUPPORTS so that packages can specify that they can install into a non-standard location. 2 Portage needs to be enhanced with new ebuild support functions for detecting the location of a dependency. 3 Portage needs to supply PREFIX and AFFIX variables to those ebuilds that support non-standard location installs, which specify executable and configuration/data locations respectively. 4 Portage needs a base PREFIX and AFFIX to install to by default. 5 Packages need to be updated for support of these feature. - Packages that have a standard location of / rather than /usr install into AFFIX rather than PREFIX. And to add my own little pieces of wisdom: 6 Portage must disallow the creation of binary packages where all dependencies are not in the same PREFIX. 7 Portage needs to be able to configured with one-way dependency allowance between installed package databases. For example, ~ installed packages are allowed to depend on / installed packages. I was planning to summarize home install support here, but your statement above has confused me a little. Is there any case where a package *must* have a dependency installed globally? If so, I can't see it. So unless it is shown otherwise, home install support requires: 8 SUPPORTS needs to be enhanced with another indicator for packages to specify that they can do home installs. 9 Emerge needs to be enhanced to allow the user to specify if they want a home install or a prefixed install of a package. 10 Portage needs to tell the ebuild whether it should perform a home install or a prefixed install. Does that about cover it? Regards, Jason Stubbs
pgpuFHrpmsrf0.pgp
Description: PGP signature