Date: Mon, 15 May 2006 09:10:08 +0100 From: Matthew Seaman <m.seaman@infracaninophile.co.uk> To: "[LoN]Kamikaze" <LoN_Kamikaze@gmx.de> Cc: freebsd-ports@freebsd.org Subject: Re: dependency inheritance Message-ID: <44683760.9010908@infracaninophile.co.uk> In-Reply-To: <44682A60.1090701@gmx.de> References: <44682A60.1090701@gmx.de>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigC3F29A3C50EED502C6C7BC28 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable [LoN]Kamikaze wrote: > I just created a port for http://sf.net/projects/bsdadminscripts , the > only dependency is >=20 > RUN_DEPENDS=3D portupgrade:${PORTSDIR}/sysutils/portupgrade >=20 > Pkg_info shows the following for portupgrade: >=20 > # pkg_info -r 'portupgrade*' > Information for portupgrade-2.0.1_1,1: >=20 > Depends on: > Dependency: db4-4.0.14_1,1 > Dependency: ruby-1.8.4_6,1 > Dependency: perl-5.8.8 > Dependency: ruby18-bdb4-0.5.7 >=20 >=20 > The dependencies for bsdadminscripts are wrong, though: >=20 > # pkg_info -r bsdadminscripts-1.0 > Information for bsdadminscripts-1.0: >=20 > Depends on: > Dependency: ruby18-bdb1-0.2.2 > Dependency: openssl-0.9.8b > Dependency: ruby-1.8.4_6,1 > Dependency: perl-5.8.8 > Dependency: portupgrade-2.0.1_1,1 >=20 >=20 > First of all I don't understand why it should have any dependencies > apart from portupgrade. The port Makefile specifies what other ports it needs at the various phas= es of fetch, extract, build, run, libs. However all of those dependencies can = have their own dependencies etc. etc. and in the ports INDEX plus in the generated = packages the whole dependency tree is enumerated. One slight wrinkle is that the f= ull eg. build dependency tree for a port consists of everything listed as BUILD_D= EPENDS plus (cumulatively) all of the *run + lib* depends for those. > The second problem is that apart from ruby-1.8.4_6,1 and perl-5.8.8, > which were obviously inherited from portupgrade, why does it inherit th= e > wrong version of ruby-bdb and why doesn't it inherit bdb4? The dependency information produced by pkg_info is derived from the +CONT= ENTS and the +REQUIRED_BY files in the pkg directory (/var/db/pkg/whatever). = Some of that -- mostly the stuff in +CONTENTS -- comes out of the package tarball= or the port installation process, other parts of it come out of tools like portu= pgrade. Now, all of that information would be self-consistent if you installed al= l of the ports on a machine in one session using either a set of packages from the= servers or a single copy of the ports tree. As soon as you start updating ports = and/or mixing and matching ports and packages, the information will probably sta= rt to get out of synch. portupgrade and other tools will try and update the data fo= r you, but just installing updates from the ports tree using make won't. On the who= le though, having that information not precisely in synch with reality makes no real= functional difference to the server. It's an important feature of the ports system that it's tests for fulfill= ing dependencies assume nothing about the state of bookkeeping in your pkg da= tabase, but rather refer to the installed files and shlibs on the system where yo= u build the port.=20 Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. Flat 3 7 Priory Courtyard PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW, UK --------------enigC3F29A3C50EED502C6C7BC28 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFEaDdn8Mjk52CukIwRAyNkAJwMfKmo8LXDsziZVBWqg7t7KIOcogCeM5Fw u3VmRyvM6F+tjHECCR8cT88= =Phd+ -----END PGP SIGNATURE----- --------------enigC3F29A3C50EED502C6C7BC28--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44683760.9010908>