;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 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 . (define-module (gnu tests) #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix records) #:use-module (gnu system) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module ((gnu packages) #:select (scheme-modules)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9 gnu) #:use-module (ice-9 match) #:export (marionette-configuration marionette-configuration? marionette-configuration-device marionette-configuration-imported-modules marionette-configuration-requirements marionette-service-type marionette-operating-system define-os-with-source system-test system-test? system-test-name system-test-value system-test-description system-test-location fold-system-tests all-system-tests)) ;;; Commentary: ;;; ;;; This module provides the infrastructure to run operating system tests. ;;; The most important part of that is tools to instrument the OS under test, ;;; essentially allowing to run in a virtual machine controlled by;; GNU Guix news, for use by 'guix pull'. ;; ;; Copyright © 2019-2024 Ludovic Courtès <ludo@gnu.org> ;; Copyright © 2019–2021, 2024 Tobias Geerinckx-Rice <me@tobias.gr> ;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com> ;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net> ;; Copyright © 2019, 2020, 2021, 2023 Julien Lepiller <julien@lepiller.eu> ;; Copyright © 2019–2024 Florian Pelz <pelzflorian@pelzflorian.de> ;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org> ;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;; Copyright © 2021–2023 Leo Famulari <leo@famulari.name> ;; Copyright © 2021 Zhu Zihao <all_but_last@163.com> ;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be> ;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;; Copyright © 2021 Andrew Tropin <andrew@trop.in> ;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com> ;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu> ;; Copyright © 2024 Hilton Chain <hako@ultrarare.space> ;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com> ;; Copyright © 2024 Vivien Kraus <vivien@planete-kraus.eu> ;; Copyright © 2024 Guillaume Le Vaillant <glv@posteo.net> ;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr> ;; Copyright © 2024 Sebastian Dümcke <code@sam-d.com> ;; ;; Copying and distribution of this file, with or without modification, are ;; permitted in any medium without royalty provided the copyright notice and ;; this notice are preserved. (channel-news (version 0) (entry (commit "ccf72d5074b0c5ba793e686cbb1d6eaad39824bf") (title (de "Neues Format @samp{appimage} für den Befehl @command{guix pack}") (en "New @samp{AppImage} format for the @command{guix pack} command") (fr "Nouveau format @samp{AppImage} pour la commande @command{guix pack}")) (body (de "@command{guix pack} kann nun AppImage-Dateien erstellen. Das AppImage-Dateiformat erlaubt es, in einer einzelnen Datei Software zu verteilen. Die AppImage-Datei lässt sich ohne besondere Benutzerrechte ausführen. Hier ist ein Beispiel: @example guix pack --format=appimage --entry-point=bin/hello hello @end example Siehe @command{info \"(guix.de) Aufruf von guix pack\"} für mehr Informationen.") (en "@command{guix pack} can now produce AppImage a single file, self-contained software archive. AppImage files are easily distributed and can be run with user privileges. Here is an example for the @code{hello} package: @example guix pack --format=appimage --entry-point=bin/hello hello @end example See @command{info \"(guix) Invoking guix pack\"} for more information.") (fr "@command{guix pack} peut désormais produire un fichier AppImage. AppImage est une manière de distribuer les logiciels en un seul fichier, qui peut être executé avec des droits d’utilisateur. Voici un exemple pour le paquet @code{hello} : @example guix pack --format=appimage --entry-point=bin/hello hello @end example Consultez @command{info \"(guix.fr) Invoquer guix pack\"} pour plus d’informations."))) (entry (commit "b93434e656eba4260df82158a96c295000d3ff44") (title (en "PostgreSQL service upgrade") (de "PostgreSQL-Dienst aktualisiert") (fr "Mise à jour du service PostgreSQL")) (body (en "\ This news entry concerns users of the @code{postgresql-service-type}. The default PostgreSQL used in @code{postgresql-configuration} has been deprecated, and will be removed in a few months. However, the value of the default @code{postgresql-configuration-postgresql} can't be directly changed to a newer major version of PostgreSQL, because switching to a major version currently requires a manual update of the database. Because of this, the default value of postgresql-configuration-postgresql has been unset. Current users of the service will have to set it manually. If it was unset, use @code{postgresql-10} and plan an upgrade in the next month to a supported version of PostgreSQL. To upgrade, you will need to either dump your database using your previous version of PostgreSQL and reload it in the new version or use the @command{pg_upgrade} application. See @url{https://www.postgresql.org/docs/current/upgrading.html} for more info.") (de "\ Diese Neuigkeit betrifft Nutzer des @code{postgresql-service-type}. Die in @code{postgresql-configuration} bisher vorgegebene Version von PostgreSQL gilt als veraltet und wird in ein paar Monaten entfernt werden. Allerdings können wir den Vorgabewert von @code{postgresql-configuration-postgresql} nicht einfach für Sie auf eine neuere große Version ändern, weil bei so einem Wechsel die Datenbank derzeit manuell aktualisiert werden muss. Aus diesem Grund wurde der Vorgabewert von @code{postgresql-configuration-postgresql} von nun an entfernt. Aktuelle Nutzer des Dienstes müssen sie selbst setzen. Wenn kein Wert gesetzt war, sollten Sie @code{postgresql-10} eintragen und dabei einplanen, dass Sie es kommenden Monat auf eine unterstützte Version von PostgreSQL aktualisieren müssen. Zum Aktualisieren werden Sie entweder mit der vorherigen Version von PostgreSQL ein Dump Ihrer Datenbank exportieren, das Sie dann in der neuen Version laden, oder Sie benutzen dafür die Anwendung @command{pg_upgrade}. Siehe @url{https://www.postgresql.org/docs/current/upgrading.html} für weitere Informationen.") (fr "\ Ce message concerne les utilisateurs du service-type PostgreSQL. La précédente version par défaut de PostgreSQL utilisée dans @code{postgresqsl-configuration} est obsolète et sera supprimée dans quelques mois. Cependant, la valeur de la configuration par défaut @code{postgresql-configuration-postgresql} ne peut pas être changée directement pour une version majeure prise en charge de PostgreSQL, car le passage à une nouvelle version majeure nécessite actuellement une mise à jour manuelle de la base de données. Pour cette raison, la valeur par défaut de @code{postgresql-configuration-postgresql} a été supprimée et les utilisateurs actuels du service doivent la configurer manuellement. Si elle n’était pas définie, utilisez @code{postgresql-10} et prévoyez une mise à jour dans le mois à venir vers une version plus récente de PostgreSQL. Pour effectuer la mise à jour, vous devrez soit exporter votre base de données sous une version de PostgreSQL puis la réimporter sous une nouvelle version, soit utiliser l'application @command{pg_upgrade}. Pour plus d'informations, consultez @url{https://www.postgresql.org/docs/current/upgrading.html}."))) (entry (commit "cfc85eb0c67a5cf10a3fbe2531b926cbb8c62489") (title (en "Linux-libre 6.10 removed due to end of upstream support") (de "Linux-libre 6.10 wurde entfernt")) (body (en "The linux-libre 6.10 kernel series has reached the end of its life, and is