From 4f4e21a26d666ea12560e0da2ef6e34a7ac33b61 Mon Sep 17 00:00:00 2001 From: Dmitry Voronin Date: Tue, 27 Feb 2024 21:05:48 +0300 Subject: [PATCH] =?UTF-8?q?Applefont=20:=20From=20flake=20to=20callPackage?= =?UTF-8?q?,=20thanks=20to=20=D0=9B=D0=B8=D1=81=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/derivation/applefont/flake.nix | 75 ------------------- .config/linux/system/flake.nix | 12 +-- .config/linux/system/module/common/Font.nix | 4 +- .../module/common/applefont/default.nix | 54 +++++++++++++ 4 files changed, 60 insertions(+), 85 deletions(-) delete mode 100644 .config/linux/system/derivation/applefont/flake.nix create mode 100644 .config/linux/system/module/common/applefont/default.nix diff --git a/.config/linux/system/derivation/applefont/flake.nix b/.config/linux/system/derivation/applefont/flake.nix deleted file mode 100644 index 9431f2b..0000000 --- a/.config/linux/system/derivation/applefont/flake.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ - description = "Apple fonts."; - - outputs = { nixpkgs, system } @inputs: let - pkgs = nixpkgs.legacyPackages.${system}; - lib = nixpkgs.lib; - in { - packages.${system}.default = pkgs.stdenv.mkDerivation rec { - pname = "applefonts"; - version = "1"; - - pro = pkgs.fetchurl { - url = "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"; - sha256 = "sha256-Mu0pmx3OWiKBmMEYLNg+u2MxFERK07BQGe3WAhEec5Q="; - }; - - compact = pkgs.fetchurl { - url = "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"; - sha256 = "sha256-Mkf+GK4iuUhZdUdzMW0VUOmXcXcISejhMeZVm0uaRwY="; - }; - - mono = pkgs.fetchurl { - url = "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"; - sha256 = "sha256-tZHV6g427zqYzrNf3wCwiCh5Vjo8PAai9uEvayYPsjM="; - }; - - ny = pkgs.fetchurl { - url = "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"; - sha256 = "sha256-tn1QLCSjgo5q4PwE/we80pJavr3nHVgFWrZ8cp29qBk="; - }; - - nativeBuildInputs = with pkgs; [ p7zip ]; - - sourceRoot = "."; - - dontUnpack = true; - - installPhase = '' - 7z x ${pro} - cd SFProFonts - 7z x 'SF Pro Fonts.pkg' - 7z x 'Payload~' - mkdir -p $out/fontfiles - mv Library/Fonts/* $out/fontfiles - cd .. - 7z x ${mono} - cd SFMonoFonts - 7z x 'SF Mono Fonts.pkg' - 7z x 'Payload~' - mv Library/Fonts/* $out/fontfiles - cd .. - 7z x ${compact} - cd SFCompactFonts - 7z x 'SF Compact Fonts.pkg' - 7z x 'Payload~' - mv Library/Fonts/* $out/fontfiles - cd .. - 7z x ${ny} - cd NYFonts - 7z x 'NY Fonts.pkg' - 7z x 'Payload~' - mv Library/Fonts/* $out/fontfiles - mkdir -p $out/usr/share/fonts/OTF $out/usr/share/fonts/TTF - mv $out/fontfiles/*.otf $out/usr/share/fonts/OTF - mv $out/fontfiles/*.ttf $out/usr/share/fonts/TTF - rm -rf $out/fontfiles - ''; - - meta = { - description = "Apple San Francisco, New York fonts."; - homepage = "https://developer.apple.com/fonts/"; - }; - }; - }; -} diff --git a/.config/linux/system/flake.nix b/.config/linux/system/flake.nix index a959db9..b10b103 100644 --- a/.config/linux/system/flake.nix +++ b/.config/linux/system/flake.nix @@ -86,7 +86,7 @@ }; }; - outputs = { self, nixpkgs, dotfiles, ... } @inputs: rec { + outputs = { self, nixpkgs, dotfiles, ... } @inputs: { # Constant values. nixosModules.const = { hashedPassword = "$y$j9T$oqCB16i5E2t1t/HAWaFd5.$tTaHtAcifXaDVpTcRv.yH2/eWKxKE9xM8KcqXHfHrD7"; # Use `mkpasswd`. @@ -131,13 +131,9 @@ inputs.self.nixosModules.common ] ++ modules; - specialArgs.const = self.nixosModules.const; - specialArgs.flake = self; - specialArgs.inputs = inputs; - specialArgs.applefont = ((import ./derivation/applefont/flake.nix).outputs { - inherit nixpkgs; - inherit system; - }).packages.${system}.default; + specialArgs.const = self.nixosModules.const; + specialArgs.flake = self; + specialArgs.inputs = inputs; }; # List of all hosts bellow. diff --git a/.config/linux/system/module/common/Font.nix b/.config/linux/system/module/common/Font.nix index f09088b..32ff4ce 100644 --- a/.config/linux/system/module/common/Font.nix +++ b/.config/linux/system/module/common/Font.nix @@ -1,6 +1,6 @@ -{ pkgs, specialArgs, ... }: rec { +{ pkgs, ... }: { fonts.packages = with pkgs; [ - specialArgs.applefont + (pkgs.callPackage ./applefont {}) (nerdfonts.override { fonts = [ "Terminus" ]; }) ]; } diff --git a/.config/linux/system/module/common/applefont/default.nix b/.config/linux/system/module/common/applefont/default.nix new file mode 100644 index 0000000..ddc5897 --- /dev/null +++ b/.config/linux/system/module/common/applefont/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, fetchurl, p7zip }: let + pro = fetchurl { + url = "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"; + sha256 = "sha256-Mu0pmx3OWiKBmMEYLNg+u2MxFERK07BQGe3WAhEec5Q="; + }; + + compact = fetchurl { + url = "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"; + sha256 = "sha256-Mkf+GK4iuUhZdUdzMW0VUOmXcXcISejhMeZVm0uaRwY="; + }; + + mono = fetchurl { + url = "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"; + sha256 = "sha256-tZHV6g427zqYzrNf3wCwiCh5Vjo8PAai9uEvayYPsjM="; + }; + + ny = fetchurl { + url = "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"; + sha256 = "sha256-tn1QLCSjgo5q4PwE/we80pJavr3nHVgFWrZ8cp29qBk="; + }; +in stdenv.mkDerivation { + name = "applefont"; + + dontUnpack = true; + + nativeBuildInputs = [ p7zip ]; + + installPhase = let + unpackFont = dmg: dir: pkg: '' + 7z x '${dmg}' + pushd '${dir}' + 7z x '${pkg}' + 7z x 'Payload~' + cp Library/Fonts/* $TMPDIR + popd + ''; + in '' + ${unpackFont pro "SFProFonts" "SF Pro Fonts.pkg"} + ${unpackFont mono "SFMonoFonts" "SF Mono Fonts.pkg"} + ${unpackFont compact "SFCompactFonts" "SF Compact Fonts.pkg"} + ${unpackFont ny "NYFonts" "NY Fonts.pkg"} + + mkdir -p $out/usr/share/fonts/{TTF,OTF} + mv $TMPDIR/*.otf $out/usr/share/fonts/OTF + mv $TMPDIR/*.ttf $out/usr/share/fonts/TTF + ''; + + meta = with lib; { + description = "Apple San Francisco, New York fonts."; + homepage = "https://developer.apple.com/fonts"; + license = licenses.unfree; + meta.platforms = platforms.all; + }; +}