diff --git a/guix/transformations.scm b/guix/transformations.scm index 0cad18ba6e..a9dd18b7e3 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -356,7 +356,9 @@ a checkout of the Git repository at the given URL." (origin-uri (package-source old)))) (recursive? (if (or (git-checkout? uri) (git-reference? uri)) - (package-git-url+recursive? old) + (let ((_ recursive? + (package-git-url+recursive? old))) + recursive?) #t))) (package (inherit old) diff --git a/tests/transformations.scm b/tests/transformations.scm index 1db54a0e19..82c3d2a532 100644 --- a/tests/transformations.scm +++ b/tests/transformations.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016-2017, 2019-2024, 2026 Ludovic Courtès ;;; Copyright © 2021 Marius Bakke +;;; Copyright © 2026 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -372,6 +373,22 @@ ((("x" dep3)) (map package-source (list dep1 dep3))))))))))) +(test-equal "options->transformation, with-git-url, recursive? inheritance" + (git-checkout (url "https://example2.org") + (recursive? #f)) + (let* ((p (dummy-package "chbouib" + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://example1.org") + (commit "cabba9e") + (recursive? #f))) + (sha256 #f))))) + (t (options->transformation + '((with-git-url . "chbouib=https://example2.org"))))) + (let ((new (t p))) + (package-source new)))) + (define* (depends-on-toolchain? p #:optional (toolchain "gcc-toolchain")) "Return true if P depends on TOOLCHAIN instead of the default tool chain." (define toolchain-packages