On 2019-10-28, Heinrich Rebehn <heinrich.reb...@rebehn.net> wrote: > Hello list, > > After upgrading a OpenBSD host running 6.5 to 6.6 using sysupgrade(8), I > received the email below. > It suggests that the upgrade has been aborted upon failure to upgrade > comp66.tgz. This set was not part of the initial installation. > Does this mean that the system is ‘half upgraded’? What steps are missing > because of the abort?
>> Installing comp66.tgz 78% |******************** | 56832 KB 00:01 >> ETAtar: Unable to remove directory ./usr/include/machine: Directory not empty /usr/include/machine is distributed in comp*.tgz and is normally a symlink to /usr/include/<arch>. Because you didn't install comp65.tgz, you don't have the symlink. Unfortunately syspatch65-003_mds.tgz contains files in the directory using the symlink's name (usr/include/machine) rather than in the "real" directory name (usr/include/<arch>) so it created /usr/include/machine as a new directory. When the installer runs, tar is unable to replace the existing dir with a symlink, hence the error. The simplest fix is "rm -r /usr/include/machine" and re-run the 6.6 installer in upgrade mode (at the "boot>" prompt, type "b /bsd.rd"). To avoid getting in a mess with syspatch you should allow it to reinstall all sets, not just comp66.tgz. If it's a remote machine without console access and you really need to use the sysupgrade script, you would need to patch it (temporarily hardcode NEXT_VERSION=6.6) as normally it will only allow updates from 6.6 or 6.6-beta to either 6.7 or snapshots.