Upgrading localbase on 13.0-CURRENT using ports-mgmt/synth
I upgraded base from 12.0-ALPHA9 to 13.0-CURRENT (r339639) on a VM today. While preparing for rebuilding localbase, I wiped clean /var/synth/live_packages/{All,Latest}/*
, and cleaned the ccache
repo stored in /var/cache/ccache
. Trouble arose when I ordered ports-mgmt/synth
to rebuild some 116 ports according to a specification stored in a local metaport. DEFAULT_VERSION+=ssl=base
was being used at the time.
synth status && synth upgrade-system
It turned out that the already installed, and now outdated, pkg
, had a serious negative effect on what was going on inside each chroot
environment.
I eventually discovered a new package for pkg
stored in /var/synth/live_packages/All
.
Only by forcefully installing this new pkg
package was ports-mgmt/synth
able to do its magic.
pkg add -f /var/synth/live_packages/Latest/pkg.txz
The morale of this story is to always upgrade the package manager immediately after migrating to a new major version of the OS.
In hindsight, I should have executed these commands before running ports-mgmt/synth
at all:
make -C /usr/ports/ports-mgmt/pkg clean && \ make -C /usr/ports/ports-mgmt/pkg package && \ pkg-static add -f /usr/ports/packages/Latest/pkg.txz && \ make -C /usr/ports/ports-mgmt/pkg clean
Next, I began running these commands:
synth status local/metaport && \ synth just-build local/metaport && \ synth rebuild-repository
I was forced to remove ports-mgmt/portupgrade
from my local metaport as lang/ruby23
isn’t quite ready for OpenSSL 1.1.1 from base nor OpenSSL 1.0.2 from ports. I haven’t tried OpenSSL 1.1.1 from ports, but I expect it to give similar results as the one from base. Don’t worry, patches and workarounds are being worked on in the ports tree and elsewhere.
These commands upgraded localbase of the system and removed the old Ruby:
pkg update && pkg upgrade pkg delete ruby23
Update 2018-10-27
Running base/head
at r339812 and with the ports tree at r483124, setting DEFAULT_VERSION+=ssl=openssl
makes all the difference until the various ports catch up with the API changes in OpenSSL 1.1.1.