summaryrefslogtreecommitdiff
path: root/.gitignore
Commit message (Collapse)AuthorAgeFilesLines
* gitignore: ignore "po/.Makefile.patched" fileThomas Haller2022-10-311-0/+2
| | | | Fixes: 7ee0da3eaffd ('build: don't "update-po" during make dist')
* libnm: generate "gen-metadata-nm-settings-libnm-core.xml" with meta dataThomas Haller2022-10-311-0/+2
| | | | | | | | | | | | 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-5/+7
| | | | | | | | | | "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.
* gitignore: ignore m4/gettext artifactsThomas Haller2022-07-051-1/+3
|
* build: stop relying on intltool for i18nMartin Blanchard2022-06-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.]
* priv-helper: fix D-Bus patch to not contain forbidden character '-'Thomas Haller2022-02-091-1/+2
| | | | | | | | | | | | "-" is not allowed as D-Bus path and interface name, and discouraged as bus name. This cause nm-priv-helper to crash, because GDBus asserts the the object path is valid. Replace the '-' with '_'. This way, it's consistent with "nm_dispatcher". Fixes: d68ab6b8f02a ('nm-sudo: rename to nm-priv-helper') (cherry picked from commit 16a45d07ed1d42af2792bd80efd39bf412bd7d26)
* nm-sudo: rename to nm-priv-helperBeniamino Galvani2022-01-111-2/+5
| | | | | | | | The name "nm-sudo" reminds of the "sudo" tool, and this is a bit confusing because it's not related. Rename the service to "nm-priv-helper", which stands for "NM privileged helper". https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/938
* core: rework IP configuration in NetworkManager using layer 3 configurationThomas Haller2021-11-181-2/+2
| | | | | | | | | | | | | | | | | Completely rework IP configuration in the daemon. Use NML3Cfg as layer 3 manager for the IP configuration of an interface. Use NML3ConfigData as pieces of configuration that the various components collect and configure. NMDevice is managing most of the IP configuration at a higher level, that is, it starts DHCP and other IP methods. Rework the state handling there. This is a huge rework of how NetworkManager daemon handles IP configuration. Some fallout is to be expected. It appears the patch deletes many lines of code. That is not accurate, because you also have to count the files `src/core/nm-l3*`, which were unused previously. Co-authored-by: Beniamino Galvani <bgalvani@redhat.com>
* .gitignore: include files used by eclipse-cdt IDEAna Cabral2021-08-061-0/+3
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/957
* sudo: introduce nm-sudo D-Bus serviceThomas Haller2021-07-261-0/+4
| | | | | | | | | | | | | | | | | | | | | NetworkManager runs as root and has lots of capabilities. We want to reduce the attach surface by dropping capabilities, but there is a genuine need to do certain things. For example, we currently require dac_override capability, to open the unix socket of ovsdb. Most users wouldn't use OVS, so we should find a way to not require that dac_override capability. The solution is to have a separate, D-Bus activate service (nm-sudo), which has the capability to open and provide the file descriptor. For authentication, we only rely on D-Bus. We watch the name owner of NetworkManager, and only accept requests from that service. We trust D-Bus to get it right a request from that name owner is really coming from NetworkManager. If we couldn't trust that, how could PolicyKit or any authentication via D-Bus work? For testing, the user can set NM_SUDO_NO_AUTH_FOR_TESTING=1. https://bugzilla.redhat.com/show_bug.cgi?id=1921826
* core: add infrastructure for spawning a helper processBeniamino Galvani2021-06-111-0/+1
| | | | (cherry picked from commit 6ac21ba916b3def3172773b774989c9f4d66ec6d)
* gitignore: ignore "examples/C/glib/vpn-import-libnm"Thomas Haller2021-03-221-0/+1
|
* tui: move from "clients/tui/" to "src/nmtui/"Thomas Haller2021-03-151-2/+3
|
* cli: move from "clients/cli/" to "src/nmcli/"Thomas Haller2021-03-151-4/+7
|
* cloud-setup: move from "clients/cloud-setup/" to "src/nm-cloud-setup/"Thomas Haller2021-03-151-33/+37
|
* initrd: move "src/core/initrd/" to "src/nm-initrd-generator/"Thomas Haller2021-03-151-4/+9
|
* build: move "clients/nm-online.c" to "src/nm-online/"th/move-client-libsThomas Haller2021-03-021-1/+3
|
* build: move "clients/common/" to "src/libnmc-{base,setting}/"Thomas Haller2021-03-021-4/+9
|
* build: move "dispatcher/" to "src/nm-dispatcher/"th/build-meson-cleanupThomas Haller2021-02-281-5/+10
|
* build: move "libnm/" to "src/" and split itThomas Haller2021-02-241-9/+18
| | | | | | Like with "libnm-core/", split "libnm/" into different directories for the public headers, for the implementation and for the helper "aux" library.
* build: move "shared/nm-{glib-aux,log-null,log-core}" to ↵Thomas Haller2021-02-241-3/+4
| | | | "src/libnm-{glib-aux,log-null,log-core}"
* build: move "shared/nm-platform" to "src/libnm-platform"Thomas Haller2021-02-241-1/+2
|
* build: move "libnm-core/" to "src/" and split itThomas Haller2021-02-181-11/+22
| | | | | | | | | | | | | | | | | | | | "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.
* docs: improve manual page about ipv4.addressesWen Liang2021-02-171-0/+1
| | | | | | Signed-off-by: Wen Liang <liangwen12year@gmail.com> https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/738
* cloud-setup/tests: add unit test for nm-cloud-setupThomas Haller2021-02-101-0/+1
|
* gitignore: ignore *.a filesThomas Haller2021-02-101-1/+1
|
* libnm: move "nm-version-macros.h" from shared/ to libnm-core/Thomas Haller2021-02-091-1/+2
| | | | | | | | "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.
* all: move "src/" directory to "src/core/"Thomas Haller2021-02-041-51/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently "src/" mostly contains the source code of the daemon. I say mostly, because that is not true, there are also the device, settings, wwan, ppp plugins, the initrd generator, the pppd and dhcp helper, and probably more. Also we have source code under libnm-core/, libnm/, clients/, and shared/ directories. That is all confusing. We should have one "src" directory, that contains subdirectories. Those subdirectories should contain individual parts (libraries or applications), that possibly have dependencies on other subdirectories. There should be a flat hierarchy of directories under src/, which contains individual modules. As the name "src/" is already taken, that prevents any sensible restructuring of the code. As a first step, move "src/" to "src/core/". This gives space to reorganize the code better by moving individual components into "src/". For inspiration, look at systemd's "src/" directory. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/743
* shared,platform: add "shared/nm-platform" libraryThomas Haller2021-01-151-0/+1
| | | | | | | | | | | | | | | | NetworkManager core is huge. We should try to split out parts that are independent. Platform code is already mostly independent. But due to having it under "src/", there is no strict separation/layering which determines the parts that can work independently. So, while the code is mostly independent (in practice), that is not obvious from looking at the source tree. It thus still contributes to cognitive load. Add a shared library "shared/nm-platform", which should have no dependencies on libnm-core or NetworkManager core. In a first step, move the netlink code there. More should follow.
* build: ignore "docs/api/NetworkManager.actions" build artifactThomas Haller2020-12-031-0/+1
| | | | | | I still don't understand why we get now these ".actions" build artifacts. Anyway, I don't think we need to care. Just ignore it.
* gitignore: ignore "/docs/libnm/libnm.actions"Thomas Haller2020-11-231-0/+1
| | | | Dunno why this file now gets generated.
* l3cfg/tests: add unit test for NML3CfgThomas Haller2020-09-241-1/+2
|
* build: fix generating "NetworkManager.ver" with LTOThomas Haller2020-08-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use a linker version script "NetworkManager.ver", to hide symbols from NetworkManager that are not used. That is important due to our habit of using internal helper libraries that we link statically everywhere, without handpicking the symbols we actually need. We want the tooling to get rid of unnecessary symbols. However, NetworkManager loads shared libraries for settings and device plugins. These libraries require symbols from the NetworkManager binary, but which one depends on build options. Hence, we also generate "NetworkManager.ver" by the "tools/create-exports-NetworkManager.sh" script. For that the script uses "nm" to find symbols that are undefined in the plugin libraries but defined in NetworkManager. With autotools the script looked at "./src/.libs/libNetworkManager.a" to find the present symbols. Note that for meson that already didn't work, and we build instead an intermediate NetworkManager binary first (with all symbols exposed). With LTO, "nm" doesn't find all symbols in "./src/.libs/libNetworkManager.a", and consequently they are not exported and dropped/hidden. This also causes unit tests to fail with LTO, because our test script "tools/check-exports.sh" catches such bugs. Fix that by also with autotools generate a complete "NetworkManager-all-sym" binary that is used to generate "NetworkManager.ver", before rebuilding "NetworkManager" again.
* shared/tests: add test for checking "nm-json-aux.h"Thomas Haller2020-07-091-0/+1
| | | | | | | Our "nm-json-aux.h" redefines various things from <jansson.h> header. Add a unit test that checks that what we redefine exactly matches what libjansson would provide, so that they are compatible.
* docs: generate nm-settings-docs-nmcli.xml based on nmcli meta dataThomas Haller2020-06-111-0/+3
| | | | | | | | We have the correct meta-data of supported properties for nmcli. It is in clients/common. Use that for generating the manual page instead of the properties that are part of libnm (some properties may be in libnm but not supported by nmcli, or some properties may not be GObject properties, and not detected as by GObject introspection).
* docs: move "nm-settings-docs-{dbus,nmcli}.xml" from "libnm/" to "man/"Thomas Haller2020-06-111-2/+2
| | | | | | | | | | | | "nm-settings-docs-nmcli.xml" will be generated by a tool that depends on "clients/common/". The file should thus not be in libnm directory, otherwise there is a circular dependency. Move the file to "man/" directory. For consistency, also move "nm-settings-docs-dbus.xml". Note that we cannot move "nm-settings-docs-gir.xml" to "man/", because that one is needed for building clients.
* docs: add more nm-settings manpages (dbus,nmcli,keyfile,ifcfg-rh)Thomas Haller2020-06-111-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | A significant part of NetworkManager's API are the connection profiles, documented in `man nm-settings*`. But there are different aspects about profiles, depending on what you are interested. There is the D-Bus API, nmcli options, keyfile format, and ifcfg-rh format. Additionally, there is also libnm API. Add distinct manual pages for the four aspects. Currently the two new manual pages "nm-settings-dbus" and "nm-settings-nmcli" are still identical to the former "nm-settings.5" manual. In the future, they will diverge to account for the differences. There are the following aspects: - "dbus" - "keyfile" - "ifcfg-rh" - "nmcli" For "libnm" we don't generate a separate "nm-settings-libnm" manual page. That is instead documented via gtk-doc. Currently the keyfile and ifcfg-rh manual pages only detail settings which differ. But later I think also these manual pages should contain all settings that apply.
* docs: rename "nm-settings-docs.xml" to "nm-settings-docs-dbus.xml"Thomas Haller2020-06-111-1/+2
| | | | | | "nm-settings-docs-dbus.xml" is "nm-settings-docs-gir.xml" merged with "nm-property-infos-dbus.xml". The name should reflect that, also because we will get more files with this naming scheme.
* docs: rename "nm-property-docs.xml" to "nm-settings-docs-gir.xml"Thomas Haller2020-06-111-1/+2
| | | | | | | | | | | The name is bad. For one, we will have more files of the same format ("nm-settings-docs-nmcli.xml"). Also, "libnm/nm-settings-docs.xml" and "libnm/nm-property-docs.xml" had basically the same file format. Their name should be similar. Also the tool to generate the file should have a name that reminds to the file that it creates.
* docs: rename "nm-property-infos" doc filesThomas Haller2020-06-111-3/+6
| | | | | | | | | | The naming was inconsistent. Rename. - all the property infos of this kind a now consistently called "libnm/nm-property-infos-$TAG.xml". - the script to generate files "libnm/nm-property-infos-$TAG.xml" is now called "libnm/generate-docs-nm-property-infos.pl".
* platform: add tc testsBeniamino Galvani2020-05-281-0/+2
|
* git: ignore clangd and ctags generated filesAntonio Cardace2020-01-291-0/+3
|
* shared: move "shared/nm-utils/tests/test-shared-general" to ↵Thomas Haller2019-12-101-1/+2
| | | | | | | | "shared/nm-glib-aux/tests" "shared/nm-utils" got long renamed and split into separate parts. The remaining tests are really to test nm-std-aux and nm-glib-aux (no libnm dependencies). Move the tests to the appropriate place.
* cloud-setup: add tool for automatic IP configuration in cloudThomas Haller2019-11-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* bluetooth/tests: add "nm-bt-test helper" program for manual testing of ↵Thomas Haller2019-09-221-0/+1
| | | | | | | bluetooth code Just add a stub implementation and let it build. More will be added later.
* wwan/tests: test service-providers.xml parserLubomir Rintel2019-09-111-0/+1
| | | | Just a handful of unit tests.
* COPYING: make sure we ship the relevant license textsLubomir Rintel2019-09-101-1/+0
| | | | | | | | | | | | | This adds LGPL and GFDL texts from the GNU web site and updates the GPL one: COPYING: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt COPYING.LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt COPYING.GFDL: https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt The update to the GPL text is purely cosmetic. However, shipping the exact same file as GNU publishes may help distros that deduplicate the license texts or hardlink duplicates.
* initrd: add devicetree supportLubomir Rintel2019-09-101-0/+1
| | | | | | | | | | | | This adds capability to hand over the network configuration from OpenFirmware (and potentially other boot loaders with openfirmware support such as U-Boot) to NetworkManager. It's done analogously to ACPI/iBFT. In fact, the same ip=ibft command line option is used, adding a more general ip=fw alias. This probably deserves some documentation, but I'm not adding any at this time. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/257
* settings: drop ibft settings pluginth/drop-ibft-settings-pluginThomas Haller2019-06-201-1/+1
| | | | | | | | | | | | | | | 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
* gitignore: merge gitignore filesThomas Haller2019-05-191-2/+21
| | | | | | | | | For the most part, we only have one main .gitignore file. There were a few nested files, merge them into the main file. I find it better to have only one gitignore file, otherwise the list of ignored files is spread out through the working directory.