summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès2020-08-02 16:02:22 +0200
committerLudovic Courtès2020-08-02 16:02:22 +0200
commite628b3623126335d62ab750cd0cd6d35b4570106 (patch)
tree43513812748f99a03e0551501a2b18b6fe043eb2
parentc9dc5ba5fcb9cef8f4a7bb87211e8e90bd87a9fc (diff)
downloadskribilo-e628b3623126335d62ab750cd0cd6d35b4570106.tar.gz
skribilo-e628b3623126335d62ab750cd0cd6d35b4570106.tar.lz
skribilo-e628b3623126335d62ab750cd0cd6d35b4570106.zip
build: Add Guix package definition.
* release.nix: Remove. * guix.scm: New file. * Makefile.am (EXTRA_DIST): Add it.
-rw-r--r--Makefile.am2
-rw-r--r--guix.scm74
-rw-r--r--release.nix88
3 files changed, 75 insertions, 89 deletions
diff --git a/Makefile.am b/Makefile.am
index 592a8b7..fdd1222 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,7 @@ SUBDIRS = po src doc emacs tests
ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = TODO THANKS README.Skribe ChangeLog.Skribe
+EXTRA_DIST = TODO THANKS README.Skribe ChangeLog.Skribe guix.scm
gen-ChangeLog:
if ! test -d "$(top_srcdir)/.git"; then \
diff --git a/guix.scm b/guix.scm
new file mode 100644
index 0000000..d9026c2
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1,74 @@
+;;; guix.scm -- Build recipe for GNU Guix.
+;;;
+;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of Skribilo.
+;;;
+;;; Skribilo 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.
+;;;
+;;; Skribilo 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 Skribilo. If not, see <http://www.gnu.org/licenses/>.
+
+(use-modules (gnu) (guix)
+ (guix build-system gnu)
+ ((guix git-download) #:select (git-predicate))
+ (guix licenses))
+
+(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"))))
+
+ ;; 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
+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.
+
+The input document can use Skribilo's markup language to provide information
+about the document's structure, which is similar to HTML or LaTeX and does not
+require expertise. Alternatively, it can use a simpler, “markup-less” format
+that borrows from Emacs' outline mode and from other conventions used in
+emails, Usenet and text.
+
+Lastly, Skribilo provides Guile Scheme APIs.")
+ (license gpl3+))
diff --git a/release.nix b/release.nix
deleted file mode 100644
index 6352cad..0000000
--- a/release.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Nix build recipe for Skribilo.
- Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
-
- This file is part of Skribilo.
-
- Skribilo 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.
-
- Skribilo 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 Skribilo. If not, see <http://www.gnu.org/licenses/>. */
-
-let
- buildOutOfSourceTree = true;
-
- jobs = {
- tarball =
- let
- pkgs = import <nixpkgs> {};
- greader = (import <guile-reader/release.nix>).build {};
- in
- pkgs.releaseTools.sourceTarball {
- name = "skribilo-tarball";
- src = <skribilo>;
- buildNativeInputs = [ pkgs.git ]; # for `git-version-gen'
- buildInputs = [ greader ]
- ++ (with pkgs; [ gettext texinfo guile guile_lib imagemagick ]);
- };
-
- build =
- { system ? builtins.currentSystem }:
-
- let
- pkgs = import <nixpkgs> { inherit system; };
- greader = (import <guile-reader/release.nix>).build {
- inherit system;
- };
- in
- pkgs.releaseTools.nixBuild {
- name = "skribilo";
- src = jobs.tarball;
- buildInputs = [ greader ]
- ++ (with pkgs; [ guile guile_lib imagemagick ploticus lout ]);
- inherit buildOutOfSourceTree;
- };
-
- build_without_lout =
- { system ? builtins.currentSystem }:
-
- let
- pkgs = import <nixpkgs> { inherit system; };
- greader = (import <guile-reader/release.nix>).build {
- inherit system;
- };
- in
- pkgs.releaseTools.nixBuild {
- name = "skribilo-without-lout";
- src = jobs.tarball;
- buildInputs = [ greader ]
- ++ (with pkgs; [ guile guile_lib imagemagick ploticus ]);
- inherit buildOutOfSourceTree;
- };
-
- build_guile18 =
- { system ? builtins.currentSystem }:
-
- let
- pkgs = import <nixpkgs> { inherit system; };
- greader = (import <guile-reader/release.nix>).build_guile18 {
- inherit system;
- };
- in
- pkgs.releaseTools.nixBuild {
- name = "skribilo-guile1.8";
- src = jobs.tarball;
- buildInputs = [ greader ]
- ++ (with pkgs; [ guile_1_8 imagemagick ploticus lout ]);
- inherit buildOutOfSourceTree;
- };
- };
-in
- jobs