Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Apr 2019 12:55:44 +0100
From:      Matthew Seaman <matthew@FreeBSD.org>
To:        freebsd-stable@freebsd.org
Subject:   Re: CFT: FreeBSD Package Base
Message-ID:  <701337aa-9236-a089-db11-85405642ead7@FreeBSD.org>
In-Reply-To: <20190429105240.GB2396@elch.exwg.net>
References:  <002901d4fdfb$e52eb890$af8c29b0$@ixsystems.com> <15583041-1D56-44BE-8E88-ECC11C935A09@gromit.dlib.vt.edu> <34C3A77A-7B18-487E-9BC4-5B1087FEEBEA@bway.net> <20190429100104.GX62338@e.0x20.net> <20190429105240.GB2396@elch.exwg.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 29/04/2019 11:52, Christoph Moench-Tegeder wrote:
> This situation should be improved. Given that etcupdate is in all
> supported releases, we can even update UPDATING and the Handbook.
> So, does anyone have a pointer to the official procedure?

Basically run:

   # etcupdate

towards the end of your standard update-from-src process.  Pretty much 
all the available arguments to etcupdate have sane defaults, so it's 
quite likely you can just run the bare command.  (Obv. check the man 
page for details though)  It will automatically do a 3-way merge between 
the latest sources, the sources from the previous time you ran etcupdate 
and your deployed configuration in /etc

Most of the time, that's all you need to do.  Occasionally however 
etcupdate will run into a merge conflict.  When that happens etcupdate 
will display a SVN-like status report showing the conflicting files and 
refuse to do anything until the conflicts have been resolved.  Which you 
do by:

   # etcupdate resolve

That's an interactive process which runs through all of the conflicts 
and allows you to examine the differences and select either your own or 
the upstream version, or to just edit the files and merge the conflicts 
manually.  Should be pretty familiar if you've ever used git or svn...

Once everything has been marked as resolved, etcupdate reverts back to 
the usual behaviour and will automatically merge in any new updates as 
far as possible.

Most of the time using etcupdate just boils down to a single, 
non-interactive command to keep everything up to date during the update 
process.  Much less faff than using mergemaster.

Occasionally you may need to run:

   # etcupdate -p

before you 'make buildworld' -- that's in exactly the same circumstances 
where you'ld previously have run 'mergemaster -p' and it does the same 
job: apply any necessary changes to allow your build to succeed.  The 
times you need to do this should be flagged in UPDATING.

	Cheers,

	Matthew




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?701337aa-9236-a089-db11-85405642ead7>