non-standard-file-perm

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

Severity: warning
Experimental: false

Screens

toolchain/gnat/ali-read-only

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."

"Nicolas Boulenguez" nicolas@debian.org

See also: Development files (Section 8.4) in the Debian Policy Manual, Bug#986400

See also