[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Source files



Hi,

For one of my packages (python-astropy), I got a Lintian error that it
would contain a non-source file jquery.dataTables.js. This is mainly
discussed in a bug report

https://bugs.debian.org/798900

however it seems that the problem is more general. The python-astropy
package indeed contains a file jquery.dataTables.js, which for me,
however, looks like a good source: It is well readable, it contains
comments, etc.:

https://sources.debian.net/src/python-astropy/1.0.4-1/astropy/extern/js/jquery.dataTables.js/

However, it contains one line

/*globals $, jQuery,define,_fnExternApiFunc,[...]

which is ~1400 characters long and may be automatically inserted. This
line is now taken by lintian as indication that the file is not a source
file. Aside from the question whether this heuristics is too simple, I
am now curious on how a "source" is defined in the Debian context. Is it
f.e. required that every single character was inserted manually? Or that
at least some of the content was created manually?

Is it acceptable that a line (or several lines) are automatically
handled by the editor (Emacs could do that, f.e.)?

Is it acceptable that a line (or several lines) are handled by external
scripts? What about the signature lines, for example in
debian/changelog? They are usually handled by dch, not by a human -- are
they to be considered as non-source?

What about lines that hare handled by CVS? 

/* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $

is obviously not added manually.

Can a generated file be a source at all?

The only definition I know about what is a source is from GPL:

| The “source code” for a work means the preferred form of the work for
| making modifications to it.

This says nothing about manually created or generated.

The "preferred" in the definition is a bit ambitious -- some people may
prefer a different form than others. And, autogenerated lines (like the
CVS Id, or the signature in debian/changelog) are preferred not not be
changed at all by a third party. Would that make these files non-source?

If someone copies a files from somewhere else, and then patches is to
fits the local needs: Is the patched file a "source"? Someone would
probably prefer to have the original file and the patch instead -- or at
least the source file additionally to the patched one. I have, however,
a few packages which contain a modified file, and where the original one
is not available anymore (since it is >15 years old). At least, I would
strongly prefer to have this in the form "original file + patch", since
then I could see what was changed, and possibly replace these files with
the package where they come from, or at least update them to the current
version. Are these modified files to be considered as non-source, and
therefore the package undistributable?

Finally the question is how one can decide whether a file is "source":
Even if it is completely autogenerated, if the maintainer finds the file
as usable for modifications, why should it then not be marked as
"source"? Shall he hunt of whether a piece of code was inserted by a
non-human? Shall he require that all original (unchanged) files are
included as well?

What are the general guidelines here? Somewhere in written form? The
DFSG does not contain a hint here.

Best regards

Ole


Reply to: