From owner-freebsd-current Thu Apr 8 13:56:47 1999 Delivered-To: freebsd-current@freebsd.org Received: from helmholtz.salk.edu (helmholtz.salk.edu [198.202.70.34]) by hub.freebsd.org (Postfix) with ESMTP id C83AB14F3D for ; Thu, 8 Apr 1999 13:56:45 -0700 (PDT) (envelope-from bartol@salk.edu) Received: from eccles.salk.edu (eccles [198.202.70.120]) by helmholtz.salk.edu (8.7.5/8.7.3) with SMTP id NAA28205; Thu, 8 Apr 1999 13:54:31 -0700 (PDT) Date: Thu, 8 Apr 1999 13:54:34 -0700 (PDT) From: Tom Bartol To: John Polstra Cc: Jacques Vidrine , current@FreeBSD.ORG Subject: Re: /sys/boot, egcs vs. gcc, -Os In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Thu, 8 Apr 1999, John Polstra wrote: > > I am not saying the dependencies are broken. I'm just lamenting the > general problem that it's difficult to upgrade a port that depends on > a lot of things. It's a general structural problem, and I don't know > how to fix it. > > Say you've got a bunch of ports that all depend on the same shared > library -- maybe libjpeg or libXpm. You've had them installed for > a few months, and they all work fine. Now you decide to upgrade > one of them, the "foo" port. Oops, it requires a newer version of > libjpeg. You have to remove the old libjpeg so that the newer one > can be installed without a lot of complaints. Oops, a bunch of other > ports used the old libjpeg. Now you have to upgrade those ports too. > Oops, some of those ports depend on libXpm, and a new version of it is > needed now. Oops, now some other ports that used the old libXpm need > to be upgraded. > > At this point, you throw up your hands, pkg_delete -f everything, > and reinstall all your ports from scratch. And the next time you're > tempted to upgrade a port, you decide it would be easier to just buy > a new machine. :-) > > John I agree completely. I had just recently run into this problem in a big way over gnome. I am not familiar at all with the inner workings of the 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 -- i.e. the leaves know which branch they are on but the branches don't know which leaves they bear. If this is in fact the case then it seems to me that a first step in improving the behaviour of the port/package system is to make the database be a leaf-to-branch and branch-to-leaf linked relationship tree that can be traversed as needed. I'm not sure of the standard Computer Science jargon to describe such a tree. Tom To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message