You can specify multiple directories separated by : in PORTDIR_OVERLAY. This needs to be documented in Portage Manual, Portage User Guide and in /etc/make.conf This feature was introduced into portage via bug# 10803 This is important to document because people who write third-party portage utilities need to know how to handle this new feature. Reproducible: Always Steps to Reproduce: 1. 2. 3.
make.conf.5 has been updated, now make.conf should be ...
The documentation is wrong, while it can be space delimited, it's meant to be colon delimited. I made the mistake of separating them with a space. A third party ebuild thought it'd be a good idea to rm PORTDIR_OVERLAY/net-www/mozilla/files/somefile in the end. Since I had two overlays separated by the space as documented. it did a rm /usr/local/portage /home/floam/portage/net-www/mozilla/files/somefile. Very bad :(
Sorry if I didn't make it obvious in the last post, but make.conf.5 states it should be delimited with a space.
root@vapier 0 portage # pwd /usr/lib/portage root@vapier 0 portage # grep split.*PORTDIR_OVERLAY * -R pym/portage.py: ec_overlays = suffix_array(string.split(settings["PORTDIR_OVERLAY"]), "/eclass") pym/portage.py:overlays = string.split(settings["PORTDIR_OVERLAY"]) root@vapier 0 portage # python Python 2.3.2 (#1, Oct 8 2003, 23:15:47) [GCC 3.3.1 20030916 (Gentoo Linux 3.3.1-r4, propolice)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import string >>> PORTDIR_OVERLAY="/1 /2 /bucklemyshoe" >>> for path in string.split(PORTDIR_OVERLAY): print path ... /1 /2 /bucklemyshoe >>> PORTDIR_OVERLAY="/1:/2:/bucklemyshoe" >>> for path in string.split(PORTDIR_OVERLAY): print path ... /1:/2:/bucklemyshoe >>> looks like it is space delimited to me ...
Ouch. What third party ebuild was this?
It's documented and the third party ebuild is performing illegal actions inside a portage tree.