Lintian ReportsBETA

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

Read more in Development files (Section 8.4) in the Debian Policy Manual.

This screen masks the tag non-standard-file-perm.

The screen is present in Lintian version 2.114.163. That is the most recent version we know about.

We use semantic versions. The patch number is a commit step indicator relative to the 2.114.0 release tag in our Git repository.

You can find the masking logic for this version at commit ea05801. For merge requests, please use the latest version in the Lintian screen toolchain/gnat/ali-read-only.

The screen masked 1103 hints in 25 source packages.

There were no overrides.