summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-01-04 15:00:32 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-01-11 10:18:53 +0100
commit2a5ed25c412e162505b2b371d00987fd158a91d4 (patch)
tree45f6f9159e48c518ac8260732266735754ebf1e8
parentf5ef9ffd4834cbcfec9dd6b377938b0d7778426f (diff)
downloadguix-2a5ed25c412e162505b2b371d00987fd158a91d4.tar.gz
gnu: texlive-bin: Fix directory traversal.
Fixes <https://bugs.gnu.org/52979>.

* gnu/packages/tex.scm (texlive-bin)[arguments]: Add build phase
'patch-directory-traversal.
-rw-r--r--gnu/packages/tex.scm9
1 files changed, 9 insertions, 0 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index b0e30e3878..7f1aedaa19 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -426,6 +426,15 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
 
                (with-fluids ((%default-port-encoding "ISO-8859-1"))
                  (substitute-commands iso-8859-1-encoded-scripts)))))
+         ;; When ST_NLINK_TRICK is set, kpathsea attempts to avoid work when
+         ;; searching files by assuming that a directory with exactly two
+         ;; links has no subdirectories.  This assumption does not hold in our
+         ;; case, so some directories with symlinked subdirectories would not
+         ;; be traversed.
+         (add-after 'patch-scripts 'patch-directory-traversal
+           (lambda _
+             (substitute* "texk/kpathsea/config.h"
+               (("#define ST_NLINK_TRICK") ""))))
          (add-after 'check 'customize-texmf.cnf
            ;; The default texmf.cnf is provided by this package, texlive-bin.
            ;; Every variable of interest is set relatively to the GUIX_TEXMF