This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: package lint suggestions


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 /usr/lib/<somewhere>/


- 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 /usr/share/locale/*/?

* 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:

/usr/lib/charset.alias
/usr/share/locale/locale.alias
libbfd.a
libiberty.a

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

--
Chuck

[*] 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/...



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]