Large consensus over this, INDEX has been removed from the ports tree (people used to only update it once in a blue moon).
This does NOT mean you lose the functionality. Instead, there's a file in the portslist package that contain the exact same information, but up-to-date, and also more complete (it does follow dependencies instead of being limited to what's actually linked in the ports tree) Change is mostly transparent: if you try a convenience search target from /usr/ports, the Makefile will encourage you to install portslist. Minor nit: portslist mistakenly had a run depends on sqlports. Note that for this to work, you need to update your packages frequently (duh) and if you want things to reflect your own ports tree with wip stuff, you should build sqlports yourself. Technical notes: all this is based around sqlports. The ports tree itself can dump most of its internal information through dump-vars. This gets accumulated into an sqlite database, sqlports. Since I'm somewhat of a noob where it comes to sql, there are currently two databases, sqlports (human consumption) and sqlports-compact (more correct versions with lots of inter-reference and proper keys). I hope to unify both now that I've figured out the tricks I was missing for full views suitable for human beings ;/ portslist is just a small extract of sqlports as flat files which do not require sqlite3 to be installed. (full list of ports, probably now redundant, and ports-INDEX, a carbon-copy of the old index information) There are already a few consumers of sqlports out there, though more is possible.