Commit graph

182 commits

Author SHA1 Message Date
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
Lubomir Rintel 44fca246a7 rdisc: rename to ndisc
We'll soon not only do the router discovery, but announce ourselves as a
reouter. "Neighbor discovery" sounds to be a more appropriate name for
the class than "Router discovery".
2016-11-09 17:16:47 +01:00
Thomas Haller 264e519779 ifcfg-rh/tests: add test for handling multiple occurances of a variable
This tests commit "ifcfg-rh: handle multiple definitions of the same key".
2016-11-09 12:07:35 +01:00
Thomas Haller 9843da7ce5 ifcfg-rh: comment out invalid lines during svWriteFile
This is especially important because we don't support
line continuation. Thus, with

    FOO='val
      bar=3'
    wrong line
      F2=b
      F3='b
    XXX=adf'
      XXX2=val2
    '
we now write

    FOO=
    #NM: FOO='val
    bar=
    #NM:   bar=3'
    #NM: wrong line
      F2=b
    F3=
    #NM:   F3='b
    XXX=
    #NM: XXX=adf'
      XXX2=val2
    #NM: '

Basically, the writer will comment out any line that is

  - not all-whitespace
  - not a '#' comment (possibly proceeded by whitespace)
  - not a valid variable assignment

This avoids that writer writes lines that are not understood by
ifcfg-rh plugin, but interferes with initscripts. E.g.

  NAME=old-name'
  rm -rf /
  '

becomes

  NAME=new-name
  #NM: rm -rf /
  #NM: '
2016-11-09 12:07:35 +01:00
Lubomir Rintel 9e4232dbe6 build: set correct path to common.ent for out-of-tree builds
Otherwise the docbook files won't be able to expand the macros such as
version or build-time configurable paths.
2016-11-04 12:29:55 +01:00
Thomas Haller 4be9b4a2cb build: move policy file from "policy/" to "data/" 2016-11-03 14:18:23 +01:00
Thomas Haller e2b93beb83 build: fix vala build of libnm.vapi
make[2]: Entering directory './NetworkManager/NetworkManager-1.5.1/_build/sub'
     VAPIGEN vapi/libnm.vapi
    Gio-2.0.gir:62318.7-62318.47: warning: Virtual method `G.Resolver.lookup_service_async' conflicts with method of the same name
    Gio-2.0.gir:64704.7-64704.31: warning: Signal `G.Settings.change_event' conflicts with method of the same name
    Gio-2.0.gir:84847.7-84851.24: error: `UnixSocketAddress' already contains a definition for `abstract'
    Gio-2.0.gir:84690.7-84692.21: note: previous definition of `abstract' was here
    Makefile:16410: recipe for target 'vapi/libnm.vapi' failed

Fixes: 0fa2cf19e5
2016-11-03 14:18:23 +01:00
Thomas Haller 3be57bfba1 build: fix dist-ing vapi/NM-1.0.metadata
Fixes: 0fa2cf19e5
2016-11-03 14:00:21 +01:00
Thomas Haller 5058c49a83 build: fix dist-ing vapi/libnm.deps
Fixes: 0fa2cf19e5
2016-11-03 13:49:13 +01:00
Thomas Haller 0fa2cf19e5 vapi: add vapi NM-1.0 for libnm
Initial vala API for libnm. Consider it unstable, it probably needs
improvements.

https://bugzilla.gnome.org/show_bug.cgi?id=773588
2016-11-03 10:15:42 +01:00
Thomas Haller 1bb2103aa9 build: fix search path for building vapi
`make V=1` fails with:

    G_DEBUG='' /usr/bin/vapigen-0.26  --library vapi/libnm-glib --metadatadir ./vapi --vapidir . --girdir ./libnm-util --pkg gio-2.0 ./libnm-glib/NMClient-1.0.gir && touch vapi/libnm-glib.vapi
    error: Package `libnm-util' not found in specified Vala API directories or GObject-Introspection GIR directories
    Generation failed: 1 error(s), 0 warning(s)

Fixes: 14b5309af3
2016-10-26 16:25:53 +02:00
Francesco Giudici d860ccfc7b build: add glob-util.h to systemd source list
Fixes d00d907c06
2016-10-26 11:34:25 +02:00
Francesco Giudici 7939f373be build: fix "settings-docs.c" include path
Fixes: c8a25001f4
2016-10-25 16:44:47 +02:00
Thomas Haller 4b965d0cf6 build: exclude building src/platform/tests/monitor for --enable-tests=no
src/platform/tests/monitor is more a test-program. If should not
be compiled in a non-test build.
2016-10-23 10:52:57 +02:00
Thomas Haller 5cb60e7099 build: combine CPPFLAGS for src/tests 2016-10-22 17:55:44 +02:00
Thomas Haller 7b73951b1b build: buld nm-dhcp-manager.c as part of libNetworkMangerBase
NetworkManager and nm-iface-helper compiled nm-dhcp-manager.c twice,
the latter with setting -DNM_DHCP_INTERNAL_ONLY to only enable the
internal plugin.

Change that to compile nm-dhcp-manager.c once for both users
by putting it into libNetworkManagerBase.
2016-10-22 17:55:15 +02:00
Thomas Haller f9bd72c337 build: build src/platform/tests/test-common.c as part of libNetworkManagerTest.la
Instead having a base test-library libNetworkManagerTest.la and a separate
libnm-platform-tests.la, merge them together.
2016-10-22 17:16:17 +02:00
Thomas Haller 58916ff30a build: refactor intermediate NetworkManager libraries during build
nm-iface-helper re-compiled a number of source files that are already
compiled for NetworkManager. Prepare those files as libNetworkManagerBase.la.
2016-10-22 17:16:17 +02:00
Thomas Haller 002f17c25d src: drop generated nm-src-enum-types.h
We only needed proper glib enum types for having properties
and signal arguments. These got all converted to plain int,
so no longer generate such an enum type.
2016-10-22 17:16:17 +02:00
Thomas Haller 3bbc55fd9c core: don't use generated glib enum for platform types 2016-10-22 17:16:17 +02:00
Thomas Haller 931a5b4f1c core: don't use generated glib enum for NMAuthSubjectType 2016-10-22 17:16:17 +02:00
Thomas Haller 5657d4dffb build: reuse common CPPFLAGS via dflt_cppflags_libnm_core variable 2016-10-22 17:16:17 +02:00
Thomas Haller f5c5dba4f5 build: don't link libnm-wwan.la against introspection/libnmdbus.la
Also, the $(top_builddir) was wrong.
2016-10-22 17:15:50 +02:00
Thomas Haller 4450215ad1 build: fix out-of-tree build for libnm-core/tests 2016-10-22 17:12:06 +02:00
Thomas Haller 9f11610606 build: fix out-of-tree build for dispatcher 2016-10-22 16:12:46 +02:00
Thomas Haller 75f29b8a9c build: fix out-of-tree build for libnm/tests/libnm-vpnplugin-utils-test.la 2016-10-22 16:07:46 +02:00
Thomas Haller 351851cf27 build: merge "examples/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 742d36c476 build: merge "examples/C/glib/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 14b5309af3 build: merge "vapi/Makefile.am" into toplevel Makefile
There is an strange automake warning

    Makefile.vapigen:49: warning: $(1) was already defined in condition TRUE, which includes condition ENABLE_VAPIGEN ...
    Makefile.am:4:   'Makefile.vapigen' included from here
    Makefile.glib:124: ... '$(1)' previously defined here
    Makefile.am:1:   'Makefile.glib' included from here

when having

    if ENABLE_VAPIGEN
    include Makefile.vapigen
    endif

That is worked around by removing the "if", which however
requires us to remove the error check in Makefile.vapigen.
2016-10-21 17:37:57 +02:00
Thomas Haller b0f4e25782 build: merge "docs/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 03e88d92a6 build: move nm.mk into main Makefile.am 2016-10-21 17:37:57 +02:00
Thomas Haller 2296db22c8 build: merge "man/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 0f09b1d1cc build: merge "libnm-glib/tests/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 8027e09be4 build: merge "libnm-glib/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 7c66a6be17 build: merge "libnm-util/tests/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller fa0acb2042 build: merge "libnm-util/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 8fa3314736 build: merge "data/Makefile.am" into toplevel Makefile 2016-10-21 17:37:57 +02:00
Thomas Haller 586e830e05 build: merge "clients/tui/Makefile.am" into toplevel Makefile 2016-10-21 17:37:56 +02:00
Thomas Haller c8a25001f4 build: merge "clients/cli/Makefile.am" into toplevel Makefile 2016-10-21 17:37:56 +02:00
Thomas Haller f63a5a2a0d build: merge "clients/Makefile.am" into toplevel Makefile 2016-10-21 17:37:56 +02:00
Thomas Haller 7fab25711a build: merge "dispatcher/tests/Makefile.am" into toplevel Makefile 2016-10-21 17:37:56 +02:00
Thomas Haller 6f19ccdd58 build: merge "dispatcher/Makefile.am" into toplevel Makefile 2016-10-21 17:04:06 +02:00
Thomas Haller 7bf4a15504 build: merge "src/tests/Makefile.am" into toplevel Makefile 2016-10-21 17:04:06 +02:00