AboutSummaryRefsLogTreeCommitDiffStats
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2016-12-28 23:13:30 +0100
committerMathieu Lirzin <mthl@gnu.org>2016-12-28 23:55:20 +0100
commitaaf1b08404b4f06ee31f1de06e8d40c74aa5f3ae (patch)
treefc0b48eff7818858369575aaf30c8a984b6f8436
parentea648c07305cd3447b8ec71f2dcadf7e5e1796fa (diff)
downloadmcron-aaf1b08404b4f06ee31f1de06e8d40c74aa5f3ae.tar.gz
mcron-aaf1b08404b4f06ee31f1de06e8d40c74aa5f3ae.tar.bz2
mcron-aaf1b08404b4f06ee31f1de06e8d40c74aa5f3ae.zip
build: Add "build-aux/guix.scm".
* build-aux/guix.scm: New file. * Makefile.am (EXTRA_DIST): Add it.
-rw-r--r--Makefile.am1
-rw-r--r--build-aux/guix.scm66
2 files changed, 67 insertions, 0 deletions
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 <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")))))