texlive: 2024-20241027 -> 2024-final (#390498)

This commit is contained in:
Vincenzo Mantova 2025-03-24 06:31:21 +00:00 committed by GitHub
parent 52e7332fb0
commit 43d524e00e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 3218 additions and 2497 deletions

View file

@ -438,6 +438,9 @@ rec {
let
# TODO known broken binaries
broken = [
# do not know how to test without a valid build.lua
"ppmcheckpdf"
# *.inc files in source container rather than run
"texaccents"
@ -660,6 +663,8 @@ rec {
"allcm"
"allec"
"chkweb"
"explcheck"
"extractbb"
"fontinst"
"ht*"
"installfont-tl"

View file

@ -251,6 +251,16 @@ rec {
inherit (common) binToOutput src prePatch;
patches = [
(fetchpatch {
# do not create extractbb -> xdvipdfmx link
name = "extractbb-separate-package.patch";
url = "https://github.com/TeX-Live/texlive-source/commit/e48aafd2889281e5e9082cf2e4815a906b9a68ec.patch";
hash = "sha256-Rh0PJeUgKUfmgZ+WXnTteM5A0vXPEajKzZBU7AoE7Vs";
excludes = [ "texk/dvipdfm-x/ChangeLog" ];
})
];
outputs = [
"out"
"dev"
@ -694,11 +704,14 @@ rec {
# so that top level updates do not break texlive
src = fetchurl {
url = "mirror://sourceforge/asymptote/${finalAttrs.version}/asymptote-${finalAttrs.version}.src.tgz";
hash = "sha256-nZtcb6fg+848HlT+sl4tUdKMT+d5jyTHbNyugpGo6mY=";
hash = "sha256-egUACsP2vwYx2uvSCZ8H/jLU9f17Siz8gFWwCNSXsIQ=";
};
texContainer = texlive.pkgs.asymptote.tex;
texdocContainer = texlive.pkgs.asymptote.texdoc;
# build issue with asymptote 2.95 has been fixed
postConfigure = "";
}
);

View file

@ -5,7 +5,7 @@
{ lib
#, stdenv
, gcc12Stdenv
, fetchurl, runCommand, writeShellScript, writeText, buildEnv
, fetchpatch, fetchurl, runCommand, writeShellScript, writeText, buildEnv
, callPackage, ghostscript_headless, harfbuzz
, makeWrapper, installShellFiles
, python3, ruby, perl, tk, jdk, bash, snobol4
@ -34,7 +34,7 @@ let
overriddenTlpdb = let
overrides = import ./tlpdb-overrides.nix {
inherit
stdenv lib bin tlpdb tlpdbxz tl
stdenv lib fetchpatch bin tlpdb tlpdbxz tl
installShellFiles
coreutils findutils gawk getopt ghostscript_headless gnugrep
gnumake gnupg gnused gzip html-tidy ncurses perl python3 ruby zip;
@ -44,12 +44,12 @@ let
version = {
# day of the snapshot being taken
year = "2024";
month = "10";
day = "27";
month = "03";
day = "09";
# TeX Live version
texliveYear = 2024;
# final (historic) release or snapshot
final = false;
final = true;
};
# The tarballs on CTAN mirrors for the current release are constantly
@ -80,7 +80,7 @@ let
# use last mirror for daily snapshots as texlive.tlpdb.xz changes every day
# TODO make this less hacky
(if version.final then mirrors else [ (lib.last mirrors) ]);
hash = "sha256-jB9FXLpmqYluxdxGl67C50cx9dfN2S8LQwOow4OezcQ=";
hash = "sha256-YLn4+Ik9WR0iDS9Pjdo/aGyqFl7+eKoMzI3sgNSHmao=";
};
tlpdbNix = runCommand "tlpdb.nix" {
@ -159,15 +159,15 @@ let
# these license lists should be the sorted union of the licenses of the packages the schemes contain.
# The correctness of this collation is tested by tests.texlive.licenses
licenses = with lib.licenses; {
scheme-basic = [ free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-bookpub = [ artistic2 asl20 bsd3 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl12 lppl13c mit ofl publicDomain ];
scheme-basic = [ cc-by-sa-40 free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-bookpub = [ artistic2 asl20 bsd3 cc-by-sa-40 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl12 lppl13c mit ofl publicDomain ];
scheme-context = [ bsd2 bsd3 cc-by-sa-40 eupl12 free gfl gfsl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl13c mit ofl publicDomain x11 ];
scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-20 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gfsl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gfsl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gfsl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13c mit ofl publicDomain x11 ];
scheme-infraonly = [ gpl2Plus lgpl21 ];
scheme-medium = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-minimal = [ free gpl1Only gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-minimal = [ cc-by-sa-40 free gpl1Only gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13c mit ofl publicDomain x11 ];
scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 eupl12 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
};

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,6 @@
{
stdenv,
fetchpatch,
lib,
tlpdb,
bin,
@ -77,6 +78,13 @@ lib.recursiveUpdate orig rec {
texlogsieve.extraBuildInputs = [ bin.luatex ];
#### perl packages
bundledoc.extraBuildInputs = [
(perl.withPackages (
ps: with ps; [
StringShellQuote
]
))
];
crossrefware.extraBuildInputs = [
(perl.withPackages (
ps: with ps; [
@ -248,6 +256,12 @@ lib.recursiveUpdate orig rec {
texmfstart = tl.context-legacy.tex + "/scripts/context/ruby/texmfstart.rb";
};
dvipdfmx.binlinks = {
# even though 'ebb' was removed from the Makefile, this symlink is still
# part of the binary container of dvipdfmx
ebb = "xdvipdfmx";
};
epstopdf.binlinks.repstopdf = "epstopdf";
pdfcrop.binlinks.rpdfcrop = "pdfcrop";
@ -417,6 +431,22 @@ lib.recursiveUpdate orig rec {
sed -Ei 's/import sre/import re/; s/file\(/open(/g; s/\t/ /g; s/print +(.*)$/print(\1)/g' "$out"/bin/ebong
'';
# readd functions moved to 'tools.pm' not shipped to CTAN
eolang.postUnpack =
let
patch = fetchpatch {
name = "eolang-without-tools-pm.patch";
url = "https://github.com/objectionary/eolang.sty/commit/2c3bf97dd85e1748b2028ffa056a75c0d9432f88.patch";
includes = [ "eolang.pl" ];
hash = "sha256-ZQtGjqzfhX5foRWuiWQaomN8nOOEj394HdCDrb2sdzA=";
};
in
''
if [[ -d "$out"/scripts/eolang ]] ; then
patch -d "$out/scripts/eolang" -i "${patch}"
fi
'';
# find files in script directory, not binary directory
# add runtime dependencies to PATH
epspdf.postFixup = ''
@ -424,6 +454,17 @@ lib.recursiveUpdate orig rec {
substituteInPlace "$out"/bin/epspdftk --replace-fail '[info script]' "\"$scriptsFolder/epspdftk.tcl\""
'';
# use correct path to xdvipdfmx
extractbb.extraBuildInputs = [ bin.core.dvipdfmx ];
extractbb.postUnpack = ''
if [[ -f "$out"/scripts/extractbb/extractbb-wrapper.lua ]] ; then
sed -i 's!local target_path = interpreter_dir .. "/" .. TARGET_PATH_NAME .. target_ext!local target_path = os.getenv("NIX_TEXLIVE_XDVIPDFMX")!' "$out"/scripts/extractbb/extractbb-wrapper.lua
fi
'';
extractbb.postFixup = ''
sed -i "2ios.setenv('NIX_TEXLIVE_XDVIPDFMX','$(PATH="$HOST_PATH" command -v xdvipdfmx)')" "$out"/bin/extractbb
'';
# find files in script directory, not in binary directory
latexindent.postFixup = ''
substituteInPlace "$out"/bin/latexindent --replace-fail 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
@ -498,9 +539,6 @@ lib.recursiveUpdate orig rec {
!(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV
) orig.luajittex.binfiles;
# osda is unfree. Hence, we can't include it by default
collection-publishers.deps = builtins.filter (dep: dep != "osda") orig.collection-publishers.deps;
texdoc = {
extraRevision = "-tlpdb${toString tlpdbVersion.revision}";
extraVersion = "-tlpdb-${toString tlpdbVersion.revision}";
@ -528,11 +566,6 @@ lib.recursiveUpdate orig rec {
postFixup = ''
TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \
texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc
substituteInPlace "$TMPDIR"/_texdoc \
--replace-fail 'compdef __texdoc texdoc' '#compdef texdoc' \
--replace-fail '$(kpsewhich -var-value TEXMFROOT)/tlpkg/texlive.tlpdb' '$(kpsewhich Data.tlpdb.lua)' \
--replace-fail '/^name[^.]*$/ {print $2}' '/^ \["[^"]*"\] = {$/ { print substr($1,3,length($1)-4) }'
echo '__texdoc' >> "$TMPDIR"/_texdoc
installShellCompletion --zsh "$TMPDIR"/_texdoc
'';
};

File diff suppressed because it is too large Load diff