Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Feb 2005 18:15:18 -0800
From:      "Michael C. Shultz" <reso3w83@verizon.net>
To:        freebsd-questions@freebsd.org
Cc:        Ean Kingston <ean@hedron.org>
Subject:   Re: Updated perl - broke stuff
Message-ID:  <200502131815.21142.reso3w83@verizon.net>
In-Reply-To: <04e901c51217$c3d5e590$7702a8c0@officeeagle>
References:  <200501271852.j0RIqQ9t010411@mp.cs.niu.edu> <200502131642.59595.ean@hedron.org> <04e901c51217$c3d5e590$7702a8c0@officeeagle>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 13 February 2005 02:02 pm, Paul Schmehl wrote:
> ----- Original Message -----
> From: "Ean Kingston" <ean@hedron.org>
> To: <freebsd-questions@freebsd.org>
> Cc: "Paul Schmehl" <pauls@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 
port-B

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.

-Mike

see http://portmanager.sunsite.dk/ for more info

>
> Paul Schmehl (pauls@utdallas.edu)
> Adjunct Information Security Officer
> The University of Texas at Dallas
> AVIEN Founding Member
> http://www.utdallas.edu/~pauls/
>
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to
> "freebsd-questions-unsubscribe@freebsd.org"



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