Commit graph

239 commits

Author SHA1 Message Date
Thomas Haller f4fb4d271f keyfile/tests: add test for reading dcb connection
Catches previously fixed memleak in read_array_of_uint()
2017-01-05 11:13:17 +01:00
Thomas Haller a8afbb7299 systemd: merge branch systemd into master 2017-01-04 15:55:46 +01:00
Beniamino Galvani a7945ef765 build: don't run GIR tools on private headers
Fixes the warning:

libnm-glib/nm-object-private.h:28: Warning: NMClient: symbol='PropertyMarshalFunc': Unknown namespace for identifier 'PropertyMarshalFunc'
2016-12-20 11:40:12 +01:00
Thomas Haller 0dfb5d2452 build: remove "src/NetworkManager.ver-orig"
Generating "src/NetworkManager.ver" each time seems to work well.
Thus, src/NetworkManager.ver-orig is unused an gets easily out
of date. Just remove it. It's not useful anymore.
2016-12-18 17:45:15 +01:00
Michael Catanzaro 4b6fb82bc5 build: always use the right python for generate-settings-docs.py
Fixes: 6070fe697a

https://bugzilla.gnome.org/show_bug.cgi?id=775768
2016-12-16 09:13:24 +01:00
Lubomir Rintel 0c2a59b08a build: build documentation for o.fd.NM.DnsManager
Fixes: 14105ece56
2016-12-15 20:29:46 +01:00
Francesco Giudici 2ee6b7bf82 ifcfg-rh: merge branch 'fg/dhcp_hostname_bgo775622'
https://bugzilla.gnome.org/show_bug.cgi?id=775622
2016-12-15 11:29:05 +01:00
Thomas Haller 6070fe697a build: allow specifying the python interpreter for building
As build-requirement, we either require
  - python2 with python-gobject-base
  - python3 with python3-gobject-base
Previously, we would require that a plain `python` gives the desired
interpreter version.

If somebody's "/usr/bin/env python" however points to a different
python version, there was no easy way to change it -- aside
resetting the $PATH variable to some desired "python" binary.

Now, you can specify it during configure:

  ./configure PYTHON=python3 ...

This especially matters, if you only have python3-gobject-base
installed, you /usr/bin/python is a symlink to python2.

https://bugzilla.gnome.org/show_bug.cgi?id=775768
2016-12-14 19:00:42 +01:00
Francesco Giudici 6bf69d0fa1 ifcfg-rh/tests: add ipv6 hostname legacy support read test 2016-12-14 16:21:26 +01:00
Beniamino Galvani 597f327b20 dns: merge branch 'bg/dns-dbus-bgo603321'
https://bugzilla.gnome.org/show_bug.cgi?id=603321
2016-12-12 22:27:39 +01:00
Beniamino Galvani a8d6005256 libnm: implement support for DNS manager properties 2016-12-12 22:06:24 +01:00
Beniamino Galvani 14105ece56 dns: export DNS manager D-Bus object
Extend the D-Bus API and introduce a new NMDnsManager interface that
contains all the information related to DNS configuration.

At the moment the new DnsManager object only contains basic properties
describing the current DNS mode and resolv.conf manager.
2016-12-12 21:49:15 +01:00
Thomas Haller a2402acfed build: fix dependency of NetworkManager.ver for libnm-ppp-plugin
Fixes: 025235e00f
2016-12-12 21:38:26 +01:00
Beniamino Galvani 025235e00f ppp: split ppp manager into a plugin
Moving the PPP manager to a separate plugin that is loaded when needed
has the advantage of slightly reducing memory footprint and makes it
possible to install the PPP support only where needed.

https://bugzilla.gnome.org/show_bug.cgi?id=773482
2016-12-06 11:08:11 +01:00
Thomas Haller a80ba4ea09 build: fix gtk-doc/introspection handling for build
- `make dist` requires --enable-gtk-doc --enable-introspection --with-libnm-glib
- --enable-gtk-doc requires --enable-introspection
- --with-nmcli requires either --enable-introspection or pregenerated
   settings-docs.c files from the dist tarball. It does not require
   --enable-gtk-doc.

There is a bit of a problem in that --enable-introspection requires
now xsltproc. However, gobject-introspection does itself not depend
on xsltproc. So, more correct might be a special --enable-doc argument,
that combines --enable-introspection --with-xsltproc. Anyway, that
seems to make it more complicated then it already is so just implicitly
(and surprisingly?) require xsltproc with --enable-introspection.

https://bugzilla.gnome.org/show_bug.cgi?id=775003
2016-11-28 12:43:51 +01:00
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