aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-09-15 19:16:06 +0100
committerChristopher Baines <mail@cbaines.net>2019-09-25 08:35:27 +0100
commit1683e4863af430fa85c790dcca600fad538432e8 (patch)
tree41d7a8a0b2e378010f66dff3e4eb25ca13dccdf1 /gnu
parentac87bc57af9bcb6cbb45eaf90256f8f27e4e8729 (diff)
downloadguix-1683e4863af430fa85c790dcca600fad538432e8.tar
guix-1683e4863af430fa85c790dcca600fad538432e8.tar.gz
gnu: Add guix-data-service.
* gnu/packages/web.scm (guix-data-service): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/web.scm95
1 files changed, 95 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 4509f63f1b..01c7288caa 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)
@@ -4013,6 +4016,98 @@ 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 "bb94f6dd05a33135fa661b86d35d203c0c099dba")
+ (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
+ "1y6s4igjvi0293z4d4hbgwifs8avcam71qhis9z4f8mjz6w7vcpb"))))
+ (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
+ `(("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
+ `(("guile" ,guile-2.2)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("emacs-with-modules" ,(directory-union
+ "emacs-union"
+ (list emacs-no-x
+ emacs-htmlize)))
+ ("pkg-config" ,pkg-config)))
+ (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")