Should I be able to use mergemaster with freebsd-update?

Mike Brown mike at skew.org
Sun Jun 23 04:20:11 UTC 2013


I'm using freebsd-update to upgrade my system to the latest minor version
(from 8.3-RELEASE to 8.4-RELEASE).

I'm surprised that the merge handling system isn't more robust. When upgrading 
the old way, from source, I was used to using mergemaster to handle any 
merges that couldn't be done automatically.

But when using freebsd-update, it seems that any failed merges require that 
you get dumped into an empty text editor for each file. It doesn't even tell 
you where the new file is so you can load it and compare it to the old one. 
After that, you're asked to approve every diff, but if you reject one, you 
don't get a chance to re-edit; the entire upgrade aborts and you have to 
start all over again. 

Since it wasn't obvious what to do, last time I upgraded, I just loaded all my 
old files and kept them as-is, without merging them. This time, I'm trying to 
actually take care of them when prompted.

When I get dumped into the empty text editor, I suppose it's not too hard to 
figure out that the new file is in /var/db/freebsd-update/merge/8.4-RELEASE, 
but that's certainly not documented anywhere. It could at least be mentioned 
prior to being sent to the editor. The old file is mentioned, so why not the 
new?

Regardless, when doing a manual merge by loading both files and consolidating 
them, or by copy-paste voodoo between terminal windows, it is far easier to 
screw up than mergemaster's method, at least in my experience. So I was 
thinking that when I get to this stage of the freebsd-update process, it would 
be nice to use mergemaster in a separate terminal window.

I mean, I know where the new files are, and I know where I need the merged 
files to go, so it should be just a matter of invoking mergemaster with the 
right flags, right? Then when I'm dumped into a text editor, it won't be 
empty; I'll see the mergemaster-produced file, and can just give it a 
once-over.

The handbook even mentions mergemaster as if it is an option:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html#freebsdupdate-config-file
...or at least, it suggests I read about it, for some reason.

But I can't figure out how to get mergemaster to use freebsd-update's file 
locations. Here is what I tried:

mergemaster -ciFv -m /var/db/freebsd-update/merge/8.4-RELEASE -D /var/db/freebsd-update/merge/new


Here's what that results in, even if I add trailing slashes:

make: don't know how to make distrib-dirs. Stop
make: don't know how to make distrib-dirs. Stop

  *** FATAL ERROR: Cannot 'cd' to /var/db/freebsd-update/merge/8.4-RELEASE and install files to
      the temproot environment


Any suggestions appreciated.


More information about the freebsd-questions mailing list