Overlays/LatexMinted: Fix latexminted package
This commit is contained in:
@@ -0,0 +1,67 @@
|
|||||||
|
# Workaround for a broken `minted` in nixpkgs.
|
||||||
|
#
|
||||||
|
# The TeX Live snapshot in nixpkgs (2026-03-01) predates minted 3.8.0
|
||||||
|
# (2026-03-04) and still ships 3.7.0 together with a bundled `latexminted`
|
||||||
|
# 0.6.0 that does not run. Two independent replacements are needed:
|
||||||
|
#
|
||||||
|
# - the run container: minted.sty from the upstream 3.8.0 release, which
|
||||||
|
# requires `latexminted` >= 0.7.0;
|
||||||
|
# - the bin container: `pkgs.latexminted` (0.7.1), which works.
|
||||||
|
#
|
||||||
|
# The LaTeX package and the Python executable are versioned separately, hence
|
||||||
|
# the two unrelated version numbers.
|
||||||
|
#
|
||||||
|
# Delete this file once nixpkgs ships minted >= 3.8.0.
|
||||||
|
final: prev: let
|
||||||
|
version = "3.8.0";
|
||||||
|
|
||||||
|
# Byte-identical to the CTAN 3.8.0 release, but pinned and already unpacked
|
||||||
|
# (CTAN only ships minted.dtx, which would have to be run through docstrip).
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "gpoore";
|
||||||
|
repo = "minted";
|
||||||
|
rev = "631f7e8e93f37d4f6e7767ff45692d53e7c7360d"; # "[latex] minted v3.8.0"
|
||||||
|
hash = "sha256-xUWScWRR62ikRxxz/YEauWLirvhsQPCcyE1O6cpWZRw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
minted = prev.texlive.pkgs.minted;
|
||||||
|
|
||||||
|
# texlive.withPackages reads pname/tlType/tlDeps/... off the containers, so
|
||||||
|
# reuse the original metadata instead of reconstructing it.
|
||||||
|
container = name: container: script:
|
||||||
|
prev.runCommand "minted-${version}${name}" {
|
||||||
|
inherit (container) meta;
|
||||||
|
passthru =
|
||||||
|
container.passthru
|
||||||
|
// {
|
||||||
|
inherit version;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
script;
|
||||||
|
in {
|
||||||
|
texlive =
|
||||||
|
prev.texlive
|
||||||
|
// {
|
||||||
|
pkgs =
|
||||||
|
prev.texlive.pkgs
|
||||||
|
// {
|
||||||
|
minted =
|
||||||
|
minted
|
||||||
|
// {
|
||||||
|
tex = container "-tex" minted.tex ''
|
||||||
|
install -Dm444 -t "$out"/tex/latex/minted \
|
||||||
|
${src}/latex/minted/minted.sty \
|
||||||
|
${src}/latex/minted/minted1.sty \
|
||||||
|
${src}/latex/minted/minted2.sty
|
||||||
|
'';
|
||||||
|
|
||||||
|
# A bare symlink is enough: texlive.withPackages resolves and wraps
|
||||||
|
# everything under bin/ itself.
|
||||||
|
out = container "" minted.out ''
|
||||||
|
mkdir -p "$out"/bin
|
||||||
|
ln -s ${prev.lib.getExe prev.latexminted} "$out"/bin/latexminted
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user