summaryrefslogtreecommitdiff
path: root/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* ppp: move ppp code to "nm-pppd-compat.c"Thomas Haller2023-04-171-2/+5
| | | | | | | | | | | | | | | | | | | | | Using the ppp code is rather ugly. Historically, the pppd headers don't follow a good naming convention, and define things that cause conflicts with our headers: /usr/include/pppd/patchlevel.h:#define VERSION "2.4.9" /usr/include/pppd/pppd.h:typedef unsigned char bool; Hence we had to include the pppd headers in certain order, and be careful. ppp 2.5 changes API and cleans that up. But since we need to support also old versions, it does not immediately simplify anything. Only include "pppd" headers in "nm-pppd-compat.c" and expose a wrapper API from "nm-pppd-compat.h". The purpose is that "nm-pppd-compat.h" exposes clean names, while all the handling of ppp is in the source file.
* ppp, adding support for compiling against pppd-2.5.0Eivind Næss2023-04-161-0/+1
| | | | | | | | | | This change does the following * Adding in nm-pppd-compat.h to mask details regarding different versions of pppd. * Fix the nm-pppd-plugin.c regarding differences in API between 2.4.9 (current) and latet pppd 2.5.0 in master branch * Additional fixes to the configure.ac to appropriately set defines used for compilation
* tests/client: test nm-cloud-setupLubomir Rintel2023-03-211-0/+7
| | | | Some fairly rudimentary testing of nm-cloud-setup.
* tests/client: split out nmcli specific bits into a separate cassLubomir Rintel2023-03-211-1/+1
| | | | | | | The mock service is more widely useful -- in particular for testing nm-cloud-setup in a following commit. Split the commonly useful parts into TestNmClient class.
* tools/test-cloud-meta-mock: add a mock metadata server for cloud-setupLubomir Rintel2023-03-211-0/+1
| | | | Useful for testing/development.
* all: add "link" settingBeniamino Galvani2023-03-021-0/+2
| | | | | Introduce a new "link" setting that holds properties that are related to the kernel link.
* build: add test for checking consistency of "nm-autoptr.h"Thomas Haller2023-02-281-2/+8
|
* vapi: add test for consistency of "vapi/NM-1.0.metadata"Thomas Haller2023-02-281-0/+6
|
* libnm: Specify the main header in the .gir fileCorentin Noël2023-02-281-1/+1
| | | | Bindings compiling to C need to know which main header to include.
* systemd: merge branch systemd into mainThomas Haller2023-02-131-5/+10
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1529
* | test-client: add valgrind support for call_nmcli_pexpect() testsThomas Haller2023-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | This will allow to find some memory leaks and memory corruptions. The bulk of the nmcli calls are still not hooked up with valgrind. Since we call nmcli a thousand time, we could not just run valgrind with all of them. We would have instead to enable it randomly. This is more work. (cherry picked from commit debf78dbedbbe00acf34a2ba0f71a79fd130b407)
* | test-client: pass extra argument in "test-client.sh" to python testThomas Haller2023-02-081-1/+1
| | | | | | | | | | | | | | | | | | For example: $ src/tests/client/test-client.sh -- TestNmcli.test_004 $ src/tests/client/test-client.sh -- -k monitor (cherry picked from commit b76bb7333e11448b4692bf57c123d564eaf0864e)
* | dns-manager: always apply options from [global-dns]Lubomir Rintel2023-01-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the use of [global-dns] section for setting DNS options is conditioned on presence of a nameserver in a [global-dns-domain-*] section. Attempt to use the section for options alone results in an error: [global-dns] options=timeout:1 Or via D-Bus API: # busctl set-property org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager org.freedesktop.NetworkManager \ GlobalDnsConfiguration 'a{sv}' 2 \ "options" as 1 "timeout:1" \ "domains" a{sv} 0 ... Nov 24 13:15:21 zmok.local NetworkManager[501184]: <debug> [1669292121.3904] manager: set global DNS failed with error: Global DNS configuration is missing the default domain The insistence on existence of [global-dns-domain-*] would make sense if other [global-dns-domain-...] sections were present. However, the user might only want to set the options in resolv.conf and still use connection-provide nameservers for the actual resolving. Lift the limitation by allowing the [global-dns] to be used alone, while still insist on [global-dns-domain-*] being there in presence of other domain-specific options. https://bugzilla.redhat.com/show_bug.cgi?id=2019306 (cherry picked from commit 1f0d1d78d2a28ef82764a801c344e22816b06f67)
* | build: fix `make cscope` step for removed directoriesThomas Haller2023-01-171-1/+1
| |
* | ovs: add support for "other_config" settingsThomas Haller2023-01-111-0/+2
| | | | | | | | | | | | See `man ovs-vswitchd.conf.db` for documentation of "other_config" keys. https://bugzilla.redhat.com/show_bug.cgi?id=2151455
* | support loopback interfaceWen Liang2022-11-231-0/+10
| | | | | | | | | | | | | | | | | | Support managing the loopback interface through NM as the users want to set the proper mtu for loopback interface when forwarding the packets. Additionally, the IP addresses, DNS, route and routing rules are also allowed to configure for the loopback connection profiles. https://bugzilla.redhat.com/show_bug.cgi?id=2060905
* | c-stdaux: re-import git-subtree for 'src/c-stdaux'Thomas Haller2022-11-231-0/+3
| | | | | | | | git subtree pull --prefix src/c-stdaux git@github.com:c-util/c-stdaux.git main --squash
* | build: fix dist-ing "src/libnm-lldp/meson.build" in release tarballThomas Haller2022-11-181-0/+2
| | | | | | | | | | | | Fixes: 630de288d2e4 ('lldp: add libnm-lldp as fork of systemd's sd_lldp_rx') https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1142
* | libnm: move "nm-dbus-utils.c" from libnm-core to libnm-glib-auxThomas Haller2022-11-141-1/+0
| | | | | | | | | | | | | | | | These are just general purpose D-Bus utils, based on glib and GDBus. They fit perfectly to libnm-glib-aux. Move the code. Also, there is already the file "src/core/nm-dbus-utils.c", having two files with the same name on our source tree is just confusing.
* | merge: branch 'lr/unbreak-gir'Lubomir Rintel2022-11-111-19/+28
|\ \ | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1451
| * | libnm: test that Gir data matches actual exportslr/unbreak-girLubomir Rintel2022-11-081-1/+10
| | | | | | | | | | | | | | | | | | | | | This verifies that what's in our public headers has version nodes, and that they match Since: tags. Not pretty (because python) but discovered a *lot* of issues.
| * | Makefile.am: tidy up the introspection conditional partLubomir Rintel2022-11-081-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use of conditionals in makefiles needs to be kept to a necessary minimum otherwise they get out of hand quickly. There's no indentation to aid reading and conditional chunks longer than a screen and nested ones are almost impossible to comprehend. The "if HAVE_INTROSPECTION" part does both. Let's make it a little less horrible. There's generally no point in making unused targets or variable assignment unless they collide with pre-built stuff or have multiple variants.
* | | ifcfg-rh/tests: add test checking persisting ethtool settings to ifcfg-rhThomas Haller2022-11-101-0/+4
|/ / | | | | | | There are still various failures. That will be fixed next.
* | libnm: generate "gen-metadata-nm-settings-libnm-core.xml" with meta dataThomas Haller2022-10-311-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | libnm-core-impl has lots of internal meta data about the properties. In particular, which properties exist (their names), and their D-Bus type. We should use this information for our manual pages. For example, currently `man nm-settings-dbus` has nonsense like: "Value Type: array of string", when it should be reall "as". In a first step, generate an XML with that meta data for later use.
* | nmcli: rename "generate-docs-nm-settings-nmcli" to ↵Thomas Haller2022-10-311-19/+19
| | | | | | | | | | | | | | | | | | | | "gen-metadata-nm-settings-nmcli" This is the better name, becuse this is not in particular about "docs". It's about generating an XML with the information from the settings meta data for nmcli. We will do something similar with the libnm-core meta data.
* | build: pass both filenames to "tools/check-compare-generated.sh" scriptThomas Haller2022-10-311-2/+2
| | | | | | | | | | | | | | | | It just feels nicer to be explicit about the filenames and not rely on a specific naming. Also, in meson we can directly pass the target as argument, which expands to the filename but also adds a dependency.
* | build/autotools: adjust hack for gettext() for other Makefile versionsThomas Haller2022-10-281-1/+2
| | | | | | | | | | | | | | On rhel-8.7, we use a different gettext version, so the Makefile looks different. Adjust patch the source. Fixes: 7ee0da3eaffd ('build: don't "update-po" during make dist')
* | lldp/systemd: remove systemd LLDP sourcesThomas Haller2022-10-251-8/+0
| | | | | | | | They are no longer used. We use now libnm-llpd instead.
* | lldp: use new libnm-lldp instead of systemd's sd_lldp_rxThomas Haller2022-10-251-0/+1
| |
* | lldp: add libnm-lldp as fork of systemd's sd_lldp_rxThomas Haller2022-10-251-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently use the systemd LLDP client, which we consume by forking systemd code. That is a maintenance burden, because it's not a self-contained, stable library that we use. Hence there is a need for an individual library or properly integrating the fork in our tree. Optimally, we would create a new nettools project with an LLDP library. That was not done because: - nettools may want to be dual licensed with LGPL-2.1+ and Apache. Systemd code is LGPL-2.1+ so it is fine for NetworkManager but possibly not for nettools. - nettools provides independent librares, as such they don't have an event loop, instead they expose an epoll file descriptor and the user needs to integrate it. Systemd and NetworkManager on the other hand have their established event loop (sd_event and GMainContext, respectively). It's simpler to implement the library on those terms, in particular porting the systemd library from sd_event to GMainContext. - NetworkManager uses glib and has various helper utils. While it's possible to do without them, it's more work. The main reason to not write a new NetworkManager-agnostic library from scratch, is that it's much simpler to fork the systemd library and make it part of NetworkManager, than making it a nettools library. Do it.
* | glib-aux: add NMPrioq priority queue (heap)Thomas Haller2022-10-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Taken from systemd's "Prioq". Differences from Prioq: - It is glib-ized, so certain operations cannot fail since g_malloc() never fails. - Unlike Prioq, this structure is stack allocated. I think that makes sense, because we basically always want to embed the data structure in another object. There is never a need for passing this around as a pointer. And if you really want, you can box it yourself. - The queue either accepts a GCompareFunc or a GComareDataFunc. This is for convenience. The prioq_ensure_allocated() and prioq_ensure_put() consequently are dropped, as they would be cumbersome with this pattern and don't seem useful.
* | systemd: drop invalid "user-util.h" compat headerThomas Haller2022-10-041-1/+1
| | | | | | | | | | We included the original "user-util.h" header. There must be no compat header.
* | core: add NMBondManager to handle NTF rules for balance-slb (MLAG)Thomas Haller2022-10-041-0/+2
| |
* | build: don't "update-po" during make distThomas Haller2022-10-031-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead, hack gettext's Makefile. gettext has an issue with parallel make. See [1] and [2]. Reproduce with: git reset --hard && git clean -fdx && NOCONFIGURE=yes ./autogen.sh && ./configure --enable-gtk-doc --enable-introspection && make -j distcheck V=1 We worked around this by setting "DIST_DEPENDS_ON_UPDATE_PO = yes", however that (obviously) results in regenerating source files during dist. "Source files" in the sense that the po files are commited to git and get distributed in the release. Doing this is very ugly. In particular it's ugly, because `make -C po update-po` is not reproducible and the output depends on the current time (*had one job*). Otherwise, we could just regenerate the files before doing a release. This means, running "release.sh" script ends up with a dirty tree afterwards. Also, the distributed po files are not the ones from the source tree when we did the release. Also, since "release.sh rc1" does two distributions (once for the rc1 and once for the next devel snapshot), the commit for the second distribution will have a large diff for the po files. This reverts commit 978d8eb69923 ('po: make dist depend on update-po') and hacks around the problem. [1] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1094#note_1435313 [2] https://lists.gnu.org/archive/html/bug-gettext/2022-06/msg00022.html https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1405
* | nmtui: add MACsec supportBeniamino Galvani2022-09-281-0/+2
| |
* | nmtui: introduce Nmt8021xFieldsBeniamino Galvani2022-09-281-4/+6
| | | | | | | | Introduce a new widget to edit 802.1X settings.
* | platform: add "nmp-base.c" sourceThomas Haller2022-09-231-0/+1
| | | | | | | | | | | | | | | | "nmp-base.h" really should only contain simple defines like enum types or #define. As such, it almost does not need a source file. However, the enum-to-string methods for the enums of "nmp-base.h" need a place. Add "nmp-base.c" for that.
* | platform: add "nmp-plobj.[hc]"Thomas Haller2022-09-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our naming in libnm-platform is bad. We have NMPlatform, which is a cache of objects. Consequently we have platform methods like nm_platform_get_link(). We also have various other types that share the NMPlatform prefix, like NMPlatformIP4Address. For those we have nm_platform_ip4_address_to_string(). "methods" of a type should have the same prefix as the type, and we should not have types that share the same prefix. Also, "NMPlatformIP4Address" is a long name, and inconsistent with the strongly related NMPObjectIP4Address. Add new files to move and rename parts of the platform API.
* | all: add src/nm-compat-headers for patching included system headersThomas Haller2022-09-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already have src/linux-headers, where we have complete copies of linux user space headers. Of course that exists, because we want to use certain features and don't depend on the installed kernel headers. Which works well, because kernel user space API is stable, and we anyway want to support compiling against a newer kernel and run against an older (e.g. in a container). So having our copy of newer kernel headers is merely as if we compiled against as newer kernel. Add "src/nm-compat-headers" which has a similar purpose, but a different approach. Instead of replacing the included header entirely, include the system header and patch it with #define. Use this for "linux/if_addr.h". Of course, the approach here is that we no longer include <linux/if_addr.h> directly, but instead include "nm-compat-headers/linux/if_addr.h".
* | build: fix regenerating "nm-property-infos-%.xml" files on changesThomas Haller2022-09-091-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Imagine checking out the loopback feature branch and building. Thereby the "src/libnm-client-impl/nm-property-infos-%.xml" files get generated and contains a `<setting name="loopback"/>`. Then switch back to `main` branch and type make again. Note that none of the "src/libnm-core-impl/nm-setting-*.c" files changed, except that "nm-setting-loopback.c" got removed. Consequently, the XML won't be regenerated and the followup steps will fail due to the leftover reference to the non-existing setting. Fix that by regenerating "nm-property-infos-%.xml" if "libnm-core-impl.la" changes.
* | ipoib: skip validating the DEVICE when reading the ifcfg fileWen Liang2022-09-071-0/+1
| | | | | | | | | | | | | | | | | | | | For the ipoib connection, it is still considered as valid if the profile does not set the device name. Also, the ifcfg reader should not duplicate the checks that `nm_connection_verify()` performs (especially not wrongly). Therefore, NM should skip validating the DEVICE when reading the ifcfg file for the ipoib connection. https://bugzilla.redhat.com/show_bug.cgi?id=2122703
* | glib-aux: add "libnm-glib-aux/nm-inet-utils.h"Thomas Haller2022-08-251-0/+2
| |
* | build: wrap lines in Makefile.am for "vapi/libnm.vapi"Thomas Haller2022-08-081-1/+5
| |
* | crypto: support EC private keysGeorg Müller2022-08-041-0/+4
| | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1324
* | platform: rename file "nmp-route-manager.[hc]" to "nmp-global-tracker.[hc]"Thomas Haller2022-07-261-2/+2
| |
* | libnm-client: Add public nm_conn_wireguard_import() funcChristian Glombek2022-07-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This commit moves the `nm_vpn_wireguard_import()` function implementation from `libnmc-base` to `libnm-client-impl`, renaming it to `nm_conn_wireguard_import()`. A new `nm_conn_utils` header file is added in `libnm-client-public`. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1031 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1299
* | linux-headers: include "mptcp.h" kernel headerThomas Haller2022-07-201-1/+2
| | | | | | | | Taken from v5.18, 4b0986a3613c ('Linux 5.18') from 20220522.
* | doc: preserve paraghraphs in nmcli man pagesVojtech Bubela2022-07-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve documentation by preserving paragraphs in the nm-settings-nmcli man pages. To do that structure of src/libnm-client-impl/nm-settings-docs-gir.xml was changed to have "description" as subnode to property node instead of attribute of property node. Another subnode "description-docbook" was added - this node is then used when generating man pages. tools/generate-docs-nm-settings-docs-gir.py and man/nm-settings-dbus.xsl were also changed to accomodate for changes mentioned above. Replace xsltproc tool with python script when generating ./src/libnmc-setting/settings-docs.h. Deleted settings-docs.xsl since it was replaced by python script. Change src/libnmc-setting/settings-docs.h.in accodring to newly generated src/libnmc-setting/settings-docs.h https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/661 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1260
* | systemd: merge branch systemd into mainThomas Haller2022-07-071-2/+6
|\ \ | |/ | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1291
* | build: stop relying on intltool for i18nMartin Blanchard2022-06-271-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent gettext version can extract and merge back strings from and to various file formats, no need for intltool anymore. https://wiki.gnome.org/Initiatives/GnomeGoals/GettextMigration https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/133 https://github.com/NetworkManager/NetworkManager/pull/303 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/96 Clarification about the use of AM_GNU_GETTEXT_REQUIRE_VERSION: In configure.ac, specify the minimum gettext version we require, rather than the exact one. This fixes a situation where the autoconf macros used for gettext will be the latest available on the system (for example, 0.20); but the copied-in Makefile.in.in will be for the exact version specified in configure.ac (in this case, 0.19). In that situation, the gettext build rules will error out at `make` time with the message: *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.19 but the autoconf macros are from gettext version 0.20 Avoid that by specifying a minimum version dependency rather than an exact one. This should not cause problems as we haven’t committed any generated or external gettext files into git, so each developer will end up regenerating the build system for their system’s version of gettext, as expected. See the subsection of https://www.gnu.org/software/gettext/manual/html_node/Version-Control-Issues.html for more information. Note that autoreconf currently doesn’t recognise AM_GNU_GETTEXT_REQUIRE_VERSION, so we must continue also using AM_GNU_GETTEXT_VERSION. autopoint will ignore the latter if the former is present. See https://lists.gnu.org/archive/html/autoconf-patches/2015-10/msg00000.html. [lkundrak@v3.sk: Fixed the meson build, adjusted autogen.sh: droped "|| exit 1", dropped call to aclocal, dropped --copy from gtkdocize.]