Skip to content

Existing .deb packages generate many warnings and errors from the linter #119

@atheriel

Description

@atheriel

For an unrelated experiment I ran Debian's official package linter -- lintian -- on one of the generated .deb files. This gives:

$ lintian output/ubuntu-2204/r-4.1.3_1_amd64.deb 
E: r-4.1.3: dir-or-file-in-opt opt/R/
E: r-4.1.3: dir-or-file-in-opt opt/R/4.1.3/
E: r-4.1.3: dir-or-file-in-opt opt/R/4.1.3/bin/
E: r-4.1.3: dir-or-file-in-opt ... use --no-tag-display-limit to see all (or pipe to a file/program)
E: r-4.1.3: extended-description-is-empty
E: r-4.1.3: malformed-contact Maintainer //github.com/rstudio/r-builds
E: r-4.1.3: malformed-contact Maintainer RStudio
E: r-4.1.3: no-copyright-file
E: r-4.1.3: too-many-contacts Maintainer RStudio, PBC https://github.com/rstudio/r-builds
E: r-4.1.3: unstripped-binary-or-object opt/R/4.1.3/bin/Rscript
E: r-4.1.3: unstripped-binary-or-object opt/R/4.1.3/lib/R/bin/Rscript
E: r-4.1.3: unstripped-binary-or-object opt/R/4.1.3/lib/R/bin/exec/R
E: r-4.1.3: unstripped-binary-or-object ... use --no-tag-display-limit to see all (or pipe to a file/program)
W: r-4.1.3: executable-not-elf-or-script opt/R/4.1.3/lib/R/bin/BATCH
W: r-4.1.3: executable-not-elf-or-script opt/R/4.1.3/lib/R/bin/COMPILE
W: r-4.1.3: executable-not-elf-or-script opt/R/4.1.3/lib/R/bin/INSTALL
W: r-4.1.3: executable-not-elf-or-script ... use --no-tag-display-limit to see all (or pipe to a file/program)
W: r-4.1.3: national-encoding opt/R/4.1.3/lib/R/doc/FAQ
W: r-4.1.3: package-contains-timestamped-gzip opt/R/4.1.3/lib/R/library/grDevices/afm/ArialMT-Bold.afm.gz 2022-04-05T21:05:12
W: r-4.1.3: package-contains-timestamped-gzip opt/R/4.1.3/lib/R/library/grDevices/afm/ArialMT-BoldItalic.afm.gz 2022-04-05T21:05:12
W: r-4.1.3: package-contains-timestamped-gzip opt/R/4.1.3/lib/R/library/grDevices/afm/ArialMT-Italic.afm.gz 2022-04-05T21:05:12
W: r-4.1.3: package-contains-timestamped-gzip ... use --no-tag-display-limit to see all (or pipe to a file/program)
W: r-4.1.3: package-installs-java-bytecode opt/R/4.1.3/lib/R/share/java/getsp.class
W: r-4.1.3: script-not-executable opt/R/4.1.3/lib/R/share/sh/echo.sh
W: r-4.1.3: syntax-error-in-debian-changelog line 5 "badly formatted trailer line"
W: r-4.1.3: syntax-error-in-debian-changelog line 5 "found eof where expected more change data or trailer"
W: r-4.1.3: unknown-field r-4.1.3_1_amd64.deb License
W: r-4.1.3: unknown-field r-4.1.3_1_amd64.deb Vendor
W: r-4.1.3: unknown-section default

Some of these clearly reflect the "opinionated" nature of this build system and others are an artifact of using fpm (including the "badly formatted" changelog it generates), but others I think we should fix:

  • Section could be made to match r-base by using universe/math.
  • We could embed the rest of the Description from r-base instead of using only the first line.
  • We could use something like RStudio PBC <https://github.com/rstudio/r-builds> as the maintainer.
  • We should probably fix the copyright file location to match Debian conventions (or whatever r-base does), because this error makes it seem like we're redistributing R without its license.
  • We should just drop the --vendor and --license arguments to fpm.

Finally, if we want to actually silence the remaining issues lintian allows packages to embed a set of overrides. Not sure that gives us much benefit, though.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions