Skip site navigation (1)Skip section navigation (2)
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>