lint: Lint usages of 'wrap-program' without a "bash" input.
authorMaxime Devos <maximedevos@telenet.be>
Thu, 1 Jul 2021 10:59:52 +0000 (12:59 +0200)
committerMathieu Othacehe <othacehe@gnu.org>
Wed, 7 Jul 2021 08:00:52 +0000 (10:00 +0200)
commiteac82c0e0a9f5afb5452928acf9b84cbc019c81c
tree6c32644cdd96872e70e7cdfda6906d20754def9a
parenta8e4c158f9b7cc0adf010313b0f974e1a1aa63a7
lint: Lint usages of 'wrap-program' without a "bash" input.

When using 'wrap-program', "bash" (or "bash-minimal") should be
in inputs.  Otherwise, when cross-compiling, 'wrap-program' will use
a native bash instead of the cross bash and the 'patch-shebangs' won't
be able to correct this.

Tobias Geerinckx-Rice is added to the copyright lines because
a part of the "straw-viewer" package definition is included.

This linter detects 365 problematic package definitions at time
of writing.

* guix/lint.scm
  (report-wrap-program-error): New procedure.
  (check-wrapper-inputs): New linter.
  (%local-checkers)[wrapper-inputs]: Add the new linter.
  ("explicit #:sh argument to 'wrap-program' is acceptable")
  ("'check-wrapper-inputs' detects 'wrap-program' without \"bash\" in inputs")
  ("'check-wrapper-inputs' detects 'wrap-qt-program' without \"bash\" in inputs")
  ("\"bash\" in 'inputs' satisfies 'check-wrapper-inputs'")
  ("\"bash-minimal\" in 'inputs' satisfies 'check-wrapper-inputs'")
  ("'cut' doesn't hide bad usages of 'wrap-program'")
  ("bogus phase specifications don't crash the linter"): New tests.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
guix/lint.scm
tests/lint.scm