about summary refs log tree commit diff
path: root/guix.scm
diff options
context:
space:
mode:
authorArun Isaac2021-08-27 05:49:11 -0500
committerArun Isaac2021-08-27 05:49:11 -0500
commitb6cb5c4d2c64781122223d4ee100a0d6f3dd03b9 (patch)
tree0b53ac191d07c4599d2b58c0d2a96561bcb23cf1 /guix.scm
downloadgn-transform-databases-b6cb5c4d2c64781122223d4ee100a0d6f3dd03b9.tar.gz
Initial commit
Diffstat (limited to 'guix.scm')
-rw-r--r--guix.scm88
1 files changed, 88 insertions, 0 deletions
diff --git a/guix.scm b/guix.scm
new file mode 100644
index 0000000..b7aa107
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1,88 @@
+;; Drop into a development environment using
+;;
+;; guix environment -m guix.scm
+;;
+;; Happy hacking!
+
+(use-modules (gnu packages autotools)
+             (gnu packages compression)
+             (gnu packages databases)
+             (gnu packages guile)
+             ((gnu packages guile-xyz) #:prefix guix:)
+             (gnu packages perl)
+             (gnu packages python)
+             (gnu packages python-web)
+             (gnu packages rdf)
+             (gnu packages tls)
+             (gnu packages web)
+             (guix build-system gnu)
+             (guix git-download)
+             ((guix licenses) #:prefix license:)
+             (guix packages)
+             (guix utils))
+
+;; Guix's guile-dbi package is missing a native-search-paths. Add
+;; it. TODO: Contribute upstream.
+(define guile-dbi
+  (package
+    (inherit guix:guile-dbi)
+    (native-search-paths
+     (list (search-path-specification
+            (variable "LD_LIBRARY_PATH")
+            (files '("lib")))))))
+
+(define guile-dbi-bootstrap
+  (package
+    (inherit guix:guile-dbi)
+    (name "guile-dbi-bootstrap")
+    (inputs '())
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-dbi)
+       ((#:make-flags _) '(list))))))
+
+;; TODO: Contribute guile-dbd-mysql upstream.
+(define guile-dbd-mysql
+  (let ((commit "e97589b6b018b206c901e4cc24db463407a4036b")
+        (revision "0"))
+    (package
+      (name "guile-dbd-mysql")
+      (version (git-version "2.1.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/opencog/guile-dbi")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0n1gv9a0kdys10a4qmnrwvg5sydwb03880asri4gqdchcj3fimni"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _
+               ;; The upstream Git repository contains all the code, so change
+               ;; to the directory specific to guile-dbd-mysql.
+               (chdir "guile-dbd-mysql"))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("guile-dbi-bootstrap" ,guile-dbi-bootstrap)
+         ("libtool" ,libtool)
+         ("openssl" ,openssl)
+         ("perl" ,perl)))
+      (inputs
+       `(("mysql" ,mysql)
+         ("zlib" ,zlib)))
+      (synopsis "Guile DBI driver for MySQL")
+      (home-page "https://github.com/opencog/guile-dbi/tree/master/guile-dbd-mysql")
+      (description "@code{guile-dbi} is a library for Guile that provides a
+convenient interface to SQL databases.  This package implements the interface
+for MySQL.")
+      (license license:gpl2+))))
+
+(packages->manifest
+ (list guile-3.0 guile-dbi guile-dbd-mysql
+       python python-rdflib python-urllib3))