From 7e31ecd4d7239072e4faa4e98281253c624fb367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 6 Oct 2025 16:48:56 +0200 Subject: [PATCH] Add nix-support/private to unfree derivation outputs --- overlay.nix | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/overlay.nix b/overlay.nix index 3fb7789..90fcbdf 100644 --- a/overlay.nix +++ b/overlay.nix @@ -7,6 +7,32 @@ let callPackage = final.callPackage; bscPkgs = { + + # override stdenv to add a sentinel to know if a derivation comes + # from unfree sources. + stdenv = prev.stdenv // { + mkDerivation = + args: + let + originalDrv = prev.stdenv.mkDerivation args; + checkLicense = l: if builtins.isAttrs l then !(l.free or true) else false; + + licenses = if builtins.isList args.meta.license then args.meta.license else [ args.meta.license ]; + + hasUnfreeLicense = + if args ? meta && args.meta ? license then builtins.any checkLicense licenses else false; + in + if hasUnfreeLicense then + originalDrv.overrideAttrs (old: { + postInstall = (old.postInstall or "") + '' + mkdir -p $out/nix-support + touch $out/nix-support/private + ''; + }) + else + originalDrv; + }; + amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };