A smarter mergemaster

Oliver Fromme olli at lurza.secnetix.de
Fri Sep 30 03:33:39 PDT 2005

Brian Candler <B.Candler at pobox.com> wrote:
 > On Fri, Sep 30, 2005 at 02:45:48AM +0400, Yar Tikhiy wrote:
 > > The fruitiest features are as follows:
 > Will it automatically install new versions of files where the old one was
 > not altered? That's my biggest bugbear with mergemaster - it asks you about
 > a zillion files in /etc/rc.d which you have to manually agree to overwrite
 > just because the RCS ID has changed.

There's already a knob in /etc/mergemaster.rc to skip files
if only the RCS ID has changed.

However, IMHO, if more than just the RCS ID has changed,
the changes should always be displayed, no matter whether
the local copy had been modified or not.  The changes
could always be important (especially in the case of

Personally, I would like to see a knob (e.g. something
in /etc/mergemaster.rc) to always install certain files
without asking.  The files should be specified by name
or directory path.  The best example for this would be
the contents of /etc/mtree and /etc/gnats -- I never care
about those files, and I _always_ want the new files to
be installed, no matter what.  This could be a knob in
/etc/mergemaster.rc, like this:

ALWAYS_INSTALL="/etc/mtree/* /etc/gnats/*"

I could create a small patch for such a feature, if the
maintainer accepts it (Doug Barton, I think).

On a related note, an ALWAYS_DELETE setting could be
useful for things like /etc/motd (I have my own text in
the motd, and I never want it to be overwritten).

Of course, as always, it's in the admins responsibility
to use such settings wisely and not shoot himself in the
foot.  (It's UNIX tradition to not prevent anyone from
shooting his foot, as long as the defaults are reasonably
safe and there are sufficient warnings in the docs.)

 > Also, can we have mergemaster work as part of the binary upgrade process too
 > please... the new files are in /usr/share/examples/etc so I don't see why we
 > can't merge directly from there into /etc

Uhm, I thought that was already possible?  Of course, you
must have the (new) sources installed under /usr/src in
order to be able to run mergemaster, but I don't think that
a buildworld/installworld is required.  It should also be
possible to use mergemaster after a binary upgrade.

Best regards

Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.

(On the statement print "42 monkeys" + "1 snake":)  By the way,
both perl and Python get this wrong.  Perl gives 43 and Python
gives "42 monkeys1 snake", when the answer is clearly "41 monkeys
and 1 fat snake".        -- Jim Fulton

More information about the freebsd-current mailing list