From 2c034c521677cf9429661f2565f58bda20f4ad50 Mon Sep 17 00:00:00 2001 From: detroyejr Date: Thu, 21 Nov 2024 21:03:19 -0500 Subject: [PATCH 1/3] haskellPackages.pandoc-cli_3_5: fix build --- .../haskell-modules/configuration-common.nix | 18 ++++++++++++++++++ .../configuration-hackage2nix/main.yaml | 1 + .../haskell-modules/hackage-packages.nix | 12 ++++++++++++ 3 files changed, 31 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index bd174babd549f..7b2f901b7e19b 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1943,6 +1943,24 @@ self: super: { ) ]; + # Pandoc 3.5 improves the quality of PDF rendering in Quarto >=1.6.30. + # https://github.com/NixOS/nixpkgs/pull/349683 + pandoc-cli_3_5 = super.pandoc-cli_3_5.overrideScope ( + self: super: { + doclayout = self.doclayout_0_5; + hslua-module-doclayout = self.hslua-module-doclayout_1_2_0; + lpeg = self.lpeg_1_1_0; + pandoc = self.pandoc_3_5; + pandoc-lua-engine = self.pandoc-lua-engine_0_3_3; + pandoc-server = self.pandoc-server_0_1_0_9; + texmath = self.texmath_0_12_8_11; + tls = self.tls_2_0_6; + toml-parser = self.toml-parser_2_0_1_0; + typst = self.typst_0_6; + typst-symbols = self.typst-symbols_0_1_6; + } + ); + # 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27) pandoc-include-code = doJailbreak super.pandoc-include-code; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index b1dc2492f8b93..203c57c1fa65f 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -109,6 +109,7 @@ extra-packages: - tls < 2.1.0 # 2024-07-19: requested by darcs == 2.18.3 - extensions == 0.1.0.2 # 2024-10-20: for GHC 9.10/Cabal 3.12 - network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.* + - typst-symbols >=0.1.6 && <0.1.7 # 2024-11-20: for pandoc 3.5 and quarto package-maintainers: abbradar: diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index d51851b2c4717..309fad3bdac7a 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -319329,6 +319329,18 @@ self: { license = lib.licenses.mit; }) {}; + "typst-symbols_0_1_6" = callPackage + ({ mkDerivation, base, text }: + mkDerivation { + pname = "typst-symbols"; + version = "0.1.6"; + sha256 = "17a2grflk67vs68b2pxygvk7p50rj9fb3ri7fcwa19j9jnhg4zwl"; + libraryHaskellDepends = [ base text ]; + description = "Symbol and emoji lookup for typst language"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "typst-symbols_0_1_7" = callPackage ({ mkDerivation, base, text }: mkDerivation { From 5c913007c6234133035e64048cbdf42764b5f723 Mon Sep 17 00:00:00 2001 From: detroyejr Date: Thu, 21 Nov 2024 21:05:06 -0500 Subject: [PATCH 2/3] pandoc: add version 3.5 --- pkgs/by-name/pa/pandoc/package.nix | 23 ++++++++++++++++------- pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/pa/pandoc/package.nix b/pkgs/by-name/pa/pandoc/package.nix index 9d0c511f64794..341edadd2617d 100644 --- a/pkgs/by-name/pa/pandoc/package.nix +++ b/pkgs/by-name/pa/pandoc/package.nix @@ -1,13 +1,22 @@ -{ stdenv, lib, haskellPackages, haskell, removeReferencesTo, installShellFiles }: +{ + stdenv, + lib, + haskellPackages, + haskell, + removeReferencesTo, + installShellFiles, + selectPandocCLI ? (p: p.pandoc-cli), # The version of pandoc-cli choosen from haskellPackages. +}: let # Since pandoc 3.0 the pandoc binary resides in the pandoc-cli package. - static = haskell.lib.compose.justStaticExecutables haskellPackages.pandoc-cli; + static = haskell.lib.compose.justStaticExecutables pandoc-cli; + pandoc-cli = selectPandocCLI haskellPackages; in (haskell.lib.compose.overrideCabal (drv: { configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"]; - buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed]; + buildDepends = drv.buildDepends or [] ++ [pandoc-cli.scope.file-embed]; buildTools = (drv.buildTools or []) ++ [ removeReferencesTo installShellFiles @@ -22,13 +31,13 @@ in # For details see: https://github.com/NixOS/nixpkgs/issues/34376 postInstall = drv.postInstall or "" + '' remove-references-to \ - -t ${haskellPackages.pandoc-types} \ + -t ${pandoc-cli.scope.pandoc-types} \ $out/bin/pandoc remove-references-to \ - -t ${haskellPackages.warp} \ + -t ${pandoc-cli.scope.warp} \ $out/bin/pandoc remove-references-to \ - -t ${haskellPackages.pandoc} \ + -t ${pandoc-cli.scope.pandoc} \ $out/bin/pandoc '' + lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) '' mkdir -p $out/share/bash-completion/completions @@ -44,5 +53,5 @@ in # lead to a transitive runtime dependency on the whole GHC distribution. # This should ideally be fixed in haskellPackages (or even Cabal), # but a minimal pandoc is important enough to patch it manually. - disallowedReferences = [ haskellPackages.pandoc-types haskellPackages.warp haskellPackages.pandoc ]; + disallowedReferences = [ pandoc-cli.scope.pandoc-types pandoc-cli.scope.warp pandoc-cli.scope.pandoc ]; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3ce2bde8f8cd1..fb59e3c60a8b5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4850,6 +4850,8 @@ with pkgs; pakcs = callPackage ../development/compilers/pakcs { }; + pandoc_3_5 = callPackage ../by-name/pa/pandoc/package.nix { selectPandocCLI = (p: p.pandoc-cli_3_5); }; + paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { }; parallel = callPackage ../tools/misc/parallel { }; From 093558f82bdebddb4fa145a19fa6f3c56f1187d8 Mon Sep 17 00:00:00 2001 From: detroyejr Date: Thu, 21 Nov 2024 21:05:11 -0500 Subject: [PATCH 3/3] quarto: use pandoc 3.5 --- pkgs/development/libraries/quarto/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/quarto/default.nix b/pkgs/development/libraries/quarto/default.nix index acdb76cc52b2f..4585f8dbcacd0 100644 --- a/pkgs/development/libraries/quarto/default.nix +++ b/pkgs/development/libraries/quarto/default.nix @@ -1,6 +1,6 @@ { stdenv , lib -, pandoc +, pandoc_3_5 , typst , esbuild , deno @@ -16,7 +16,6 @@ , extraPythonPackages ? ps: [] , sysctl }: - stdenv.mkDerivation (final: { pname = "quarto"; version = "1.6.33"; @@ -39,7 +38,7 @@ stdenv.mkDerivation (final: { preFixup = '' wrapProgram $out/bin/quarto \ --prefix QUARTO_DENO : ${lib.getExe deno} \ - --prefix QUARTO_PANDOC : ${lib.getExe pandoc} \ + --prefix QUARTO_PANDOC : ${lib.getExe pandoc_3_5} \ --prefix QUARTO_ESBUILD : ${lib.getExe esbuild} \ --prefix QUARTO_DART_SASS : ${lib.getExe dart-sass} \ --prefix QUARTO_TYPST : ${lib.getExe typst} \