OpenBSD Following -current and using snapshots [FAQ Index]


Active OpenBSD development is known as the -current branch. These sources are frequently compiled into releases known as snapshots.

Aggressive changes are sometimes pushed in this branch, and complications can arise when building the latest code or upgrading from a previous point in time. Some of the steps for getting over these hurdles are explained on this page. Make sure you've read and understand how to build the system from source before using -current and the instructions below.

In general, it's far easier to use snapshots, as developers will have gone through much of the trouble for you already.

You should always use a snapshot as the starting point for running -current. This process typically consists of running sysupgrade(8) with the -s flag. Alternatively, download (and verify) the appropriate bsd.rd file from the /snapshots/ directory of your preferred mirror, boot from it, and choose (U)pgrade at the prompt. Any installed packages should then be upgraded after booting into the new system.

Upgrading to -current by compiling your own source code is discouraged for everyone except for experts, as difficult build-time crossing-points can occur often, and no assistance will be provided. In case of failure, use a snapshot to recover.

Most of these changes will have to be performed as root.

2022/10/05 - tftpd(8) read-only by default

tftpd(8) now serves files in read-only mode. Use the new -w option to enable write access (old default).

2022/11/04 - [packages] www/gitea PLIST change

Gitea static files location was changed from /usr/local/share/gitea/public/ to /var/www/gitea/public/ and /usr/local/share/gitea/public is now a symlink to /var/www/gitea/public/. This allows serving static files by local http server for better performance. Due to /usr/local/share/gitea/public type changing from directory to symlink, upgrading gitea package using pkg_add -u will fail. To upgrade, delete gitea package, then add the updated version:
# pkg_delete gitea; pkg_add gitea

2022/11/07 - TCP timer sysctls now use seconds

net.inet.tcp.keepidle and net.inet.tcp.keepintvl are now specified in seconds.

They were previously specified in units of a clock ticking net.inet.tcp.slowhz times per second (typically, half-seconds). If you have changed them (for example, in conjunction with net.inet.tcp.alwayskeepalive=1 to keep NAT or firewall states alive if you are behind a router which times out quickly), you may need to adapt them.

2022/11/15 - [packages] PostgreSQL major update

There was a major update to PostgreSQL 15.1. Use pg_upgrade as described in the postgresql-server pkg-readme or do a dump/restore.

2023/01/18 - [packages] gotweb (devel/got,web) removed

The gotweb package has been removed since it is no longer maintained upstream. The successor to gotweb is gotwebd, which serves FastCGI directly instead of relying on slowcgi(8) and www/kcgi as gotweb did. gotwebd provides improved performance and caching.

Users should install the gotwebd package:

# pkg_add gotwebd

Setting up gotwebd is similar to setting up gotweb. Instructions are provided in manual pages installed by the gotwebd package:

Before removing the gotweb package, gotwebd can be configured in httpd.conf(5) to serve the same set of Git repositories under a different URL location, for testing purposes.

Once gotwebd works as expected, httpd(8) can be reconfigured to expose the former gotweb URL location using gotwebd, and the gotweb package can be removed:

# pkg_delete gotweb

$OpenBSD: current.html,v 1.1102 2023/01/23 09:40:20 stsp Exp $