From aaf1b08404b4f06ee31f1de06e8d40c74aa5f3ae Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Wed, 28 Dec 2016 23:13:30 +0100 Subject: build: Add "build-aux/guix.scm". * build-aux/guix.scm: New file. * Makefile.am (EXTRA_DIST): Add it. --- Makefile.am | 1 + build-aux/guix.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 build-aux/guix.scm diff --git a/Makefile.am b/Makefile.am index d31eacb..b74238c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -143,6 +143,7 @@ uninstall-hook: fi EXTRA_DIST = \ + build-aux/guix.scm \ .version \ $(TESTS) diff --git a/build-aux/guix.scm b/build-aux/guix.scm new file mode 100644 index 0000000..d90e0be --- /dev/null +++ b/build-aux/guix.scm @@ -0,0 +1,66 @@ +;;;; guix.scm -- Guix package definition +;;; Copyright © 2016 Mathieu Lirzin +;;; +;;; This file is part of GNU Mcron. +;;; +;;; GNU Mcron 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. +;;; +;;; GNU Mcron 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 GNU Mcron. If not, see . + +(use-modules (ice-9 popen) + (ice-9 rdelim) + (gnu) + (guix) + (srfi srfi-1)) + +(define (keep-mcron-file? file stat) + ;; Return #t if FILE in Mcron repository must be kept, #f otherwise. FILE + ;; is an absolute file name and STAT is the result of 'lstat' applied to + ;; FILE. + (not (or (any (λ (str) (string-contains file str)) + '(".git" "autom4te" "Makefile.in" ".go" ".log" + "stamp-vti" ".dirstamp")) + (any (λ (str) (string-suffix? str file)) + '("trs""configure" "Makefile" "config.status" "pre-inst-env" + "aclocal.m4" "bin/cron" "bin/mcron" "bin/crontab" "config.cache" + "guix.scm"))))) + +(define %srcdir + (or (current-source-directory) ".")) + +(define (git-version-gen) + ;; Return a string containing Cuirass version number. + (let* ((cmd "git-version-gen .version") + (port (open-input-pipe (string-append %srcdir "/" cmd))) + (str (read-line port))) + (close-pipe port) + str)) + +(package + (inherit (specification->package "mcron2")) + (version (git-version-gen)) + (source (local-file (dirname %srcdir) #:recursive? #t + #:select? keep-mcron-file?)) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (λ _ (zero? (system* "autoreconf" "-vfi"))))))) + (inputs + `(("guile" ,(specification->package "guile@2.0")))) + (native-inputs + `(("autoconf" ,(specification->package "autoconf")) + ("automake" ,(specification->package "automake")) + ("help2man" ,(specification->package "help2man")) + ("pkg-config" ,(specification->package "pkg-config")) + ("texinfo" ,(specification->package "texinfo")) + ("which" ,(specification->package "which"))))) -- cgit v1.2.3