copy of https://github.com/HelsinkiTypeStudio/valley-sans with nix builds
0

Configure Feed

Select the types of activity you want to include in your feed.

expose overlay

Signed-off-by: oppiliappan <me@oppi.li>

author
oppiliappan
date (May 30, 2026, 8:46 AM +0100) commit 36c339b8 parent 29362c84 change-id nrvytluy
+106 -105
+1 -2
.tangled/workflows/build.yml
··· 6 6 7 7 steps: 8 8 - name: nix build 9 - command: | 10 - nix build .# 9 + command: nix build .#
-34
flake.lock
··· 1 1 { 2 2 "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1731533236, 9 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 3 "nixpkgs": { 22 4 "locked": { 23 5 "lastModified": 1779560665, ··· 36 18 }, 37 19 "root": { 38 20 "inputs": { 39 - "flake-utils": "flake-utils", 40 21 "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 22 } 57 23 } 58 24 },
+29 -69
flake.nix
··· 3 3 4 4 inputs = { 5 5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 6 }; 8 7 9 8 outputs = { 10 9 self, 11 10 nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem (system: let 15 - pkgs = import nixpkgs {inherit system;}; 11 + }: let 12 + supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]; 13 + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; 14 + nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system}); 15 + in { 16 + overlays.default = final: prev: { 17 + valley-sans = final.callPackage ./package.nix {}; 18 + }; 16 19 17 - pythonEnv = pkgs.python313.withPackages (ps: 18 - with ps; [ 19 - fontmake 20 - gftools 21 - fonttools 22 - brotli 23 - diffenator2 24 - pip 25 - ]); 20 + packages = forAllSystems (system: let 21 + pkgs = nixpkgsFor.${system}; 26 22 in { 27 - packages.default = pkgs.stdenv.mkDerivation (finalAttrs: { 28 - pname = "valley-sans"; 29 - version = "1.0.0"; 30 - 31 - src = ./.; 32 - 33 - nativeBuildInputs = [ 34 - pythonEnv 35 - pkgs.ttfautohint 36 - pkgs.cairo 37 - pkgs.pkg-config 38 - pkgs.yq 39 - ]; 40 - 41 - buildInputs = [ 42 - pkgs.cairo 43 - ]; 44 - 45 - configurePhase = '' 46 - runHook preConfigure 47 - 48 - # create a fake venv structure that the makefile expects 49 - mkdir -p venv/bin 50 - echo '#!/bin/sh' > venv/bin/activate 51 - chmod +x venv/bin/activate 23 + default = pkgs.callPackage ./package.nix {}; 24 + valley-sans = pkgs.callPackage ./package.nix {}; 25 + }); 52 26 53 - touch venv/touchfile 54 - 55 - runHook postConfigure 56 - ''; 57 - 58 - buildPhase = '' 59 - runHook preBuild 60 - 61 - export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python 62 - 63 - source venv/bin/activate 64 - make build 65 - 66 - runHook postBuild 67 - ''; 68 - 69 - installPhase = '' 70 - runHook preInstall 71 - 72 - mkdir -p $out/fonts 73 - cp -r fonts/* $out/fonts/ 74 - 75 - runHook postInstall 76 - ''; 77 - }); 78 - 79 - devShells.default = pkgs.mkShell { 27 + devShells = forAllSystems (system: let 28 + pkgs = nixpkgsFor.${system}; 29 + in { 30 + default = pkgs.mkShell { 80 31 buildInputs = [ 81 - pythonEnv 32 + (pkgs.python313.withPackages (ps: 33 + with ps; [ 34 + fontmake 35 + gftools 36 + fonttools 37 + brotli 38 + diffenator2 39 + pip 40 + ])) 82 41 pkgs.ttfautohint 83 42 pkgs.cairo 84 43 pkgs.pkg-config ··· 88 47 pkgs.rustc 89 48 ]; 90 49 }; 50 + }); 91 51 92 - formatter = pkgs.alejandra; 93 - }); 52 + formatter = forAllSystems (system: nixpkgsFor.${system}.alejandra); 53 + }; 94 54 }
+76
package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + python313, 5 + ttfautohint, 6 + cairo, 7 + pkg-config, 8 + yq, 9 + }: 10 + stdenv.mkDerivation (finalAttrs: { 11 + pname = "valley-sans"; 12 + version = "1.0.0"; 13 + 14 + src = ./.; 15 + 16 + nativeBuildInputs = let 17 + pythonEnv = python313.withPackages (ps: 18 + with ps; [ 19 + fontmake 20 + gftools 21 + fonttools 22 + brotli 23 + diffenator2 24 + pip 25 + ]); 26 + in [ 27 + pythonEnv 28 + ttfautohint 29 + cairo 30 + pkg-config 31 + yq 32 + ]; 33 + 34 + buildInputs = [ 35 + cairo 36 + ]; 37 + 38 + configurePhase = '' 39 + runHook preConfigure 40 + 41 + # create a fake venv structure that the makefile expects 42 + mkdir -p venv/bin 43 + echo '#!/bin/sh' > venv/bin/activate 44 + chmod +x venv/bin/activate 45 + 46 + touch venv/touchfile 47 + 48 + runHook postConfigure 49 + ''; 50 + 51 + buildPhase = '' 52 + runHook preBuild 53 + 54 + export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python 55 + 56 + source venv/bin/activate 57 + make build 58 + 59 + runHook postBuild 60 + ''; 61 + 62 + installPhase = '' 63 + runHook preInstall 64 + 65 + mkdir -p $out/fonts 66 + cp -r fonts/* $out/fonts/ 67 + 68 + runHook postInstall 69 + ''; 70 + 71 + meta = with lib; { 72 + description = "Valley Sans - a variable font family"; 73 + license = licenses.ofl; 74 + platforms = platforms.all; 75 + }; 76 + })