cript0nauta / pynixify

Nix expression generator for Python projects
GNU General Public License v3.0
64 stars 11 forks source link

attribute 'src' in selection path 'python3Packages."jq".src' not found #40

Closed InLaw closed 4 years ago

InLaw commented 4 years ago
Resolving requests (from NixPackage(attr=folium, version=0.11.0))
Error parsing requirements of /nix/store/xxp5ljnm092c3ni059yrdindyrs6vgh0-holoviews-1.13.2.tar.gz. Assuming it has no dependencies.
Error parsing requirements of /nix/store/62mxgy66prigwzjwni9mb42ngqx91wx2-numpy-1.18.5.zip. Assuming it has no dependencies.
Error parsing requirements of /nix/store/axza81xvwp42v1b7lpxsrdg58vmjsrzk-scikit-learn-0.23.1.tar.gz. Assuming it has no dependencies.
error: --- AttrPathNotFound --- nix-build
attribute 'src' in selection path 'python3Packages."jq".src' not found

/nix/store/r94aa2gj4drkhfvkm2p4ab6cblb6kxlq-python3-3.7.6/lib/python3.7/asyncio/unix_events.py:878: RuntimeWarning: A loop is being detached from a child watcher with pending handlers
  RuntimeWarning)
Traceback (most recent call last):
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/bin/..pynixify-wrapped-wrapped", line 9, in <module>
    sys.exit(main())
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/command.py", line 159, in main
    max_jobs=args.max_jobs,
  File "/nix/store/r94aa2gj4drkhfvkm2p4ab6cblb6kxlq-python3-3.7.6/lib/python3.7/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/nix/store/r94aa2gj4drkhfvkm2p4ab6cblb6kxlq-python3-3.7.6/lib/python3.7/asyncio/base_events.py", line 583, in run_until_complete
    return future.result()
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/command.py", line 197, in _main_async
    for req in all_requirements
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/version_chooser.py", line 104, in require
    reqs: PackageRequirements = await self.evaluate_requirements(pkg)
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/version_chooser.py", line 145, in evaluate_package_requirements
    src = await pkg.source(extra_args)
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/nixpkgs_sources.py", line 51, in source
    return await run_nix_build(*args)
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/nixpkgs_sources.py", line 146, in run_nix_build
    return await _run_nix_build(*args, retries=retries, max_retries=5)
  File "/nix/store/s7jbqin95y5af68y3jc7qz0lmj3r3wbm-python3.7-pynixify-0.1/lib/python3.7/site-packages/pynixify/nixpkgs_sources.py", line 129, in _run_nix_build
    raise NixBuildError(f'nix-build failed with code {status}')
pynixify.exceptions.NixBuildError: nix-build failed with code 1
cript0nauta commented 4 years ago

jq fails because it's nixpkgs expression uses srcs instead of src: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/jq/default.nix. This is technically valid, but doesn't seem to be a good practice. I would prefer to fix this in nixpkgs rather than in pynixify itself.

cript0nauta commented 4 years ago

This was fixed in nixpkgs: https://github.com/NixOS/nixpkgs/pull/95469.

Adding the --nixpkgs https://github.com/NixOS/nixpkgs/archive/20a80c17865dedf9565b4b8b748d56dbefea2976.tar.gz option to pynixify or waiting to nixpkgs-unstable to update with this changes will make jq work.