diff --git a/pkgs/development/python-modules/ethtool/default.nix b/pkgs/development/python-modules/ethtool/default.nix new file mode 100644 index 000000000000..497e6cc88851 --- /dev/null +++ b/pkgs/development/python-modules/ethtool/default.nix @@ -0,0 +1,57 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch2, + setuptools, + pkg-config, + libnl, + nettools, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "ethtool"; + version = "0.15"; + pyproject = true; + + src = fetchFromGitHub { + owner = "fedora-python"; + repo = "python-ethtool"; + rev = "refs/tags/v${version}"; + hash = "sha256-0XzGaqpkEv3mpUsbfOtRl8E62iNdS7kRoo4oYrBjMys="; + }; + + patches = [ + # https://github.com/fedora-python/python-ethtool/pull/60 + (fetchpatch2 { + url = "https://github.com/fedora-python/python-ethtool/commit/f82dd763bd50affda993b9afe3b141069a1a7466.patch"; + hash = "sha256-mtI7XsoyM43s2DFQdsBNpB8jJff7ZyO2J6SHodBrdrI="; + }) + ]; + + postPatch = '' + substituteInPlace tests/parse_ifconfig.py \ + --replace-fail "Popen('ifconfig'," "Popen('${lib.getExe' nettools "ifconfig"}'," + ''; + + build-system = [ setuptools ]; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ libnl ]; + + pythonImportsCheck = [ "ethtool" ]; + + nativeCheckInputs = [ + nettools + pytestCheckHook + ]; + + meta = with lib; { + changelog = "https://github.com/fedora-python/python-ethtool/blob/${src.rev}/CHANGES.rst"; + description = "Python bindings for the ethtool kernel interface"; + homepage = "https://github.com/fedora-python/python-ethtool"; + license = licenses.gpl2Plus; + }; +} diff --git a/pkgs/development/python-modules/python-ethtool/default.nix b/pkgs/development/python-modules/python-ethtool/default.nix deleted file mode 100644 index b140db8c9f22..000000000000 --- a/pkgs/development/python-modules/python-ethtool/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - pkg-config, - libnl, - nettools, -}: - -buildPythonPackage rec { - pname = "python-ethtool"; - version = "0.15"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "fedora-python"; - repo = pname; - rev = "v${version}"; - sha256 = "0arkcfq64a4fl88vjjsx4gd3mhcpa7mpq6sblpkgs4k4m9mccz6i"; - }; - - postPatch = '' - substituteInPlace tests/parse_ifconfig.py --replace "Popen('ifconfig'," "Popen('${nettools}/bin/ifconfig'," - ''; - - buildInputs = [ libnl ]; - nativeBuildInputs = [ pkg-config ]; - pythonImportsCheck = [ "ethtool" ]; - - meta = with lib; { - description = "Python bindings for the ethtool kernel interface"; - homepage = "https://github.com/fedora-python/python-ethtool"; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/development/python-modules/python-linux-procfs/default.nix b/pkgs/development/python-modules/python-linux-procfs/default.nix index f4306acedf71..3a0ed111cb5c 100644 --- a/pkgs/development/python-modules/python-linux-procfs/default.nix +++ b/pkgs/development/python-modules/python-linux-procfs/default.nix @@ -1,21 +1,24 @@ { lib, buildPythonPackage, - fetchzip, + fetchurl, + setuptools, six, }: buildPythonPackage rec { pname = "python-linux-procfs"; - version = "0.6.3"; - format = "setuptools"; + version = "0.7.3"; + pyproject = true; - src = fetchzip { + src = fetchurl { url = "https://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git/snapshot/python-linux-procfs-v${version}.tar.gz"; - hash = "sha256-iaKL7CWJbIvvcUCah7bKdwKZoZJehbQpZ7n0liO8N64="; + hash = "sha256-6js8+PBqMwNYSe74zqZP8CZ5nt1ByjCWnex+wBY/LZU="; }; - propagatedBuildInputs = [ six ]; + build-system = [ setuptools ]; + + dependencies = [ six ]; # contains no tests doCheck = false; diff --git a/pkgs/os-specific/linux/tuna/default.nix b/pkgs/os-specific/linux/tuna/default.nix index a75e9ec4f6a1..18b907aacb13 100644 --- a/pkgs/os-specific/linux/tuna/default.nix +++ b/pkgs/os-specific/linux/tuna/default.nix @@ -1,36 +1,37 @@ -{ lib -, buildPythonApplication -, fetchzip -, pygobject3 -, glib -, gobject-introspection -, gtk3 -, python-linux-procfs -, python-ethtool -, wrapGAppsHook3 +{ + lib, + python3, + fetchurl, + glib, + gobject-introspection, + gtk3, + wrapGAppsHook3, }: -buildPythonApplication rec { +python3.pkgs.buildPythonApplication rec { pname = "tuna"; - version = "0.15"; + version = "0.19"; + pyproject = true; - src = fetchzip { + src = fetchurl { url = "https://git.kernel.org/pub/scm/utils/tuna/tuna.git/snapshot/tuna-v${version}.tar.gz"; - sha256 = "MwyLBwKz5ur1sBXHiCLq/Nq2u5aaiC+KzXqvGBmQii8="; + hash = "sha256-t10CxtwnTOg1uQgm6mTrNUIU8LkXJ3BkTycjWteQvuU="; }; postPatch = '' mv tuna-cmd.py tuna/cmd.py substituteInPlace setup.py \ - --replace 'packages = ["tuna", "tuna/gui"],' \ - 'packages = ["tuna", "tuna/gui"], entry_points={"console_scripts":["tuna=tuna.cmd:main"]},' + --replace-fail 'packages = ["tuna", "tuna/gui"],' \ + 'packages = ["tuna", "tuna/gui"], entry_points={"console_scripts":["tuna=tuna.cmd:main"]},' substituteInPlace tuna/tuna_gui.py \ - --replace "self.binpath + 'pkexec'" "'/run/wrappers/bin/pkexec'" \ - --replace 'tuna_glade_dirs = [".", "tuna", "/usr/share/tuna"]' "tuna_glade_dirs = [ \"$out/share/tuna\" ]" + --replace-fail "self.binpath + 'pkexec'" "'/run/wrappers/bin/pkexec'" \ + --replace-fail 'tuna_glade_dirs = [".", "tuna", "/usr/share/tuna"]' "tuna_glade_dirs = [ \"$out/share/tuna\" ]" ''; + build-system = with python3.pkgs; [ setuptools ]; + nativeBuildInputs = [ glib.dev gobject-introspection @@ -38,7 +39,11 @@ buildPythonApplication rec { wrapGAppsHook3 ]; - propagatedBuildInputs = [ pygobject3 python-linux-procfs python-ethtool ]; + dependencies = with python3.pkgs; [ + pygobject3 + python-linux-procfs + ethtool + ]; postInstall = '' mkdir -p $out/share/tuna diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b42940590f6e..7442b5c31d0a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -34470,7 +34470,7 @@ with pkgs; tudu = callPackage ../applications/office/tudu { }; - tuna = python3Packages.callPackage ../os-specific/linux/tuna { }; + tuna = callPackage ../os-specific/linux/tuna { }; tunefish = callPackage ../applications/audio/tunefish { stdenv = clangStdenv; # https://github.com/jpcima/tunefish/issues/4 diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 8824c33ed1a4..1798f32356a7 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -406,6 +406,7 @@ mapAliases ({ PyMVGLive = pymvglive; # added 2023-02-19 pymyq = python-myq; # added 2023-10-20 pynose = throw "pynose was removed, because it violates the license of nose, by redistributing modified LGPL code under MIT."; + python-ethtool = ethtool; # added 2024-07-23 python-myq = throw "python-myq has been removed, as the service provider has decided to block its API requests"; # added 2023-12-07 pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09 pyqt5_sip = pyqt5-sip; # added 2024-01-07 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8add59eed71b..45a0b5511cd6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4000,6 +4000,8 @@ self: super: with self; { eth-utils = callPackage ../development/python-modules/eth-utils { }; + ethtool = callPackage ../development/python-modules/ethtool { }; + etils = callPackage ../development/python-modules/etils { }; etuples = callPackage ../development/python-modules/etuples { }; @@ -12646,8 +12648,6 @@ self: super: with self; { python-etcd = callPackage ../development/python-modules/python-etcd { }; - python-ethtool = callPackage ../development/python-modules/python-ethtool { }; - python-ev3dev2 = callPackage ../development/python-modules/python-ev3dev2 { }; python-fedora = callPackage ../development/python-modules/python-fedora { };