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
texlive: 2016 -> 2017 #30332
texlive: 2016 -> 2017 #30332
Conversation
At some point we need to create a snapshot and serve it somehow. (It seems likely that either our texlive infrastructure or tarballs.nixos.org would need a change to work together well.) Upstream updates continuously, and we don't want that. http://ctan.math.utah.edu/ctan/tex-archive/systems/texlive/tlnet/archive contains files just two days old. |
I almost don't use TeX (anymore). We'd better have diverse test cases from our users, ideally before merging. |
The hashes might break soon, yes, but this is more like proof of concept for now. |
I wanted to test this and checked out the pull request, but I can't get scheme-full to evaluate. Breaks with |
@ciil
|
Trying to install in a nix-shell:
With
Without the texlive package my system evaluates. Some more information:
My |
@ciil Got it. Thank you! |
It evaluates on macOS version of nix, but not on Linux, it seems. edit: It also evaluates with |
|
7078d9a
to
762d908
Compare
b0f4198
to
016dd54
Compare
fmtutil has started to report number of failed formats in its return code. One could regenerate the share/texmf/web2c/fmtutil.cnf to only include available .ini files, but simpler solution is to ignore the return code.
Yeah, I can verify the build of scheme-full on NixOS with nix 1.12. And as long as it builds, everything seems to be in working order so far (at least all of my personal .tex scripts compile [mostly xelatex and pdflatex, some lualatex], but I've not tested more than that; also, I won't come around to try any more than that for at least the next three weeks). As for serving the tex packages: @fpletz, could you possibly mirror a snapshot on nixos.community? |
IPFS? Who said IPFS? Let the bikeshedding commence! Meanwhile, if you are a bitswapper, please consider pinning |
The problem was in builtins.partition call. I've tried to rewrite it with builtins.foldl', but that doesn't help. However replacing it with a pair of builtins.filter calls works. diff --git a/lib/lists.nix b/lib/lists.nix --- a/lib/lists.nix +++ b/lib/lists.nix @@ -242,10 +242,10 @@ rec { => { right = [ 5 3 4 ]; wrong = [ 1 2 ]; } */ partition = builtins.partition or (pred: - foldr (h: t: + builtins.foldl' (t: h: if pred h - then { right = [h] ++ t.right; wrong = t.wrong; } - else { right = t.right; wrong = [h] ++ t.wrong; } + then { right = t.right ++ [h]; wrong = t.wrong; } + else { right = t.right; wrong = t.wrong ++ [h]; } ) { right = []; wrong = []; }); /* Merges two lists of the same size together. If the sizes aren't the same
Is there anything left to do before we can merge this PR? I built it after rebasing it on top of the current master, and all my tex files work (I mainly use scheme-full, and pdflatex/xelatex). |
gebner @vcunat, do you see what remains to be done to have this merged? |
Merging since multiple people have successfully tested this PR, all known issues are fixed, and no further issues were raised in the last week. |
See #32661. I've been relatively out of time lately, not spending any on this PR. |
(those following this PR, please take a look at my comment on the issue @vcunat linked above: #32661 (comment) ) |
Does someone have all the tarballs? I tried to add the IPFS pin and pre-fill with the current versions served upstream, but IPFS seems stuck, so it's likely that some of the texlive packages are currently not downloadable (via nixpkgs). If you have it in IPFS, it should be enough to start the daemon and mine should automatically re-mirror it AFAIK. |
Well, the most common packages are there, on cache.nixos.org also by now, but some packages are unobtainable ATM, which is a bit awkward. /cc @veprbl |
@vcunat I can build |
@vcunat |
Example: https://gateway.ipfs.io/ipfs/QmRLK45EC828vGXv5YDaBsJBj2LjMjjA2ReLVrXsasRzy7/texlive-2017/xmltex.tar.xz (the same if I try using IPFS directly). I could get |
/cc #30332. Thanks to @vprbl for the http mirror.
Now I can confirm what @vcunat sees. The gateways are stuck, I had two pins made. One on https://www.eternum.io and one on another less reliable host. I wasn't able to download |
OK, managed to pin it now, but my overall experience with IPFS is rather disappointing, in regard to stability and performance (and https://github.com/NixIPFS confirms that). I hope you don't mind that I put your mirror first and gateway.ipfs.io as fallback. |
@vcunat There is no problem with using my mirror, but this undermines our ability to easily bump texlive packages which should have been possible with IPFS. |
Ah, right, fast updates are undermined by that, due to the paths not changing names. I didn't know you intended to update more often than yearly. |
I didn't have plans for any updates, but I remember seeing issues created about that. Even with yearly bumps, a contributor will need to publish the updated tarballs, so they would have to either negotiate with the existing mirror or set up their own mirror. With IPFS, any nixpkgs contributor can prepare a bump entirely on their own without making a commitment to hosting it. I also got a response from guys at Eternum, they say that the file didn't get pinned on their end. From what I understood, the issue is with IPFS API that doesn't allow to get the status of the pin. If there is any flaky IPFS interaction (original node inaccessible), the pinning will fail and there will be no automatic retry. I guess, their service is not perfect because of that. |
As discussed, we put all sources on tarballs.nixos.org periodically, but that way currently interacts badly with the way fixed-output derivations are done in TeX Live, apparently, and I can't immediately see a simple way around that without losing some guarantees. Maybe it would be best to just let Hydra build |
It looks like this pull request broke the stable branch of nix.
It looks like the master branch's docs still build, though. Anyone seen this error before or know enough about latex to have a hunch how to patch a fix for it in the stable nix manual? |
Looks like maybe we should patch dblatex? Or update? EDIT: This is already done, see below! 👍 |
Well that explains why it doesn't fail in master :D For some reason it didn't occur to me that dblatex itself was broken; I just assumed the very old stable manual needed some formatting updates for the 2017 version. Thanks for the patch @veprbl! |
Motivation for this change
Fix #27086
Things done
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)Not much testing was done on this.scheme-small
is not working, butscheme-full
should work.cc @vcunat
TODO
scheme-full
on Linux with nix 1.11.xEXTRA