Clickgen-1.2.0 not supported for interpreter python3.10

I wanted to install something new, but home-manager switch failed because one of the dependency of a package fail to build.

Running home-manager switch will show

error: clickgen-1.2.0 not supported for interpreter python3.10
(use '--show-trace' to show detailed location information)

I followed the trace and it turns out that I had bibata-cursors installed and clickgen is in its’ buildInputs.
I am a noob, so i’m not sure how to solve this problem, I tried to use overlay to override the disabled attr in clickgen, but it didn’t work.

How can I make home-manager switch work without having to uninstall bibata-cursors or waiting for clickgen to support python3.10?

Full trace:

error: clickgen-1.2.0 not supported for interpreter python3.10

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/development/interpreters/python/mk-python-derivation.nix:30:1:

           29|
           30| { name ? "${attrs.pname}-${attrs.version}"
             | ^
           31|

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/customisation.nix:69:16:

           68|     let
           69|       result = f origArgs;
             |                ^
           70|

       … while evaluating 'makeOverridable'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/customisation.nix:67:24:

           66|   */
           67|   makeOverridable = f: origArgs:
             |                        ^
           68|     let

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/top-level/python-packages.nix:29:12:

           28|     let
           29|       ff = f origArgs;
             |            ^
           30|       overrideWith = newArgs: origArgs // (if pkgs.lib.isFunction newArgs then newArgs origArgs else newArgs);

       … while evaluating 'makeOverridablePythonPackage'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/top-level/python-packages.nix:27:37:

           26|   # This function introduces `overridePythonAttrs` and it overrides the call to `buildPythonPackage`.
           27|   makeOverridablePythonPackage = f: origArgs:
             |                                     ^
           28|     let

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/development/python-modules/clickgen/default.nix:15:1:

           14|
           15| buildPythonPackage rec {
             | ^
           16|   pname = "clickgen";

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/development/python-modules/clickgen/default.nix:1:1:

            1| { lib
             | ^
            2| , stdenv

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/customisation.nix:69:16:

           68|     let
           69|       result = f origArgs;
             |                ^
           70|

       … while evaluating 'makeOverridable'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/customisation.nix:67:24:

           66|   */
           67|   makeOverridable = f: origArgs:
             |                        ^
           68|     let

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/customisation.nix:168:34:

          167|
          168|     in if missingArgs == [] then makeOverridable f allArgs else throw error;
             |                                  ^
          169|

       … while evaluating 'callPackageWith'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/customisation.nix:117:35:

          116|   */
          117|   callPackageWith = autoArgs: fn: args:
             |                                   ^
          118|     let

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/top-level/python-packages.nix:1754:14:

         1753|
         1754|   clickgen = callPackage ../development/python-modules/clickgen { };
             |              ^
         1755|

       … while evaluating 'toPythonApplication'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/top-level/python-packages.nix:82:25:

           81|   # Convert a Python library to an application.
           82|   toPythonApplication = drv:
             |                         ^
           83|     drv.overrideAttrs( oldAttrs: {

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/top-level/all-packages.nix:3062:36:

         3061|
         3062|   clickgen = with python3Packages; toPythonApplication clickgen;
             |                                    ^
         3063|

       … while evaluating the attribute 'clickgen.override'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/top-level/all-packages.nix:3062:3:

         3061|
         3062|   clickgen = with python3Packages; toPythonApplication clickgen;
             |   ^
         3063|

       … while evaluating 'isDerivation'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/attrsets.nix:427:18:

          426|   */
          427|   isDerivation = x: x.type or null == "derivation";
             |                  ^
          428|

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:193:8:

          192|   checkDependencyList' = positions: name: deps: lib.flip lib.imap1 deps (index: dep:
          193|     if lib.isDerivation dep || isNull dep || builtins.typeOf dep == "string" || builtins.typeOf dep == "path" then dep
             |        ^
          194|     else if lib.isList dep then checkDependencyList' ([index] ++ positions) name dep

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:192:81:

          191|   checkDependencyList = checkDependencyList' [];
          192|   checkDependencyList' = positions: name: deps: lib.flip lib.imap1 deps (index: dep:
             |                                                                                 ^
          193|     if lib.isDerivation dep || isNull dep || builtins.typeOf dep == "string" || builtins.typeOf dep == "path" then dep

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/lists.nix:117:32:

          116|   */
          117|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                                ^
          118|

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/lists.nix:117:29:

          116|   */
          117|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                             ^
          118|

       … from call site

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:221:13:

          220|       (map (drv: drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost))
          221|       (map (drv: drv.crossDrv or drv) (checkDependencyList "buildInputs" buildInputs))
             |             ^
          222|     ]

       … from call site

       … while evaluating 'getOutput'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/attrsets.nix:598:23:

          597|   */
          598|   getOutput = output: pkg:
             |                       ^
          599|     if ! pkg ? outputSpecified || ! pkg.outputSpecified

       … from call site

       … while evaluating the attribute 'buildInputs' of the derivation 'bibata-cursors-1.1.2'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

       … while evaluating the attribute 'passAsFile'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/build-support/buildenv/default.nix:77:5:

           76|     # XXX: The size is somewhat arbitrary
           77|     passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else [ ];
             |     ^
           78|   }

       … while evaluating the attribute 'passAsFile' of the derivation 'home-manager-path'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

       … while evaluating the attribute 'value'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:576:44:

          575|       defnsByName' = byName "config" (module: value:
          576|           [{ inherit (module) file; inherit value; }]
             |                                            ^
          577|         ) configs;

       … while evaluating 'dischargeProperties'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:827:25:

          826|   */
          827|   dischargeProperties = def:
             |                         ^
          828|     if def._type or "" == "merge" then

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:756:137:

          755|         defs' = concatMap (m:
          756|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                         ^
          757|         ) defs;

       … while evaluating definitions from `/home/bill/.nix-defexpr/channels/home-manager/modules/home-environment.nix':

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:755:28:

          754|         # Process mkMerge and mkIf properties.
          755|         defs' = concatMap (m:
             |                            ^
          756|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:755:17:

          754|         # Process mkMerge and mkIf properties.
          755|         defs' = concatMap (m:
             |                 ^
          756|           map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating the attribute 'values'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:868:7:

          867|     in {
          868|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |       ^
          869|       inherit highestPrio;

       … while evaluating the attribute 'values'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:769:9:

          768|       in {
          769|         values = defs''';
             |         ^
          770|         inherit (defs'') highestPrio;

       … while evaluating the attribute 'mergedValue'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:775:5:

          774|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          775|     mergedValue =
             |     ^
          776|       if isDefined then

       … while evaluating the option `home.activation.installPackages.data':

       … while evaluating the attribute 'value'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:741:9:

          740|     in warnDeprecation opt //
          741|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          742|         inherit (res.defsFinal') highestPrio;

       … while evaluating anonymous lambda

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/modules.nix:292:72:

          291|           # For definitions that have an associated option
          292|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          293|

       … from call site

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/attrsets.nix:401:20:

          400|               then recurse (path ++ [name]) value
          401|               else f (path ++ [name]) value;
             |                    ^
          402|         in mapAttrs g;

       … while evaluating 'g'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/lib/attrsets.nix:398:19:

          397|           g =
          398|             name: value:
             |                   ^
          399|             if isAttrs value && cond value

       … from call site

       … while evaluating the attribute 'data'

       at /home/bill/.nix-defexpr/channels/home-manager/modules/lib/dag.nix:84:9:

           83|         name = n;
           84|         data = v.data;
             |         ^
           85|         after = v.after ++ dagBefore dag n;

       … while evaluating the attribute 'data'

       at /home/bill/.nix-defexpr/channels/home-manager/modules/lib/dag.nix:90:37:

           89|     in if sorted ? result then {
           90|       result = map (v: { inherit (v) name data; }) sorted.result;
             |                                     ^
           91|     } else

       … while evaluating 'mkCmd'

       at /home/bill/.nix-defexpr/channels/home-manager/modules/home-environment.nix:638:17:

          637|       let
          638|         mkCmd = res: ''
             |                 ^
          639|             _iNote "Activating %s" "${res.name}"

       … from call site

       … while evaluating the attribute 'text' of the derivation 'activation-script'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

       … while evaluating the attribute 'buildCommand' of the derivation 'home-manager-generation'

       at /nix/store/gjmj42s0if0fpd3y5p9jkxcpkfvgkd9v-nixos/nixos/pkgs/stdenv/generic/make-derivation.nix:270:7:

          269|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          270|       name =
             |       ^
          271|         let

I don’t use home-manager so I’ll avoid specifically advising any action, but I did want to note that It looks like a fix was merged in nixpkgs recently: clickgen: allow building on Python 3.10+ by lilyinstarlight · Pull Request #178576 · NixOS/nixpkgs · GitHub

1 Like

Thanks for the reply.
So i guess i will just wait a couple days for the changes to come into unstable branch.

But still i wonder if there are some mechanism in nix that allows me to “partially switch”, just install the new packages i want, and don’t touch anything else. Otherwise, i will always have to wait for the broken packages to be fixed before switching to a new generation.

1 Like