[FAQ Index] | [7.0 -> 7.1] [7.2 -> 7.3]
Upgrades are only supported from one release to the release immediately following.
Read through and understand this process before attempting it. For critical or physically remote machines, test it on an identical, local system first.
/usr partition has a size of at least 1.1G.
  With less space the upgrade may fail and you should consider reinstalling
  the system instead.
  
bsd.rd.
  Download the ramdisk kernel and the cryptographically-signed checksum file
  for your architecture.
  
bsd.rdSHA256.sig
  Verify bsd.rd and SHA256.sig using
  signify(1):
  
$ signify -C -p /etc/signify/openbsd-72-base.pub -x SHA256.sig bsd.rd Signature Verified bsd.rd: OK
bsd.rd, retrieved 
in the previous step. Place it in the root of your filesystem and 
instruct the boot loader to boot this kernel. Once this kernel is 
booted, choose the (U)pgrade option and follow the prompts.
After upgrading the sets, the system will reboot with the upgraded kernel and run sysmerge(8) during boot. In some cases, configuration files cannot be modified automatically. Run
# sysmergeto check and perform these configuration changes.
Next remove the old files.
Finish up by upgrading the packages using pkg_add -u.
You may wish to check the errata page for any post-release fixes.
Sometimes, you need to perform an upgrade of a machine for which the normal unattended or interactive upgrade process is not possible.
softdep mount option in
    /etc/fstab and rebooting before undertaking a manual upgrade.
    Having at least 500MB free on /usr would be recommended.
  
sd0 is your boot disk:
    # installboot sd0
If using the multiprocessor kernel:
# cd /usr/rel # where you put the release files # ln -f /bsd /obsd && cp bsd.mp /nbsd && mv /nbsd /bsd # cp bsd.rd / # cp bsd /bsd.spIf using the single processor kernel:
# cd /usr/rel # where you put the release files # ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd # cp bsd.rd bsd.mp / # may give a harmless warning
# sha256 -h /var/db/kernel.SHA256 /bsd
base72.tgz last, because the new base system,
    in particular tar(1),
    gzip(1) and
    reboot(8),
    will not work with the old kernel.
    Either untar the needed filesets manually:
    # cp /sbin/reboot /sbin/oreboot # tar -C / -xzphf xshare72.tgz # tar -C / -xzphf xserv72.tgz # tar -C / -xzphf xfont72.tgz # tar -C / -xzphf xbase72.tgz # tar -C / -xzphf man72.tgz # tar -C / -xzphf game72.tgz # tar -C / -xzphf comp72.tgz # tar -C / -xzphf base72.tgz # Install last! # /sbin/orebootor, if you use ksh(1), you can do:
# cp /sbin/reboot /sbin/oreboot # for _f in [!b]*72.tgz base72.tgz; do tar -C / -xzphf "$_f" || break; done # /sbin/orebootNote that tar(1) can expand only one archive per invocation, so a simple glob won't work.
/dev.
    Run
    MAKEDEV(8):
    # cd /dev # ./MAKEDEV all
sd0 is your boot disk:
    # installboot sd0
# sysmerge
# fw_update
dmesg -s)
    and correct any failures as necessary.
    All the steps following configuration changes
    below also apply to manual upgrades.
    Finally, remove /sbin/oreboot and update packages:
    pkg_add -u.
    Reboot once more to make sure you use the newest firmware files
    and run on your own kernel generated by KARL.
/etc/ttys making the serial
  console unusable.
  
  Change the baud rate from 38400 to 115200 for the console entry in
  /etc/ttys.
  
The ${rcexec} variable used to start daemons with rc.d(8) has been replaced with a more complete rc_exec() function.
Handcrafted rc.d(8) scripts must be modified to use this new function:
  # sed -i 's/\${rcexec}/rc_exec/' /etc/rc.d/myscript
  Compatibility will be retained until next release.
filter-pf-addresses has been deprecated.
  
  If you have filter-pf-addresses yes in your config, it should be
  changed to blocklist pfTblAddrTable.
  
To cleanup the user, group, and associated files execute the following commands:
    # userdel _switchd
    # groupdel _switchd
    # rm /etc/rc.d/switchd \
         /usr/sbin/switchctl \
         /usr/sbin/switchd \
         /usr/share/man/man4/switch.4 \
         /usr/share/man/man5/switchd.conf.5 \
         /usr/share/man/man8/switchctl.8 \
         /usr/share/man/man8/switchd.8
Backup before updating, and be prepared for a more complicated upgrade than usual. Some pointers are given here, but you should also consult the upstream documentation regarding upgrades.
OpenLDAP no longer supports the BDB/HDB legacy database formats based on Berkeley DB. If you are using BDB/HDB, you will need to prepare in advance so that you can move to MDB.
  Before updating, stop slapd and use slapcat to dump your
  database(s) to ldif files. (Saving ldif files is recommended as part
  of your regular maintenance anyway, but particularly important at
  this time).
  
  Adjust the backend database in your configuration to use
  mdb instead of bdb/hdb. If you are using the old-style
  /etc/openldap/slapd.conf config file, this is relatively
  straightforward. If you are using upstream's recommended online
  configuration ("cn=config"), this is normally edited "in-band" via
  LDAP, but you might find it difficult to make this type of change
  in the usual way. Instead, you can export to ldif with
  slapcat -n 0, edit the exported file, then reload with
  slapadd -n 0. Do not edit the ldif files in
  /etc/openldap/slapd.d directly.
  
Regarding the actual changes you need to make: for the simplest case you just need to change "bdb" to "mdb". slapd-bdb(5) has various tuning options which are not used by slapd-mdb(5) (for example, cachesize) - these will need to be removed. For more information, consult the upstream documentation.
After restarting with the updated configuration, you will need to reload your database from the ldif file using slapadd (or if you are updating a read-only replica you could let syncrepl pick it up).
The openldap-server package has changed to a modular build.
The most important backend and overlay (mdb and syncprov) are still compiled-in as before, but if you use the less common ones (including backends like back_perl) you will need to adjust your configuration to load them. If you use online configuration, see "olcModuleLoad". If you use slapd.conf, see "moduleload".
  If you find the changes unwelcome, the OpenBSD package includes a
  copy of the old colour schemes under the legacy
  subdirectory to make it easier to revert if desired. You can use
  the subdirectory directly in colorscheme in your
  configuration, but as these are not included as standard in upstream
  Vim, if you share config files between various machines you may wish
  to copy the relevant files from
  /usr/local/share/vim/vim82/colors/legacy to
  ~/.vim/colors which take priority.
  
  PinYin is no longer bundled. You will need to install
  fcitx-chinese-addons to use it.
  
Methods previously provided by the fcitx-table package have been split into two packages:
fcitx-chinese-addons.
  fcitx-table-extra.
  
  If you are starting fcitx from .xsession, update it with
      the following:
  
export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx /usr/local/bin/fcitx5 &
  You might need to re-run fcitx5-configtool
  to reconfigure your input method.
  
  To setup an input engine, run fcitx5-configtool after
  starting fcitx5, then select and add your preferred input method from
  the Available Input Method panel. You might need to uncheck 'Only Show
  Current Language' to find your preferred input method.
  
  After restarting with the updated configuration, fcitx should be
  usable. Refer to /usr/local/share/doc/pkg-readmes/fcitx
  if something doesn't work or you need to troubleshoot.
  
acache-cleaning-interval acache-enable additional-from-auth additional-from-cache allow-v6-synthesis cleaning-interval dnssec-enable dnssec-lookaside filter-aaaa filter-aaaa-on-v4 filter-aaaa-on-v6 geoip-use-ecs lwres max-acache-size nosit-udp-size queryport-pool-ports queryport-pool-updateinterval request-sit sit-secret support-ixfr use-queryport-pool use-ixfr
defaults write sogod WOPort 127.0.0.1:20000