"shared/nm-setting-metadata.h" will contain data structures
to handle NM setting properties in a generic way.
For now, this is internal API, but shared between libnm-core (which
extends to libnm, NetworkManager, device-plugins, settings-plugins),
and nmcli.
Related: https://bugzilla.gnome.org/show_bug.cgi?id=732292
Otherwise, substitions are not properly expanded.
For example
- "AC_SUBST(nmrundir, '${runstatedir}'/$PACKAGE, [NetworkManager runtime state directory])"
gives ${runstatedir}/NetworkManager/resolv.conf
- "AC_SUBST(nmrundir, "${runstatedir}/$PACKAGE", [NetworkManager runtime state directory])"
gives ${prefix}/var/run/NetworkManager/resolv.conf
Building the man pages via xsltproc requires "docbook.xsl"
which is part of docbook.
Previously, we would build the man pages solely based on
"--enable-introspection", which checks for the presence of
xsltproc, but not docbook. This can lead to build failure
when docbook is not available, but "--enable-introspection"
is given.
Instead of adding yet another configure option to fine-tune
and say "--with-docbook --disable-gtk-doc", just simplify it.
Now, documentation (both man pages and setting docs) will be generated
with "--enable-gtk-doc" and "--enable-introspection".
If the documentation is not about to be generated, pre-generated docs
will be installed if they are available. That is commonly the case
with a source tarball, but not with a git checkout.
Finally, if documentation is nither generated nor pre-generated,
no documentation will be installed *duh*.
This removes the possibility to treat man pages separate from settings
docs. Now you either generate both, install both pre-generated, or don't
get any of them.
https://bugzilla.gnome.org/show_bug.cgi?id=778551
`nm` is used by "tools/create-exports-NetworkManager.sh" script.
Alloc configuring an explicit path during configure.
BINUTILS_NM=/usr/bin/nm ./configure
The new NMSettingMacsec contains information necessary to establish a
MACsec connection. At the moment we support two different MACsec
modes, both using wpa_supplicant: PSK and EAP.
PSK mode is based on a static CAK key for the MACsec key agreement
protocol, while EAP mode derives keys from a 802.1x authentication and
thus requires the presence of a NMSetting8021x in the connection.
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.
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
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.
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
- `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
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
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.
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.
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.
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.
- 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
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.
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.
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
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'
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.
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.
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".
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: '
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
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.
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.
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.
Let's always build with tests, regardless of --enable-tests.
If the user builds with --enable-tests=no, we automake the tests
as check_PROGRAMS, which only compiles the tests during `make check`.
Otherwise, we automake them as noinst_PROGRAMS, which builds the
tests regularly as a normal build.
This way, a user who doesn't want to build the tests regularly,
still can build and run them via `make check`.
Had to rename "nm-enum-types.h" because it works badly with
"libnm/nm-enum-types.h". Maybe I could fix that differently,
but duplicate names is anyway error prone.
Note that "nm-core-enum-types.h" is already taken too, so
"nm-src-enum-types.h" it is.
Originally, the "callouts" directory contained various programs
that NetworkManager would call, for example the dhcp helper.
For a while, it only contains nm-dispatcher. Thus rename the directory
to indicate that it's for dispatcher.
Up to now, the "include" directory contained (only) header files that were
used project-wide by libs, core, clients, et al.
Since the directory now also contains a non-header file, the "include"
name is misleading. Instead of adding yet another directory that is
project-wide, with non-header-only content, rename the "include"
directory to "shared".
Add --without-libnm-glib, for people who don't want to build the
legacy client libraries. When building with this option, dbus-glib and
libdbus are not required.
After the hostname functionality has been moved from plugins to core,
the ifcfg-suse plugin contains only boilerplate code with no actual
functionality.
Remove the plugin, mark it as deprecated in manual page and print a
warning when it is selected in configuration file.
It seems like a poor default for various downstream toolchains. We can't
anticipate the compiler warnings for future compiler versions and older
ones are prone to false positives. Also, older gdbus-codegen is known
to generate code that triggers compiler warnings.
Let's keep it enabled for maintainer builds and distcheck so that we're
sure a tool chain that builds releases without warnings exists.
Port libnm-core/libnm to GDBus.
The NetworkManager daemon continues to use dbus-glib; the
previously-added connection hash/variant conversion methods are now
moved to NetworkManagerUtils (along with a few other utilities that
are now only needed by the daemon code).
This fixes up the code from the previous "clean" import, and adds
build infrastructure.
[There are two slightly orthogonal sets of changes in this patch.
First, the files added in the previous commit were modified as followed:
# Replace internal references to "libnm-util" and "libnm-glib" with "libnm"
perl -pi -e 's/libnm-(util|glib)/libnm/;' libnm-core/*.[ch] libnm-core/tests/*.[ch] libnm/*.[ch] libnm/tests/*.[ch]
# Fix includes of the enum-types files
perl -pi -e 's/nm-utils-enum-types/nm-core-enum-types/;' libnm-core/*.[ch] libnm-core/tests/*.[ch] libnm/*.[ch] libnm/tests/*.[ch]
perl -pi -e 's/nm-glib-enum-types/nm-enum-types/;' libnm/*.[ch] libnm/tests/*.[ch]
# Fix some python example code
perl -pi -e 's/import NMClient/import NM/;' -e 's/NMClient.Client\(\)/NM.Client()/;' libnm/nm-client.c
Then, the build infrastructure was added (without further modifying
any existing files in libnm-core or libnm.)
Note: to regenerate libnm.ver after rebase:
(head -2 libnm-util/libnm-util.ver; (grep -h '\s'nm_ libnm-util/libnm-util.ver libnm-glib/libnm-glib.ver | env LANG=C sort); tail -3 libnm-util/libnm-util.ver) > libnm/libnm.ver
]
The remaining contents of the test/ directory are:
- 2 python example programs that aren't as good as the ones in examples/
- a test of the deprecated libnm_glib API which isn't as good as the one
in libnm-glib/
- A DHCP-related test program that hasn't been relevant since 2005
Let's just kill it all
Create a new clients/ subdirectory at the top level, and move cli/ and
tui/ into it, as well as nm-online.c (which was previously in test/,
which made no sense).
cli/ was split into two subdirectories, src/ and completion/. While
this does simplify things (given that the completion file and the
binary both need to be named "nmcli"), it bloats the source tree, and
we can work around it by just renaming the completion file at install
time. Then we can combine the two directories into one and just have
it all under clients/cli/.
Certain build configurations (like --enable-gtk-doc
--disable-introspection) were broken with respect to nm-setting-docs.
Fix this. Also, we don't require just gobject-introspection, we need
pygobject specifically as well.
Add generate-setting-docs.py, based on tools/generate-settings-spec.c,
which generates a simple XML file describing all libnm setting
properties (still getting the default values via GParamSpec
introspection like generate-settings-spec.c does, but getting the
documentation out of the gtk-doc strings in the GIR file instead).
We were setting GLIB_VERSION_MAX_ALLOWED to 2.34, since we provide
reimplementations of a few 2.34 functions in nm-glib-compat.h. But
this was turning off warnings for the 2.34+ APIs we *didn't* have
compat versions of too.
Fix this by setting MAX_ALLOWED to 2.32 (same as MIN_REQUIRED), and
defining macros to wrap calls to compat-ified functions and disable
deprecation warnings around them.
This points out several places where we were accidentally using 2.34
APIs without noticing, which need to be fixed now.
Without this patch, the following fails with a rather obscure message
about missing make target.
./autogen.sh && make && make distcheck
...
*** No rule to make target `NetworkManager.8', needed by `distdir'. Stop.
Swap the order of the subdirectories 'docs' and 'man' to build
'docs' earlier. This way, `make distcheck` fails in the directory 'docs'
with a better error message:
*** gtk-doc must be installed and enabled in order to make dist
Also, add 'man/nmcli-examples.5' to the list of files, to determine
whether to use the pre generated doc files.
Signed-off-by: Thomas Haller <thaller@redhat.com>
Update the tests flag to the latest syntax, and make sure we
don't run valgrind on distcheck for now, since new valgrind
errors may show up when things like glib change.
And change src/main.c to use the local allocation macros. This
results in much cleaner code, as one can see from the diff.
Because libgsystem is designed for nonrecursive make, it fits best in
the current recursive setup if we build . first. This will be a lot
nicer when we switch NM to a nonrecursive setup.
dist tarballs shouldn't ever be released without the documentation,
and this allows us to build the tarballs with pre-generated docs
that get installed on the end system, but don't need to be built
there. So the end system doesn't need gtk-doc installed, only
the dist system does.
https://bugzilla.gnome.org/show_bug.cgi?id=700093
It doesn't make much sense to install initscripts in current distributions. Most
of them either don't use initscripts at all, locally patch the initscripts or
supply their own. This allows us to eventually drop the --with-distro configure
option.
Many current distributions support multiple init systems and it doesn't make
sense for upstream to make the choice for them. Distributors can still make
their scripts copy one of the initscripts from the source tree if they wish so.
This patch adds the autotools facilities to generate vapi files so that
libnm-util and libnm-glib can be consumed from Vala.
It depends on vapigen and it is a soft dependency.
Rather than generating enum classes by hand (and complaining in each
file that "this should really be standard"), use glib-mkenums.
Unfortunately, we need a very new version of glib-mkenums in order to
deal with NM's naming conventions and to fix a few other bugs, so just
import that into the source tree temporarily.
Also, to simplify the use of glib-mkenums, import Makefile.glib from
https://bugzilla.gnome.org/654395.
To avoid having to run glib-mkenums for every subdirectory of src/,
add a new "generated" directory, and put the generated enums files
there.
Finally, use Makefile.glib for marshallers too, and generate separate
ones for libnm-glib and NetworkManager.
Add the necessary annotations (the mininum required, that is those
on return values. NULL parameters or container types may require
more), and the Autotools stuff to get a NetworkManager GIR for
libnm-util and a NMClient for libnm-glib.
Since settings storage is now handled by NetworkManager, we must
have the ability to read/write all connection types at all times.
Since the 'keyfile' plugin is the only plugin that can handle all
connection types, build it into NetworkManager.
0.7 requires dbus 1.1 or greater (for system bus activation), so make that
explicit, and remove compat code for D-Bus 0.6 and earlier. Consolidate
the various glib pkgconfig checks into one, since most anything will require
gthread, glib, and gobject anyway. Fixup the docs makefile to be more
automake-compatible and let 'make clean' actually work correctly when
docs are built.
Clean up handling of "special" keys in keyfiles, ie ones that
need more processing than the basic GKeyFile API supports. Add
MAC address reading (writing support to come).
Additionally, add some test bits for the keyfile plugin that get
run on 'make check'.
* configure.in
Makefile.am
gfilemonitor/*
- Add a private copy of the GIO GFileMonitor code, with a custom GFile
implementation, so that the same change monitoring code can be used
on systems without glib-2.14 (like Fedora 8)
* system-settings/plugins/keyfile/Makefile.am
system-settings/plugins/keyfile/plugin.c
system-settings/plugins/ifcfg-suse/Makefile.am
system-settings/plugins/ifcfg-suse/plugin.c
- Use private gfilemonitor code if GIO is not present
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3654 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Use PolicyKit to authorize the system settings' AddConnection method
and the system settings connections' Update and Delete methods.
* libnm-glib/nm-settings.c (impl_exported_connection_update)
(impl_exported_connection_delete, nm_exported_connection_update)
(nm_exported_connection_delete): Return boolean and fill GError
to notify the callers of the reasons why it might have failed.
* libnm-glib/nm-dbus-settings-system.c
(nm_dbus_settings_system_add_connection): Return the error from dbus
call so that the callers can see why it failed.
* libnm-glib/nm-dbus-connection.c (update, delete): Update the
signatures.
* system-settings/src/nm-polkit-helpers.[ch]: Implement.
* system-settings/src/nm-sysconfig-connection.[ch]: Implement. New
abstract base class that checks PolicyKit permissions.
* system-settings/src/dbus-settings.c:
(impl_settings_add_connection): Check the policy before carring out
the request.
* system-settings/plugins/keyfile/nm-keyfile-connection.c:
Inherit from NMSysconfigConnection, check the policies before
allowing updating or removing.
* system-settings/plugins/ifcfg-suse/nm-suse-connection.c:
Inherit from NMSysconfigConnection.
* introspection/nm-exported-connection.xml: Annotate "Update" and
"Delete" methods with async flag so that the implementations can get
access to DBusGMethodInvocation.
* system-settings/src/dbus-settings.c
(settings_add_connection_check_privileges): Implement.
(impl_settings_add_connection): Check the privileges before adding a new
connection. Improve error reporting.
* introspection/nm-settings-system.xml: Make the 'AddConnection' method
async so that the implementation can access DBusGMethodInvocation.
* configure.in: Check for PolicyKit.
* policy/org.freedesktop.network-manager-settings.system.policy:
New file.
* policy/Makefile.am: Install the policy file.
* configure.in: Add 'policy' subdir.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3646 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Will Stephenson <wstephenson@kde.org>
* Makefile.am
configure.in
- Set up spec autogeneration infrastructure
* docs/NetworkManager DBUS API.txt
- Note how old this doc is and where to look for the canonical
D-Bus specification
* introspection/*
- Add annotations and comments
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3345 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* system-settings/*
- Add Soren's system settings service. Needs work for distros other
than Fedora; the backends from NM should mostly migrate to here
and be converted to GObjects
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3104 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/vpn-manager/nm-vpn-connection.[ch]:
* src/vpn-manager/nm-vpn-manager.[ch]:
* src/vpn-manager/nm-vpn-service.[ch]: Rewrite the vpn handling
* code. Using
dbus-glib, GObjects, signals etc.
* libnm-glib/nm-vpn-manager.[ch]:
* libnm-glib/nm-vpn-connection.[ch]: Now that the NM
* implementation changed
so much, rewrite these too.
* libnm-glib/Makefile.am: Add new files to build, build new
* binding files for
the new introspection files.
* libnm-glib/nm-client.[ch]: Remove all VPN related stuff from
* here.
* libnm-glib/nm-dbus-utils.[ch]: Renamed from nm-utils.[ch] that
* was shadowing
the header with the same name from libnm-utils.
* libnm-glib/nm-vpn-plugin.[ch]: Implement.
* libnm-util/Makefile.am: Add nm-utils.[ch] to build.
* introspection/nm-vpn-plugin.xml: Implement.
* introspection/nm-vpn-connection.xml: Implement.
* introspection/nm-vpn-manager.xml: Implement.
* src/NetworkManagerSystem.c
* (nm_system_vpn_device_set_from_ip4_config): Remove
the named manager argument, it can just as easily get it as the
caller.
(nm_system_vpn_device_unset_from_ip4_config): Ditto.
* src/vpn-manager/nm-dbus-vpn.[ch]: Remove.
* src/nm-dbus-manager.h: Fix up the name_owner signal signature.
* src/dhcp-manager/nm-dhcp-manager.c (garray_to_string): Remove,
* use one from
libnm-utils.
* libnm-util/nm-connection.c: Ditto.
* src/NetworkManagerMain.h: Remove, it's finally empty.
* configure.in: Remove utils/ from build.
* include/NetworkManagerVPN.h: Add some more defines to reduce
* the amount
of hard-coded strings.
* utils/: Move it over to libnm-util.
* test/Makefile.am: Link against libnm-util now that util/ is
* gone.
* dispatcher-daemon/Makefile.am: Ditto.
* src/Makefile.am: Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2798 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/libnm-glib.pc.in: Rename to libnm_glib.pc.in.
* libnm-glib/Makefile.am: Add legacy libnm_glib.[ch] to the
* build.
Rename the library from libnm-glib to libnm_glib to maintain the
library API
compatibility with 0.6 branch.
* Makefile.am: Remove gnome/ SUBDIR.
* gnome/libnm_glib/libnm_glib.[ch]: Move to libnm-glib/.
* src/Makefile.am: Remove the WPA_SUPPLICANT_BIN define.
* dispatcher-daemon/Makefile.am: Link the binary with
* libnm_glib.
* configure.in: Remove GNOME checks, NetworkManager does not
* need any of these
anymore.
Remove checks for wpa_supplicant binary, it's used over dbus.
Remove gnome/ directory files form AC_OUTPUT, that directory is
getting moved.
* test/Makefile.am: Remove define WPA_SUPPLICANT_BIN.
Link the binaries with libnm_glib.la.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2669 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Makefile.am
configure.in
callouts/Makefile.am
callouts/nm-dhcp-client-action.c
callouts/nm-dhcp-client.conf
- Add dhclient-executed callout that takes the place of dhclient-script
and dhcdbd, pushing DHCP options out to the system bus as a signal that
NM then listens for
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2664 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Robert Buchholz <rbu@gentoo.org>:
* configure.in:
* Makefile.am:
* introspection/Makefile.am:
Make make distcheck work again.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2628 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Totally break NetworkManager. Please use 0.6 branch until futher notice.
* src/:
- Remove old low-level dbus interface implementations and replace them
with dbus-glib one.
* configure.in:
- Require dbus-glib >= 0.72.
- Plug in new sources to build.
* libnm-glib/:
- Implement GObject wrappers on top of DBUS glib auto-generated bindings
to make it more convenient to use from GObject based programs.
* introspection/:
- Implement DBUS XML introspection files, used by both NM and libnm-glib.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2309 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch Valentine Sinitsyn <e_val@inbox.ru> to fix GNOME bug #342398:
* configure.in, gnome/Makefile.am, Makefile.am: Add "--without-gnome"
configure flag to disable building of the GNOME-based applet.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1765 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/Makefile.am: If we aren't going to create the run directory at,
uh, run-time, create it during install. Then users just doing
'make install' are cool, too. While we are here, create the
dispatcher.d directory, too.
* src/nm-device-802-11-wireless.c: Let the Makefile define and pass in
the exact run directory.
* Makefile.am: Install nm-applet.desktop.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1430 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Makefile.am, nm-applet.desktop: Add autostart .desktop file, now that
gnome-session does autostart. TODO: We need to install this to
$prefix/share/autostart/.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1379 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Makefile.am, configure.in: Add new man subdirectory.
* man, man/NetworkManager.1.in, man/NetworkManagerDispatcher.1.in,
man/Makefile.am: Add man pages for NetworkManager and its
crime-solving bumbling buddy, NetworkManagerDispatcher.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1367 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/*
configure.in
Makefile.am
- Add a utility library for clients of NetworkManager. It's
only targetted at applets for the moment, and contains
a generalized 802.11 cipher framework for different
types of keys (WEP & WPA Hex, ASCII, Passphrase)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1152 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Move NetworkManager.h -> include/NetworkManager.h
* Split out VPN stuff to include/NetworkManagerVPN.h
* Fix up makefiles to include new location
* Fix up sources to include NetworkManagerVPN.h
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1130 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Makefile.am: Add missing intltool-foo.in generated files to
EXTRA_DIST so that 'distcheck' works. Also add DISTCLEANFILES
with the start of stuff to cleanup on 'distclea'.
* configure.in: add AC_PROG_INTLTOOL macro so that we do the intltool
stuff right and 'distcheck' works.
* po/POTFILES.in: Remove examples/python/systray/eggtrayicon.c. If
we keep it, we need to add all of examples/* to EXTRA_DIST and do
Makefile.am for each. And systray/Makefile needs to be redone.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@725 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* gnome/vpn-properties/nm-vpn-ui-interface.h: New file
* gnome/vpn-properties/nm-vpn-properties.glade: New file
* gnome/vpn-properties/nm-vpn-properties.c: New file
* gnome/vpn-properties/Makefile.am: New file
* src/vpn-manager/nm-vpn-manager.h: Rework prototypes to take an
array of passwords
* src/vpn-manager/nm-vpn-manager.c
(nm_vpn_manager_activate_vpn_connection): Take an array of passwords
instead of just a single one
* src/vpn-manager/nm-dbus-vpn.c:
(nm_dbus_vpn_get_vpn_connection_properties): Also append service_name
here
(nm_dbus_vpn_activate_connection): Rework to take an array of passwords
* gnome/applet/vpn-password-dialog.h (nmwa_vpn_request_password):
Change the interface here to give a list of passwords. Also, don't
require username, but do require service
* gnome/applet/vpn-password-dialog.c: Look up the VPN .name files for
the binary for the auth-dialog and use that instead of putting up a
dialog asking for a single password
* gnome/applet/vpn-connection.[ch]: Don't remember the user_name,
however do remember the service
* gnome/applet/main.c (main): Setup i18n
* gnome/applet/applet.c (nmwa_update_state): Add a line "VPN
connection to '%s'" to the tooltip if we are connected using VPN
(nmwa_menu_vpn_item_activate): Check last_attempt_success gconf
key to determine whether we the auth-dialog needs to
reprompt. Also cope with the fact that the auth-dialog now returns
an array of passwords.
(nmwa_menu_configure_vpn_item_activate): New handler for
"Configure VPN..." menu item
(nmwa_menu_add_vpn_menu): Add the "Configure VPN..." menu item
(is_vpn_available): New function to determine if we got any
NM-compatible VPN software installed
(nmwa_menu_add_devices): Use is_vpn_available to add VPN menu
items only if we have NM-compatible VPN software installed
(nmwa_gconf_vpn_connections_notify_callback): Slightly rework the
logic for detecting when VPN connections are removed
* gnome/applet/applet-dbus.h: Removed the prototypes for
nmwa_dbus_vpn_activate_connection, nmwa_dbus_vpn_deactivate_connection
since these are defined elsewhere
* gnome/applet/applet-dbus.c (set_vpn_last_attempt_status): New
function used to keep track of whether the last attempt succeded
(nmwa_dbus_filter): Update last_attempt according to whether the
VPN connection could be established or not
* gnome/applet/applet-dbus-vpn.h (nmwa_dbus_vpn_deactivate_connection):
Change prototype to take an array of passwords, not just a single
password
* gnome/applet/applet-dbus-vpn.c (nmwa_dbus_vpn_properties_cb): Only
update service, not user
(nmwa_dbus_vpn_remove_one_vpn_connection): Check that applet->
dbus_active_vpn_name is not NULL before using it
(nmwa_dbus_vpn_activate_connection): Send the passwords as a
string array instead of assuming a single password
* gnome/applet/applet-dbus-info.c:
(nmi_dbus_get_vpn_connection_properties): Use the logged in user for
user name; don't read from gconf
* gnome/applet/Makefile.am: Also export SYSCONFDIR and
VPN_NAME_FILES_DIR
* gnome/Makefile.am (SUBDIRS): Add vpn-properties
* configure.in: Add checks for gmodule-2.0.
Generate gnome/vpn-properties/Makefile. Don't generate any Makefile's
in vpn-daemons nor vpn-daemons/vpnc. We have separate autotooled
projects under vpn-daemons now. See vpn-daemons/vpnc/Changelog
for details
* vpn-daemons/Makefile.am: Removed
* vpn-daemons/README: New file to describe extensions points for VPN
software
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@664 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Kill dhcpcd. We now use "dhcdbd", a dbus daemon that controls dhclient.
This means that NetworkManager shouldn't have DHCP issues anymore. It also
means you need dhcdbd, which you can get here (get the latest one):
http://people.redhat.com/jvdias/dhcdbd/
Technically NetworkManager can use any DHCP daemon that uses the same DBUS
interface as dhcdbd.
* Rewrite device activation to facilitate the new DHCP infrastructure and
future improvements. Its now "activation request" based, ie there is a single
activation request composed of the device, access point, and other info which
follows the entire activation process. There are 5 stages of the activation
process which correspond to:
1) Device preparation
2) Device configuration (bring it up, set ESSID/Key/etc)
3) IP Config Start (fire off DHCP if we're using it)
4) IP Config Get (grab config from DHCP or static config files)
5) IP Config Commit (set device's IP address, DNS, etc)
Note that there is no longer a "scanning" step, since the access point must
be known _before_ activation starts. If the access point drops out or does
not exist for some reason, the entire activation process fails and must be
restarted for a different access point or device.
Patch from Bill Moss:
* gnome/applet/applet.c
- Fix type of vpn_failure dialog -> vpn_banner dialog
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@597 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Merge the applet and the info-daemon, and move the converged
applet under gnome/applet
* Move libnm_glib to gnome/libnm_glib
* Convert most dbus calls between the applet, info-daemon, and NM
into async calls
* Fix a few things valgrind noticed
* Make NM broadcast state more reliably
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@586 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Initial VPN Support
- supports 'vpnc'
- reworks device IP configuration, backend files have changed and will need
to be updated for all distributions. I will try to do what I can for
them, but I cannot test them.
- Move named directory to src/named-manager
- Make backends directory self-contained
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@571 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm_glib/
- Client library for applications using glib
* configure.in
various Makefiles
- Split NM_CFLAGS and NM_LIBS into separate variables
like DBUS_*, HAL_* and GLIB_*
* src/NetworkManager.c
src/NetworkManagerMain.h
- (nm_schedule_status_signal_broadcast): at the earliest convenience,
broadcast a status changed signal over DBUS from the main thread.
Still unused anywhere for the moment.
Patch from j@bootlab.org
* panel_applet/NMWirelessAppletDbus.c
src/NetworkManagerDbus.c
- Correct INT32->UINT32 mistmatch between NM and the panel applet
for the "getMode" method call
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@368 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c (nm_data_new): Initialize named.
Also, set up a signal handler for SIGINT/SIGTERM, and exit
the mainloop when these signals are received.
(nm_data_free): Unref named.
(sigterm_handler, sigterm_pipe_handler): New functions for
exiting mainloop.
* src/NetworkManagerMain.h (NMData): Add signal handling and
nameserver bits.
* src/NetworkManager.c (nm_device_unref): Quit device mainloop on
unref.
* src/NetworkManagerDHCP.c (set_nameservers): New function;
set nameservers from DHCP response data.
(set_domain_search): Set domain search from DHCP response.
(nm_device_dhcp_configure): Invoke them.
* src/NetworkManagerSystem.c
(nm_system_device_update_resolv_conf): Delete. Deleting
code is totally sweet.
* src/Makefile.am (NetworkManager_LDADD): Add libnamed.
* named/nm-named-manager.h, named/nm-named-manager.c: New files;
implements an object which controls a nameserver. Currently
uses bind 9.
* configure.in: Check for named.
* Makefile.am (SUBDIRS): Add named dir.
* named/named.conf: New template config file.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@352 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Major rework of link detection code. We now use DHCP
as part of the link detection which proves to be much more robust,
and also supports Open System authentication for wireless networks.
We no longer use external DHCP client programs. Instead, we use
our own DHCP client, based on substantially reworked bits of 'dhcpcd'
which was written by:
Yoichi Hariguchi <yoichi@fore.com>
Sergei Viznyuk <sv@phystech.com>
http://www.phystech.com/download/
It resides in the "dhcpcd" directory and was refactored into a general
purpose DHCP client library by me.
Also misc fixes (CPPFLAGS->AM_CPPFLAGS, move some stuff around),
move src/backends/NetworkManagerSystem.h -> src/NetworkManagerSystem.h
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@314 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* NetworkManager.h
- New file, now contains commonly used structures and bits
for the dbus API of NetworkManager
* Makefile.am
- Deliver NetworkManager.h to ${includedir}/NetworkManager
* src/NetworkManager.h
- Rename -> src/NetworkManagerMain.c
* Various fixups all around to use NetworkManager.h and new
src/NetworkManagerMain.h, remove redundant bits that got
moved into NetworkManager.h
* src/NetworkManagerDevice.[ch]
src/NetworkManagerUtils.[ch]
src/NetworkManagerPolicy.c
src/NetworkManagerDbus.c
- Whitelist wireless drivers, and blacklist some wired
drivers. Also blacklist cipsec and ethernet-over-usb
devices at this time (RH #135722, RH #135648)
- Don't leak unsupported devices out over dbus, or allow
them to be set as the active device. Skip over them
during automatic device picking
* test/nmclienttest.c
- Clean up the dbus code a lot
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@261 4912f4e0-d625-0410-9fb7-b9a5a253dbdc