From 7e5f91a2e50af075be865533eb6ebdfe6bc5b4ad Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Mon, 31 Jan 2011 17:38:10 +0000 Subject: Imported Upstream version 1.4.1 --- cmake/tools/CMakeLists.txt | 57 ++++++++++ cmake/tools/dbus-launch.xml | 240 +++++++++++++++++++++++++++++++++++++++++++ cmake/tools/dbus-monitor.xml | 121 ++++++++++++++++++++++ cmake/tools/dbus-send.xml | 143 ++++++++++++++++++++++++++ 4 files changed, 561 insertions(+) create mode 100644 cmake/tools/CMakeLists.txt create mode 100644 cmake/tools/dbus-launch.xml create mode 100644 cmake/tools/dbus-monitor.xml create mode 100644 cmake/tools/dbus-send.xml (limited to 'cmake/tools') diff --git a/cmake/tools/CMakeLists.txt b/cmake/tools/CMakeLists.txt new file mode 100644 index 00000000..e91a5094 --- /dev/null +++ b/cmake/tools/CMakeLists.txt @@ -0,0 +1,57 @@ +project(tools) + +set (dbus_send_SOURCES + ../../tools/dbus-print-message.c + ../../tools/dbus-print-message.h + ../../tools/dbus-send.c +) + +set (dbus_monitor_SOURCES + ../../tools/dbus-monitor.c + ../../tools/dbus-print-message.c + ../../tools/dbus-print-message.h +) + +if (WIN32) +set (dbus_launch_SOURCES + ../../tools/dbus-launch-win.c +) +else (WIN32) +set (dbus_launch_SOURCES + ../../tools/dbus-launch.c +) +endif (WIN32) + +if (DBUS_BUILD_X11) +set (dbus_launch_SOURCES + ${dbus_launch_SOURCES} + ../../tools/dbus-launch-x11.c +) +endif(DBUS_BUILD_X11) + +set (dbus_cleanup_sockets_SOURCES + ../../tools/dbus-cleanup-sockets.c +) + +set (dbus_viewer_SOURCES + ../../tools/dbus-names-model.c + ../../tools/dbus-names-model.h + ../../tools/dbus-tree-view.c + ../../tools/dbus-tree-view.h + ../../tools/dbus-viewer.c +) + +add_executable(dbus-send ${dbus_send_SOURCES}) +target_link_libraries(dbus-send ${DBUS_LIBRARIES}) +install_targets(/bin dbus-send ) + +add_executable(dbus-launch ${dbus_launch_SOURCES}) +target_link_libraries(dbus-launch ) +if (DBUS_BUILD_X11) + target_link_libraries(dbus-launch ${X11_LIBRARIES} ) +endif (DBUS_BUILD_X11) +install_targets(/bin dbus-launch ) + +add_executable(dbus-monitor ${dbus_monitor_SOURCES}) +target_link_libraries(dbus-monitor ${DBUS_LIBRARIES}) +install_targets(/bin dbus-monitor ) diff --git a/cmake/tools/dbus-launch.xml b/cmake/tools/dbus-launch.xml new file mode 100644 index 00000000..dc34898f --- /dev/null +++ b/cmake/tools/dbus-launch.xml @@ -0,0 +1,240 @@ + + + + + + + + + +dbus-launch +1 + + +dbus-launch +Utility to start a message bus from a shell script + + + + + dbus-launch --version + --sh-syntax + --csh-syntax + --auto-syntax + --exit-with-session + --autolaunch=MACHINEID + --config-file=FILENAME + PROGRAM + ARGS + + + + + +DESCRIPTION +The dbus-launch command is used to start a session bus +instance of dbus-daemon from a shell script. +It would normally be called from a user's login +scripts. Unlike the daemon itself, dbus-launch exits, so +backticks or the $() construct can be used to read information from +dbus-launch. + +With no arguments, dbus-launch will launch a session bus +instance and print the address and pid of that instance to standard +output. + +You may specify a program to be run; in this case, dbus-launch +will launch a session bus instance, set the appropriate environment +variables so the specified program can find the bus, and then execute the +specified program, with the specified arguments. See below for +examples. + +If you launch a program, dbus-launch will not print the +information about the new bus to standard output. + +When dbus-launch prints bus information to standard output, by +default it is in a simple key-value pairs format. However, you may +request several alternate syntaxes using the --sh-syntax, --csh-syntax, +--binary-syntax, or +--auto-syntax options. Several of these cause dbus-launch to emit shell code +to set up the environment. + +With the --auto-syntax option, dbus-launch looks at the value +of the SHELL environment variable to determine which shell syntax +should be used. If SHELL ends in "csh", then csh-compatible code is +emitted; otherwise Bourne shell code is emitted. Instead of passing +--auto-syntax, you may explicity specify a particular one by using +--sh-syntax for Bourne syntax, or --csh-syntax for csh syntax. +In scripts, it's more robust to avoid --auto-syntax and you hopefully +know which shell your script is written in. + + +See http://www.freedesktop.org/software/dbus/ for more information +about D-Bus. See also the man page for dbus-daemon. + + +Here is an example of how to use dbus-launch with an +sh-compatible shell to start the per-session bus daemon: + + + ## test for an existing bus daemon, just to be safe + if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then + ## if not found, launch a new one + eval `dbus-launch --sh-syntax --exit-with-session` + echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS" + fi + + +You might run something like that in your login scripts. + + +Another way to use dbus-launch is to run your main session +program, like so: + + +dbus-launch gnome-session + + +The above would likely be appropriate for ~/.xsession or ~/.Xclients. + + + +AUTOMATIC LAUNCHING +If DBUS_SESSION_BUS_ADDRESS is not set for a process that tries to use +D-Bus, by default the process will attempt to invoke dbus-launch with +the --autolaunch option to start up a new session bus or find the +existing bus address on the X display or in a file in +~/.dbus/session-bus/ + + +Whenever an autolaunch occurs, the application that had to +start a new bus will be in its own little world; it can effectively +end up starting a whole new session if it tries to use a lot of +bus services. This can be suboptimal or even totally broken, depending +on the app and what it tries to do. + + +There are two common reasons for autolaunch. One is ssh to a remote +machine. The ideal fix for that would be forwarding of +DBUS_SESSION_BUS_ADDRESS in the same way that DISPLAY is forwarded. +In the meantime, you can edit the session.conf config file to +have your session bus listen on TCP, and manually set +DBUS_SESSION_BUS_ADDRESS, if you like. + + +The second common reason for autolaunch is an su to another user, and +display of X applications running as the second user on the display +belonging to the first user. Perhaps the ideal fix in this case +would be to allow the second user to connect to the session bus of the +first user, just as they can connect to the first user's display. +However, a mechanism for that has not been coded. + + +You can always avoid autolaunch by manually setting +DBUS_SESSION_BUS_ADDRESS. Autolaunch happens because the default +address if none is set is "autolaunch:", so if any other address is +set there will be no autolaunch. You can however include autolaunch in +an explicit session bus address as a fallback, for example +DBUS_SESSION_BUS_ADDRESS="something:,autolaunch:" - in that case if +the first address doesn't work, processes will autolaunch. (The bus +address variable contains a comma-separated list of addresses to try.) + + +The --autolaunch option is considered an internal implementation +detail of libdbus, and in fact there are plans to change it. There's +no real reason to use it outside of the libdbus implementation anyhow. + + + +OPTIONS +The following options are supported: + + + + +Choose --csh-syntax or --sh-syntax based on the SHELL environment variable. + + +Write to stdout a nul-terminated bus address, then the bus PID as a +binary integer of size sizeof(pid_t), then the bus X window ID as a +binary integer of size sizeof(long). Integers are in the machine's +byte order, not network byte order or any other canonical byte order. + + + + + + +Close the standard error output stream before starting the D-Bus +daemon. This is useful if you want to capture dbus-launch error +messages but you don't want dbus-daemon to keep the stream open to +your application. + + + + + + +Pass --config-file=FILENAME to the bus daemon, instead of passing it +the --session argument. See the man page for dbus-daemon + + + + + + +Emit csh compatible code to set up environment variables. + + + + + + +If this option is provided, a persistent "babysitter" process will be +created that watches stdin for HUP and tries to connect to the X +server. If this process gets a HUP on stdin or loses its X connection, +it kills the message bus daemon. + + + + + + +This option implies that dbus-launch should scan for a +previously-started session and reuse the values found there. If no +session is found, it will start a new session. The +--exit-with-session option is implied if --autolaunch is given. +This option is for the exclusive use of libdbus, you do not want to +use it manually. It may change in the future. + + + + + + +Emit Bourne-shell compatible code to set up environment variables. + + + + + + +Print the version of dbus-launch + + + + + + +AUTHOR +See http://www.freedesktop.org/software/dbus/doc/AUTHORS + + + +BUGS +Please send bug reports to the D-Bus mailing list or bug tracker, +see http://www.freedesktop.org/software/dbus/ + + + diff --git a/cmake/tools/dbus-monitor.xml b/cmake/tools/dbus-monitor.xml new file mode 100644 index 00000000..b41cace2 --- /dev/null +++ b/cmake/tools/dbus-monitor.xml @@ -0,0 +1,121 @@ + + + + + + + + + +dbus-monitor +1 + + +dbus-monitor +debug probe to print message bus messages + + + + + dbus-monitor + --system --session --address ADDRESS + --profile --monitor + watchexpressions + + + + + +DESCRIPTION +The dbus-monitor command is used to monitor messages going +through a D-Bus message bus. See +http://www.freedesktop.org/software/dbus/ for more information about +the big picture. + + +There are two well-known message buses: the systemwide message bus +(installed on many systems as the "messagebus" service) and the +per-user-login-session message bus (started each time a user logs in). +The --system and --session options direct dbus-monitor to +monitor the system or session buses respectively. If neither is +specified, dbus-monitor monitors the session bus. + + +dbus-monitor has two different output modes, the 'classic'-style +monitoring mode and profiling mode. The profiling format is a compact +format with a single line per message and microsecond-resolution timing +information. The --profile and --monitor options select the profiling +and monitoring output format respectively. If neither is specified, +dbus-monitor uses the monitoring output format. + + +In order to get dbus-monitor to see the messages you are interested +in, you should specify a set of watch expressions as you would expect to +be passed to the dbus_bus_add_match function. + + +The message bus configuration may keep dbus-monitor from seeing +all messages, especially if you run the monitor as a non-root user. + + + +OPTIONS + + + + +Monitor the system message bus. + + + + + +Monitor the session message bus. (This is the default.) + + + + + +Monitor an arbitrary message bus given at ADDRESS. + + + + + +Use the profiling output format. + + + + + +Use the monitoring output format. (This is the default.) + + + + + + +EXAMPLE +Here is an example of using dbus-monitor to watch for the gnome typing +monitor to say things + + + dbus-monitor "type='signal',sender='org.gnome.TypingMonitor',interface='org.gnome.TypingMonitor'" + + + + + +AUTHOR +dbus-monitor was written by Philip Blundell. +The profiling output mode was added by Olli Salli. + + + +BUGS +Please send bug reports to the D-Bus mailing list or bug tracker, +see http://www.freedesktop.org/software/dbus/ + + + diff --git a/cmake/tools/dbus-send.xml b/cmake/tools/dbus-send.xml new file mode 100644 index 00000000..7fefc03e --- /dev/null +++ b/cmake/tools/dbus-send.xml @@ -0,0 +1,143 @@ + + + + + + + + + +dbus-send +1 + + +dbus-send +Send a message to a message bus + + + + + dbus-send + --system --session + --dest=NAME + --print-reply + --type=TYPE + <destination + object + path> + <message + name> + contents + + + + + +DESCRIPTION +The dbus-send command is used to send a message to a D-Bus message +bus. See http://www.freedesktop.org/software/dbus/ for more +information about the big picture. + + +There are two well-known message buses: the systemwide message bus +(installed on many systems as the "messagebus" service) and the +per-user-login-session message bus (started each time a user logs in). +The --system and --session options direct dbus-send to send +messages to the system or session buses respectively. If neither is +specified, dbus-send sends to the session bus. + + +Nearly all uses of dbus-send must provide the --dest argument +which is the name of a connection on the bus to send the message to. If +--dest is omitted, no destination is set. + + +The object path and the name of the message to send must always be +specified. Following arguments, if any, are the message contents +(message arguments). These are given as type-specified values and +may include containers (arrays, dicts, and variants) as described below. + + +<contents> ::= <item> | <container> [ <item> | <container>...] +<item> ::= <type>:<value> +<container> ::= <array> | <dict> | <variant> +<array> ::= array:<type>:<value>[,<value>...] +<dict> ::= dict:<type>:<type>:<key>,<value>[,<key>,<value>...] +<variant> ::= variant:<type>:<value> +<type> ::= string | int16 | uint 16 | int32 | uint32 | int64 | uint64 | double | byte | boolean | objpath + + +D-Bus supports more types than these, but dbus-send currently +does not. Also, dbus-send does not permit empty containers +or nested containers (e.g. arrays of variants). + + +Here is an example invocation: + + + dbus-send --dest=org.freedesktop.ExampleName \ + /org/freedesktop/sample/object/name \ + org.freedesktop.ExampleInterface.ExampleMethod \ + int32:47 string:'hello world' double:65.32 \ + array:string:"1st item","next item","last item" \ + dict:string:int32:"one",1,"two",2,"three",3 \ + variant:int32:-8 \ + objpath:/org/freedesktop/sample/object/name + + + +Note that the interface is separated from a method or signal +name by a dot, though in the actual protocol the interface +and the interface member are separate fields. + + + +OPTIONS +The following options are supported: + + + + +Specify the name of the connection to receive the message. + + + + + +Block for a reply to the message sent, and print any reply received. + + + + + +Send to the system message bus. + + + + + +Send to the session message bus. (This is the default.) + + + + + +Specify "method_call" or "signal" (defaults to "signal"). + + + + + + +AUTHOR +dbus-send was written by Philip Blundell. + + + +BUGS +Please send bug reports to the D-Bus mailing list or bug tracker, +see http://www.freedesktop.org/software/dbus/ + + + -- cgit v1.2.3