aboutsummaryrefslogtreecommitdiff
path: root/.guix
diff options
context:
space:
mode:
authorArun Isaac2024-01-12 01:33:11 +0000
committerArun Isaac2024-01-12 01:33:11 +0000
commitb8f13f2a045d89a4053aab98e961c577eb091e52 (patch)
tree05ad95afc1fd6123ce67b8154978a73ec8543b88 /.guix
parent0d874b45d0834aefc7edf02eb7c916ae6ab197b3 (diff)
downloadskribilo-b8f13f2a045d89a4053aab98e961c577eb091e52.tar.gz
skribilo-b8f13f2a045d89a4053aab98e961c577eb091e52.tar.lz
skribilo-b8f13f2a045d89a4053aab98e961c577eb091e52.zip
guix: Add G-expression computed-file to build website.HEADmaster
* .guix/skribilo-package.scm: Import (guix profiles) and %guile-build-system-modules from (guix build-system guile). (skribilo-website-gexp, skribilo-website): New variables.
Diffstat (limited to '.guix')
-rw-r--r--.guix/skribilo-package.scm67
1 files changed, 66 insertions, 1 deletions
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 <ludo@gnu.org>
-;;; Copyright © 2023 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2023–2024 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; 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