GNU bug report logs - #67906
[PATCH] guix: import: composer: Implement recursive package refresh.

Previous Next

Package: guix-patches;

Reported by: Nicolas Graves <ngraves <at> ngraves.fr>

Date: Tue, 19 Dec 2023 16:55:02 UTC

Severity: normal

Tags: patch

Done: Nicolas Graves <ngraves <at> ngraves.fr>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Nicolas Graves <ngraves <at> ngraves.fr>
To: 67906 <at> debbugs.gnu.org
Cc: ludo <at> gnu.org, ngraves <at> ngraves.fr
Subject: [bug#67906] [PATCH] guix: import: composer: Implement recursive package refresh.
Date: Tue, 19 Dec 2023 17:53:28 +0100
* guix/import/composer.scm
 (composer-fetch): Replace reduce by fold to correct version selection
 logic.
 (latest-release): Implement recursive package refresh. Rename to
 import-release.
 (import-release): New function, formerly known as latest-release.
---
 guix/import/composer.scm | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/guix/import/composer.scm b/guix/import/composer.scm
index b23af1b91f..26229e3ad0 100644
--- a/guix/import/composer.scm
+++ b/guix/import/composer.scm
@@ -113,7 +113,7 @@ (define* (composer-fetch name #:key (version #f))
          (if version
              (assoc-ref packages version)
              (cdr
-              (reduce
+              (fold
                (lambda (new cur-max)
                  (match new
                    (((? valid-version? version) . tail)
@@ -243,8 +243,8 @@ (define (php-package? package)
    (eq? (package-build-system package) composer-build-system)
    (string-prefix? "php-" (package-name package))))
 
-(define* (latest-release package #:key (version #f))
-  "Return an <upstream-source> for the latest release of PACKAGE."
+(define* (import-release package #:key (version #f))
+  "Return an <upstream-source> for the VERSION or latest release of PACKAGE."
   (let* ((php-name (guix-package->composer-name package))
          (composer-package (composer-fetch php-name #:version version)))
     (match composer-package
@@ -254,18 +254,34 @@ (define* (latest-release package #:key (version #f))
                php-name)
        #f)
       (_
-       (upstream-source
-        (package (composer-package-name composer-package))
-        (version (composer-package-version composer-package))
-        (urls (list (composer-source-url
-                     (composer-package-source composer-package)))))))))
+       (let* ((guix-name (composer-package-name composer-package))
+              (inputs
+               (append
+                (map (lambda (dep)
+                       (upstream-input
+                        (name php-name)
+                        (downstream-name guix-name)
+                        (type 'regular)))
+                     (composer-package-require composer-package))
+                (map (lambda (dep)
+                       (upstream-input
+                        (name php-name)
+                        (downstream-name guix-name)
+                        (type 'native)))
+                     (composer-package-dev-require composer-package)))))
+         (upstream-source
+          (package guix-name)
+          (version (composer-package-version composer-package))
+          (urls (list (composer-source-url
+                       (composer-package-source composer-package))))
+          (inputs inputs)))))))
 
 (define %composer-updater
   (upstream-updater
    (name 'composer)
    (description "Updater for Composer packages")
    (pred php-package?)
-   (import latest-release)))
+   (import import-release)))
 
 (define* (composer-recursive-import package-name #:optional version)
   (recursive-import package-name
-- 
2.41.0





This bug report was last modified 1 year and 45 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.