From 1fd9c06c6e7d90c41484d0bc941ef77efc4da495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 11 Feb 2024 21:59:22 -0800 Subject: [PATCH] python312Packages.paho-mqtt_2: init at 2.1.0 https://github.com/eclipse/paho.mqtt.python/compare/v1.6.1...v2.1.0 https://github.com/eclipse/paho.mqtt.python/blob/v2.1.0/ChangeLog.txt The ecosystem is still too fragile to promote paho-mqtt 2.x to the version used in the python package set, but we can provide 2.x for applications in nixpkgs. Co-Authored-By: Robert Scott Co-Authored-By: Martin Weinelt --- .../python-modules/paho-mqtt/1.nix | 42 +++++++++++++++++++ .../python-modules/paho-mqtt/default.nix | 41 +++++++++++++----- pkgs/top-level/python-packages.nix | 4 +- 3 files changed, 75 insertions(+), 12 deletions(-) create mode 100644 pkgs/development/python-modules/paho-mqtt/1.nix diff --git a/pkgs/development/python-modules/paho-mqtt/1.nix b/pkgs/development/python-modules/paho-mqtt/1.nix new file mode 100644 index 000000000000..83582102767b --- /dev/null +++ b/pkgs/development/python-modules/paho-mqtt/1.nix @@ -0,0 +1,42 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + isPy3k, + pytestCheckHook, + mock, + six, +}: + +buildPythonPackage rec { + pname = "paho-mqtt"; + version = "1.6.1"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "eclipse"; + repo = "paho.mqtt.python"; + rev = "v${version}"; + hash = "sha256-9nH6xROVpmI+iTKXfwv2Ar1PAmWbEunI3HO0pZyK6Rg="; + }; + + nativeCheckInputs = [ + pytestCheckHook + six + ] ++ lib.optionals (!isPy3k) [ mock ]; + + doCheck = !stdenv.isDarwin; + + pythonImportsCheck = [ "paho.mqtt" ]; + + meta = with lib; { + description = "MQTT version 3.1.1 client class"; + homepage = "https://eclipse.org/paho"; + license = licenses.epl10; + maintainers = with maintainers; [ + mog + dotlambda + ]; + }; +} diff --git a/pkgs/development/python-modules/paho-mqtt/default.nix b/pkgs/development/python-modules/paho-mqtt/default.nix index 83582102767b..437aa9884beb 100644 --- a/pkgs/development/python-modules/paho-mqtt/default.nix +++ b/pkgs/development/python-modules/paho-mqtt/default.nix @@ -2,38 +2,57 @@ lib, stdenv, buildPythonPackage, + pythonOlder, fetchFromGitHub, - isPy3k, + hatchling, pytestCheckHook, - mock, - six, }: -buildPythonPackage rec { +let + testing = fetchFromGitHub { + owner = "eclipse"; + repo = "paho.mqtt.testing"; + rev = "a4dc694010217b291ee78ee13a6d1db812f9babd"; + hash = "sha256-SQoNdkWMjnasPjpXQF2yV97MUra8gb27pc3rNoA8Rjw="; + }; +in buildPythonPackage rec { pname = "paho-mqtt"; - version = "1.6.1"; - format = "setuptools"; + version = "2.1.0"; + pyproject = true; + + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "eclipse"; repo = "paho.mqtt.python"; rev = "v${version}"; - hash = "sha256-9nH6xROVpmI+iTKXfwv2Ar1PAmWbEunI3HO0pZyK6Rg="; + hash = "sha256-VMq+WTW+njK34QUUTE6fR2j2OmHxVzR0wrC92zYb1rY="; }; + build-system = [ + hatchling + ]; + nativeCheckInputs = [ pytestCheckHook - six - ] ++ lib.optionals (!isPy3k) [ mock ]; + ]; doCheck = !stdenv.isDarwin; pythonImportsCheck = [ "paho.mqtt" ]; + preCheck = '' + ln -s ${testing} paho.mqtt.testing + + # paho.mqtt not in top-level dir to get caught by this + export PYTHONPATH=".:$PYTHONPATH" + ''; + meta = with lib; { - description = "MQTT version 3.1.1 client class"; + changelog = "https://github.com/eclipse/paho.mqtt.python/blob/${src.rev}/ChangeLog.txt"; + description = "MQTT version 5.0/3.1.1 client class"; homepage = "https://eclipse.org/paho"; - license = licenses.epl10; + license = licenses.epl20; maintainers = with maintainers; [ mog dotlambda diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 983d0d25bb97..37953d595ed4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9555,7 +9555,9 @@ self: super: with self; { paginate = callPackage ../development/python-modules/paginate { }; - paho-mqtt = callPackage ../development/python-modules/paho-mqtt { }; + paho-mqtt_1 = callPackage ../development/python-modules/paho-mqtt/1.nix { }; + paho-mqtt_2 = callPackage ../development/python-modules/paho-mqtt/default.nix { }; + paho-mqtt = paho-mqtt_1; palace = callPackage ../development/python-modules/palace { };