ports system woes

soralx at cydem.org soralx at cydem.org
Mon Mar 31 01:23:51 PDT 2008


> 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 at 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 at oook.cz>
>               <pav at FreeBSD.org>

[SorAlx]  ridin' VS1400


More information about the freebsd-ports mailing list