[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#54581] Add emacs-sqlite3-api package
From: |
Roman Scherer |
Subject: |
[bug#54581] Add emacs-sqlite3-api package |
Date: |
Sun, 27 Mar 2022 19:55:16 +0200 |
User-agent: |
mu4e 1.6.10; emacs 28.0.92 |
Hi Maxime,
thanks for the review. I attached 2 patches.
0001-Add-emacs-sqlite3-api-package.patch
In this one I addressed your following comments:
- I changed the synopsis and the description
- Removed the make flags
- I'm using cc-for-target now
- Enabled tests
The tests are passing, and I tested it manually by evaluating the Emacs
Lisp code snippets in [1]. Everything seems to work fine.
0001-Add-emacs-sqlite3-api-package-generate-constants.patch
In this patch I did the same as above, and I generated the consts.c file
by running make in the "tools" directory. The tests are passing fine,
but when I manually test it by evaluating the Elisp snippets in [1] I
get an error that the sqlite-open-readwrite and sqlite-open-create are
not defined in Emacs. The .so file is loaded by Emacs but somehow it
does not work.
I looked at the diff between the consts.c committed in the repository
and the generated one, but I could not see any changes related to those
functions. I'm still a bit lost about this and could need some help.
But I also wonder if generating the consts.c file is actually better
than just using the checked in consts.c file. The command to generate
the file fetches a web page from the Sqlite website and builds the
consts.c file with this information. And I think this is kind of a
brittle approach. How would this approach would even work with Software
heritage?
I think my preference would be to go without generating the consts.c
file, the patch works, it uses the same file the maintainer of the
packages is using, and I believe it is less brittle. :)
What do you think?
[1] https://github.com/pekingduck/emacs-sqlite3-api#introduction
0001-Add-emacs-sqlite3-api-package.patch
Description: Text Data
From f2726c3c87d890dfb547e7e9de880c5c57954ccf Mon Sep 17 00:00:00 2001
From: r0man <roman@burningswell.com>
Date: Sat, 26 Mar 2022 14:59:01 +0100
Subject: [PATCH] Add emacs-sqlite3-api package
This patch adds the emacs-sqlite3-api package to Guix.
The package provides a dynamic module for Emacs that allows direct access to
the SQLite C interface. It only exposes a subset of the full SQLite C
interface, but should satisfy most user's needs.
---
gnu/packages/emacs-xyz.scm | 51 ++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 42fc13f4c2..87595db74c 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -5731,6 +5731,57 @@ (define-public emacs-sqlite
It is not intended as a user interface.")
(license license:gpl3+))))
+(define-public emacs-sqlite3-api
+ (let ((version "0.15")
+ (revision "0")
+ (commit "7cb4b660fe30deb8a4229f3abb18bd99ca9c971c"))
+ (package
+ (name "emacs-sqlite3-api")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pekingduck/emacs-sqlite3-api")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1b7if1dp6i5kqwhq25gna89xbca66i4mmgx1a5yn12kncfdgs6d7"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:modules ((guix build emacs-build-system)
+ (guix build emacs-utils)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-module-load
+ (lambda* (#:key outputs #:allow-other-keys)
+ (chmod "sqlite3.el" #o644)
+ (emacs-substitute-sexps "sqlite3.el"
+ ("(require 'sqlite3-api nil t)"
+ `(module-load ,(string-append (assoc-ref outputs "out")
+ "/lib/sqlite3-api.so"))))))
+ (add-before 'check 'build-emacs-module
+ (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
+ ;; Generate the consts.c file.
+ (invoke "make" "--directory=tools")
+ ;; Compile the shared object file.
+ (invoke "make" (string-append "CC=" ,(cc-for-target)))
+ ;; Move the shared object file into /lib.
+ (install-file "sqlite3-api.so"
+ (string-append (assoc-ref outputs "out")
+ "/lib")))))
+ #:tests? #t
+ #:test-command '("make" "test" "EMACS=emacs")))
+ (inputs (list sqlite))
+ (native-inputs (list curl pandoc python))
+ (home-page "https://github.com/pekingduck/emacs-sqlite3-api")
+ (synopsis "SQLite dynamic module for Emacs Lisp")
+ (description "This package provides a dynamic module for Emacs that
allows
+direct access to the SQLite C interface. It only exposes a subset of the full
+SQLite C interface, but should satisfy most user's needs.")
+ (license license:gpl3+))))
+
(define-public emacs-sr-speedbar
(let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
(revision "0"))
--
2.34.0
Maxime Devos <maximedevos@telenet.be> writes:
> [[PGP Signed Part:Undecided]]
> Roman Scherer schreef op za 26-03-2022 om 15:09 [+0100]:
>> + #:phases
>> + (modify-phases %standard-phases
>
> Could consts.c be built from source?
>
> [[End of PGP Signed Part]]
signature.asc
Description: PGP signature
- [bug#54581] Add emacs-sqlite3-api package, Roman Scherer, 2022/03/26
- [bug#54581] Add emacs-sqlite3-api package, Maxime Devos, 2022/03/26
- [bug#54581] Add emacs-sqlite3-api package, Maxime Devos, 2022/03/26
- [bug#54581] Add emacs-sqlite3-api package, Maxime Devos, 2022/03/26
- [bug#54581] Add emacs-sqlite3-api package, Maxime Devos, 2022/03/26
- [bug#54581] Add emacs-sqlite3-api package, Maxime Devos, 2022/03/26
- [bug#54581] Add emacs-sqlite3-api package,
Roman Scherer <=