Package: guix-patches;
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Tue, 21 Dec 2021 10:28:02 UTC
Severity: normal
Tags: patch
Done: Christopher Baines <mail <at> cbaines.net>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 52699 in the body.
You can then email your comments to 52699 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#52699
; Package guix-patches
.
(Tue, 21 Dec 2021 10:28:02 GMT) Full text and rfc822 format available.Christopher Baines <mail <at> cbaines.net>
:guix-patches <at> gnu.org
.
(Tue, 21 Dec 2021 10:28:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: guix-patches <at> gnu.org Subject: [PATCH] gnu: Add nar-herder. Date: Tue, 21 Dec 2021 10:27:11 +0000
* gnu/packages/package-management.scm (nar-herder): New variable. --- gnu/packages/package-management.scm | 109 ++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 12736c6caf..feb56f2a9b 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1441,6 +1441,115 @@ (define-public guix-jupyter in an isolated environment, in separate namespaces.") (license license:gpl3+))) +(define-public nar-herder + (let ((commit "049dfec287fa948cac6682d0a047bc0ed356f0bf") + (revision "1")) + (package + (name "nar-herder") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.cbaines.net/git/guix/nar-herder") + (commit commit))) + (sha256 + (base32 + "1bkn6avcyp2rcrqaync65b8yn9dvxlkjpk3mdk5nsy527dzhs5ws")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + `(#:modules (((guix build guile-build-system) + #:select (target-guile-effective-version)) + ,@%gnu-build-system-modules) + #:imported-modules ((guix build guile-build-system) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-before 'build 'set-GUILE_AUTO_COMPILE + (lambda _ + ;; To avoid warnings relating to 'guild'. + (setenv "GUILE_AUTO_COMPILE" "0") + #t)) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs target #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (guile (assoc-ref inputs "guile")) + (version (target-guile-effective-version)) + (scm (string-append out "/share/guile/site/" version)) + (go (string-append out "/lib/guile/" version "/site-ccache"))) + (for-each + (lambda (file) + (simple-format (current-error-port) "wrapping: ~A\n" file) + (let ((guile-inputs (list + "guile-json" + "guile-gcrypt" + "guix" + "guile-lib" + "guile-sqlite3" + "gnutls" + "guile-fibers"))) + (wrap-program file + `("GUILE_LOAD_PATH" ":" prefix + (,scm ,(string-join + (map (lambda (input) + (simple-format + #f "~A/share/guile/site/~A" + (assoc-ref inputs input) + version)) + guile-inputs) + ":"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,go ,(string-join + (map (lambda (input) + (simple-format + #f "~A/lib/guile/~A/site-ccache" + (assoc-ref inputs input) + version)) + guile-inputs) + ":")))))) + (find-files bin))) + #t)) + (delete 'strip)))) ; As the .go files aren't compatible + (native-inputs + (list pkg-config + autoconf + automake + gnutls + + ;; Guile libraries are needed here for cross-compilation. + guile-3.0 + guile-json-4 + guile-gcrypt + guix + guile-fibers + guile-lib + guile-sqlite3)) + (inputs + (list bash-minimal + guile-3.0)) + (propagated-inputs + (list guile-json-4 + guile-gcrypt + guix + guile-fibers + guile-lib + guile-sqlite3 + gnutls)) + (home-page "https://git.cbaines.net/guix/nar-herder") + (synopsis "Utility for managing and serving nars") + (description + "The Nar Herder is a utility for managing a collection of +nars (normalized archives, in the context of Guix) along with the +corresponding narinfo files which contain some signed metadata. + +It can assist in serving a collection of nars, moving them between machines, +or mirroring an existing collection of nars. + +It's currently a working prototype, many designed features aren't implemented, +and the error handling is very rough.") + (license license:gpl3+)))) + (define-public gcab (package (name "gcab") -- 2.33.1
guix-patches <at> gnu.org
:bug#52699
; Package guix-patches
.
(Tue, 21 Dec 2021 11:03:01 GMT) Full text and rfc822 format available.Message #8 received at 52699 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Christopher Baines <mail <at> cbaines.net> Cc: 52699 <at> debbugs.gnu.org Subject: Re: bug#52699: [PATCH] gnu: Add nar-herder. Date: Tue, 21 Dec 2021 12:02:48 +0100
Hello! Christopher Baines <mail <at> cbaines.net> skribis: > * gnu/packages/package-management.scm (nar-herder): New variable. [...] > + (add-before 'build 'set-GUILE_AUTO_COMPILE > + (lambda _ > + ;; To avoid warnings relating to 'guild'. > + (setenv "GUILE_AUTO_COMPILE" "0") > + #t)) You can omit trailing #t’s. > + (add-after 'install 'wrap-executable > + (lambda* (#:key inputs outputs target #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin")) > + (guile (assoc-ref inputs "guile")) > + (version (target-guile-effective-version)) > + (scm (string-append out "/share/guile/site/" version)) > + (go (string-append out "/lib/guile/" version "/site-ccache"))) > + (for-each > + (lambda (file) > + (simple-format (current-error-port) "wrapping: ~A\n" file) > + (let ((guile-inputs (list > + "guile-json" > + "guile-gcrypt" > + "guix" > + "guile-lib" > + "guile-sqlite3" > + "gnutls" > + "guile-fibers"))) > + (wrap-program file > + `("GUILE_LOAD_PATH" ":" prefix > + (,scm ,(string-join > + (map (lambda (input) > + (simple-format > + #f "~A/share/guile/site/~A" > + (assoc-ref inputs input) > + version)) > + guile-inputs) > + ":"))) > + `("GUILE_LOAD_COMPILED_PATH" ":" prefix > + (,go ,(string-join > + (map (lambda (input) > + (simple-format > + #f "~A/lib/guile/~A/site-ccache" > + (assoc-ref inputs input) > + version)) > + guile-inputs) > + ":")))))) I’d use ‘string-append’ rather than ‘format’. (It’d be nice to have a streamlined solution to wrap those Guile executables…) > + (license license:gpl3+)))) I believe it’s ‘agpl3+’ (though GPLv3+ would make it easier to share code with Guix; something worth considering). Otherwise LGTM, thanks! Ludo’.
Christopher Baines <mail <at> cbaines.net>
:Christopher Baines <mail <at> cbaines.net>
:Message #13 received at 52699-done <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 52699-done <at> debbugs.gnu.org Subject: Re: bug#52699: [PATCH] gnu: Add nar-herder. Date: Tue, 21 Dec 2021 11:23:29 +0000
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes: > Hello! > > Christopher Baines <mail <at> cbaines.net> skribis: > >> * gnu/packages/package-management.scm (nar-herder): New variable. > > [...] > >> + (add-before 'build 'set-GUILE_AUTO_COMPILE >> + (lambda _ >> + ;; To avoid warnings relating to 'guild'. >> + (setenv "GUILE_AUTO_COMPILE" "0") >> + #t)) > > You can omit trailing #t’s. > >> + (add-after 'install 'wrap-executable >> + (lambda* (#:key inputs outputs target #:allow-other-keys) >> + (let* ((out (assoc-ref outputs "out")) >> + (bin (string-append out "/bin")) >> + (guile (assoc-ref inputs "guile")) >> + (version (target-guile-effective-version)) >> + (scm (string-append out "/share/guile/site/" version)) >> + (go (string-append out "/lib/guile/" version "/site-ccache"))) >> + (for-each >> + (lambda (file) >> + (simple-format (current-error-port) "wrapping: ~A\n" file) >> + (let ((guile-inputs (list >> + "guile-json" >> + "guile-gcrypt" >> + "guix" >> + "guile-lib" >> + "guile-sqlite3" >> + "gnutls" >> + "guile-fibers"))) >> + (wrap-program file >> + `("GUILE_LOAD_PATH" ":" prefix >> + (,scm ,(string-join >> + (map (lambda (input) >> + (simple-format >> + #f "~A/share/guile/site/~A" >> + (assoc-ref inputs input) >> + version)) >> + guile-inputs) >> + ":"))) >> + `("GUILE_LOAD_COMPILED_PATH" ":" prefix >> + (,go ,(string-join >> + (map (lambda (input) >> + (simple-format >> + #f "~A/lib/guile/~A/site-ccache" >> + (assoc-ref inputs input) >> + version)) >> + guile-inputs) >> + ":")))))) > > I’d use ‘string-append’ rather than ‘format’. > > (It’d be nice to have a streamlined solution to wrap those Guile > executables…) > >> + (license license:gpl3+)))) > > I believe it’s ‘agpl3+’ (though GPLv3+ would make it easier to share > code with Guix; something worth considering). > > Otherwise LGTM, thanks! Thanks for taking a look! I've pushed as 6f76678cb7575072395198c343a9fecc52839513 with the changes you mentioned above. Thanks, Chris
[signature.asc (application/pgp-signature, inline)]
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Tue, 18 Jan 2022 12:24:12 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.