On Wed, 2015-07-22 at 16:39 +0200, Michał Górny wrote:
> Dnia 2015-07-22, o godz. 13:20:10
> Joakim Tjernlund <joakim.tjernl...@transmode.se> napisał(a):
> 
> > On Wed, 2015-07-22 at 14:30 +0200, Michał Górny wrote:
> > > 
> > > Joakim Tjernlund <joakim.tjernl...@transmode.se> napisał:
> > > 
> > > > We got an embedded gentoo system where we need to manage many conf
> > > > files under /etc that we have
> > > > modified and should be under our control when an SW upgrade is
> > > > performed.
> > > > 
> > > > Cloning every ebuild where we have modified its conf file(s) under /etc
> > > > feels awkward so
> > > > I am looking for some other way to do this automatically during SW
> > > > upgrade and I figured
> > > > this can not be an unique problem for us, so I wonder how other people
> > > > have solved this problem?
> > > > Our customers will not use emerge directly and we will provide binary
> > > > pkgs.
> > > > 
> > > > Any ideas welcome :)
> > > > 
> > > > Jocke
> > > 
> > > Maybe post-phase hooks would help you. Not around a PC right now but I 
> > > think they're described in 
> > > portage.5. 
> > > Long story short, you create per-package env files in /etc/portage/env 
> > > (you can pin them generically or 
> > > to a 
> > > specific version, or package spec via package.env) and declare 
> > > post_src_install() where you add your 
> > > custom 
> > > config files atop the package.  
> > > 
> > 
> > hmm, that sounds interesting but I don't quite get what to do, you think I 
> > should copy over /etc/inittab 
> > after
> > it has been installed by sys-apps/sysvinit with my own version(which is 
> > stored where?)
> 
> Yes, exactly. You can either copy your own, or modify (sed? patch?)
> the standard one. You can store it anywhere, download (unless you
> use network-sandbox) from the net or just inline via here-doc syntax.

Ok, then I got it.

> 
> > This gave me an idea though:
> > In /etc/portage/env/install-mask.conf I add
> >   INSTALL_MASK="${INSTALL_MASK} /etc/inittab /etc/xxx"
> > then in /etc/portage/package.env/install-mask
> >   sys-apps/sysvinit install-mask.conf
> >   sys-apps/xxx install-mask.conf
> >   ...
> > (Can I do this from my own custom profile instead? how?)
> > 
> > This should prevent sys-apps/sysvinit to install conf files I want to 
> > manage, right?
> > 
> > Then I create my own new ebuild holding all config files I have changed 
> > myself.
> 
> Sure. Though I don't understand why would you set it per ebuild -- you
> can set it in make.conf globally in that case, or in make.defaults in
> your profile. If doing the latter, remember to use
> INSTALL_MASK="${INSTALL_MASK} ..." if you want to add additional dirs
> afterwards.

Right, I could add the INSTALL_MASK in make.defaults in my custom profile.
Then just for my own ebuild add package.env which clears INSTALL_MASK etc. so
I can install my own conf files using emerge only.

Seems easier as it does not seem to be package.env support in the profile?

   Jocke

Reply via email to