Lintian tag information: non-standard-file-perm (type: warning)

Description (from lintian-explain-tags)

The file has a mode different from 0644. In some cases this is
intentional, but in other cases this is a bug.

Please refer to Permissions and owners (Section 10.9) in the Debian Policy
Manual for details.

Visibility: warning
Show-Always: no
Check: files/permissions

Screen: toolchain/gnat/ali-read-only
Advocates: "Nicolas Boulenguez" <nicolas@debian.org>
Reason: In GNAT, the compiler also deals with dependencies and rebuild
order. The .ali files contain the dependency information
required to detect if a .o is more recent than the closure of
all sources it depends upon, or if it should be rebuilt.

By convention, a read-only .ali file tells GNAT to fail if the
.o is obsolete or unavailable, instead of attempting to rebuild.
This is recommended for packaged libraries (the .so or .a are
available but not the .o files).

This convention may seem bizarre according to modern standards,
but it has been in use for 25 years, so Adacore would probably
need a compelling reason to break it.

See also Debian Policy 8.4, which explicitly requires this:

If the package provides Ada Library Information (*.ali) files
for use with GNAT, these files must be installed read-only (mode
0444) so that GNAT will not attempt to recompile them. This
overrides the normal file mode requirements given in
"Permissions and owners."

Read more in Development files (Section 8.4) in the Debian
Policy Manual and Bug#986400.

Show affected packages