From 057a0e1fb3ee82e56e5bc40933d76cf8a68e1211 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:20:15 -0500 Subject: [PATCH] typstPackages: Move recurseIntoAttrs to all-packages This simplifies the in-derivation logic --- pkgs/by-name/ty/typst/typst-packages.nix | 78 ++++++++++++------------ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/pkgs/by-name/ty/typst/typst-packages.nix b/pkgs/by-name/ty/typst/typst-packages.nix index 382aed587283..fbad5ec206c1 100644 --- a/pkgs/by-name/ty/typst/typst-packages.nix +++ b/pkgs/by-name/ty/typst/typst-packages.nix @@ -9,46 +9,44 @@ let in lib.makeScope newScope ( self: - lib.recurseIntoAttrs ( - lib.foldlAttrs ( - packageSet: pname: versionSet: - packageSet - // (lib.foldlAttrs ( - subPackageSet: version: packageSpec: - subPackageSet - // { - ${toPackageName pname version} = self.callPackage ( - { - lib, - buildTypstPackage, - fetchzip, - }: - buildTypstPackage (finalAttrs: { - inherit pname version; - - src = fetchzip { - inherit (packageSpec) hash; - url = "https://packages.typst.org/preview/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; - stripRoot = false; - }; - - typstDeps = builtins.filter (x: x != null) ( - lib.map (d: (lib.attrsets.attrByPath [ d ] null self)) packageSpec.typstDeps - ); - - meta = { - inherit (packageSpec) description; - maintainers = with lib.maintainers; [ cherrypiejam ]; - license = lib.map (lib.flip lib.getAttr lib.licensesSpdx) packageSpec.license; - } - // (if packageSpec ? "homepage" then { inherit (packageSpec) homepage; } else { }); - }) - ) { }; - } - ) { } versionSet) + lib.foldlAttrs ( + packageSet: pname: versionSet: + packageSet + // (lib.foldlAttrs ( + subPackageSet: version: packageSpec: + subPackageSet // { - ${pname} = self.${toPackageName pname (lib.last (lib.attrNames versionSet))}; + ${toPackageName pname version} = self.callPackage ( + { + lib, + buildTypstPackage, + fetchzip, + }: + buildTypstPackage (finalAttrs: { + inherit pname version; + + src = fetchzip { + inherit (packageSpec) hash; + url = "https://packages.typst.org/preview/${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; + stripRoot = false; + }; + + typstDeps = builtins.filter (x: x != null) ( + lib.map (d: (lib.attrsets.attrByPath [ d ] null self)) packageSpec.typstDeps + ); + + meta = { + inherit (packageSpec) description; + maintainers = with lib.maintainers; [ cherrypiejam ]; + license = lib.map (lib.flip lib.getAttr lib.licensesSpdx) packageSpec.license; + } + // (if packageSpec ? "homepage" then { inherit (packageSpec) homepage; } else { }); + }) + ) { }; } - ) { } (lib.importTOML ./typst-packages-from-universe.toml) - ) + ) { } versionSet) + // { + ${pname} = self.${toPackageName pname (lib.last (lib.attrNames versionSet))}; + } + ) { } (lib.importTOML ./typst-packages-from-universe.toml) ) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52e3564b51b3..594bb122fbcc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12413,7 +12413,7 @@ with pkgs; buildTypstPackage = callPackage ../build-support/build-typst-package.nix { }; - typstPackages = typst.packages; + typstPackages = recurseIntoAttrs typst.packages; ueberzug = with python3Packages; toPythonApplication ueberzug;