Commit Graph

46773 Commits

Author SHA1 Message Date
Christopher Baines f363c836e0
lint: Move the linting code to a different module.
To try and move towards making programatic access to the linting code easier,
this commit separates out the linting script, from the linting functionality
that it uses.

* guix/scripts/lint.scm (emit-warnings): Alter to to not use match-lambda, as
<lint-warning> isn't accessible.
(<lint-warning>, lint-warning, make-lint-warning, lint-warning?,
lint-warning-message, lint-warning-message-text, lint-warning-message-data,
lint-warning-location, package-file, %make-warning make-warning,
<lint-checker>, lint-checker, make-lint-checker, lint-checker?,
lint-checker-name, lint-checker-description, lint-checker-check,
properly-starts-sentance?, starts-with-abbreviation?, %quoted-identifier-rx,
check-description-style, package-input-intersection,
check-inputs-should-be-native, check-inputs-should-not-be-an-input-at-all,
package-name-regexp, check-synopsis-style, probe-uri,
tls-certificate-error-string, validate-uri, check-home-page,
%distro-directory, check-patch-file-names, escape-quotes,
official-gnu-packages*, check-gnu-synopsis+description, origin-uris,
check-source, check-source-file-name, check-source-unstable-tarball,
check-mirror-url, check-github-url, check-derivation, check-license,
call-with-networking-fail-safe, with-networking-fail-safe,
current-vulnerabilities*, package-vulnerabilities, check-vulnerabilities,
check-for-updates, report-tabulations, report-trailing-white-space,
report-long-line, %hanging-paren-rx, report-lone-parantheses,
%formatting-reporters, report-formatting-issues, check-formatting, %checkers):
Move to…
* guix/lint.scm: … here
* po/guix/POTFILES.in: Add guix/lint.scm.
* Makefile.am: Add guix/lint.scm.
* tests/lint.scm: Change to import (guix lint), rather than (guix scripts lint).
2019-07-15 22:32:19 +01:00
Christopher Baines 57238532f4
scripts: lint: Separate the message warning text and data.
So that translations can be handled more flexibly, rather than having to
translate the message text within the checker.

* guix/scripts/lint.scm (lint-warning-message-text,
lint-warning-message-data): New procedures.
(lint-warning-message): Remove record field accessor, replace with procedure
that handles the lint warning data and translating the message.
(make-warning): Rename to %make-warning.
(make-warning): New macro.
(emit-warnings): Handle the message-text and message-data fields.
(check-description-style): Adjust for changes to make-warning.
[check-trademarks, check-end-of-sentence-space): Adjust for changes to
make-warning.
(check-inputs-should-be-native, check-inputs-should-not-be-an-input-at-all,
check-synopsis-style, validate-uri, check-home-page, check-patch-file-names,
check-gnu-synopsis+description, check-mirror-url, check-github-url,
check-derivation, check-vulnerabilities, check-for-updates,
report-tabulations, report-trailing-white-space, report-long-line,
report-lone-parentheses): Adjust for changes to make-warning.
2019-07-15 22:32:19 +01:00
Christopher Baines 50fc2384fe
scripts: lint: Handle warnings with a record type.
Rather than emiting warnings directly to a port, have the checkers return the
warning or warnings.

This makes it easier to use the warnings in different ways, for example,
loading the data in to a database, as you can work with the <lint-warning>
records directly, rather than having to parse the output to determine the
package and location.

* guix/scripts/lint.scm (<lint-warning>): New record type.
(lint-warning): New macro.
(lint-warning?, lint-warning-package, lint-warning-message,
lint-warning-location, package-file, make-warning): New procedures.
(call-with-accumulated-warnings, with-accumulated-warnings): Remove.
(emit-warning): Rename to emit-warnings, and switch to displaying multiple
warnings.
(check-description-style)[check-not-empty-description, check-texinfo-markup,
check-trademarks, check-quotes, check-proper-start,
check-end-of-sentence-space]: Switch to generating a list of warnings, and
using make-warning, rather than emit-warning.
(check-inputs-should-be-native, check-inputs-should-not-be-an-input-at-all):
Switch to generating a list of warnings, and using make-warning, rather than
emit-warning.
(check-synopsis): Switch to generating a list of warnings, and using
make-warning, rather than emit-warning.
[check-not-empty]: Remove, this is handled in the match clause
to avoid other warnings being emitted.
[check-final-period, check-start-article, check-synopsis-length,
check-proper-start, check-start-with-package-name, check-texinfo-markup]:
Switch to generating a list of warnings, and using make-warning, rather than
emit-warning.
[checks]: Remove check-not-empty.
(validate-uri, check-home-page, check-patch-file-names,
check-gnu-synopsis+description): Switch to generating a list of warnings, and
using make-warning, rather than emit-warning.
(check-source): Switch to generating a list of warnings, and using
make-warning, rather than emit-warning.
[try-uris]: Remove.
[warnings-for-uris]: New procedure, replacing try-uris.
(check-source-file-name, check-source-unstable-tarball, check-mirror-url,
check-github-url, check-derivation, check-vulnerabilities, check-for-updates,
report-tabulations, report-trailing-white-space, report-long-line,
report-lone-parentheses, report-formatting-issues, check-formatting): Switch
to generating a list of warnings, and using make-warning, rather than
emit-warning.
(run-checkers): Call emit-warnings on the warnings returned from the checker.
* tests/lint.scm (string-match-or-error, single-lint-warning-message): New
procedures.
(call-with-warnings, with-warnings): Remove.
("description: not a string", "description: not empty", "description: invalid
Texinfo markup", "description: does not start with an upper-case letter",
"description: may start with a digit", "description: may start with lower-case
package name", "description: two spaces after end of sentence", "description:
end-of-sentence detection with abbreviations", "description: may not contain
trademark signs: ™", "description: may not contain trademark signs: ®",
"description: suggest ornament instead of quotes", "synopsis: not a string",
"synopsis: not empty", "synopsis: valid Texinfo markup", "synopsis: does not
start with an upper-case letter", "synopsis: may start with a digit",
"synopsis: ends with a period", "synopsis: ends with 'etc.'", "synopsis:
starts with 'A'", "synopsis: starts with 'a'", "synopsis: starts with 'an'",
"synopsis: too long", "synopsis: start with package name", "synopsis: start
with package name prefix", "synopsis: start with abbreviation", "inputs:
pkg-config is probably a native input", "inputs: glib:bin is probably a native
input", "inputs: python-setuptools should not be an input at all (input)",
"inputs: python-setuptools should not be an input at all (native-input)",
"inputs: python-setuptools should not be an input at all (propagated-input)",
"patches: file names", "patches: file name too long", "patches: not found",
"derivation: invalid arguments", "license: invalid license", "home-page: wrong
home-page", "home-page: invalid URI", "home-page: host not found", "home-page:
Connection refused", "home-page: 200", "home-page: 200 but short length",
"home-page: 404", "home-page: 301, invalid", "home-page: 301 -> 200",
"home-page: 301 -> 404", "source-file-name", "source-file-name: v prefix",
"source-file-name: bad checkout", "source-file-name: good checkout",
"source-file-name: valid", "source-unstable-tarball",
"source-unstable-tarball: source #f", "source-unstable-tarball: valid",
"source-unstable-tarball: package named archive", "source-unstable-tarball:
not-github", "source-unstable-tarball: git-fetch", "source: 200", "source: 200
but short length", "source: 404", "source: 301 -> 200", "source: 301 -> 404",
"mirror-url", "mirror-url: one suggestion", "github-url", "github-url: one
suggestion", "github-url: already the correct github url", "cve", "cve: one
vulnerability", "cve: one patched vulnerability", "cve: known safe from
vulnerability", "cve: vulnerability fixed in replacement version", "cve:
patched vulnerability in replacement", "formatting: lonely parentheses",
"formatting: alright"): Change test-assert to test-equal, and adjust to work
with the changes above.
("formatting: tabulation", "formatting: trailing white space", "formatting:
long line"): Use string-match-or-error rather than string-contains.
2019-07-15 22:32:18 +01:00
Mark H Weaver 5b524f448c
gnu: linux-libre: Update to 5.2.1.
* gnu/packages/linux.scm (%linux-libre-version): Update to 5.2.1.
(%linux-libre-hash): Update hash.
2019-07-15 15:26:40 -04:00
Mark H Weaver ec92941a82
gnu: linux-libre@4.19: Update to 4.19.59.
* gnu/packages/linux.scm (%linux-libre-4.19-version): Update to 4.19.59.
(%linux-libre-4.19-hash): Update hash.
2019-07-15 15:25:19 -04:00
Marius Bakke 464a29d3d7
gnu: libnsl: Do not build 'libnsl.a'.
* gnu/packages/onc-rpc.scm (libnsl)[arguments]: Add <#:configure-flags>.
2019-07-15 21:19:35 +02:00
Marius Bakke 4b70b776e5
gnu: libnsl: Fix build with gettext 0.20.
* gnu/packages/onc-rpc.scm (libnsl)[arguments]: New field.
2019-07-15 21:18:01 +02:00
Marius Bakke 6e00b1ea62
gnu: python-cachecontrol: Do not use unstable source archive.
* gnu/packages/python-web.scm (python-cachecontrol)[source]: Change to GIT-FETCH.
2019-07-15 20:38:00 +02:00
Efraim Flashner 9db2cad68d
gnu: uim-qt: Build with qt-5 support.
* gnu/packages/xorg.scm (uim-qt)[inputs]: Remove qt@4.  Add qtbase,
qtx11extras.
[arguments]: Replace qt4 configure flags with qt5 configure flags.
2019-07-15 21:17:26 +03:00
Marius Bakke e6e09dc9c5
gnu: sooperlooper: Adjust for GCC 7.
* gnu/packages/music.scm (sooperlooper)[arguments]: Remove <#:make-flags>.
Preserve CPATH in <#:phases>.
2019-07-15 20:09:51 +02:00
Marius Bakke 5ba856aba3
gnu: Adjust CPATH overrides to work with GCC 7 search paths.
* gnu/packages/education.scm (gcompris)[arguments]: Preserve original CPATH,
if any.
* gnu/packages/games.scm (ltris, prboom-plus, abbaye, red-eclipse, btanks,
4dtris, edgar)[arguments]: Likewise.
2019-07-15 19:46:40 +02:00
Marius Bakke cdc07e6854
gnu: msgpack: Update to 3.2.0.
* gnu/packages/serialization.scm (msgpack): Update to 3.2.0.
[build-system]: Change to CMAKE-BUILD-SYSTEM.
[native-inputs]: Remove AUTOCONF, AUTOMAKE and LIBTOOL.
2019-07-15 18:51:17 +02:00
Marius Bakke adad147b4b
gnu: lua-libmpack: Update to 1.0.8.
* gnu/packages/serialization.scm (lua-libmpack): Update to 1.0.8.
2019-07-15 18:45:36 +02:00
Marius Bakke 2ec3df7019
gnu: lua-libmpack: Do not use unstable source tarball.
* gnu/packages/serialization.scm (lua-libmpack)[source]: Change to GIT-FETCH.
2019-07-15 18:44:01 +02:00
Ludovic Courtès e8fc56a3d2
gnu: open-zwave: Use the bundled TinyXML.
* gnu/packages/zwave.scm (open-zwave)[source](snippet): Remove code to
use our own TinyXML.
[inputs]: Remove TINYXML.
2019-07-15 18:27:23 +02:00
Ludovic Courtès 6f8eb9f1d8
remote: Make sure the user doesn't mess up with the REPL protocol.
Reported by zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze).

* guix/remote.scm (trampoline): Wrap 'primitive-load' in
'with-output-to-port'.
2019-07-15 18:27:22 +02:00
Ludovic Courtès 5db07b971d
remote: Fix type error in the list of store items to send.
Fixes a regression introduced in 3868577480.

* guix/remote.scm (remote-eval): Use 'append-map', not 'map', for
'derivation-input-output-paths'.
2019-07-15 18:27:22 +02:00
Marius Bakke f8e0d93ca3
gnu: salmon: Fix build with GCC 7.
* gnu/packages/bioinformatics.scm (salmon)[arguments]: Do not read from
CPLUS_INCLUDE_PATH, and add headers to CPATH only.
2019-07-15 18:21:47 +02:00
Marius Bakke 0b58cb427d
gnu: python-datrie: Update to 0.8.
* gnu/packages/python-xyz.scm (python-datrie): Update to 0.8.
[arguments]: Remove.
2019-07-15 18:13:39 +02:00
Marius Bakke b5b56b7f27
gnu: python-gevent: Fix build with libev 4.25 and GCC 7.
* gnu/packages/python-xyz.scm (python-gevent)[arguments]: Simplify libev
unbundling, which failed with the newer libev.  Use C_INCLUDE_PATH instead of CPATH.
[native-inputs]: Remove (PACKAGE-SOURCE LIBEV).
2019-07-15 16:56:15 +02:00
Marius Bakke c1cb85bf76
gnu: gRPC: Re-add custom c-ares variant.
Commit e8393ebe46 updated c-ares without knowing
that cmake-build-system was the most important feature of 'c-ares-next'.

* gnu/packages/adns.scm (c-ares/cmake): New hidden package.
* gnu/packages/machine-learning.scm (grpc)[inputs]: Change C-ARES to C-ARES/CMAKE.
2019-07-15 16:51:16 +02:00
Marius Bakke d08482f03f
gnu: python-hamcrest: Update to 1.9.0-0.25fdc5f.
* gnu/packages/check.scm (python-pyhamcrest): Update to 1.9.0-0.25fdc5f.
[arguments]: Replace CHECK phase with custom Pytest invokation.
2019-07-15 16:43:57 +02:00
Kei Kebreau 794ce8eaf7
gnu: libgweather: Update to 3.28.3.
* gnu/packages/gnome.scm (libgweather): Update to 3.28.3.
2019-07-15 09:58:52 -04:00
Kei Kebreau bc09c41631
gnu: dconf-editor: Update to 3.30.2.
* gnu/packages/gnome.scm (dconf-editor): Update to 3.30.2.
2019-07-15 09:58:52 -04:00
Kei Kebreau 757f863bd2
gnu: gnome-clocks: Update to 3.30.1.
* gnu/packages/gnome.scm (gnome-clocks): Update to 3.30.1.
2019-07-15 09:58:52 -04:00
Kei Kebreau 496d7ccd4d
gnu: gnome-calendar: Update to 3.30.1.
* gnu/packages/gnome.scm (gnome-calendar): Update to 3.30.1.
2019-07-15 09:58:51 -04:00
Kei Kebreau 2aabc647f2
gnu: gnome-shell-extensions: Update to 3.30.1.
* gnu/packages/gnome.scm (gnome-shell-extensions): Update to 3.30.1.
2019-07-15 09:58:51 -04:00
Kei Kebreau ef9b7d4c9f
gnu: orca: Update to 3.30.2.
* gnu/packages/gnome.scm (orca): Update to 3.30.2.
2019-07-15 09:58:51 -04:00
Kei Kebreau 676e7cb4fa
gnu: gnome-screenshot: Update to 3.30.0.
* gnu/packages/gnome.scm (gnome-screenshot): Update to 3.30.0.
[home-page]: Update URI.
2019-07-15 09:58:51 -04:00
Kei Kebreau 00b14dbb09
gnu: cheese: Update to 3.30.0.
* gnu/packages/gnome.scm (cheese): Update to 3.30.0.
2019-07-15 09:58:51 -04:00
Kei Kebreau 3b79afa6a8
gnu: shotwell: Update to 0.30.4.
* gnu/packages/gnome.scm (shotwell): Update to 0.30.4.
[build-system]: Use meson-build-system.
[arguments]: Set glib-or-gtk? flag.
[native-inputs]: Add desktop-file-utils.  Remove itstool duplicate.  Order
inputs alphabetically.
2019-07-15 09:58:51 -04:00
Kei Kebreau b1a8b40818
gnu: gexiv2: Update to 0.12.0.
* gnu/packages/gnome.scm (gexiv2): Update to 0.12.0.
[native-inputs]: Add gcr and vala.
2019-07-15 09:58:50 -04:00
Kei Kebreau 7734b4a2d9
gnu: gdm: Update to 3.30.3.
* gnu/packages/gnome.scm (gdm): Update to 3.30.3.
2019-07-15 09:58:50 -04:00
Kei Kebreau 11d28bd9f6
gnu: devhelp: Update to 3.30.1.
* gnu/packages/gnome.scm (devhelp): Update to 3.30.1.
[build-system]: Use meson-build-system.
[native-inputs]: Add gobject-introspection, glib:bin and gtk+:bin.
[inputs]: Add amtk.
2019-07-15 09:58:50 -04:00
Kei Kebreau f828d05b28
gnu: Add amtk.
* gnu/packages/gnome.scm (amtk): New variable.
2019-07-15 09:58:50 -04:00
Kei Kebreau d054fbf57d
gnu: gjs: Update to 1.56.2.
* gnu/packages/gnome.scm (gjs): Update to 1.56.2.
[arguments]: Adjust pre-check phase.
[propagated-inputs]: Replace mozjs-52 with mozjs-60.
2019-07-15 09:58:50 -04:00
Kei Kebreau 9d4d439b0a
gnu: gnome-tweaks: Update to 3.30.2.
* gnu/packages/gnome.scm (gnome-tweaks): Update to 3.30.2.
2019-07-15 09:58:50 -04:00
Kei Kebreau bea6b829b8
gnu: gcr: Update to 3.28.1.
* gnu/packages/gnome.scm (gcr): Update to 3.28.1.
[native-inputs]: Add vala.
2019-07-15 09:58:50 -04:00
Kei Kebreau 77425f04f2
gnu: totem: Update to 3.30.0.
* gnu/packages/gnome.scm (totem): Update to 3.30.0.
2019-07-15 09:28:23 -04:00
Kei Kebreau 18138ab939
gnu: shared-mime-info: Update to 1.10.
* gnu/packages/gnome.scm (shared-mime-info): Update to 1.10.
2019-07-15 09:28:23 -04:00
Kei Kebreau c71bb3f29d
gnu: nautilus: Update to 3.30.5.
* gnu/packages/gnome.scm (nautilus): Update to 3.30.5.
2019-07-15 09:28:23 -04:00
Kei Kebreau 12fe484673
gnu: gvfs: Update to 1.40.1.
* gnu/packages/gnome.scm (gvfs): Update to 1.40.1.
2019-07-15 09:28:23 -04:00
Kei Kebreau 1f8b5515ed
gnu: gucharmap: Update to 12.0.1.
* gnu/packages/gnome.scm (gucharmap): Update to 12.0.1.
[native-inputs]: Update unicode-files.
2019-07-15 09:28:23 -04:00
Kei Kebreau 5088834271
gnu: gnome-terminal: Update to 3.30.3.
* gnu/packages/gnome.scm (gnome-terminal): Update to 3.30.3.
2019-07-15 09:28:23 -04:00
Kei Kebreau 90fdc80f77
gnu: gnome-settings-daemon: Update to 3.30.2.
* gnu/packages/gnome.scm (gnome-settings-daemon): Update to 3.30.2.
2019-07-15 09:28:22 -04:00
Kei Kebreau da886d6fce
gnu: gnome-session: Update to 3.30.1.
* gnu/packages/gnome.scm (gnome-session): Update to 3.30.1.
2019-07-15 09:28:22 -04:00
Kei Kebreau d29298ef5b
gnu: gnome-online-accounts: Update to 3.30.2.
* gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.30.2.
2019-07-15 09:28:22 -04:00
Kei Kebreau 982c0b368d
gnu: gnome-control-center: Update to 3.30.3.
* gnu/packages/gnome.scm (gnome-control-center): Update to 3.30.3.
[source](patches): New field.
[arguments]: Adjust "patch-paths" phase.
[inputs]: Add libsecret and udisks.
* gnu/packages/patches/gnome-control-center-use-udisks-to-get-disk-size.patch:
New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
2019-07-15 09:26:56 -04:00
Rutger Helling e6bd575a72
gnu: swayidle: Update to 1.5.
* gnu/packages/wm.scm (swayidle): Update to 1.5.
2019-07-15 14:22:24 +02:00
Rutger Helling 6862766cf2
gnu: openrct2: Update to 0.2.3.
* gnu/packages/games.scm (openrct2): Update to 0.2.3.
2019-07-15 14:22:24 +02:00