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

lintian probs: need 'COPYING', and script with #!<not-abs-path>



Hi, I'm trying to package some software as a .deb; not for Debian,
well, not yet anyway, just for myself, and anybody who wants to
download it.

The software includes a command, let's call it
'create-new-module-from-template', which generates a source tree for
a new program from a template directory.

When run as 'create-new-module-from-template foo', amongst many others,
the following files are created:

	foo/doc/COPYING
	foo/bin/foo.pl.cpp

The contents of the first of these is obvious, and the second contains
something like:

	#!PERL_CMD_PATH
	#if ....
	...
	#endif ...
	...

I.e. a cpp-able file which can be used to generate the real script
with a command like:

	cpp -DPERL_CMD_PATH=/usr/bin/perl ....

So, of course, the sources I'm trying to package include the templates
that this 'create-new-module-from-template' loads, processes and
spits out when the user invokes it.

These templates include files which correspond to those mentioned
above:

	template/doc/COPYING
	template/bin/template.pl.cpp

only without certain substitutions made on their names and
contents. And Lintian does not like these files!

For 'COPYING' it says:

	W: script-template-generator-package: extra-license-file
	.../template/doc/COPYING
	N:
	N:   All license information should be collected in the debian/copyright
	N:   file. This usually makes it unnecessary for the package to install
	N:   this information in other places as well.
	N:   
	N:   Refer to Policy Manual, section 13.5 for details.
	N:

and for 'template.pl.cpp' it gives a 'triple' error:

	E: script-template-generator-package: interpreter-not-absolute
	.../template/bin/template.pl.cpp
	#!PERL_CMD_PATH
	N:
	N:   This script uses a relative path to locate its interpreter. This path
	N:   will be taken relative to the caller's current directory, not the
	N:   script's, so it is not likely to be what was intended.
	N:


	W: script-template-generator-package: script-not-executable
	.../template/bin/template.pl.cpp
	N:
	N:   This file starts with the #! sequence that marks interpreted scripts,
	N:   but it is not executable.
	N:


	W: script-template-generator-package: unusual-interpreter
	.../template/bin/template.pl.cpp
	#!PERL_CMD_PATH
	N:
	N:   This package contains a script for an interpreter that the Lintian
	N:   maintainers have not thought of. It could be a typo for a common
	N:   interpreter. If not, please contact the Lintian maintainers so that
	N:   they can add this interpreter to their list.
	N:

The code itself works and installs correctly when I direct from
sources into /usr/local. it even does the right thing as a .deb,
but I'd like to make this packaging 'package-perfect'.

I don't really want to change the sources much, because I want
to minimise the number of local changes, but also because I believe
*they* do the right thing, and that lintian, while generally right to
point out these problems, is, in this specific case, wrong to do so,
but of course it cannot know that.

Philosophically speaking :-) the perfect solution would be something
like:

	dh_writeFileInPackageToPreventLintianRunningTheseSpecificTests extra-license-file ...

in the rules file, but I can see why such a facility would be a very
bad idea.

Can anybody advise on what the correct way to fix these problems are?

Many thanks!

Alexis



Reply to: