Re: Clarify rationale for ‘debian/rules’ shebang line
Ben Finney <ben+debian@benfinney.id.au> writes:
> I was sloppy in my use of normative language; this is a “must” directive.
> === modified file 'policy.sgml'
> --- policy.sgml 2009-10-21 20:49:37 +0000
> +++ policy.sgml 2009-10-31 01:10:42 +0000
> @@ -1725,7 +1725,10 @@
> <p>
> It must start with the line <tt>#!/usr/bin/make -f</tt>,
> so that it can be invoked by saying its name rather than
> - invoking <prgn>make</prgn> explicitly.
> + invoking <prgn>make</prgn> explicitly. That is, invoking
> + either of <tt>make -f debian/rules <em>args...</em></tt>
> + or <tt>./debian/rules <em>args...</em></tt> must cause
> + identical behaviour in each case.
> </p>
>
> <p>
Seems like a reasonable clarification to me. Seconded.
Note, btw, that Lintian currently has some permitted exceptions to this
that we may not actually want to allow:
# Check for required #!/usr/bin/make -f opening line. Allow -r or -e; a
# strict reading of Policy doesn't allow either, but they seem harmless.
my $start = <RULES>;
tag "debian-rules-not-a-makefile", ""
unless $start =~ m%^\#!\s*/usr/bin/make\s+-[re]?f[re]?\s*$%;
-e isn't actually harmless, and -r, while it generally is, would break
the above requirement. I suspect Lintian should start insisting on
exactly -f for consistent behavior.
--
Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Reply to: