Updated perl - broke stuff
Michael C. Shultz
reso3w83 at verizon.net
Mon Feb 14 02:19:42 GMT 2005
On Sunday 13 February 2005 02:02 pm, Paul Schmehl wrote:
> ----- Original Message -----
> From: "Ean Kingston" <ean at hedron.org>
> To: <freebsd-questions at freebsd.org>
> Cc: "Paul Schmehl" <pauls at utdallas.edu>
> Sent: Sunday, February 13, 2005 3:42 PM
> Subject: Re: Updated perl - broke stuff
> > I stopped using portupgrade because it only upgrades ports that are
> > out-of date. It then modifies the installed software database to
> > change any dependencies that relied on the old port to show them as
> > relying on the new
> > port.
> > For most ports, this works. For Perl, particularly mod_perl, this
> > doesn't work. If you install a new perl you have to rebuild
> > everything that depends
> > on perl even if it hasn't been updated.
> > So I stopped using portupgrade.
> Wouldn't it make more sense to fix mod_perl? (Or portupgrade -
> whichever one is the culprit?) All the ports that depended upon perl
> appear to have had their dependencies updated properly except for
> libwww and mod_perl. ISTM, fixing those two ports makes more sense.
> If you don't use portupgrade, then what *do* you do? Wouldn't you
> have to deinstall and reinstall every port that depended upon perl?
> Or will pkgdb -F do the trick?
Pkgdb -F is what screws up the installed ports registry. Here is an
example of what happens:
1. port-A needs dependency port-B installed
2. port-B is installed
3. port-A is installed and marks its registry as being dependent on
and here is where things go wrong using sysutils/portupgrade:
4. port-B gets upgraded to port-B.1 and portupgrade reports port-A
has a stale dependency.
Then you run pkgdb -F and port-A's registry is changed to say it was
built with port-B.1, portupgrade claims this "fixes" the registry when
it really breaks it.
Remember, port-A was built with port-B, not port-B.1 and the correct way
to "fix" the stale dependency is to upgrade port-A so it is built with
the newer dependency.
sysutils/portmanager also updates ports, put it doesn't cheat. When
port-B became port-B.1 portmanager will rebuild port-A using port-B.1
as the dependency. port-A's registry stays reliable, reflecting how the
port was really build instead of how we wished it were built.
see http://portmanager.sunsite.dk/ for more info
> Paul Schmehl (pauls at utdallas.edu)
> Adjunct Information Security Officer
> The University of Texas at Dallas
> AVIEN Founding Member
> freebsd-questions at freebsd.org mailing list
> To unsubscribe, send any mail to
> "freebsd-questions-unsubscribe at freebsd.org"
More information about the freebsd-questions