From owner-freebsd-ports Mon Feb 14 1:58:17 2000 Delivered-To: freebsd-ports@freebsd.org Received: from m3.cs.berkeley.edu (m3.CS.Berkeley.EDU [128.32.45.179]) by builder.freebsd.org (Postfix) with ESMTP id 84F5D3DE5 for ; Mon, 14 Feb 2000 01:58:13 -0800 (PST) Received: from silvia.hip.berkeley.edu (sji-ca6-93.ix.netcom.com [205.186.213.93]) by m3.cs.berkeley.edu (8.9.3/8.9.3) with ESMTP id BAA80336; Mon, 14 Feb 2000 01:58:25 -0800 (PST) (envelope-from asami@stampede.cs.berkeley.edu) Received: (from asami@localhost) by silvia.hip.berkeley.edu (8.9.3/8.6.9) id BAA66920; Mon, 14 Feb 2000 01:58:20 -0800 (PST) To: Will Andrews Cc: FreeBSD Ports Subject: Re: multi-level categories References: <20000108131719.A22210@futuresouth.com> <20000118172055.D457@argon.blackdawn.com> From: asami@FreeBSD.org (Satoshi - Ports Wraith - Asami) Date: 14 Feb 2000 01:58:18 -0800 In-Reply-To: Will Andrews's message of "Tue, 18 Jan 2000 17:20:55 -0500" Message-ID: Lines: 106 X-Mailer: Gnus v5.7/Emacs 20.5 Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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 * 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