Time to abandon recursive pulling of dependencies?

Stephen Montgomery-Smith stephen at math.missouri.edu
Tue May 15 21:51:14 UTC 2007


Ulrich Spoerlein wrote:
> Stephen Montgomery-Smith wrote:
>> And also, the only reason it goes slow is because it has to do
>> (cd $$dir; make -V PKGNAME)
>> for every dir in _LIB_RUN_DEPENDS.  But if instead we kept a file in /var/db/pkg called 
>> something like +PACKAGE_NAMES, where as each port is created we add in a one line entry with 
>> this mapping of origin to package name, then registration would take less than a second.  It 
> 
> I also need to quickly look up origin -> pkgname and would suggest
> placing this in the INDEX file. Then you have the foundation in place to
> be able to run 'make vim-7.1.2.tbz' in, say, /usr/ports/ and it will
> first create gettext-x.y.tbz and stuff. Ie, it could resolve/build
> dependencies *before* even starting the build in editors/vim.
> 
> This then quickly leads to parallel pkg builds working (think: make -j3
> vim-7.x.y.tbz)
> 
> Ulrich Spoerlein

This info is already in INDEX (the origin is the second field).

I don't think INDEX can be used for my purposes.  This is because the 
mapping origin->pkgname can change, e.g. audio/mpg123 might map to 
mpg123-vvv or mpg123-esound-vvv (where vvv is the version number).  This 
depends upon environment variables or what other packages are installed.

For my purposes we have to have an origin->pkgname look up table which 
represents the names of packages that have actually been installed. 
(And even the current scheme might get this wrong, as it merely tells 
you what the package name is if you had just installed it.)

The other problem with INDEX is that it takes way too long to produce to 
keep it completely up to date.

Stephen


More information about the freebsd-ports mailing list