;;; Packages for GNU Guix project systems. ;;; ;;; Copyright © 2023 Christopher Baines ;;; ;;; This program 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. ;;; ;;; This program 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 this program. If not, see . (define-module (sysadmin packages) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages web) #:use-module (gnu packages ssh) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages autotools) #:use-module (gnu packages pkg-config) #:use-module (gnu packages version-control) #:use-module (gnu packages package-management)) (define-public qa-frontpage (let ((commit "daccc0ce970916cf75981824b66be1a142626818") (revision "6")) (package (name "guix-qa-frontpage") (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://git.savannah.gnu.org/git/guix/qa-frontpage.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "1kn25cbk21c123jsh5c5h007dvb1x4dmm2lrj5gc7zbr570k50dg")))) (build-system gnu-build-system) (arguments `(#:modules (((guix build guile-build-system) #:select (target-guile-effective-version)) ,@%gnu-build-system-modules) #:imported-modules ((guix build guile-build-system) ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases (add-after 'install 'wrap-executable (lambda* (#:key inputs outputs target #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (guile (assoc-ref inputs "guile")) (version (target-guile-effective-version)) (scm (string-append out "/share/guile/site/" version)) (go (string-append out "/lib/guile/" version "/site-ccache"))) (for-each (lambda (file) (simple-format (current-error-port) "wrapping: ~A\n" file) (wrap-program file `("PATH" ":" prefix (,(string-append (assoc-ref inputs "git") "/bin") ,(string-append (assoc-ref inputs "openssh") "/bin"))) `("GUILE_LOAD_PATH" ":" prefix (,scm ,(getenv "GUILE_LOAD_PATH"))) `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))) (find-files bin)))))))) (inputs (list guix guix-data-service guile-json-4 guile-fibers-1.1 guile-kolam guile-git guile-readline guile-prometheus guix-build-coordinator (car (assoc-ref (package-native-inputs guix) "guile")) git openssh)) (native-inputs (list autoconf automake pkg-config)) (synopsis "QA Frontpage for Guix") (description "This service assists with quality assurance within Guix. Currently that means assisting with testing patches, but in the intended scope is any and all quality assurance tasks.") (home-page "https://git.cbaines.net/guix/qa-frontpage") (license license:agpl3+))))