Project description
[connman] / HACKING
diff --git a/HACKING b/HACKING
index 9e0adec..61b9eb3 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -2,6 +2,22 @@ Hacking on Connection Manager
 *****************************
 
 
+Build tools requirements
+========================
+
+When building and testing directly from the repository it is important to
+have at least automake version 1.10 or later installed. All modern
+distributions should default to the latest version, but it seems that
+Debian's default is still an earlier version:
+
+  Check version
+    # dpkg -l '*automake*'
+
+  Install new version
+    # apt-get install automake1.10
+    # update-alternatives --config automake
+
+
 Working with the source code repository
 =======================================
 
@@ -30,7 +46,7 @@ So the normal steps to checkout, build and install such a repository is
 like this:
 
   Checkout repository
-    # git-clone git://git.moblin.org/projects/connman.git
+    # git clone git://git.kernel.org/pub/scm/network/connman/connman.git
     # cd connman
 
   Configure and build
@@ -52,6 +68,52 @@ like this:
     # make maintainer-clean
 
 
+Running from within the source code repository
+==============================================
+
+When using "./configure --enable-maintainer-mode" the automake scripts will
+use the plugins directly from within the repository. This removes the need
+to use "make install" when testing "connmand". The "bootstrap-configure"
+automatically includes this option.
+
+  Run daemon in foreground with debugging
+    # sudo ./src/connmand -n -d
+
+For production installations or distribution packaging it is important that
+the "--enable-maintainer-mode" option is NOT used.
+
+Some times it is important to restrict the available interfaces. For example
+in cases where testing happens over a network connection. The "-i" command
+line switch allows to specify a glob pattern for the interface names.
+
+  Run daemon for wireless interfaces
+    # sudo ./src/connmand -n -i wlan*
+
+
+Debugging the D-Bus interface during runtime
+============================================
+
+Running the daemon with debugging information in the foreground is quite
+verbose and sometimes not really helpful. The "monitor-connman" script
+allows to monitor "PropertyChanged" D-Bus signals from various interfaces.
+
+  During start of daemon
+    {Manager} [/] Devices = dbus.Array([dbus.ObjectPath('/dev_00_90_CC ...
+    {Device} [/dev_00_90_CC_xx_xx_xx] Powered = 1
+    {Device} [/dev_00_90_CC_xx_xx_xx] Networks = dbus.Array( ...
+
+  During shutdown of daemon
+    {Device} [/dev_00_90_CC_xx_xx_xx] Networks = dbus.Array( ...
+    {Device} [/dev_00_90_CC_xx_xx_xx] Powered = 0
+    {Manager} [/] Devices = dbus.Array([], ...
+
+Every "PropertyChanged" signal will generate a line of output. Some of them
+can get very complex. The first detail inside "{ ... }" is the interface
+name (without its service name prefix). The second detail inside "[ ... ]"
+is the object path. And after that it is followed by a key and value of
+the property that changed.
+
+
 Generating source code documentation
 ====================================
 
@@ -64,7 +126,10 @@ To make the gtk-doc process work, the gtk-doc tools need to be installed.
 Every distribution should provide a package for this, but the naming of the
 package might be different:
 
-  Ubuntu/Debian
+  Debian
+    # apt-get install gtk-doc-tools
+
+  Ubuntu
     # apt-get install gtk-doc-utils
 
   Fedora
@@ -81,3 +146,4 @@ the documentation files are like this:
 
   View documentation
     # firefox doc/html/index.html
+