Change:
Octoprint can't build on unstable due to a conflict of the required version for . octoprint , while the dependency requires (due to ) . Octoprint builds successfully I ran a between and (known good) , the first bad commit was I suspect that it's necessary to pin the additional dependencies (and maybe some more), too, but I'm not that experienced with packaging python packages. made the first bad commit Octoprint maintainers: system: host os: multi-user?: sandbox: version: channels(root): channels(richard): nixpkgs: Maintainer information:

Discussion:
} ) <ins> # Octoprint pulls in celery indirectly but has no support for the up-to-date releases ( self: super: { celery = super.celery.overrideAttrs (oldAttrs: rec { version = "5.0.0"; src = oldAttrs.src.override { inherit version; sha256 = "sha256-MTkw/d3nA9jjcCmjBL+RQpzRGu72PFfebayp2Vjh8lU="; }; doCheck = false; }); } ) # Octoprint would allow later sentry-sdk releases but not later click releases ( self: super: { sentry-sdk = super.sentry-sdk.overrideAttrs (oldAttrs: rec { pname = "sentry-sdk"; version = "1.4.3"; src = fetchFromGitHub { owner = "getsentry"; repo = "sentry-python"; rev = version; sha256 = "sha256-vdE6eqELMM69CWHaNYhF0HMCTV3tQsJlMHAA96oCy8c="; }; disabledTests = [ "test_apply_simulates_delivery_info" "test_auto_enabling_integrations_catches_import_error" ]; disabledTestPaths = [ # Don't test integrations "tests/integrations" ]; }); } ) </ins> # Built-in dependency ( self: super: {

wrapt zeroconf zipstream-new <del> ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ]; </del> <ins> ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ]; </ins> <del> checkInputs = with super; [ pytestCheckHook mock ddt ]; </del> <ins> checkInputs = with super; [ ddt mock pytestCheckHook ]; </ins> patches = [ # substitute pip and let it find out, that it can't write anywhere

"colorlog" "emoji" "immutabledict" <ins> "sarge" </ins> "sentry-sdk" "watchdog" "wrapt"

meta = with lib; { homepage = "https://octoprint.org/"; description = "The snappy web interface for your 3D printer"; <del> license = licenses.agpl3; </del> <ins> license = licenses.agpl3Only; </ins> maintainers = with maintainers; [ abbradar gebner WhittlesJr ]; }; };

<del> { lib, buildPythonPackage, fetchPypi , billiard, click, click-didyoumean, click-plugins, click-repl, kombu, pytz, vine , boto3, case, moto, pytest, pytest-celery, pytest-subtests, pytest-timeout </del> <ins> { lib , billiard , boto3 , buildPythonPackage , case , click , click-didyoumean , click-plugins , click-repl , fetchPypi , kombu , moto , pymongo , pytest-celery , pytest-subtests , pytest-timeout , pytestCheckHook , pythonOlder , pytz , vine </ins> }: buildPythonPackage rec { pname = "celery"; version = "5.2.1"; <ins> format = "setuptools"; disabled = pythonOlder "3.7"; </ins> src = fetchPypi { inherit pname version; sha256 = "sha256-tBpZC0nK+OZJilfbYo5YDV+Nxv69oPQt5deDrtW3+Ag="; }; <del> propagatedBuildInputs = [ billiard click click-didyoumean click-plugins click-repl kombu pytz vine ]; </del> <ins> propagatedBuildInputs = [ billiard click click-didyoumean click-plugins click-repl kombu pytz vine ]; checkInputs = [ boto3 case moto pymongo pytest-celery pytest-subtests pytest-timeout pytestCheckHook ]; disabledTestPaths = [ # test_eventlet touches network "t/unit/concurrency/test_eventlet.py" # test_multi tries to create directories under /var "t/unit/bin/test_multi.py" "t/unit/apps/test_multi.py" ]; </ins> <del> checkInputs = [ boto3 case moto pytest pytest-celery pytest-subtests pytest-timeout ]; </del> <ins> disabledTests = [ "msgpack" "test_check_privileges_no_fchown" ]; </ins> <del> # ignore test that's incompatible with pytest5 # test_eventlet touches network # test_mongodb requires pymongo # test_multi tries to create directories under /var checkPhase = '' pytest -k 'not restore_current_app_fallback and not msgpack and not on_apply and not pytest'  --ignore=t/unit/contrib/test_pytest.py  --ignore=t/unit/concurrency/test_eventlet.py  --ignore=t/unit/bin/test_multi.py  --ignore=t/unit/apps/test_multi.py  --ignore=t/unit/backends/test_mongodb.py ''; </del> <ins> pythonImportsCheck = [ "celery" ]; </ins> meta = with lib; { <del> homepage = "https://github.com/celery/celery/"; </del> description = "Distributed task queue"; <ins> homepage = "https://github.com/celery/celery/"; </ins> license = licenses.bsd3; <del> maintainers = [ ]; </del> <ins> maintainers = with maintainers; [ ]; </ins> }; }

<del> { lib, buildPythonPackage, fetchPypi }: </del> <ins> { lib , buildPythonPackage , fetchFromGitHub , pytestCheckHook }: </ins> buildPythonPackage rec { pname = "sarge"; version = "0.1.7"; <ins> format = "setuptools"; </ins> <del> src = fetchPypi { inherit pname version; sha256 = "3b810d396a75a5a2805272f64f4316f6dcc086e0a744b042cdb0effc85c0f21b"; </del> <ins> src = fetchFromGitHub { owner = "vsajip"; repo = pname; rev = version; sha256 = "sha256-E1alSDXj0oeyB6dN5PAtN62FPpMsCKb4R9DpfWdFtn0="; </ins> }; <del> # No tests in PyPI tarball doCheck = false; </del> <ins> checkInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "sarge" ]; </ins> meta = with lib; { <ins> description = "Python wrapper for subprocess which provides command pipeline functionality"; </ins> homepage = "https://sarge.readthedocs.org/"; <del> description = "A wrapper for subprocess which provides command pipeline functionality"; </del> license = licenses.bsd3; maintainers = with maintainers; [ abbradar ]; };