diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..464d67b --- /dev/null +++ b/package.nix @@ -0,0 +1,87 @@ +{ + writeShellScript, + writableTmpDirAsHomeHook, + + stdenvNoCC, + + texlivePackages, + texliveBasic, +}: +let + texEnv = texliveBasic.withPackages (ps: with ps; [ + # l3build + beamer + biblatex + enumitem + fileinfo + hypdoc + hyperref + listings + metalogo + parskip + pgf + pgfopts + setspace + xurl + microtype + + latexmk + ]); +in stdenvNoCC.mkDerivation rec { + pname = "moloch"; + version = "1.0.2-DEV-xenia"; + + outputs = [ + "tex" + "texdoc" + ]; + + passthru.tlDeps = with texlivePackages; [ latex ]; + + src = ./.; + + dontConfigure = true; + + nativeBuildInputs = [ + texEnv + + # multiple-outputs.sh fails if $out is not defined + (writeShellScript "force-tex-output.sh" '' + out="''${tex-}" + '') + + writableTmpDirAsHomeHook # Need a writable $HOME for latexmk + ]; + + # we just build manually, but moloch's own method of building is using l3build + # i have no idea how to get that working, so for now just do it normal style + buildPhase = '' + runHook preBuild + + # Generate the style files + cd src + latex beamertheme${pname}.ins + + # Generate the documentation + cp ../doc/${pname}.tex . + latexmk -pdf ${pname}.tex + + cd .. + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + path="$tex/tex/latex/${pname}" + mkdir -p "$path" + cp src/*.{cls,def,clo,sty} "$path/" + + path="$texdoc/doc/tex/latex/${pname}" + mkdir -p "$path" + cp src/${pname}.pdf "$path/" + + runHook postInstall + ''; +}