What I did: sudo nixos-rebuild switch --upgrade
on my desktop computer. I have been regularly running this command about once a day for months, now, and I ran it last night, so this is a recent problem.
What I expected to happen: My computer would update to the latest version of nixpkgs.
What happened: I received an error which prevented the update:
“error: nose-1.3.7 not supported for interpreter python3.12”
Some context: python3.12 is not currently installed on my system. I put “python3Full” in my configuration.nix file, but it seems that it may have been pointing to python3.11 up until now, because nix-store -qR /run/current-system | grep python
doesn’t show anything with a “python3.12” name, only things named “python3.11”. I’m running the latest linux kernel, and I’m on GNOME, with a bunch of other applications installed. I’m not using home manager or flakes.
Some things I tried to fix it: Removing python3Full from my configuration.nix . This didn’t help at all. Switching to python3 instead of python3Full. This also didn’t help. I only have the one line in my configuration.nix which mentions Python, and it is its entry in the “users.users.myusername.packages” list.
3 Likes
I’m stuck on the exact same thing. For me I came here right after solving a similar issue with sip which is discussed here: Issue building NixOS due to sip package
Here is a relevant github issue I found.
2 Likes
I uninstalled “asciinema” from my computer - that fixed the problem. It seems that the nixpkgs maintainers of that package use nose in the “checkPhase” of that package.
1 Like
Thanks for the link. The mention of asciinema in the Build failure: Spotdl issue is what lead to me solving the problem for myself. I have not figured out any particularly convenient and general way of finding problems of this kind, though. One thing that I might try in your situation, if I were to give up on asking other people and given up on finding an approach that I thought was easy, would be running nix-store -q --referrers
on your base python3 packages, and then checking the .nix files responsible for building it in the pkgs directory of nixpkgs for mention of nose
in the checkPhase. But you can likely find an easier and more intelligent approach than that - I’m not an expert, and you might be able to find one or be one.
3 Likes
mirql
July 9, 2024, 11:08am
5
Hello, same thing… what the easiest way to fix this for now?
… while evaluating derivation 'keyd-application-mapper-2.4.3'
whose name attribute is located at /nix/store/yzkx7gx2cn73dh3c7zg5rvgkp3yli1cd-source/pkgs/stdenv/generic/make-derivation.nix:332:7
… while evaluating attribute 'propagatedBuildInputs' of derivation 'keyd-application-mapper-2.4.3'
at /nix/store/yzkx7gx2cn73dh3c7zg5rvgkp3yli1cd-source/pkgs/stdenv/generic/make-derivation.nix:386:7:
385| depsHostHostPropagated = elemAt (elemAt propagatedDependencies 1) 0;
386| propagatedBuildInputs = elemAt (elemAt propagatedDependencies 1) 1;
| ^
387| depsTargetTargetPropagated = elemAt (elemAt propagatedDependencies 2) 0;
… while evaluating derivation 'python3.12-xlib-0.33'
whose name attribute is located at /nix/store/yzkx7gx2cn73dh3c7zg5rvgkp3yli1cd-source/pkgs/stdenv/generic/make-derivation.nix:332:7
… while evaluating attribute 'nativeBuildInputs' of derivation 'python3.12-xlib-0.33'
at /nix/store/yzkx7gx2cn73dh3c7zg5rvgkp3yli1cd-source/pkgs/stdenv/generic/make-derivation.nix:376:7:
375| depsBuildBuild = elemAt (elemAt dependencies 0) 0;
376| nativeBuildInputs = elemAt (elemAt dependencies 0) 1;
| ^
377| depsBuildTarget = elemAt (elemAt dependencies 0) 2;
error: nose-1.3.7 not supported for interpreter python3.12
1 Like
You could remove keyd
from your config.
This issue also occurs with solaar which is brought in by having hardware.logitech.wireless.enable
.
So my wireless mouse will stop working if I disable this.
I guess I need to disable the test for solaar or replace nose with pynose like this:
NixOS:master
← dotlambda:asciinema
opened 01:54PM - 09 Jul 24 UTC
## Description of changes
https://github.com/NixOS/nixpkgs/issues/325657#issuec… omment-2215607366
cc @mirql @sreedevk
<!--
For package updates please link to a changelog or describe changes, this helps your fellow maintainers discover breaking updates.
For new packages please briefly describe the package or provide a link to its homepage.
-->
## Things done
- Built on platform(s)
- [x] x86_64-linux
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [ ] aarch64-darwin
- For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
- [ ] `sandbox = relaxed`
- [ ] `sandbox = true`
- [ ] Tested, as applicable:
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)
- or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
- made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [24.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) (or backporting [23.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) and [24.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2405.section.md) Release notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module
- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
<!--
To help with the large amounts of pull requests, we would appreciate your
reviews of other pull requests, especially simple package updates. Just leave a
comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!
List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
-->
---
Add a :+1: [reaction] to [pull requests you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc
It’s not merged yet, but pynose
may not be in nixpkgs for long because of license issues:
NixOS:master
← mweinelt:drop-pynose
opened 11:32PM - 08 Jul 24 UTC
## Description of changes
https://github.com/mdmintz/pynose/issues/16
https:… //github.com/NixOS/nixpkgs/issues/311054
<!--
For package updates please link to a changelog or describe changes, this helps your fellow maintainers discover breaking updates.
For new packages please briefly describe the package or provide a link to its homepage.
-->
## Things done
- Built on platform(s)
- [x] x86_64-linux
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [ ] aarch64-darwin
- For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
- [ ] `sandbox = relaxed`
- [ ] `sandbox = true`
- [ ] Tested, as applicable:
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)
- or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
- made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [24.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) (or backporting [23.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) and [24.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2405.section.md) Release notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module
- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
<!--
To help with the large amounts of pull requests, we would appreciate your
reviews of other pull requests, especially simple package updates. Just leave a
comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!
List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
-->
---
Add a :+1: [reaction] to [pull requests you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc
I see many of these fixes are setting doCheck
to false. However solaar
fails despite doCheck
already being false?
nix-repl> pkgs = import (fetchTarball "https://github.com/nixos/nixpkgs/archive/655a58a72a6601292512670343087c2d75d859c1.tar.gz") {}
nix-repl> pkgs.solaar.doCheck
false
nix-repl> :b pkgs.solaar
error:
… while evaluating the attribute 'drvPath'
at /nix/store/yzkx7gx2cn73dh3c7zg5rvgkp3yli1cd-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 /builtin/derivation.nix:9:12: (source not available)
(stack trace truncated; use '--show-trace' to show the full trace)
error: nose-1.3.7 not supported for interpreter python3.12
Can I somehow remove nose using overridePythonAttrs
or an overlay? I re-reviewed Nixpkgs Reference Manual and looked over nixpkgs/pkgs/applications/misc/solaar/default.nix at 655a58a72a6601292512670343087c2d75d859c1 · NixOS/nixpkgs · GitHub
I’m confused though since there is no mention of nose that I can remove.
Solaar depends on xlib, which does depend on nose.
hexa
July 9, 2024, 3:10pm
12
I am removing pynose
in python312Packages.pynose: drop due to licensing issues by mweinelt · Pull Request #325669 · NixOS/nixpkgs · GitHub due to its license violating the license of nose itself.
The recommendation for those packages is
Check whether the tests can be migrated to another test-runner (e.g. pytest)
File an issue upstream to make them aware, that nose does not work with Python 3.12
Set doCheck = pythonOlder "3.12"
for affected packages
Regrettably, I don’t have time to learn more about python packaging in Nix to be able to pursue the recommended options.
I’ve resolved my issue with the doCheck = false;
hammer in an overlay:
final: prev: {
python = prev.python3.override {
packageOverrides = prev: final: {
xlib = final.xlib.overridePythonAttrs (old: { doCheck = false; });
};
};
}
Though truthfully even this quick and dirty method took an hour to track down the error and find a fix that lets me update my machine.
hexa
July 9, 2024, 3:16pm
14
1 Like
For anyone else that comes across this issue: I think the easiest way to fix this is probably just to rollback your flake.lock file (if you have one) to a working version. If you’re using git that should be as easy as git restore flake.lock
which will revert it to the version from your last commit, without rolling anything else back.
Workaround for jellyfin-mpv-shim
if you don’t need the system tray functionality (which depends on python xlib which depends on nose):
(pkgs.jellyfin-mpv-shim.overrideAttrs (finalAttrs: previousAttrs: {
propagatedBuildInputs = with python3Packages; [
jellyfin-apiclient-python
mpv
pillow
python-mpv-jsonipc
#pystray
#tkinter
jinja2
pywebview
];
}))
The program will just fallback to the CLI version if the GUI dependencies aren’t supplied.
emily
July 10, 2024, 8:42am
17
iynaix
July 10, 2024, 8:57am
18
nixpkgs.overlays = [
(_: prev: {
python312 = prev.python312.override { packageOverrides = _: pysuper: { nose = pysuper.pynose; }; };
})
];
Sledgehammer for all 3.12 packages using nose.
4 Likes
zelda
July 10, 2024, 4:42pm
19
(nvidia) gwe python3.12-xlib-0.33
zelda
July 10, 2024, 5:20pm
20
doen’t works e.g. for
nativeCheckInputs = with python3Packages; [
nose