From b8f13f2a045d89a4053aab98e961c577eb091e52 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 12 Jan 2024 01:33:11 +0000 Subject: guix: Add G-expression computed-file to build website. * .guix/skribilo-package.scm: Import (guix profiles) and %guile-build-system-modules from (guix build-system guile). (skribilo-website-gexp, skribilo-website): New variables. --- .guix/skribilo-package.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/.guix/skribilo-package.scm b/.guix/skribilo-package.scm index 839ad65..15a261e 100644 --- a/.guix/skribilo-package.scm +++ b/.guix/skribilo-package.scm @@ -1,7 +1,7 @@ ;;; guix.scm -- Build recipe for GNU Guix. ;;; ;;; Copyright © 2020 Ludovic Courtès -;;; Copyright © 2023 Arun Isaac +;;; Copyright © 2023–2024 Arun Isaac ;;; ;;; This file is part of Skribilo. ;;; @@ -23,9 +23,11 @@ #: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 build-system guile) #:select (%guile-build-system-modules)) #:use-module (guix gexp) #:use-module ((guix git-download) #:select (git-predicate)) #:use-module (guix packages) + #:use-module (guix profiles) #:use-module (guix utils)) (define S specification->package) @@ -74,4 +76,67 @@ (native-inputs (package-native-inputs skribilo)))) +(define skribilo-website-gexp + (let ((development-profile + (profile + (content (package->development-manifest skribilo))))) + (with-imported-modules %guile-build-system-modules + #~(begin + (use-modules (guix build guile-build-system) + (guix build utils)) + + (define (patch-shebangs) + (for-each patch-shebang + (find-files "." + (lambda (file stat) + (eq? 'regular (stat:type stat)))))) + + (copy-recursively #$(package-source skribilo) + (getcwd)) + (set-path-environment-variable + "PATH" (list "/bin") (list #$development-profile)) + (set-path-environment-variable + "LIBRARY_PATH" (list "/lib") (list #$development-profile)) + (set-path-environment-variable + "ACLOCAL_PATH" (list "/share/aclocal") (list #$development-profile)) + (set-path-environment-variable + "PKG_CONFIG_PATH" (list "/lib/pkgconfig") (list #$development-profile)) + (set-path-environment-variable + "GUILE_LOAD_PATH" + (list (string-append "/share/guile/site/" + (target-guile-effective-version))) + (list #$development-profile)) + (set-path-environment-variable + "GUILE_LOAD_COMPILED_PATH" + (list (string-append "/lib/guile/" (target-guile-effective-version) "/site-ccache")) + (list #$development-profile)) + (substitute* "doc/user/Makefile.am" + (("skribilo = [^\n]*") + (string-append "skribilo = " #$(file-append skribilo "/bin/skribilo")))) + (patch-shebangs) + (invoke "autoreconf" "--verbose" "--install" "--force") + (patch-shebangs) + (invoke "./configure" "CONFIG_SHELL=sh" "SHELL=sh") + (invoke "make" + "--directory" "doc/user") + (invoke "make" + (string-append "SKRIBILO=" #$skribilo "/bin/skribilo") + "--directory" "web") + ;; Install website. + (for-each (lambda (file) + (install-file file (string-append #$output "/doc"))) + (find-files "doc/user" + (lambda (file stat) + (and (string=? (basename (dirname file)) "user") + (or (string-suffix? ".html" file) + (string-suffix? ".png" file)))))) + (copy-recursively "doc/user/static" + (string-append #$output "/doc/static")) + (install-file "web/index.html" #$output) + (copy-recursively "doc/user/static" + (string-append #$output "/static")))))) + +(define-public skribilo-website + (computed-file "skribilo-website" skribilo-website-gexp)) + skribilo -- cgit v1.2.3