diff options
Diffstat (limited to 'guix')
| -rw-r--r-- | guix/gn-machines/genenetwork.scm | 57 | ||||
| -rw-r--r-- | guix/gn-machines/services/monitoring.scm | 68 |
2 files changed, 115 insertions, 10 deletions
diff --git a/guix/gn-machines/genenetwork.scm b/guix/gn-machines/genenetwork.scm index 06e7425..657322e 100644 --- a/guix/gn-machines/genenetwork.scm +++ b/guix/gn-machines/genenetwork.scm @@ -2,11 +2,14 @@ #:use-module ((gn packages genenetwork) #:select (genenetwork2 genenetwork3 gn-auth gn-uploader gn-libs) #:prefix gn:) + #:use-module((gn packages guile) + #:select (gn-guile guile-sheepdog) + #:prefix gng:) #:use-module (guix git-download) #:use-module (guix packages)) (define-public genenetwork2 - (let ((commit "bde8bde1732cc042e96819bfdfd17a004b92d06f") + (let ((commit "905cacdc33a054b463d3b98c2adcd882dc3573fe") (revision "4")) (package (inherit gn:genenetwork2) @@ -20,14 +23,14 @@ (file-name (string-append name "-" version)) (sha256 (base32 - "05yslcqykvxiddlhdvfmjpmrm36149zxr7mjwq0pyhm6fg5dgzqp")))) + "0vjsfihj94g1cxivkvmfnixjpmmn3wsciiiry2zkqjnzb3yryy2x")))) (propagated-inputs (modify-inputs (package-propagated-inputs gn:genenetwork2) (replace "gn-libs" gn-libs) (replace "genenetwork3" genenetwork3)))))) (define-public genenetwork3 - (let ((commit "c16eedfa97f7dfbf0a217d9dee2e210d1c51c7ed") + (let ((commit "34a6b37b312b2e2e92324683ec47046b6ab63fe4") (revision "5")) (package (inherit gn:genenetwork3) @@ -42,13 +45,13 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0f3z98yg8mz2x2kgbghdhjj90qm35zc84v5fjmr8g949gws1k7xv")))) + "1mz71kc4icgcj8mjpnipbyfv3nvyrdmqdzpjy1nd3j2f9zjxypz0")))) (propagated-inputs (modify-inputs (package-propagated-inputs gn:genenetwork3) (replace "gn-libs" gn-libs)))))) (define-public gn-auth - (let ((commit "1f2c00e2657f1b7edcfcc9f9bd1a573625d7fb29") + (let ((commit "bd0f453033327a392afa3194538db5d2be22969e") (revision "1")) (package (inherit gn:gn-auth) @@ -64,13 +67,13 @@ (hash (content-hash (base32 - "04xra524dfm1w048ml8n9mc76020j9ipp3dbmf4cc0jps7vq3j91"))))) + "0iamdg2xbj4f5z0qd8z8jildmq2scr10s547fn2k4rac2xm0yn59"))))) (propagated-inputs (modify-inputs (package-propagated-inputs gn:gn-auth) (replace "gn-libs" gn-libs)))))) (define-public gn-uploader - (let ((commit "9514647b70fe90a709b2881e50871a6e15f1236e") + (let ((commit "096fe9dfe3a582658c6bf9179b6c2662cc78711b") (revision "0")) (package (inherit gn:gn-uploader) @@ -85,13 +88,13 @@ (hash (content-hash (base32 - "1gdn60vb4jk63akffkmbmgi7lil6bv8fqksdn1v2bww1z9rmiydl"))))) + "02ds5vv8x2367r95zv0ddh42cqdlwh2jjbqipfd6ppn1dms3p9yj"))))) (propagated-inputs (modify-inputs (package-propagated-inputs gn:gn-uploader) (replace "gn-libs" gn-libs)))))) (define-public gn-libs - (let ((commit "edfbd94378980e1189fcfb769a207e0519af228b") + (let ((commit "5f977e69b46e0ee99845fb69d504f299dc7429a1") (revision "03")) (package (inherit gn:gn-libs) @@ -105,4 +108,38 @@ (file-name (string-append name "-" version)) (sha256 (base32 - "1ran4hrv4waf1fi8zal1kk2asjp4br7n1dpyds7wxwdia1gnxjnk"))))))) + "0hvixdpmqhhby4xv2sq7wnw15gbbp3vicxxa04rmgq1fd4mj0j49"))))))) + +(define-public gn-guile + (let ((commit "454244b774ece37f04f146c74353ea4ec35d43e1") + (revision "0")) + (package + (inherit gng:gn-guile) + (name "gn-guile") + (version (git-version "4.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.genenetwork.org/gn-guile/") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1n1zjpwfksq8bf42d7xr7lnblgsbqc0yszkbid253s943fyxzhfn"))))))) + +(define-public guile-sheepdog + (let ((commit "1426617d58f305a4126bb867202843e8cf7dd4b2") + (revision "0")) + (package + (inherit gng:guile-sheepdog) + (name "guile-sheepdog") + (version (git-version "4.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BonfaceKilz/guile-sheepdog.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1z0xzg11p75s2hk312akxlg2h5278w2abma27dhzjf981g3lcqvr"))))))) diff --git a/guix/gn-machines/services/monitoring.scm b/guix/gn-machines/services/monitoring.scm new file mode 100644 index 0000000..7fa59c9 --- /dev/null +++ b/guix/gn-machines/services/monitoring.scm @@ -0,0 +1,68 @@ +;;; genenetwork-machines --- Guix configuration for genenetwork machines +;;; Copyright © 2025 Munyoki Kilyungi <me@bonfacemunyoki.com> +;;; +;;; This file is part of genenetwork-machines. +;;; +;;; genenetwork-machines is free software: you can redistribute it +;;; and/or modify it under the terms of the GNU General Public License +;;; as published by the Free Software Foundation, either version 3 of +;;; the License, or (at your option) any later version. +;;; +;;; genenetwork-machines is distributed in the hope that it will be +;;; useful, but WITHOUT ANY WARRANTY; without even the implied +;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +;;; See the GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with genenetwork-machines. If not, see +;;; <https://www.gnu.org/licenses/>. + +(define-module (gn-machines services monitoring) + #:use-module (gnu) + #:use-module (gnu services shepherd) + #:use-module (gnu services databases) + #:use-module ((gn-machines genenetwork) #:select (guile-sheepdog)) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (ice-9 match) + #:export (guile-sheepdog-configuration + guile-sheepdog-configuration? + guile-sheepdog-configuration-settings-file + guile-sheepdog-configuration-package + guile-sheepdog-service-type)) + +(define-record-type* <guile-sheepdog-configuration> + guile-sheepdog-configuration + make-guile-sheepdog-configuration + guile-sheepdog-configuration? + (settings-file guile-sheepdog-configuration-settings-file + (default "/etc/conn.scm")) + (package guile-sheepdog-configuration-package (default guile-sheepdog))) + +(define (guile-sheepdog-gexp config) + (match-record config <guile-sheepdog-configuration> (settings-file package) + (program-file + "guile-sheepdog" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (invoke #$(file-append package "/bin/guile-sheepdog") #$settings-file)))))) + +(define (guile-sheepdog-shepherd-service config) + (shepherd-service + (documentation "Run Sheepdog") + (provision '(guile-sheepdog)) + (requirement '(networking redis)) + (start #~(make-forkexec-constructor + (list #$(guile-sheepdog-gexp config)) + #:log-file "/var/log/sheepdog.log")) + (stop #~(make-kill-destructor)))) + +(define guile-sheepdog-service-type + (service-type + (name 'guile-sheepdog) + (description "Run sheepdog monitor") + (extensions + (list (service-extension shepherd-root-service-type + (compose list guile-sheepdog-shepherd-service)))) + (default-value (guile-sheepdog-configuration)))) |
