From owner-freebsd-ports@FreeBSD.ORG Mon May 15 08:10:34 2006 Return-Path: X-Original-To: freebsd-ports@freebsd.org Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 930B816A402 for ; Mon, 15 May 2006 08:10:34 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (ns0.infracaninophile.co.uk [81.187.76.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id D3BAD43D46 for ; Mon, 15 May 2006 08:10:33 +0000 (GMT) (envelope-from m.seaman@infracaninophile.co.uk) Received: from [172.16.3.238] (gateway.ash.thebunker.net [213.129.64.4]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.13.6/8.13.6) with ESMTP id k4F8AFsJ090154 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 15 May 2006 09:10:20 +0100 (BST) (envelope-from m.seaman@infracaninophile.co.uk) Message-ID: <44683760.9010908@infracaninophile.co.uk> Date: Mon, 15 May 2006 09:10:08 +0100 From: Matthew Seaman Organization: Infracaninophile User-Agent: Thunderbird 1.5.0.2 (X11/20060424) MIME-Version: 1.0 To: "[LoN]Kamikaze" References: <44682A60.1090701@gmx.de> In-Reply-To: <44682A60.1090701@gmx.de> X-Enigmail-Version: 0.94.0.0 Content-Type: multipart/signed; micalg=pgp-ripemd160; protocol="application/pgp-signature"; boundary="------------enigC3F29A3C50EED502C6C7BC28" X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (smtp.infracaninophile.co.uk [81.187.76.162]); Mon, 15 May 2006 09:10:20 +0100 (BST) X-Virus-Scanned: ClamAV 0.88.2/1462/Sun May 14 19:24:29 2006 on happy-idiot-talk.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-3.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.1 X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on happy-idiot-talk.infracaninophile.co.uk Cc: freebsd-ports@freebsd.org Subject: Re: dependency inheritance X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 May 2006 08:10:34 -0000 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--