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