* gnu/packages/tex.scm (texlive-psnfss)[outputs]: Add "doc".
[arguments]<phases>: Add "chdir-back", "clean-installed-files" and
"move-doc-files" phases to ensure files are correctly arranged in package's
outputs, matching installation instructions in README.
---
gnu/packages/tex.scm | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
Toggle diff (61 lines)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index ebb7f86552..a81d326b6d 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
+;;; Copyright © 2022 Simon South <simon@simonsouth.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4089,6 +4090,7 @@ (define-public texlive-psnfss
"11f14dzhwsy4pli21acccip43d36nf3pac33ihjffnps1i2mhqkd"))))
(package
(inherit template)
+ (outputs '("out" "doc"))
(arguments
(substitute-keyword-arguments (package-arguments template)
((#:tex-directory _ #t)
@@ -4097,7 +4099,37 @@ (define-public texlive-psnfss
`(modify-phases ,phases
(add-after 'unpack 'chdir
(lambda _
- (chdir "source/latex/psnfss") #t))))))
+ (chdir "source/latex/psnfss") #t))
+ (add-after 'install 'chdir-back
+ (lambda _
+ (chdir "../../..") #t))
+ (add-after 'chdir-back 'clean-installed-files
+ (lambda _
+ ;; Remove the generated .sty files from the build area as
+ ;; these were already copied to the default output in the
+ ;; "install" phase.
+ (delete-file-recursively "source/latex/psnfss/build")
+ #t))
+ (add-after 'clean-installed-files 'move-doc-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc (assoc-ref outputs "doc"))
+ (doc-root (string-append doc "/share/texmf-dist"))
+ (doc-path "doc/latex/psnfss")
+ (source-path "source/latex/psnfss"))
+ ;; Move the PDF documentation to the "doc" output.
+ (let* ((file-name "psnfss2e.pdf")
+ (source (string-append doc-path "/" file-name))
+ (target-dir (string-append doc-root "/" doc-path)))
+ (mkdir-p target-dir)
+ (copy-file source
+ (string-append target-dir "/" file-name))
+ (delete-file source))
+
+ ;; Keep the remaining files together with the package's
+ ;; source, as per the installation instructions.
+ (copy-recursively doc-path source-path)
+ (delete-file-recursively "doc"))
+ #t))))))
(native-inputs
(list texlive-cm))
(home-page "https://www.ctan.org/pkg/psnfss")
--
2.34.0