Commit fc04385d authored by Vincenzo Mantova's avatar Vincenzo Mantova
Browse files

texlive.bin.core-big: split output according to texlive.tlpdb

parent 06b73a96
Loading
Loading
Loading
Loading
+15 −31
Original line number Diff line number Diff line
@@ -33,7 +33,9 @@ let
    "ps2eps" "ps2pk" "psutils"  "ptex" "seetexk" "synctex" "t1utils" "tex"
    "tex4ht" "texlive-scripts-extra" "texware" "tie" "tpic2pdftex" "ttfutils"
    "uptex" "velthuis" "vlna" "web" "xml2pmx" ];
  binPackages = lib.getAttrs corePackages tlpdb;
  coreBigPackages = [ "metafont" "mflua" "metapost" "luatex" "luahbtex"
    "xetex" ] ++ lib.optional withLuaJIT "luajittex";
  binPackages = lib.getAttrs (corePackages ++ coreBigPackages) tlpdb;

  common = {
    src = fetchurl {
@@ -215,12 +217,15 @@ core = stdenv.mkDerivation rec {
};


inherit (core-big) metafont mflua metapost luatex luahbtex luajittex xetex;
inherit (core-big) metafont mflua metapost luatex luahbtex xetex;
luajittex = core.big.luajittex or null;
core-big = stdenv.mkDerivation { #TODO: upmendex
  pname = "texlive-core-big.bin";
  inherit version;

  inherit (common) src prePatch;
  __structuredAttrs = true;

  inherit (common) binToOutput src prePatch;

  patches = [
    # improves reproducibility of fmt files. This patch has been proposed upstream,
@@ -293,34 +298,13 @@ core-big = stdenv.mkDerivation { #TODO: upmendex

  doCheck = false; # fails

  # now distribute stuff into outputs, roughly as upstream TL
  # (uninteresting stuff remains in $out, typically duplicates from `core`)
  outputs = [
    "out"
    "metafont"
    "mflua"
    "metapost"
    "luatex"
    "luahbtex"
    "luajittex"
    "xetex"
  ];
  postInstall = ''
    for output in $(getAllOutputNames); do
      mkdir -p "''${!output}/bin"
    done

    mv "$out/bin"/{inimf,mf,mf-nowin} "$metafont/bin/"
    mv "$out/bin"/mflua{,-nowin} "$mflua/bin/"
    mv "$out/bin"/{*tomp,mfplain,*mpost} "$metapost/bin/"
    mv "$out/bin"/{luatex,texlua,texluac} "$luatex/bin/"
    mv "$out/bin"/luahbtex "$luahbtex/bin/"
    mv "$out/bin"/xetex "$xetex/bin/"
    cp libs/teckit/teckit_compile "$xetex/bin/"
  '' + lib.optionalString withLuaJIT ''
    mv "$out/bin"/mfluajit{,-nowin} "$mflua/bin/"
    mv "$out/bin"/{luajittex,luajithbtex,texluajit,texluajitc} "$luajittex/bin/"
  '' ;
  outputs = [ "out" ]
    ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) coreBigPackages)
    # some outputs of metapost, omegaware are for ptex/uptex
    ++ [ "ptex" "uptex" ]
    # unavoidable duplicates from core
    ++ [ "ctie" "cweb" "omegaware" "texlive_scripts_extra" "tie" "web" ];
  postInstall = common.moveBins;
};


+3 −1
Original line number Diff line number Diff line
@@ -120,7 +120,9 @@ let
        inherit meta;
        # shebang interpreters and compiled binaries
        buildInputs = let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in
          [ texliveBinaries.${pname} or texliveBinaries.core.${outName} or null ]
          [ texliveBinaries.core.${outName} or null
            texliveBinaries.${pname} or null
            texliveBinaries.core-big.${outName} or null ]
          ++ (args.extraBuildInputs or [ ]) ++ [ bash perl ]
          ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
        nativeBuildInputs = extraNativeBuildInputs;
+3 −14
Original line number Diff line number Diff line
@@ -13,7 +13,9 @@ let
    # so we remove them from binfiles, and add back the ones texlinks purposefully ignore (e.g. mptopdf)
    removeFormatLinks = lib.mapAttrs (_: attrs:
      if (attrs ? formats && attrs ? binfiles)
      then let formatLinks = lib.catAttrs "name" (lib.filter (f: f.name != f.engine) attrs.formats);
      # TLPDB reports erroneously that various metafont binaries like "mf" are format links to engines
      # like "mf-nowin"; core-big provides both binaries and links so we simply skip them here
      then let formatLinks = lib.catAttrs "name" (lib.filter (f: f.name != f.engine && ! lib.hasSuffix "-nowin" f.engine) attrs.formats);
               binNotFormats = lib.subtractLists formatLinks attrs.binfiles;
           in if binNotFormats != [] then attrs // { binfiles = binNotFormats; } else removeAttrs attrs [ "binfiles" ]
      else attrs);
@@ -122,12 +124,6 @@ in lib.recursiveUpdate orig rec {
  epstopdf.binlinks.repstopdf = "epstopdf";
  pdfcrop.binlinks.rpdfcrop = "pdfcrop";

  ptex.binlinks = {
    pdvitomp = bin.metapost + "/bin/pdvitomp";
    pmpost = bin.metapost + "/bin/pmpost";
    r-pmpost = bin.metapost + "/bin/r-pmpost";
  };

  texdef.binlinks = {
    latexdef = "texdef";
  };
@@ -143,13 +139,6 @@ in lib.recursiveUpdate orig rec {
    kpsexpand = "kpsetool";
  };

  # metapost binaries are in bin.metapost instead of bin.core
  uptex.binlinks = {
    r-upmpost = bin.metapost + "/bin/r-upmpost";
    updvitomp = bin.metapost + "/bin/updvitomp";
    upmpost = bin.metapost + "/bin/upmpost";
  };

  #### add PATH dependencies without wrappers
  # TODO deduplicate this code
  a2ping.postFixup = ''