about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix.scm107
1 files changed, 71 insertions, 36 deletions
diff --git a/guix.scm b/guix.scm
index d9026c2..1c68b70 100644
--- a/guix.scm
+++ b/guix.scm
@@ -18,48 +18,51 @@
 ;;; along with Skribilo.  If not, see <http://www.gnu.org/licenses/>.
 
 (use-modules (gnu) (guix)
+             (guix profiles)
              (guix build-system gnu)
              ((guix git-download) #:select (git-predicate))
-             (guix licenses))
+             (guix licenses)
+             (srfi srfi-1))
 
 (define S specification->package)
 
-(package
-  (name "skribilo")
-  (version "0.0-git")
-  (source (local-file "." "skribilo-checkout"
-                      #:recursive? #t
-                      #:select?
-                      (git-predicate (current-source-directory))))
-  (build-system gnu-build-system)
-  (arguments
-   '(#:phases (modify-phases %standard-phases
-                (add-after 'unpack 'make-po-files-writable
-                  (lambda _
-                    (for-each make-file-writable (find-files "po"))
-                    #t)))))
-  (native-inputs
-   `(("pkg-config" ,(S "pkg-config"))
-     ("autoconf" ,(S "autoconf"))
-     ("automake" ,(S "automake"))
-     ("gettext" ,(S "gettext"))))
-  (inputs
-   `(("guile" ,(S "guile"))
-     ("imagemagick" ,(S "imagemagick"))           ;'convert'
-     ("ghostscript" ,(S "ghostscript"))           ;'ps2pdf'
-     ("ploticus" ,(S "ploticus"))
-     ("lout" ,(S "lout"))))
+(define skribilo
+  (package
+    (name "skribilo")
+    (version "0.0-git")
+    (source (local-file "." "skribilo-checkout"
+                        #:recursive? #t
+                        #:select?
+                        (git-predicate (current-source-directory))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'make-po-files-writable
+                    (lambda _
+                      (for-each make-file-writable (find-files "po"))
+                      #t)))))
+    (native-inputs
+     `(("pkg-config" ,(S "pkg-config"))
+       ("autoconf" ,(S "autoconf"))
+       ("automake" ,(S "automake"))
+       ("gettext" ,(S "gettext"))))
+    (inputs
+     `(("guile" ,(S "guile"))
+       ("imagemagick" ,(S "imagemagick"))         ;'convert'
+       ("ghostscript" ,(S "ghostscript"))         ;'ps2pdf'
+       ("ploticus" ,(S "ploticus"))
+       ("lout" ,(S "lout"))))
 
-  ;; The 'skribilo' command needs them, and for people using Skribilo as a
-  ;; library, these inputs are needed as well.
-  (propagated-inputs
-   `(("guile-reader" ,(S "guile-reader"))
-     ("guile-lib" ,(S "guile-lib"))))
+    ;; The 'skribilo' command needs them, and for people using Skribilo as a
+    ;; library, these inputs are needed as well.
+    (propagated-inputs
+     `(("guile-reader" ,(S "guile-reader"))
+       ("guile-lib" ,(S "guile-lib"))))
 
-  (home-page "https://www.nongnu.org/skribilo/")
-  (synopsis "Document production tool written in Guile Scheme")
-  (description
-   "Skribilo is a free document production tool that takes a structured
+    (home-page "https://www.nongnu.org/skribilo/")
+    (synopsis "Document production tool written in Guile Scheme")
+    (description
+     "Skribilo is a free document production tool that takes a structured
 document representation as its input and renders that document in a variety of
 output formats: HTML and Info for on-line browsing, and Lout and LaTeX for
 high-quality hard copies.
@@ -71,4 +74,36 @@ that borrows from Emacs' outline mode and from other conventions used in
 emails, Usenet and text.
 
 Lastly, Skribilo provides Guile Scheme APIs.")
-  (license gpl3+))
+    (license gpl3+)))
+
+(define with-guile-2.0
+  (package-input-rewriting/spec `(("guile" . ,(const (S "guile@2.0"))))
+                                #:deep? #f))
+
+(define with-guile-2.2
+  (package-input-rewriting/spec `(("guile" . ,(const (S "guile@2.2"))))
+                                #:deep? #f))
+
+(define skribilo/guile-2.2
+  (package
+    (inherit (with-guile-2.2 skribilo))
+    (name "guile2.2-skribilo")
+    ;; Arrange to not trigger a rebuild of Automake & co.
+    (inputs `(("guile" ,(S "guile@2.2"))
+              ,@(alist-delete "guile" (package-inputs skribilo))))
+    (native-inputs (package-native-inputs skribilo))))
+
+(define skribilo/guile-2.0
+  (package
+    (inherit (with-guile-2.0 skribilo))
+    (name "guile2.0-skribilo")
+    (inputs `(("guile" ,(S "guile@2.0"))
+              ,@(alist-delete "guile" (package-inputs skribilo))))
+    (native-inputs (package-native-inputs skribilo))))
+
+(packages->manifest (list skribilo/guile-2.0
+                          skribilo/guile-2.2
+                          skribilo))
+
+;; Comment the following line to build all the variants.
+skribilo