Date: Tue, 15 Feb 2005 15:02:11 +0100 From: Gerhard Schmidt <estartu@augusta.de> To: "Michael C. Shultz" <reso3w83@verizon.net> Cc: freebsd-questions@freebsd.org Subject: Re: Updated perl - broke stuff Message-ID: <20050215140211.GB95997@augusta.de> In-Reply-To: <200502131815.21142.reso3w83@verizon.net> References: <200501271852.j0RIqQ9t010411@mp.cs.niu.edu> <200502131642.59595.ean@hedron.org> <04e901c51217$c3d5e590$7702a8c0@officeeagle> <200502131815.21142.reso3w83@verizon.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--VrqPEDrXMn8OVzN4 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Feb 13, 2005 at 06:15:18PM -0800, Michael C. Shultz wrote: > 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?=20 > > Or will pkgdb -F do the trick? >=20 > Pkgdb -F is what screws up the installed ports registry. Here is an=20 > example of what happens: >=20 > 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=20 > port-B >=20 > and here is where things go wrong using sysutils/portupgrade: >=20 > 4. port-B gets upgraded to port-B.1 and portupgrade reports port-A > has a stale dependency. >=20 > Then you run pkgdb -F and port-A's registry is changed to say it was=20 > built with port-B.1, portupgrade claims this "fixes" the registry when=20 > it really breaks it. >=20 > Remember, port-A was built with port-B, not port-B.1 and the correct way= =20 > to "fix" the stale dependency is to upgrade port-A so it is built with=20 > the newer dependency. >=20 > 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 I don't see why any port should be rebuild just because a Port it depend on is updated. In more than 99% of all cases this is not needed.=20 you whould en up in rebuilding openoffice or mozilla/firefox quite often.= =20 Correct me if im wrong. But most of the problem was caused by the fact=20 that the installation directory of the perl modules has changed with the=20 update. That's a Problem that ist unique to script languages like perl,=20 ruby and python, and don't affect the vast majority of the Ports.=20 Most ob the dependencies a of the type program A uses program B or=20 program A uses a library ob program B. In both cases there is no=20 need for an update of program A when program B is updated because=20 programm a will work well with the new version of program b or more than=20 just a recomile is needed to make it work with the new version.=20 I might have helped if with the update of the perl ports all ports=20 depending on perl would have been version bumped. So portupgrade had=20 updated them with the perl port automaticly.=20 I don't see where there is cheating with the update ob the dependency=20 information.=20 You install port A and port B. port B depends on port A.=20 after some time you update port A to a new version. port B still works without a problem. But port B still has the dependency for=20 the old version of port A. Some time later you try to delete=20 program A. There is a hell of work to be done finding out if any of=20 the ports still installed need this port if the dependency information=20 is not consisten with the installed version numbers. The dependency=20 infomation should reflect the information what other ports are needed=20 and not the information which version of a port A was installed on the system on building time of port B.=20 It should be the responsibility of a Port Maintainer to decide if a=20 port has to be rebuild or not. A port maintainer can trigger a rebuild=20 with a bump of the port revision.=20 In case of such a widly dependen port like perl this bump could be done=20 by the portmgr.=20 A totaly different problem is the fact that the update of the perl port=20 didn't update the information in /etc/make.conf. So the rebuild ob all=20 dependend ports din't work until you called use.perl ports yourself after= =20 afterthe perl update.=20 just my 2 cent.=20 Bye Estartu ---------------------------------------------------------------------------- Gerhard Schmidt | Nick : estartu IRC : Estartu | Fischbachweg 3 | | PGP Public Key 86856 Hiltenfingen | Privat: estartu@augusta.de | auf Anfrage/ Germany | | on Request --VrqPEDrXMn8OVzN4 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 5.0i for non-commercial use MessageID: Mxc4SAJOBPztGe9qhBlf1D1SlJK7ohqn iQCVAwUBQhIA4Azx22nOTJQRAQHRBQP/YEZiW9F6VxqoYWMY59wYf+8XLg4bXGyU udaMQCGkAE6j8a7eyZZG2VVfNaxMISAOsbknia8U7EM0tW04ShDHu0jYd5IToDBk 1Djj7zLaEDIkO+bqW/URXji595R15as+sAlfsnEFaSw7b9P9vrCs4qMKbGRu9p/N Mfk7lGXyGQA= =LkuW -----END PGP SIGNATURE----- --VrqPEDrXMn8OVzN4--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050215140211.GB95997>