summaryrefslogtreecommitdiff
path: root/.gitignore
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* src/tests: rename core's "test-general*" to "test-core*"Thomas Haller2019-05-191-2/+4
|
* libnm/tests: rename libnm's "test-general" to "test-libnm"Thomas Haller2019-05-191-1/+2
|
* clients/tests: rename clients/common's "test-general" to "test-clients-common"Thomas Haller2019-05-191-1/+2
|
* wifi/tests: rename Wi-Fi's "test-general" to "test-devices-wifi"Thomas Haller2019-05-191-1/+2
| | | | We already have 4 other tests that are named "test-general". Rename.
* keyfile/tests: rename core's "test-keyfile" to "test-keyfile-settings"Thomas Haller2019-05-191-1/+2
| | | | | | | | | | | | | | | | | | We already have "libnm-core/tests/test-keyfile.c" from which we build "test-keyfile". Our test binaries should be named the following: - "*/tests/test-*" - the test binary "*/tests/test-*" should be build from a source file "*/tests/test-*.c". Meaning: the source's and executable's name should correspond. - test binaries should be named uniquely. Also, because older meson versions don't like having the same binary name more than once. Rename to avoid the duplicate name.
* gitignore: move ignored libnm-glib/libnm-util files to the bottom of the ↵Thomas Haller2019-05-191-60/+56
| | | | | | | .gitignore The bottom contains the tombstones for files that we ignored in the past, but no longer actually have. Move the lines.
* shared/tests: add tests for libnm-core-auxThomas Haller2019-04-251-4/+4
| | | | | | | | | | These tests cannot (easily) be under "shared/nm-libnm-core-aux/tests" because libnm/libnm-core requires code under shared while "nm-libnm-core-aux" requires libnm/libnm-core. With autotools that is not problem, but with meson we include sub directories in a particular order and there is no way to foward declare stuff (AFAIK). To avoid the circular dependency, add the tests to "clients/common/tests", which is always built last.
* shared/tests: add test for "shared/nm-utils"Thomas Haller2018-10-181-0/+1
| | | | | | | | | "shared/nm-utils" is a loose collection of utility functions. There is a certain aim that they can be used independently. However, they also rely on each other. Add a test that we can build a minimal shared library with these tools, independent of libnm-core.
* initrd: add configuration generatorLubomir Rintel2018-09-181-0/+1
| | | | | | nm-initrd-generator scans the command line for options relevant to network configuration and creates configuration files for an early instance of NetworkManager run from the initial ramdisk during early boot.
* initrd: add command line parserLubomir Rintel2018-09-181-0/+1
|
* initrd: add iBFT readerLubomir Rintel2018-09-181-0/+1
| | | | | | | | | | | | | This is loosely based on nms-ibft-reader, but with some significant changes. Notably, it parses /sys/firmware/ibft directly instead of iscsiadm output. iscsiadm is not available on early boot (perhaps it's too large) and turns out that parsing sysfs directly is easier and more straightforwared anyways. A win-win situation. It is not useful alone, it's in a separate commit just for the sake of easier review.
* gitignore: Fix *.stamp ignoreJan Alexander Steffens (heftig)2018-09-131-1/+1
| | | | | | ripgrep complains about the invalid `**`. (cherry picked from commit 1fad494c3464ded6c59cd321a2c6e5f88064e757)
* build: create "config-extra.h" header instead of passing directory variables ↵Thomas Haller2018-07-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | via CFLAGS 1) the command line gets shorter. I frequently run `make V=1` to see the command line arguments for the compiler, and there is a lot of noise. 2) define each of these variables at one place. This makes it easy to verify that for all compilation units, a particular define has the same value. Previously that was not obvious or even not the case (see commit e5d1a71396e107d1909744d26ad401f206c0c915 and commit d63cf1ef2faba57595112a82e962b9643cce4718). The point is to avoid redundancy. 3) not all compilation units need all defines. In fact, most modules would only need a few of these defines. We aimed to pass the necessary minium of defines to each compilation unit, but that was non-obvious to get right and often we set a define that wasn't used. See for example "src_settings_plugins_ibft_cppflags" which needlessly had "-DSYSCONFDIR". This question is now entirely avoided by just defining all variables in a header. We don't care to find the minimum, because every component gets anyway all defines from the header. 4) this also avoids the situation, where a module that previously did not use a particular define gets modified to require it. Previously, that would have required to identify the missing define, and add it to the CFLAGS of the complation unit. Since every compilation now includes "config-extra.h", all defines are available everywhere. 5) the fact that each define is now available in all compilation units could be perceived as a downside. But it isn't, because these defines should have a unique name and one specific value. Defining the same name with different values, or refer to the same value by different names is a bug, not a desirable feature. Since these defines should be unique accross the entire tree, there is no problem in providing them to every compilation unit. 6) the reason why we generate "config-extra.h" this way, instead of using AC_DEFINE() in configure.ac, is due to the particular handling of autoconf for directory variables. See [1]. With meson, it would be trivial to put them into "config.h.meson". While that is not easy with autoconf, the "config-extra.h" workaround seems still preferable to me. [1] https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Installation-Directory-Variables.html
* core: rename 'arping' to 'acd'Beniamino Galvani2018-04-181-1/+2
| | | | | | Now that the ACD functionality is no longer using arping, rename nm-arping-manager to nm-acd-manager and other occurences of arping as well.
* gitignore: ignore *.pyc filesThomas Haller2018-04-041-0/+1
|
* dhcp: remove unused nm_utils_resolve_conf_parse() functionThomas Haller2018-03-201-1/+1
|