Migrating from perl5-5.20 to perl5.22 using custom packages?

David Wolfskill david at catwhisker.org
Tue Sep 8 00:12:29 UTC 2015

On Sun, Sep 06, 2015 at 08:29:14PM +0200, olli hauer wrote:
> ...
> > 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).
> Why not set up a second package set for the development systems?

Since you (explicitly) asked, I'll answer that question (below).

> If you change "-z home" to "-z devel" you will get a a second package set.
> The nice thing it will always build in a clean environment and you can detect / fix build issues before you upgrade your development systems (with pkg)
> E.g in your case:
> # poudriere bulk -j 10amd64 -p ports -z devel -f 10amd64-home-pkglist

Aye; I see how to do it.  I'm less convinced that I want to do it.

Please note that after many years of using portmaster (and before that,
portupgrade), I am "easing into" poudriere & "pkg upgrade".  And when it
comes time for me to build ports under stable/11, I will probably use
poudriere to do that.  More below.

The development systems are (with respect to ports) a "study in

* The build machine has (nearly) a minimal set of ports and actually
  runs a GENERIC kernel.  (The "nearly" qualifier is because I had
  built devel/subversion for an earlier incarnation of it, and I
  haven't got around to switching (completely) to svnlite on it.)
  It has security/sudo, sysutils/tmux, net/rsync, sysutils/dmidecode,
  sysutils/smartmontools, and ports-mmgmt/portmaster; lately, it
  also has ports-mgmt/poudriere-devel.  Updating ports on it using
  portmaster is pretty easy.  "portmaster --list-origins | wc -l"
  returns 12, and "pkg info | wc -l " returns 22 on that machine.

* My laptop is both a "development" machine and (very!) user-facing.  So
  it ends up having nearly a superset of all the ports I install on any
  of my machines.  (The exceptions that come to mind are that I have
  some ports on my externally-visible MTA that I install nowhere else,
  and -- unlike my "production" machines -- I don't run an authoritative
  name server on my laptop.)  "portmaster --list-origins | wc -l"
  returns 272, and "pkg info | wc -l" returns 985 on the laptop.

For comparison & contrast, the corresponding numbers for the production
machines are:

* Packet filter & externally-visible authoritative name server & MTA:
  "portmaster --list-origins | wc -l": 5; "pkg info | wc -l": 26.

* Internal "workhorse" machine: "portmaster --list-origins | wc -l":
  118; "pkg info | wc -l": 624.

Then, there's the issue of how I have my networks (yes, plural) set up
at home.  My laptop normally uses the wireless NIC; it thus resides on
the network that has the access point.  I do not trust wireless access
to be secure, so that network is separate from my internal "trusted"
network.  Access from the wireless (or "guest") network to the trusted
network is restricted to ssh, DNS, HTTP(S), rsync (to the build
machine only) and ping.  [ssh authentication is only via public key, and
root is not permitted to login via ssh.]

Recently, I had occasion to set up another isolated internal network (for
VPN & related things).

There's a network topology diagram of this at

The build machine does not run a Web server.  It does act as an NFS
server -- for NFS clients that are on its network.  (It also acts as an
NFS client, as its SVN repo mirror and the /usr/ports working copy are
each on the ReadyNAS.)  The production machines get access to the built
packages via NFS.

I presently run poudriere twice weekly: once, on Sunday morning, just
after updating FreeBSD stable/10 on the build machine (and updating the
/usr/ports working copy), and once the day before (in an attempt to get
the bulk of the week's worth of updates done and "out of the way" before
the "festivities" start on sunday morning).

Given my experience with the poudriere runs separated by 1 day of
updates, if I were to run poudriere daily, I expect that this process
would not be complete until after I had left the house to go to work.
That would make updating the ports/packages on the laptop from my build
machine fairly awkward.

As things presently stand, it normally takes my laptop about 20 minutes
to update stable/10 (while running "portmaster -aF to fetch distfiles),
about 10 minutes to run "portmaster -ad", and about 25 minutes to update
head (while running X, but not running things like Web broaswers
locally).  That allows plenty of time for me to finish up well before
cycling to the shuttle stop.

(The laptop uses rsync to update its local copy of the private SVN
mirror that is updated by the build machine; these updates occur
overnight via cron(8).)

So for the "usual" work, I think portmaster is a better fit for
both the build machine and my laptop than using poudriere & "pkg
upgrade" is in my case -- though the latter are working quite well
for the production machines, and I am very glad to be able to use

> PS:
> if you don't use perl5.20 anywhere just delete the package from $LOCALBASE/poudriere/data/10amd64-home/All/ and after the next run it is no longer offered.
> ....

Well, I think I'll take care of the perl5.18 package first. :-)  But
yes; I'm just being a bit lazy (& conservative) about cleaning up.

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
Type: application/pgp-signature
Size: 949 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20150907/2fd0d425/attachment.bin>

More information about the freebsd-ports mailing list