typst: add support to instantiate typst with a set of typst packages

Changed files
+42 -2
maintainers
pkgs
by-name
top-level
+1 -1
maintainers/scripts/update-typst-packages.py
··· 115 115 hash=source_hash, 116 116 typstDeps=[ 117 117 self.package_name_full(p, v) 118 - for p, v in sorted(self.deps, key=lambda x: x[0]) 118 + for p, v in sorted(self.deps, key=lambda x: (x[0], Version(x[1]))) 119 119 ], 120 120 description=self.description, 121 121 license=self.license_tokens(),
+6 -1
pkgs/by-name/ty/typst/package.nix
··· 8 8 xz, 9 9 nix-update-script, 10 10 versionCheckHook, 11 + callPackage, 11 12 }: 12 13 13 14 rustPlatform.buildRustPackage (finalAttrs: { ··· 60 61 versionCheckProgramArg = [ "--version" ]; 61 62 doInstallCheck = true; 62 63 63 - passthru.updateScript = nix-update-script { }; 64 + passthru = { 65 + updateScript = nix-update-script { }; 66 + packages = callPackage ./typst-packages.nix { }; 67 + withPackages = callPackage ./with-packages.nix { }; 68 + }; 64 69 65 70 meta = { 66 71 changelog = "https://github.com/typst/typst/releases/tag/v${finalAttrs.version}";
+33
pkgs/by-name/ty/typst/with-packages.nix
··· 1 + { 2 + lib, 3 + buildEnv, 4 + typstPackages, 5 + makeBinaryWrapper, 6 + typst, 7 + }: 8 + 9 + lib.makeOverridable ( 10 + { ... }@typstPkgs: 11 + f: 12 + buildEnv { 13 + name = "${typst.name}-env"; 14 + 15 + paths = lib.foldl' (acc: p: acc ++ lib.singleton p ++ p.propagatedBuildInputs) [ ] (f typstPkgs); 16 + 17 + pathsToLink = [ "/lib/typst-packages" ]; 18 + 19 + nativeBuildInputs = [ makeBinaryWrapper ]; 20 + 21 + postBuild = '' 22 + export TYPST_LIB_DIR="$out/lib/typst/packages" 23 + mkdir -p $TYPST_LIB_DIR 24 + 25 + mv $out/lib/typst-packages $TYPST_LIB_DIR/preview 26 + 27 + cp -r ${typst}/share $out/share 28 + mkdir -p $out/bin 29 + 30 + makeWrapper "${lib.getExe typst}" "$out/bin/typst" --set TYPST_PACKAGE_CACHE_PATH $TYPST_LIB_DIR 31 + ''; 32 + } 33 + ) typstPackages
+2
pkgs/top-level/all-packages.nix
··· 15287 15287 15288 15288 buildTypstPackage = callPackage ../build-support/build-typst-package.nix { }; 15289 15289 15290 + typstPackages = typst.packages; 15291 + 15290 15292 ueberzug = with python3Packages; toPythonApplication ueberzug; 15291 15293 15292 15294 ueberzugpp = callPackage ../by-name/ue/ueberzugpp/package.nix {