diff options
Diffstat (limited to 'nixpkgs/pkgs/data/fonts/iosevka/default.nix')
-rw-r--r-- | nixpkgs/pkgs/data/fonts/iosevka/default.nix | 93 |
1 files changed, 45 insertions, 48 deletions
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix index 53e5b4a3db76..0c24c1e5c30e 100644 --- a/nixpkgs/pkgs/data/fonts/iosevka/default.nix +++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix @@ -1,4 +1,9 @@ -{ stdenv, lib, pkgs, fetchFromGitHub, nodejs, remarshal +{ stdenv +, lib +, buildNpmPackage +, fetchFromGitHub +, darwin +, remarshal , ttfautohint-nox # Custom font set options. # See https://typeof.net/Iosevka/customizer @@ -42,70 +47,63 @@ # ''; , extraParameters ? null # Custom font set name. Required if any custom settings above. -, set ? null }: +, set ? null +}: assert (privateBuildPlan != null) -> set != null; assert (extraParameters != null) -> set != null; -let - # We don't know the attribute name for the Iosevka package as it - # changes not when our update script is run (which in turn updates - # node-packages.json, but when node-packages/generate.sh is run - # (which updates node-packages.nix). - # - # Doing it this way ensures that the package can always be built, - # although possibly an older version than ioseva-bin. - nodeIosevka = (import ./node-composition.nix { - inherit pkgs nodejs; - inherit (stdenv.hostPlatform) system; - }).package.override { - src = fetchFromGitHub { - owner = "be5invis"; - repo = "Iosevka"; - rev = "v15.6.3"; - hash = "sha256-wsFx5sD1CjQTcmwpLSt97OYFI8GtVH54uvKQLU1fWTg="; - }; +buildNpmPackage rec { + pname = if set != null then "iosevka-${set}" else "iosevka"; + version = "24.1.1"; + + src = fetchFromGitHub { + owner = "be5invis"; + repo = "iosevka"; + rev = "v${version}"; + hash = "sha256-kzf/DFks/Ovhl6uMw5Bqhq+j+alrUd4E49jgSmp2E2k="; }; -in -stdenv.mkDerivation rec { - pname = if set != null then "iosevka-${set}" else "iosevka"; - inherit (nodeIosevka) version src; + npmDepsHash = "sha256-FKA3D05E5A0Z3wdCYLzoTyYKLay25sc3O61rOzkIN2E="; nativeBuildInputs = [ - nodejs remarshal ttfautohint-nox + ] ++ lib.optionals stdenv.isDarwin [ + # libtool + darwin.cctools ]; buildPlan = - if builtins.isAttrs privateBuildPlan - then builtins.toJSON { buildPlans.${pname} = privateBuildPlan; } - else privateBuildPlan; + if builtins.isAttrs privateBuildPlan then + builtins.toJSON { buildPlans.${pname} = privateBuildPlan; } + else + privateBuildPlan; inherit extraParameters; - passAsFile = [ - "extraParameters" - ] ++ lib.optional (! (builtins.isString privateBuildPlan && lib.hasPrefix builtins.storeDir privateBuildPlan)) [ - "buildPlan" - ]; + passAsFile = [ "extraParameters" ] ++ lib.optionals + ( + !(builtins.isString privateBuildPlan + && lib.hasPrefix builtins.storeDir privateBuildPlan) + ) [ "buildPlan" ]; configurePhase = '' runHook preConfigure ${lib.optionalString (builtins.isAttrs privateBuildPlan) '' remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml ''} - ${lib.optionalString (builtins.isString privateBuildPlan && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) '' - cp "$buildPlanPath" private-build-plans.toml - ''} - ${lib.optionalString (builtins.isString privateBuildPlan && (lib.hasPrefix builtins.storeDir privateBuildPlan)) '' - cp "$buildPlan" private-build-plans.toml - ''} + ${lib.optionalString (builtins.isString privateBuildPlan + && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) '' + cp "$buildPlanPath" private-build-plans.toml + ''} + ${lib.optionalString (builtins.isString privateBuildPlan + && (lib.hasPrefix builtins.storeDir privateBuildPlan)) '' + cp "$buildPlan" private-build-plans.toml + ''} ${lib.optionalString (extraParameters != null) '' echo -e "\n" >> params/parameters.toml cat "$extraParametersPath" >> params/parameters.toml ''} - ln -s ${nodeIosevka}/lib/node_modules/iosevka/node_modules . runHook postConfigure ''; @@ -126,16 +124,14 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - passthru = { - updateScript = ./update-default.sh; - }; - meta = with lib; { - homepage = "https://be5invis.github.io/Iosevka"; + homepage = "https://typeof.net/Iosevka/"; downloadPage = "https://github.com/be5invis/Iosevka/releases"; - description = '' - Slender monospace sans-serif and slab-serif typeface inspired by Pragmata - Pro, M+ and PF DIN Mono, designed to be the ideal font for programming. + description = "Versatile typeface for code, from code."; + longDescription = '' + Iosevka is an open-source, sans-serif + slab-serif, monospace + + quasi‑proportional typeface family, designed for writing code, using in + terminals, and preparing technical documents. ''; license = licenses.ofl; platforms = platforms.all; @@ -146,6 +142,7 @@ stdenv.mkDerivation rec { babariviere rileyinman AluisioASG + lunik1 ]; }; } |