Note: This page only shows you how to upgrade to 4.4 from 4.3 and 4.3 from 4.2.


Before You UpgradeEdit

New sysmerge toolEdit

Sysmerge(8) is a tool to upgrade your configuration files from 4.3 to 4.4 without losing personal settings. It displays the differences between configuration files in order to keep your settings.

dhcpcd.interfaces isn't usedEdit

dhcpcd.interfaces is no under in use. Modify dhcpcd_flags to set the interfaces. You can also let dhcpcd figure out the interfaces as well.


Since 4.1, /etc/rc.conf is assumed to be unmodified. If you made changes to /etc/rc.conf, merge them into /etc/rc.conf.local.

X11 via driver is replaced with openchromeEdit

If you used to have Driver "via" in xorg.conf, please replace it with Driver "openchrome".


Reboot from the 4.4 CD, press Enter and press U and follow the directions.


Do this command to merge the configuration files for files you want to keep or replace (replace $RELEASEPATH with the location of your CD packages):

# sudo sysmerge -as $RELEASEPATH/etc44.tgz

If you installed X, this needs to be done too: (again, replace $RELEASEPATH)

# sudo sysmerge -x $RELEASEPATH/xetc44.tgz

Now upgrade the packages:

# sudo pkg_add -ui -F update -F updatedepends


Before upgradingEdit

libexpat has been movedEdit

In earlier releases, if you wanted libexpat, you installed xbase. Now, libexpat has been included in base.

httpd.conf has been changedEdit

Packages for httpd(8) modules now install configuration files in /var/www/conf/modules.samples, and direct the user to create symbolic links in /var/www/conf/modules. The following lines should be added to /var/www/conf/httpd.conf after the LoadModule directives (towards the end of section 1):

   # Include extra module configuration files
   Include /var/www/conf/modules/*.conf

This is in the upgrade43.patch file, but may not apply properly to highly customized httpd.conf files. You should make sure these lines end up in your system, otherwise future package additions may not work properly after install.

hoststated's name has changedEdit

hoststated(8) has been renamed to relayd(8). This will require a renaming of the _hoststated user and group to _relayd, plus changes to your /etc/pf.conf file and a minor rework of your hoststated.conf(5) into a relayd.conf(5) file. The upgrade instructions here will install a new relayd.conf file, you will need to configure it as you need.

carpd is easier to configureEdit

carp(4) has been changed to make it easier to configure. If you are running carp with ARP or IP balancing your configuration needs to be changed accordingly:

  • Multiple carp(4) interfaces sharing an IP have been replaced with the carpnodes option.
  • The net.inet.carp.arpbalance sysctl(8) has been replaced with balancing mode arp.
  • The link0, link1, and link2 flags used for IP balancing have been replaced with the balancing modes ip, ip-stealth and ip-unicast.

Xenocara default tree location changedEdit

The default location of the xenocara (X) source tree is now /usr/xenocara. This is important for those who build X from source. Simply move your xenocara tree:

   # mv /usr/src/xenocara /usr


Since 4.1, /etc/rc.conf is assumed to be unmodified. If you made changes to /etc/rc.conf, merge them into /etc/rc.conf.local.


Reboot from the 4.3 CD, press Enter and press U and follow the directions.


Upgrade /etcEdit

You will want to extract the etc43.tgz files to a temporary location (replace ${RELEASEPATH} with the location of your CD packages):

   tar -C /tmp -xzphf ${RELEASEPATH}/etc43.tgz

Files that can probably be copied from etc43.tgz "as is":


Note that it IS possible to locally modify these files, if this has been done, manual merging will be needed. Pay special attention to mail/* if you are using something other than the default Sendmail(8) configuration. Here are copy/paste lines for copying these files, assuming you unpacked etc43.tgz in the above recommended place:

   cd /tmp/etc
   cp moduli netstart ospf6d.conf rc rc.conf relayd.conf security snmpd.conf /etc
   cp mtree/* /etc/mtree/
   cp mail/README /etc/mail
   cp ../var/named/etc/root.hint /var/named/etc

These files likely have local changes, but should be updated for 4.3. IF you have not altered these files, you can copy over the new version, otherwise the changes must be merged with your files:


The changes to these files are in this patch file. You can attempt to use this by executing the following as root:

   cd /
   patch -C -p0 < upgrade43.patch

This will test the patch to see how well it will apply to YOUR system, to actually apply it, leave off the "-C" option. Note that it is likely that if you have customized files or not kept them closely updated, or are upgrading from a snapshot of 4.2, they may not accept the patch cleanly. In those cases, you will need to manually apply the changes. Please test this process before relying on it for a machine you can not easily get to.

/etc/ttys has been made more consistent across platforms, but this makes updating more exciting for this file. It is recommended that you copy over this new file, and manually merge any changes back to the new one:

   mv /etc/ttys /etc/ttys.orig
   cp /tmp/etc/ttys /etc

The following files have had changes which should be looked at, but it is unlikely they should be directly copied or merged (i.e., if you are using pf.conf, look at the suggested change of strategy, and decide if it is appropriate for your use).


There are a couple files that can be deleted that are no longer used in 4.3:

   rm /etc/hoststated.conf /var/named/standard/root.hint

Finally, use newaliases(8) to update the aliases database, mtree(8) to create any new directories, and change the ownership and access to /etc/chio.conf:

   mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
   chown root:operator /etc/chio.conf
   chmod 644 /etc/chio.conf

Upgrade packagesEdit

Run this command:

# sudo pkg_add -ui -F update -F updatedepends