Re: More robust substitute*

2013-02-03 Thread Ludovic Courtès
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.



Re: More robust substitute*

2013-02-03 Thread Andreas Enge
Am Sonntag, 3. Februar 2013 schrieb Ludovic Courtès:
 Ah right, the ‘patch-shebangs’ phase just looks at files in ‘bin’ and
 ‘sbin’ (see gnu-build-system.scm).

Indeed, I am unpacking the additional tarballs and using patch-source-
shebangs on them, so your suggestion was really useful.

 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.

See my other message - it is actually all done!

Andreas