OESF Portal | OESF Forum | OESF Wiki | LinuxPDA | #planetgemini chat on matrix.org | #gemini-pda chat on Freenode | #zaurus and #alarmz chat on Freenode | ELSI (coming soon) | Ibiblio


Welcome Guest ( Log In | Register )

Reply to this topicStart new topic
> Mergemaster Tutorial
post Sep 15 2007, 09:06 AM
Post #1

Group: Members
Posts: 301
Joined: 8-July 06
From: United Kingdom for now....
Member No.: 10,349

Here's some good information on how to use mergemaster.
The original article can be found here: http://undeadly.org/

OpenBSD 4.2 is scheduled for release on November 1 and systems running releases prior to 4.2 should be upgraded. Mergemaster is a tool in ports included that minimizes upgrade headaches by merging system configuration files from OpenBSD 4.1 with the new 4.2 /etc and /var files.

Mergemaster uses a temporary root containing the 4.2 configuration files and "compares the cvs(1) version $OpenBSD strings for files that have them, deleting the temporary file if the strings match. If there is no $OpenBSD string, or if the strings are different it compares the files themselves" (from mergemaster(1)). If the files are different, mergemaster prompts for what action to take: delete, install, merge or leave it for later. All responses given to mergemaster require pressing the [Enter].

To get started with mergemaster, create a temporary directory (mkdir /var/tmp/temproot) for the 4.2 files. Extract etc42.tgz (and xetc42.tgz if using X) to the temporary directory (tar -xvzpf etc42.tgz -C /var/tmp/temproot; tar -xvzpf xetc42.tgz -C /var/tmp/temproot). Run: mergemaster -ir

In the mergemaster command, "-ir" could really be "-i -r". "-i" tells mergemaster to automatically install new files. "-r" directs mergemaster to use a pre-exising temporary root directory instead of making one from source in /var/tmp/temproot.

As mergemaster compares the new files with the old files, use "d" to keep the 4.1 file (deleting the temporary file), "i" to install the 4.2 file (overwriting the old one), "m" to merge the two files or press [Enter] to "leave the temporary file to deal with by hand":


      *** Displaying differences between ./etc/group and installed version:

    --- /etc/group  Tue Sep  4 15:34:23 2007
    +++ ./etc/group Tue Aug 28 12:00:10 2007
    @@ -1,4 +1,4 @@
    @@ -57,4 +57,3 @@

      Use 'd' to delete the temporary ./etc/group
      Use 'i' to install the temporary ./etc/group
      Use 'm' to merge the temporary and installed versions
      Use 'v' to view the diff results again

      Default is to leave the temporary file to deal with by hand

    How should I deal with this? [Leave it for later]

In merge mode, mergemaster invokes sdiff(1), which prompts at each set of differences for which part should be kept. Press "l" to keep the left side (old file) or "r" to install the right side (new file). Sometimes there are local changes in a file that you want to merge with the official changes. To do this, enter "eb" and $EDITOR is launched allowing manual merging of that set of differences. When the merge process is done, choose "i" to install the merged file, "r" to redo the merge, "v" to view the merged file or "Leave it for later".

    How should I deal with this? [Leave it for later] m

    wheel:*:0:root,erdelym                                              | wheel:*:0:root
    e:      edit blank diff
    eb:    edit both diffs concatenated
    el:    edit left diff
    er:    edit right diff
    l | 1:  choose left diff
    r | 2:  choose right diff
    s:      silent mode--don't print identical lines
    v:      verbose mode--print identical lines
    q:      quit

When mergemaster is done, it asks whether or not to delete what is left in the temporary root. If "Leave it for later" was ever chosen, press [Enter] to choose "no". Otherwise, type "yes". If some files were left for later, manually upgrade the files left in the temporary root.

It's a good idea to ensure your directories and file permissions are correct by running something like:

    mtree -qdef /etc/mtree/4.4BSD.dist -p / -u

At this point, the upgrade process is done. Reboot to ensure the new configuration files allow the system to start up properly.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:


RSS Lo-Fi Version Time is now: 18th January 2019 - 05:52 AM