Commit graph

741 commits

Author SHA1 Message Date
Thomas Haller 2d828bdbf9
release: bump version to 1.33.2 (development) 2021-09-08 16:49:22 +02:00
Thomas Haller ee91f1f9ab
build: define WITH_OPENVSWITCH in "config.h"
It will be used next.
2021-08-31 13:30:08 +02:00
Thomas Haller bf86f51c9e
build: rework libreadline detection in autotools
- `m4/ax_lib_readline.m4` was already aware of "$with_readline".
  Move the entire handling of the parameter inside the AX_LIB_READLINE
  macro.
  This lets our fork of ax_lib_readline.m4 further deviate from upstream
  version, but it's already so different that this is no new problem.

- raise an error if the user requested --with-readline=libreadline|libedit
  but the library was not found.

- only allow yes|no for --with-nmcli argument. But still default to
  "yes", which will always require one libreadline library to be
  detected. In particular, don't automatically disable nmcli if
  libreadline is not available, because building without nmcli
  should be an explicit choice. That is like before.

- update the "$with_readline" variable for the "auto" case to reflect
  what was detected.
2021-07-19 09:08:06 +02:00
Lukasz Majewski 8ea9da85b3
m4: cli: Add support for --with-readline=auto|libreadline|libedit|none configuration options
This commit provides support for --with-readline=auto|libreadline|libedit|none option
for the configure script.

It allows building the NetworkManager's nmcli tool with libedit instead
of libreadline.

With --with-readline=auto the system looks for any eligible readline library
to use.

Moreover, in this commit all required defines are provided (e.g.
HAVE_EDITLINE_READLINE) to allow correct buil of the code.
2021-07-14 17:16:45 +02:00
Javier Jardón 8c4e8d5beb
configure.ac: Do not use AC_GNU_SOURCE
This macro is deprecated and replaced by AC_USE_SYSTEM_EXTENSIONS
(which is already being called)

See:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Posix-Variants.html#AC%5fUSE%5fSYSTEM%5fEXTENSIONS

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/912
2021-06-30 09:28:07 +02:00
Thomas Haller 161cf11cb1
release: bump version to 1.33.1 (development) 2021-06-16 20:26:45 +02:00
Thomas Haller d9c0d43879
release: bump version to 1.32.0 2021-06-16 19:48:59 +02:00
Thomas Haller b92d8f5a2d
release: bump version to 1.33.0 (development) 2021-06-04 18:10:32 +02:00
Thomas Haller be89b39828
release: bump version to 1.31.90 (1.32-rc1) 2021-06-04 18:03:56 +02:00
Beniamino Galvani 481ccd2ad2 release: bump version to 1.31.5 (development) 2021-05-19 21:04:53 +02:00
Thomas Haller 1da1ad9c99
firewall: make firewall-backend configurable via "NetworkManager.conf"
"iptables" and "nftables" will be supported. Currently, the code is
unused and only "iptables" is supported.
2021-05-14 11:41:32 +02:00
Beniamino Galvani f3821b27dd release: bump version to 1.31.4 (development) 2021-05-05 21:17:53 +02:00
Beniamino Galvani 299a6af3ee build: install D-Bus service files to /usr by default
Service files shipped by distribution should be in /usr.
2021-04-30 17:00:50 +02:00
Beniamino Galvani 9b3fd5965b release: bump version to 1.31.3 (development) 2021-04-22 23:04:27 +02:00
orbea 3affccf29b
tests: fix undefined references to pthread
When building NetworkManger with --enable-tests or using 'make check'
and slibtool the build will fail in many places with undefined references
to pthreads.

This is because -lpthread is never explicitly added to the appropriate
variable, src_core_libNetworkManagerTest_la_LIBADD. When analyzing the
build log with GNU libtool it can be seen that it silently adds -pthread
on its own which hides the issue.

To solve this ax_pthread.m4 from the autoconf-archives project can be
used which provides the $(PTHREAD_LIBS) linker flag.

Source: https://github.com/autoconf-archive/autoconf-archive/blob/master/m4/ax_pthread.m4
See-also: https://www.gnu.org/software/autoconf-archive/ax_pthread.html

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/804
2021-04-07 08:29:50 +02:00
Beniamino Galvani 80f63ae01a release: bump version to 1.31.2 (development) 2021-03-24 18:12:04 +01:00
Thomas Haller 54edfc6139
libnm: improve detection for C11 _Generic() support
Older gcc doesn't like this:

  ../src/libnm-core-impl/nm-setting-wired.c:132:49: error: controlling expression type 'const char *const [31]' not compatible with any generic association type
             && (nm_utils_strv_find_binary_search(valid_s390_opts,
                                                  ^~~~~~~~~~~~~~~
  ../src/libnm-glib-aux/nm-shared-utils.h:2033:60: note: expanded from macro 'nm_utils_strv_find_binary_search'
          const char *const *const _strv   = NM_CAST_STRV_CC(strv);     \
                                                             ^
  ../src/libnm-glib-aux/nm-macros-internal.h:706:21: note: expanded from macro 'NM_CAST_STRV_CC'
          (_Generic ((value), \
                      ^
2021-03-22 15:54:47 +01:00
Thomas Haller 91bf576a43
build: fix detection of python for autotools
The goal of this code is to detect python, but prefer python3 while
also allowing the user to override the path.

That did not work in all cases, due to what seems like a bug in
AM_PATH_PYTHON(). AM_PATH_PYTHON() is documented to ignore failure
if [action-if-not-found] is given. So one might assume that:

  AM_PATH_PYTHON([3], [], [PYTHON=])
  if test -z "$PYTHON"; then
    AM_PATH_PYTHON([], [], [PYTHON=python])
  fi

first tries to look for v3, and if that fails search for any python
interpreter. That did not work however with:

  $ ./configure PYTHON=/usr/bin/python2
  ...
  checking pkg-config is at least version 0.9.0... yes
  checking whether /usr/bin/python2 version is >= 3... no
  configure: error: Python interpreter is too old

because the first AM_PATH_PYTHON() is fatal.

Work around that.

Fixes: 54a1cfa973 ('build: prefer python3 over python2 in autotools's configure script')
2021-03-22 12:31:02 +01:00
Thomas Haller 9c0c0ac966
man: split NetworkManager-dispatcher(8) manual page out of NetworkManager(8)
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/784
2021-03-16 17:01:53 +01:00
Thomas Haller 9bba4871f3
build: move "libnm/" to "src/" and split it
Like with "libnm-core/", split "libnm/" into different directories for
the public headers, for the implementation and for the helper "aux"
library.
2021-02-24 12:48:37 +01:00
Thomas Haller fdf9614ba7
build: move "libnm-core/" to "src/" and split it
"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.
2021-02-18 19:46:51 +01:00
Thomas Haller 2c1f8e9108
release: bump version to 1.31.1 (development) 2021-02-18 18:23:42 +01:00
Thomas Haller fc29a96097
release: bump version to 1.30.0 2021-02-18 18:09:31 +01:00
Thomas Haller ea198096eb
build: rename build option "--with-polkit-agent-helper-1{-path,}"
Suggested-by: Michael Biebl <biebl@debian.org>
(cherry picked from commit d9968b133b)
2021-02-16 21:55:34 +01:00
Thomas Haller d9968b133b
build: rename build option "--with-polkit-agent-helper-1{-path,}"
Suggested-by: Michael Biebl <biebl@debian.org>
2021-02-16 21:54:54 +01:00
Thomas Haller 8f2ca652d9
build: make path to polkit-agent-helper-1 binary configurable
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".

(cherry picked from commit 801c41a11c)
2021-02-12 11:36:36 +01:00
Thomas Haller 801c41a11c
build: make path to polkit-agent-helper-1 binary configurable
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".
2021-02-12 11:34:24 +01:00
Thomas Haller e2df6c7503
release: bump version to 1.31.0 (development) 2021-02-11 16:52:45 +01:00
Thomas Haller 4e11b182a0
release: bump version to 1.29.90 (1.30-rc1) 2021-02-11 16:41:29 +01:00
Thomas Haller 318824cb41
libnm: move "nm-version-macros.h" from shared/ to libnm-core/
"nm-version-macros.h" is used directly by libnm-core and indirectly by
libnm and core.

Let's not have it randomly under shared/. Move it closer to where it's
used.
2021-02-09 12:38:19 +01:00
Thomas Haller 49ea978f08
release: bump version to 1.29.11 (development) 2021-02-08 10:41:35 +01:00
Beniamino Galvani 05745cf079 release: bump version to 1.29.10 (development) 2021-01-27 18:31:03 +01:00
Thomas Haller bcb63affdd
release: bump version to 1.29.9 (development) 2021-01-19 15:50:23 +01:00
Thomas Haller 584e8f92f5
release: bump version to 1.29.8 (development) 2021-01-14 18:56:21 +01:00
Beniamino Galvani ca8162cb41 release: bump version to 1.29.7 (development) 2020-12-23 09:55:22 +01:00
Beniamino Galvani c7a470dd66 release: bump version to 1.29.6 (development) 2020-12-14 15:29:03 +01:00
Thomas Haller a4f1fa0893
man: add man 8 nm-cloud-setup
https://bugzilla.redhat.com/show_bug.cgi?id=1867997
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/ ## 600
2020-12-11 17:36:38 +01:00
Leo c992f460c7
build: check for reallocarray in stdlib.h 2020-12-10 12:36:38 +01:00
Thomas Haller 507c7c2b8a
release: bump version to 1.29.5 (development) 2020-12-06 16:17:48 +01:00
Thomas Haller 6f32c5c107
release: bump version to 1.28.0 2020-12-06 15:07:17 +01:00
Thomas Haller 952e3ebbe4
release: bump version to 1.29.4 (development) 2020-12-03 13:38:19 +01:00
Beniamino Galvani b24ec6af04 release: bump version to 1.29.3 (development) 2020-11-27 15:33:07 +01:00
Beniamino Galvani e2eb242c07 release: bump version to 1.29.2 (development) 2020-11-18 17:01:45 +01:00
Antonio Cardace 1df683587a
release: bump version to 1.29.1 (development) 2020-11-02 18:16:45 +01:00
Beniamino Galvani 07c80ceb68 release: bump version to 1.27.91 (1.28-rc2) (development) 2020-10-20 18:12:12 +02:00
Beniamino Galvani a74cb152f2 release: bump version to 1.29.0 (development) 2020-10-05 18:48:29 +02:00
Beniamino Galvani 4adf6afda5 release: bump version to 1.27.90 (1.28-rc1) 2020-10-05 18:43:28 +02:00
Beniamino Galvani 7f8426538b release: bump version to 1.27.3 (development) 2020-09-14 15:23:59 +02:00
Thomas Haller 07955c020f
release: bump version to 1.27.2 (development) 2020-09-02 20:03:10 +02:00
Thomas Haller c1f9a0fff1
dns: add new "rc-manager=auto" mode
Add a new `main.rc-manager=auto` setting, that favours to use
systemd-resolved (and not touch "/etc/resolv.conf" but configure
it via D-Bus), or falls back to `resolvconf`/`netconfig` binaries
if they are installed and enabled at compile time.
As final fallback use "symlink", like before.

Note that on Fedora there is no "openresolv" package ([1]). Instead, "systemd"
package provides "/usr/sbin/resolvconf" as a wrapper for systemd-resolved's
"resolvectl". On such a system the fallback to resolvconf is always
wrong, because NetworkManager should either talk to systemd-resolved
directly or not but never call "/usr/sbin/resolvconf". So, the special handling
for resolvconf and netconfig is only done if NetworkManager was build with these
applications explicitly enabled.

Note that SUSE builds NetworkManager with

    --with-netconfig=yes
    --with-config-dns-rc-manager-default=netconfig

and the new option won't be used there either. But of course, netconfig
already does all the right things on SUSE.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=668153

Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-08-24 21:13:21 +02:00