Message ID | 87le8eedrb.fsf@aartaka.me |
---|---|
State | New |
Headers | show |
Series | [bug#68696] gnu: Add guile-lmdb. | expand |
Hi, Thank you for patch! >+ (package >+ (name "guile-lmdb") >+ (version "0.0.1") >+ (source (origin >+ (method git-fetch) >+ (uri (git-reference >+ (url "https://github.com/aartaka/guile-lmdb") >+ (commit "438143ca9ba157faec6f4c2740092c31c733fbfe"))) >+ (file-name (git-file-name name version)) >+ (sha256 >+ (base32 >+ "0p43c8ppbhzpi944in0z2jqr7acl8pm7s1x0p5f0idqda6n6f828")))) As this project has no version tags, take a look at how the package style may be altered in this case. (gnu packages lisp-xyz) contains quite a lot of examples without releases. --8<---------------cut here---------------start------------->8--- (let ((commit "438143ca9ba157faec6f4c2740092c31c733fbfe") (revision "0")) (package (name "guile-lmdb") (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aartaka/guile-lmdb") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0p43c8ppbhzpi944in0z2jqr7acl8pm7s1x0p5f0idqda6n6f828")))) --8<---------------cut here---------------end--------------->8--- - revision :: bumps on every package update in guix, starting from 0. > + (arguments > + '(#:source-directory "modules" > + #:phases (modify-phases %standard-phases > + (add-before 'build 'substitute-lmdb-so > + (lambda* (#:key inputs #:allow-other-keys) > + (let ((lmdb (string-append (assoc-ref inputs "lmdb") > + "/lib/liblmdb.so"))) > + (substitute* > + '("modules/lmdb/lmdb.scm") > + (("liblmdb.so") > + lmdb)) > + #t)))))) You may simplify this part a little by using G-Expressions: --8<---------------cut here---------------start------------->8--- (arguments (list #:source-directory "modules" #:phases #~(modify-phases %standard-phases (add-before 'build 'substitute-lmdb-so (lambda _ (let ((lmdb (string-append #$(this-package-input "lmdb") "/lib/liblmdb.so"))) (substitute* "modules/lmdb/lmdb.scm" (("liblmdb.so") lmdb)))))))) --8<---------------cut here---------------end--------------->8--- - this-package-input commonly used replacement for (string-append (assoc-ref inputs ... - lambdas in phases don't need trailing #t. > + (synopsis "Bindings for LMDB (Lightning Memory-Mapped Database) in Guile.") You need to drop full stop in the end of synopsis, and may use full description instead of acronym+description. > (description "Scheme wrapper around liblmdb.so. It may be rephrased as "This package provides a scheme wrapper for liblmdb.so." > +@end itemize\n") You may drop \n here. Please take a look at review points, and apply guix lint in the end. Looking forward for V2! Thans, Oleg
Pushed as d9d97e26c152d7b5ff13f8aa7a030fee2004bf79 to master. Thanks, Oleg
From 9d67b6438d8e5c42d6d4e9c8eca46038c80f05ea Mon Sep 17 00:00:00 2001 From: Artyom Bologov <aartaka@protonmail.com> Date: Wed, 24 Jan 2024 23:20:52 +0400 Subject: [PATCH] gnu: Add guile-lmdb. * gnu/packages/guile-xyz.scm (guile-lmdb): New variable. --- gnu/packages/guile-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 9c4c308d05..08f4a67d07 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2012,6 +2012,47 @@ (define-public guile-dbd-mysql for MySQL.") (license license:gpl2+))) +(define-public guile-lmdb + (package + (name "guile-lmdb") + (version "0.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aartaka/guile-lmdb") + (commit "438143ca9ba157faec6f4c2740092c31c733fbfe"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p43c8ppbhzpi944in0z2jqr7acl8pm7s1x0p5f0idqda6n6f828")))) + (build-system guile-build-system) + (arguments + '(#:source-directory "modules" + #:phases (modify-phases %standard-phases + (add-before 'build 'substitute-lmdb-so + (lambda* (#:key inputs #:allow-other-keys) + (let ((lmdb (string-append (assoc-ref inputs "lmdb") + "/lib/liblmdb.so"))) + (substitute* + '("modules/lmdb/lmdb.scm") + (("liblmdb.so") + lmdb)) + #t)))))) + (native-inputs (list guile-3.0)) + (inputs (list guile-3.0 lmdb)) + (home-page "https://github.com/aartaka/guile-lmdb") + (synopsis "Bindings for LMDB (Lightning Memory-Mapped Database) in Guile.") + (description "Scheme wrapper around liblmdb.so. +Most name are the same as LMDB ones, except for prefix absence. +Several conveniences are added on top: +@itemize +@item @code{call-with-env-and-txn} and @code{call-with-cursor} wrappers. +@item @code{for-cursor} procedure for cursor iteration. +@item @code{val} and @code{stat} types. +@item Error signaling instead of integer return values. +@end itemize\n") + (license license:gpl3+))) + (define-public guile-config (package (name "guile-config") -- 2.41.0