[Nix-dev] Re: [Nix-commits] SVN commit: trace - 11216 - raskin - in nixpkgs/trunk/pkgs/misc/tex: . texlive

Eelco Dolstra e.dolstra at tudelft.nl
Thu Mar 20 11:45:30 CET 2008


Hi,

Michael Raskin wrote:

> Added:
>    nixpkgs/trunk/pkgs/misc/tex/texlive/
>    nixpkgs/trunk/pkgs/misc/tex/texlive/default.nix
>    nixpkgs/trunk/pkgs/misc/tex/texlive/setup-hook.sh
> 
> Log:
> Added TeXLive; still some troubles with texmf; just not to break nix-env -qas *

Cool :-)  We can't stay on teTeX forever...

However, I have some problems with the Nix expression 
(https://svn.cs.uu.nl:12443/viewvc/trace/nixpkgs/trunk/pkgs/misc/tex/texlive/default.nix?revision=11216&view=markup&pathrev=11216):

- It is not indented in the proper way (and it uses tabs...).  For instance, the 
big "let localDefs" is indented, which it shouldn't be, and readability would be 
improved by separating the let-block from the surrounding code with empty lines.

- There is one gigantic doInstall phase.  Why not use the generic builder in the 
right way?  (Or is that because of texmfSrc?)

- I don't understand all the strange "null" values, e.g. in "with builderDefs 
{src="";} null;" (and what does src="" do anyway?) and in "let localDefs = 
builderDefs (rec { ... }) args null; /* null is a terminator for sumArgs */".

- What does FullDepEntry do?

- Why is configureFlags set to [], but then configure is called with a long of 
arguments?

- Why does "meta" have "src" and "srcs" attributes?

- For consistency, don't put a "." at the end of the description, and write it 
on one line, i.e.

     meta = {
       description = "A TeX distribution";
     };

   (BTW, "description" is intended for one-line descriptions on the Nixpkgs 
release page, but maybe we could also use an attribute for longer descriptions.)

- Is the line

     NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${stdenv.glibc}/include"

   really needed?  The Glibc includes should be found by default, and don't 
exist anyway on non-Linux platforms.

To reflect on the whole builderDefs / FullDepEntry / textClosure / null 
arguments style: it looks to me significantly more complicated than the old 
style of writing Nix expressions, compare e.g. the TeXLive expression to the 
teTeX expression 
(https://svn.cs.uu.nl:12443/repos/trace/nixpkgs/trunk/pkgs/misc/tex/tetex/default.nix). 
  There is a lot of duplicated code between expressions written in the style, 
which suggests that some abstraction is in order: if you find yourself writing 
(or cutting&pasting) the same code over and over, then it's time to put the 
commonality in a function...

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/



More information about the nix-dev mailing list