From adc9aa9600e27e68b48fa8d1477b9f448f0e3490 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 10 Jul 2023 23:13:02 +0100 Subject: Make repository a guix channel. * .guix-authorizations, .guix-channel: New files. * guix.scm: Convert to a symlink pointing to .guix/skribilo-package.scm. Move original there. * .guix/skribilo-package.scm: Convert into a module with public packages. Use modify-inputs. --- .guix-authorizations | 6 +++ .guix-channel | 3 ++ .guix/skribilo-package.scm | 77 +++++++++++++++++++++++++++++++ guix.scm | 111 +-------------------------------------------- 4 files changed, 87 insertions(+), 110 deletions(-) create mode 100644 .guix-authorizations create mode 100644 .guix-channel create mode 100644 .guix/skribilo-package.scm mode change 100644 => 120000 guix.scm diff --git a/.guix-authorizations b/.guix-authorizations new file mode 100644 index 0000000..00e39a2 --- /dev/null +++ b/.guix-authorizations @@ -0,0 +1,6 @@ +(authorizations + (version 0) + (("7F73 0343 F2F0 9F3C 77BF 79D3 2E25 EE8B 6180 2BB3" + (name "arunisaac"))) + ("3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5" + (name "civodul"))) diff --git a/.guix-channel b/.guix-channel new file mode 100644 index 0000000..35e181f --- /dev/null +++ b/.guix-channel @@ -0,0 +1,3 @@ +(channel + (version 0) + (directory ".guix")) diff --git a/.guix/skribilo-package.scm b/.guix/skribilo-package.scm new file mode 100644 index 0000000..839ad65 --- /dev/null +++ b/.guix/skribilo-package.scm @@ -0,0 +1,77 @@ +;;; guix.scm -- Build recipe for GNU Guix. +;;; +;;; Copyright © 2020 Ludovic Courtès +;;; Copyright © 2023 Arun Isaac +;;; +;;; 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 . + +(define-module (skribilo-package) + #:use-module (gnu packages) + #:use-module ((gnu packages autotools) #:select (autoconf automake)) + #:use-module ((gnu packages gettext) #:select (gnu-gettext)) + #:use-module ((gnu packages skribilo) #:select (skribilo) #:prefix guix:) + #:use-module (guix gexp) + #:use-module ((guix git-download) #:select (git-predicate)) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define S specification->package) + +(define-public skribilo + (package + (inherit guix:skribilo) + (version (string-append (package-version guix:skribilo) "-git")) + (source (local-file ".." "skribilo-checkout" + #:recursive? #t + #:select? + (or (git-predicate (dirname (current-source-directory))) + (const #t)))) + (native-inputs + (modify-inputs (package-native-inputs guix:skribilo) + (prepend autoconf) + (prepend automake) + (prepend gnu-gettext))))) + +(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-public 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 + (modify-inputs (package-inputs skribilo) + (replace "guile" (S "guile@2.2")))) + (native-inputs + (package-native-inputs skribilo)))) + +(define-public skribilo/guile-2.0 + (package + (inherit (with-guile-2.0 skribilo)) + (name "guile2.0-skribilo") + (inputs + (modify-inputs (package-inputs skribilo) + (replace "guile" (S "guile@2.0")))) + (native-inputs + (package-native-inputs skribilo)))) + +skribilo diff --git a/guix.scm b/guix.scm deleted file mode 100644 index 6771971..0000000 --- a/guix.scm +++ /dev/null @@ -1,110 +0,0 @@ -;;; 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 profiles) - (guix build-system gnu) - ((guix git-download) #:select (git-predicate)) - (guix licenses) - (srfi srfi-1)) - -(define S specification->package) - -(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")) - ("git" ,(S "git-minimal")))) ;for version numbers - (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+))) - -(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 diff --git a/guix.scm b/guix.scm new file mode 120000 index 0000000..d4e3519 --- /dev/null +++ b/guix.scm @@ -0,0 +1 @@ +.guix/skribilo-package.scm \ No newline at end of file -- cgit v1.2.3