# GNU Guix --- Functional package management for GNU # Copyright © 2023 Ludovic Courtès # # 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 . # # Test the 'guix refresh' command-line utility. # guix refresh --version manifest="t-guix-refresh-manifest-$$.scm" module_dir="t-guix-refresh-modules-$$" trap 'rm -f "$manifest"; rm -rf "$module_dir"' EXIT # Tell the 'test' updater what to simulate. export GUIX_TEST_UPDATER_TARGETS idutils_version="$(guix package -A ^idutils$ | cut -f2)" GUIX_TEST_UPDATER_TARGETS=' (("guile" "3" (("12.5" "file:///dev/null") ("1.6.4" "file:///dev/null"))) ("libreoffice" "" (("1.0" "file:///dev/null"))) ("idutils" "" (("'$idutils_version'" "file:///dev/null"))) ("the-test-package" "" (("5.5" "file://'$PWD/$module_dir'/source"))))' # No newer version available. ! guix refresh -t test idutils case "$(guix refresh -t test idutils 2>&1)" in *"$idutils_version"*"already the latest version"*) true;; *) false;; esac ! guix refresh -t test libreoffice case "$(guix refresh -t test libreoffice 2>&1)" in *"greater than the latest known version"*"1.0"*) true;; *) false;; esac # Various ways to specify packages. cat > "$manifest" <manifest (list "guile@3.0")) EOF default_IFS="$IFS" IFS=_ for spec in "guile" \ "guile@3.0" \ "-e_(@ (gnu packages guile) guile-3.0)" \ "-m_$manifest" \ "-r_guile" \ "-s_core" do guix refresh -t test $spec case "$(guix refresh -t test $spec 2>&1)" in *"would be upgraded"*"12.5"*) true;; *) false;; esac done IFS="$default_IFS" # Actually updating. mkdir "$module_dir" echo hello > "$module_dir/source" cat > "$module_dir/sample.scm"<&1)" in *"failed to find"*"2.0.0"*) true;; *) false;; esac for spec in "guile=1.6.4" "guile@3=1.6.4" do guix refresh -t test "$spec" case "$(guix refresh -t test "$spec" 2>&1)" in *"would be downgraded"*"1.6.4"*) true;; *) false;; esac done # Listing updaters. This should work whether or not networking is available. guix refresh --list-updaters lieu of <package>s....* gnu/services/authentication.scm (fprintd-configuration) (nslcd-configuration): Substitute file-like objects for package ones. * gnu/services/cgit.scm (cgit-configuration, opaque-cgit-configuration): Likewise. * gnu/services/cups.scm (package-list?, cups-configuration): Likewise. * gnu/services/dns.scm (verify-knot-configuration) (ddclient-configuration): Likewise. * gnu/services/docker.scm (docker-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/getmail.scm (getmail-configuration): Likewise. * gnu/services/mail.scm (dovecot-configuration) (opaque-dovecot-configuration): Likewise. * gnu/services/messaging.scm (prosody-configuration) (opaque-prosody-configuration): Likewise. * gnu/services/monitoring.scm (zabbix-server-configuration) (zabbix-agent-configuration): Likewise. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-configuration): Likewise. * gnu/services/virtualization.scm (libvirt-configuration) (qemu-guest-agent-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise. Tobias Geerinckx-Rice 2021-11-17services: docker: Add 'environment-variables' configuration field....* gnu/services/docker.scm (docker-configuration): Add the field (docker-shepherd-service): Pass the list of defined variables to make-forkexec-constructor. * doc/guix.texi (Miscellaneous Services): Update doc. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Alexey Abramov 2021-07-29services: Migrate to <setuid-program>....* gnu/services/dbus.scm (dbus-setuid-programs, polkit-setuid-programs): Return setuid-programs. * gnu/services/desktop.scm (enlightenment-setuid-programs): Return setuid-programs. (%desktop-services)[mount-setuid-helpers]: Use setuid-programs. * gnu/services/docker.scm (singularity-setuid-programs): Return setuid-programs. * gnu/services/xorg.scm(screen-locker-setuid-programs): Return setuid-programs. * gnu/system.scm (%setuid-programs): Return setuid-programs. * doc/guix.texi (Setuid Programs, operating-system Reference): Replace 'list of G-expressions' with 'list of <setuid-program>'. Brice Waegeneire 2021-05-08services: docker: Disable configuration serialization....* gnu/services/docker.scm (serialize-boolean): Delete procedure. (docker-configuration) <no-serialization>: New syntactic keyword. Maxim Cournoyer