From d46d1bee1ea93d8fba97d7f8cadd142c493dc3bf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 18 May 2023 16:33:37 +0200 Subject: import: elpa: Updater provides input list. * guix/import/elpa.scm (elpa-dependency->upstream-input): New procedure. (latest-release): Add 'inputs' field. * tests/elpa.scm ("package-latest-release"): New test. --- guix/import/elpa.scm | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'guix/import/elpa.scm') diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index 1313a8aa67..e65cf6683b 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -272,6 +272,25 @@ the package named PACKAGE-NAME." (assq-ref recipe ':fetcher)) #f))) +(define (elpa-dependency->upstream-input dependency) + "Convert DEPENDENCY, an sexp as returned by 'elpa-package-inputs', into an +." + (match dependency + ((name version) + (and (not (emacs-standard-library? (symbol->string name))) + (upstream-input + (name (symbol->string name)) + (downstream-name (elpa-guix-name name)) + (type 'propagated) + (min-version (if (pair? version) + (string-join (map number->string version) ".") + #f)) + (max-version (match version + (() #f) + ((_) #f) + ((_ _) #f) + (_ min-version)))))))) + (define default-files-spec ;; This contains more than just the things contained in %default-include and ;; %default-exclude, presumably because this includes source files (*.in, @@ -421,12 +440,19 @@ type ''." (elpa-version->string raw-version)))) (url (match info ((_ raw-version reqs synopsis kind . rest) - (package-source-url kind name version repo))))) + (package-source-url kind name version repo)))) + (inputs (match info + ((name raw-version reqs . _) + (filter-map elpa-dependency->upstream-input + (if (eq? 'nil reqs) + '() + reqs)))))) (upstream-source (package (package-name package)) (version version) (urls (list url)) - (signature-urls (list (string-append url ".sig")))))))) + (signature-urls (list (string-append url ".sig"))) + (inputs inputs)))))) (define elpa-repository (memoize -- cgit v1.2.3