Issue building NixOS due to sip package

I tried rebuilding NixOS today after updating my flake and got an error: error: sip-4.19.25 not supported for interpreter python3.12

I don’t know where this is from in my flake but is most likely due to a dependency of some other package.


The “default” Python 3 was switched to Python 3.12 recently, it looks like it broke a few things. I’m guessing the culprit in this case is hplip, since that’s most likely to appear on any given machine.

I filed a ticket for the hplip failure. Not 100% sure what the best solution is. I guess if it’s possible without disturbing anything, it’s probably to push hplip back to Python 3.11. Hopefully upstreams will fix their Python 3.12 compatibility issues soon.

Another package that this causes problems with is cura (for 3d printing). I just tried building it when on nixpkgs/master (currently revision 5238ca31b10c3bbf0ff95a602e2f4fce08f8c2ba which includes the fixes from @jchw - thanks!). If I remove cura it builds fine. With cura I get the error message:

error: sip-4.19.25 not supported for interpreter python3.12


  • pyexcel-xls
  • pyexcel-ods

error: nose-1.3.7 not supported for interpreter python3.12

Cura in Nix is a bit out of date. Cura switched to Conan upstream and integrating it with Nix has been a challenge. For more information on that, follow the issue here:

Unfortunately for now your best bet is to get Cura binaries from outside of Nixpkgs, using Flatpak or AppImage. I think with some effort and FOD we could get Cura updated sooner, but I think there is an appetite to wait until an elegant solution with Conan is devised.

1 Like

Created a PR for it.

1 Like

Thanks for the info and the link to the issue, good to know.

The openshot-qt package has the exact same issue. For now I have removed it from my system.packages, which seemed to do the trick.

Unfortunately it looks like the fix won’t make it into master for some time, since it has yet to make staging-next. That said, you could try installing it as an overlay, like this: Build failure: (again, after pynose removal) error: nose-1.3.7 not supported for interpreter python3.12 · Issue #326323 · NixOS/nixpkgs · GitHub

Until it does make it, our next bet is to remove existent uses of Nose where possible. (And maybe, disable tests where we can’t, though they’ll need to be re-enabled later.)