[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#37412] [PATCH 1/2] gnu: Add guix-data-service.
From: |
Christopher Baines |
Subject: |
[bug#37412] [PATCH 1/2] gnu: Add guix-data-service. |
Date: |
Sun, 22 Sep 2019 13:03:36 +0100 |
* gnu/packages/web.scm (guix-data-service): New variable.
---
gnu/packages/web.scm | 102 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 102 insertions(+)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 39475bd6a8..065979f959 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -56,6 +56,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix cvs-download)
#:use-module (guix hg-download)
@@ -77,6 +78,8 @@
#:use-module (gnu packages check)
#:use-module (gnu packages documentation)
#:use-module (gnu packages docbook)
+ #:use-module (gnu packages emacs)
+ #:use-module (gnu packages emacs-xyz)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -3973,6 +3976,105 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(define-public python2-feedparser
(package-with-python2 python-feedparser))
+(define-public guix-data-service
+ (let ((commit "970bcb31cf994b0e3b67e7f912734e5b53355d8d")
+ (revision "1"))
+ (package
+ (name "guix-data-service")
+ (version (string-append "0.0.1-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
"https://git.savannah.gnu.org/git/guix/data-service.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wiw1m4g30sx155ldjrg4060ydqwgxv93day89pf6w515n5fv08j"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; TODO Tests require PostgreSQL
+ #:modules ((guix build utils)
+ (guix build gnu-build-system)
+ (ice-9 rdelim)
+ (ice-9 popen))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'set-paths 'set-GUIX_ENVIRONMENT
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; This means guix.el finds the Emacs modules
+ (setenv "GUIX_ENVIRONMENT"
+ (assoc-ref inputs "emacs-with-modules"))
+ #t))
+ (add-before 'build 'set-GUILE_AUTO_COMPILE
+ (lambda _
+ ;; To avoid errors relating to guild
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ #t))
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (guile (assoc-ref inputs "guile"))
+ (guile-effective-version
+ (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (scm (string-append out "/share/guile/site/"
+ guile-effective-version))
+ (go (string-append out "/lib/guile/"
+ guile-effective-version
+ "/site-ccache")))
+ (for-each
+ (lambda (file)
+ (wrap-program (string-append bin "/" file)
+ `("PATH" ":" prefix
+ (,bin))
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,scm ,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))
+ '("guix-data-service"
+ "guix-data-service-process-branch-updated-email"
+ "guix-data-service-process-job"
+ "guix-data-service-process-jobs"
+ "guix-data-service-query-build-servers"))
+ #t)))
+ (delete 'strip)))) ; As the .go files aren't compatible
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("guix" ,guix)
+ ("guile-fibers" ,guile-fibers)
+ ("guile-json" ,guile-json-3)
+ ("guile-email" ,guile-email)
+ ("guile-squee" ,guile-squee)
+ ("postgresql" ,postgresql)
+ ("sqitch" ,sqitch)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("emacs-with-modules" ,(directory-union
+ "emacs-union"
+ (list emacs-no-x
+ emacs-htmlize)))
+ ("pkg-config" ,pkg-config)))
+ (native-search-paths
+ ;; XXX guile-git requires this to be set, maybe there's a better way
+ (list (search-path-specification
+ (variable "GIT_SSL_CAINFO")
+ (file-type 'regular)
+ (separator #f)
+ (files '("etc/ssl/certs/ca-certificates.crt")))))
+ (synopsis "Store and provide data about GNU Guix")
+ (description
+ "The Guix Data Service stores data about GNU Guix, and provides this
+through a web interface. It supports listening to the guix-commits mailing
+list to find out about new revisions, then loads the data from these in to a
+PostgreSQL database.")
+ (home-page "http://data.guix.gnu.org/")
+ (license license:agpl3+))))
+
(define-public gumbo-parser
(package
(name "gumbo-parser")
--
2.23.0
- [bug#37412] [PATCH 2/2] services: Add the Guix Data Service., (continued)
[bug#37412] [PATCH 1/2] gnu: Add guix-data-service., Alex ter Weele, 2019/09/15
[bug#37412] [PATCH 1/2] gnu: Add guix-data-service., Ludovic Courtès, 2019/09/16
[bug#37412] [PATCH 1/2] gnu: Add guix-data-service., Ludovic Courtès, 2019/09/16
[bug#37412] [PATCH 1/2] gnu: Add guix-data-service.,
Christopher Baines <=