Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Jul 2013 11:24:08 -0700 (PDT)
From:      "Chris H" <bsd-lists@1command.com>
To:        "Fabian Wenk" <fabian@wenks.ch>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: perl upgrade woes -- how to best reconcile?
Message-ID:  <44f72b29a68d30c276b13ee4a2730cc9.authenticated@ultimatedns.net>
In-Reply-To: <51DBEB9F.7020803@wenks.ch>
References:  <b6972e29972ccc387362375cac01efa8.authenticated@ultimatedns.net> <51DBEB9F.7020803@wenks.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
Greetings Fabian, and thank you for your reply.
> Hello Chris
>
> On 09.07.2013 11:18, Chris H wrote:
>> How do I best sort this all out. I _really_ miss the perl_after_upgrade script, that
>> used to accompany this process.
>
> I also had some challenges with this perl upgrade, but I used
> portupgrade. In the end I created a custom script based on the
> output from 'portupgrade -nrf perl' which did the following:
>
> #!/usr/local/bin/bash
> set -e
> portupgrade -f lang/perl5.12
> portupgrade -f converters/p5-MIME-Base64
> portupgrade -f devel/p5-Test-Harness
> portupgrade -f devel/p5-Locale-Maketext-Simple
> [...]
>
> This script does abort, when a single command fails, so you see
> what fails and you can fix it. Eventually you will need to check
> dependencies and rebuild one of the ports now, which is later in
> the script. When the failed port did build, then remove the
> already done ports from the script and restart it.
>
> At the end I also did check the folders in /usr/local/lib/perl5/
> for left overs in the folders from the old perl version. I then
> used pkg_which to find out to which port the belongs and did also
> a portupgrade -f for this port too.

Thanks for that. I also considered cobbling a script to reconcile
things, but in the end, felt simply un-installing Perl and the
some 200 modules would be both faster, and less prone to failure.

>
> In the end everything was fine, but it took a little more effort,
> as I had around 235 ports to rebuild. But as long as you stay
> with e.g. perl 5.12.x, it is easier then before with the
> perl_after_upgrade script for minor updates.

I ran into problems in my first attempt to use portmaster(8), issuing
portmaster -a. It failed on a number of ports, and I was forced to run
it several times. I had some difficulty with it given that not all the
options are quite clear -- "-s", for example. One can only infer it's
action(s) from the context it used within the man(1) page, it doesn't
literally explain it's intent.
In the end, I was forced to perform many "make reinstall" jobs, which
left the dependency records _way_ out-of-whack -- pkg_info:
pkg_info: corrupted record (pkgdep line without argument), ignoring.
Forcing me to resolve the issue by cobbling && running the following:
grep "^@pkgdep" /var/db/pkg/*/+CONTENTS | awk '{ if (NF != 2) { print $1 } }' | cut -d':' -f1
I redirected the output to a file, where I then "cat | sort -u" to
another file, which left me with a list of the ports to reconcile.
performing a "portmaster --check-depends" resolved the problem.
I guess the only _sure-fire_ way to resolve my issue, is to catalog
all of my installed Perl modules, and remove Perl 5.12, and the
modules. re-install Perl 5.12.5, and cobble a script to install all the
modules I currently have installed.
My perl5 tree currently looks like:
/usr/local/lib/perl5/5.12/man/
man3/
whatis
/usr/local/lib/perl5/5.12.4/
man3/
whatis
What a mess!
In the end, I guess the moral of the story is; don't upgrade.
I've been on BSD since the late 70's, and as such, am no stranger
to the upgrade path. But recent experience seems to show, things
aren't getting any easier (or necessarily better). :(
>
> The next big challenge then will be the upgrade to e.g. 5.14.x or
> 5.16.x.

I don't think I'm even willing to go there, after this mess.

Thanks again, for taking the time to respond.

--chris
>
>
> bye
> Fabian
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44f72b29a68d30c276b13ee4a2730cc9.authenticated>