Subject: Re: cscope
To: None <tech-userlevel@netbsd.org>
From: Chuck Cranor <chuck@ece.cmu.edu>
List: tech-userlevel
Date: 11/02/2006 14:23:57
On Wed, Nov 01, 2006 at 07:27:30PM +0100, Hubert Feyrer wrote:
> [here we go again...]
> What would be the benefit of having this in-tree over installing it from 
> pkgsrc?

hi-

    That's a hard question to answer.  As far as I know, we don't 
really have a set of "official" criteria on putting applications 
in the main tree vs. using pkgsrc.  Also, there has been ongoing
discussion over the past few years about switching the main tree
from "base/comp/man/misc/text" to a more fine grained "syspkgs" 
system that has added an air of lingering of uncertainty to discussions 
on this topic.


    That being said, here is my personal criteria for adding applications
to the main source tree.   An application should be a part of the 
main source tree when one or more of the following is true:

    [a] it is required by a standard we want to follow (POSIX, SUSv3, etc.)
		( examples: /bin/sh, /bin/ls )

    [b] it is considered something that is part of a "traditional BSD" system
		( example: /usr/games/fortune, 
		   /usr/bin/rlogin [ but now more likely /usr/bin/ssh ] )

    [c] it is small and provides basic control of the kernel or local hardware
		( examples: /usr/bin/eject, /usr/bin/cdplay, /sbin/sysctl )

    [d] it is small and provides basic support for administrating the system
		( examples: /sbin/rcorder, /usr/sbin/pwd_mkdb )

    [e] it is directly related to or promotes the use and development of 
	open source operating systems like BSD
		( examples: /usr/bin/cvs, /usr/bin/make, /usr/bin/gcc, 
			    /usr/bin/gdb, /usr/bin/groff [for documentation], 
			    /usr/bin/ctags, ... etc. )

	For items in category [e], we should prefer applications with:
		- a BSD license
		- small size and minimal external dependencies
		- are relatively stable (i.e. don't change much)
		- clean, portable code

	(Clearly some apps like gcc don't fit well here, but we really
	have to have a compiler that supports all the systems we run on,
	so there is not much choice...  it is unfortunate that gcc upgrades
	have caused such trouble in the past.)

Given that framework (if you agree with it), I would argue for cscope 
under category [e].  It is directly related to making open source OS
software development easier.  It has a BSD license.  It is small and 
doesn't depend on any external libraries or systems.  And it is stable 
(15.1 was released in 2001, 15.5 in 2003, and 15.6 in 2006).   In the 
current "base/comp/man/misc/text" framework, it should be part of "comp"
(not "base").



chuck