;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2018-2020, 2022 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 . (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) >Ludovic Courtès 2023-04-18gnu: gdb: Distinguish between the "pinned" and the "default" version....* gnu/packages/gdb.scm (gdb/pinned): New variable. * gnu/packages/rust.scm (rust)[native-inputs]: Use it instead of GDB. Ludovic Courtès 2023-04-18gnu: gdb: Remove Hurd patch....The patch was useful for GDB 11 on the previous Hurd version that was used; it's unnecessary on GDB 12 and GDB 11 has other build issues on the current GNU/Hurd. This change fixes "guix build gdb-minimal --target=i586-pc-gnu". * gnu/packages/patches/gdb-fix-gnu-nat-build.patch: Remove. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/gdb.scm (gdb-11)[arguments]: Remove 'patch-gdb/hurd' phase. [inputs]: Remove "hurd-build.patch" input. [supported-systems]: New field. (gdb-12)[supported-systems]: New field. Ludovic Courtès 2023-04-18gnu: gdb-minimal: Update to 12.x....* gnu/packages/gdb.scm (gdb-minimal): Rebase on GDB-12. Ludovic Courtès 2023-04-18gnu: gdb: Use 'cross-mig' when targeting GNU/Hurd....This is a followup to 2756d662aa27cf55f3224e4a0a9e08c1be2cc551. * gnu/packages/gdb.scm (gdb-11)[native-inputs]: Use 'cross-mig' instead of 'mig/32-bit'. Ludovic Courtès 2022-11-07gnu: Add avr-gdb....* gnu/packages/gdb.scm (avr-gdb): New variable. Signed-off-by: Christopher Baines <mail@cbaines.net> Kristian Lein-Mathisen