portindex -- the second coming.

Matthew Seaman m.seaman at infracaninophile.co.uk
Sat Oct 23 11:03:19 PDT 2004


On Sat, Oct 23, 2004 at 12:59:09PM -0400, Christopher Nehren wrote:
 
> I presume that by "annoying bug" you mean "portindex uses the port
> origin as its unique key in the data cache."? If so, that shouldn't be
> too difficult to solve. "make index" has to obtain its correct concept
> of the package name somehow. It shouldn't be too difficult to do the
> same thing.

No, I mean the bug that was fixed in HEAD, RELENG_4 and RELENG_5
(before the creation of RELENG_5_3, so it's fixed there as well),
which was what made ruby dump core while running portsdb and generated
huge amounts of traffic all over this and several other FreeBSD lists.

The bug that was fixed here:

    http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/db/btree/bt_split.c.diff?r1=1.6&r2=1.7

> Here's the feedback that I promised earlier: I very much like what
> you're doing, and your code is very clean and well-written. However, I
> have one minor nit: I'd like to see portindex determine which ports need
> to be updated by checking the mtime / ctime (at least I think that it
> was one of these, because it worked without cvsup output and only
> updated those which were out of date) on the relevant port files, like
> the original portindex did. Not everyone uses cvsup to update their
> ports tree, and not everyone uses cvsup to update all of their ports
> tree. I do beta testing for the development versions of GNOME, and I've
> been trying out the BSD# ports tree as well. While the development
> version GNOME ports tree does have a cvsup server, the BSD# ports tree
> doesn't (I may be wrong on this; if anyone's reading who knows better,
> please chime in). There's probably other development trees that people
> graft onto their real tree which don't use cvsup as an update avenue. Of
> course, since I mentioned it, I'll be glad to implement it.

Hmmm... That's certainly possible.  I never actually looked at the
original portindex at all, so I have no real idea how it worked.

The cvsup-checkouts mode should work for someone who maintains a copy
of the ports CVS /repository/ via cvsup -- or it will with very minor
tweaking.

Agreed, a mode for cache-update which scans the ports tree and updates
any port containing files with mtime after a certain cut off point
would be useful -- but slow.  You can achieve something like the
effect you want now by doing:

    % cd /usr
    % find ports -newer /var/tmp/portindex/portindex-cache.db -type f \
        -depth 3 -print | cache-update -f cvsup-output

Or I'm sure you could write a script to generate the appropriate 'plain'
format without any trouble.

Anyhow, I'll put out a new beta incorporating a built-in find mode and
your other suggestion about namespaces tomorrow.

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
                                                      Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey         Marlow
Tel: +44 1628 476614                                  Bucks., SL7 1TH UK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20041023/badff48d/attachment.bin


More information about the freebsd-ports mailing list