summaryrefslogtreecommitdiff
path: root/.gitignore
Commit message (Collapse)AuthorAgeFilesLines
* .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.
* 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.