Tracking which ports were installed explicitly
Ryan Schmidt
ryandesign at macports.org
Wed Dec 3 19:30:04 PST 2008
On Dec 3, 2008, at 20:46, Rainer Müller wrote:
> Joshua Root wrote:
>
>> If it's done as proposed in the ticket, you would do 'port dependents
>> foo' (or rather its internal equivalent) to see whether foo is
>> orphaned.
>> If it has no dependents, it's orphaned. Explicitly installing a port
>> adds 'world' as a dependent.
>
> Using a pseudo-port like 'world' sounds like a very nice and elegant
> idea to me. But checking for dependents is currently a very expensive
> operation. To find all dependents the current code iterates over the
> whole dep_map, which can grow very large depending on the number of
> ports being installed.
>
> If you never heard about dep_map, take a look in your own install:
> bzless /opt/local/var/macports/receipts/dep_map.bz2
> And then you will see why searching and modifying this file is so
> expensive.
>
> Therefore we should focus on finishing registry2.0. This was already
> started by Chris Pickel (sfiera) in Google Summer of Code 2007. The
> code
> was merged to trunk, and it is also already distributed with releases,
> but it is not used at all yet.
>
> registry2.0 plans to use a sqlite db instead of plain text files for
> dependency tracking (dep_map) and receipts. This should hopefully make
> such search operations a lot faster and also make the registry more
> extensible.
>
> I tried to get a statement about the status of registry2.0 from Chris
> some time ago in April, but the only response was that he is busy.
> So I
> don't know what is left to complete registry2.0.
We also need to consider that changes have probably occurred in
registry1.0 since then which may not have been merged into registry2.0.
More information about the macports-dev
mailing list