SummaryRefsLogTreeCommitDiffStats
path: root/build-aux/guix.scm
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2017-09-27 23:16:54 +0200
committerMathieu Lirzin <mthl@gnu.org>2017-09-27 23:16:54 +0200
commitd72716ce16e8326f14ff7ae9ca41af5315e94ae4 (patch)
treee208805a5558748bd010dda915a126e6f043308b /build-aux/guix.scm
parenta0b580448c4b24830ea37190eda53aa84b36cd60 (diff)
parentba294d6a3ba4d086bc9571d62c705ab6eab200e3 (diff)
downloadmcron-d72716ce16e8326f14ff7ae9ca41af5315e94ae4.tar.gz
mcron-d72716ce16e8326f14ff7ae9ca41af5315e94ae4.tar.bz2
mcron-d72716ce16e8326f14ff7ae9ca41af5315e94ae4.zip
Merge branch 'devel'
Diffstat (limited to 'build-aux/guix.scm')
-rw-r--r--build-aux/guix.scm66
1 files changed, 66 insertions, 0 deletions
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 <mthl@gnu.org>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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")))))