Upgrading OpenBSD 6.5 to 6.6 on Hetzner Cloud

Published on 2019-10-17 and last updated on 2019-11-17

This guide explains how to upgrade an OpenBSD 6.5 server running on Hetzner Cloud to OpenBSD 6.6.

Update the system using syspatch:

user@host ~$: syspatch
[...]

Make sure sysupgrade is available:

user@host ~$: which sysupgrade
/usr/sbin/sysupgrade

Disable Semantically Opaque Interface Identifiers by removing -soii from /etc/hostname.vio0:

dhcp
inet6 2a01:4f9:dead:beef::23 64

Run sysupgrade:

user@host ~$: sysupgrade
[...]

The tool will download necessary files, reboot and upgrade the system. You can watch it happening in the web console.

Update the ACME API URL in /etc/acme-client.conf:

https://acme-v02.api.letsencrypt.org/directory

Remove obsolete files:

user@host ~$: rm -f /usr/sbin/snmpctl \
  /usr/share/man/man8/snmpctl.8

user@host ~$: rm -f /usr/X11R6/lib/pkgconfig/libfs.pc \
  /usr/X11R6/include/X11/fonts/FSlib.h

user@host ~$: rm -rf  /usr/X11R6/share/doc/libFS

user@host ~$: rm -f /usr/X11R6/bin/xman \
  /usr/X11R6/lib/X11/xman.help \
  /usr/X11R6/man/man1/xman.1 \
  /usr/X11R6/share/X11/app-defaults/Xman

user@host ~$: rm -f /usr/X11R6/bin/xman \
  /usr/X11R6/lib/X11/xman.help \
  /usr/X11R6/man/man1/xman.1 \
  /usr/X11R6/share/X11/app-defaults/Xman \
  /usr/X11R6/lib/pkgconfig/libfs.pc \
  /usr/X11R6/lib/modules/v10002d.uc \
  /usr/X11R6/lib/modules/v20002d.uc \
  /usr/X11R6/lib/modules/drivers/ark_drv.la \
  /usr/X11R6/lib/modules/drivers/ark_drv.so \
  /usr/X11R6/lib/modules/drivers/chips_drv.la \
  /usr/X11R6/lib/modules/drivers/chips_drv.so \
  /usr/X11R6/lib/modules/drivers/glint_drv.la \
  /usr/X11R6/lib/modules/drivers/glint_drv.so \
  /usr/X11R6/lib/modules/drivers/i128_drv.la \
  /usr/X11R6/lib/modules/drivers/i128_drv.so \
  /usr/X11R6/lib/modules/drivers/neomagic_drv.la \
  /usr/X11R6/lib/modules/drivers/neomagic_drv.so \
  /usr/X11R6/lib/modules/drivers/rendition_drv.la \
  /usr/X11R6/lib/modules/drivers/rendition_drv.so \
  /usr/X11R6/lib/modules/drivers/s3_drv.la \
  /usr/X11R6/lib/modules/drivers/s3_drv.so \
  /usr/X11R6/lib/modules/drivers/s3virge_drv.la \
  /usr/X11R6/lib/modules/drivers/s3virge_drv.so \
  /usr/X11R6/lib/modules/drivers/sis_drv.la \
  /usr/X11R6/lib/modules/drivers/sis_drv.so \
  /usr/X11R6/lib/modules/drivers/tdfx_drv.la \
  /usr/X11R6/lib/modules/drivers/tdfx_drv.so \
  /usr/X11R6/lib/modules/drivers/trident_drv.la \
  /usr/X11R6/lib/modules/drivers/trident_drv.so \
  /usr/X11R6/lib/modules/drivers/tseng_drv.la \
  /usr/X11R6/lib/modules/drivers/tseng_drv.so \
  /usr/X11R6/man/man4/chips.4 \
  /usr/X11R6/man/man4/glint.4 \
  /usr/X11R6/man/man4/i128.4 \
  /usr/X11R6/man/man4/neomagic.4 \
  /usr/X11R6/man/man4/rendition.4 \
  /usr/X11R6/man/man4/s3.4 \
  /usr/X11R6/man/man4/s3virge.4 \
  /usr/X11R6/man/man4/sis.4 \
  /usr/X11R6/man/man4/tdfx.4 \
  /usr/X11R6/man/man4/trident.4 \
  /usr/X11R6/man/man4/tseng.4 \
  /usr/X11R6/man/man3/XkbAllocGeomOverlayKey.3

user@host ~$: rm -f /usr/X11R6/include/X11/fonts/FSlib.h \
  /usr/include/dev/ic/dwc_gmac_reg.h \
  /usr/include/dev/ic/dwc_gmac_var.h \
  /usr/include/llvm/Analysis/IndirectCallSiteVisitor.h \
  /usr/include/llvm/CodeGen/GCs.h \
  /usr/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h \
  /usr/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h \
  /usr/include/llvm/IR/TypeBuilder.h \
  /usr/include/llvm/Transforms/Utils/OrderedInstructions.h

user@host ~$: rm -f /usr/share/man/man1/clang++.1 \
  /usr/share/man/man1/clang-cpp.1 \
  /usr/share/man/man1/diagnostics.1 \
  /usr/share/man/man3/SipHash24.3 \
  /usr/share/man/man3/bitstring.3 \
  /usr/share/man/man3/byteorder.3 \
  /usr/share/man/man3/directory.3 \
  /usr/share/man/man3/ethers.3 \
  /usr/share/man/man3/exec.3 \
  /usr/share/man/man3/fts.3 \
  /usr/share/man/man3/getcap.3 \
  /usr/share/man/man3/inet_net.3 \
  /usr/share/man/man3/md5.3 \
  /usr/share/man/man3/pcap-filter.3 \
  /usr/share/man/man3/pcap.3 \
  /usr/share/man/man3/pwcache.3 \
  /usr/share/man/man3/resolver.3 \
  /usr/share/man/man3/rmd160.3 \
  /usr/share/man/man3/sha1.3 \
  /usr/share/man/man3/sha2.3 \
  /usr/share/man/man3/stdarg.3 \
  /usr/share/man/man3/uucplock.3 \
  /usr/share/man/man3/uuid.3 \
  /usr/share/man/man3/ypclnt.3 \
  /usr/share/man/man4/i386/vmm.4 \
  /usr/share/man/man4/macppc/openprom.4 \
  /usr/share/man/man4/sparc64/openprom.4

Run syspatch to install available operating system patches:

user@host ~$: syspatch
[...]

Update all packages installed with pkg_add:

user@host ~$: pkg_add -u
[...]

Check whether your config files need to be updated:

user@host ~$: sysmerge -d
[...]

Reboot.

You are done.