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