-
-
Notifications
You must be signed in to change notification settings - Fork 14.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
buildEnv (breaking texlive): allow very big lists to be passed #9757
Comments
For better discoverability of this issue: |
For those who have |
I was browsing the Nix manual and found passAsFile, this seems like an ideal case for it. |
@vcunat I've went ahead and implemented passing |
I don't know perl either. For the sed problem, I think this should be good: diff --git a/pkgs/tools/typesetting/tex/texlive-new/combine.nix b/pkgs/tools/typesetting/tex/texlive-new/combine.nix
index 2c9119b..e69c6ec 100644
--- a/pkgs/tools/typesetting/tex/texlive-new/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive-new/combine.nix
@@ -82,21 +82,21 @@ in buildEnv {
# updmap.cfg seems like not needing changes
# now filter hyphenation patterns, in a hacky way ATM
- ''
+ (let script =
+ writeText "hyphens.sed" (
+ lib.concatMapStrings (pkg: "/^\% from ${pkg.pname}/,/^\%/p;\n") pkgList.splitBin.wrong
+ + "1,/^\% from/p;" );
+ in ''
(
- local script='${
- lib.concatMapStrings (pkg: "/^\% from ${pkg.pname}/,/^\%/p;\n")
- pkgList.splitBin.wrong
- } 1,/^\% from/p;'
cd ./share/texmf/tex/generic/config/
for fname in language.dat language.def; do
[ -e $fname ] || continue;
cnfOrig="$(realpath ./$fname)"
rm ./$fname
- cat "$cnfOrig" | sed -n "$script" > ./$fname
+ cat "$cnfOrig" | sed -n -f '${script}' > ./$fname
done
)
- '' +
+ '') +
# function to wrap created executables with required env vars
''
diff --git a/pkgs/tools/typesetting/tex/texlive-new/default.nix b/pkgs/tools/typesetting/tex/texlive-new/default.nix
index c8b2a41..a084c97 100644
--- a/pkgs/tools/typesetting/tex/texlive-new/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive-new/default.nix
@@ -24,7 +24,7 @@
* in case of any bugs or feature requests, file a github issue and /cc @vcunat
*/
-{ stdenv, lib, fetchurl, runCommand, buildEnv
+{ stdenv, lib, fetchurl, runCommand, writeText, buildEnv
, callPackage, ghostscriptX, harfbuzz, poppler_min
, makeWrapper, perl, python, ruby
, useFixedHashes ? true
@@ -48,7 +48,8 @@ let
# function for creating a working environment from a set of TL packages
combine = import ./combine.nix {
- inherit bin combinePkgs buildEnv fastUnique lib makeWrapper perl stdenv python ruby;
+ inherit bin combinePkgs buildEnv fastUnique lib makeWrapper writeText
+ perl stdenv python ruby;
};
# the set of TeX Live packages, collections, and schemes; using upstream naming |
Good news, with the patch I've been able to build |
@vcunat: While we wait, maybe we can merge the |
All should be working fine in staging now. |
See #287 (comment). I imagine this as a size check in
buildEnv
; when input list is too large, it's passed via file.The text was updated successfully, but these errors were encountered: