WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

aiohttp and overriden python break building #1913

@Zylanx

Description

@Zylanx

When overriding the python interpreter and using aiohttp,

Describe the issue

When overriding the python interpreter and using aiohttp, building seems to break giving the error:

❯ nix build --show-trace
error:
       … while evaluating the attribute 'drvPath'
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/lib/customisation.nix:365:7:
          364|     in commonAttrs // {
          365|       drvPath = assert condition; drv.drvPath;
             |       ^
          366|       outPath = assert condition; drv.outPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:34:12:
           33|
           34|   strict = derivationStrict drvAttrs;
             |            ^
           35|

       … while evaluating derivation 'python3.12-app-0.1.0'
         whose name attribute is located at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/pkgs/stdenv/generic/make-derivation.nix:336:7

       … while evaluating attribute 'propagatedBuildInputs' of derivation 'python3.12-app-0.1.0'
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/pkgs/stdenv/generic/make-derivation.nix:390:7:
          389|       depsHostHostPropagated      = elemAt (elemAt propagatedDependencies 1) 0;
          390|       propagatedBuildInputs       = elemAt (elemAt propagatedDependencies 1) 1;
             |       ^
          391|       depsTargetTargetPropagated  = elemAt (elemAt propagatedDependencies 2) 0;

       … while evaluating the attribute 'out.outPath'
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/lib/customisation.nix:352:13:
          351|             drvPath = assert condition; drv.${outputName}.drvPath;
          352|             outPath = assert condition; drv.${outputName}.outPath;
             |             ^
          353|           } //

       … while evaluating the attribute 'out.outPath'
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/lib/customisation.nix:352:13:
          351|             drvPath = assert condition; drv.${outputName}.drvPath;
          352|             outPath = assert condition; drv.${outputName}.outPath;
             |             ^
          353|           } //

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:44:19:
           43|       value = commonAttrs // {
           44|         outPath = builtins.getAttr outputName strict;
             |                   ^
           45|         drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:34:12:
           33|
           34|   strict = derivationStrict drvAttrs;
             |            ^
           35|

       … while evaluating derivation 'python3.12-aiohttp-3.11.16'
         whose name attribute is located at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/pkgs/stdenv/generic/make-derivation.nix:336:7

       … while evaluating attribute 'nativeBuildInputs' of derivation 'python3.12-aiohttp-3.11.16'
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/pkgs/stdenv/generic/make-derivation.nix:380:7:
          379|       depsBuildBuild              = elemAt (elemAt dependencies 0) 0;
          380|       nativeBuildInputs           = elemAt (elemAt dependencies 0) 1;
             |       ^
          381|       depsBuildTarget             = elemAt (elemAt dependencies 0) 2;

       … in the condition of the assert statement
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/lib/customisation.nix:352:23:
          351|             drvPath = assert condition; drv.${outputName}.drvPath;
          352|             outPath = assert condition; drv.${outputName}.outPath;
             |                       ^
          353|           } //

       … in the right operand of the OR (||) operator
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/pkgs/development/interpreters/python/passthrufun.nix:28:45:
           27|         if lib.isDerivation value then
           28|           lib.extendDerivation (valid value || throw "${name} should use `buildPythonPackage` or `toPythonModule` if it is to be part of the Python packages set.") {} value
             |                                             ^
           29|         else

       … while calling the 'throw' builtin
         at /nix/store/5c9mlv8jgnnl3zmh78ky0hq3rkidhzmk-source/pkgs/development/interpreters/python/passthrufun.nix:28:48:
           27|         if lib.isDerivation value then
           28|           lib.extendDerivation (valid value || throw "${name} should use `buildPythonPackage` or `toPythonModule` if it is to be part of the Python packages set.") {} value
             |                                                ^
           29|         else

       error: cython should use `buildPythonPackage` or `toPythonModule` if it is to be part of the Python packages set.

I am not exactly sure what the issue could be there.

Additional context

Using preferWheels bypasses the issue.

I used nix flake init --template github:nix-community/poetry2nix
I added to mkPoetryApplication:

python =
  let
    testPython = pkgs.python3.override { 
      gdbm = null;
      self = testPython;
    };
  in testPython;

and called poetry add aiohttp
and that was enough to trigger the issue with nix build

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions