Date: Mon, 31 Mar 2008 01:23:47 -0700 From: soralx@cydem.org To: freebsd-ports@FreeBSD.org Cc: pav@FreeBSD.org Subject: Re: ports system woes Message-ID: <20080331012347.55ebef1c@soralx> In-Reply-To: <1206526020.78560.37.camel@pav.hide.vol.cz> References: <1206526020.78560.37.camel@pav.hide.vol.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
> The pkg database in /var/db/pkg stores two-way dependency chains. > Each port lists all it's dependencies in +CONTENTS file, and all ports > that depend on it in +REQUIRED_BY. When you delete package, all > dependencies of deleted package are iterated and the name of deleted > package is removed from dependency's +REQUIRED_BY file. That's what > undepend() do. aha, thanks! hmm, this should have been pretty obvious to me... > Quick solution would be to gather all depnames for the deleted package, > and then do a single pass over /var/db/pkg entries looking for origins. > > Ultimate solution would be to implement a database which would > concentrate origins for all packages with linear lookup time. I'm personally against of decresing complexity by means of incresing complexity of pkg_install suit (i.e., database instead of fs). I might have a distorted understanding, but UFS2 is an OK database in itself? Can't the the tools be made O(n) without resorting to moving everything to a DB? FS-based approach performs well enough when /var/db/pkg/ is cached, so IMO the issue is just that whole pkg/ tree doesn't fit in cache on machines with 256M RAM anymore (because of sheer monstrosity of the tree caused by them 'modular' approaches to large projects). > The OpenSSL thing I assume is only relevant for people who happen to > have OpenSSL installed from ports. For that, it could be solved by > spamming the required value into /etc/make.conf, similar what perl ports > do. But that really is up to the openssl port maintainer > (dinoex@FreeBSD.org). right, but note how I suggested 'intelligently modifying' rather than "spamming" :) I am probably wrong (didn't check in detail), but doesn't bsd.openssl.mk get invoked every time (every port install) if USE_OPENSSL==yes, no matter if the openssl port is installed or not? Anyway, it'd be nice if dinoex could take a look at bsd.openssl.mk (does he need to be CC'd?) > Pav Lucistnik <pav@oook.cz> > <pav@FreeBSD.org> [SorAlx] ridin' VS1400
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080331012347.55ebef1c>