On 16/09/2015 15:46, james wrote:
> Neil Bothwick <neil <at> digimed.co.uk> writes:
> 
> 
> 
>>> Here, all of /etc/portage is root:root
>>> The tree and all overlays are portage:portage
> 
>> Just to add some confusion to the mix
> 
> <snip>
> 
> Good example and it got me thinking....
> 
>> So some are portage:portage, some are root:root - all use /var/portage
>> for $PORTDIR so that's not an issue. One of the portage:portage ones is
>> the one that syncs with the mirrors and acts as an rsync host for the
>> others, this may or may not be significant.
> 
> I might swith to /var/portage on a new install. Whats the pedantic 
> reasons for for it? On an SSD for speed ? tmpdir? I'm curious, so tell me 
> more.

Nothing to do with tmpdir stuff.

/usr has always been something that must mountable read-only and still
work should the user want it that way.
/var is where data goes that can change. The tree is a database, it can
change, and does every time you sync.

The tree was in /usr/portage for years for NO OTHER REASON than that's
where FreeBSD put it (portage is based off/inspired by FreeBSD ports).
That works on FreeBSD nicely but strictly according to Linux conventions
and FHS should have been in /var all along.

You can put the tree any place you like, just modify PORTDIR to suit
plus a few other bits (eg profile symlink in /etc/portage). The switch
to /var is only a change to the hard-coded default


> 
> 
> 1. So 'the tree' (/usr/portage/) is portage:portage  OK.
> 
> 2. and /etc/portages is root:root  except for distfiles (root:portage) OK.
> 
> 3. and /var/lib/layman  and subdirs are  root:root  ???
> Note, these are the overlays I use but do not hack on.

That's fine. If you only --sync as root it all works out

> 
> 
> 4. and /usr/local/portage is    james:james
> this where I hack on codes that are mostly other overlays that
> need enhancements or raw codes I am processing into ebuilds.
> 
> 5. /usr/local/experimental is  james:james   
> where I working on codes that can compile
> install or be removed without the baggage of portage/ebuilds. It
> will be for embedded and cluster/cloud/vm movements of binaries
> to attach directly to the 4.x kernel, dynamically.
> I'm working on a new build semantic with DAGs, Tup, ninja and CheckInstall
> 
> 
> So I can ignore (5) in make.conf. But I'm now getting ebuilds installed
> in /usr/local/portage, I think because of this line in my make.conf::
> 
> PORTDIR_OVERLAY="source /etc/portage/repos.conf/layman.conf"
> PORTDIR_OVERLAY="/usr/local/portage"

No man, rip that shit out. Delete both lines and replace with entries in
/etc/portage/repos.conf/

There was a news item on 2 Feb that gives full details.
Then emerge layman with use="sync-plugin-portage"

And btw, your second line overrides and replaces the first.

> For goals of 1-5 what are improvements (any and all suggestions) on
> make.conf I should make?  I need to ensure that overlays that I do
> not modify stay separate for the ebuild I modify. In fact some packages
> are in both 3 and 4.  I use git to seed category 4 so what caveates
> do I use to ensure that git only seeds categroy 4 packages (ebuilds)once
> and does not contaminant my 'old school; vim' hackery.

Edit only inside the overlay you want to change. If you have another
overlay that is essentially read-only (or you don't change), and you do
edit it, well then you just changed it and the computer will follow your
lead :-)

so vi then git add/commit/push the stuff you edit.

Or maybe I don't grok what you mean here

> 
> 
> I think this is the only change I need::
> PORTDIR_OVERLAY="/usr/local/portage" ==>
> PORTDIR_OVERLAY="/var/lib/layman"

No. DoItRite as above. That PORTDIR_OVERLAY crap never did work right -
all overlays were essentially considered equal and it would be pot luck
where your next ebuild comes from....


> Or does layman and git (syncs) know where to place things. I do use
> 'git clone' to seed category 4 packages-->ebuilds and will
> eventually be use more of git's features to push out updates.

layman doesn't know anything other than what's in it's config. There's
no magic. If you tell it a repo in mastered at place X, and you make
changes to X, layman will sync those changes.

Don't use 'git clone' for this. A clone is your first checkout. Rather
push the stuff you edit and pull updates from there with layman

> 
> I just gotta get this straight, consistent and keep things seperate
> in my mind, because being an old fart, reading lots of codes, sometimes
> I forget the origins of hacks. (yea yea document the code you old hack)



-- 
Alan McKinnon
[email protected]


Reply via email to