perl-after-upgrade mistakenly thinks nothing needs to be done

Mike Brown mike at skew.org
Thu Apr 11 22:33:32 UTC 2013


Thanks for the replies; I really appreciate it.

Alexandre wrote:
> Have you followed steps described in perl-after-upgrade man page?
> $ man perl-after-upgrade

Yes, except for the last step (deleting old CONTENTS backups), since the 
previous steps didn't seem to do what they should. As I said, 
perl-after-upgrade thinks there's nothing to do. It doesn't report any 
packages it can't handle. It handles them, but for some reason determines that 
they are OK, despite the fact that the modules are all still sitting in the 
old installation.


Anton Shterenlikht wrote:
> Have you done "portmaster 5-"?
> If not, do it.

I hadn't done that.
("portmaster 5-" doesn't work, but "portmaster p5-" does.)

UPDATING makes mention of this, but I didn't understand that it was saying it 
was a required step. Specifically, this is what it says:

-------------------------------------------------------------------------

20120630:
  AFFECTS: users of lang/perl*
  AUTHOR: skv at FreeBSD.org

  lang/perl5.16 is out. If you want to switch to it from, for example
  lang/perl5.12, that is:

  Portupgrade users:
    0) Fix pkgdb.db (for safety):
	pkgdb -Ff

    1) Reinstall new version of Perl (5.16):
	env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.16 -f perl-5.12.\*

    2) Reinstall everything that depends on Perl:
	portupgrade -fr perl

  Portmaster users:
	portmaster -o lang/perl5.16 lang/perl5.12

	Conservative:
	portmaster p5-

	Comprehensive (but perhaps overkill):
	portmaster -r perl-

  Note: If the "perl-" glob matches more than one port you will need to
	specify the name of the Perl directory in /var/db/pkg explicitly.

  The default version for Perl has also been changed from 5.12 to 5.14.

-------------------------------------------------------------------------

Because of the way the portupgrade section is numbered, I thought the 
portmaster section was giving me 3 options: regular, conservative, 
comprehensive -- not two steps (1. portmaster -o, then 2. choose either the 
conservative or comprehensive option).

...partly my reading comprehension failure, I guess. It makes no mention of 
perl-after-upgrade, though.

My understanding is that perl-after-upgrade looks at what perl-dependent 
packages are installed. As I can see by its output, this includes not just the 
application packages like SpamAssassin and mrtg, but their requisite Perl 
module packages as well, like HTML::Parser. Then, as these packages are found, 
perl-after-upgrade moves things from the old Perl installation over to the 
new, and does some other cleanup.

Maybe that's a flawed assumption, because it seems rather weird to me that 
before running perl-after-upgrade, I'm expected to *first* to do a *full 
upgrade or reinstall* of the modules.

Isn't that exactly what we're trying to avoid by running perl-after-upgrade? 
Nothing in the perl-after-upgrade man page suggests this is necessary; in 
fact, the intro implies the opposite.

> After this is done,
> how much have you got left under 5.12.4?

Not much of anything, just a man page, a few mrtg .pm files...

Naturally, running perl-after-upgrade at this point yields the same results as 
before (0 moved, 0 modified, 0 adjusted for everything). But this time, that's 
the expected output, I believe, given that I just reinstalled everything.

I guess I'm just completely confused about what perl-after-upgrade was 
actually supposed to do, so it's difficult to suggest documentation updates. 
At the very least, though, maybe change UPDATING to clarify that the 
portmaster steps are a sequence, and mention perl-after-upgrade.


More information about the freebsd-questions mailing list