A couple of suggestions for the PORTDIR_OVERLAY directory and its functionality. 1. ebuilds in PORTDIR_OVERLAY should not be effected by the contents of packad.mask, ie: if a build is masked you should be able to copy it from the normal portage tree to your local one and then emerge it without modifying the default packages.mask (that gets overwritten every rsync anyway). This will enable "end users" to easily test packages for developers and not have to worry about editing the /usr/portage/profiles/packages.mask file every rsync. (and for those that find copying an ebuild that changed after a rsync too much, I'm sure creative use of symlinks could overcome this as well) 2. a local packages.mask for the PORTDIR_OVERLAY directory. This should live at the top of the PORTDIR_OVERLAY directory and only influence ebuilds in PORTDIR_OVERLAY. 3. Alternative to #2 if a specific file exits in the directory of a PORTDIR_OVERLAY ebuild then that ebuild will be considered to be masked. In this way an ebuild can be temporarily masked by doing something like: touch /usr/portage.local/net-www/mozilla/mask-1.1 and then the mozilla-1.1.ebuild will be considered masked. To remove a mask on a local file it is then a simple matter to do: rm /usr/portage/net-www/mozilla/mask-1.1 See http://lists.gentoo.org/pipermail/gentoo-dev/2002-August/014448.html for a short discussion on this.
My preference would be no.2. This way you don't need to copy directories to your local tree. But why only packages in $PORTDIR_OVERLAY ? If there isn't a file there, put the origional there and they are synced...If there is one, a simple diff | grep would tell a user the differences between the two possible states of a package: diff /usr/portage/profile/package.mask /root/package.mask | grep povray gives: < #=media-gfx/povray-3.50a ($PORTDIR) > =media-gfx/povray-350a ($PORTDIR_OVERLAY) If $PORTDIR_OVERLAY's package.mask always overrules $PORTDIR you have a wonderful way of testing (& new masked packages stay masked because they aren't in $PORTDIR_OVERLAY/package.mask) ! Just my 2 cents ;) Regards, Rigo
My $0.01 (since I used my other change already): While the PORTAGE_OVERLAY is a nice idea, it's a PITA when building multiple machines. My vote is to get rid of the PORTAGE_OVERLAY directory structure completely, and have emerge/ebuild search for a *.local file in the appropriate directory (i.e. /usr/portage/net-www/mozilla/mozilla-1.1-r1.ebuild.local), where the *.local file contains OVERRIDES to the original file (for instance, override IUSE, SLOT, RDEPEND, or other stuff). Then, there's no need for all of the wasted space in some other directory tree, and no need to (particularly) track which distfiles came from /usr/portage and which distfiles came from PORTAGE_OVERLAY. See the Makefile.local strategy used in the BSD ports system for a similar construct.
as /etc/portage/package.mask and package.unmask exists since 2.0.48-r3 I close this bug. package.unmask deals with point 1 package.mask deals with point 2 I don't see much reason for point 3, editing package.mask/unmask isn't a big deal merging of PORTDIR and PORTDIR_OVERLAY isn't possible with the current rsync distribution system, it would also break a lot of other things and tools.