This repository has no description
0

Configure Feed

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

lib: add halalify function to override unfree licenses

+44 -7
+2 -2
lib/default.nix
··· 1 - { ... }: 1 + { lib, ... }: 2 2 let 3 3 # Pure library functions that don't need pkgs 4 4 superlib = { 5 - # Add pure functions here 5 + halalify = import ./halalify.nix { inherit lib; }; 6 6 }; 7 7 in 8 8 superlib
+41
lib/halalify.nix
··· 1 + { lib }: 2 + /** 3 + Override unfree licenses to free ones in a derivation. 4 + 5 + This function takes a derivation and replaces any unfree license with lib.licenses.free. 6 + Note: This only works for simple packages. Complex packages with unfree dependencies 7 + in their build process (like firefox-bin -> firefox-bin-unwrapped) cannot be handled 8 + this way and need other approaches. 9 + 10 + # Example 11 + 12 + ```nix 13 + halalify pkgs.someUnfreePackage 14 + ``` 15 + */ 16 + drv: 17 + if !lib.isDerivation drv then 18 + drv 19 + else 20 + let 21 + # Helper to check if a license is unfree 22 + isUnfreeLicense = license: lib.isAttrs license && license ? free && !license.free; 23 + 24 + # Helper to make a license free 25 + makeFreeLicense = 26 + license: 27 + if isUnfreeLicense license then 28 + lib.licenses.free 29 + else if lib.isList license then 30 + map makeFreeLicense license 31 + else 32 + license; 33 + in 34 + drv.overrideAttrs (old: { 35 + # Override the license 36 + meta = 37 + (old.meta or { }) 38 + // lib.optionalAttrs (old.meta ? license) { 39 + license = makeFreeLicense old.meta.license; 40 + }; 41 + })
+1 -5
machines/barnacle/configuration.nix
··· 30 30 pkgs.git 31 31 pkgs.element-desktop 32 32 pkgs.iterm2 33 - (pkgs.firefox-devedition-bin-unwrapped.overrideAttrs (o: { 34 - meta = o.meta // { 35 - license = pkgs.lib.licenses.free; 36 - }; 37 - })) 33 + (self.lib.halalify pkgs.firefox-bin-unwrapped) 38 34 pkgs.ripgrep 39 35 pkgs.alt-tab-macos 40 36 pkgs.zed-editor