aboutsummaryrefslogtreecommitdiff
path: root/tests/guix-lint.sh
blob: 7ddc7c265bc532fe49b1a8bee1178bc9bead1517 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# GNU Guix --- Functional package management for GNU
# Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

#
# Test the `guix lint' command-line utility.
#

guix lint --version

module_dir="t-guix-lint-$$"
mkdir "$module_dir"
trap "rm -rf $module_dir" EXIT


cat > "$module_dir/foo.scm"<<EOF
(define-module (foo)
  #:use-module (guix packages)
  #:use-module (gnu packages base))

(define-public dummy
  (package (inherit hello)
    (name "dummy")
    (version "42")
    (synopsis "dummy package")
    (description "dummy package. Only used for testing purposes.")))
EOF

GUIX_PACKAGE_PATH="$module_dir"
export GUIX_PACKAGE_PATH

grep_warning ()
{
    res=`echo "$1" | grep -E -c "(synopsis|description) should"`
    echo $res
}

# Three issues with the dummy package:
# 1) the synopsis starts with the package name;
# 2) the synopsis starts with a lower-case letter;
# 3) the description has a single space following the end-of-sentence period.

out=`guix lint -c synopsis,description dummy 2>&1`
if [ `grep_warning "$out"` -ne 3 ]
then false; else true; fi

out=`guix lint -c synopsis dummy 2>&1`
if [ `grep_warning "$out"` -ne 2 ]
then false; else true; fi

out=`guix lint -c description dummy 2>&1`
if [ `grep_warning "$out"` -ne 1 ]
then false; else true; fi

out=`guix lint -c description,synopsis dummy 2>&1`
if [ `grep_warning "$out"` -ne 3 ]
then false; else true; fi

if guix lint -c synopsis,invalid-checker dummy 2>&1 | \
   grep -q 'invalid-checker: invalid checker'
then true; else false; fi

# Make sure specifying multiple packages works.
guix lint -c inputs-should-be-native dummy dummy@42 dummy
>...* gnu/home/services/ssh.scm (<home-openssh-configuration>)[add-keys-to-agent]: New field. (serialize-add-keys-to-agent): New procedure. (openssh-configuration->string): Use it. * doc/guix.texi (Secure Shell): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Nicolas Graves 2023-05-30home: services: Add msmtp service....* gnu/home/services/mail.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Mail Home Services): New node. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Tanguy Le Carrour 2023-05-24home: services: ssh: Do not empty ~/.ssh/authorized_keys by default....The default was an empty list which would remove any ~/.ssh/authorized_keys file and replace it with a symlink to an empty file. On some systems, notably Ubuntu 22.10, the guix home generated ~/.ssh/authorized_keys file does not allow login. * doc/guix.texi (Secure Shell): Update, describe default #false value. * gnu/home/services/ssh.scm (<home-openssh-configuration>) [authorized-keys]: Change default to #f. (openssh-configuration-files): Cater for default #f value: Do not register "authorized_keys". Janneke Nieuwenhuizen 2023-05-13services: shepherd: Default to 0.10....* gnu/services/shepherd.scm (<shepherd-configuration>)[shepherd]: Default to SHEPHERD-0.10. * gnu/home/services/shepherd.scm (<home-shepherd-configuration>)[shepherd]: Likewise. Ludovic Courtès 2023-05-11gnu: home: services: fontutils: Add support for SXML fragments....* gnu/home/services/fontutils.scm (add-fontconfig-config-file): Add support for adding arbitrary SXML configuration into fonts.conf; * doc/guix.texi (Fonts Services): Update the documentation. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andrew Patterson 2023-04-21home: services: openssh: Add configuration option for jump proxies...Add a new 'proxy' field to openssh-host to allow ProxyCommand or ProxyJump, but not both, to be configured. Configuring both would cause the serialization order to determine which one is used. Deprecate the 'proxy-command' field because the 'proxy' field replaces it. * gnu/home/services/ssh.scm (proxy-jump->string, proxy-command-or-jump-list?, serialize-proxy-command-or-jump-list, sanitize-proxy-command): New procedure. (proxy-jump, proxy-command): New record type. (openssh-host)[proxy-command]: Mark field as deprecated because OpenSSH can't have ProxyCommand and ProxyJump configured at the same time. * doc/guix.texi (Secure Shell): Update to match the changes to the service. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Saku Laesvuori 2023-04-08home: Add gpg-agent service....* gnu/home/services/gnupg.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (GNU Privacy Guard): New node. (Secure Shell): Link to it. Ludovic Courtès 2023-04-07home: xdg-base-directories: Set correct value for XDG_STATE_HOME....XDG Base Directory Specification 0.8 officially introduces the XDG_STATE_HOME environment variable. Fixes <https://issues.guix.gnu.org/issue/61809>. * gnu/home/services/xdg.scm (home-xdg-base-directories-configuration)[state-home]: Set default value according to spec. Update field documentation. (home-xdg-base-directories-service-type): Update service description. Signed-off-by: Andrew Tropin <andrew@trop.in> Bruno Victal 2023-04-02services: replace bare serializers with (serializer ...)...* gnu/home/services/shells.scm (home-zsh-configuration)[environment-variables]: Use (serializer ...). (home-bash-configuration)[aliases, environment-variables]: Likewise. (home-fish-configuration)[abbreviations, aliases] [environment-variables]: Likewise. * gnu/services/audio.scm (mpd-configuration)[music-dir, playlist-dir] [endpoints, address, inputs, archive-plugins, input-cache-size] [decoders, filters, playlist-plugins]: Likewise. * gnu/services/linux.scm (fstrim-configuration)[extra-arguments]: Likewise. * gnu/services/security.scm (fail2ban-jail-configuration)[backend] [log-encoding, extra-content]: Likewise. * tests/services/configuration.scm: Update tests. ("serialize-configuration [deprecated]"): New test. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Bruno Victal 2023-03-26home: services: Export home-xmodmap-service-type and configuration....This is a follow-up to commit 511ae8325db0dfc7803d7b98d7e4d8f76774e8c5 home: services: Add home-xmodmap-service-type. * gnu/home/services/desktop.scm (home-xmodmap-service-type, home-xmodmap-configuration): Export. Jan (janneke) Nieuwenhuizen 2023-03-17home: services: Add home-xmodmap-service-type....* gnu/home/services/desktop.scm (home-xmodmap-service-type) (home-xmodmap-configuration): New variables; (serialize-xmodmap-configuration) (xmodmap-shepherd-service): New procedures; * doc/guix.texi (Desktop Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> conses 2023-03-17home: services: ssh-agent: Handle setting of SSH_AUTH_SOCK....* gnu/home/services/ssh.scm (home-ssh-agent-environment-variables): New procedure. (home-ssh-agent-service-type): Use it as ahome-environment-service type extension. * doc/guix.texi (Secure Shell): Remove advice about, and examples of setting SSH_AUTH_SOCK. Jan (janneke) Nieuwenhuizen 2023-03-16home: services: kodi, znc, ssh-agent: Use 'match-record'....* gnu/home/services/media.scm (home-kodi-services): Use 'match-record' instead of 'match'. * gnu/home/services/messaging.scm (home-znc-services): Likewise. * gnu/home/services/ssh.scm (home-ssh-agent-services): Likewise. Ludovic Courtès 2023-03-16home: services: znc: Remove host-side use of (shepherd support)....This is a followup to 193f547ca35eb49ef57bd9a25b67cb3965f10b03, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/messaging.scm (home-znc-services): Change 'command' and 'log-file' to gexps. Add 'modules' field to 'shepherd-service'. Ludovic Courtès 2023-03-16home: services: kodi: Remove host-side use of (shepherd support)....This is a followup to 70056b1b2beebbc9f8ea2c34eacc57f379368ab3, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/media.scm (home-kodi-services): Change 'command' and 'logfile' to gexps. Add 'modules' field to 'shepherd-service'. Ludovic Courtès 2023-03-16home: services: ssh-agent: Remove host-side use of (shepherd support)....This is a followup to 2c2f382e757d5eef39e8460a20ac75a1b1f8b22e, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/ssh.scm (<home-ssh-agent-configuration>)[socket-directory]: Change value to a gexp. (home-ssh-agent-services): Change 'socket-file' and 'command' to a gexp. Add 'modules' field to 'shepherd-service'. * doc/guix.texi (Secure Shell): Adjust accordingly. Ludovic Courtès 2023-03-16gnu: home: services: Add home-kodi-service-type....* gnu/home/services/media.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Media Home Services): Document it in new subsection. Jan (janneke) Nieuwenhuizen 2023-03-16gnu: home: services: Add home-znc-service-type....* gnu/home/services/messaging.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Messaging Home Services): Document it in new subsection. Jan (janneke) Nieuwenhuizen 2023-03-16gnu: home: services: Add home-ssh-agent-service-type....* gnu/home/services/ssh.scm: (<home-ssh-agent-configuration>): New type. (home-ssh-agent-services): New procedure. (home-ssh-agent-service-type): New variable. * doc/guix.texi (Secure Shell): Document it. Jan (janneke) Nieuwenhuizen 2023-03-16home: services: Add home-unclutter-service-type....* gnu/home/services/desktop.scm (home-unclutter-configuration) (home-unclutter-service-type): New variables; (home-unclutter-shepherd-service): New procedure; * doc/guix.texi (Desktop Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> conses 2023-03-05home: services: Add 'pulseaudio-rtp-sink' and 'pulseaudio-rtp-source'....* gnu/home/services/sound.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Sound Home Services): New section. Ludovic Courtès 2023-01-31home: services: fontutils: Add service value....* gnu/home/services/fontutils.scm (add-fontconfig-config-file): Add support for multiple paths; (home-fontconfig-service-type): Honor it; * doc/guix.texi (Fonts Services): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Giacomo Leidi 2023-01-05system: Define default 'PS1' in /etc/bashrc rather than ~/.bashrc....Users can override 'PS1' in ~/.bashrc if they wish. Previously, on Guix Home, the "default" 'PS1' would be set in ~/.bashrc when 'home-bash-configuration-guix-defaults?' is true, preventing users from overriding it via the 'environment-variables' field of 'home-bash-extension'. * gnu/system/shadow.scm (%default-bashrc): Remove 'PS1' setting. * gnu/system.scm (operating-system-etc-service): Define PS1 in /etc/bashrc. * gnu/home/services/shells.scm (add-bash-configuration): When 'home-bash-configuration-guix-defaults?' is true, add a default 'PS1' to ~/.bash_profile. Ludovic Courtès 2023-01-05system, home: Factorize default '.bashrc'....* gnu/system/shadow.scm (%default-bashrc): New variable. Source /etc/bashrc only if it exists. (default-skeletons): Use it. * gnu/home/services/shells.scm (guix-bashrc): Remove. (add-bash-configuration): Refer to '%default-bashrc' instead. Ludovic Courtès 2022-12-23home: xdg: Add with-imported-modules to xdg activation script....Without it activation doesn't work when called in clean environment. * gnu/home/services/xdg.scm (ensure-xdg-base-dirs-on-activation): Add with-imported-modules to xdg activation script. Andrew Tropin 2022-12-19home: xdg: Make it possible to extend user-directories service....* gnu/home/services/xdg.scm (home-xdg-user-directories-service-type): Make it possible to override user-directories configuration by extending. Andrew Tropin 2022-12-02home: services: Use 'match-record' instead of 'match'....* gnu/home/services/mcron.scm (home-mcron-shepherd-services): Use 'match-record' instead of 'match'. * gnu/home/services/shells.scm (home-bash-extensions): Likewise. * gnu/home/services/xdg.scm (serialize-xdg-desktop-entry): Likewise. Ludovic Courtès 2022-12-01home: xdg: Export xdg-base/user-directories getters....* gnu/home/services/xdg.scm: Export xdg-base/user-directories getters. Andrew Tropin