Package Details: networkmanager-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: Network connection manager and user applications; using iwd backend instead of wpa_supplicant
Upstream URL: https://networkmanager.dev/
Licenses: GPL-2.0-or-later, LGPL-2.1-or-later
Conflicts: networkmanager
Provides: networkmanager
Submitter: digitalone
Maintainer: buzo
Last Packager: buzo
Votes: 34
Popularity: 0.020237
First Submitted: 2019-08-10 10:04 (UTC)
Last Updated: 2025-03-05 19:10 (UTC)

Required by (287)

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 »

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

JoeyCorleone commented on 2024-06-22 07:03 (UTC)

Yes, confirmed. As per this comment by heftig:

Thanks to Fabian, as of 2.80.3-1, the development utilities requiring additional dependencies (python, python-packaging, libelf) have been split from glib2 into glib2-devel with proper depends. You may need to add glib2-devel to the makedepends of your packages to get them to build again. At the same time, consider removing python or python-packaging from the makedepends if they were only added to run gdbus-codegen, glib-genmarshal or glib-mkenums.

Taijian commented on 2024-06-21 09:48 (UTC) (edited on 2024-06-21 09:49 (UTC) by Taijian)

Well, in this case glib2-devel should probably be added to makedepends instead of glib2?