From d75c69d7a6a20f650f8657c96f307090af848879 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 3b02ae30..05a40774 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; + }; + agenix = prev.callPackage ./pkgs/agenix/default.nix { }; amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };