diff --git a/content/posts/2023-07-29-going-back-from-openbsd-current/index.md b/content/posts/2023-07-29-going-back-from-openbsd-current/index.md
new file mode 100644
index 0000000..7f89614
--- /dev/null
+++ b/content/posts/2023-07-29-going-back-from-openbsd-current/index.md
@@ -0,0 +1,388 @@
++++
+# vim: ft=markdown
+title = 'Going back from OpenBSD-current'
+summary = '''Made from the road of me trying out OpenBSDs current branch. Something
+broke and I wasn't able to view images...'''
+date = '2023-07-29T11:48:51+02:00'
+# lastmod = ''
+categories = [ 'computerstuff' ]
+tags = [ 'openbsd' ]
+
++++
+
+The road begins on a currently updated OpenBSD 7.3 release. That means, the following commands
+have been initiated and completed without errors.
+
+```console
+$ doas syspatch
+$ doas fw_update
+fw_update: added none; updated none; kept intel,inteldrm,iwn,uvideo,vmm
+$ doas pkg_add -uU
+quirks-6.121 signed on 2023-07-25T19:47:50Z
+```
+
+{{< alert "circle-info" >}}
+This article may be hard to follow, because some hints are probably missing. Use your common
+sense to fill these gaps yourself.
+{{< /alert >}}
+
+## Backups never hurt
+
+We will save a list of the currently installed packages. Just for the case...
+
+```console
+$ pkg_info -m >package-list.txt
+```
+
+## Upgrading to the latest snapshot
+
+```console
+$ doas sysupgrade -s
+Fetching from https://ftp.hostserver.de/pub/OpenBSD/snapshots/amd64/
+SHA256.sig 100% |********************************| 2144 00:00
+Signature Verified
+INSTALL.amd64 100% |*******************************| 44817 00:00
+base73.tgz 100% |********************************| 368 MB 02:56
+bsd 100% |********************************| 24714 KB 00:06
+bsd.mp 100% |********************************| 24790 KB 00:10
+bsd.rd 100% |********************************| 4549 KB 00:01
+comp73.tgz 100% |********************************| 75592 KB 00:31
+game73.tgz 100% |********************************| 2748 KB 00:01
+man73.tgz 100% |********************************| 7822 KB 00:02
+xbase73.tgz 100% |********************************| 57148 KB 00:23
+xfont73.tgz 100% |********************************| 22968 KB 00:14
+xserv73.tgz 100% |********************************| 14950 KB 00:09
+xshare73.tgz 100% |********************************| 4578 KB 00:02
+Verifying sets.
+Fetching updated firmware.
+fw_update: added none; updated intel,inteldrm,vmm; kept iwn,uvideo
+Upgrading.
+```
+
+The computer reboots automatically at this point. After the reboot, we
+upgrade all the installed packages.
+
+```console
+$ doas pkg_add -D snap -uvi
+Update candidates: quirks-6.121 -> quirks-6.135
+quirks-6.135 signed on 2023-07-28T05:14:51Z
+quirks-6.121->6.135: ok
+Update candidates: adwaita-icon-theme-43 -> adwaita-icon-theme-44.0p0
+Update candidates: librsvg-2.54.5p2 -> librsvg-2.56.3
+Update candidates: libxml-2.10.4 -> libxml-2.11.4
+Update candidates: libiconv-1.17 -> libiconv-1.17
+adwaita-icon-theme-44.0p0:libiconv-1.17->1.17: ok
+Update candidates: xz-5.4.1 -> xz-5.4.3
+adwaita-icon-theme-44.0p0:xz-5.4.1->5.4.3: ok
+adwaita-icon-theme-44.0p0:libxml-2.10.4->2.11.4: ok
+Update candidates: pango-1.50.14 -> pango-1.50.14
+Update candidates: harfbuzz-7.1.0 -> harfbuzz-8.0.1
+Update candidates: graphite2-1.3.14 -> graphite2-1.3.14
+adwaita-icon-theme-44.0p0:graphite2-1.3.14->1.3.14: ok
+Update candidates: cairo-1.17.8 -> cairo-1.17.8p0
+Update candidates: png-1.6.39 -> png-1.6.39
+adwaita-icon-theme-44.0p0:png-1.6.39->1.6.39: ok
+Update candidates: glib2-2.74.6 -> glib2-2.76.4
+Update candidates: libffi-3.4.4 -> libffi-3.4.4
+adwaita-icon-theme-44.0p0:libffi-3.4.4->3.4.4: ok
+Update candidates: pcre2-10.37p1 -> pcre2-10.37p1
+Update candidates: bzip2-1.0.8p0 -> bzip2-1.0.8p0
+adwaita-icon-theme-44.0p0:bzip2-1.0.8p0->1.0.8p0: ok
+adwaita-icon-theme-44.0p0:pcre2-10.37p1->10.37p1: ok
+Update candidates: python-3.10.12 -> python-3.10.12
+Update candidates: gettext-runtime-0.21.1 -> gettext-runtime-0.21.1
+adwaita-icon-theme-44.0p0:gettext-runtime-0.21.1->0.21.1: ok
+Update candidates: sqlite3-3.41.0 -> sqlite3-3.42.0
+adwaita-icon-theme-44.0p0:sqlite3-3.41.0->3.42.0: ok
+Can't install python-3.10.12 because of libraries
+|library crypto.51.0 not found
+| /usr/lib/libcrypto.so.50.0 (system): bad major
+| /usr/lib/libcrypto.so.50.2 (system): bad major
+| /usr/lib/libcrypto.so.52.0 (system): bad major
+|library ssl.54.0 not found
+| /usr/lib/libssl.so.53.0 (system): bad major
+| /usr/lib/libssl.so.53.2 (system): bad major
+| /usr/lib/libssl.so.55.0 (system): bad major
+Direct dependencies for python-3.10.12->3.10.12 resolve to bzip2-1.0.8p0 xz-5.4.3 libffi-3.4.4 sqlite3-3.42.0 gettext-runtime-0.21.1
+Full dependency tree is libiconv-1.17 sqlite3-3.42.0 gettext-runtime-0.21.1 bzip2-1.0.8p0 xz-5.4.3 libffi-3.4.4
+adwaita-icon-theme-44.0p0:glib2-2.74.6->2.76.4: ok
+Update candidates: lzo2-2.10p2 -> lzo2-2.10p2
+adwaita-icon-theme-44.0p0:lzo2-2.10p2->2.10p2: ok
+adwaita-icon-theme-44.0p0:cairo-1.17.8->1.17.8p0: ok
+adwaita-icon-theme-44.0p0:.libs-harfbuzz-5.2.0+harfbuzz-7.1.0->harfbuzz-8.0.1: ok
+Update candidates: fribidi-1.0.12 -> fribidi-1.0.13
+adwaita-icon-theme-44.0p0:fribidi-1.0.12->1.0.13: ok
+adwaita-icon-theme-44.0p0:pango-1.50.14->1.50.14: ok
+Update candidates: gdk-pixbuf-2.42.10 -> gdk-pixbuf-2.42.10
+Update candidates: shared-mime-info-2.2 -> shared-mime-info-2.2
+adwaita-icon-theme-44.0p0:shared-mime-info-2.2->2.2: ok
+Update candidates: tiff-4.5.0p0 -> tiff-4.5.1
+Update candidates: jpeg-2.1.4v0 -> jpeg-2.1.5.1v0
+adwaita-icon-theme-44.0p0:jpeg-2.1.4v0->2.1.5.1v0: ok
+Update candidates: zstd-1.5.5 -> zstd-1.5.5
+Update candidates: lz4-1.9.4 -> lz4-1.9.4
+adwaita-icon-theme-44.0p0:lz4-1.9.4->1.9.4: ok
+adwaita-icon-theme-44.0p0:zstd-1.5.5->1.5.5: ok
+adwaita-icon-theme-44.0p0:.libs-tiff-4.4.0p2+tiff-4.5.0p0->tiff-4.5.1: ok
+adwaita-icon-theme-44.0p0:gdk-pixbuf-2.42.10->2.42.10: ok
+adwaita-icon-theme-44.0p0:librsvg-2.54.5p2->2.56.3: ok
+Update candidates: hicolor-icon-theme-0.17 -> hicolor-icon-theme-0.17
+gtk-update-icon-cache-3.24.37->gtk4-update-icon-cache-4.10.4 forward dependencies:
+| Dependency of neovim-0.8.3 on gtk-update-icon-cache-* doesn't match
+| Dependency of gtk+3-3.24.37 on gtk-update-icon-cache-* doesn't match
+| Dependency of adwaita-icon-theme-43 on gtk-update-icon-cache-* doesn't match
+| Dependency of gnome-icon-theme-3.12.0p6 on gtk-update-icon-cache-* doesn't match
+| Dependency of nitrogen-1.6.1p2 on gtk-update-icon-cache-* doesn't match
+| Dependency of gcr-3.41.1p1 on gtk-update-icon-cache-* doesn't match
+| Dependency of chromium-111.0.5563.110 on gtk-update-icon-cache-* doesn't match
+| Dependency of gnome-icon-theme-symbolic-3.12.0p4 on gtk-update-icon-cache-* doesn't match
+| Dependency of gtk+2-2.24.33p4 on gtk-update-icon-cache-* doesn't match
+Update candidates: neovim-0.8.3 -> neovim-0.9.1p0
+Merging neovim-0.8.3->0.9.1p0 (ok)
+
+[...]
+```
+
+There are more messages that I found interesting, but I haven't found much information about
+these yet.
+
+```console
+[...]
+Update candidates: drill-1.8.3 -> drill-1.8.3p0
+Update candidates: libldns-1.8.3 -> libldns-1.8.3p0
+Can't install libldns-1.8.3p0 because of libraries
+Can't install drill-1.8.3p0 because of libraries
+Direct dependencies for drill-1.8.3->1.8.3p0 resolve to libldns-1.8.3
+Full dependency tree is libldns-1.8.3
+[...]
+```
+
+```console
+[...]
+Detected loop, merging sets ok
+| gtk+3-cups-3.24.37->3.24.38
+| adwaita-icon-theme-43+chromium-111.0.5563.110+gcr-3.41.1p1+gnome-icon-theme-3.12.0p6+gnome-icon-theme-symbolic-3.12.0p4+gtk+2-2.24.33p4+gtk+3-3.24.37+gtk-update-icon-cache-3.24.37+neovim-0.8.3+nitrogen-1.6.1p2->adwaita-icon-theme-44.0p0+chromium-115.0.5790.102+gcr-3.41.1p2+gnome-icon-theme-3.12.0p7+gnome-icon-theme-symbolic-3.12.0p5+gtk+2-2.24.33p5+gtk+3-3.24.38+gtk4-update-icon-cache-4.10.4+neovim-0.9.1p0+nitrogen-1.6.1p3
+Update candidates: cups-libs-2.4.2p0 -> cups-libs-2.4.6
+Update candidates: avahi-libs-0.8p3 -> avahi-libs-0.8p3
+Update candidates: libevent-2.1.12p0 -> libevent-2.1.12p0
+Can't install libevent-2.1.12p0 because of libraries
+Update candidates: dbus-1.14.6p0v0 -> dbus-1.14.8v0
+[...]
+```
+
+At this point I spent a few hours looking for a solution---I haven't found one yet. I will
+probably don't look back on current to soon.
+
+## Revert back to -release
+
+Nonetheless, I could not fix this and I wanted to revert my system back to -release.
+There is no command to downgrade from -current back to -release so we have to re-install the
+base files of the last -release.
+
+Boot the `bsd.rd` kernel which will boot up to this prompt:
+
+```console
+Welcome to the OpenBSD/amd64 7.3 installation program.
+(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? █
+```
+
+Enter u and hit Enter.
+
+```console
+At any prompt except password prompts you can escape to a shell by
+typing '!'. Default answers are shown in []'s and are selected by
+pressing RETURN. You can exit this program at any time by pressing
+Control-C, but this can leave yout system in an inconsistent state.
+
+Choose your keyboard layout ('?' or 'L' for list) [default] de.nodead
+Available disks are: sd0.
+Which disk is the root disk? ('?' for details) [sd0] sd0
+Checking root filesystem (fsck -fp /dev/sd0a)... OK.
+Mounting root filesystem (mount -o ro /dev/sd0a /mnt)... OK.
+ifconfig: route: bad value
+Force checking of clean non-root filesystems? [no] no
+fsck -p 888c179eaf1d9c7e.l... OK.
+fsck -p 888c179eaf1d9c7e.d... OK.
+fsck -p 888c179eaf1d9c7e.f... OK.
+fsck -p 888c179eaf1d9c7e.g... OK.
+fsck -p 888c179eaf1d9c7e.h... OK.
+fsck -p 888c179eaf1d9c7e.k... OK.
+fsck -p 888c179eaf1d9c7e.j... OK.
+fsck -p 888c179eaf1d9c7e.e... OK.
+/dev/sd0a (888c179eaf1d9c7e.a) on /mnt type ffs (rw, local)
+/dev/sd0l (888c179eaf1d9c7e.l) on /mnt/home type ffs (rw, local, nodev, nosuid)
+/dev/sd0d (888c179eaf1d9c7e.d) on /mnt/tmp type ffs (rw, local, nodev, nosuid)
+/dev/sd0f (888c179eaf1d9c7e.f) on /mnt/usr type ffs (rw, local, nodev)
+/dev/sd0g (888c179eaf1d9c7e.g) on /mnt/usr/X11R6 type ffs (rw, local, nodev)
+/dev/sd0h (888c179eaf1d9c7e.h) on /mnt/usr/local type ffs (rw, local, nodev, wxallowed)
+/dev/sd0k (888c179eaf1d9c7e.k) on /mnt/usr/obj type ffs (rw, local, nodev, nosuid)
+/dev/sd0j (888c179eaf1d9c7e.j) on /mnt/usr/src type ffs (rw, local, nodev, nosuid)
+/dev/sd0e (888c179eaf1d9c7e.e) on /mnt/var type ffs (rw, local, nodev, nosuid)
+
+Let's upgrade the sets!
+Location of sets? (disk http nfs or 'done') [http]
+HTTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
+HTTP Server? (hostname, List#, 'done' or '?') [ftp.hostserver.de]
+Server directory? [pub/OpenBSD/snapshots/amd64] pub/OpenBSD/7.3/amd64
+
+Select sets by entering a set name, a file name pattern or 'all'. De-select
+sets by prepending a '-', e.g.: '-game*'. Selected sets are labelled '[X]'.
+ [X] bsd [X] base73.tgz [X] game73.tgz [X] xfont73.tgz
+ [X] bsd.mp [X] comp73.tgz [X] xbase73.tgz [X] xserv73.tgz
+ [X] bsd.rd [X] man73.tgz [X] xshare73.tgz
+Set name(s)? (or 'abort' or 'done') [done] done
+Directory does not contain SHA256.sig. Continue without verification? [no] yes
+Installing bsd 100% |**************************| 24714 KB 00:00
+Installing bsd.mp 100% |**************************| 24790 KB 00:00
+Installing bsd.rd 100% |**************************| 4549 KB 00:00
+Installing base73.tgz 100% |**************************| 368 MB 00:14
+Installing comp73.tgz 100% |**************************| 75592 KB 00:06
+Installing man73.tgz 100% |**************************| 7822 KB 00:01
+Installing game73.tgz 100% |**************************| 2748 KB 00:00
+Installing xbase73.tgz 100% |**************************| 57148 KB 00:03
+Installing xshare73.tgz 100% |**************************| 4578 KB 00:02
+Installing xfont73.tgz 100% |**************************| 22968 KB 00:01
+Installing xserv73.tgz 100% |**************************| 14950 KB 00:00
+Location of sets? (disk http nfs or 'done') [done] done
+Making all device nodes... done.
+Multiprocessor machine; using bsd.mp instead of bsd.
+fw_update: added none; updated none; kept intel,inteldrm,iwn,uvideo,vmm
+Relinking to create unique kernel... done.
+
+CONGRATULATIONS! Your OpenBSD upgrade has been successfully completed!
+
+Exit to (S)hell, (H)alt or (R)eboot? [reboot] █
+```
+
+When asked for the **Server directory** change from snapshots to 7.3.
+
+```
+pub/OpenBSD/7.3/amd64
+```
+
+{{< alert title="" >}}
+The script/log above has been taken from the email that get sent to
+root after the upgrade. There might be some typing errors, but the
+screen output looks generally like that...
+{{< /alert >}}
+
+## Back on release
+
+But we still run the -current kernel.
+
+```console
+$ uname -a
+OpenBSD lenovo.lan 7.3 GENERIC.MP#1125 amd64
+```
+
+Installing the latest binary patches will also create an actual kernel.
+
+```console
+$ doas syspatch
+Get/Verify syspatch73-001_bgpd.tgz 100% |**********| 316 KB 00:00
+Installing patch 001_bgpd
+Get/Verify syspatch73-002_bgpd.tgz 100% |**********| 288 KB 00:00
+Installing patch 002_bgpd
+Get/Verify syspatch73-003_rpki.tgz 100% |**********| 104 KB 00:00
+Installing patch 003_rpki
+Get/Verify syspatch73-004_ssl.tgz 100% |***********| 2570 KB 00:04
+Installing patch 004_ssl
+Get/Verify syspatch73-005_libx11.tgz 100% |********| 1769 KB 00:01
+Installing patch 005_libx11
+Get/Verify syspatch73-006_bgpd.tgz 100% |**********| 210 KB 00:00
+Installing patch 006_bgpd
+Get/Verify syspatch73-007_httpd.tgz 100% |*********| 80314 00:00
+Installing patch 007_httpd
+Get/Verify syspatch73-008_elf.tgz 100% |***********| 88233 00:00
+Installing patch 008_elf
+Get/Verify syspatch73-009_bgpd.tgz 100% |**********| 210 KB 00:00
+Installing patch 009_bgpd
+Get/Verify syspatch73-010_ssh_age... 100% |********| 1898 KB 00:00
+Installing patch 010_ssh_agent
+Get/Verify syspatch73-011_amdcpu.tgz 100% |********| 70176 00:00
+Installing patch 011_amdcpu
+Get/Verify syspatch73-012_amdfirm... 100% |********| 364 KB 00:00
+Installing patch 012_amdfirmware
+Get/Verify syspatch73-013_amdcpuf... 100% |********| 34012 00:00
+Installing patch 013_amdcpufirmware
+Get/Verify syspatch73-014_wscons.tgz 100% |********| 39732 00:00
+Installing patch 014_wscons
+Get/Verify syspatch73-015_hvamdcp... 100% |********| 69888 00:00
+Installing patch 015_hvamdcpu
+Relinking to create unique kernel... done; reboot to load the new kernel
+Errata can be reviewed under /var/syspatch
+```
+
+To apply the latest AMD microcode updates, we still have to execute two other
+commands.
+
+```console
+$ doas fw_update
+fw_update: added none; updated none; kept intel,inteldrm,iwn,uvideo,vmm
+$ doas installboot -v sd0
+Using / as root
+installing bootstrap on /dev/rsd0c
+using first-stage /usr/mdec/biosboot, second-stage /usr/mdec/boot
+copying /usr/mdec/BOOTIA32.EFI to /tmp/installboot.gVEta0dehr/efi/BOOT/BOOTIA32.EFI
+copying /usr/mdec/BOOTX64.EFI to /tmp/installboot.gVEta0dehr/efi/BOOT/BOOTX64.EFI
+$ shutdown -r now
+Shutdown NOW!
+shutdown: [pid 4264]
+
+*** FINAL System shutdown message from dominic@lenovo.lan ***
+System going down IMMEDIATELY
+```
+
+```console
+$ uname -a
+OpenBSD lenovo.lan 7.3 GENERIC.MP#3 amd64
+```
+
+If for any reasons the packages cannot be updated because we still have newer packages
+installed (from snapshots) than available on release:
+
+Remove them all and re-install them based on the backup (package-list.txt) we did earlier.
+
+```console
+$ doas pkg_delete -X
+rsync-3.2.7: ok
+libiconv-1.17:hydra-9.2: ok
+libiconv-1.17:freerdp-2.10.0: ok
+libiconv-1.17:chromium-111.0.5563.110: ok
+libiconv-1.17:gtk+3-cups-3.24.37: ok
+libiconv-1.17:cups-libs-2.4.2p0: ok
+libiconv-1.17:pcmanfm-1.3.2p0: ok
+[...]
+```
+
+Re-install them based on our backup file.
+
+```console
+$ doas pkg_add -z -l package-list.txt
+quirks-6.121 signed on 2023-07-25T19:47:50Z
+quirks-6.121: ok
+aircrack-ng-1.5.2p8:sqlite3-3.41.0: ok
+aircrack-ng-1.5.2p8:pcre-8.44: ok
+[...]
+Can't find uvideo-firmware-1.2p3
+Can't find vmm-firmware-1.14.0p4
+zsh-5.9: ok
+Running tags: ok
+Updating font cache: ok
+The following new rcscripts were installed: /etc/rc.d/apache2 /etc/rc.d/gitdaemon /etc/rc.d/iperf3 /etc/rc.d/messagebus /etc/rc.d/rsyncd /etc/rc.d/saslauthd
+See rcctl(8) for details.
+New and changed readme(s):
+ [...]
+--- +fish-3.6.0p0 -------------------
+You may wish to add /usr/local/share/fish/man to /etc/man.conf
+--- +i3status-2.14 -------------------
+Before running i3status, a configuration file needs to be created.
+Copy the provided /usr/local/share/examples/i3status/i3status.conf
+to ~/.i3status.conf and modify as necessary.
+```
+
+Output truncated to save some space/words.
+
+Again, a `shutdown -r now` reboots the computer. Now all should be
+on an updated OpenBSD 7.3 (release) again.
+