Three-level ports

Doug Barton DougB at FreeBSD.org
Sun Aug 31 18:10:45 PDT 2003


I've been giving this idea some thought lately, and I have a wild
proposal that I'd like to submit, just to spur some thought about
possible new directions.

We have a lot of ports that cross definition boundaries, so no matter
what category we put them in, it's "wrong" to someone. Also, since we
occasionally grow new categories, the repo copies involved in moving the
ports cause unwanted confusion, and code bloat.

So, rather than grow a multilayer physical directory structure, I'd like
to propose creating _less_ physical directories, and more virtual ports
categories. I'd like to see the physical directories whittled down to
really broad categories that are very unlikely to change over the years.
Then we can add virtual categories to the individual ports makefiles
which help organize things into smaller groups so that a user looking
for a particular widget won't get overwhelmed with the options.

We already have a visual tool for displaying the virtual categories in
sysinstall, creating something similar for the command line shouldn't be
hard to do. This would create a dependency for more frequent INDEX
updates, but Kris is already well on the way to having that more or less
automated.

I can already hear people thinking, "Why not just have one big ports
directory?" Two reasons off the top of my head. First is file system
performance. UFS starts to bog down at about 10k directory entries, and
we already have 9k+ ports. The second reason is cvsup refuse files. I
(and I know lots of others) put all the language ports, and some other
stuff that I know I won't ever want in my refuse file to avoid thrashing
the cvsup servers.

There are of course pluses and minuses to this approach, but I think
it's worth considering. The ports collection has been headed in
increasingly complicated directions over the past 3 years or so.
Personally, I prefer the idea of building a simple, robust foundation,
then giving people tools to do more complex, elegant things.

Something to think about,

Doug

-- 

    This .signature sanitized for your protection



More information about the freebsd-ports mailing list