On 12/20/2012 03:36 AM, Alan McKinnon wrote:
> On Wed, 19 Dec 2012 14:19:52 -0800
> Zac Medico <zmed...@gentoo.org> wrote:
> 
>> On 12/19/2012 02:01 PM, Alan McKinnon wrote:
>>> On Wed, 19 Dec 2012 14:56:44 +0100
>>> Diego Elio Pettenò <flamee...@flameeyes.eu> wrote:
>>>
>>>> Just mv /usr/portage /var/portage ? FFS no. Among other things, as
>>>> many said before, we should really take distfiles out of the tree
>>>> itself, and packages the same. And I don't want /var/packages
>>>> or /var/distfiles at all.
>>>
>>> If we are going to move distfiles out of the tree into, what are the
>>> odds of getting /some/path/portage/local to move somewhere else too?
>>
>> What program uses this "local" directory? It's not used directly by
>> portage itself, though portage has an exclude for it in the default
>> PORTAGE_RSYNC_OPTS setting
>> (in /usr/share/portage/config/make.globals).
> 
> It goes back a long time, and is basically a poor man's local overlay
> without having to use layman. As I understand it, portage will treat
> the directory like any other when looking for ebuilds and resolving
> deps, but exclude it from a sync.

Portage doesn't have any special handling for this directory, aside from
the exclude in the default PORTAGE_RSYNC_OPTS setting. I would not
encourage people to use this directory for anything, because it tends to
give people the impression that it's safe to store random things inside
$PORTDIR, while it's somewhat fragile given that it relies on special
rsync options. Occasionally, we get bug reports from people who have
lost files because of this sort of confusion:

  https://bugs.gentoo.org/show_bug.cgi?id=131030
  https://bugs.gentoo.org/show_bug.cgi?id=392565

>>
>>> That one has irked me for ages, its the one thing left on my systems
>>> that stops the local tree dir being an exact replica of the upstream
>>> master.
>>
>> For portage's defaults, I won't settle for anything less than having
>> them all refer to separate directories which are *not* nested within
>> one other. These are the current default settings which violate my
>> requirements:
>>
>>      PORTDIR=/usr/portage
>>      DISTDIR=${PORTDIR}/distfiles
>>      PKGDIR=${PORTDIR}/packages
>>      RPMDIR=${PORTDIR}/rpm
> 
> /usr/portage/local has the taste feel and smell of a hacky workaround:
> shove a directory in the tree and exclude it from sync.

Right.

> I suspect the best solution all round is to move all support for local
> overlays into layman. I'd be happy with that. Probably make the portage
> code cleaner too.

As mentioned, portage doesn't have any special handling for this
directory (aside from the rsync exclude).
-- 
Thanks,
Zac

Reply via email to