aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2018-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; 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/>.

(use-modules (gnu tests)
             (gnu packages package-management)
             (guix monads)
             (guix store)
             ((guix git-download) #:select (git-predicate))
             ((guix utils) #:select (current-source-directory))
             (git)
             (ice-9 match))

(define (source-commit directory)
  "Return the commit of the head of DIRECTORY or #f if it could not be
determined."
  (let ((repository #f))
    (catch 'git-error
      (lambda ()
        (set! repository (repository-open directory))
        (let* ((head   (repository-head repository))
               (target (reference-target head))
               (commit (oid->string target)))
          (repository-close! repository)
          commit))
      (lambda _
        (when repository
          (repository-close! repository))
        #f))))

(define (tests-for-current-guix source commit)
  "Return a list of tests for perform, using Guix built from SOURCE, a channel
instance."
  ;; Honor the 'TESTS' environment variable so that one can select a subset
  ;; of tests to run in the usual way:
  ;;
  ;;   make check-system TESTS=installed-os
  (let ((guix (channel-source->package source #:commit commit)))
    (map (lambda (test)
           (system-test
            (inherit test)
            (value (mparameterize %store-monad ((current-guix-package guix))
                     (system-test-value test)))))
         (match (getenv "TESTS")
           (#f
            (all-system-tests))
           ((= string-tokenize (tests ...))
            (filter (lambda (test)
                      (member (system-test-name test) tests))
                    (all-system-tests)))))))

(define (system-test->manifest-entry test)
  "Return a manifest entry for TEST, a system test."
  (manifest-entry
    (name (string-append "test." (system-test-name test)))
    (version "0")
    (item test)))

(define (system-test-manifest)
  "Return a manifest containing all the system tests, or all those selected by
the 'TESTS' environment variable."
  (define source
    (string-append (current-source-directory) "/.."))

  (define commit
    ;; Fetch the current commit ID so we can potentially build the same
    ;; derivation as ci.guix.gnu.org.
    (source-commit source))

  ;; Intern SOURCE so that 'build-from-source' in (guix channels) sees
  ;; "fresh" file names and thus doesn't find itself loading .go files
  ;; from ~/.cache/guile when it loads 'build-aux/build-self.scm'.
  (let* ((source (local-file source
                             (if commit
                                 (string-append "guix-"
                                                (string-take commit 7))
                                 "guix-source")
                             #:recursive? #t
                             #:select?
                             (or (git-predicate source)
                                 (const #t))))
         (tests  (tests-for-current-guix source commit)))
    (format (current-error-port) "Selected ~a system tests...~%"
            (length tests))

    (manifest (map system-test->manifest-entry tests))))

;; Return the manifest.
(system-test-manifest)
1.26.1....* gnu/packages/mate.scm (engrampa): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: eom: Update to 1.26.1....* gnu/packages/mate.scm (eom): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-utils: Update to 1.26.1....* gnu/packages/mate.scm (mate-utils): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-menus: Update to 1.26.1....* gnu/packages/mate.scm (mate-menus): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-screensaver: Update to 1.26.2....* gnu/packages/mate.scm (mate-screensaver): Update to 1.26.2. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-netbook: Update to 1.26.0....* gnu/packages/mate.scm (mate-netbook): Update to 1.26.0. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-backgrounds: Update to 1.26.0....* gnu/packages/mate.scm (mate-backgrounds): update to 1.26.0. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-calc: Update to 1.26.0....* gnu/packages/mate.scm (mate-calc): Update to 1.26.0. [inputs]: Add mpc and mpfr. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-user-guide: Update to 1.26.1....* gnu/packages/mate.scm (mate-user-guide): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-control-center: Update to 1.26.1....* gnu/packages/mate.scm (mate-control-center): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: caja-extensions: Update to 1.26.1....* gnu/packages/mate.scm (caja-extensions): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: marco: Update to 1.26.2....* gnu/packages/mate.scm (marco): Update to 1.26.2. [inputs]: Add libxres. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: caja: Update to 1.26.1....* gnu/packages/mate.scm (caja): update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-panel: Update to 1.26.3....* gnu/packages/mate.scm (mate-panel): Update to 1.26.3. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-media: Update to 1.26.1....* gnu/packages/mate.scm (mate-media): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-applets: Update to 1.26.1....* gnu/packages/mate.scm (mate-applets): Update to 1.26.1. [inputs]: Add libnl. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: libmatekbd: Update to 1.26.1....* gnu/packages/mate.scm (libmatekbd): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: libmatemixer: Update to 1.26.0....* gnu/packages/mate.scm (libmatemixer): Update to 1.26.0. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-settings-daemon: Update to 1.26.1....* gnu/packages/mate.scm (mate-settings-daemon): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-session-manager: Update to 1.26.1....* gnu/packages/mate.scm (mate-session-manager): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-terminal: Update to 1.26.1....* gnu/packages/mate.scm (mate-terminal): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: libmateweather: Update to 1.26.1....* gnu/packages/mate.scm (libmateweather): Update to 1.26.1. [source]: Add libmateweather-use-TZDIR.patch. [inputs]: Replace tzdata with tzdata-for-tests. [arguments]: Set TZDIR, ignore test failure for 'check-timezones.sh'. * gnu/packages/patches/libmateweather-use-TZDIR.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Co-authored-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-07-22gnu: mate-desktop: Update to 1.26.1....* gnu/packages/mate.scm (mate-desktop): Update to 1.26.1. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Andy Tai 2023-03-31gnu: Replace all uses of atk by at-spi2-core....* gnu/packages/animation.scm (gnash) * gnu/packages/chromium.scm (ungoogled-chromium) * gnu/packages/crates-gtk.scm (rust-atk-sys-0.14, rust-atk-sys-0.10, rust-atk-0.14, rust-gtk-0.14) * gnu/packages/gimp.scm (gimp) * gnu/packages/gnome.scm (evince, glade3, clutter, totem, rhythmbox, mutter, ghex): * gnu/packages/graphviz.scm (xdot) * gnu/packages/gtk.scm (gtk+-2, gtk+, guile-gnome, atkmm) * gnu/packages/mate.scm (mate-applets, atril, mate-control-center, mate-calc, mate-utils, eom, pluma) * gnu/packages/messaging.scm (dino) * gnu/packages/qt.scm (qtwebengine-5) * gnu/packages/rust-apps.scm (alfis) * gnu/packages/vim.scm (vim-full) * gnu/packages/vnc.scm (remmina) * gnu/packages/web.scm (castor): Replace atk by at-spi2-core. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Josselin Poiret 2023-03-07gnu: mate-polkit-for-xfce: Break circular top-level references....Fixes <https://issues.guix.gnu.org/61911>. Reported by Maxime Devos <maximedevos@telenet.be>. * gnu/packages/xfce.scm (mate-polkit-for-xfce): Move to... * gnu/packages/mate.scm (mate-polkit-for-xfce): ... here. Ludovic Courtès