python3Packages.pynput: unbreak on darwin; add pyobjc-framework-{CoreText,ApplicationServices} (#531586)
This commit is contained in:
@@ -15145,6 +15145,11 @@
|
||||
githubId = 27364685;
|
||||
name = "Lorenzo Pasqui";
|
||||
};
|
||||
l1n = {
|
||||
github = "l1n";
|
||||
githubId = 1367322;
|
||||
name = "Nova DasSarma";
|
||||
};
|
||||
l1npengtul = {
|
||||
email = "l1npengtul@l1npengtul.lol";
|
||||
github = "l1npengtul";
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
xlib,
|
||||
evdev,
|
||||
six,
|
||||
pyobjc-framework-ApplicationServices,
|
||||
pyobjc-framework-Quartz,
|
||||
|
||||
# tests
|
||||
unittestCheckHook,
|
||||
@@ -52,6 +54,11 @@ buildPythonPackage rec {
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
evdev
|
||||
xlib
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# the darwin backend imports HIServices (ApplicationServices) and Quartz
|
||||
pyobjc-framework-ApplicationServices
|
||||
pyobjc-framework-Quartz
|
||||
];
|
||||
|
||||
doCheck = false; # requires running X server
|
||||
@@ -59,7 +66,6 @@ buildPythonPackage rec {
|
||||
nativeCheckInputs = [ unittestCheckHook ];
|
||||
|
||||
meta = {
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
description = "Library to control and monitor input devices";
|
||||
homepage = "https://github.com/moses-palmer/pynput";
|
||||
license = lib.licenses.lgpl3;
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
setuptools,
|
||||
darwin,
|
||||
pyobjc-core,
|
||||
pyobjc-framework-Cocoa,
|
||||
pyobjc-framework-Quartz,
|
||||
pyobjc-framework-CoreText,
|
||||
lib,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyobjc-framework-ApplicationServices";
|
||||
pyproject = true;
|
||||
|
||||
inherit (pyobjc-core) version src;
|
||||
|
||||
sourceRoot = "${src.name}/pyobjc-framework-ApplicationServices";
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
buildInputs = [ darwin.libffi ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
darwin.DarwinTools # sw_vers
|
||||
];
|
||||
|
||||
# Same workaround as pyobjc-framework-Quartz; see
|
||||
# https://github.com/ronaldoussoren/pyobjc/pull/641.
|
||||
postPatch = ''
|
||||
substituteInPlace pyobjc_setup.py \
|
||||
--replace-fail "-buildversion" "-buildVersion" \
|
||||
--replace-fail "-productversion" "-productVersion" \
|
||||
--replace-fail "/usr/bin/sw_vers" "sw_vers" \
|
||||
--replace-fail "/usr/bin/xcrun" "xcrun"
|
||||
'';
|
||||
|
||||
dependencies = [
|
||||
pyobjc-core
|
||||
pyobjc-framework-Cocoa
|
||||
pyobjc-framework-Quartz
|
||||
pyobjc-framework-CoreText
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [
|
||||
"-I${darwin.libffi.dev}/include"
|
||||
"-Wno-error=unused-command-line-argument"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"ApplicationServices"
|
||||
"HIServices"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "PyObjC wrappers for the ApplicationServices framework on macOS";
|
||||
homepage = "https://github.com/ronaldoussoren/pyobjc";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.darwin;
|
||||
maintainers = with lib.maintainers; [ l1n ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
setuptools,
|
||||
darwin,
|
||||
pyobjc-core,
|
||||
pyobjc-framework-Cocoa,
|
||||
pyobjc-framework-Quartz,
|
||||
lib,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyobjc-framework-CoreText";
|
||||
pyproject = true;
|
||||
|
||||
inherit (pyobjc-core) version src;
|
||||
|
||||
sourceRoot = "${src.name}/pyobjc-framework-CoreText";
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
buildInputs = [ darwin.libffi ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
darwin.DarwinTools # sw_vers
|
||||
];
|
||||
|
||||
# Same workaround as pyobjc-framework-Quartz; see
|
||||
# https://github.com/ronaldoussoren/pyobjc/pull/641.
|
||||
postPatch = ''
|
||||
substituteInPlace pyobjc_setup.py \
|
||||
--replace-fail "-buildversion" "-buildVersion" \
|
||||
--replace-fail "-productversion" "-productVersion" \
|
||||
--replace-fail "/usr/bin/sw_vers" "sw_vers" \
|
||||
--replace-fail "/usr/bin/xcrun" "xcrun"
|
||||
'';
|
||||
|
||||
dependencies = [
|
||||
pyobjc-core
|
||||
pyobjc-framework-Cocoa
|
||||
pyobjc-framework-Quartz
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [
|
||||
"-I${darwin.libffi.dev}/include"
|
||||
"-Wno-error=unused-command-line-argument"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"CoreText"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "PyObjC wrappers for the CoreText framework on macOS";
|
||||
homepage = "https://github.com/ronaldoussoren/pyobjc";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.darwin;
|
||||
maintainers = with lib.maintainers; [ l1n ];
|
||||
};
|
||||
}
|
||||
@@ -14804,6 +14804,10 @@ self: super: with self; {
|
||||
|
||||
pyobjc-core = callPackage ../development/python-modules/pyobjc-core { };
|
||||
|
||||
pyobjc-framework-ApplicationServices =
|
||||
callPackage ../development/python-modules/pyobjc-framework-ApplicationServices
|
||||
{ };
|
||||
|
||||
pyobjc-framework-Cocoa = callPackage ../development/python-modules/pyobjc-framework-Cocoa { };
|
||||
|
||||
pyobjc-framework-CoreAudio =
|
||||
@@ -14814,6 +14818,8 @@ self: super: with self; {
|
||||
callPackage ../development/python-modules/pyobjc-framework-CoreBluetooth
|
||||
{ };
|
||||
|
||||
pyobjc-framework-CoreText = callPackage ../development/python-modules/pyobjc-framework-CoreText { };
|
||||
|
||||
pyobjc-framework-Quartz = callPackage ../development/python-modules/pyobjc-framework-Quartz { };
|
||||
|
||||
pyobjc-framework-Security = callPackage ../development/python-modules/pyobjc-framework-Security { };
|
||||
|
||||
Reference in New Issue
Block a user