perl version upgrade woops

Don Lewis truckman at
Thu Oct 24 18:59:57 UTC 2013

I recently upgraded one of my machines from FreeBSD 10 to 11.  After the
upgrade, I was working on upgrading ports and noticed that perl 5.12 is
due to be nuked, so I decided to upgrade to 5.14 by doing:
	portupgrade -fo lang/perl5.14 lang/perl5.12
and ran into this:

===>   Registering installation for perl-5.14.4_2
Removing /usr/local/etc/perl5_version... Done.
Creating /usr/local/etc/perl5_version... Done.
Removing stale symlinks from /usr/bin...
    Skipping /usr/bin/perl
    Skipping /usr/bin/perl5
Creating various symlinks in /usr/bin...
    Symlinking /usr/local/bin/perl5.14.4 to /usr/bin/perl
    Symlinking /usr/local/bin/perl5.14.4 to /usr/bin/perl5
Installing perl-5.14.4_2...pkg-static: perl-5.14.4_2 conflicts with p5-JSON-PP-2.27203 (installs files into the same place).  Problematic file: /usr/local/bin/json_pp
*** Error code 70

make[2]: stopped in /usr/ports/lang/perl5.14
*** Error code 1

make[1]: stopped in /usr/ports/lang/perl5.14
*** Error code 1

make: stopped in /usr/ports/lang/perl5.14
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20131021-36603-16rq8gc env UPGRADE_TOOL=portupgrade UPGRADE_PORT=perl-5.12.5_1 UPGRADE_PORT_VER=5.12.5_1 make -DFORCE_PKG_REGISTER reinstall
--->  Restoring the old version
Installing perl-5.12.5_1...pkg: wrong architecture: freebsd:10:x86:32 instead of freebsd:11:x86:32

Failed to install the following 1 package(s): /var/tmp/portupgradeFdJ1R5tt/perl-5.12.5_1.txz
** Command failed [exit code 70]: /usr/local/sbin/pkg add /var/tmp/portupgradeFdJ1R5tt/perl-5.12.5_1.txz
--->  Skipping 'lang/perl5.14'
** Listing the failed packages (-:ignored / *:skipped / !:failed)
	* lang/perl5.14 (perl-5.12.5_1)

At that point, I deleted p5-JSON-PP-2.27203 and reinstalled perl5.14.
Then when I tried to upgrade all the ports that depended on perl by
doing this:
	portupgrade -rf perl
I found that nothing depended on the new version of perl.
I tried:
	portupgrade -rf lang/perl5.14
which didn't find anything depending on the new version of perl, and
	portupgrade -rf lang/perl5.12
which didn't work because perl 5.12 was no longer installed.

To get back on track, I downgraded perl back to 5.12, then upgrade
again, which worked because p5-JSON-PP-2.27203 was no longer a conflict.
Then I was able to do a portupgrade -r to rebuild all of the zillions of
ports that depend on perl.

More information about the freebsd-ports mailing list