Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ stdenv 2, lib 3, pandoc 4, esbuild 5, deno 6, fetchurl 7, nodePackages 8, rWrapper 9, rPackages 10, extraRPackages ? [] 11, makeWrapper 12, python3 13, extraPythonPackages ? ps: with ps; [] 14}: 15 16stdenv.mkDerivation rec { 17 pname = "quarto"; 18 version = "1.2.475"; 19 src = fetchurl { 20 url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${version}/quarto-${version}-linux-amd64.tar.gz"; 21 sha256 = "sha256-oyKjDlTKt2fIzirOqgNRrpuM7buNCG5mmgIztPa28rY="; 22 }; 23 24 nativeBuildInputs = [ 25 makeWrapper 26 ]; 27 28 patches = [ 29 ./fix-deno-path.patch 30 ]; 31 32 postPatch = '' 33 # Compat for Deno >=1.26 34 substituteInPlace bin/quarto.js \ 35 --replace 'Deno.setRaw(stdin.rid, ' 'Deno.stdin.setRaw(' \ 36 --replace 'Deno.setRaw(Deno.stdin.rid, ' 'Deno.stdin.setRaw(' 37 ''; 38 39 dontStrip = true; 40 41 preFixup = '' 42 wrapProgram $out/bin/quarto \ 43 --prefix PATH : ${lib.makeBinPath [ deno ]} \ 44 --prefix QUARTO_PANDOC : ${pandoc}/bin/pandoc \ 45 --prefix QUARTO_ESBUILD : ${esbuild}/bin/esbuild \ 46 --prefix QUARTO_DART_SASS : ${nodePackages.sass}/bin/sass \ 47 --prefix QUARTO_R : ${rWrapper.override { packages = [ rPackages.rmarkdown ] ++ extraRPackages; }}/bin/R \ 48 --prefix QUARTO_PYTHON : ${python3.withPackages (ps: with ps; [ jupyter ipython ] ++ (extraPythonPackages ps))}/bin/python3 49 ''; 50 51 installPhase = '' 52 runHook preInstall 53 54 mkdir -p $out/bin $out/share 55 56 rm -r bin/tools 57 58 mv bin/* $out/bin 59 mv share/* $out/share 60 61 runHook preInstall 62 ''; 63 64 meta = with lib; { 65 description = "Open-source scientific and technical publishing system built on Pandoc"; 66 longDescription = '' 67 Quarto is an open-source scientific and technical publishing system built on Pandoc. 68 Quarto documents are authored using markdown, an easy to write plain text format. 69 ''; 70 homepage = "https://quarto.org/"; 71 changelog = "https://github.com/quarto-dev/quarto-cli/releases/tag/v${version}"; 72 license = licenses.gpl2Plus; 73 maintainers = with maintainers; [ mrtarantoga ]; 74 platforms = [ "x86_64-linux" ]; 75 sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; 76 }; 77}