From owner-freebsd-current Thu Apr 8 16:37: 3 1999 Delivered-To: freebsd-current@freebsd.org Received: from mx4.dynasty.net (mail.dynasty.net [208.200.172.236]) by hub.freebsd.org (Postfix) with ESMTP id 6114914DDE for ; Thu, 8 Apr 1999 16:37:00 -0700 (PDT) (envelope-from cpinckard@dynasty.net) Received: from dynasty.net ([12.14.196.174]) by mx4.dynasty.net (Netscape Messaging Server 3.52) with ESMTP id 449; Thu, 8 Apr 1999 18:34:47 -0500 Message-ID: <370D3C38.355F26A0@dynasty.net> Date: Thu, 08 Apr 1999 18:31:04 -0500 From: Chas Pinckard X-Mailer: Mozilla 4.51 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Peter Jeremy Cc: bartol@salk.edu, current@FreeBSD.ORG Subject: Re: /sys/boot, egcs vs. gcc, -Os References: <99Apr9.085646est.40354@border.alcanet.com.au> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Suggestion: How bout a version detection flag for the update pkgs and a version requirement to the newly built ports? C~P Peter Jeremy wrote: > Tom Bartol wrote: > >ports/package database system but it occurred to me that perhaps the > >database is currently only storing which packages a given package depends > >upon and is NOT storing which packages depend upon a given > >package > > The port source tree stores a list of pre-requisite packages in each > Makefile. The `required-by' list is not stored - it would be a > nightmare to maintain. > > On installation, the packages database stores both dependency > directions. /var/db/pkg//+CONTENTS contains the list of > pre-requisite packages in `@pkgdep' records. The +CONTENTS file is > part of the package. /var/db/pkg//+REQUIRED_BY contains the > `required-by' list and is maintained automatically by the package > management tools (eg installing `foo' which depends on `bar' adds > a line `foo' to /var/db/pkg/bar/+REQUIRED_BY, which is removed if > the package in removed). > > The problem is that the package management system provides `add' and > `delete' functions only, and the delete function (by default) requires > all dependent packages to be deleted first. (You can force the delete > to ignore the dependent packages, but that loses the +REQUIRED_BY file > contents). > > There's no mechanism for updating a package - and it's not clear (to > me anyway) how this can be done safely in a general way. Where the > update is only minor (and won't affect the dependent packages), you > can use something like: > > mv /var/db/pkg/bar-1.1/+REQUIRED_BY /var/db/pkg/save > pkg_delete bar-1.1 > pkg_add bar-1.2 > mv /var/db/pkg/save /var/db/pkg/bar-1.2/+REQUIRED_BY > > This approach can't pick up the dependent packages that really do need > to be re-compiled against the newly installed package. > > Peter > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-current" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message