So, Openbsd 6.4 has just been released, so let's upgrade.

I have actually a slightly special upgrade procedure.

First and foremost, you have to read the doc (you need to adapt if you upgrade an other release).

A few variables to ease automation.

export REL=6.4
export R=64

Then I create a directory at the root.

doas mkdir /$R
doas chown stephane /$R

And I am going to download in that repository every file I need (I prefer wget over ftp):

cd /$R
wget $(cat /etc/installurl )$REL/$(uname -m)/{bsd,bsd.rd,bsd.mp,SHA256,SHA256.sig}
wget $(cat /etc/installurl )$REL/$(uname -m)/INSTALL.$(uname -m)
wget $(cat /etc/installurl )$REL/$(uname -m)/{base,comp,man}$R.tgz

You have to check integrity:

signify -C -p /etc/signify/openbsd-$R-base.pub -x SHA256.sig bsd*
signify -C -p /etc/signify/openbsd-$R-base.pub -x SHA256.sig *$R.tgz

That's it, now you can upgrade offline. It was the aim. So just copy bsd.rd on /bsd.rd and reboot.

During the process, when you're asked where are the sets, you can write disk instead of http. You will be asked if the partition is already mounted, Yes it is ! And sets are in /64

Upgrade can then go fast without trouble as you have nothing to download. And you can copy the files on another computer and do it again.