Hello!
Andreas Enge andr...@enge.fr skribis:
Am Samstag, 2. Februar 2013 schrieb Ludovic Courtès:
Andreas Enge andr...@enge.fr skribis:
in texlive, there are lots of scripts to be installed in share; thus,
the patch-shebang phase does not catch them.
Do you know why it doesn’t catch them? The ‘patch-source-shebangs’
phase patches all the files found under “.”, recursively.
I am not speaking about patch-source-shebangs, but patch-shebangs.
Ah right, the ‘patch-shebangs’ phase just looks at files in ‘bin’ and
‘sbin’ (see gnu-build-system.scm).
Perhaps you can add a phase somewhere that does along the lines of:
(lambda* (#:key outputs #:allow-other-keys)
(for-each (match-lambda
((_ . dir)
(for-each patch-shebang
(find-files (string-append dir /share)
.*
outputs)
#t)
In any case, I have a working texlive! It contains over 10 files (that
are symlinked from the user profile...) and takes over 3GB, but it works!
Woow, congratulations! :-)
I’m not sure if that would help here, but do you know about
“multiple-output derivations”? It’s used for Libtool for instance: the
‘outputs’ field there means that binaries go into one directory, and the
rest goes into another directory (you see them when typing ‘guix-build
libtool’).
So if there are several kinds of files, you may want to separate them in
different outputs.
Actually, I think one does not need to symlink the files from the user
profile; tex has its own way of finding files via the binary kpsewhich
(linked from the user profile), which points directly to the nix store:
$ kpsewhich article.sty
/nix/store/2cc4xyivn5f52gywl5mnz6fi90bj24xh-texlive-2012/share/texmf-
dist/tex/latex/base/article.sty
So maybe by splitting into two or three packages, one could hide the data
in the nix store. I will think about it.
Hmm, intriguing. :-)
Thanks!
Ludo’, coming back from FOSDEM.