texlive: use versioned tarballs

Announced in [1], versioned tarballs allow to make sure that a
specific version is fetched. This does not guarantee that all previous
versions are retained on the main mirrors.

Logically, we would want to first try to download versioned tarballs
from any mirror and only then try the unversioned ones. But right now
we only have two mirrors and only some of the tarballs are versioned
in texlive-2019, so the order is changed to not hammer the weak
tug.org mirror.

[1] https://tug.org/pipermail/tex-live/2019-September/044086.html
This commit is contained in:
Dmitry Kalinkin 2020-03-12 17:59:23 -04:00
parent 9c4212cb9f
commit 9f44a61f39
No known key found for this signature in database
GPG Key ID: 5157B3EC8B2CA333

@ -89,7 +89,7 @@ let
};
# create a derivation that contains an unpacked upstream TL package
mkPkg = { pname, tlType, version, sha512, postUnpack ? "", stripPrefix ? 1, ... }@args:
mkPkg = { pname, tlType, revision, version, sha512, postUnpack ? "", stripPrefix ? 1, ... }@args:
let
# the basename used by upstream (without ".tar.xz" suffix)
urlName = pname + lib.optionalString (tlType != "run") ".${tlType}";
@ -97,8 +97,12 @@ let
fixedHash = fixedHashes.${tlName} or null; # be graceful about missing hashes
urls = args.urls or (if args ? url then [ args.url ] else
map (up: "${up}/${urlName}.tar.xz") urlPrefixes
);
lib.concatMap
(up: [
"${up}/${urlName}.r${toString revision}.tar.xz"
"${up}/${urlName}.tar.xz" # TODO To be removed for telive 2020
])
urlPrefixes);
# The tarballs on CTAN mirrors for the current release are constantly
# receiving updates, so we can't use those directly. Stable snapshots