Managing bsdpan -- some advice please

Matthew Seaman m.seaman at
Fri Mar 13 13:24:54 PDT 2009

David Southwell wrote:
> Basically I do not know how to manage the bsdpan "ports".
> On portupgrade -a I get long lists like the one below.
> How are items "held"
> How do I decide whether ort not to hold them.
> Some advice would be appreciated.
> I have searched for some guidance on the freebsd web site but not found any.
> --->  Skipping 'bsdpan-B-Debug-1.10' because it is held by user (specify -f to 
> force)
> --->  Skipping 'bsdpan-Exporter-5.62' because it is held by user (specify -f 
> to force)
> --->  Skipping 'bsdpan-constant-1.15' because it is held by user (specify -f 
> to force)


Well, for starters, you have no choice but to 'hold' a bsdpan package.
The terminology comes from portupgrade, but the same thing applies to
whatever FreeBSD package management system you care to use.

In portupgrade, a 'held' package is one that is listed in the HOLD_PKGS
array in /usr/local/etc/pkgtools.conf. This simply indicates packages that
portupgrade should not attempt to upgrade for whatever reason.

The default setting is:


ie. any 'bsdpan' package installed via 'perl -MCPAN -e' or by manually 
compiling the module source.  These bsdpan packages are just normal 
FreeBSD packages in every respect but one: they have no package origin
-- that is, there is no directory in the ports tree for a bsdpan package.
This means that the usual ports system for determining whether a package
is out of date -- comparing either directly or indirectly against the
version number from the port's Makefile -- is impossible to apply and
so ports management software cannot upgrade bsdpan packages.

As a general rule, if there is a ported version of a perl module then
install that, rather than installing the same thing directly from CPAN.
It makes ports management easier and keeping stuff up to date a lot more
effective.  Most of the packages you list are available in the ports

You also have about 15 ordinary p5 ports listed as 'held' -- I'm not sure
why that should be unless you have deliberately chosen to do that.  Maybe
because they have dependencies on bsdpan packages?  Anyhow, you can probably
sort things out by replacing your bsdpan packages with the ports equivalents
like so:

    portupgrade -o www/p5-libwww  -f bsdpan-libwww-perl-5.813

(That's actually a slight oddity: usually a perl package Foo::Bar::Baz will
 appear in ports as mumble/p5-Foo-Bar-Baz)



Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP:     Ramsgate
                                                  Kent, CT11 9PW

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
Url :

More information about the freebsd-questions mailing list