summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* all: change G_LOG_DOMAIN to "nm"th/libnm-core-splitThomas Haller2021-02-1838-196/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | glib requires G_LOG_DOMAIN defined so that log messages are labeled to belong to NetworkManager or libnm. However, we don't actually want to use glib logging. Our library libnm MUST not log anything, because it spams the user's stdout/stderr. Instead, a library must report notable events via its API. Note that there is also LIBNM_CLIENT_DEBUG to explicitly enable debug logging, but that doesn't use glib logging either. Also, the daemon does not use glib logging instead it logs to syslog. When run with `--debug`. Hence, it's not useful for us to define different G_LOG_DOMAIN per library/application, because none of our libraries/applications should use glib logging. It also gets slightly confusing, because we have the static library like `src/libnm-core-impl`, which is both linked into `libnm` (the library) and `NetworkManager` (the daemon). Which logging domain should they use? Set the G_LOG_DOMAIN to "nm" everywhere. But no longer do it via `-D` arguments to the compiler. See-also: https://developer.gnome.org/glib/stable/glib-Message-Logging.html#G-LOG-DOMAIN:CAPS
* libnm/build: always compile both crypto backends if library availableThomas Haller2021-02-182-16/+38
| | | | | We want to see that both backends can actually compile -- at least, if we have the dependencies detected.
* build: move "libnm-core/" to "src/" and split itThomas Haller2021-02-18377-1279/+1535
| | | | | | | | | | | | | | | | | | | | "libnm-core/" is rather complicated. It provides a static library that is linked into libnm.so and NetworkManager. It also contains public headers (like "nm-setting.h") which are part of public libnm API. Then we have helper libraries ("libnm-core/nm-libnm-core-*/") which only rely on public API of libnm-core, but are themself static libraries that can be used by anybody who uses libnm-core. And "libnm-core/nm-libnm-core-intern" is used by libnm-core itself. Move "libnm-core/" to "src/". But also split it in different directories so that they have a clearer purpose. The goal is to have a flat directory hierarchy. The "src/libnm-core*/" directories correspond to the different modules (static libraries and set of headers that we have). We have different kinds of such modules because of how we combine various code together. The directory layout now reflects this.
* release: bump version to 1.31.1 (development)1.31.1-devThomas Haller2021-02-1814-43/+64
|\
| * NEWS: updateThomas Haller2021-02-181-4/+11
| |
| * release: fix pattern in release.sh script for checking branch nameThomas Haller2021-02-181-1/+1
| |
| * platform/tests: relax check for signals in test_ip6_route()Thomas Haller2021-02-181-1/+1
| | | | | | | | /route/ip6: NMPlatformSignalAssert: ../src/core/platform/tests/test-route.c:449, test_ip6_route(): failure to accept signal one time: 'ip6-route-changed-added' ifindex 0 (2 times received)
| * docs: improve manual page about ipv4.addressesWen Liang2021-02-176-11/+31
| | | | | | | | | | | | Signed-off-by: Wen Liang <liangwen12year@gmail.com> https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/738
| * build: dist "libnm/nm-enum-types.[ch].template" filesThomas Haller2021-02-171-0/+3
| |
| * initrd: merge branch 'bg/initrd-timeout'Beniamino Galvani2021-02-172-1/+79
| |\ | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/559
| | * initrd: support the rd.net.dhcp.retry argumentbg/initrd-timeoutBeniamino Galvani2021-02-172-4/+14
| | | | | | | | | | | | | | | Since we always set autoconnect-retries=1, use the value of rd.net.dhcp.retry as a multiplier for the DHCP timeout.
| | * initrd: accept 'infinity' as argument to rd.net.timeout.dhcpBeniamino Galvani2021-02-172-2/+7
| | |
| | * initrd: set autoconnect-retries=1 and increase default DHCP timeoutBeniamino Galvani2021-02-172-1/+64
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default a connection is retried 4 times before it is blocked from autoconnecting. This means that if a user specifies an explicit DHCP timeout in the initrd command line, NM will wait up to 4 times more. Instead, set the "connection.autoconnect-retries" property of connections always to 1, so that NM only waits for the time specified. Before this commit a default DHCP connection would take at most (45 x 4) seconds. Since the multiplier is now only 1, also increase the DHCP timeout to have a total time of (90 x 1) seconds, which is the half than before. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/559
| * initrd: cleanup parsing DNS in reader_parse_ip()Thomas Haller2021-02-171-22/+15
| |
| * build: rename build option "--with-polkit-agent-helper-1{-path,}"Thomas Haller2021-02-163-5/+11
| | | | | | | | Suggested-by: Michael Biebl <biebl@debian.org>
| * wireguard: merge branch 'th/wireguard-dns-endpoint-sticky-addr'Thomas Haller2021-02-162-18/+32
| |\ | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/754
| | * wireguard: prefer last resolved IP from resolving endpoint from DNSThomas Haller2021-02-161-16/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We periodically re-resolve the DNS name for entpoints. Since WireGuard has no concept of being connected, we want to eventually pick up if the DNS name resolves to a different IP address. However, on resolution failure, we will never clear the endpoint we already have. Thus, resolving names can only give a better endpoint, not remove an IP address entirely. DNS names might do Round-Robin load distribution and the name of the endpoint might resolve to multiple IP addresses. Improve to stick to the IP address that we already have -- provided that the IP address is still among the new resolution result. Otherwise, we continue to pick the first IP address that was resolved.
| | * platform: ensure NM_SOCK_ADDR_UNION_INIT_UNSPEC() fully initializes unionThomas Haller2021-02-161-2/+6
| |/ | | | | | | | | | | In C, initialization of a union does not define that excess memory is initialized. Ensure that, by initializing the largest member of the NMSockAddrUnion union.
| * policy: update vendor-URL for NetworkManager in polkit policyThomas Haller2021-02-161-1/+1
| | | | | | | | | | | | | | | | | | The previous URL http://www.gnome.org/projects/NetworkManager/ now redirects to https://wiki.gnome.org/Apps, which isn't very useful. Instead, link to our NetworkManager page. The page is still sparsely populated, but we should improve that.
| * contrib/rpm: update URL for NetworkManager in RPM packageThomas Haller2021-02-161-1/+1
| | | | | | | | | | | | | | | | | | The previous URL http://www.gnome.org/projects/NetworkManager/ now redirects to https://wiki.gnome.org/Apps, which isn't very useful. Instead, link to our NetworkManager page. The page is still sparsely populated, but we should improve that.
| * platform: downgrade severity of message for failure to create NMPNetnsThomas Haller2021-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under restricted permissions (like inside a podman container) opening "/proc/self/ns/net" fails with Permission denied. Consequently we cannot create our bottom NMPNetns instance. That is mostly fine, however we would log an error message with severity <error>. Note that test "src/core/platform/tests/test-platform-general" asserts that no <warn> and <error> messages get logged. Hence, the test will fail. That is undesirable. Downgrade the message to <debug> so that the test passes. Also, it's not clear that this error message is useful here. Being unable to open a netns fd is fine and not necessarily an error condition.
| * platform: reorder code in _netns_stack_get_impl()Thomas Haller2021-02-151-8/+9
| | | | | | | | | | | | We should always register the GArray stack with pthread for cleanup the thread local storage. Do that first, before creating the NMPNetns instance at the bottom of the stack.
| * platform/tests: skip tests if "unshare(CLONE_NEWNET|CLONE_NEWNS)" failsThomas Haller2021-02-151-1/+14
| | | | | | | | | | | | | | | | Inside a podman container (without `--priviledged`) we don't have permissions for "unshare(CLONE_NEWNET|CLONE_NEWNS)". It's not useful to fail tests in environments where they cannot run. Skip them.
| * tests: add "/bin:/sbin" to "$PATH" for unit testsThomas Haller2021-02-151-0/+17
| | | | | | | | | | | | | | | | We call `tc` from iproute2, which commonly is at "/sbin/tc". That might not be in the "$PATH" of a regular user, and consequently we fail to run the test. Work around that by always adding "/bin" and "/sbin" to the $PATH.
| * shared: refactor nm_assert() for NMRefStringThomas Haller2021-02-151-8/+16
| | | | | | | | | | | | - also check consistency of the string. - disable more expensive check unless running with NM_MORE_ASSERTS>10.
| * libnm: add assertion in _dbus_handle_properties_changed()Thomas Haller2021-02-151-0/+1
| |
| * libnm: merge branch 'th/nmclient-fix'Thomas Haller2021-02-152-6/+18
| |\ | | | | | | | | | | | | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982613 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/662
| | * libnm: fix tracking object state in NMClient cacheThomas Haller2021-02-151-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NMClient has a NMLDBusObject instance for each D-Bus object that it sees. This object can be in different states, like that we already saw it on D-Bus or that it is only referred to by another property. Due to a bug, we would wrongly not update the state and trigger an assertion. Reproduce with python-dbusmock (commit e89e28bf1bc0254a1eb71b71cf68ef7a97d11e5b) by running `pytest -v -s tests/test_networkmanager.py -k test_one_wifi_with_accesspoints`. With LIBNM_CLIENT_DEBUG we get: >>> libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: properties-changed: properties changed for interface org.freedesktop.NetworkManager.Device { {'ActiveConnection': <objectpath '/org/freedesktop/NetworkManager/ActiveConnection/0'>} } libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: properties-changed: set property org.freedesktop.NetworkManager.Device.ActiveConnection libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x01 linked libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x01 consumed >>> libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: set D-Bus object state watched-only libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x02 linked libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager]: changed-type 0x02 linked libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x02 consumed >>> libnm-dbus[96085]: <error> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: property ActiveConnection references /org/freedesktop/NetworkManager/ActiveConnection/0 but object is not present on D-Bus libnm-dbus[96085]: <trace> [6464.06459] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager]: changed-type 0x02 consumed libnm-dbus[96085]: <trace> [6464.06460] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: properties-changed: properties changed for interface org.freedesktop.NetworkManager.Device { {'State': <uint32 100>} } libnm-dbus[96085]: <trace> [6464.06460] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: properties-changed: set property org.freedesktop.NetworkManager.Device.State libnm-dbus[96085]: <trace> [6464.06460] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x01 linked libnm-dbus[96085]: <trace> [6464.06460] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x01 consumed libnm-dbus[96085]: <trace> [6464.06460] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x02 linked libnm-dbus[96085]: <trace> [6464.06460] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager]: changed-type 0x02 linked libnm-dbus[96085]: <trace> [6464.06461] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x02 consumed libnm-dbus[96085]: <trace> [6464.06461] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager]: changed-type 0x02 consumed libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: properties-changed: properties changed for interface org.freedesktop.NetworkManager.Device { {'StateReason': <(uint32 100, uint32 0)>} } libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: properties-changed: set property org.freedesktop.NetworkManager.Device.StateReason libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x01 linked libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x01 consumed libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x02 linked libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager]: changed-type 0x02 linked libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/Devices/mock_WiFi2]: changed-type 0x02 consumed libnm-dbus[96085]: <trace> [6464.06462] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager]: changed-type 0x02 consumed >>> libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: properties changed for interface org.freedesktop.NetworkManager.Connection.Active { {'Devices': <[objectpath '/org/freedesktop/NetworkManager/Devices/mock_WiFi2']>, 'Default6': <false>, 'Default': <true>, 'Type': <'802-11-wireless'>, 'Vpn': <false>, 'Connection': <objectpath '/org/freedesktop/NetworkManager/Settings/Mock_AP3'>, 'Master': <objectpath '/'>, 'SpecificObject': <objectpath '/org/freedesktop/NetworkManager/AccessPoint/Mock_AP3'>, 'Uuid': <'72757a57-8cb6-4052-a18f-4e2be4ba27d9'>, 'State': <uint32 2>, 'Id': <'AP_3'>} } >>> here we lack "set D-Bus object state on-dbus" libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Devices libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Default6 libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Default libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Type libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Vpn libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Connection libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Master libnm-dbus[96085]: <trace> [6464.06465] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.SpecificObject libnm-dbus[96085]: <trace> [6464.06466] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Uuid libnm-dbus[96085]: <trace> [6464.06466] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.State libnm-dbus[96085]: <trace> [6464.06466] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: interfaces-added: set property org.freedesktop.NetworkManager.Connection.Active.Id libnm-dbus[96085]: <trace> [6464.06466] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: changed-type 0x01 linked libnm-dbus[96085]: <trace> [6464.06466] nmclient[c9bf1eaa1f4b6c99]: [/org/freedesktop/NetworkManager/ActiveConnection/0]: changed-type 0x01 consumed Bail out! libnm:ERROR:libnm/nm-client.c:2863:_dbus_handle_obj_changed_dbus: assertion failed: (dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS) Backtrace: #3 0x00007f0bd11173bf in g_assertion_message_expr (domain=domain@entry=0x7f0bd1576018 "libnm", file=file@entry=0x7f0bd1576006 "libnm/nm-client.c", line=line@entry=2863, func=func@entry=0x7f0bd157f1b0 <__func__.170> "_dbus_handle_obj_changed_dbus", expr=expr@entry=0x7f0bd157cba0 "dbobj->obj_state >= NML_DBUS_OBJ_STATE_ON_DBUS") at ../glib/gtestutils.c:2963 #4 0x00007f0bd14959dd in _dbus_handle_obj_changed_dbus (self=self@entry=0x5612d4f5a130, log_context=<optimized out>) at libnm/nm-client.c:2863 #5 0x00007f0bd1495c29 in _dbus_handle_changes (self=self@entry=0x5612d4f5a130, log_context=<optimized out>, allow_init_start_check_complete=allow_init_start_check_complete@entry=1) at libnm/nm-client.c:2909 #6 0x00007f0bd1497e56 in _dbus_managed_objects_changed_cb (connection=<optimized out>, sender_name=<optimized out>, arg_object_path=<optimized out>, interface_name=<optimized out>, signal_name=<optimized out>, parameters=0x7f0bb800d720, user_data=0x5612d4f5a130) at libnm/nm-client.c:3172 #7 0x00007f0bd132a8df in emit_signal_instance_in_idle_cb (data=data@entry=0x7f0bb8003700) at ../gio/gdbusconnection.c:3789 #8 0x00007f0bd10f1b5b in g_idle_dispatch (source=source@entry=0x7f0bb8012260, callback=0x7f0bd132a860 <emit_signal_instance_in_idle_cb>, user_data=0x7f0bb8003700) at ../glib/gmain.c:5836 #9 0x00007f0bd10f2a9f in g_main_dispatch (context=0x5612d4f4b630) at ../glib/gmain.c:3325 #10 g_main_context_dispatch (context=0x5612d4f4b630) at ../glib/gmain.c:4043 #11 0x00007f0bd1144a98 in g_main_context_iterate.constprop.0 (context=0x5612d4f4b630, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119 #12 0x00007f0bd10f2163 in g_main_loop_run (loop=0x5612d4f4b720) at ../glib/gmain.c:4317 #13 0x00005612d44b6543 in main (argc=7, argv=0x7fff4414f1d8) at clients/cli/nmcli.c:1036 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982613 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/662 Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')
| | * libnm: avoid assertion failure in _dbus_handle_properties_changed() for ↵Thomas Haller2021-02-151-2/+6
| | | | | | | | | | | | logging no properties
| | * libnm: log PID in LIBNM_CLIENT_DEBUG debug loggingThomas Haller2021-02-151-2/+7
| |/
| * iwd: Fix the leaks in get_agent_request_network_pathAndrew Zaborowski2021-02-121-7/+5
| | | | | | | | | | | | | | Don't request new copies of strings from g_variant_get() to avoid leaking memory as pointed out by Thomas Haller. Fixes: dc0e31fb7014 ('iwd: Add the wifi.iwd.autoconnect setting')
| * contrib/rpm: revert building "--with test" for RHEL 9Thomas Haller2021-02-121-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "--with test" does two things: (1) it enables "-Werror" compiler option. We always enable all compiler warnings we care about, but this option makes all warnings fatal. Compiler warnings depend on compiler version and build options. It's hard to build without any compiler warnings, in particular for *future* compiler versions which we don't know yet. It is desirable that a SRPM from yesterday can also be build tomorrow. (2) it fails build if any unit tests fail. We always run all unit tests, but "--with test" makes it fatal. Again, we have many unit tests that interact with the system (that is, make system calls, like creating IP addresses or write files). It is surprisingly hard to get them pass 100% on all the systems we care. For example, on copr a test setup randomly fails during ifr.ifr_flags = IFF_TAP | IFF_NO_PI; nm_utils_ifname_cpy(ifr.ifr_name, TEST_IFNAME); r = ioctl(fd, TUNSETIFF, &ifr); It's not clear why, nor is it at all clear that there is a bug in NetworkManager. Making tests fatal basically means that a build on copr infrastructure fails with a probability from a few percent. Enough to be seriously annoying. Note that on copr we actually build "--with test", because we want to catch these issues. Likewise for our CI builds we explicitly specify "--with test". In general, we build with various build configurations (compiler warnings) and run unit tests on a source package many times. Starting on the developer machine (`make check`), gitlab-ci, copr builds, NetworkManager-ci. If you build an SRPM with such sources, a failure of the unit tests is much more likely a glitch than an actual issue. This is about changing the default if you build a Fedora/RHEL package. That is with the Fedora/RHEL packages that are build in koji/brew. Well, at least usually. In practice, we don't build frequently on non x64_86 archs, so what I said there is less true. But the package build is not there to replace CI/testing. The package build is there to get a (mostly) working binary. Note that RHEL packages anyway go through rpmdiff too, and rpmdiff parses the build log and complain if `make check` fails. This reverts commit e68e5c0a4c36ab6fe7cf4793f77ca741179690ce.
| * Revert "service: don't give CAP_DAC_OVERRIDE capability to NetworkManager"Thomas Haller2021-02-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Well, that was short. Seems we need CAP_DAC_OVERRIDE at least for the OVS plugin. The OVS socket is srwxr-x---. 1 openvswitch openvswitch 0 Xxx xx xx:xx /run/openvswitch/db.sock and without CAP_DAC_OVERRIDE, NetworkManager cannot talk to OVS. We should fix that differently by adding a nm-sudo D-Bus service that can hand a file descriptor to NetworkManager. This reverts commit 2e334f54b27f91f40c3aa8bdba3254e2284d30bd.
| * build: make path to polkit-agent-helper-1 binary configurableThomas Haller2021-02-126-19/+37
| | | | | | | | | | | | | | | | | | | | | | | | Add new configure option to set the path to "polkit-agent-helper-1". The path cannot be obtained from pkg-config and `pkg-config --variable=prefix polkit-agent-1` is not good enough. On Fedora, the path is "/usr/lib/polkit-1/polkit-agent-helper-1". On Debian Buster, the path is "/usr/lib/policykit-1/polkit-agent-helper-1" On Debian Sid, the path is "/usr/libexec/polkit-agent-helper-1" (but currently it is also symlinked from "/usr/lib/policykit-1/polkit-agent-helper-1".
| * service: don't give CAP_DAC_OVERRIDE capability to NetworkManagerThomas Haller2021-02-121-1/+1
| | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1921826 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/742
| * release: bump version to 1.31.0 (development)1.31.0-devThomas Haller2021-02-112-3/+3
| |
* | release: bump version to 1.30.01.30.0Thomas Haller2021-02-182-3/+3
| |
* | platform/tests: relax check for signals in test_ip6_route()Thomas Haller2021-02-181-1/+1
| | | | | | | | | | | | /route/ip6: NMPlatformSignalAssert: ../src/core/platform/tests/test-route.c:449, test_ip6_route(): failure to accept signal one time: 'ip6-route-changed-added' ifindex 0 (2 times received) (cherry picked from commit 39c3eacb7d3a5f5ad13c299045216ccbaace1858)
* | NEWS: updateThomas Haller2021-02-181-5/+0
| |
* | NEWS: updateThomas Haller2021-02-181-2/+4
| |
* | build: dist "libnm/nm-enum-types.[ch].template" filesThomas Haller2021-02-171-0/+3
| | | | | | | | (cherry picked from commit b941686b5ab9536a38c10f14301ae71d21a215d3)
* | initrd: merge branch 'bg/initrd-timeout'Beniamino Galvani2021-02-172-1/+79
|\ \ | | | | | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/559 (cherry picked from commit 2b3acd10453d78f8602080a25d479b69cc1a5828)
| * | initrd: support the rd.net.dhcp.retry argumentBeniamino Galvani2021-02-172-4/+14
| | | | | | | | | | | | | | | | | | | | | Since we always set autoconnect-retries=1, use the value of rd.net.dhcp.retry as a multiplier for the DHCP timeout. (cherry picked from commit 099ce63888013e82c0f369b02a8f27a0b31813a6)
| * | initrd: accept 'infinity' as argument to rd.net.timeout.dhcpBeniamino Galvani2021-02-172-2/+7
| | | | | | | | | | | | (cherry picked from commit 97833237bf38347c75022eb380208d99e1df9d5f)
| * | initrd: set autoconnect-retries=1 and increase default DHCP timeoutBeniamino Galvani2021-02-172-1/+64
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default a connection is retried 4 times before it is blocked from autoconnecting. This means that if a user specifies an explicit DHCP timeout in the initrd command line, NM will wait up to 4 times more. Instead, set the "connection.autoconnect-retries" property of connections always to 1, so that NM only waits for the time specified. Before this commit a default DHCP connection would take at most (45 x 4) seconds. Since the multiplier is now only 1, also increase the DHCP timeout to have a total time of (90 x 1) seconds, which is the half than before. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/559 (cherry picked from commit 7e126fe898f130f53f3e5cb2f87eca2169978b4d)
* | build: rename build option "--with-polkit-agent-helper-1{-path,}"Thomas Haller2021-02-163-5/+11
| | | | | | | | | | Suggested-by: Michael Biebl <biebl@debian.org> (cherry picked from commit d9968b133b32fbfbc5e726a8fc96e38cc044c831)
* | wireguard: merge branch 'th/wireguard-dns-endpoint-sticky-addr'Thomas Haller2021-02-162-18/+32
|\ \ | | | | | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/754 (cherry picked from commit cd86b462fc9796882ad58b61079d7bbaf6625ab8)
| * | wireguard: prefer last resolved IP from resolving endpoint from DNSThomas Haller2021-02-161-16/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We periodically re-resolve the DNS name for entpoints. Since WireGuard has no concept of being connected, we want to eventually pick up if the DNS name resolves to a different IP address. However, on resolution failure, we will never clear the endpoint we already have. Thus, resolving names can only give a better endpoint, not remove an IP address entirely. DNS names might do Round-Robin load distribution and the name of the endpoint might resolve to multiple IP addresses. Improve to stick to the IP address that we already have -- provided that the IP address is still among the new resolution result. Otherwise, we continue to pick the first IP address that was resolved. (cherry picked from commit 98348ee5396dde5756fbb82ebf16b90790b6b32d)
| * | platform: ensure NM_SOCK_ADDR_UNION_INIT_UNSPEC() fully initializes unionThomas Haller2021-02-161-2/+6
|/ / | | | | | | | | | | | | | | In C, initialization of a union does not define that excess memory is initialized. Ensure that, by initializing the largest member of the NMSockAddrUnion union. (cherry picked from commit 7bf2ddf73f8d8c2d882c4932e88b76eef337cd0a)
* | platform: downgrade severity of message for failure to create NMPNetnsThomas Haller2021-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under restricted permissions (like inside a podman container) opening "/proc/self/ns/net" fails with Permission denied. Consequently we cannot create our bottom NMPNetns instance. That is mostly fine, however we would log an error message with severity <error>. Note that test "src/core/platform/tests/test-platform-general" asserts that no <warn> and <error> messages get logged. Hence, the test will fail. That is undesirable. Downgrade the message to <debug> so that the test passes. Also, it's not clear that this error message is useful here. Being unable to open a netns fd is fine and not necessarily an error condition. (cherry picked from commit 0213300dcee438a0b48a3d3a6da3112286ad43d1)