From 8a4b47d7cac5c0dbfd76771e07727d5be3623dc4 Mon Sep 17 00:00:00 2001 From: Samuel Ainsworth Date: Mon, 3 Feb 2025 13:43:20 -0500 Subject: [PATCH 1/3] python3Packages.pyobjc-core: init at 11.0 --- .../python-modules/pyobjc-core/default.nix | 61 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 63 insertions(+) create mode 100644 pkgs/development/python-modules/pyobjc-core/default.nix diff --git a/pkgs/development/python-modules/pyobjc-core/default.nix b/pkgs/development/python-modules/pyobjc-core/default.nix new file mode 100644 index 000000000000..5dd7959940ca --- /dev/null +++ b/pkgs/development/python-modules/pyobjc-core/default.nix @@ -0,0 +1,61 @@ +{ + buildPythonPackage, + darwin, + fetchFromGitHub, + lib, + setuptools, +}: + +buildPythonPackage rec { + pname = "pyobjc-core"; + version = "11.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ronaldoussoren"; + repo = "pyobjc"; + tag = "v${version}"; + hash = "sha256-RhB0Ht6vyDxYwDGS+A9HZL9ySIjWlhdB4S+gHxvQQBg="; + }; + + sourceRoot = "source/pyobjc-core"; + + build-system = [ setuptools ]; + + buildInputs = [ + darwin.DarwinTools + darwin.libffi + ]; + + 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 = '' + for file in Modules/objc/test/*.m; do + substituteInPlace "$file" --replace "[[clang::suppress]]" "" + done + + substituteInPlace setup.py \ + --replace-fail "-buildversion" "-buildVersion" \ + --replace-fail "-productversion" "-productVersion" + ''; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${darwin.libffi.dev}/include" + "-Wno-error=cast-function-type-mismatch" + "-Wno-error=unused-command-line-argument" + ]; + + pythonImportsCheck = [ "objc" ]; + + meta = with lib; { + description = "Python <-> Objective-C bridge"; + 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 d366c45cd051..a0e15a43e287 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12317,6 +12317,8 @@ self: super: with self; { pyobihai = callPackage ../development/python-modules/pyobihai { }; + pyobjc-core = callPackage ../development/python-modules/pyobjc-core { }; + pyocd = callPackage ../development/python-modules/pyocd { }; pyocd-pemicro = callPackage ../development/python-modules/pyocd-pemicro { }; From a24313946ddb04b76c4070c9221aa1e13ff97d80 Mon Sep 17 00:00:00 2001 From: Samuel Ainsworth Date: Mon, 3 Feb 2025 13:44:09 -0500 Subject: [PATCH 2/3] python3Packages.pyobjc-framework-Cocoa: init at 11.0 --- .../pyobjc-framework-Cocoa/default.nix | 59 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 61 insertions(+) create mode 100644 pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix 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 { }; From f4305e605c8a4cd812907ab96944a9eafd9d4c3b Mon Sep 17 00:00:00 2001 From: Samuel Ainsworth Date: Mon, 3 Feb 2025 13:44:20 -0500 Subject: [PATCH 3/3] python3Packages.rumps: init at unstable-2025-02-02 --- .../python-modules/rumps/default.nix | 33 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/python-modules/rumps/default.nix diff --git a/pkgs/development/python-modules/rumps/default.nix b/pkgs/development/python-modules/rumps/default.nix new file mode 100644 index 000000000000..1fb1729de358 --- /dev/null +++ b/pkgs/development/python-modules/rumps/default.nix @@ -0,0 +1,33 @@ +{ + buildPythonPackage, + fetchFromGitHub, + lib, + pyobjc-framework-Cocoa, + setuptools, +}: + +buildPythonPackage rec { + pname = "rumps"; + version = "unstable-2025-02-02"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jaredks"; + repo = "rumps"; + rev = "8730e7cff5768dfabecff478c0d5e3688862c1c6"; + hash = "sha256-oNJBpRaCGyOKCgBueRx4YhpNW1OnbIEWEEvlGfyoxUA="; + }; + + build-system = [ setuptools ]; + dependencies = [ pyobjc-framework-Cocoa ]; + + pythonImportsCheck = [ "rumps" ]; + + meta = with lib; { + description = "Ridiculously Uncomplicated macOS Python Statusbar apps"; + homepage = "https://github.com/jaredks/rumps"; + license = licenses.bsd2; + platforms = platforms.darwin; + maintainers = with maintainers; [ samuela ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a103822397d9..def1f363f644 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14441,6 +14441,8 @@ self: super: with self; { rules = callPackage ../development/python-modules/rules { }; + rumps = callPackage ../development/python-modules/rumps { }; + runs = callPackage ../development/python-modules/runs { }; runstats = callPackage ../development/python-modules/runstats { };