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 majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message