Emmanuele Bassi
41ed42d5ba
build: do not require GTK-Doc to build nmcli
...
We can simply check for xsltproc and depend on pygobject and
introspection.
https://bugzilla.gnome.org/show_bug.cgi?id=775003
2016-11-28 12:43:47 +01:00
Thomas Haller
a4224b9882
build: combine targets for nm-settings*.xml via pattern rule in Makefile.am
2016-11-24 16:55:17 +01:00
Thomas Haller
7864435c3c
build: fix out-of-tree build to find common.ent for documentation
...
Need to pass --path to xsltproc to find common.ent in the
build-directory.
$ git clean -fdx && NMTST_MAKE='V=1 -d' ./tools/test-build.sh man/nm-settings-ifcfg-rh.xml
2016-11-24 16:55:17 +01:00
Thomas Haller
5701febb16
build: avoid specifying man/nm-settings.xml paths multiple times
...
Don't repeat yourself. Aim to specify paths at few places.
2016-11-24 16:55:17 +01:00
Thomas Haller
020f4fb5ba
build: combine pattern rule for makefiles
2016-11-24 16:55:17 +01:00
Thomas Haller
ab208d69da
build: fix lookup "nm-settings-docs-overrides.xml" for out-of-tree build
...
When building "libnm/nm-settings-docs.xml", we require
"nm-settings-docs-overrides.xml". As we dist the overrides files,
we must consult VPATH to locate the proper version of the file.
2016-11-24 16:55:00 +01:00
Thomas Haller
2ac6c5a981
build: rename intermediate doc xmls
...
Allows to use pattern rules by making the
related files having a common naming scheme.
This commit only renames files.
2016-11-24 16:54:17 +01:00
Thomas Haller
ec4a1b7540
build: avoid some uses of BUILT_SOURCES in Makefile.am
...
BUILT_SOURCES only matters during `make all`, `make check`
and `make install`.
It would be nice to be able to build every target specifically
from an empty git-tree.
Drop the use of BUILT_SOURCES where we already have the explicit
dependencies declared.
2016-11-24 16:52:27 +01:00
Thomas Haller
99bf51d3c7
build: add explicit dependency objects to generated source files
...
BUILT_DIR only matters during `make all` and `make check`.
2016-11-24 15:59:27 +01:00
Thomas Haller
53496b3bb7
build: don't use $(top_*dir) in Makefile.am
...
It's the same as the current directory. For consistency
don't use the "top_" prefix.
2016-11-24 15:59:27 +01:00
Thomas Haller
a332e17f6b
build: consistently use $() instead of ${} in Makefile.am
2016-11-24 15:59:27 +01:00
Thomas Haller
063bacdb84
build: drop $(top_builddir) for referring to libnm/libnm.la
2016-11-24 15:59:27 +01:00
Lubomir Rintel
88f3f29882
build: install the D-Bus introspection data
...
This would make it easier to develop against NetworkManager D-Bus API.
2016-11-23 15:43:42 +01:00
Lubomir Rintel
972e0d2803
all: rename the introspection data to use the interface paths in names
...
This makes it easier to install the files with proper names.
Also, it makes the makefile rules slightly simpler.
Lastly, the documentation is now generated into docs/api, which makes it
possible to get rid of the awkward relative file names in docbook.
2016-11-23 15:43:42 +01:00
Francesco Giudici
3bcca564c7
ifcfg-rh/tests: add tests for link negotiation options
...
Thanks to Thomas Haller for making test code much more compact taking
advantage of the nmtst_create_minimal_connection function.
2016-11-22 15:24:47 +01:00
Thomas Haller
f1017b7f69
build: move setting install_manpages variable
2016-11-22 11:00:49 +01:00
Thomas Haller
2c9572d302
build: remove redundant check for ENABLE_GTK_DOC
...
BUILD_SETTING_DOCS is only enabled when we have also ENABLE_GTK_DOC.
Remove the redundant check.
2016-11-22 11:00:49 +01:00
Thomas Haller
11e26d015a
build: add explicit dependency of nmcli sources to "settings-docs.c"
...
Instead of relying on BUILT_SOURCES.
$ git clean -fdx && NOCONFIGURE=x ./autogen.sh && ./configure --enable-gtk-doc && make clients/cli/nmcli
Also, add the file to DISTCLEANFILES.
2016-11-21 15:48:05 +01:00
Lubomir Rintel
bd01d9ca2e
build: silence some verbose make rules
2016-11-21 15:35:12 +01:00
Thomas Haller
58236425cb
build: cleanup include paths in Makefile.am
...
- Use -I$() instead of -I${}
- omit "top_" for -I$(srcdir)
- remove quoting for include paths
We don't quote other places either. You just cannot
build NetworkManager in a path that contain invalid
characters.
- remove trailing slash from include paths
- fix indention with spaces in Makefile.am
2016-11-21 14:26:37 +01:00
Thomas Haller
44ecb41593
build: don't add subdirectories to include search path but require qualified include
...
Keep the include paths clean and separate. We use directories to group source
files together. That makes sense (I guess), but then we should use this
grouping also when including files. Thus require to #include files with their
path relative to "src/".
Also, we build various artifacts from the "src/" tree. Instead of having
individual CFLAGS for each artifact in Makefile.am, the CFLAGS should be
unified. Previously, the CFLAGS for each artifact differ and are inconsistent
in which paths they add to the search path. Fix the inconsistency by just
don't add the paths at all.
2016-11-21 14:26:37 +01:00
Thomas Haller
a65762ca33
build: rename "src/ppp-manager" to "src/ppp"
...
The ppp directory does not only contain the manager
instance, but various files related to ppp.
Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller
8c7f5e2653
build: rename "src/dnsmasq-manager" to "src/dnsmasq"
...
The dnsmasq directory does not only contain the manager
instance, but various files related to dnsmasq.
Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller
2603b01684
build: rename "src/vpn-manager" to "src/vpn"
...
The vpn directory does not only contain the manager
instance, but various files related to VPN.
Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller
62c2e6ccda
build: rename "src/dns-manager" to "src/dns"
...
The dns directory does not only contain the manager
instance, but various files related to DNS.
Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller
e053996881
build: rename "src/dhcp-manager" to "src/dhcp"
...
The dhcp directory does not only contain the manager
instance, but various files related to DHCP.
Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller
1706366351
build: rename "src/supplicant-manager" to "src/supplicant"
...
The supplicant directory does not only contain the manager
instance, but various files related to wpa-supplicant.
Rename.
2016-11-21 14:07:47 +01:00
Thomas Haller
d080b5d0ff
build: add dependency for ifcfg-rh objects to "nmdbus-ifcfg-rh.h"
...
$ git clean -fdx && NOCONFIGURE=x ./autogen.sh && mkdir -p x/y && cd x/y && ../../configure && make src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
...
../../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c:49:55: fatal error: settings/plugins/ifcfg-rh/nmdbus-ifcfg-rh.h: No such file or directory
#include "settings/plugins/ifcfg-rh/nmdbus-ifcfg-rh.h"
2016-11-21 14:07:47 +01:00
Lubomir Rintel
0f867d31c1
build: silence some verbose make rules
2016-11-21 13:53:03 +01:00
Thomas Haller
7ed550133b
build: add dist-dependency for libnm-glib/libnm-glib-vpn.la
...
We want that plain `make dist` works. For that, we need to build
libnm-glib-vpn.la too.
2016-11-20 18:14:37 +01:00
Thomas Haller
29ac5de825
build: fix dependencies for generated headers
...
Some source files depend on other generated headers. For example,
"libnm/nm-device-modem.c" includes the generated "libnm/nm-enum-types.h".
The generated headers are part of BUILT_SOURCES to ensure that
they are generated first. However, this only works for `make all`
and `make check`.
We want that a plain `make dist` works as well. Thus, we need to
explicitly declare the additional dependencies.
Previously, that was done by having an explicity dependency of the
source files to the generated headers. However, that results in make
thinking the sources are build targets and out-of-tree builds fail:
./autogen.sh
make distclean
mkdir -p X/Y
cd X/Y
../../configure --enable-tests=yes --with-valgrind=no --enable-gtk-doc --enable-more-warnings=error --with-udev-dir=/data/src/_NetworkManager/NetworkManager-1.5.2/_inst/lib/udev --with-wext=no --enable-ifcfg-rh--enable-ifupdown --enable-ifnet --disable-code-coverage --srcdir=../.. --prefix=/data/src/_NetworkManager/NetworkManager-1.5.2/_instr
make -d V=1
fails with
CPPFLAGS="" CFLAGS="-Wall -std=gnu99 -Werror -Wshadow -Wmissing-declarations -Wmissing-prototypes -Wdeclaration-after-statement -Wfloat-equal -Wno-unused-parameter -Wno-sign-compare -Wstrict-prototypes -Wno-unused-but-set-variable -Wundef -Wimplicit-function-declaration -Wpointer-arith -Winit-self -Wmissing-include-dirs -Wno-pragmas -g -O2 -Warray-bounds -Wunused-value -fno-strict-aliasing -fdata-sections -ffunction-sections -Wl,--gc-sections" LDFLAGS="" CC="gcc" PKG_CONFIG="/usr/bin/pkg-config" DLLTOOL="false" CFLAGS="-Wall -std=gnu99 -Werror -Wshadow -Wmissing-declarations -Wmissing-prototypes -Wdeclaration-after-statement -Wfloat-equal -Wno-unused-parameter -Wno-sign-compare -Wstrict-prototypes -Wno-unused-but-set-variable -Wundef -Wimplicit-function-declaration -Wpointer-arith -Winit-self -Wmissing-include-dirs -Wno-pragmas -g -O2 -Warray-bounds -Wunused-value -fno-strict-aliasing -fdata-sections -ffunction-sections -Wl,--gc-sections -Wno-error" /usr/bin/g-ir-scanner --namespace=NM --nsversion=1.0 --libtool="/bin/sh ./libtool" --pkg=gio-2.0 --pkg=gudev-1.0 --include=Gio-2.0 --pkg-export=libnm --library=libnm/libnm.la --warn-all --identifier-prefix=NM --symbol-prefix=nm --cflags-begin -I../../shared -I./shared -I../../libnm-core -I./libnm-core -pthread -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -I/usr/include/nss3 -I/usr/include/nspr4 -I./introspection -I../../libnm -I./libnm -I/usr/include/gudev-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DG_LOG_DOMAIN=\""libnm"\" -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB -DNMRUNDIR=\"/data/src/_NetworkManager/NetworkManager-1.5.2/_instr/var/run/NetworkManager\" --cflags-end libnm-core/nm-core-enum-types.h shared/nm-version-macros.h ../../libnm-core/nm-connection.h ../../libnm-core/nm-core-types.h ../../libnm-core/nm-dbus-interface.h ../../libnm-core/nm-errors.h ../../libnm-core/nm-setting-8021x.h ../../libnm-core/nm-setting-adsl.h ../../libnm-core/nm-setting-bluetooth.h ../../libnm-core/nm-setting-bond.h ../../libnm-core/nm-setting-bridge-port.h ../../libnm-core/nm-setting-bridge.h ../../libnm-core/nm-setting-cdma.h ../../libnm-core/nm-setting-connection.h ../../libnm-core/nm-setting-dcb.h ../../libnm-core/nm-setting-generic.h ../../libnm-core/nm-setting-gsm.h ../../libnm-core/nm-setting-infiniband.h ../../libnm-core/nm-setting-ip-config.h ../../libnm-core/nm-setting-ip-tunnel.h ../../libnm-core/nm-setting-ip4-config.h ../../libnm-core/nm-setting-ip6-config.h ../../libnm-core/nm-setting-macvlan.h ../../libnm-core/nm-setting-olpc-mesh.h ../../libnm-core/nm-setting-ppp.h ../../libnm-core/nm-setting-pppoe.h ../../libnm-core/nm-setting-proxy.h ../../libnm-core/nm-setting-serial.h ../../libnm-core/nm-setting-team-port.h ../../libnm-core/nm-setting-team.h ../../libnm-core/nm-setting-tun.h ../../libnm-core/nm-setting-vlan.h ../../libnm-core/nm-setting-vpn.h ../../libnm-core/nm-setting-vxlan.h ../../libnm-core/nm-setting-wimax.h ../../libnm-core/nm-setting-wired.h ../../libnm-core/nm-setting-wireless-security.h ../../libnm-core/nm-setting-wireless.h ../../libnm-core/nm-setting.h ../../libnm-core/nm-simple-connection.h ../../libnm-core/nm-utils.h ../../libnm-core/nm-version.h ../../libnm-core/nm-vpn-dbus-interface.h ../../libnm-core/nm-vpn-editor-plugin.h ../../libnm-core/nm-vpn-plugin-info.h libnm-core/nm-core-enum-types.c shared/nm-utils/nm-shared-utils.c ../../libnm-core/crypto.c ../../libnm-core/nm-connection.c ../../libnm-core/nm-dbus-utils.c ../../libnm-core/nm-errors.c ../../libnm-core/nm-keyfile-reader.c ../../libnm-core/nm-keyfile-utils.c ../../libnm-core/nm-keyfile-writer.c ../../libnm-core/nm-property-compare.c ../../libnm-core/nm-setting-8021x.c ../../libnm-core/nm-setting-adsl.c ../../libnm-core/nm-setting-bluetooth.c ../../libnm-core/nm-setting-bond.c ../../libnm-core/nm-setting-bridge-port.c ../../libnm-core/nm-setting-bridge.c ../../libnm-core/nm-setting-cdma.c ../../libnm-core/nm-setting-connection.c ../../libnm-core/nm-setting-dcb.c ../../libnm-core/nm-setting-generic.c ../../libnm-core/nm-setting-gsm.c ../../libnm-core/nm-setting-infiniband.c ../../libnm-core/nm-setting-ip-config.c ../../libnm-core/nm-setting-ip-tunnel.c ../../libnm-core/nm-setting-ip4-config.c ../../libnm-core/nm-setting-ip6-config.c ../../libnm-core/nm-setting-macvlan.c ../../libnm-core/nm-setting-olpc-mesh.c ../../libnm-core/nm-setting-ppp.c ../../libnm-core/nm-setting-pppoe.c ../../libnm-core/nm-setting-proxy.c ../../libnm-core/nm-setting-serial.c ../../libnm-core/nm-setting-team-port.c ../../libnm-core/nm-setting-team.c ../../libnm-core/nm-setting-tun.c ../../libnm-core/nm-setting-vlan.c ../../libnm-core/nm-setting-vpn.c ../../libnm-core/nm-setting-vxlan.c ../../libnm-core/nm-setting-wimax.c ../../libnm-core/nm-setting-wired.c ../../libnm-core/nm-setting-wireless-security.c ../../libnm-core/nm-setting-wireless.c ../../libnm-core/nm-setting.c ../../libnm-core/nm-simple-connection.c ../../libnm-core/nm-utils.c ../../libnm-core/nm-vpn-editor-plugin.c ../../libnm-core/nm-vpn-plugin-info.c ../../libnm-core/crypto_nss.c libnm/nm-enum-types.h ../../libnm/NetworkManager.h ../../libnm/nm-access-point.h ../../libnm/nm-active-connection.h ../../libnm/nm-client.h ../../libnm/nm-device-adsl.h ../../libnm/nm-device-bond.h ../../libnm/nm-device-bridge.h ../../libnm/nm-device-bt.h ../../libnm/nm-device-ethernet.h ../../libnm/nm-device-generic.h ../../libnm/nm-device-infiniband.h ../../libnm/nm-device-ip-tunnel.h ../../libnm/nm-device-macvlan.h ../../libnm/nm-device-modem.h ../../libnm/nm-device-olpc-mesh.h ../../libnm/nm-device-team.h ../../libnm/nm-device-tun.h ../../libnm/nm-device-vlan.h ../../libnm/nm-device-vxlan.h ../../libnm/nm-device-wifi.h ../../libnm/nm-device-wimax.h ../../libnm/nm-device.h ../../libnm/nm-dhcp-config.h ../../libnm/nm-ip-config.h ../../libnm/nm-object.h ../../libnm/nm-remote-connection.h ../../libnm/nm-types.h ../../libnm/nm-vpn-connection.h ../../libnm/nm-vpn-editor.h ../../libnm/nm-wimax-nsp.h ../../libnm/nm-secret-agent-old.h ../../libnm/nm-vpn-plugin-old.h ../../libnm/nm-vpn-service-plugin.h libnm/nm-enum-types.c ../../libnm/nm-access-point.c ../../libnm/nm-active-connection.c ../../libnm/nm-client.c ../../libnm/nm-dbus-helpers.c ../../libnm/nm-device-adsl.c ../../libnm/nm-device-bond.c ../../libnm/nm-device-bridge.c ../../libnm/nm-device-bt.c ../../libnm/nm-device-ethernet.c ../../libnm/nm-device-generic.c ../../libnm/nm-device-infiniband.c ../../libnm/nm-device-ip-tunnel.c ../../libnm/nm-device-macvlan.c ../../libnm/nm-device-modem.c ../../libnm/nm-device-olpc-mesh.c ../../libnm/nm-device-team.c ../../libnm/nm-device-tun.c ../../libnm/nm-device-vlan.c ../../libnm/nm-device-vxlan.c ../../libnm/nm-device-wifi.c ../../libnm/nm-device-wimax.c ../../libnm/nm-device.c ../../libnm/nm-dhcp-config.c ../../libnm/nm-dhcp4-config.c ../../libnm/nm-dhcp6-config.c ../../libnm/nm-ip-config.c ../../libnm/nm-ip4-config.c ../../libnm/nm-ip6-config.c ../../libnm/nm-manager.c ../../libnm/nm-object.c ../../libnm/nm-remote-connection.c ../../libnm/nm-remote-settings.c ../../libnm/nm-secret-agent-old.c ../../libnm/nm-vpn-connection.c ../../libnm/nm-vpn-plugin-old.c ../../libnm/nm-vpn-editor.c ../../libnm/nm-vpn-service-plugin.c ../../libnm/nm-wimax-nsp.c libnm/libnm.la --output libnm/NM-1.0.gir
ERROR: shared/nm-utils/nm-shared-utils.c: no such a file or directory
/usr/share/gobject-introspection-1.0/Makefile.introspection:155: recipe for target 'libnm/NM-1.0.gir' failed
make: *** [libnm/NM-1.0.gir] Error 1
The error is due to "shared/nm-utils/nm-shared-utils.h" not using VPATH:
Finished prerequisites of target file 'shared/nm-utils/nm-shared-utils.c'.
Prerequisite 'libnm-util/nm-utils-enum-types.h' is newer than target 'shared/nm-utils/nm-shared-utils.c'.
Must remake target 'shared/nm-utils/nm-shared-utils.c'.
Ignoring VPATH name '../../shared/nm-utils/nm-shared-utils.c'.
The proper fix is to have the object files depend on the generated
headers instead.
2016-11-20 17:23:06 +01:00
Thomas Haller
b3d4bc578d
build: rename variables for mkenums files to have _mkenums suffix
...
The *_gen variables were really the *-enum-types.[hc] files generated
by glib-mkenums. Rename the variables, to make this clearer.
2016-11-20 14:40:38 +01:00
Thomas Haller
5070ac4b73
build: use variable instead of filenames for $(libnm_lib_h_pub_gen)
2016-11-20 14:35:47 +01:00
Thomas Haller
9776c73f98
build: fix Makefile.am for libnm-core/crypto_*.c
...
Fixes: 6e4d759d73
2016-11-18 17:21:22 +01:00
Thomas Haller
b9e3b8a3eb
build: don't dist generated libnm-core/tests/nm-core-tests-enum-types.*
2016-11-18 16:40:25 +01:00
Thomas Haller
6e4d759d73
build: refactor Makefile.am for libnm-core and libnm
...
- assign the differnt types of sources to different variables
and use them.
- don't dist generated enum-types sources
2016-11-18 16:40:25 +01:00
Thomas Haller
0a65628c87
build: add dist-hook dependency for documentation files
...
./autogen.sh --enable-gtk-doc --with-libnm-glib && make dist
2016-11-18 16:40:25 +01:00
Thomas Haller
af12661dee
build: refactor handling sources for libnm-util
2016-11-18 16:40:25 +01:00
Thomas Haller
a85742bdd1
build: don't dist generated enum-types for libnm-glib
2016-11-18 16:40:25 +01:00
Thomas Haller
3d3ce77bf6
build: add dependency for generated files for libnm-glib
...
Although the generated files are part of BUILD_SOURCES,
that only matters during `make all`.
2016-11-18 16:40:25 +01:00
Thomas Haller
830564e175
build: refactor handling sources for libnm-glib
...
We have generated headers, and non-generated.
We have public headers and internal headers.
We have headers/sources for libnm-glib and libnm-glib-vpn.
We want that non-generated files depend on generated files.
Thus, reorder it all and assign the groups to different variables.
2016-11-18 16:40:25 +01:00
Thomas Haller
c1289fe79b
build: let libnm/libnm.la sources depend on introspection files
...
Source files like libnm/nm-client.c include introspection files like
nmdbus-manager.h. These files are part of BUILT_SOURCES, which is
a pre-requisite to "all" target.
However, that is not sufficient for
./autogen --enable-gtk-doc && make dist
2016-11-18 16:40:25 +01:00
Thomas Haller
07a8f22aef
build: only generate documentation when BUILD_SETTING_DOCS
...
Generating the docs, requires man/nm-settings.xml. That is only present
when
- ./configure --enable-gtk-doc --with-introspecton
- in a dist-tarball, contrary to a git-tree
Only create docs, when we also regenerate the manuals (BUILD_SETTING_DOCS).
That is, you can no longer generate docs, by relying on the pre-generated
manual pages.
If you want to generate docs, you have to regenerate the manual pages
as well.
Previously, doing the following in a git-tree failed:
$ git clean -fdx
$ ./autogen.sh --enable-gtk-doc --enable-introspection=no && make
...
make[2]: Entering directory './NetworkManager/docs/api'
DOC Preparing build
DOC Scanning header files
DOC Introspecting gobjects
DOC Building XML
DOC Building XML
make[2]: *** No rule to make target '../../man/nm-settings.xml', needed by 'html-build.stamp'. Stop.
make[2]: Leaving directory './NetworkManager/docs/api'
2016-11-18 16:40:25 +01:00
Thomas Haller
3cd56809ed
core: drop unused "nm-bt-enum-types.h"
...
In core, we should not use any generated enum-types. Especially
nm-bt-enum-types.h was unused already.
2016-11-18 16:40:25 +01:00
Thomas Haller
d66d7fb707
core: drop unused "nm-modem-enum-types.h"
...
In core, we should not use any generated enum-types.
They are just bloat.
2016-11-18 16:40:25 +01:00
Thomas Haller
a791a9aa4b
systemd: merge branch systemd into master
2016-11-13 14:16:42 +01:00
Thomas Haller
7b78a931df
build: generate src/NetworkManager.ver during build
...
This adds 0.4 seconds to the build time.
You can disable it by setting $NM_BUILD_NO_CREATE_EXPORTS environment
variable. This is useful in the unexpected case that the script
is broken.
Or, if you just want to use a different, non-generated version-script.
Or, if you want to save 0.4 seconds build-time.
2016-11-10 18:30:38 +01:00
Lubomir Rintel
7700efad18
build: don't build the wimax nsp bindings
...
Added accidentally by the object-manager branch.
2016-11-10 18:11:24 +01:00
Lubomir Rintel
1f5b48a59e
libnm: use the o.fd.DBus.ObjectManager API for object management
...
This speeds up the initial object tree load significantly. Also, it
reduces the object management complexity by shifting the duties to
GDBusObjectManager.
The lifetime of all NMObjects is now managed by the NMClient via the
object manager. The NMClient creates the NMObjects for GDBus objects,
triggers the initialization and serves as an object registry (replaces
the nm-cache).
The ObjectManager uses the o.fd.DBus.ObjectManager API to learn of the
object creation, removal and property changes. It takes care of the
property changes so that we don't have to and lets us always see a
consistent object state. Thus at the time we learn of a new object we
already know its properties.
The NMObject unfortunately can't be made synchronously initializable as
the NMRemoteConnection's settings are not managed with standard
o.fd.DBus Properties and ObjectManager APIs and thus are not known to
the ObjectManager. Thus most of the asynchronous object property
changing code in nm-object.c is preserved. The objects notify the
properties that reference them of their initialization in from their
init_finish() methods, thus the asynchronously created objects are not
allowed to fail creation (or the dependees would wait forever). Not a
problem -- if a connection can't get its Settings, it's either invisible
or being removed (presumably we'd learn of the removal from the object
manager soon).
The NMObjects can't be created by the object manager itself, since we
can't determine the resulting object type in proxy_type() yet (we can't
tell from the name and can't access the interface list). Therefore the
GDBusObject is coupled with a NMObject later on.
Lastly, now that all the objects are managed by the object manager, the
NMRemoteSettings and NMManager go away when the daemon is stopped. The
complexity of dealing with calls to NMClient that would require any of
the resources that these objects manage (connection or device lists,
etc.) had to be moved to NMClient. The bright side is that his allows
for removal all of the daemon presence tracking from NMObject.
2016-11-10 16:48:48 +01:00
Beniamino Galvani
cd73f281cc
tui: add support for IP tunnel connections
2016-11-09 17:45:39 +01:00