aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz
;;;
;;; 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/>.

(define-module (test-import-git)
  #:use-module (git)
  #:use-module (guix git)
  #:use-module (guix tests)
  #:use-module (guix packages)
  #:use-module (guix import git)
  #:use-module (guix git-download)
  #:use-module (guix tests git)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-64))

;; Test the (guix import git) tools.

(test-begin "git")

(define* (make-package directory version #:optional (properties '()))
  (dummy-package "test-package"
    (version version)
    (properties properties)
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url (string-append "file://" directory))
             (commit version)))
       (sha256
        (base32
         "0000000000000000000000000000000000000000000000000000"))))))

(test-equal "latest-git-tag-version: no custom prefix, suffix, and delimiter"
  "1.0.1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "1.0.1" "Release 1.0.1"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom prefix, no suffix and delimiter"
  "1.0.1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix-1.0.1" "Release 1.0.1"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-prefix . "prefix-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom suffix, no prefix and delimiter"
  "1.0.1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "1.0.1-suffix-123" "Release 1.0.1"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-suffix . "-suffix-[0-9]*")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom delimiter, no prefix and suffix"
  "2021.09.07"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2021-09-07" "Release 2021-09-07"))
    (let ((package (make-package directory "2021-09-06"
                                 '((release-tag-version-delimiter . "-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: empty delimiter, no prefix and suffix"
  "20210907"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "20210907" "Release 20210907"))
    (let ((package (make-package directory "20210906"
                                 '((release-tag-version-delimiter . "")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom prefix and suffix, no delimiter"
  "2.0.0"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "Release-2.0.0suffix-1" "Release 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-prefix . "Release-")
                                   (release-tag-suffix . "suffix-[0-9]")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom prefix, suffix, and delimiter"
  "2.0.0"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "Release-2_0_0suffix-1" "Release 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-prefix . "Release-")
                                   (release-tag-suffix . "suffix-[0-9]")
                                   (release-tag-version-delimiter . "_")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: only pre-releases available"
  #f
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2.0.0-rc1" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases"
  "2.0.0-rc1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2.0.0-rc1" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom prefix"
  "2.0.0-rc1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "version-2.0.0-rc1" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "version-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom suffix"
  "2.0.0-rc1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2.0.0-rc1-suffix" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-suffix . "-suffix")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, delimiter conflicts with pre-release part"
  "2.0.0_alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2_0_0_alpha" "Alpha release for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-version-delimiter . "_")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom suffix and prefix"
  "2.0.0-alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix123-2.0.0-alpha-suffix" "Alpha release for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "prefix[0-9]{3}-")
                                   (release-tag-suffix . "-suffix")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom suffix, prefix, and delimiter"
  "2.0.0-alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix123-2-0-0-alpha-suffix" "Alpha release for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "prefix[0-9]{3}-")
                                   (release-tag-suffix . "-suffix")
                                   (release-tag-version-delimiter . "-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, no delimiter, and custom suffix, prefix"
  "2alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix123-2alpha-suffix" "Alpha release for version 2"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "prefix[0-9]{3}-")
                                   (release-tag-suffix . "-suffix")
                                   (release-tag-version-delimiter . "")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: no tags found"
  #f
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: no valid tags found"
  #f
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "Test" "Test tag"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-end "git")
may to documentation having empty version strings. * Makefile.am (EXTRA_DIST): Add build-aux/git-version-gen. Change-Id: If127519811b25e2df0f5caa6a83a4f860fd34eb2 Janneke Nieuwenhuizen 2024-04-19maint: Cater for running `make dist' from a tarball....* Makefile.am: Use in_git_p conditional to disable Autotools' cache consistency assert and removal when bulding from tarball. (dist): Depend on doc-pot-update again when building from tarball. (dist-hook): Remove dependencies on gen-ChangeLog and gen-AUTHORS when building from tarball. (gen-ChangeLog, gen-AUTHORS): Remove guarding for building from tarball. Use set -e to avoid silently failing. (gen-tarball-version): Use $(SOURCE_DATE_EPOCH) instead of re-generating it using git; this also works running from a tarball. Change-Id: I9ebdd28a70837f6a4db610c4816bb283d176e2d9 Janneke Nieuwenhuizen 2024-04-19maint: Support `make doc-pot-update' from a tarball....* build-aux/xgettext.scm: Move setting of environment variables to shell header. (main): Use SOURCE_DATE_EPOCH as fallback for timestamp. This fixes running from a tarball. * Makefile.am (EXTRA_DIST): Add it. Change-Id: Ic487587b22495868fd2a21545a13dc9e3458299c Janneke Nieuwenhuizen 2024-04-19maint: Resurrect running `make' from a tarball....This is a follow-up to commit 8b972da068708a8b17f3ab153ea940690ca49ca9 Makefile.am: Auto-configure Git on 'make'. * configure.ac (in_git_p): New conditional. * Makefile.am (nodist_noinst_DATA): Use it to only enable this when building from Git. Change-Id: I09a90a59a4933a8cdb04124467d38209171f2a57 Janneke Nieuwenhuizen 2024-04-17guix: Add xtensa-ath9k-elf platform....* Makefile.am (MODULES): Add guix/platforms/xtensa.scm. * guix/platforms/xtensa.scm (xtensa-ath9k-elf): New variable. * doc/guix.texi: Add xtensa-ath9k-elf documentation. Change-Id: I51eef245142ed58613340c16d4bf7266e6bf6adb Signed-off-by: Ludovic Courtès <ludo@gnu.org> Jean-Pierre De Jesus DIAZ 2024-04-17maint: Use "ustar" format for tarball again....This is a follow-up to commit b0c33b1997e4a02e048ceac445b156b3a1eed76d maint: Use reproducible timestamps and name for tarball. * Makefile.am (am__tar): Add --format=ustar. Change-Id: I1e499c413703105704f49a84868ec10de69846fb Janneke Nieuwenhuizen 2024-04-14maint: Ensure generated file reproducibility for dist....* doc/local.mk (doc-clean): New target. (DIST_CONFIGURE_FLAGS): New variable. (auto-clean): Use them in new target. * Makefile.am (dist-doc-pot-update): Use it in new target. (dist): Change to depend on it to clean possibly stale files, instead of doc-pot-update directly. Add a toplevel check to ensure that Autotools cache is up to date. Change-Id: I2ff2d88db9fe1e708ab65e33e1f3d7ecee882cb4 Janneke Nieuwenhuizen 2024-04-14maint: Generate AUTHORS and ChangeLog reproducibly....* Makefile.am (gen-ChangeLog): Set LC_ALL=en_US.UTF-8 TZ=UTC0. (gen-AUTHORS): Likewise. Change-Id: I109ceffdf07b8dde6385b6b509366c47564c9f31 Janneke Nieuwenhuizen 2024-04-14maint: Use reproducible timestamps and name for tarball....* Makefile.am (gen-tarball-version): Add reproducible timestamp to tarball. (am__tar): Use it in new variable, overriding the Automake default. (GZIP_ENV): New variable, overriding the Automake default. Janneke Nieuwenhuizen 2024-04-14maint: Cater for running `make dist' from a worktree....* Makefile.am (gen-ChangeLog): Check for existance of `.git', rather than it being a directory. (gen-AUTHORS): Likewise. Change-Id: I1b7f8cc147084c1804deb7be9d36e5eeda2599cb Janneke Nieuwenhuizen 2024-03-27Merge branch 'master' into emacs-teamLiliana Marie Prikler 2024-03-22gnu: Add linux-libre 6.8....* gnu/packages/linux.scm (linux-libre-6.8-version, linux-libre-6.8-gnu-revision, deblob-scripts-6.8, linux-libre-6.8-pristine-source, linux-libre-6.8-source, linux-libre-headers-6.8, linux-libre-6.8): New variables. * gnu/packages/aux-files/linux-libre/6.8-arm.conf, gnu/packages/aux-files/linux-libre/6.8-arm64.conf, gnu/packages/aux-files/linux-libre/6.8-i686.conf, gnu/packages/aux-files/linux-libre/6.8-x86.conf: New files. * Makefile.am (AUX_FILES): Add them. Signed-off-by: Leo Famulari <leo@famulari.name> Change-Id: I338eb725e0b991c67e4d98bd1ef0c441d3d8f0c6 Wilko Meyer 2024-03-02Merge branch 'master' into emacs-teamLiliana Marie Prikler 2024-02-24gnu: emacs: Check integrity of native-compiled files....In the previous commit, we've added a patch that potentially messes with how built-in (especially preloaded) Lisp libraries are loaded. Thus, we might want to assert that these files still load fine, as reported when querying the builtin documentation of functions provided by them. * gnu/packages/aux-files/emacs/comp-integrity.el: New file. * gnu/Makefile.am (dist_noinst_DATA): Register it here. * gnu/packages/emacs.scm (emacs-no-x)[#:phases]: Add ‘validate-comp-integrity’. Liliana Marie Prikler 2024-01-22gnu: Remove linux-libre 4.14....* gnu/packages/linux.scm (linux-libre-4.14-version, linux-libre-4.14-gnu-revision, deblob-scripts-4.14, linux-libre-4.14-pristine-source, linux-libre-4.14-source, linux-libre-headers-4.14, linux-libre-4.14, linux-libre-arm-generic-4.14, linux-libre-arm-omap2plus-4.14): Remove variables. * gnu/packages/aux-files/linux-libre/4.14-arm.conf, gnu/packages/aux-files/linux-libre/4.14-i686.conf, gnu/packages/aux-files/linux-libre/4.14-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove aforementioned .conf files. * gnu/tests/base.scm (%test-linux-libre-4.14): Remove variable. Change-Id: I40393b5f46b989848d569c929f1d9c986736553e Wilko Meyer 2024-01-22guix: Add ork1-elf platform....* doc/guix.texi: Document or1k-elf platform. * guix/platforms/or1k.scm (or1k-elf): New variable. * Makefile.am (MODULES): Add guix/platforms/or1k.scm. Change-Id: I3f71a0fa97f1ebd2bbdbf6cd00a93b477a123648 Jean-Pierre De Jesus DIAZ 2024-01-17gnu: Add linux-libre 6.7....* gnu/packages/linux.scm (linux-libre-6.7-version, linux-libre-6.7-gnu-revision, deblob-scripts-6.7, linux-libre-6.7-pristine-source, linux-libre-6.7-source, linux-libre-headers-6.7, linux-libre-6.7): New variables. * gnu/packages/aux-files/linux-libre/6.7-arm.conf, gnu/packages/aux-files/linux-libre/6.7-arm64.conf, gnu/packages/aux-files/linux-libre/6.7-i686.conf, gnu/packages/aux-files/linux-libre/6.7-x86.conf: New files. * Makefile.am (AUX_FILES): Add them. * Makefile.am: Update my copyright header. Change-Id: I88b633933875f64bd2859774419e077d8f36d75b Signed-off-by: Leo Famulari <leo@famulari.name> Wilko Meyer 2023-12-18build-system: Add ‘composer-build-system’....* guix/build-system/composer.scm: New file. * guix/build/composer-build-system.scm: New file. * gnu/packages/aux-files/findclass.php: New file. * Makefile.am: Add them. * doc/guix.texi (Build Systems): Document it. Co-authored-by: Julien Lepiller <julien@lepiller.eu> Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: Ie6a05b42ff04d3ad774a0a20278a77e4820bb8f6 Nicolas Graves 2023-12-18guix: import: Add composer importer....* guix/import/composer.scm: New file. * guix/scripts/import/composer.scm: New file. * guix/tests/composer.scm: New file. * Makefile.am: Add them. * guix/scripts/import.scm: Add composer importer. * doc/guix.texi (Invoking guix import): Mention it. Change-Id: I44a89b8cc80ef5b4a3cd15e8fbba4a18c1cea0b1 Co-authored-by: Julien Lepiller <julien@lepiller.eu> Co-authored-by: Ludovic Courtès <ludo@gnu.org> Nicolas Graves 2023-12-18Makefile.am: Sort build-system modules alphabetically....* Makefile.am (MODULES): Sort guix/build-system modules alphabetically. Change-Id: I7625f87bda9fa714e6b4b29b6cf055948a859e91 Efraim Flashner 2023-12-18gnu: Register new files....* gnu/local.mk (GNU_SYSTEM_MODULES): Register gnu/packages/elixir-xyz.scm. * Makefile.am (MODULES): Register guix/build-system/mix.scm, guix/build/mix-build-system.scm. Change-Id: I69c8fbaa6b16d658d5f6a43d1d39d680dd28ffe9 Efraim Flashner 2023-07-23gnu: Remove linux-libre 6.5....This kernel series is no longer supported upstream. * gnu/packages/linux.scm (linux-libre-6.5-version, linux-libre-6.5-gnu-revision, deblob-scripts-6.5, linux-libre-6.5-pristine-source, linux-libre-6.5-source, linux-libre-headers-6.5, linux-libre-6.5): Remove variables. * gnu/packages/aux-files/linux-libre/6.5-arm.conf, gnu/packages/aux-files/linux-libre/6.5-arm64.conf, gnu/packages/aux-files/linux-libre/6.5-i686.conf, gnu/packages/aux-files/linux-libre/6.5-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Change-Id: I142c28a82ab4afbdc62f5bfcd69382a4d2a0ea8c Leo Famulari 2023-12-11guix: Add avr platform....* Makefile.am (MODULES): Add avr platform module. * doc/guix.texi: Add documentation for avr platform. * guix/platforms/avr.scm (avr): New variable. Change-Id: I0f425eac61a71390b618e093f5a034ad4205a6f4 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Jean-Pierre De Jesus DIAZ 2023-07-23gnu: Add linux-libre 6.6.1....* gnu/packages/linux.scm (linux-libre-6.6-version, linux-libre-6.6-gnu-revision, deblob-scripts-6.6, linux-libre-6.6-pristine-source, linux-libre-6.5-source, linux-libre-headers-6.6, linux-libre-6.6): New variables. * gnu/packages/aux-files/linux-libre/6.6-arm.conf, gnu/packages/aux-files/linux-libre/6.6-arm64.conf, gnu/packages/aux-files/linux-libre/6.6-i686.conf, gnu/packages/aux-files/linux-libre/6.6-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Change-Id: I37b2b98b8a2ec745137e92380f34e69082c5e662 Signed-off-by: Leo Famulari <leo@famulari.name> Wilko Meyer 2023-11-08build-system: Add vim-build-system....* guix/build-system/vim.scm, * guix/build/vim-build-system.scm: New modules. * Makefile.am (MODULES): Register new files. * doc/guix.texi: Document it. Co-authored-by: Efraim Flashner <efraim@flashner.co.il> Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Jonathan Scoresby 2023-10-23build: Fix it....* Makefile.am (.git/config): Add missing "\". Change-Id: I0d1435ef33d9e6f2246631fa0eb8cbb617ea8fb5 Clément Lassieur 2023-10-22build: Avoid git config 'include' duplicates....* Makefile.am (.git/config): Invoke git config --replace-all with a value-pattern instead of --add. Change-Id: Id6e19b15d3772105128eb9b48d0f4e039ae3d988 Reported-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Maxim Cournoyer 2023-10-22build: Add a commit-msg hook that embeds Change-Id in commit messages....Partially implements <https://issues.guix.gnu.org/66027>. This will make it possible to track a merged commit back to its original posting on the mailing list, and open the door to new opportunities such as closing fully merged series automatically. * Makefile.am (COMMIT_MSG_MAGIC): New variable. (.git/hooks/commit-msg): New target. * etc/git/commit-msg: New file. * doc/contributing.texi (Configuring Git): Document Change-Id. Series-changes: 3 - Clarify documentation text, as suggested by Simon Change-Id: Ia92fa958eae600fdd4e180bad494c85db8bb4dd6 Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com> Maxim Cournoyer 2023-07-23gnu: Remove linux-libre 6.4....* gnu/packages/linux.scm (linux-libre-6.4-version, linux-libre-6.4-gnu-revision, deblob-scripts-6.4, linux-libre-6.4-pristine-source, linux-libre-6.4-source, linux-libre-headers-6.4, linux-libre-6.4): Remove variables. * gnu/packages/aux-files/linux-libre/6.4-arm.conf, gnu/packages/aux-files/linux-libre/6.4-arm64.conf, gnu/packages/aux-files/linux-libre/6.4-i686.conf, gnu/packages/aux-files/linux-libre/6.4-x86_64.conf: Delete files. * Makefile.am (AUX_FILES): Remove them. Leo Famulari 2023-10-21build-system: Add zig-build-system....* guix/build-system/zig.scm: New file. * guix/build/zig-build-system.scm: New file. * Makefile.am: Add them. * doc/guix.texi: Document it. * etc/snippets/yas/scheme-mode/guix-package (build-system): Add zig-build-system. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Ekaitz Zarraga 2023-07-23gnu: Add linux-libre 6.5....* gnu/packages/linux.scm (linux-libre-6.5-version, linux-libre-6.5-gnu-revision, deblob-scripts-6.5, linux-libre-6.5-pristine-source, linux-libre-6.5-source, linux-libre-headers-6.5, linux-libre-6.5): New variables. * gnu/packages/aux-files/linux-libre/6.5-arm.conf, gnu/packages/aux-files/linux-libre/6.5-arm64.conf, gnu/packages/aux-files/linux-libre/6.5-i686.conf, gnu/packages/aux-files/linux-libre/6.5-x86_64.conf: New files. * Makefile.am (AUX_FILES): Add them. Leo Famulari 2023-09-18maint: Support `guix shell' in Guix's git archive with manifest.scm....* manifest.scm: New file. * Makefile.am (EXTRA_DIST): Add it. * doc/contributing.texi (Building from Git): Mention using it. Janneke Nieuwenhuizen 2023-08-22build: Build gnu/packages/*.go in five steps....This breaks-up packages into five chunks of ~150,000 lines, allowing guix build --target=i586-pc-gnu from an x86 host. This is a followup to 1aa7ee52c6c520c2dbbdb06f1381466e9fd96294. * Makefile.am (first_half): Rename to... (first_quart): ...this, and also split into... (second_quart): ...this. (third_quart, MODULES_PACKAGES3, MODULES_PACKAGE4): New variables. (make-packages3-go, make-packages4-go): New targets. (make-packages-go): Add them. Janneke Nieuwenhuizen 2023-08-21maint: Add 'etc/hurd-manifest.scm'....* build-aux/cuirass/hurd-manifest.scm: Move to... * etc/hurd-manifest.scm: ...here. * Makefile.am (EXTRA_DIST): Update accordingly. Janneke Nieuwenhuizen 2023-08-17Merge remote-tracking branch 'origin/master' into kde-updates宋文武 2023-08-16scripts: time-machine: Error when attempting to visit too old commits....* doc/guix.texi (Invoking guix time-machine): Document limitation. * guix/inferior.scm (cached-channel-instance): New VALIDATE-CHANNELS argument. Use it to validate channels when there are no cache hit. * guix/scripts/time-machine.scm (%options): Tag the given reference with 'tag-or-commit instead of 'commit. (%oldest-possible-commit): New variable. (guix-time-machine) <validate-guix-channel>: New nested procedure. Pass it to the 'cached-channel-instance' call. * tests/guix-time-machine.sh: New test. * Makefile.am (SH_TESTS): Register it. Suggested-by: Simon Tournier <zimon.toutoune@gmail.com> Reviewed-by: Ludovic Courtès <ludo@gnu.org> Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com> Maxim Cournoyer 2023-08-11Merge remote-tracking branch 'origin/master' into kde-updates宋文武