mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
texlive: 2024-20241027 -> 2024-final (#390498)
This commit is contained in:
parent
52e7332fb0
commit
43d524e00e
6 changed files with 3218 additions and 2497 deletions
|
@ -438,6 +438,9 @@ rec {
|
||||||
let
|
let
|
||||||
# TODO known broken binaries
|
# TODO known broken binaries
|
||||||
broken = [
|
broken = [
|
||||||
|
# do not know how to test without a valid build.lua
|
||||||
|
"ppmcheckpdf"
|
||||||
|
|
||||||
# *.inc files in source container rather than run
|
# *.inc files in source container rather than run
|
||||||
"texaccents"
|
"texaccents"
|
||||||
|
|
||||||
|
@ -660,6 +663,8 @@ rec {
|
||||||
"allcm"
|
"allcm"
|
||||||
"allec"
|
"allec"
|
||||||
"chkweb"
|
"chkweb"
|
||||||
|
"explcheck"
|
||||||
|
"extractbb"
|
||||||
"fontinst"
|
"fontinst"
|
||||||
"ht*"
|
"ht*"
|
||||||
"installfont-tl"
|
"installfont-tl"
|
||||||
|
|
|
@ -251,6 +251,16 @@ rec {
|
||||||
|
|
||||||
inherit (common) binToOutput src prePatch;
|
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 = [
|
outputs = [
|
||||||
"out"
|
"out"
|
||||||
"dev"
|
"dev"
|
||||||
|
@ -694,11 +704,14 @@ rec {
|
||||||
# so that top level updates do not break texlive
|
# so that top level updates do not break texlive
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/asymptote/${finalAttrs.version}/asymptote-${finalAttrs.version}.src.tgz";
|
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;
|
texContainer = texlive.pkgs.asymptote.tex;
|
||||||
texdocContainer = texlive.pkgs.asymptote.texdoc;
|
texdocContainer = texlive.pkgs.asymptote.texdoc;
|
||||||
|
|
||||||
|
# build issue with asymptote 2.95 has been fixed
|
||||||
|
postConfigure = "";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{ lib
|
{ lib
|
||||||
#, stdenv
|
#, stdenv
|
||||||
, gcc12Stdenv
|
, gcc12Stdenv
|
||||||
, fetchurl, runCommand, writeShellScript, writeText, buildEnv
|
, fetchpatch, fetchurl, runCommand, writeShellScript, writeText, buildEnv
|
||||||
, callPackage, ghostscript_headless, harfbuzz
|
, callPackage, ghostscript_headless, harfbuzz
|
||||||
, makeWrapper, installShellFiles
|
, makeWrapper, installShellFiles
|
||||||
, python3, ruby, perl, tk, jdk, bash, snobol4
|
, python3, ruby, perl, tk, jdk, bash, snobol4
|
||||||
|
@ -34,7 +34,7 @@ let
|
||||||
overriddenTlpdb = let
|
overriddenTlpdb = let
|
||||||
overrides = import ./tlpdb-overrides.nix {
|
overrides = import ./tlpdb-overrides.nix {
|
||||||
inherit
|
inherit
|
||||||
stdenv lib bin tlpdb tlpdbxz tl
|
stdenv lib fetchpatch bin tlpdb tlpdbxz tl
|
||||||
installShellFiles
|
installShellFiles
|
||||||
coreutils findutils gawk getopt ghostscript_headless gnugrep
|
coreutils findutils gawk getopt ghostscript_headless gnugrep
|
||||||
gnumake gnupg gnused gzip html-tidy ncurses perl python3 ruby zip;
|
gnumake gnupg gnused gzip html-tidy ncurses perl python3 ruby zip;
|
||||||
|
@ -44,12 +44,12 @@ let
|
||||||
version = {
|
version = {
|
||||||
# day of the snapshot being taken
|
# day of the snapshot being taken
|
||||||
year = "2024";
|
year = "2024";
|
||||||
month = "10";
|
month = "03";
|
||||||
day = "27";
|
day = "09";
|
||||||
# TeX Live version
|
# TeX Live version
|
||||||
texliveYear = 2024;
|
texliveYear = 2024;
|
||||||
# final (historic) release or snapshot
|
# final (historic) release or snapshot
|
||||||
final = false;
|
final = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# The tarballs on CTAN mirrors for the current release are constantly
|
# 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
|
# use last mirror for daily snapshots as texlive.tlpdb.xz changes every day
|
||||||
# TODO make this less hacky
|
# TODO make this less hacky
|
||||||
(if version.final then mirrors else [ (lib.last mirrors) ]);
|
(if version.final then mirrors else [ (lib.last mirrors) ]);
|
||||||
hash = "sha256-jB9FXLpmqYluxdxGl67C50cx9dfN2S8LQwOow4OezcQ=";
|
hash = "sha256-YLn4+Ik9WR0iDS9Pjdo/aGyqFl7+eKoMzI3sgNSHmao=";
|
||||||
};
|
};
|
||||||
|
|
||||||
tlpdbNix = runCommand "tlpdb.nix" {
|
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.
|
# 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
|
# The correctness of this collation is tested by tests.texlive.licenses
|
||||||
licenses = with lib.licenses; {
|
licenses = with lib.licenses; {
|
||||||
scheme-basic = [ free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 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 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl12 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-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-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-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-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-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 lppl13a lppl13c mit ofl publicDomain x11 ];
|
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 ];
|
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
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
stdenv,
|
stdenv,
|
||||||
|
fetchpatch,
|
||||||
lib,
|
lib,
|
||||||
tlpdb,
|
tlpdb,
|
||||||
bin,
|
bin,
|
||||||
|
@ -77,6 +78,13 @@ lib.recursiveUpdate orig rec {
|
||||||
texlogsieve.extraBuildInputs = [ bin.luatex ];
|
texlogsieve.extraBuildInputs = [ bin.luatex ];
|
||||||
|
|
||||||
#### perl packages
|
#### perl packages
|
||||||
|
bundledoc.extraBuildInputs = [
|
||||||
|
(perl.withPackages (
|
||||||
|
ps: with ps; [
|
||||||
|
StringShellQuote
|
||||||
|
]
|
||||||
|
))
|
||||||
|
];
|
||||||
crossrefware.extraBuildInputs = [
|
crossrefware.extraBuildInputs = [
|
||||||
(perl.withPackages (
|
(perl.withPackages (
|
||||||
ps: with ps; [
|
ps: with ps; [
|
||||||
|
@ -248,6 +256,12 @@ lib.recursiveUpdate orig rec {
|
||||||
texmfstart = tl.context-legacy.tex + "/scripts/context/ruby/texmfstart.rb";
|
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";
|
epstopdf.binlinks.repstopdf = "epstopdf";
|
||||||
pdfcrop.binlinks.rpdfcrop = "pdfcrop";
|
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
|
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
|
# find files in script directory, not binary directory
|
||||||
# add runtime dependencies to PATH
|
# add runtime dependencies to PATH
|
||||||
epspdf.postFixup = ''
|
epspdf.postFixup = ''
|
||||||
|
@ -424,6 +454,17 @@ lib.recursiveUpdate orig rec {
|
||||||
substituteInPlace "$out"/bin/epspdftk --replace-fail '[info script]' "\"$scriptsFolder/epspdftk.tcl\""
|
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
|
# find files in script directory, not in binary directory
|
||||||
latexindent.postFixup = ''
|
latexindent.postFixup = ''
|
||||||
substituteInPlace "$out"/bin/latexindent --replace-fail 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
|
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
|
!(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV
|
||||||
) orig.luajittex.binfiles;
|
) 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 = {
|
texdoc = {
|
||||||
extraRevision = "-tlpdb${toString tlpdbVersion.revision}";
|
extraRevision = "-tlpdb${toString tlpdbVersion.revision}";
|
||||||
extraVersion = "-tlpdb-${toString tlpdbVersion.revision}";
|
extraVersion = "-tlpdb-${toString tlpdbVersion.revision}";
|
||||||
|
@ -528,11 +566,6 @@ lib.recursiveUpdate orig rec {
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \
|
TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \
|
||||||
texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc
|
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
|
installShellCompletion --zsh "$TMPDIR"/_texdoc
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue