Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 6677 - PORTAGE_OVERLAY suggestions
Summary: PORTAGE_OVERLAY suggestions
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Nicholas Jones (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-08-18 06:10 UTC by Troy Dack
Modified: 2011-10-30 22:37 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Troy Dack 2002-08-18 06:10:25 UTC
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.
Comment 1 Rigo 2002-08-18 07:28:28 UTC
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

Comment 2 John-David Childs 2002-12-03 17:37:04 UTC
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.
Comment 3 Marius Mauch (RETIRED) gentoo-dev 2003-09-21 07:12:41 UTC
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.