summaryrefslogtreecommitdiff
path: root/meson_options.txt
Commit message (Collapse)AuthorAgeFilesLines
* core: add main.auth-polkit option "root-only"Thomas Haller2019-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | We always build with PolicyKit support enabled, because it has no additional dependencies, beside some D-Bus calls. However, in NetworkManager.conf the user could configure "main.auth-polkit" to disable PolicyKit. However, previously it would only allow to disable PolicyKit while granting access to all users. I think it's useful to have an option that disables PolicyKit and grants access only to root. I think we should not go too far in implementing our own authorization mechanisms beside PolicyKit (e.g. you cannot disable PolicyKit and grant access based on group membership of the user). However, disabling PolicyKit can be useful sometimes, and it's simple to implement a "root-only" setup. Note one change is that when NetworkManager now runs without a D-Bus connection (in initrd), it would deny all non-root requests. Previously it would grant access. I think there should be little difference in practice, because if we have no D-Bus we also don't have any requests to authenticate. (cherry picked from commit 6d7446e52f5bfe379c2b1f54f9244b33fd236e32)
* build/meson: allow configuring default for main.auth-polkit settingThomas Haller2019-12-111-0/+1
| | | | | | | | | | | | | | | We always build PolicyKit support, because it merely depends on some D-Bus calls. However, there are two things to configure: - the default value for main.auth-polkit in NetworkManager.conf. This is now called "-Dconfig_auth_polkit_default=$VAL". - whether to install the policy file. This is called "-Dpolkit=$VAL". These settings are mostly independent, so add "config_auth_polkit_default" to make the default explicitly configurable. (cherry picked from commit c21c6bc0be2a4467402bc2d8718859dedb10b676)
* cloud-setup: add comment that the tool is still experimentalThomas Haller2019-12-021-1/+1
| | | | (cherry picked from commit 16223cff9172e8b1ea7974af4d613406b0f56607)
* cloud-setup: add tool for automatic IP configuration in cloudThomas Haller2019-11-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is a tool for automatically configuring networking in a cloud environment. Currently it only supports IPv4 on EC2, but it's intended for extending to other cloud providers (Azure). See [1] and [2] for how to configure secondary IP addresses on EC2. This is what the tool currently aims to do (but in the future it might do more). [1] https://aws.amazon.com/premiumsupport/knowledge-center/ec2-ubuntu-secondary-network-interface/ It is inspired by SuSE's cloud-netconfig ([1], [2]) and ec2-net-utils package on Amazon Linux ([3], [4]). [1] https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/ [2] https://github.com/SUSE-Enceladus/cloud-netconfig [3] https://github.com/aws/ec2-net-utils [4] https://github.com/lorengordon/ec2-net-utils.git It is also intended to work without configuration. The main point is that you boot an image with NetworkManager and nm-cloud-setup enabled, and it just works.
* dhcp: add nettools dhcp4 clientTom Gundersen2019-07-051-1/+1
| | | | | | | | | | | | | | | | | | | This is inspired by the existing systemd integration, with a few differences: * This parses the WPAD option, which systemd requested, but did not use. * We hook into the DAD handling, only making use of the configured address once DAD has completed successfully, and declining the lease if it fails. There are still many areas of possible improvement. In particular, we need to ensure the parsing of all options are compliant, as n-dhcp4 treats all options as opaque, unlike sd-dhcp4. We probably also need to look at how to handle failures and retries (in particular if we decline a lease). We need to query the current MTU at client startu, as well as the hardware broadcast address. Both these are provided by the kernel over netlink, so it should simply be a matter of hooking that up with NM's netlink layer. Contribution under LGPL2.0+, in addition to stated licenses.
* settings: drop ibft settings pluginth/drop-ibft-settings-pluginThomas Haller2019-06-201-1/+0
| | | | | | | | | | | | | | | The functionality of the ibft settings plugin is now handled by nm-initrd-generator. There is no need for it anymore, drop it. Note that ibft called iscsiadm, which requires CAP_SYS_ADMIN to work ([1]). We really want to drop this capability, so the current solution of a settings plugin (as it is implemented) is wrong. The solution instead is nm-initrd-generator. Also, on Fedora the ibft was disabled and probably on most other distributions as well. This was only used on RHEL. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1371201#c7
* all: goodbye libnm-glibLubomir Rintel2019-04-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | This removes libnm-glib, libnm-glib-vpn, and libnm-util for good. The it has been replaced with libnm since NetworkManager 1.0, disabled by default since 1.12 and no up-to-date distributions ship it for years now. Removing the libraries allows us to: * Remove the horrible hacks that were in place to deal with accidental use of both the new and old library in a single process. * Relief the translators of maintenance burden of similar yet different strings. * Get rid of known bad code without chances of ever getting fixed (libnm-glib/nm-object.c and libnm-glib/nm-object-cache.c) * Generally lower the footprint of the releases and our workspace If there are some really really legacy users; they can just build libnm-glib and friends from the NetworkManager-1.16 distribution. The D-Bus API is stable and old libnm-glib will keep working forever. https://github.com/NetworkManager/NetworkManager/pull/308
* Revert "all: goodbye libnm-glib"Lubomir Rintel2019-04-031-0/+1
| | | | | | We need this for a little little longer :( This reverts commit 1de8383ad9fdfc8f552117e5d109bdfa7005634b.
* all: goodbye libnm-glibLubomir Rintel2019-03-191-1/+0
| | | | | | | | | | | | | | | | | | | | | | | This removes libnm-glib, libnm-glib-vpn, and libnm-util for good. The it has been replaced with libnm since NetworkManager 1.0, disabled by default since 1.12 and no up-to-date distributions ship it for years now. Removing the libraries allows us to: * Remove the horrible hacks that were in place to deal with accidental use of both the new and old library in a single process. * Relief the translators of maintenance burden of similar yet different strings. * Get rid of known bad code without chances of ever getting fixed (libnm-glib/nm-object.c and libnm-glib/nm-object-cache.c) * Generally lower the footprint of the releases and our workspace If there are some really really legacy users; they can just build libnm-glib and friends from the NetworkManager-1.16 distribution. The D-Bus API is stable and old libnm-glib will keep working forever. https://github.com/NetworkManager/NetworkManager/pull/308
* build: meson: Use variables present in pkg-config filesIñigo Martínez2018-12-201-3/+0
| | | | | | | | | | | | | | | | | | | Although some paths related to DBus and PolicyKit are present in their pkg-config files, those paths might not be writable for the user. To solve this issue, some build options are present that can be used to choose a different location. However, usually these paths are relative to some other variables such as `prefix`, `datadir`, etc. Using the `define_variable` option the relative path can be change to point to a directory under prefix. These paths are now using relative paths based on the installation `prefix` and their related options have been removed as they are unnecessary now. Only `dbus_conf_dir` option has been left because it must be modified depending on the distribution[0]. [0] contrib/fedora/rpm/NetworkManager.spec
* build: meson: Remove polkit_dir optionIñigo Martínez2018-12-201-1/+1
| | | | | | | | | | | | meson is able to get variables defined in pkg-config files such as directory paths. PolicyKit defines in its pkg-config file the path to the directory where `policy` files are present. This removes the `polkit_dir` option to ease the move to start using those variables. The `polkit` variable has also been converted to boolean. Fedora spec script has also been updated accordingly.
* meson: add check on settings docsBeniamino Galvani2018-12-121-1/+0
| | | | | Move the autotools check on settings docs to a shell script and call it from meson too.
* doc,all: fix spelling of Open vSwitch (instead of OpenVSwitch)Thomas Haller2018-11-281-1/+1
| | | | | | Also affects documentation and translated strings. Reported-by: Flavio Leitner <fbl@redhat.com>
* build: autodetect ebpf supportBeniamino Galvani2018-09-191-1/+1
|
* build: meson: check vapi prerequisites and allow autodetectionBeniamino Galvani2018-09-191-1/+1
| | | | | | | | Turn the vapi option into a combo that allows autodetection and check whether all prerequisites are satisfied (including introspection support) when vapi is explicitly enabled. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/28
* build: allow disabling eBPF support in n-acdbg/n-acd-updateBeniamino Galvani2018-09-181-0/+1
| | | | | | | | | | Add a configure option to disable eBPF support in n-acd. Note that, even if eBPF is not supported, n-acd requires a kernel > 3.19, which means that the setsockopt(..., SO_ATTACH_BPF) option must be defined. To allow building on older kernels without modifying the n-acd code, we inject the SO_ATTACH_BPF value as a preprocessor define in the compiler the command line.
* build: meson: uniform handling of rc managersBeniamino Galvani2018-09-131-2/+2
| | | | | | Handle all rc managers paths through the same code. (cherry picked from commit 2fd7559819c2de392d6964cacc0032d2066d0d6e)
* build: meson: uniform handling of dhcp client pathsBeniamino Galvani2018-09-131-3/+3
| | | | | | Handle all dhcp client paths through the same code. (cherry picked from commit 36b0e46146ec7f67acb365e83e306d781f198d1c)
* build: remove check on dhcpcd version numberBeniamino Galvani2018-09-131-2/+1
| | | | | | | dhcpcd version 6, the first supporting IPv6, was released more than 5 years ago. Remove all checks on version number and IPv6 support. (cherry picked from commit e0c49d7341a0329e2c40e25fee5d3ce249f5ebe6)
* build: remove check on dhclient versionBeniamino Galvani2018-09-131-1/+1
| | | | | | | | dhclient 4.0 was released more than 10 years ago. I think it is reasonable to expect that nobody is using an older version today. https://source.isc.org/cgi-bin/gitweb.cgi?p=dhcp.git;a=shortlog;h=refs/tags/v4_0_0 (cherry picked from commit 9e61ea70402b5d8140de512bdcf84252fcb0d11c)
* build: meson: fix pppd pathBeniamino Galvani2018-09-131-1/+1
| | | | | | Allow specifying a non-existent path. (cherry picked from commit 794e499ab8b8825d9794d7c2e320b10909fc3ba3)
* build: meson: fix setting iptables/dnsmasq/dnssec-trigger pathsBeniamino Galvani2018-09-131-3/+3
| | | | | | | | | | | | Handle the iptables, dnsmasq and dnssec-trigger paths in the same way through common code. The path set by user must be accepted as is, even if does not exist, because this is a requirement for cross-compilation. When user does not specify a path, search a predefined set of paths and fall back to an hardcoded one. (cherry picked from commit 220dea0948a22dfbdddb91ed76a23ae20d2c5810)
* build/meson: fix build options for suspend-resumeThomas Haller2018-08-271-1/+1
| | | | | | suspend-resume must be selectable, out of for possible options. We can do auto-detection based on present libraries, but it shall be selectable. Like it is with autotools.
* build: cleanup build defines for session-trackingThomas Haller2018-08-271-1/+1
| | | | | | | | | | | | | - always define the SESSION_TRACKING_* defines to replace "#ifdef" with "#if". - drop defining the consolekit database path CKDB_PATH in config.h. The path was not customizable via configure/meson. - fix meson build to enable consolekit support for session tracking without also enabling logind/elogind session tracking. logind/elogind is mutually exclusive, but consolekit session tracking goes together just fine.
* logging: warn about invalid logging backends and drop "debug" backendThomas Haller2018-06-271-1/+1
| | | | | | | | | | | | | | | | | | | "debug" was documentation in `man NetworkManager.conf` as a valid logging backend. However, it was completely ignored by nm_logging_syslog_openlog(). In fact, it makes not sense. Passing debug = TRUE to nm_logging_syslog_openlog(), means that all messages will be printed to stderr in addition to syslog/journal. However, when NetworkManager is daemonizing, stderr is closed. Whether NetworkManager is daemonizing depends entirely on command line options --no-daemon and --debug. Hence, the logging backend "debug" from the configuration file either conflicts or is redundant. Also, adjust logging backend description in `man NetworkManager.conf`. Also, log a warning about invalid/unsupported logging backend. (cherry picked from commit 2ccf6168dc1c54fde350ec669b777c29d566fb4a)
* build: disable libnm-glib by defaultLubomir Rintel2018-06-151-1/+1
| | | | | | | It's deprecated and has been replaced by libnm for 6 major releases now. Its use in modern distributions has faded to the point it can probably be safely removed.
* build: Rename settings-docs.c fileIñigo Martínez2018-01-121-1/+1
| | | | | | | | | | | | | The `settings-docs.c` file is generated by processing the `nm-property-docs.xml` file. Although this works in autotools, the `.c` extension makes meson not to handle it properly. Given the fact that it only contains a number of defines it makes sense to change its extension to `.h` an use it as a header. This also makes meson to handle it properly and build it before its used. https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00057.html
* build/meson: rename config_plugin_ibft option to just ibftThomas Haller2018-01-101-1/+1
|
* settings: drop unmaintained ifnet settings plugin of GentooThomas Haller2017-12-211-1/+0
| | | | | | | | | | | | Even Gentoo disables this plugin since before 0.9.8 release of NetworkManager. Time to say goodbye. If somebody happens to show up to maintain it, we may resurrect it later. If "$distro_plugins=ifnet" was set, configure.ac would use that to autodetect --with-hostname-persist=gentoo. Replace that autodetect part by checking for /etc/gentoo-release file.
* build/meson: drop option for deprecated ifcfg-suse setting pluginsThomas Haller2017-12-211-1/+0
|
* build: Move default path values to options fileIñigo Martínez2017-12-181-10/+10
| | | | | | | | | | | | | Since meson 0.44 there is a new option type called `array`, which allows to use an array with different values in those options. These fits the needs of different options that are used to pass binary paths, which have multiple paths as an alternate locations. meson's version has been bumped to 0.44 and different options have been changed to `array` type options. https://mail.gnome.org/archives/networkmanager-list/2017-December/msg00062.html
* build: add initial support for meson build systemIñigo Martínez2017-12-131-0/+79
meson is a build system focused on speed an ease of use, which helps speeding up the software development. This patch adds meson support along autotools. [thaller@redhat.com: rebased patch and adjusted for iwd support] https://mail.gnome.org/archives/networkmanager-list/2017-December/msg00022.html