{ buildPythonPackage, darwin, fetchFromGitHub, lib, pyobjc-core, pyobjc-framework-Cocoa, setuptools, unittestCheckHook, }: buildPythonPackage rec { pname = "pyobjc-framework-libdispatch"; pyproject = true; inherit (pyobjc-core) version src; patches = pyobjc-core.patches or [ ]; sourceRoot = "${src.name}/pyobjc-framework-libdispatch"; build-system = [ setuptools ]; buildInputs = [ darwin.libffi ]; nativeBuildInputs = [ darwin.DarwinTools # sw_vers ]; nativeCheckInputs = [ unittestCheckHook ]; # See https://github.com/ronaldoussoren/pyobjc/pull/641. Unfortunately, we # cannot just pull that diff with fetchpatch due to https://discourse.nixos.org/t/how-to-apply-patches-with-sourceroot/59727. postPatch = '' substituteInPlace pyobjc_setup.py \ --replace-fail "-buildversion" "-buildVersion" \ --replace-fail "-productversion" "-productVersion" \ --replace-fail "/usr/bin/" "" ''; dependencies = [ pyobjc-core pyobjc-framework-Cocoa ]; env.NIX_CFLAGS_COMPILE = toString [ "-I${darwin.libffi.dev}/include" "-Wno-error=unused-command-line-argument" ]; pythonImportsCheck = [ "dispatch" "libdispatch" ]; meta = { description = "PyObjC wrappers for the libdispatch framework on macOS"; homepage = "https://github.com/ronaldoussoren/pyobjc/tree/main/pyobjc-framework-libdispatch"; license = lib.licenses.mit; platforms = lib.platforms.darwin; maintainers = with lib.maintainers; [ prusnak ]; }; }