charla-gpul-software-libre/flake.nix

70 lines
1.8 KiB
Nix

{
description = "LaTeX Beamer Presentation for GPUL Schools: Software Libre";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
tex = pkgs.texlive.combine {
inherit (pkgs.texlive)
scheme-basic
latex-bin
latexmk
collection-langspanish
beamer
biblatex
biber
csquotes
emoji
fontspec
noto-emoji
;
};
# tex = pkgs.texliveFull;
in
rec {
packages = {
document = pkgs.stdenvNoCC.mkDerivation rec {
name = "latex-beamer-gpul-schools-software-libre";
src = self;
buildInputs = [
pkgs.coreutils
tex
];
phases = [
"unpackPhase"
"buildPhase"
"installPhase"
];
buildPhase = ''
export PATH="${pkgs.lib.makeBinPath buildInputs}";
env TEXMFVAR=$(mktemp -d) \
SOURCE_DATE_EPOCH=${toString self.lastModified} \
latexmk -interaction=nonstopmode -pdf -lualatex \
-pretex="\pdfvariable suppressoptionalinfo 512\relax" \
-usepretex main.tex
'';
installPhase = ''
mkdir -p $out
cp main.pdf $out/
'';
};
};
defaultPackage = packages.document;
devShells.default = pkgs.mkShell {
buildInputs = packages.document.buildInputs ++ (with pkgs; [ texlab ]);
};
}
);
}