Package: guix-patches;
Reported by: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr>
Date: Mon, 28 May 2018 13:26:01 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31621 in the body.
You can then email your comments to 31621 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Mon, 28 May 2018 13:26:02 GMT) Full text and rfc822 format available.Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr>
:guix-patches <at> gnu.org
.
(Mon, 28 May 2018 13:26:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> To: guix-patches <at> gnu.org Cc: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: [PATCH 1/3] gnu: Add hpcguix-web. Date: Mon, 28 May 2018 15:24:50 +0200
* gnu/package/web.scm (hpcguix-web): New variable. --- gnu/packages/web.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9f1609591..2c69490f8 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2017 Pierre Langlois <pierre.langlois <at> gmx.com> ;;; Copyright © 2017 Rutger Helling <rhelling <at> mykolab.com> ;;; Copyright © 2018 Julien Lepiller <julien <at> lepiller.eu> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,6 +83,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages java) #:use-module (gnu packages javascript) #:use-module (gnu packages jemalloc) @@ -96,6 +98,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages openstack) #:use-module (gnu packages base) + #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) @@ -6428,3 +6431,80 @@ compressed JSON header blocks. @item @command{inflatehd} converts such compressed headers back to JSON pairs. @end itemize\n") (license l:expat))) + +(define-public hpcguix-web + (package + (name "hpcguix-web") + (version "0.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/UMCUGenetics/hpcguix-web.git") + (commit "3e3b9a3a406ee2dcd10c96cbedcc16ea378e8e8f"))) + (sha256 + (base32 + "01888byi9mh7d3adcmwhmg44kg98g92r44ilc4wd7an66mjnxpry")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26) + (ice-9 popen) + (ice-9 rdelim)) + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "XDG_CACHE_HOME" (getcwd)) + (invoke "autoreconf" "-vif"))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (guix (assoc-ref inputs "guix")) + (guile (assoc-ref inputs "guile")) + (json (assoc-ref inputs "guile-json")) + (guile-cm (assoc-ref inputs + "guile-commonmark")) + (deps (list guile guile-cm guix json)) + (effective + (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (path (string-join + (map (cut string-append <> + "/share/guile/site/" + effective) + deps) + ":")) + (gopath (string-join + (map (cut string-append <> + "/lib/guile/" effective + "/site-ccache") + deps) + ":"))) + (wrap-program (string-append out "/bin/run") + `("GUILE_LOAD_PATH" ":" prefix (,path)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))) + + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("uglify-js" ,uglify-js) + ("pkg-config" ,pkg-config))) + (inputs + `(("guix" ,guix))) + (propagated-inputs + `(("guile" ,guile-2.2) + ("guile-commonmark" ,guile-commonmark) + ("guile-json" ,guile-json))) + (home-page "https://github.com/UMCUGenetics/hpcguix-web") + (synopsis "Web interface for cluster deployments of Guix") + (description "This package provides a web interface to the list of +packages provided by Guix. The list of packages is searchable and +provides instructions on how to use Guix in a shared HPC +environment.") + (license l:agpl3+))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Mon, 28 May 2018 13:29:01 GMT) Full text and rfc822 format available.Message #8 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> To: 31621 <at> debbugs.gnu.org Cc: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Mon, 28 May 2018 15:28:00 +0200
* gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. --- gnu/services/web.scm | 71 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index b336a8dd3..d8acc9549 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> ;;; Copyright © 2017 nee <nee-git <at> hidamari.blue> ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,11 +26,14 @@ (define-module (gnu services web) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu system pam) #:use-module (gnu system shadow) #:use-module (gnu packages admin) #:use-module (gnu packages web) #:use-module (gnu packages php) + #:use-module (gnu packages guile) #:use-module (guix records) + #:use-module (guix modules) #:use-module (guix gexp) #:use-module ((guix utils) #:select (version-major)) #:use-module ((guix packages) #:select (package-version)) @@ -155,7 +159,11 @@ php-fpm-service-type nginx-php-location - cat-avatar-generator-service)) + cat-avatar-generator-service + + hpcguix-web-configuration + hpcguix-web-configuration? + hpcguix-web-service-type)) ;;; Commentary: ;;; @@ -893,3 +901,64 @@ a webserver.") (nginx-server-configuration-locations configuration))) (root #~(string-append #$package "/share/web/cat-avatar-generator")))))) + +(define-record-type* <hpcguix-web-configuration> + hpcguix-web-configuration + make-hpcguix-web-configuration + hpcguix-web-configuration? + + ;; Specs is gexp of hpcguix-web configuration file + (specs hpcguix-web-configuration-specs)) + +(define %hpcguix-web-accounts + (list (user-group + (name "hpcguix-web") + (system? #t)) + (user-account + (name "hpcguix-web") + (group "hpcguix-web") + (system? #t) + (comment "hpcguix-web") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define (%hpcguix-web-activation config) + #~(begin + (use-modules (guix build utils)) + (let ((home-dir "/var/cache/guix/web") + (user (getpwnam "hpcguix-web"))) + (mkdir-p home-dir) + (chown home-dir (passwd:uid user) (passwd:gid user)) + (chmod home-dir #o755)))) + +(define (hpcguix-web-shepherd-service config) + (let* ((specs (hpcguix-web-configuration-specs config))) + (with-imported-modules (source-module-closure + '((gnu build shepherd))) + (shepherd-service + (documentation "hpcguix-web daemon") + (provision '(hpcguix-web)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list (string-append #$hpcguix-web "/bin/run") + (string-append "--config=" + #$(scheme-file "hpcguix-web.scm" specs))) + #:user "hpcguix-web" + #:group "hpcguix-web" + #:environment-variables + (list (string-append "XDG_CACHE_HOME=" + "/var/cache")))) + (stop #~(make-kill-destructor)))))) + +(define hpcguix-web-service-type + (service-type + (name 'hpcguix-web) + (description + "Run hpcguix-web daemon @command{run}.") + (extensions + (list (service-extension account-service-type + (const %hpcguix-web-accounts)) + (service-extension activation-service-type + %hpcguix-web-activation) + (service-extension shepherd-root-service-type + (compose list hpcguix-web-shepherd-service)))))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Mon, 28 May 2018 13:29:02 GMT) Full text and rfc822 format available.Message #11 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> To: 31621 <at> debbugs.gnu.org Cc: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: [PATCH 3/3] gnu: tests: Add hpcguix-web. Date: Mon, 28 May 2018 15:28:19 +0200
* gnu/tests/web.scm (run-hpcguix-web-server-test): New procedure. (%hpcguix-web-specs, %hpcguix-web-os, %test-hpcguix-web): New variable. --- gnu/tests/web.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index 1912f8f79..474a5bdb5 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017 Ludovic Courtès <ludo <at> gnu.org> ;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +32,8 @@ #:use-module (guix store) #:export (%test-httpd %test-nginx - %test-php-fpm)) + %test-php-fpm + %test-hpcguix-web)) (define %index.html-contents ;; Contents of the /index.html file. @@ -281,3 +283,82 @@ HTTP-PORT, along with php-fpm." (name "php-fpm") (description "Test PHP-FPM through nginx.") (value (run-php-fpm-test)))) + + +;;; +;;; HPCGUIX-WEB +;;; + +(define* (run-hpcguix-web-server-test name test-os) + "Run tests in %HPCGUIX-WEB-OS, which has hpcguix-web running." + (define os + (marionette-operating-system + test-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings '((8080 . 5000))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette) + (web uri) + (web client) + (web response)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin #$name) + + (test-assert "hpcguix-web running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (match (start-service 'hpcguix-web) + (#f #f) + (('service response-parts ...) + (match (assq-ref response-parts 'running) + ((pid) (number? pid)))))) + marionette)) + + (test-equal "http-get" + 200 + (let-values + (((response text) + (begin + (sleep 3) ; HACK wait service available + (http-get "http://localhost:8080")))) + (response-code response))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation (string-append name "-test") test)) + +(define %hpcguix-web-specs + ;; Server config gexp. + #~(define site-config + (hpcweb-configuration + (title-prefix "[TEST] HPCGUIX-WEB")))) + +(define %hpcguix-web-os + (simple-operating-system + (dhcp-client-service) + (service hpcguix-web-service-type + (hpcguix-web-configuration + (specs %hpcguix-web-specs))))) + +(define %test-hpcguix-web + (system-test + (name "hpcguix-web") + (description "Connect to a running HPCGUIX-WEB server.") + (value (run-hpcguix-web-server-test name %hpcguix-web-os)))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Tue, 29 May 2018 08:32:01 GMT) Full text and rfc822 format available.Message #14 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> To: 31621 <at> debbugs.gnu.org Cc: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Tue, 29 May 2018 10:31:43 +0200
* gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. (%hpcguix-web-accounts): New variable. (%hpcguix-web-activation,hpcguix-web-shepherd-service, hpcguix-web-service-type): New procedures. --- gnu/services/web.scm | 71 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index b336a8dd3..d8acc9549 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> ;;; Copyright © 2017 nee <nee-git <at> hidamari.blue> ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,11 +26,14 @@ (define-module (gnu services web) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu system pam) #:use-module (gnu system shadow) #:use-module (gnu packages admin) #:use-module (gnu packages web) #:use-module (gnu packages php) + #:use-module (gnu packages guile) #:use-module (guix records) + #:use-module (guix modules) #:use-module (guix gexp) #:use-module ((guix utils) #:select (version-major)) #:use-module ((guix packages) #:select (package-version)) @@ -155,7 +159,11 @@ php-fpm-service-type nginx-php-location - cat-avatar-generator-service)) + cat-avatar-generator-service + + hpcguix-web-configuration + hpcguix-web-configuration? + hpcguix-web-service-type)) ;;; Commentary: ;;; @@ -893,3 +901,64 @@ a webserver.") (nginx-server-configuration-locations configuration))) (root #~(string-append #$package "/share/web/cat-avatar-generator")))))) + +(define-record-type* <hpcguix-web-configuration> + hpcguix-web-configuration + make-hpcguix-web-configuration + hpcguix-web-configuration? + + ;; Specs is gexp of hpcguix-web configuration file + (specs hpcguix-web-configuration-specs)) + +(define %hpcguix-web-accounts + (list (user-group + (name "hpcguix-web") + (system? #t)) + (user-account + (name "hpcguix-web") + (group "hpcguix-web") + (system? #t) + (comment "hpcguix-web") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define (%hpcguix-web-activation config) + #~(begin + (use-modules (guix build utils)) + (let ((home-dir "/var/cache/guix/web") + (user (getpwnam "hpcguix-web"))) + (mkdir-p home-dir) + (chown home-dir (passwd:uid user) (passwd:gid user)) + (chmod home-dir #o755)))) + +(define (hpcguix-web-shepherd-service config) + (let* ((specs (hpcguix-web-configuration-specs config))) + (with-imported-modules (source-module-closure + '((gnu build shepherd))) + (shepherd-service + (documentation "hpcguix-web daemon") + (provision '(hpcguix-web)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list (string-append #$hpcguix-web "/bin/run") + (string-append "--config=" + #$(scheme-file "hpcguix-web.scm" specs))) + #:user "hpcguix-web" + #:group "hpcguix-web" + #:environment-variables + (list (string-append "XDG_CACHE_HOME=" + "/var/cache")))) + (stop #~(make-kill-destructor)))))) + +(define hpcguix-web-service-type + (service-type + (name 'hpcguix-web) + (description + "Run hpcguix-web daemon @command{run}.") + (extensions + (list (service-extension account-service-type + (const %hpcguix-web-accounts)) + (service-extension activation-service-type + %hpcguix-web-activation) + (service-extension shepherd-root-service-type + (compose list hpcguix-web-shepherd-service)))))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Tue, 29 May 2018 08:52:02 GMT) Full text and rfc822 format available.Message #17 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Nils Gillmann <ng0 <at> n0.is> To: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Cc: 31621 <at> debbugs.gnu.org Subject: Re: [bug#31621] [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Tue, 29 May 2018 08:52:19 +0000
Hi Rouby, thanks for your patch series. The service of it seems not to be documented. Could you write a little documentation for it so people will know how to use it? That's so far the first and only review I have time for right now. Rouby Pierre-Antoine transcribed 4.0K bytes: > * gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. > --- > gnu/services/web.scm | 71 +++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 70 insertions(+), 1 deletion(-) > > diff --git a/gnu/services/web.scm b/gnu/services/web.scm > index b336a8dd3..d8acc9549 100644 > --- a/gnu/services/web.scm > +++ b/gnu/services/web.scm > @@ -6,6 +6,7 @@ > ;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> > ;;; Copyright © 2017 nee <nee-git <at> hidamari.blue> > ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org> > +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -25,11 +26,14 @@ > (define-module (gnu services web) > #:use-module (gnu services) > #:use-module (gnu services shepherd) > + #:use-module (gnu system pam) > #:use-module (gnu system shadow) > #:use-module (gnu packages admin) > #:use-module (gnu packages web) > #:use-module (gnu packages php) > + #:use-module (gnu packages guile) > #:use-module (guix records) > + #:use-module (guix modules) > #:use-module (guix gexp) > #:use-module ((guix utils) #:select (version-major)) > #:use-module ((guix packages) #:select (package-version)) > @@ -155,7 +159,11 @@ > php-fpm-service-type > nginx-php-location > > - cat-avatar-generator-service)) > + cat-avatar-generator-service > + > + hpcguix-web-configuration > + hpcguix-web-configuration? > + hpcguix-web-service-type)) > > ;;; Commentary: > ;;; > @@ -893,3 +901,64 @@ a webserver.") > (nginx-server-configuration-locations configuration))) > (root #~(string-append #$package > "/share/web/cat-avatar-generator")))))) > + > +(define-record-type* <hpcguix-web-configuration> > + hpcguix-web-configuration > + make-hpcguix-web-configuration > + hpcguix-web-configuration? > + > + ;; Specs is gexp of hpcguix-web configuration file > + (specs hpcguix-web-configuration-specs)) > + > +(define %hpcguix-web-accounts > + (list (user-group > + (name "hpcguix-web") > + (system? #t)) > + (user-account > + (name "hpcguix-web") > + (group "hpcguix-web") > + (system? #t) > + (comment "hpcguix-web") > + (home-directory "/var/empty") > + (shell (file-append shadow "/sbin/nologin"))))) > + > +(define (%hpcguix-web-activation config) > + #~(begin > + (use-modules (guix build utils)) > + (let ((home-dir "/var/cache/guix/web") > + (user (getpwnam "hpcguix-web"))) > + (mkdir-p home-dir) > + (chown home-dir (passwd:uid user) (passwd:gid user)) > + (chmod home-dir #o755)))) > + > +(define (hpcguix-web-shepherd-service config) > + (let* ((specs (hpcguix-web-configuration-specs config))) > + (with-imported-modules (source-module-closure > + '((gnu build shepherd))) > + (shepherd-service > + (documentation "hpcguix-web daemon") > + (provision '(hpcguix-web)) > + (requirement '(networking)) > + (start #~(make-forkexec-constructor > + (list (string-append #$hpcguix-web "/bin/run") > + (string-append "--config=" > + #$(scheme-file "hpcguix-web.scm" specs))) > + #:user "hpcguix-web" > + #:group "hpcguix-web" > + #:environment-variables > + (list (string-append "XDG_CACHE_HOME=" > + "/var/cache")))) > + (stop #~(make-kill-destructor)))))) > + > +(define hpcguix-web-service-type > + (service-type > + (name 'hpcguix-web) > + (description > + "Run hpcguix-web daemon @command{run}.") > + (extensions > + (list (service-extension account-service-type > + (const %hpcguix-web-accounts)) > + (service-extension activation-service-type > + %hpcguix-web-activation) > + (service-extension shepherd-root-service-type > + (compose list hpcguix-web-shepherd-service)))))) > -- > 2.17.0 > > > >
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Tue, 29 May 2018 08:57:01 GMT) Full text and rfc822 format available.Message #20 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Nils Gillmann <ng0 <at> n0.is> To: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Cc: 31621 <at> debbugs.gnu.org Subject: Re: [bug#31621] [PATCH 1/3] gnu: Add hpcguix-web. Date: Tue, 29 May 2018 08:57:17 +0000
(Okay, so my email application seems to put your last name first. Sorry for the confusion in the first email I've sent) Rouby Pierre-Antoine transcribed 4.4K bytes: > * gnu/package/web.scm (hpcguix-web): New variable. > --- > gnu/packages/web.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 80 insertions(+) > > diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm > index 9f1609591..2c69490f8 100644 > --- a/gnu/packages/web.scm > +++ b/gnu/packages/web.scm > @@ -25,6 +25,7 @@ > ;;; Copyright © 2017 Pierre Langlois <pierre.langlois <at> gmx.com> > ;;; Copyright © 2017 Rutger Helling <rhelling <at> mykolab.com> > ;;; Copyright © 2018 Julien Lepiller <julien <at> lepiller.eu> > +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -82,6 +83,7 @@ > #:use-module (gnu packages gnuzilla) > #:use-module (gnu packages gperf) > #:use-module (gnu packages gtk) > + #:use-module (gnu packages guile) > #:use-module (gnu packages java) > #:use-module (gnu packages javascript) > #:use-module (gnu packages jemalloc) > @@ -96,6 +98,7 @@ > #:use-module (gnu packages ncurses) > #:use-module (gnu packages openstack) > #:use-module (gnu packages base) > + #:use-module (gnu packages package-management) > #:use-module (gnu packages perl) > #:use-module (gnu packages perl-check) > #:use-module (gnu packages python) > @@ -6428,3 +6431,80 @@ compressed JSON header blocks. > @item @command{inflatehd} converts such compressed headers back to JSON pairs. > @end itemize\n") > (license l:expat))) > + > +(define-public hpcguix-web > + (package > + (name "hpcguix-web") > + (version "0.0.1") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/UMCUGenetics/hpcguix-web.git") > + (commit "3e3b9a3a406ee2dcd10c96cbedcc16ea378e8e8f"))) Unless git-file-name is implicit now, I would add this to the source. You can grep the source directory to find examples. It is relatively new, so not many packages are using it. > + (sha256 > + (base32 > + "01888byi9mh7d3adcmwhmg44kg98g92r44ilc4wd7an66mjnxpry")))) > + (build-system gnu-build-system) > + (arguments > + `(#:modules ((guix build gnu-build-system) > + (guix build utils) > + (srfi srfi-26) > + (ice-9 popen) > + (ice-9 rdelim)) > + > + #:phases > + (modify-phases %standard-phases > + (add-before 'configure 'autoconf > + (lambda _ > + (setenv "GUILE_AUTO_COMPILE" "0") > + (setenv "XDG_CACHE_HOME" (getcwd)) > + (invoke "autoreconf" "-vif"))) > + (add-after 'install 'wrap-program > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (guix (assoc-ref inputs "guix")) > + (guile (assoc-ref inputs "guile")) > + (json (assoc-ref inputs "guile-json")) > + (guile-cm (assoc-ref inputs > + "guile-commonmark")) > + (deps (list guile guile-cm guix json)) > + (effective > + (read-line > + (open-pipe* OPEN_READ > + (string-append guile "/bin/guile") > + "-c" "(display (effective-version))"))) > + (path (string-join > + (map (cut string-append <> > + "/share/guile/site/" > + effective) > + deps) > + ":")) > + (gopath (string-join > + (map (cut string-append <> > + "/lib/guile/" effective > + "/site-ccache") > + deps) > + ":"))) > + (wrap-program (string-append out "/bin/run") > + `("GUILE_LOAD_PATH" ":" prefix (,path)) > + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))) > + > + #t)))))) > + (native-inputs > + `(("autoconf" ,autoconf) > + ("automake" ,automake) > + ("uglify-js" ,uglify-js) > + ("pkg-config" ,pkg-config))) > + (inputs > + `(("guix" ,guix))) > + (propagated-inputs > + `(("guile" ,guile-2.2) > + ("guile-commonmark" ,guile-commonmark) > + ("guile-json" ,guile-json))) > + (home-page "https://github.com/UMCUGenetics/hpcguix-web") > + (synopsis "Web interface for cluster deployments of Guix") > + (description "This package provides a web interface to the list of Nitpick: Replace the start ("This package") with the name of the application. As far as I remember lint should complain here aswell. > +packages provided by Guix. The list of packages is searchable and > +provides instructions on how to use Guix in a shared HPC > +environment.") > + (license l:agpl3+))) > -- > 2.17.0 > > > >
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Wed, 30 May 2018 07:26:01 GMT) Full text and rfc822 format available.Message #23 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> To: Nils Gillmann <ng0 <at> n0.is> Cc: 31621 <at> debbugs.gnu.org Subject: Re: [bug#31621] [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Wed, 30 May 2018 09:25:00 +0200 (CEST)
Hi Nils, > From: "Nils Gillmann" <ng0 <at> n0.is> > The service of it seems not to be documented. Could you write > a little documentation for it so people will know how > to use it? Yes, no problem. :)
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Wed, 30 May 2018 09:43:01 GMT) Full text and rfc822 format available.Message #26 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> To: ng0 <at> n0.is Cc: 31621 <at> debbugs.gnu.org, Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: [PATCH 1/3] gnu: Add hpcguix-web. Date: Wed, 30 May 2018 11:41:46 +0200
* gnu/package/web.scm (hpcguix-web): New variable. --- gnu/packages/web.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9f1609591..e540fd4b9 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2017 Pierre Langlois <pierre.langlois <at> gmx.com> ;;; Copyright © 2017 Rutger Helling <rhelling <at> mykolab.com> ;;; Copyright © 2018 Julien Lepiller <julien <at> lepiller.eu> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,6 +83,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages java) #:use-module (gnu packages javascript) #:use-module (gnu packages jemalloc) @@ -96,6 +98,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages openstack) #:use-module (gnu packages base) + #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) @@ -6428,3 +6431,80 @@ compressed JSON header blocks. @item @command{inflatehd} converts such compressed headers back to JSON pairs. @end itemize\n") (license l:expat))) + +(define-public hpcguix-web + (package + (name "hpcguix-web") + (version "0.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/UMCUGenetics/hpcguix-web.git") + (commit "3e3b9a3a406ee2dcd10c96cbedcc16ea378e8e8f"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01888byi9mh7d3adcmwhmg44kg98g92r44ilc4wd7an66mjnxpry")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26) + (ice-9 popen) + (ice-9 rdelim)) + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "XDG_CACHE_HOME" (getcwd)) + (invoke "autoreconf" "-vif"))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (guix (assoc-ref inputs "guix")) + (guile (assoc-ref inputs "guile")) + (json (assoc-ref inputs "guile-json")) + (guile-cm (assoc-ref inputs + "guile-commonmark")) + (deps (list guile guile-cm guix json)) + (effective + (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (path (string-join + (map (cut string-append <> + "/share/guile/site/" + effective) + deps) + ":")) + (gopath (string-join + (map (cut string-append <> + "/lib/guile/" effective + "/site-ccache") + deps) + ":"))) + (wrap-program (string-append out "/bin/run") + `("GUILE_LOAD_PATH" ":" prefix (,path)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))) + + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("uglify-js" ,uglify-js) + ("pkg-config" ,pkg-config))) + (inputs + `(("guix" ,guix))) + (propagated-inputs + `(("guile" ,guile-2.2) + ("guile-commonmark" ,guile-commonmark) + ("guile-json" ,guile-json))) + (home-page "https://github.com/UMCUGenetics/hpcguix-web") + (synopsis "Web interface for cluster deployments of Guix") + (description "Hpcguix-web provides a web interface to the list of packages +provided by Guix. The list of packages is searchable and provides +instructions on how to use Guix in a shared HPC environment.") + (license l:agpl3+))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Wed, 30 May 2018 09:48:01 GMT) Full text and rfc822 format available.Message #29 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> To: ng0 <at> n0.is Cc: 31621 <at> debbugs.gnu.org, Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Wed, 30 May 2018 11:47:04 +0200
* gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. (%hpcguix-web-accounts): New variable. (%hpcguix-web-activation,hpcguix-web-shepherd-service, hpcguix-web-service-type): New procedures. * doc/guix.texi (Web Services): Add 'hpcguix-web'. --- doc/guix.texi | 50 ++++++++++++++++++++++++++++++- gnu/services/web.scm | 71 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 119 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5129b998b..6c91dd5a7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -47,7 +47,8 @@ Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* -Copyright @copyright{} 2018 Mike Gerwitz +Copyright @copyright{} 2018 Mike Gerwitz@* +Copyright @copyright{} 2018 Pierre-Antoine Rouby Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -16135,6 +16136,53 @@ A simple setup for cat-avatar-generator can look like this: %base-services)) @end example +@subsubheading Hpcguix-web + +@cindex hpcguix-web +The @code{hpcguix-web} is web interface to @code{Guix} packages visualizations. + +@defvr {Scheme Variable} hpcguix-web-service-type +A service type for @code{hpcguix-web}. +@end defvr + +@deftp {Data Type} hpcguix-web-configuration +Data Type for @code{hpcguix-web} service configuration. + +@table @asis +@item @code{specs} +The @code{hpcguix-web} @code{gexp} service +@url{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, +configuration} + +@table @asis +@item @code{title-prefix} (default: @code{"hpcguix | "}) +The page title prefix. + +@item @code{guix-command} (default: @code{"guix"}) +The @code{Guix} command. + +@item @code{package-filter-proc} (default: @code{(const #t)}) +Package filter. + +@item @code{package-page-extension-proc} (default: @code{(const '())}) +Extension package for @code{hpcguix-web}. + +@item @code{menu} (default: @code{'()}) +Additional entry in page @code{menu}. +@end table +@end table +@end deftp + +@example +(services (cons* (service hpcguix-web-service-type + (hpcguix-web-configuration + (specs + #~(define site-config + (hpcweb-configuration + (title-prefix "Guix-HPC - ") + (menu '(("/about" "ABOUT")))))))) +@end example + @node Certificate Services @subsubsection Certificate Services diff --git a/gnu/services/web.scm b/gnu/services/web.scm index b336a8dd3..d8acc9549 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> ;;; Copyright © 2017 nee <nee-git <at> hidamari.blue> ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby <at> inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,11 +26,14 @@ (define-module (gnu services web) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu system pam) #:use-module (gnu system shadow) #:use-module (gnu packages admin) #:use-module (gnu packages web) #:use-module (gnu packages php) + #:use-module (gnu packages guile) #:use-module (guix records) + #:use-module (guix modules) #:use-module (guix gexp) #:use-module ((guix utils) #:select (version-major)) #:use-module ((guix packages) #:select (package-version)) @@ -155,7 +159,11 @@ php-fpm-service-type nginx-php-location - cat-avatar-generator-service)) + cat-avatar-generator-service + + hpcguix-web-configuration + hpcguix-web-configuration? + hpcguix-web-service-type)) ;;; Commentary: ;;; @@ -893,3 +901,64 @@ a webserver.") (nginx-server-configuration-locations configuration))) (root #~(string-append #$package "/share/web/cat-avatar-generator")))))) + +(define-record-type* <hpcguix-web-configuration> + hpcguix-web-configuration + make-hpcguix-web-configuration + hpcguix-web-configuration? + + ;; Specs is gexp of hpcguix-web configuration file + (specs hpcguix-web-configuration-specs)) + +(define %hpcguix-web-accounts + (list (user-group + (name "hpcguix-web") + (system? #t)) + (user-account + (name "hpcguix-web") + (group "hpcguix-web") + (system? #t) + (comment "hpcguix-web") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define (%hpcguix-web-activation config) + #~(begin + (use-modules (guix build utils)) + (let ((home-dir "/var/cache/guix/web") + (user (getpwnam "hpcguix-web"))) + (mkdir-p home-dir) + (chown home-dir (passwd:uid user) (passwd:gid user)) + (chmod home-dir #o755)))) + +(define (hpcguix-web-shepherd-service config) + (let* ((specs (hpcguix-web-configuration-specs config))) + (with-imported-modules (source-module-closure + '((gnu build shepherd))) + (shepherd-service + (documentation "hpcguix-web daemon") + (provision '(hpcguix-web)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list (string-append #$hpcguix-web "/bin/run") + (string-append "--config=" + #$(scheme-file "hpcguix-web.scm" specs))) + #:user "hpcguix-web" + #:group "hpcguix-web" + #:environment-variables + (list (string-append "XDG_CACHE_HOME=" + "/var/cache")))) + (stop #~(make-kill-destructor)))))) + +(define hpcguix-web-service-type + (service-type + (name 'hpcguix-web) + (description + "Run hpcguix-web daemon @command{run}.") + (extensions + (list (service-extension account-service-type + (const %hpcguix-web-accounts)) + (service-extension activation-service-type + %hpcguix-web-activation) + (service-extension shepherd-root-service-type + (compose list hpcguix-web-shepherd-service)))))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Thu, 31 May 2018 16:11:01 GMT) Full text and rfc822 format available.Message #32 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: ludovic.courtes <at> inria.fr (Ludovic Courtès) To: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Cc: 31621 <at> debbugs.gnu.org, ng0 <at> n0.is Subject: Re: [bug#31621] [PATCH 1/3] gnu: Add hpcguix-web. Date: Thu, 31 May 2018 18:09:54 +0200
Hello! (Cc’ing Roel, who might have something to say. :-)) Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> skribis: > * gnu/package/web.scm (hpcguix-web): New variable. [...] > +(define-public hpcguix-web > + (package > + (name "hpcguix-web") > + (version "0.0.1") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/UMCUGenetics/hpcguix-web.git") > + (commit "3e3b9a3a406ee2dcd10c96cbedcc16ea378e8e8f"))) Please use the version scheme as explained in the manual (info "(guix) Version Numbers"). That’s all I have to say. :-) Ludo’.
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Thu, 31 May 2018 16:13:02 GMT) Full text and rfc822 format available.Message #35 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: ludovic.courtes <at> inria.fr (Ludovic Courtès) To: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Cc: 31621 <at> debbugs.gnu.org, ng0 <at> n0.is Subject: Re: [bug#31621] [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Thu, 31 May 2018 18:12:30 +0200
Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> skribis: > * gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. > (%hpcguix-web-accounts): New variable. > (%hpcguix-web-activation,hpcguix-web-shepherd-service, > hpcguix-web-service-type): New procedures. > * doc/guix.texi (Web Services): Add 'hpcguix-web'. I think you had written a system test no? Did it end up in a different patch? Apart from that it LGTM, thank you, and thanks Nils for the review! Ludo’.
guix-patches <at> gnu.org
:bug#31621
; Package guix-patches
.
(Thu, 31 May 2018 22:39:02 GMT) Full text and rfc822 format available.Message #38 received at 31621 <at> debbugs.gnu.org (full text, mbox):
From: Roel Janssen <roel <at> gnu.org> To: Ludovic Courtès <ludovic.courtes <at> inria.fr> Cc: 31621 <at> debbugs.gnu.org, ng0 <at> n0.is, Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Subject: Re: [bug#31621] [PATCH 1/3] gnu: Add hpcguix-web. Date: Fri, 01 Jun 2018 00:38:36 +0200
Ludovic Courtès <ludovic.courtes <at> inria.fr> writes: > Hello! > > (Cc’ing Roel, who might have something to say. :-)) Yes yes. Shamefully, I haven't tested the patches yet. I like the work of Pierre-Antoine on hpcguix-web a lot! > > Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> skribis: > >> * gnu/package/web.scm (hpcguix-web): New variable. > > [...] > >> +(define-public hpcguix-web >> + (package >> + (name "hpcguix-web") >> + (version "0.0.1") >> + (source (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url "https://github.com/UMCUGenetics/hpcguix-web.git") >> + (commit "3e3b9a3a406ee2dcd10c96cbedcc16ea378e8e8f"))) > > Please use the version scheme as explained in the manual (info "(guix) > Version Numbers"). > > That’s all I have to say. :-) We could just release a 0.0.2. Then we don't need use git-fetch at all. Kind regards, Roel Janssen
ludo <at> gnu.org (Ludovic Courtès)
:Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr>
:Message #43 received at 31621-done <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> Cc: Roel Janssen <roel <at> gnu.org>, 31621-done <at> debbugs.gnu.org, ng0 <at> n0.is Subject: Re: [bug#31621] [PATCH 2/3] gnu: service: Add hpcguix-web. Date: Fri, 01 Jun 2018 10:05:23 +0200
[Message part 1 (text/plain, inline)]
Hello, (+Cc: Roel.) Rouby Pierre-Antoine <pierre-antoine.rouby <at> inria.fr> skribis: > * gnu/service/web.scm (<hpcguix-web-configuration>): New record-type. > (%hpcguix-web-accounts): New variable. > (%hpcguix-web-activation,hpcguix-web-shepherd-service, > hpcguix-web-service-type): New procedures. > * doc/guix.texi (Web Services): Add 'hpcguix-web'. I found the test ;-), sorry for the confusion. I squashed the test with the other commit (because they logically belong to the same change), and I applied it with the changes below. Thank you! Ludo’.
[Message part 2 (text/x-patch, inline)]
diff --git a/doc/guix.texi b/doc/guix.texi index 9b9ce0f77..3b5078741 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -16163,30 +16163,32 @@ A simple setup for cat-avatar-generator can look like this: @subsubheading Hpcguix-web @cindex hpcguix-web -The @code{hpcguix-web} is web interface to @code{Guix} packages visualizations. +The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/} +program is a customizable web interface to browse Guix packages, +initially designed for users of high-performance computing (HPC) +clusters. @defvr {Scheme Variable} hpcguix-web-service-type -A service type for @code{hpcguix-web}. +The service type for @code{hpcguix-web}. @end defvr @deftp {Data Type} hpcguix-web-configuration -Data Type for @code{hpcguix-web} service configuration. +Data type for the hpcguix-web service configuration. @table @asis @item @code{specs} -The @code{hpcguix-web} @code{gexp} service -@url{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, -configuration} +A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service +configuration. The main items available in this spec are: @table @asis @item @code{title-prefix} (default: @code{"hpcguix | "}) The page title prefix. @item @code{guix-command} (default: @code{"guix"}) -The @code{Guix} command. +The @command{guix} command. @item @code{package-filter-proc} (default: @code{(const #t)}) -Package filter. +A procedure specifying how to filter packages that are displayed. @item @code{package-page-extension-proc} (default: @code{(const '())}) Extension package for @code{hpcguix-web}. @@ -16194,17 +16196,26 @@ Extension package for @code{hpcguix-web}. @item @code{menu} (default: @code{'()}) Additional entry in page @code{menu}. @end table + +See the hpcguix-web repository for a +@uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, +complete example}. + +@item @code{package} (default: @code{hpcguix-web}) +The hpcguix-web package to use. @end table @end deftp +A typical hpcguix-web service declaration looks like this: + @example -(services (cons* (service hpcguix-web-service-type - (hpcguix-web-configuration - (specs - #~(define site-config - (hpcweb-configuration - (title-prefix "Guix-HPC - ") - (menu '(("/about" "ABOUT")))))))) +(service hpcguix-web-service-type + (hpcguix-web-configuration + (specs + #~(define site-config + (hpcweb-configuration + (title-prefix "Guix-HPC - ") + (menu '(("/about" "ABOUT")))))))) @end example @node Certificate Services diff --git a/gnu/services/web.scm b/gnu/services/web.scm index d8acc9549..aae2f3db0 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -902,13 +902,15 @@ a webserver.") (root #~(string-append #$package "/share/web/cat-avatar-generator")))))) + (define-record-type* <hpcguix-web-configuration> - hpcguix-web-configuration - make-hpcguix-web-configuration + hpcguix-web-configuration make-hpcguix-web-configuration hpcguix-web-configuration? + (package hpcguix-web-package (default hpcguix-web)) ;<package> + ;; Specs is gexp of hpcguix-web configuration file - (specs hpcguix-web-configuration-specs)) + (specs hpcguix-web-configuration-specs)) (define %hpcguix-web-accounts (list (user-group @@ -922,7 +924,7 @@ a webserver.") (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) -(define (%hpcguix-web-activation config) +(define %hpcguix-web-activation #~(begin (use-modules (guix build utils)) (let ((home-dir "/var/cache/guix/web") @@ -932,7 +934,8 @@ a webserver.") (chmod home-dir #o755)))) (define (hpcguix-web-shepherd-service config) - (let* ((specs (hpcguix-web-configuration-specs config))) + (let ((specs (hpcguix-web-configuration-specs config)) + (hpcguix-web (hpcguix-web-package config))) (with-imported-modules (source-module-closure '((gnu build shepherd))) (shepherd-service @@ -940,25 +943,23 @@ a webserver.") (provision '(hpcguix-web)) (requirement '(networking)) (start #~(make-forkexec-constructor - (list (string-append #$hpcguix-web "/bin/run") + (list #$(file-append hpcguix-web "/bin/run") (string-append "--config=" #$(scheme-file "hpcguix-web.scm" specs))) #:user "hpcguix-web" #:group "hpcguix-web" #:environment-variables - (list (string-append "XDG_CACHE_HOME=" - "/var/cache")))) + (list "XDG_CACHE_HOME=/var/cache"))) (stop #~(make-kill-destructor)))))) (define hpcguix-web-service-type (service-type (name 'hpcguix-web) - (description - "Run hpcguix-web daemon @command{run}.") + (description "Run the hpcguix-web server.") (extensions (list (service-extension account-service-type (const %hpcguix-web-accounts)) (service-extension activation-service-type - %hpcguix-web-activation) + (const %hpcguix-web-activation)) (service-extension shepherd-root-service-type (compose list hpcguix-web-shepherd-service)))))) diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index 474a5bdb5..a6bf6efcf 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -286,7 +286,7 @@ HTTP-PORT, along with php-fpm." ;;; -;;; HPCGUIX-WEB +;;; hpcguix-web ;;; (define* (run-hpcguix-web-server-test name test-os) @@ -329,15 +329,14 @@ HTTP-PORT, along with php-fpm." (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) - + (test-equal "http-get" 200 - (let-values - (((response text) - (begin - (sleep 3) ; HACK wait service available - (http-get "http://localhost:8080")))) - (response-code response))) + (begin + (wait-for-tcp-port 5000 marionette) + (let-values (((response text) + (http-get "http://localhost:8080"))) + (response-code response)))) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) @@ -360,5 +359,5 @@ HTTP-PORT, along with php-fpm." (define %test-hpcguix-web (system-test (name "hpcguix-web") - (description "Connect to a running HPCGUIX-WEB server.") + (description "Connect to a running hpcguix-web server.") (value (run-hpcguix-web-server-test name %hpcguix-web-os))))
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Fri, 29 Jun 2018 11:24:05 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.