diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-11-05 09:32:31 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-11-05 09:32:31 +0100 |
commit | 480416cc0d7e508b652c516af8d7342e3b1e59e3 (patch) | |
tree | d64d990b0d7cc1f80dca687b48563bc71628b55e /nixpkgs/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix | |
parent | 05f40ff2bfe9c68198664c38d65816f677ac7ed4 (diff) | |
parent | fa804edfb7869c9fb230e174182a8a1a7e512c40 (diff) | |
download | nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.tar nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.tar.gz nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.tar.bz2 nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.tar.lz nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.tar.xz nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.tar.zst nixlib-480416cc0d7e508b652c516af8d7342e3b1e59e3.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs into HEAD
Conflicts: nixpkgs/pkgs/servers/pr-tracker/default.nix
Diffstat (limited to 'nixpkgs/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix new file mode 100644 index 000000000000..165e7a22c661 --- /dev/null +++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine-wrapper.nix @@ -0,0 +1,42 @@ +# legacy texlive.combine wrapper +{ lib, toTLPkgList, toTLPkgSets, buildTeXEnv }: +args@{ + pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core" + || pkg.hasManpages or false) +, extraName ? "combined" +, extraVersion ? "" +, ... +}: +let + pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ]; + + # combine a set of TL packages into a single TL meta-package + combinePkgs = pkgList: lib.catAttrs "pkg" ( + let + # a TeX package used to be an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations + # the derivations make up the TeX package and optionally (for backward compatibility) its dependencies + tlPkgToSets = drv: map ({ tlType, version ? "", outputName ? "", ... }@pkg: { + # outputName required to distinguish among bin.core-big outputs + key = "${pkg.pname or pkg.name}.${tlType}-${version}-${outputName}"; + inherit pkg; + }) (drv.pkgs or (toTLPkgList drv)); + pkgListToSets = lib.concatMap tlPkgToSets; in + builtins.genericClosure { + startSet = pkgListToSets pkgList; + operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []); + }); + combined = combinePkgs (lib.attrValues pkgSet); + + # convert to specified outputs + tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; }; + toSpecified = { tlType, ... }@drv: drv // { outputSpecified = true; tlOutputName = tlTypeToOut.${tlType}; }; + all = lib.filter pkgFilter combined ++ lib.filter (pkg: pkg.tlType == "tlpkg") combined; + converted = builtins.map toSpecified all; +in +buildTeXEnv { + __extraName = extraName; + __extraVersion = extraVersion; + requiredTeXPackages = _: converted; + __combine = true; + __fromCombineWrapper = true; +} |