diff --git a/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix b/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix new file mode 100644 index 000000000000..004757337266 --- /dev/null +++ b/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix @@ -0,0 +1,59 @@ +{ + buildPythonPackage, + darwin, + fetchFromGitHub, + lib, + pyobjc-core, + setuptools, +}: + +buildPythonPackage rec { + pname = "pyobjc-framework-Cocoa"; + version = "11.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ronaldoussoren"; + repo = "pyobjc"; + tag = "v${version}"; + hash = "sha256-RhB0Ht6vyDxYwDGS+A9HZL9ySIjWlhdB4S+gHxvQQBg="; + }; + + sourceRoot = "source/pyobjc-framework-Cocoa"; + + build-system = [ setuptools ]; + + buildInputs = [ + darwin.libffi + darwin.DarwinTools + ]; + + nativeBuildInputs = [ + darwin.DarwinTools # sw_vers + ]; + + # 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" + ''; + + dependencies = [ pyobjc-core ]; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${darwin.libffi.dev}/include" + "-Wno-error=unused-command-line-argument" + ]; + + pythonImportsCheck = [ "Cocoa" ]; + + meta = with lib; { + description = "PyObjC wrappers for the Cocoa frameworks on macOS"; + homepage = "https://github.com/ronaldoussoren/pyobjc"; + license = licenses.mit; + platforms = platforms.darwin; + maintainers = with maintainers; [ samuela ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a0e15a43e287..a103822397d9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12319,6 +12319,8 @@ self: super: with self; { pyobjc-core = callPackage ../development/python-modules/pyobjc-core { }; + pyobjc-framework-Cocoa = callPackage ../development/python-modules/pyobjc-framework-Cocoa { }; + pyocd = callPackage ../development/python-modules/pyocd { }; pyocd-pemicro = callPackage ../development/python-modules/pyocd-pemicro { };