Package Details: libnm-iwd 1.54.3-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: 38
Popularity: 0.60
First Submitted: 2019-08-10 10:04 (UTC)
Last Updated: 2025-12-15 15:11 (UTC)

Required by (63)

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 7 Next › Last »

maksverver commented on 2025-12-15 17:38 (UTC)

@rubin55: it works for me.

It looks like your problem is caused by g-ir-scanner. Check if you can invoke it manually. If not, try reinstalling python-setuptools, which provides the distutils module nowadays.

This doesn't look like a bug in the networkmanage-iwd package, because it correctly depends on gobject-introspection (which provides g-ir-scanner) and that package correctly depends on python-setuptools, so it sounds like something is wrong on your system.

rubin55 commented on 2025-12-15 17:08 (UTC)

I'm getting an error telling me there is no module named distutils:

Traceback (most recent call last):
  File "/usr/bin/g-ir-scanner", line 99, in <module>
    from giscanner.utils import dll_dirs
  File "/usr/lib/gobject-introspection/giscanner/utils.py", line 385, in <module>
    import distutils.cygwinccompiler
ModuleNotFoundError: No module named 'distutils'
[735/1080] Linking target src/core/devices/wifi/libnm-device-plugin-wifi.so
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
    Aborting...
others/networkmanager-iwd did not go well, please fix...

xAsh commented on 2025-08-07 23:37 (UTC)

Hi buzo, thank you I was able to build it with pkgctl build. Guess it's time do ditch yay.

buzo commented on 2025-08-07 19:25 (UTC) (edited on 2025-08-07 19:25 (UTC) by buzo)

xAsh: Works for me, but I am building in a clean chroot rather than with yay.

 4/85 check-local-exports-libnm                               OK               0.09s
[…]
Ok:                85  
Fail:              0   

xAsh commented on 2025-08-05 20:10 (UTC)

Still fails with 1.54, waiting for the maintainer's input before reporting upstream:

15/85 check-local-exports-libnm                                       FAIL             0.08s   exit status 1
>>> MALLOC_PERTURB_=82 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MESON_TEST_ITERATION=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /home/me/.cache/yay/networkmanager-iwd/src/NetworkManager/tools/check-exports.sh /home/me/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl/libnm.so.0.1.0 /home/me/.cache/yay/networkmanager-iwd/src/NetworkManager/src/libnm-client-impl/libnm.ver
―――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――
>>linker script "/home/me/.cache/yay/networkmanager-iwd/src/NetworkManager/src/libnm-client-impl/libnm.ver" contains symbols that are not exported by library "/home/me/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl/libnm.so.0.1.0":
     1  nm_access_point_get_last_seen@libnm_1_0_6
     2  nm_device_get_metered@libnm_1_0_6
     3  nm_device_wifi_request_scan_options@libnm_1_0_6
     4  nm_device_wifi_request_scan_options_async@libnm_1_0_6
     5  nm_ethtool_optname_is_fec@libnm_1_46_8
     6  nm_ethtool_optname_is_fec@libnm_1_48_18
     7  nm_ethtool_optname_is_fec@libnm_1_50_4
     8  nm_ip_address_dup@libnm_1_30_8
     9  nm_ip_route_dup@libnm_1_30_8
    10  nm_metered_get_type@libnm_1_0_6
    11  nm_setting_connection_autoconnect_slaves_get_type@libnm_1_0_4
    12  nm_setting_connection_get_autoconnect_slaves@libnm_1_0_4
    13  nm_setting_connection_get_mdns@libnm_1_10_14
    14  nm_setting_connection_get_metered@libnm_1_0_6
    15  nm_setting_connection_mdns_get_type@libnm_1_10_14
    16  nm_setting_ethtool_fec_mode_get_type@libnm_1_46_8
    17  nm_setting_ethtool_fec_mode_get_type@libnm_1_48_18
    18  nm_setting_ethtool_fec_mode_get_type@libnm_1_50_4
    19  nm_setting_ip_config_get_dns_priority@libnm_1_2_4
    20  nm_setting_ip_config_get_required_timeout@libnm_1_30_8
    21  nm_setting_wired_get_wake_on_lan@libnm_1_0_6
    22  nm_setting_wired_get_wake_on_lan_password@libnm_1_0_6
    23  nm_setting_wired_wake_on_lan_get_type@libnm_1_0_6
    24  nm_utils_enum_from_str@libnm_1_0_6
    25  nm_utils_enum_to_str@libnm_1_0_6
    26  nm_utils_wifi_2ghz_freqs@libnm_1_0_6
    27  nm_utils_wifi_5ghz_freqs@libnm_1_0_6
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

xAsh commented on 2025-07-28 23:04 (UTC) (edited on 2025-07-28 23:27 (UTC) by xAsh)

Anyone else not able to update because of the check-local-exports-libnm test failing?

16/81 check-local-exports-libnm                                       FAIL             0.13s   exit status 1
>>> MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MALLOC_PERTURB_=240 MESON_TEST_ITERATION=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /home/me/.cache/yay/networkmanager-iwd/src/NetworkManager/tools/check-exports.sh /home/me/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl/libnm.so.0.1.0 /home/me/.cache/yay/networkmanager-iwd/src/NetworkManager/src/libnm-client-impl/libnm.ver
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
>>linker script "/home/me/.cache/yay/networkmanager-iwd/src/NetworkManager/src/libnm-client-impl/libnm.ver" contains symbols that are not exported by library "/home/me/.cache/yay/networkmanager-iwd/src/build/src/libnm-client-impl/libnm.so.0.1.0":
     1  nm_access_point_get_last_seen@libnm_1_0_6
     2  nm_device_get_metered@libnm_1_0_6
     3  nm_device_wifi_request_scan_options@libnm_1_0_6
     4  nm_device_wifi_request_scan_options_async@libnm_1_0_6
     5  nm_ip_address_dup@libnm_1_30_8
     6  nm_ip_route_dup@libnm_1_30_8
     7  nm_metered_get_type@libnm_1_0_6
     8  nm_setting_connection_autoconnect_slaves_get_type@libnm_1_0_4
     9  nm_setting_connection_get_autoconnect_slaves@libnm_1_0_4
    10  nm_setting_connection_get_mdns@libnm_1_10_14
    11  nm_setting_connection_get_metered@libnm_1_0_6
    12  nm_setting_connection_mdns_get_type@libnm_1_10_14
    13  nm_setting_ip_config_get_dns_priority@libnm_1_2_4
    14  nm_setting_ip_config_get_required_timeout@libnm_1_30_8
    15  nm_setting_wired_get_wake_on_lan@libnm_1_0_6
    16  nm_setting_wired_get_wake_on_lan_password@libnm_1_0_6
    17  nm_setting_wired_wake_on_lan_get_type@libnm_1_0_6
    18  nm_utils_enum_from_str@libnm_1_0_6
    19  nm_utils_enum_to_str@libnm_1_0_6
    20  nm_utils_wifi_2ghz_freqs@libnm_1_0_6
    21  nm_utils_wifi_5ghz_freqs@libnm_1_0_6
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

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...