Migrating from perl5-5.20 to perl5.22 using custom packages?
david at catwhisker.org
Sun Sep 6 13:33:48 UTC 2015
On Sat, Sep 05, 2015 at 09:26:22PM +0200, olli hauer wrote:
> You can use the 'pkg set -o ...' command, but I suspect the version change is not happened automatically because the default in your poudriere is not set to perl5.22
Thanks for the suggestion. I looked at that, and was a bit put off by
the "(DEPRECATED)" warning in the pkg-set man page. Well, that, as well
as the sense that I was treading in areas I understood but poorly, and
if I screwed up, I could lose Internet connectivity (at home, at least)
and/or the abiliity to send & receive email.... So I elected to wait a
> # pkg set -o lang/perl5.20:lang/perl5.22
> (note old <--> new swapped and separated with ':' )
> >From Mk/bsd.default-versions.mk:
> PERL5_DEFAULT?= 5.20
> To overwrite this in PD globally
> $ cat $LOCALBASE/etc/poudriere/make.conf (or $set-make.conf, for only a dedicated ports set)
> DEFAULT_VERSIONS+= perl5=5.22
> and fire a new build, all ports depending on the default perl are reflecting the new 5.22 version as dependency and the perl version should change automatically.
> From my past experience with perl upgrades I would run 'pkg upgrade -f' else not all p5-$ports are reinstalled.
> And as super bonus since you are already building with PD you don't have to mess around with portmaster
Well, as I pointed out in the original note, I use portmaster on my
"development" systems (which I update daily), and poudriere/pkg on the
"production" systems (which I update weekly).
> nice writeup on your webpage, to get a even smaller package list you can run "ports-tools/pkg_tree" with the parameter '-t'
Thanks! I merely figured I'd want to have a record of what I did, and
that such a record might be of use to others (if for no other reason
than to be able to avoid some of the things that I encountered).
On Sun, Sep 06, 2015 at 12:00:40PM +0100, Matthew Seaman wrote:
> I did exactly this a week or so ago. Given you've got your own
> poudriere setup, then:
> 1) Edit /usr/local/etc/poudriere.d/make.conf (or an build
> specific variant) and set:
> DEFAULT_VERSIONS+= perl5=5.22
> 2) Run a poudriere bulk to rebuild all the packages that depend on
> perl. That's going to be most of them because GNU autotools
> introduces a build-depends on perl through automake...
> 3) Upgrade packages as normal:
> pkg upgrade
> You should see pkg wanting to remove perl5.20, install perl5.22 and
> reinstall all perl modules or other ports with a run-time dependency on
OK; that appears to have worked as advertised -- thanks you!
(I do a "poudriere bulk" as part of the weekly upgrade in any case, as
I've updated the ports working copy, so the production machines do a
"pkg upgrade" just after updating base FreeBSD.)
So -- in my case -- the "short answer" was:
* Specify the local default in /usr/local/etc/poudriere.d/make.conf via:
* Perform the usual weekly upgrade.
And "so far, so good" -- I have verified that I can send & receive
email, at least, and other stuff seems OK so far. :-)
> Note that the default version of perl in your repo will get the pkgname
> 'perl5', and all others will get a pkgname of the form 'perl5.XY' -- so
> in my repo, I have:
> % pkg search -x perl5
> ie 5.22 is the default version but I also have a (basically useless)
> perl5.20 package.
Huh; interesting: thanks. I may poke at that after I have occasion to
power up the build machine again (probably not until tomorrow).
Thank you both for your guidance!
David H. Wolfskill david at catwhisker.org
Those who would murder in the name of God or prophet are blasphemous cowards.
See http://www.catwhisker.org/~david/publickey.gpg for my public key.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 949 bytes
Desc: not available
More information about the freebsd-ports