Package Details: libnm-iwd 1.52.0-1

Git Clone URL: https://aur.archlinux.org/networkmanager-iwd.git (read-only, click to copy)
Package Base: networkmanager-iwd
Description: NetworkManager client library with iwd backend
Upstream URL: https://networkmanager.dev/
Licenses: LGPL-2.1-or-later
Conflicts: libnm
Provides: libnm, libnm.so
Submitter: digitalone
Maintainer: buzo
Last Packager: buzo
Votes: 35
Popularity: 1.64
First Submitted: 2019-08-10 10:04 (UTC)
Last Updated: 2025-03-05 19:10 (UTC)

Dependencies (43)

Required by (50)

Sources (2)

Pinned Comments

digitalone commented on 2019-08-10 10:37 (UTC) (edited on 2019-08-15 09:14 (UTC) by digitalone)

This is a modified package configured to get NetworkManager working exclusively with iwd. Main difference with upstream version is that iwd is required and wpa_supplicant is not needed (so you can uninstall it); iwd seems more reliable on certain wireless cards, so someone could prefer it in place of wpa_supplicant.

It's recommended to enable systemd iwd.service at boot: systemctl enable iwd.service

Tested with Plasma NM system tray applet (plasma-nm), it's working.

Note that wpa_supplicant is still needed to build the package, but you can uninstall it after the building stage.

Latest Comments

1 2 3 4 5 6 Next › Last »

infradragon commented on 2025-06-14 03:11 (UTC) (edited on 2025-06-14 03:12 (UTC) by infradragon)

The KDE tray icon cannot see WPA3 networks with iwd, only WPA2. if you connect to a WPA3 network with iwctl, it shows you're connected to a wifi network in the tray icon, but if you click it, it doesnt say what network you're connected to.

if your wifi network supports both WPA3 and WPA2 (like mine) it gets further confused, showing you being both connected to the network and not connected at the same time.

if you connect to such a network from the tray icon, it will connect using WPA2. if you then go into settings and tell it to use WPA3 for that network, it will reconnect to that network using WPA3 successfully, and the tray icon will show that you're connected to a network with the same SSID, but if you click the tray icon, the network you're connected to will show up in the list as if you aren't connected.

if you then connect to the network while you're already connected to it, it makes a duplicate profile in networkmanager with all the default settings and using wpa2, and the old profile will never work again so you have to redo all your settings.

kylebarbour commented on 2025-05-05 19:25 (UTC)

Thanks for the patch. Looks like this was fixed upstream (see commit 12eff9a7), but hasn't made it to the networkmanager package yet.

maksverver commented on 2025-05-02 15:53 (UTC)

The GIRepository error probably needs to be fixed in the official package ("networkmanager" in the "extra" repository), but I was able to work around it with the following patch:

--- NetworkManager/tools/generate-docs-nm-settings-docs-gir.py.orig 2025-05-02 16:49:05.857660587 +0200
+++ NetworkManager/tools/generate-docs-nm-settings-docs-gir.py  2025-05-02 16:52:41.766620480 +0200
@@ -10,22 +10,9 @@
 import gi
 import re

-gi.require_version("GIRepository", "2.0")
+gi.require_version("GIRepository", "3.0")
 from gi.repository import GIRepository

-try:
-    libs = os.environ["LD_LIBRARY_PATH"].split(":")
-    libs.reverse()
-    for lib in libs:
-        GIRepository.Repository.prepend_library_path(lib)
-except AttributeError:
-    # An old GI version, that has no prepend_library_path
-    # It's alright, it probably interprets LD_LIBRARY_PATH
-    # correctly.
-    pass
-except KeyError:
-    pass
-
 gi.require_version("NM", "1.0")
 from gi.repository import NM, GObject

@@ -384,8 +371,4 @@

     args = parser.parse_args()

-    if args.lib_path:
-        for lib in args.lib_path:
-            GIRepository.Repository.prepend_library_path(lib)
-
     main(args.gir, args.output, args.target)

This flat out ignores any custom library paths, which doesn't seem to break anything in an obvious way on my system. There are some invocations with a --lib-path argument. I would guess those are important but I don't really understand this code well enough to say for sure. In any case this patch should only affect generated documentation.

Indianb0y017 commented on 2025-05-01 22:32 (UTC) (edited on 2025-05-01 22:43 (UTC) by Indianb0y017)

Unable to build, even in a clean chroot, due to same error as below, although it seems to stop at:

[869/1069] Linking target src/core/platform/tests/test-route-fake ninja: build stopped: subcommand failed. ==> ERROR: A failure occurred in build(). Aborting...

Phene commented on 2025-04-15 14:41 (UTC)

Can't build this package on latest EndeavourOS with KDE Plasma 6.3.4 and kernel 6.14.2-arch1-1 (64-bits). I get the following error:

FAILED: src/libnm-client-impl/nm-settings-docs-gir-nmcli.xml 
/usr/bin/env GI_TYPELIB_PATH=/home/lucaspierru/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl LD_LIBRARY_PATH=/home/lucaspierru/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl /usr/bin/python3 /home/lucaspierru/.cache/yay/networkmanager-iwd/src/NetworkManager/tools/generate-docs-nm-settings-docs-gir.py --lib-path /home/lucaspierru/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl --gir src/libnm-client-impl/NM-1.0.gir --output src/libnm-client-impl/nm-settings-docs-gir-nmcli.xml --target nmcli
Traceback (most recent call last):
  File "/home/lucaspierru/.cache/yay/networkmanager-iwd/src/NetworkManager/tools/generate-docs-nm-settings-docs-gir.py", line 13, in <module>
    gi.require_version("GIRepository", "2.0")
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/gi/__init__.py", line 132, in require_version
    raise ValueError('Namespace %s not available for version %s' %
                     (namespace, version))
ValueError: Namespace GIRepository not available for version 2.0

maksverver commented on 2025-01-04 13:50 (UTC)

@tamarindx: Another thing you can try is taskset 1 makepkg to lock the job to a single CPU core, so ninja won't spawn as many parallel tasks. (taskset is in the util-linux package.) I'd still recommend disabling LTO though, or compilation will take a long time.

By the way this type of discussion is probably better suited for the Arch Linux forums.

tamarindx commented on 2025-01-04 03:58 (UTC)

@makserver: I've added that line and removes those lines, it is defintely change the compiling proccess from 1000+ to 200+, but that compile proccess still took all my memory and freeze.

maksverver commented on 2025-01-04 01:06 (UTC)

@tamarindx: This is probably caused by a combination of the fact that ninja tries to use all available CPU cores and this package uses LTO which is notoriously memory-intensive, so on a system with lots of CPU cores but relatively little memory, you run out of memory.

Try disabling LTO by applying this patch:

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -20,6 +20,7 @@ pkgdesc="Network connection manager and user applications; using iwd backend ins
 url="https://networkmanager.dev/"
 arch=(x86_64)
 license=(LGPL-2.1-or-later)
+options=(!lto)
 makedepends=(
   audit
   bash
@@ -68,9 +69,6 @@ b2sums=('316b1a2e8dfe4d7c0c0fab36f506a8315bf4045f11c5820fb41ea4735dc0a248c04367b

 build() {
   local meson_options=(
-    # build checks this option; injecting just via *FLAGS is broken
-    -D b_lto=true
-
     # platform
     -D dist_version="$pkgver-$pkgrel"
     -D session_tracking_consolekit=false

This will speed up the build process by a factor 100 or more without any noticeable downsides.

IMO its a mistake to enable LTO for AUR packages like this. Some basic math: enabling LTO increases build time by 60 minutes of CPU-core time. If LTO increases performance by 10% you'd need to spend 600 minutes of CPU time on NetworkManager to recover the loss. Since there is a new version released every month or so, that means you need to spend 20 minutes of CPU-core time per day just to break even. NetworkManager doesn't run that much under normal circumstances. So enabling LTO is just a big waste of CPU cycles.

tamarindx commented on 2025-01-03 22:48 (UTC)

Can't even managed to pass the ninja cmake compile proccess... it's eating all my RAM and freeze.

Taijian commented on 2024-10-09 00:00 (UTC)

While looking at some code over on github, I noticed that for the past two years there has been this build option: -D config_wifi_backend_default=iwd. Using this allows building without wpa-supplicant as a build dependency and without installing that override file into /usr/lib/NetworkManager/conf.d/30-wifi-backend.conf