;;; guix-build-coordinator ;;; ;;; Copyright © 2020 Christopher Baines ;;; ;;; This file is part of the guix-build-coordinator. ;;; ;;; guix-data-service 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. ;;; ;;; guix-data-service 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 the guix-data-service. If not, see ;;; . ;;; Run the following command to enter a development environment for ;;; the guix-build-coordinator: ;;; ;;; $ guix environment -l guix-dev.scm (use-modules ((guix licenses) #:prefix license:) (guix packages) (guix download) (guix git-download) (guix utils) (guix build-system gnu) (gnu packages) (gnu packages autotools) (gnu packages compression) (gnu packages databases) (gnu packages gnupg) (gnu packages guile) (gnu packages guile-xyz) (gnu packages package-management) (gnu packages perl) (gnu packages pkg-config) (gnu packages ruby) (gnu packages sqlite) (gnu packages texinfo) (srfi srfi-1)) (define guile3.0-readline (if (defined? 'guile3.0-readline (resolve-interface '(gnu packages guile))) guile3.0-readline guile-readline)) (define my-guile (if (defined? 'guile-3.0-latest (resolve-interface '(gnu packages guile))) guile-3.0-latest guile-next)) (define guile-json-4 (if (defined? 'guile-json-4 (resolve-interface '(gnu packages guile))) guile-json-4 (package (name "guile-json") (version "4.5.2") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-json/guile-json-" version ".tar.gz")) (sha256 (base32 "0cqr0ljqmzlc2bwrapcsmcgxg147h66mcxf23824ri5i6vn4dc0s")))) (build-system gnu-build-system) (arguments `(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings (native-inputs `(("pkg-config" ,pkg-config) ("guile" ,guile-3.0))) (inputs `(("guile" ,guile-3.0))) (synopsis "JSON module for Guile") (description "Guile-JSON supports parsing and building JSON documents according to the specification. These are the main features: @itemize @item Strictly complies to @uref{http://json.org, specification}. @item Build JSON documents programmatically via macros. @item Unicode support for strings. @item Allows JSON pretty printing. @end itemize\n") (home-page "https://github.com/aconchillo/guile-json") ;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+). (license license:gpl3+)))) (define guile-zlib (if (defined? 'guile-zlib (resolve-interface '(gnu packages guile))) guile-zlib (package (name "guile-zlib") (version "0.0.1") (source (origin ;; XXX: Do not use "git-fetch" method here that would create and ;; endless inclusion loop, because this package is used as an extension ;; in the same method. (method url-fetch) (uri (string-append "https://notabug.org/guile-zlib/guile-zlib/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1caz6cbl6sg5567nk68z88rshp0m26zmb0a9ry1jkc1ivpk0n47i")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) ,@(if (%current-target-system) `(("guile" ,guile-3.0)) ;for 'guild compile' and 'guile-3.0.pc' '()))) (inputs `(("guile" ,guile-3.0) ("zlib" ,zlib))) (synopsis "Guile bindings to zlib") (description "This package provides Guile bindings for zlib, a lossless data-compression library. The bindings are written in pure Scheme by using Guile's foreign function interface.") (home-page "https://notabug.org/guile-zlib/guile-zlib") (license license:gpl3+)))) (define guile-lzlib (if (defined? 'guile-lzlib (resolve-interface '(gnu packages guile))) guile-lzlib (package (name "guile-lzlib") (version "0.0.2") (source (origin (method url-fetch) (uri (string-append "https://notabug.org/guile-lzlib/guile-lzlib/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "11sggvncyx08ssp1s5xii4d6nskh1qwqihnbpzzvkrs7sivxn8w6")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) ,@(if (%current-target-system) `(("guile" ,guile-3.0)) ;for 'guild compile' and 'guile-3.0.pc' '()))) (inputs `(("guile" ,guile-3.0) ("lzlib" ,lzlib))) (synopsis "Guile bindings to lzlib") (description "This package provides Guile bindings for lzlib, a C library for in-memory LZMA compression and decompression. The bindings are written in pure Scheme by using Guile's foreign function interface.") (home-page "https://notabug.org/guile-lzlib/guile-lzlib") (license license:gpl3+)))) (define guile-prometheus (if (defined? 'guile-prometheus (resolve-interface '(gnu packages guile))) guile-prometheus (let ((commit "35dc26c0ea44c3d70f1819f240d84e2cbb4b7b4c") (revision "5")) (package (name "guile-prometheus") (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://git.cbaines.net/git/guile/prometheus") (commit commit))) (sha256 (base32 "07822jj4appw37lf444kc4xlgl7nm64mgldag56072l55kwashgb")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) ("guile" ,guile-3.0))) (inputs `(("guile" ,guile-3.0))) (home-page "https://git.cbaines.net/guile/prometheus") (synopsis "Prometheus client library for Guile") (description "This Guile library provides instrumentation code intended to be used with the Prometheus time series service. Counter, gauge and histogram metric types are supported.") (license license:gpl3+))))) (package (name "guix-build-coordinator") (version "0.0.0") (source #f) (build-system gnu-build-system) (inputs `(("guix" ,guile3.0-guix) ("guile-json" ,guile-json-4) ("guile-squee" ,guile3.0-squee) ("guile-fibers" ,guile3.0-fibers) ("guile-gcrypt" ,guile3.0-gcrypt) ("guile-readline" ,guile-readline) ("guile-lib" ,guile3.0-lib) ("guile-zlib" ,guile-zlib) ("guile-lzlib" ,guile-lzlib) ("guile-prometheus" ,guile-prometheus) ("guile" ,my-guile) ("postgresql" ,postgresql) ("sqlite" ,sqlite) ("perl" ,perl) ("sqitch" ,sqitch) ("perl-dbd-sqlite" ,perl-dbd-sqlite))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("ephemeralpg" ,ephemeralpg) ("pkg-config" ,pkg-config) ("ruby-rerun" ,ruby-rerun))) (synopsis "TODO") (description "TODO") (home-page "TODO") (license license:gpl3+))