package lint suggestions

Charles Wilson
Fri May 2 22:29:00 GMT 2008

Christopher Faylor wrote:
> As part of my effort to allow maintainers to upload their own packages
> I am thinking of finally writing a package lint script which checks for
> known problems in packaging.

> - Empty directories.

I'm not sure this is a good idea.  With cygport, empty directories are 
automatically removed, but sometimes -- like today's re-release of 
'alternatives' -- that's a problem.  Alternatives needs the 
/etc/alternatives and /var/lib/alternatives directories -- but doesn't 
actually put anything there itself, on first install.

Obviously, there are two ways to solve this, so that "empty" directories 
aren't really empty.  The cygport way is to insert a .keep-pkgname file 
into the "empty" directory [*].  Or, you could use a post-install script.

Anyway, if 'empty dir' is made a lint error, expect a number of old 
packages -- obviously, non-cygport ones, all -- to trip on that one.

> - DLLs not installed to /bin or /usr/bin.

Not an error.  dlopen'ed modules -- such as m4-2.0 and perhaps 
ImageMagick/GraphicsMagick -- might be named ".dll" but will live in 

> - setup.hint has overly long ldesc.

Pppphhhhbbtt! :-P

* If the cygwin README exists, should we check its contents, e.g. for 
the version string itself (as an indicator that the README was updated 
for this particular release)?  Maybe other "required" information?

* /usr/info/dir and /usr/share/info/dir

* odd locations for LC_MESSAGES directories (e.g. other than 

* Eventually -- not yet -- disallow /usr/X11R6/

* The "check all packages for file conflicts" is a big job -- and will 
get lots of false positives whenever a package is split up into 
-devel/lib/bin pieces.  However, there are a few files that commonly 
conflict between packages:


Maybe there should be special checks just for these common areas of 


[*] I explicitly patched inetd to ignore files in /etc/inetd.d/ that 
began with a '.', for precisely this reason. I used cygport's keepdir 
feature to retain /etc/inetd.d, but then inetd keep trying to parse the 
empty /etc/inetd.d/.keepdir-inetutils file as a configuration script.

However, I *almost* think that's a security issue: there shouldn't be 
configuration scripts -- used to set up internet servers, no less -- 
that are hidden from view, where the sysadmin might miss them. I don't 
ordinarily do ls -a in /etc/...

More information about the Cygwin-apps mailing list