From e597e50ab497b0b2850861a1987cf86f6b8430df Mon Sep 17 00:00:00 2001 From: ktechmidas Date: Wed, 27 Aug 2025 15:01:25 +0300 Subject: [PATCH 1/3] maintainers: add ktechmidas --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 9ed80895b3d0..2631a714672b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13854,6 +13854,12 @@ github = "KSJ2000"; githubId = 184105270; }; + ktechmidas = { + email = "daniel@ktechmidas.net"; + github = "ktechmidas"; + githubId = 9920871; + name = "Monotoko"; + }; ktf = { email = "giulio.eulisse@cern.ch"; github = "ktf"; From e91003d551ec2cda21eabc11025bd7454e7b7f5c Mon Sep 17 00:00:00 2001 From: ktechmidas Date: Wed, 27 Aug 2025 15:01:49 +0300 Subject: [PATCH 2/3] python3Packages.nmcli: init at 1.5.0 --- .../python-modules/nmcli/default.nix | 42 +++++++++++++++++++ .../python-modules/nmcli/nmcli-path.patch | 11 +++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 55 insertions(+) create mode 100644 pkgs/development/python-modules/nmcli/default.nix create mode 100644 pkgs/development/python-modules/nmcli/nmcli-path.patch diff --git a/pkgs/development/python-modules/nmcli/default.nix b/pkgs/development/python-modules/nmcli/default.nix new file mode 100644 index 000000000000..36cb2cf99b4c --- /dev/null +++ b/pkgs/development/python-modules/nmcli/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + replaceVars, + setuptools, + wheel, + networkmanager, +}: + +buildPythonPackage rec { + pname = "nmcli"; + version = "1.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ushiboy"; + repo = "nmcli"; + tag = "v${version}"; + hash = "sha256-1gVj4WfTx1NcoyWA9OK5EyGze9hmrXV0Mq50C1S3bfM="; + }; + + build-system = [ + setuptools + wheel + ]; + + patches = [ + (replaceVars ./nmcli-path.patch { + nmcli = lib.getExe' networkmanager "nmcli"; + }) + ]; + + meta = { + description = "Python library for interacting with NetworkManager CLI"; + homepage = "https://github.com/ushiboy/nmcli"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ktechmidas ]; + inherit (networkmanager.meta) platforms; + changelog = "https://github.com/ushiboy/nmcli/releases/tag/v${version}"; + }; +} diff --git a/pkgs/development/python-modules/nmcli/nmcli-path.patch b/pkgs/development/python-modules/nmcli/nmcli-path.patch new file mode 100644 index 000000000000..13d39a649c8c --- /dev/null +++ b/pkgs/development/python-modules/nmcli/nmcli-path.patch @@ -0,0 +1,11 @@ +--- a/nmcli/_system.py ++++ b/nmcli/_system.py +@@ -43,7 +43,7 @@ class System: + def nmcli(self, parameters: CommandParameter) -> str: + if isinstance(parameters, str): + parameters = [parameters] +- c = ['sudo', 'nmcli'] if self._use_sudo else ['nmcli'] ++ c = ['sudo', '@nmcli@'] if self._use_sudo else ['@nmcli@'] + commands = c + parameters + try: + env = dict(os.environ, **{'LANG': self._lang}) \ No newline at end of file diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f4128c2b6fc7..05eec95a75b4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10461,6 +10461,8 @@ self: super: with self; { nmapthon2 = callPackage ../development/python-modules/nmapthon2 { }; + nmcli = callPackage ../development/python-modules/nmcli { }; + nnpdf = toPythonModule (pkgs.nnpdf.override { python3 = python; }); noaa-coops = callPackage ../development/python-modules/noaa-coops { }; From b65a6037444fc213e9e35e9016d7c70b0dc24b14 Mon Sep 17 00:00:00 2001 From: ktechmidas Date: Wed, 27 Aug 2025 15:02:08 +0300 Subject: [PATCH 3/3] nmgui: init at 1.0.0 --- pkgs/by-name/nm/nmgui/package.nix | 82 +++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 pkgs/by-name/nm/nmgui/package.nix diff --git a/pkgs/by-name/nm/nmgui/package.nix b/pkgs/by-name/nm/nmgui/package.nix new file mode 100644 index 000000000000..c9841e537631 --- /dev/null +++ b/pkgs/by-name/nm/nmgui/package.nix @@ -0,0 +1,82 @@ +{ + lib, + python3Packages, + fetchFromGitHub, + wrapGAppsHook4, + gobject-introspection, + gtk4, + glib, + makeDesktopItem, + copyDesktopItems, + networkmanager, +}: + +python3Packages.buildPythonApplication rec { + pname = "nmgui"; + version = "1.0.0"; + format = "other"; + + src = fetchFromGitHub { + owner = "s-adi-dev"; + repo = "nmgui"; + tag = "v${version}"; + hash = "sha256-HS/n40Ng8S5N14DtEH/upwlxdzwCoOEJA40EMdCcLw4=io"; + }; + + nativeBuildInputs = [ + wrapGAppsHook4 + gobject-introspection + copyDesktopItems + ]; + + buildInputs = [ + gtk4 + glib + ]; + + dependencies = with python3Packages; [ + pygobject3 + nmcli + ]; + + desktopItems = [ + (makeDesktopItem { + name = "nmgui"; + exec = "nmgui"; + icon = "network-wireless-symbolic"; + comment = "GTK4-based Network Manager GUI using nmcli"; + desktopName = "NM GUI"; + categories = [ + "Network" + "GTK" + ]; + startupNotify = true; + }) + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,share/applications,opt/nmgui} + # Copy the app files + cp -r app $out/opt/nmgui/ + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${python3Packages.python.interpreter} $out/bin/nmgui \ + --add-flags "$out/opt/nmgui/app/main.py" \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + "''${gappsWrapperArgs[@]}" + ''; + + meta = { + description = "Python library for interacting with NetworkManager CLI"; + homepage = "https://github.com/s-adi-dev/nmgui"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ ktechmidas ]; + mainProgram = "nmgui"; + inherit (networkmanager.meta) platforms; + changelog = "https://github.com/s-adi-dev/nmgui/releases/tag/v${version}"; + }; +}