maintenance/hydra/modules/sysadmin/packages.scm

102 lines
4.2 KiB
Scheme

;;; Packages for GNU Guix project systems.
;;;
;;; Copyright © 2023 Christopher Baines <mail@cbaines.net>
;;;
;;; 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 <http://www.gnu.org/licenses/>.
(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+))))