79 lines
2.1 KiB
Nix
79 lines
2.1 KiB
Nix
{
|
|
fetchFromGitHub,
|
|
lib,
|
|
stdenv,
|
|
libiconv,
|
|
texliveFull,
|
|
xercesc,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "blahtexml";
|
|
version = "1.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "gvanas";
|
|
repo = "blahtexml";
|
|
rev = "v${version}";
|
|
hash = "sha256-DL5DyfARHHbwWBVHSa/VwHzNaAx/v7EDdnw1GLOk+y0=";
|
|
};
|
|
|
|
postPatch =
|
|
lib.optionalString stdenv.cc.isClang ''
|
|
substituteInPlace makefile \
|
|
--replace "\$(CXX)" "\$(CXX) -std=c++98"
|
|
''
|
|
+
|
|
# fix the doc build on TeX Live 2023
|
|
''
|
|
substituteInPlace Documentation/manual.tex \
|
|
--replace '\usepackage[utf8x]{inputenc}' '\usepackage[utf8]{inputenc}'
|
|
'';
|
|
|
|
outputs = [
|
|
"out"
|
|
"doc"
|
|
];
|
|
|
|
nativeBuildInputs = [ texliveFull ]; # scheme-full needed for ucs package
|
|
buildInputs = [ xercesc ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
|
|
|
|
buildFlags =
|
|
[ "doc" ]
|
|
++ (
|
|
if stdenv.hostPlatform.isDarwin then
|
|
[
|
|
"blahtex-mac"
|
|
"blahtexml-mac"
|
|
]
|
|
else
|
|
[
|
|
"blahtex-linux"
|
|
"blahtexml-linux"
|
|
]
|
|
);
|
|
|
|
installPhase = ''
|
|
install -D -t "$out/bin" blahtex blahtexml
|
|
install -m644 -D -t "$doc/share/doc/blahtexml" Documentation/manual.pdf
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "http://gva.noekeon.org/blahtexml/";
|
|
description = "TeX to MathML converter";
|
|
longDescription = ''
|
|
Blahtex is a program written in C++, which converts an equation given in
|
|
a syntax close to TeX into MathML. It is designed by David Harvey and is
|
|
aimed at supporting equations in MediaWiki.
|
|
|
|
Blahtexml is a simple extension of blahtex, written by Gilles Van Assche.
|
|
In addition to the functionality of blahtex, blahtexml has XML processing
|
|
in mind and is able to process a whole XML document into another XML
|
|
document. Instead of converting only one formula at a time, blahtexml can
|
|
convert all the formulas of the given XML file into MathML.
|
|
'';
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.xworld21 ];
|
|
platforms = platforms.all;
|
|
};
|
|
}
|