From e628b3623126335d62ab750cd0cd6d35b4570106 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 2 Aug 2020 16:02:22 +0200 Subject: build: Add Guix package definition. * release.nix: Remove. * guix.scm: New file. * Makefile.am (EXTRA_DIST): Add it. --- Makefile.am | 2 +- guix.scm | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++ release.nix | 88 ------------------------------------------------------------- 3 files changed, 75 insertions(+), 89 deletions(-) create mode 100644 guix.scm delete mode 100644 release.nix 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 +;;; +;;; 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 . + +(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 - - 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 . */ - -let - buildOutOfSourceTree = true; - - jobs = { - tarball = - let - pkgs = import {}; - greader = (import ).build {}; - in - pkgs.releaseTools.sourceTarball { - name = "skribilo-tarball"; - src = ; - buildNativeInputs = [ pkgs.git ]; # for `git-version-gen' - buildInputs = [ greader ] - ++ (with pkgs; [ gettext texinfo guile guile_lib imagemagick ]); - }; - - build = - { system ? builtins.currentSystem }: - - let - pkgs = import { inherit system; }; - greader = (import ).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 { inherit system; }; - greader = (import ).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 { inherit system; }; - greader = (import ).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 -- cgit v1.2.3