Re: NetworkManager Build System

On Tue, 2020-08-25 at 10:48 +0000, Graham White via networkmanager-list 
I have a pull request against the NetworkManager-anyconnect
repository, see

The PR moves my repo from Autotools to the Meson build system.  Prior
to considering whether to accept the PR, I wanted to check the future
direction of NetworkManager in terms of the build system being used
as I would prefer to stay aligned with this and the other closely
related projects.

Are there any plans to move away from Autotools?  If so, which build
system(s) is under consideration?

Many thanks,

Hi Graham,

first of all, VPN plugins are entirely separate from NetworkManager,
they only need to implement the API. Meaning, what matters is that

 - they talk the D-Bus API with NetworkManager.

 - they can register themself towards NetworkManager with a file like

 - optionally, they provide a glib based shared library to integrate
with libnm (as indicated in the .name file).

 - optionally, the provide an auth-dialog (as indicated in the .name

that means, you can implement a VPN plugin in any language you deem
suitable (and use any build system).

Of course, there is some value in having all VPN plugins being similar
(e.g. using C, glib, libnm, libnma).

NetworkManager itself is primarily autotools and an experimental meson
setup. Probably one day, the meson setup will replace autotools
entirely. There is no timeline for that. One problem is that meson
eagerly bumps the python3 dependency, while we still want to build
NetworkManager on systems that are python2-only or use an older
python3. With time, this problem will probably go away.

For other components like VPN plugins, libnma and network-manager-
applet, the portability issue for meson is less of a concern. I think
it makes sense to switch those to meson-only today. Many GNOME projects
are already meson-only.

TL;DR: nowadays, I think it's fine for most projects to be meson-only.


Attachment: signature.asc
Description: This is a digitally signed message part

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]