From f3d73553cdf50da0a20b8993f115483f82f4121f Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 29 Jan 2026 13:46:47 +0900 Subject: [PATCH] transformations: Fix `recursive?' inheritance for `with-git-url'. * guix/transformations.scm (transform-package-source-git-url): Use the second value of `package-git-url+recursive?'. * tests/transformations.scm ("options->transformation, with-git-url, recursive? inheritance"): New test. Change-Id: Ifd89bf1b0267f2b080b872cc7b318b9ae3706422 --- guix/transformations.scm | 4 +++- tests/transformations.scm | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) 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