Skip site navigation (1)Skip section navigation (2)
Date:      14 Feb 2000 01:58:18 -0800
From:      asami@FreeBSD.org (Satoshi - Ports Wraith - Asami)
To:        Will Andrews <andrews@technologist.com>
Cc:        FreeBSD Ports <ports@FreeBSD.org>
Subject:   Re: multi-level categories
Message-ID:  <vqcitzshzr9.fsf@silvia.hip.berkeley.edu>
In-Reply-To: Will Andrews's message of "Tue, 18 Jan 2000 17:20:55 -0500"
References:  <vqc4scoddtw.fsf@silvia.hip.berkeley.edu> <XFMail.000108122747.andrews@TECHNOLOGIST.COM> <20000108131719.A22210@futuresouth.com> <vqc66wrnxqb.fsf@silvia.hip.berkeley.edu> <20000118172055.D457@argon.blackdawn.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

Sorry for not responding to this for a while....

Anyway, here are some stats from today's ports tree.  No distfiles,
packages or work directories of course.

(1) du /home/ncvs/ports                  -> 142MB
(2) du /usr/ports                        -> 105MB
(3) size of tar cf - /usr/ports          ->  99MB
(4) # of directories in /home/ncvs/ports -> 15267
(5) # of directories in /usr/ports       -> 11257
(6) # of pkg/ dirs                       ->  3081
(7) # of files/ dirs                     ->  2834
(8) # of files/ dirs with only md5       ->  2325
(9) # of patches/ dirs                   ->  1961
(a) # of scripts/ dirs                   ->   199
(b) # of files in /usr/ports (incl. CVS) -> 57038
(c) # of CVS files in /usr/ports         -> 33771

Each directory comes with a CVS directory.  The sizes above include
the CVS dirs but the directory counts do not.  (You can assume CVS
directories will simply double the directory count.)  (6) - (c) are
all for /usr/ports, not the repository.  There are about 3,100 ports
now.

The difference between 2 and 3 should be block fragmentation.
(Filesystem and tar format experts, is that correct?)  If that is
true, having a lot of small files isn't hurting *that* much in terms
of total space required.

And here's my proposal, slightly revised.

editors/emacs/Makefile
          .../checksum            (<- files/md5)
          .../files/emacs.sh
          .../patches/patch-aa
          .../patches/patch-ab
          .../patches/patch-ac
          .../patches/patch-ad
          .../pkgCOMMENT         \
          .../pkgDESCR            \ these stuff moved
          .../pkgPLIST            /  from ${PKGDIR}
          .../pkgREQ             /
          .../scripts/pre-configure

Basically it amounts to moving everything in pkg/ out to the main dir
by appending the prefix "pkg" in the filenames instead, and moving
"files/md5" to "checksum" in the main directory.

Of the 11,257 directories (5), this will get rid of 3,081 pkg/ dirs
(6) and 2,325 files/ dirs (8) for a revised total of 5,851, or a 48%
reduction in directory count.  The reduction of 5,406 directories also
means 5,406 CVS directories and 16,218 CVS files (3 files per dir)
will disappear, so there will be 40,820 files in the checked out ports
tree for a 28% reduction.

In total, the number of files and directories, which is at 79552 ((5)
x 2 + (b)) currently will be reduced by 21,624 (5,406 + 16,218), or a
27% reduction in inode count.

I don't want to move patches out to the main directory, some ports
have an enormous number of patches and the toplevel will look too
cluttered.  I am ambivalent about moving patches into files.  Since
most files/ directories will be gone with md5 moving out anyway (there
will only be 509 files/ dirs after md5 moves out), there aren't much
savings to be made there.  Also, there are some ports that put "extra"
patches in files/ for special treatment, which could create some
confusion.

I'd like to keep scripts/ as it is.  It is perfectly legal to put a
file called "configure" in files/ now, and it will violate POLA to
change the meaning.  Also, only less than 10% of ports have scripts/
dirs anyway.

 * From: Will Andrews <andrews@technologist.com>

 * You mean the only ports that are capitalized are the ones that were
 * around before you became PW? I find that a little hard to believe, but I
 * certainly can't think of any offhand that have any capital letters in
 * them that were too recent.

No, I converted them when I became the ports manager.  (And I only
became "Ports *Wraith*" quite recently, but that's another
matter.... ;)

 * We can introduce a SCRIPTS variable in bsd.port.mk that'll consist of
 * the names of scripts to run (and the order they're presented in the
 * SCRIPTS var can be the order in which they are run). Optionally, they
 * could be chmod'd +x, but I'm not sure that would survive CVS.

Err, you're not making much sense here.  Anyway, there aren't that
many ports that have ${SCRIPTDIR}, I don't think it will hurt to leave
them there.

 * I still think combining scripts/ and patches/ into files/ is best.

As I said above, that doesn't buy us much in terms of directory count
reduction.

The only remaining big issue is whether to move all patches to the
main level or not.  I'd hate to have to look at lang/pm3-base if that
happens, but it will reduce the directory count by almost another
2,000....

Satoshi


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?vqcitzshzr9.fsf>