diff options
Diffstat (limited to 'bus')
43 files changed, 3446 insertions, 2689 deletions
diff --git a/bus/Makefile.am b/bus/Makefile.am index ad49e6dd..efa8ab5b 100644 --- a/bus/Makefile.am +++ b/bus/Makefile.am @@ -3,18 +3,24 @@ configdir=$(sysconfdir)/dbus-1 INCLUDES=-I$(top_srcdir) $(DBUS_BUS_CFLAGS) @PIE_CFLAGS@ \ -DDBUS_SYSTEM_CONFIG_FILE=\""$(configdir)/system.conf"\" \ - -DDAEMON_NAME=\"dbus-daemon\" -DDBUS_COMPILATION + -DDBUS_COMPILATION EFENCE= CONFIG_IN_FILES= \ session.conf.in \ - system.conf.in + system.conf.in \ + org.freedesktop.dbus-session.plist.in config_DATA= \ session.conf \ system.conf +if DBUS_ENABLE_LAUNCHD +agentdir=$(LAUNCHD_AGENT_DIR) +agent_DATA=org.freedesktop.dbus-session.plist +endif + if DBUS_USE_LIBXML XML_SOURCES=config-loader-libxml.c endif @@ -74,11 +80,12 @@ BUS_SOURCES= \ dbus_daemon_SOURCES= \ $(BUS_SOURCES) \ - main.c + main.c +dbus_daemon_CPPFLAGS = -DDBUS_STATIC_BUILD dbus_daemon_LDADD= \ + $(top_builddir)/dbus/libdbus-internal.la \ $(EFENCE) \ - $(top_builddir)/dbus/libdbus-convenience.la \ $(DBUS_BUS_LIBS) dbus_daemon_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ @PIE_LDFLAGS@ @@ -102,8 +109,9 @@ dbus_daemon_launch_helper_SOURCES= \ activation-helper-bin.c \ $(LAUNCH_HELPER_SOURCES) +dbus_daemon_launch_helper_CPPFLAGS = -DDBUS_STATIC_BUILD dbus_daemon_launch_helper_LDADD= \ - $(top_builddir)/dbus/libdbus-convenience.la \ + $(top_builddir)/dbus/libdbus-internal.la \ $(DBUS_LAUNCHER_LIBS) dbus_daemon_launch_helper_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ @@ -115,11 +123,11 @@ dbus_daemon_launch_helper_test_SOURCES= \ $(LAUNCH_HELPER_SOURCES) dbus_daemon_launch_helper_test_LDADD= \ - $(top_builddir)/dbus/libdbus-convenience.la \ + $(top_builddir)/dbus/libdbus-internal.la \ $(DBUS_LAUNCHER_LIBS) dbus_daemon_launch_helper_test_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ -dbus_daemon_launch_helper_test_CPPFLAGS= \ +dbus_daemon_launch_helper_test_CPPFLAGS= -DDBUS_STATIC_BUILD \ -DACTIVATION_LAUNCHER_TEST ## we build yet another binary so we can do the OOM tests @@ -129,27 +137,39 @@ bus_test_launch_helper_SOURCES= \ $(LAUNCH_HELPER_SOURCES) bus_test_launch_helper_LDADD= \ - $(top_builddir)/dbus/libdbus-convenience.la \ + $(top_builddir)/dbus/libdbus-internal.la \ $(DBUS_LAUNCHER_LIBS) bus_test_launch_helper_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ -bus_test_launch_helper_CPPFLAGS= \ +bus_test_launch_helper_CPPFLAGS= -DDBUS_STATIC_BUILD \ -DACTIVATION_LAUNCHER_TEST \ -DACTIVATION_LAUNCHER_DO_OOM +extra_tests= +extra_noinst_programs= +extra_inst_programs= +if DBUS_UNIX +extra_tests+=bus-test-launch-helper +extra_noinst_programs+=dbus-daemon-launch-helper dbus-daemon-launch-helper-test dbus-daemon +endif +if DBUS_WIN +extra_inst_programs+=dbus-daemon +endif + ## note that TESTS has special meaning (stuff to use in make check) -## so if adding tests not to be run in make check, don't add them to +## so if adding tests not to be run in make check, don't add them to ## TESTS if DBUS_BUILD_TESTS TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus DBUS_FATAL_WARNINGS=1 DBUS_BLOCK_ON_ABORT=1 -TESTS=bus-test bus-test-system bus-test-launch-helper +TESTS=bus-test bus-test-system $(extra_tests) else TESTS= endif -## we use noinst_PROGRAMS not check_PROGRAMS so that we build +## we use noinst_PROGRAMS not check_PROGRAMS so that we build ## even when not doing "make check" -noinst_PROGRAMS=$(TESTS) dbus-daemon dbus-daemon-launch-helper-test dbus-daemon-launch-helper +noinst_PROGRAMS=$(TESTS) $(extra_noinst_programs) +bin_PROGRAMS=$(extra_inst_programs) bus_test_system_SOURCES= \ $(XML_SOURCES) \ @@ -161,14 +181,16 @@ bus_test_system_SOURCES= \ utils.h \ test-system.c -bus_test_system_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS) +bus_test_system_CPPFLAGS = -DDBUS_STATIC_BUILD +bus_test_system_LDADD=$(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS) bus_test_system_LDFLAGS=@R_DYNAMIC_LDFLAG@ bus_test_SOURCES= \ $(BUS_SOURCES) \ test-main.c -bus_test_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS) +bus_test_CPPFLAGS = -DDBUS_STATIC_BUILD +bus_test_LDADD=$(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS) bus_test_LDFLAGS=@R_DYNAMIC_LDFLAG@ ## mop up the gcov files @@ -176,32 +198,47 @@ clean-local: /bin/rm *.bb *.bbg *.da *.gcov || true uninstall-hook: - rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon - rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper + rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT) + rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT) install-data-hook: - if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \ - $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \ - chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \ - fi - $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR) $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services +if DBUS_UNIX + if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \ + $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \ + chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \ + fi + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon$(EXEEXT) $(DESTDIR)$(DBUS_DAEMONDIR) $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1 - $(INSTALL_PROGRAM) dbus-daemon-launch-helper $(DESTDIR)$(libexecdir) + if test -f dbus-daemon-launch-helper$(EXEEXT) ; then \ + $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon-launch-helper$(EXEEXT) $(DESTDIR)$(libexecdir); \ if test `id -u` -eq 0; then \ - chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \ - chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \ + chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \ + chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \ else \ echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \ echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \ + fi \ fi +endif +if HAVE_SYSTEMD +# Install dbus.socket as default implementation of a D-Bus stack + $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants + $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants/dbus.socket +# Unconditionally enable D-Bus on systemd installations + $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants + $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants/dbus.socket + $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants + $(LN_S) ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service +endif #### Init scripts fun SCRIPT_IN_FILES=messagebus.in \ + messagebus-config.in \ rc.messagebus.in ## Red Hat start @@ -226,9 +263,25 @@ initd_SCRIPTS= \ endif ## Slackware end -MAN_IN_FILES=dbus-daemon.1.in -man_MANS = dbus-daemon.1 +## Cygwin start +if DBUS_INIT_SCRIPTS_CYGWIN + +bin_SCRIPTS= \ + messagebus-config + +endif +## Cygwin end + +if HAVE_SYSTEMD +SCRIPT_IN_FILES += \ + dbus.service.in \ + dbus.socket.in + +systemdsystemunit_DATA = \ + dbus.service \ + dbus.socket +endif -#### Extra dist +#### Extra dist -EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES) +EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) diff --git a/bus/Makefile.in b/bus/Makefile.in index 13a599af..7ea6fe64 100644 --- a/bus/Makefile.in +++ b/bus/Makefile.in @@ -36,31 +36,53 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@DBUS_UNIX_TRUE@am__append_1 = bus-test-launch-helper +@DBUS_UNIX_TRUE@am__append_2 = dbus-daemon-launch-helper dbus-daemon-launch-helper-test dbus-daemon +@DBUS_WIN_TRUE@am__append_3 = dbus-daemon @DBUS_BUILD_TESTS_TRUE@TESTS = bus-test$(EXEEXT) \ @DBUS_BUILD_TESTS_TRUE@ bus-test-system$(EXEEXT) \ -@DBUS_BUILD_TESTS_TRUE@ bus-test-launch-helper$(EXEEXT) -noinst_PROGRAMS = $(am__EXEEXT_1) dbus-daemon$(EXEEXT) \ - dbus-daemon-launch-helper-test$(EXEEXT) \ - dbus-daemon-launch-helper$(EXEEXT) +@DBUS_BUILD_TESTS_TRUE@ $(am__EXEEXT_4) +noinst_PROGRAMS = $(am__EXEEXT_5) $(am__EXEEXT_7) +bin_PROGRAMS = $(am__EXEEXT_2) +@HAVE_SYSTEMD_TRUE@am__append_4 = \ +@HAVE_SYSTEMD_TRUE@ dbus.service.in \ +@HAVE_SYSTEMD_TRUE@ dbus.socket.in + subdir = bus DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/dbus-daemon.1.in $(srcdir)/messagebus.in \ + $(srcdir)/dbus.service.in $(srcdir)/dbus.socket.in \ + $(srcdir)/messagebus-config.in $(srcdir)/messagebus.in \ + $(srcdir)/org.freedesktop.dbus-session.plist.in \ $(srcdir)/rc.messagebus.in $(srcdir)/session.conf.in \ $(srcdir)/system.conf.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = system.conf session.conf messagebus rc.messagebus \ - dbus-daemon.1 +CONFIG_CLEAN_FILES = system.conf session.conf messagebus \ + messagebus-config org.freedesktop.dbus-session.plist \ + rc.messagebus dbus.service dbus.socket CONFIG_CLEAN_VPATH_FILES = -@DBUS_BUILD_TESTS_TRUE@am__EXEEXT_1 = bus-test$(EXEEXT) \ +@DBUS_WIN_TRUE@am__EXEEXT_1 = dbus-daemon$(EXEEXT) +am__EXEEXT_2 = $(am__EXEEXT_1) +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(initddir)" "$(DESTDIR)$(agentdir)" \ + "$(DESTDIR)$(configdir)" "$(DESTDIR)$(systemdsystemunitdir)" +@DBUS_UNIX_TRUE@am__EXEEXT_3 = bus-test-launch-helper$(EXEEXT) +am__EXEEXT_4 = $(am__EXEEXT_3) +@DBUS_BUILD_TESTS_TRUE@am__EXEEXT_5 = bus-test$(EXEEXT) \ @DBUS_BUILD_TESTS_TRUE@ bus-test-system$(EXEEXT) \ -@DBUS_BUILD_TESTS_TRUE@ bus-test-launch-helper$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) +@DBUS_BUILD_TESTS_TRUE@ $(am__EXEEXT_4) +@DBUS_UNIX_TRUE@am__EXEEXT_6 = dbus-daemon-launch-helper$(EXEEXT) \ +@DBUS_UNIX_TRUE@ dbus-daemon-launch-helper-test$(EXEEXT) \ +@DBUS_UNIX_TRUE@ dbus-daemon$(EXEEXT) +am__EXEEXT_7 = $(am__EXEEXT_6) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__bus_test_SOURCES_DIST = activation.c activation.h \ activation-exit-codes.h bus.c bus.h config-parser.c \ config-parser.h config-parser-common.c config-parser-common.h \ @@ -71,24 +93,27 @@ am__bus_test_SOURCES_DIST = activation.c activation.h \ selinux.c services.c services.h signals.c signals.h test.c \ test.h utils.c utils.h config-loader-expat.c \ config-loader-libxml.c test-main.c -@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = dir-watch-default.$(OBJEXT) -@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_TRUE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = dir-watch-dnotify.$(OBJEXT) -@DBUS_BUS_ENABLE_INOTIFY_TRUE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = dir-watch-inotify.$(OBJEXT) -@DBUS_BUS_ENABLE_KQUEUE_TRUE@am__objects_1 = \ -@DBUS_BUS_ENABLE_KQUEUE_TRUE@ dir-watch-kqueue.$(OBJEXT) -@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_2 = config-loader-libxml.$(OBJEXT) -@DBUS_USE_EXPAT_TRUE@am__objects_2 = config-loader-expat.$(OBJEXT) -am__objects_3 = activation.$(OBJEXT) bus.$(OBJEXT) \ - config-parser.$(OBJEXT) config-parser-common.$(OBJEXT) \ - connection.$(OBJEXT) desktop-file.$(OBJEXT) $(am__objects_1) \ - dispatch.$(OBJEXT) driver.$(OBJEXT) expirelist.$(OBJEXT) \ - policy.$(OBJEXT) selinux.$(OBJEXT) services.$(OBJEXT) \ - signals.$(OBJEXT) test.$(OBJEXT) utils.$(OBJEXT) \ +@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = bus_test-dir-watch-default.$(OBJEXT) +@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_TRUE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = bus_test-dir-watch-dnotify.$(OBJEXT) +@DBUS_BUS_ENABLE_INOTIFY_TRUE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = bus_test-dir-watch-inotify.$(OBJEXT) +@DBUS_BUS_ENABLE_KQUEUE_TRUE@am__objects_1 = bus_test-dir-watch-kqueue.$(OBJEXT) +@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_2 = bus_test-config-loader-libxml.$(OBJEXT) +@DBUS_USE_EXPAT_TRUE@am__objects_2 = \ +@DBUS_USE_EXPAT_TRUE@ bus_test-config-loader-expat.$(OBJEXT) +am__objects_3 = bus_test-activation.$(OBJEXT) bus_test-bus.$(OBJEXT) \ + bus_test-config-parser.$(OBJEXT) \ + bus_test-config-parser-common.$(OBJEXT) \ + bus_test-connection.$(OBJEXT) bus_test-desktop-file.$(OBJEXT) \ + $(am__objects_1) bus_test-dispatch.$(OBJEXT) \ + bus_test-driver.$(OBJEXT) bus_test-expirelist.$(OBJEXT) \ + bus_test-policy.$(OBJEXT) bus_test-selinux.$(OBJEXT) \ + bus_test-services.$(OBJEXT) bus_test-signals.$(OBJEXT) \ + bus_test-test.$(OBJEXT) bus_test-utils.$(OBJEXT) \ $(am__objects_2) -am_bus_test_OBJECTS = $(am__objects_3) test-main.$(OBJEXT) +am_bus_test_OBJECTS = $(am__objects_3) bus_test-test-main.$(OBJEXT) bus_test_OBJECTS = $(am_bus_test_OBJECTS) am__DEPENDENCIES_1 = -bus_test_DEPENDENCIES = $(top_builddir)/dbus/libdbus-convenience.la \ +bus_test_DEPENDENCIES = $(top_builddir)/dbus/libdbus-internal.la \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) @@ -115,8 +140,7 @@ am_bus_test_launch_helper_OBJECTS = \ $(am__objects_5) bus_test_launch_helper_OBJECTS = $(am_bus_test_launch_helper_OBJECTS) bus_test_launch_helper_DEPENDENCIES = \ - $(top_builddir)/dbus/libdbus-convenience.la \ - $(am__DEPENDENCIES_1) + $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1) bus_test_launch_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(bus_test_launch_helper_LDFLAGS) \ @@ -125,13 +149,16 @@ am__bus_test_system_SOURCES_DIST = config-loader-expat.c \ config-loader-libxml.c config-parser-common.c \ config-parser-common.h config-parser-trivial.c \ config-parser-trivial.h utils.c utils.h test-system.c -am_bus_test_system_OBJECTS = $(am__objects_2) \ - config-parser-common.$(OBJEXT) config-parser-trivial.$(OBJEXT) \ - utils.$(OBJEXT) test-system.$(OBJEXT) +@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_6 = bus_test_system-config-loader-libxml.$(OBJEXT) +@DBUS_USE_EXPAT_TRUE@am__objects_6 = bus_test_system-config-loader-expat.$(OBJEXT) +am_bus_test_system_OBJECTS = $(am__objects_6) \ + bus_test_system-config-parser-common.$(OBJEXT) \ + bus_test_system-config-parser-trivial.$(OBJEXT) \ + bus_test_system-utils.$(OBJEXT) \ + bus_test_system-test-system.$(OBJEXT) bus_test_system_OBJECTS = $(am_bus_test_system_OBJECTS) bus_test_system_DEPENDENCIES = \ - $(top_builddir)/dbus/libdbus-convenience.la \ - $(am__DEPENDENCIES_1) + $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1) bus_test_system_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(bus_test_system_LDFLAGS) $(LDFLAGS) \ @@ -146,11 +173,26 @@ am__dbus_daemon_SOURCES_DIST = activation.c activation.h \ selinux.c services.c services.h signals.c signals.h test.c \ test.h utils.c utils.h config-loader-expat.c \ config-loader-libxml.c main.c -am_dbus_daemon_OBJECTS = $(am__objects_3) main.$(OBJEXT) +@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_7 = dbus_daemon-dir-watch-default.$(OBJEXT) +@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_TRUE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_7 = dbus_daemon-dir-watch-dnotify.$(OBJEXT) +@DBUS_BUS_ENABLE_INOTIFY_TRUE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_7 = dbus_daemon-dir-watch-inotify.$(OBJEXT) +@DBUS_BUS_ENABLE_KQUEUE_TRUE@am__objects_7 = dbus_daemon-dir-watch-kqueue.$(OBJEXT) +@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_8 = dbus_daemon-config-loader-libxml.$(OBJEXT) +@DBUS_USE_EXPAT_TRUE@am__objects_8 = dbus_daemon-config-loader-expat.$(OBJEXT) +am__objects_9 = dbus_daemon-activation.$(OBJEXT) \ + dbus_daemon-bus.$(OBJEXT) dbus_daemon-config-parser.$(OBJEXT) \ + dbus_daemon-config-parser-common.$(OBJEXT) \ + dbus_daemon-connection.$(OBJEXT) \ + dbus_daemon-desktop-file.$(OBJEXT) $(am__objects_7) \ + dbus_daemon-dispatch.$(OBJEXT) dbus_daemon-driver.$(OBJEXT) \ + dbus_daemon-expirelist.$(OBJEXT) dbus_daemon-policy.$(OBJEXT) \ + dbus_daemon-selinux.$(OBJEXT) dbus_daemon-services.$(OBJEXT) \ + dbus_daemon-signals.$(OBJEXT) dbus_daemon-test.$(OBJEXT) \ + dbus_daemon-utils.$(OBJEXT) $(am__objects_8) +am_dbus_daemon_OBJECTS = $(am__objects_9) dbus_daemon-main.$(OBJEXT) dbus_daemon_OBJECTS = $(am_dbus_daemon_OBJECTS) -dbus_daemon_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(top_builddir)/dbus/libdbus-convenience.la \ - $(am__DEPENDENCIES_1) +dbus_daemon_DEPENDENCIES = $(top_builddir)/dbus/libdbus-internal.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) dbus_daemon_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dbus_daemon_LDFLAGS) $(LDFLAGS) -o $@ @@ -160,16 +202,21 @@ am__dbus_daemon_launch_helper_SOURCES_DIST = activation-helper-bin.c \ config-parser-trivial.c config-parser-trivial.h desktop-file.c \ desktop-file.h utils.c utils.h activation-exit-codes.h \ activation-helper.h activation-helper.c -am__objects_6 = $(am__objects_2) config-parser-common.$(OBJEXT) \ - config-parser-trivial.$(OBJEXT) desktop-file.$(OBJEXT) \ - utils.$(OBJEXT) activation-helper.$(OBJEXT) +@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_10 = dbus_daemon_launch_helper-config-loader-libxml.$(OBJEXT) +@DBUS_USE_EXPAT_TRUE@am__objects_10 = dbus_daemon_launch_helper-config-loader-expat.$(OBJEXT) +am__objects_11 = $(am__objects_10) \ + dbus_daemon_launch_helper-config-parser-common.$(OBJEXT) \ + dbus_daemon_launch_helper-config-parser-trivial.$(OBJEXT) \ + dbus_daemon_launch_helper-desktop-file.$(OBJEXT) \ + dbus_daemon_launch_helper-utils.$(OBJEXT) \ + dbus_daemon_launch_helper-activation-helper.$(OBJEXT) am_dbus_daemon_launch_helper_OBJECTS = \ - activation-helper-bin.$(OBJEXT) $(am__objects_6) + dbus_daemon_launch_helper-activation-helper-bin.$(OBJEXT) \ + $(am__objects_11) dbus_daemon_launch_helper_OBJECTS = \ $(am_dbus_daemon_launch_helper_OBJECTS) dbus_daemon_launch_helper_DEPENDENCIES = \ - $(top_builddir)/dbus/libdbus-convenience.la \ - $(am__DEPENDENCIES_1) + $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1) dbus_daemon_launch_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(dbus_daemon_launch_helper_LDFLAGS) \ @@ -181,21 +228,20 @@ am__dbus_daemon_launch_helper_test_SOURCES_DIST = \ config-parser-trivial.h desktop-file.c desktop-file.h utils.c \ utils.h activation-exit-codes.h activation-helper.h \ activation-helper.c -@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_7 = dbus_daemon_launch_helper_test-config-loader-libxml.$(OBJEXT) -@DBUS_USE_EXPAT_TRUE@am__objects_7 = dbus_daemon_launch_helper_test-config-loader-expat.$(OBJEXT) -am__objects_8 = $(am__objects_7) \ +@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_12 = dbus_daemon_launch_helper_test-config-loader-libxml.$(OBJEXT) +@DBUS_USE_EXPAT_TRUE@am__objects_12 = dbus_daemon_launch_helper_test-config-loader-expat.$(OBJEXT) +am__objects_13 = $(am__objects_12) \ dbus_daemon_launch_helper_test-config-parser-common.$(OBJEXT) \ dbus_daemon_launch_helper_test-config-parser-trivial.$(OBJEXT) \ dbus_daemon_launch_helper_test-desktop-file.$(OBJEXT) \ dbus_daemon_launch_helper_test-utils.$(OBJEXT) \ dbus_daemon_launch_helper_test-activation-helper.$(OBJEXT) am_dbus_daemon_launch_helper_test_OBJECTS = dbus_daemon_launch_helper_test-activation-helper-bin.$(OBJEXT) \ - $(am__objects_8) + $(am__objects_13) dbus_daemon_launch_helper_test_OBJECTS = \ $(am_dbus_daemon_launch_helper_test_OBJECTS) dbus_daemon_launch_helper_test_DEPENDENCIES = \ - $(top_builddir)/dbus/libdbus-convenience.la \ - $(am__DEPENDENCIES_1) + $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1) dbus_daemon_launch_helper_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) \ @@ -221,9 +267,7 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(initddir)" "$(DESTDIR)$(man1dir)" \ - "$(DESTDIR)$(configdir)" -SCRIPTS = $(initd_SCRIPTS) +SCRIPTS = $(bin_SCRIPTS) $(initd_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -260,10 +304,7 @@ DIST_SOURCES = $(am__bus_test_SOURCES_DIST) \ $(am__dbus_daemon_SOURCES_DIST) \ $(am__dbus_daemon_launch_helper_SOURCES_DIST) \ $(am__dbus_daemon_launch_helper_test_SOURCES_DIST) -man1dir = $(mandir)/man1 -NROFF = nroff -MANS = $(man_MANS) -DATA = $(config_DATA) +DATA = $(agent_DATA) $(config_DATA) $(systemdsystemunit_DATA) ETAGS = etags CTAGS = ctags am__tty_colors = \ @@ -273,10 +314,13 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ +AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BUILD_FILEVERSION = @BUILD_FILEVERSION@ +BUILD_TIMESTAMP = @BUILD_TIMESTAMP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -308,6 +352,8 @@ DBUS_MAJOR_VERSION = @DBUS_MAJOR_VERSION@ DBUS_MICRO_VERSION = @DBUS_MICRO_VERSION@ DBUS_MINOR_VERSION = @DBUS_MINOR_VERSION@ DBUS_PATH_OR_ABSTRACT = @DBUS_PATH_OR_ABSTRACT@ +DBUS_PREFIX = @DBUS_PREFIX@ +DBUS_SESSION_BUS_DEFAULT_ADDRESS = @DBUS_SESSION_BUS_DEFAULT_ADDRESS@ DBUS_SESSION_SOCKET_DIR = @DBUS_SESSION_SOCKET_DIR@ DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = @DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@ DBUS_SYSTEM_PID_FILE = @DBUS_SYSTEM_PID_FILE@ @@ -321,6 +367,7 @@ DBUS_X_CFLAGS = @DBUS_X_CFLAGS@ DBUS_X_LIBS = @DBUS_X_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -334,6 +381,7 @@ EXPANDED_DATADIR = @EXPANDED_DATADIR@ EXPANDED_LIBDIR = @EXPANDED_LIBDIR@ EXPANDED_LIBEXECDIR = @EXPANDED_LIBEXECDIR@ EXPANDED_LOCALSTATEDIR = @EXPANDED_LOCALSTATEDIR@ +EXPANDED_PREFIX = @EXPANDED_PREFIX@ EXPANDED_SYSCONFDIR = @EXPANDED_SYSCONFDIR@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ @@ -343,6 +391,8 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LAUNCHCTL = @LAUNCHCTL@ +LAUNCHD_AGENT_DIR = @LAUNCHD_AGENT_DIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -358,6 +408,7 @@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MAN2HTML = @MAN2HTML@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -370,6 +421,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PIC_CFLAGS = @PIC_CFLAGS@ @@ -399,6 +451,7 @@ TEST_SOCKET_DIR = @TEST_SOCKET_DIR@ TEST_VALID_SERVICE_DIR = @TEST_VALID_SERVICE_DIR@ TEST_VALID_SERVICE_SYSTEM_DIR = @TEST_VALID_SERVICE_SYSTEM_DIR@ VERSION = @VERSION@ +WINDRES = @WINDRES@ XMKMF = @XMKMF@ XMLTO = @XMLTO@ X_CFLAGS = @X_CFLAGS@ @@ -454,6 +507,7 @@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ +systemdsystemunitdir = @systemdsystemunitdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ @@ -461,17 +515,20 @@ top_srcdir = @top_srcdir@ configdir = $(sysconfdir)/dbus-1 INCLUDES = -I$(top_srcdir) $(DBUS_BUS_CFLAGS) @PIE_CFLAGS@ \ -DDBUS_SYSTEM_CONFIG_FILE=\""$(configdir)/system.conf"\" \ - -DDAEMON_NAME=\"dbus-daemon\" -DDBUS_COMPILATION + -DDBUS_COMPILATION EFENCE = CONFIG_IN_FILES = \ session.conf.in \ - system.conf.in + system.conf.in \ + org.freedesktop.dbus-session.plist.in config_DATA = \ session.conf \ system.conf +@DBUS_ENABLE_LAUNCHD_TRUE@agentdir = $(LAUNCHD_AGENT_DIR) +@DBUS_ENABLE_LAUNCHD_TRUE@agent_DATA = org.freedesktop.dbus-session.plist @DBUS_USE_EXPAT_TRUE@XML_SOURCES = config-loader-expat.c @DBUS_USE_LIBXML_TRUE@XML_SOURCES = config-loader-libxml.c @DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@DIR_WATCH_SOURCE = dir-watch-default.c @@ -516,11 +573,12 @@ BUS_SOURCES = \ dbus_daemon_SOURCES = \ $(BUS_SOURCES) \ - main.c + main.c +dbus_daemon_CPPFLAGS = -DDBUS_STATIC_BUILD dbus_daemon_LDADD = \ + $(top_builddir)/dbus/libdbus-internal.la \ $(EFENCE) \ - $(top_builddir)/dbus/libdbus-convenience.la \ $(DBUS_BUS_LIBS) dbus_daemon_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ @PIE_LDFLAGS@ @@ -542,8 +600,9 @@ dbus_daemon_launch_helper_SOURCES = \ activation-helper-bin.c \ $(LAUNCH_HELPER_SOURCES) +dbus_daemon_launch_helper_CPPFLAGS = -DDBUS_STATIC_BUILD dbus_daemon_launch_helper_LDADD = \ - $(top_builddir)/dbus/libdbus-convenience.la \ + $(top_builddir)/dbus/libdbus-internal.la \ $(DBUS_LAUNCHER_LIBS) dbus_daemon_launch_helper_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ @@ -552,11 +611,11 @@ dbus_daemon_launch_helper_test_SOURCES = \ $(LAUNCH_HELPER_SOURCES) dbus_daemon_launch_helper_test_LDADD = \ - $(top_builddir)/dbus/libdbus-convenience.la \ + $(top_builddir)/dbus/libdbus-internal.la \ $(DBUS_LAUNCHER_LIBS) dbus_daemon_launch_helper_test_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ -dbus_daemon_launch_helper_test_CPPFLAGS = \ +dbus_daemon_launch_helper_test_CPPFLAGS = -DDBUS_STATIC_BUILD \ -DACTIVATION_LAUNCHER_TEST bus_test_launch_helper_SOURCES = \ @@ -564,14 +623,17 @@ bus_test_launch_helper_SOURCES = \ $(LAUNCH_HELPER_SOURCES) bus_test_launch_helper_LDADD = \ - $(top_builddir)/dbus/libdbus-convenience.la \ + $(top_builddir)/dbus/libdbus-internal.la \ $(DBUS_LAUNCHER_LIBS) bus_test_launch_helper_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ -bus_test_launch_helper_CPPFLAGS = \ +bus_test_launch_helper_CPPFLAGS = -DDBUS_STATIC_BUILD \ -DACTIVATION_LAUNCHER_TEST \ -DACTIVATION_LAUNCHER_DO_OOM +extra_tests = $(am__append_1) +extra_noinst_programs = $(am__append_2) +extra_inst_programs = $(am__append_3) @DBUS_BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus DBUS_FATAL_WARNINGS=1 DBUS_BLOCK_ON_ABORT=1 bus_test_system_SOURCES = \ $(XML_SOURCES) \ @@ -583,19 +645,20 @@ bus_test_system_SOURCES = \ utils.h \ test-system.c -bus_test_system_LDADD = $(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS) +bus_test_system_CPPFLAGS = -DDBUS_STATIC_BUILD +bus_test_system_LDADD = $(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS) bus_test_system_LDFLAGS = @R_DYNAMIC_LDFLAG@ bus_test_SOURCES = \ $(BUS_SOURCES) \ test-main.c -bus_test_LDADD = $(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS) +bus_test_CPPFLAGS = -DDBUS_STATIC_BUILD +bus_test_LDADD = $(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS) bus_test_LDFLAGS = @R_DYNAMIC_LDFLAG@ #### Init scripts fun -SCRIPT_IN_FILES = messagebus.in \ - rc.messagebus.in - +SCRIPT_IN_FILES = messagebus.in messagebus-config.in rc.messagebus.in \ + $(am__append_4) @DBUS_INIT_SCRIPTS_RED_HAT_TRUE@initddir = $(sysconfdir)/rc.d/init.d @DBUS_INIT_SCRIPTS_SLACKWARE_TRUE@initddir = $(sysconfdir)/rc.d/ @DBUS_INIT_SCRIPTS_RED_HAT_TRUE@initd_SCRIPTS = \ @@ -604,11 +667,16 @@ SCRIPT_IN_FILES = messagebus.in \ @DBUS_INIT_SCRIPTS_SLACKWARE_TRUE@initd_SCRIPTS = \ @DBUS_INIT_SCRIPTS_SLACKWARE_TRUE@ rc.messagebus -MAN_IN_FILES = dbus-daemon.1.in -man_MANS = dbus-daemon.1 +@DBUS_INIT_SCRIPTS_CYGWIN_TRUE@bin_SCRIPTS = \ +@DBUS_INIT_SCRIPTS_CYGWIN_TRUE@ messagebus-config -#### Extra dist -EXTRA_DIST = $(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES) +@HAVE_SYSTEMD_TRUE@systemdsystemunit_DATA = \ +@HAVE_SYSTEMD_TRUE@ dbus.service \ +@HAVE_SYSTEMD_TRUE@ dbus.socket + + +#### Extra dist +EXTRA_DIST = $(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) all: all-am .SUFFIXES: @@ -649,10 +717,59 @@ session.conf: $(top_builddir)/config.status $(srcdir)/session.conf.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ messagebus: $(top_builddir)/config.status $(srcdir)/messagebus.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +messagebus-config: $(top_builddir)/config.status $(srcdir)/messagebus-config.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +org.freedesktop.dbus-session.plist: $(top_builddir)/config.status $(srcdir)/org.freedesktop.dbus-session.plist.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ rc.messagebus: $(top_builddir)/config.status $(srcdir)/rc.messagebus.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -dbus-daemon.1: $(top_builddir)/config.status $(srcdir)/dbus-daemon.1.in +dbus.service: $(top_builddir)/config.status $(srcdir)/dbus.service.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +dbus.socket: $(top_builddir)/config.status $(srcdir)/dbus.socket.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ @@ -680,6 +797,40 @@ dbus-daemon-launch-helper$(EXEEXT): $(dbus_daemon_launch_helper_OBJECTS) $(dbus_ dbus-daemon-launch-helper-test$(EXEEXT): $(dbus_daemon_launch_helper_test_OBJECTS) $(dbus_daemon_launch_helper_test_DEPENDENCIES) @rm -f dbus-daemon-launch-helper-test$(EXEEXT) $(AM_V_CCLD)$(dbus_daemon_launch_helper_test_LINK) $(dbus_daemon_launch_helper_test_OBJECTS) $(dbus_daemon_launch_helper_test_LDADD) $(LIBS) +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files install-initdSCRIPTS: $(initd_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(initddir)" || $(MKDIR_P) "$(DESTDIR)$(initddir)" @@ -721,10 +872,28 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/activation-helper-bin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/activation-helper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/activation.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-activation.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-bus.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-loader-expat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-loader-libxml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-parser-common.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-parser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-connection.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-desktop-file.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-default.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-dnotify.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-inotify.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-kqueue.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dispatch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-driver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-expirelist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-policy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-selinux.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-services.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-signals.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-test-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-activation-helper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-config-loader-expat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-config-loader-libxml.Po@am__quote@ @@ -733,12 +902,42 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-desktop-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-test-launch-helper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-loader-expat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-loader-libxml.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-parser-common.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-parser-trivial.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-parser.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-loader-expat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-loader-libxml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-parser-common.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-parser-trivial.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-test-system.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-utils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-activation.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-bus.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-loader-expat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-loader-libxml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-parser-common.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-parser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-connection.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-desktop-file.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-default.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-dnotify.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-inotify.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-kqueue.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dispatch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-driver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-expirelist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-policy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-selinux.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-services.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-signals.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-utils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-config-loader-expat.Po@am__quote@ @@ -747,23 +946,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-config-parser-trivial.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-desktop-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-utils.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desktop-file.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-default.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-dnotify.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-inotify.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-kqueue.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dispatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expirelist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/policy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selinux.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/services.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signals.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-system.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -789,6 +971,358 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +bus_test-activation.o: activation.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-activation.o -MD -MP -MF $(DEPDIR)/bus_test-activation.Tpo -c -o bus_test-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-activation.Tpo $(DEPDIR)/bus_test-activation.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='bus_test-activation.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c + +bus_test-activation.obj: activation.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-activation.obj -MD -MP -MF $(DEPDIR)/bus_test-activation.Tpo -c -o bus_test-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-activation.Tpo $(DEPDIR)/bus_test-activation.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='bus_test-activation.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi` + +bus_test-bus.o: bus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-bus.o -MD -MP -MF $(DEPDIR)/bus_test-bus.Tpo -c -o bus_test-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-bus.Tpo $(DEPDIR)/bus_test-bus.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='bus_test-bus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c + +bus_test-bus.obj: bus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-bus.obj -MD -MP -MF $(DEPDIR)/bus_test-bus.Tpo -c -o bus_test-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-bus.Tpo $(DEPDIR)/bus_test-bus.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='bus_test-bus.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi` + +bus_test-config-parser.o: config-parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser.o -MD -MP -MF $(DEPDIR)/bus_test-config-parser.Tpo -c -o bus_test-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser.Tpo $(DEPDIR)/bus_test-config-parser.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='bus_test-config-parser.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c + +bus_test-config-parser.obj: config-parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser.obj -MD -MP -MF $(DEPDIR)/bus_test-config-parser.Tpo -c -o bus_test-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser.Tpo $(DEPDIR)/bus_test-config-parser.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='bus_test-config-parser.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi` + +bus_test-config-parser-common.o: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser-common.o -MD -MP -MF $(DEPDIR)/bus_test-config-parser-common.Tpo -c -o bus_test-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser-common.Tpo $(DEPDIR)/bus_test-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test-config-parser-common.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c + +bus_test-config-parser-common.obj: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser-common.obj -MD -MP -MF $(DEPDIR)/bus_test-config-parser-common.Tpo -c -o bus_test-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser-common.Tpo $(DEPDIR)/bus_test-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` + +bus_test-connection.o: connection.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-connection.o -MD -MP -MF $(DEPDIR)/bus_test-connection.Tpo -c -o bus_test-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-connection.Tpo $(DEPDIR)/bus_test-connection.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='bus_test-connection.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c + +bus_test-connection.obj: connection.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-connection.obj -MD -MP -MF $(DEPDIR)/bus_test-connection.Tpo -c -o bus_test-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-connection.Tpo $(DEPDIR)/bus_test-connection.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='bus_test-connection.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi` + +bus_test-desktop-file.o: desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-desktop-file.o -MD -MP -MF $(DEPDIR)/bus_test-desktop-file.Tpo -c -o bus_test-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-desktop-file.Tpo $(DEPDIR)/bus_test-desktop-file.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='bus_test-desktop-file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c + +bus_test-desktop-file.obj: desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-desktop-file.obj -MD -MP -MF $(DEPDIR)/bus_test-desktop-file.Tpo -c -o bus_test-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-desktop-file.Tpo $(DEPDIR)/bus_test-desktop-file.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='bus_test-desktop-file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi` + +bus_test-dir-watch-default.o: dir-watch-default.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-default.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-default.Tpo -c -o bus_test-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-default.Tpo $(DEPDIR)/bus_test-dir-watch-default.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='bus_test-dir-watch-default.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c + +bus_test-dir-watch-default.obj: dir-watch-default.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-default.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-default.Tpo -c -o bus_test-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-default.Tpo $(DEPDIR)/bus_test-dir-watch-default.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='bus_test-dir-watch-default.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi` + +bus_test-dir-watch-dnotify.o: dir-watch-dnotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-dnotify.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo -c -o bus_test-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo $(DEPDIR)/bus_test-dir-watch-dnotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='bus_test-dir-watch-dnotify.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c + +bus_test-dir-watch-dnotify.obj: dir-watch-dnotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-dnotify.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo -c -o bus_test-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo $(DEPDIR)/bus_test-dir-watch-dnotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='bus_test-dir-watch-dnotify.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi` + +bus_test-dir-watch-inotify.o: dir-watch-inotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-inotify.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-inotify.Tpo -c -o bus_test-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-inotify.Tpo $(DEPDIR)/bus_test-dir-watch-inotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='bus_test-dir-watch-inotify.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c + +bus_test-dir-watch-inotify.obj: dir-watch-inotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-inotify.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-inotify.Tpo -c -o bus_test-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-inotify.Tpo $(DEPDIR)/bus_test-dir-watch-inotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='bus_test-dir-watch-inotify.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi` + +bus_test-dir-watch-kqueue.o: dir-watch-kqueue.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-kqueue.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo -c -o bus_test-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo $(DEPDIR)/bus_test-dir-watch-kqueue.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='bus_test-dir-watch-kqueue.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c + +bus_test-dir-watch-kqueue.obj: dir-watch-kqueue.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-kqueue.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo -c -o bus_test-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo $(DEPDIR)/bus_test-dir-watch-kqueue.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='bus_test-dir-watch-kqueue.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi` + +bus_test-dispatch.o: dispatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dispatch.o -MD -MP -MF $(DEPDIR)/bus_test-dispatch.Tpo -c -o bus_test-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dispatch.Tpo $(DEPDIR)/bus_test-dispatch.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='bus_test-dispatch.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c + +bus_test-dispatch.obj: dispatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dispatch.obj -MD -MP -MF $(DEPDIR)/bus_test-dispatch.Tpo -c -o bus_test-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dispatch.Tpo $(DEPDIR)/bus_test-dispatch.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='bus_test-dispatch.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi` + +bus_test-driver.o: driver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-driver.o -MD -MP -MF $(DEPDIR)/bus_test-driver.Tpo -c -o bus_test-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-driver.Tpo $(DEPDIR)/bus_test-driver.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='bus_test-driver.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c + +bus_test-driver.obj: driver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-driver.obj -MD -MP -MF $(DEPDIR)/bus_test-driver.Tpo -c -o bus_test-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-driver.Tpo $(DEPDIR)/bus_test-driver.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='bus_test-driver.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi` + +bus_test-expirelist.o: expirelist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-expirelist.o -MD -MP -MF $(DEPDIR)/bus_test-expirelist.Tpo -c -o bus_test-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-expirelist.Tpo $(DEPDIR)/bus_test-expirelist.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='bus_test-expirelist.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c + +bus_test-expirelist.obj: expirelist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-expirelist.obj -MD -MP -MF $(DEPDIR)/bus_test-expirelist.Tpo -c -o bus_test-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-expirelist.Tpo $(DEPDIR)/bus_test-expirelist.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='bus_test-expirelist.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi` + +bus_test-policy.o: policy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-policy.o -MD -MP -MF $(DEPDIR)/bus_test-policy.Tpo -c -o bus_test-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-policy.Tpo $(DEPDIR)/bus_test-policy.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='bus_test-policy.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c + +bus_test-policy.obj: policy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-policy.obj -MD -MP -MF $(DEPDIR)/bus_test-policy.Tpo -c -o bus_test-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-policy.Tpo $(DEPDIR)/bus_test-policy.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='bus_test-policy.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi` + +bus_test-selinux.o: selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-selinux.o -MD -MP -MF $(DEPDIR)/bus_test-selinux.Tpo -c -o bus_test-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-selinux.Tpo $(DEPDIR)/bus_test-selinux.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='bus_test-selinux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c + +bus_test-selinux.obj: selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-selinux.obj -MD -MP -MF $(DEPDIR)/bus_test-selinux.Tpo -c -o bus_test-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-selinux.Tpo $(DEPDIR)/bus_test-selinux.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='bus_test-selinux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi` + +bus_test-services.o: services.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-services.o -MD -MP -MF $(DEPDIR)/bus_test-services.Tpo -c -o bus_test-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-services.Tpo $(DEPDIR)/bus_test-services.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='bus_test-services.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c + +bus_test-services.obj: services.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-services.obj -MD -MP -MF $(DEPDIR)/bus_test-services.Tpo -c -o bus_test-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-services.Tpo $(DEPDIR)/bus_test-services.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='bus_test-services.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi` + +bus_test-signals.o: signals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-signals.o -MD -MP -MF $(DEPDIR)/bus_test-signals.Tpo -c -o bus_test-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-signals.Tpo $(DEPDIR)/bus_test-signals.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='bus_test-signals.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c + +bus_test-signals.obj: signals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-signals.obj -MD -MP -MF $(DEPDIR)/bus_test-signals.Tpo -c -o bus_test-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-signals.Tpo $(DEPDIR)/bus_test-signals.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='bus_test-signals.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi` + +bus_test-test.o: test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test.o -MD -MP -MF $(DEPDIR)/bus_test-test.Tpo -c -o bus_test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test.Tpo $(DEPDIR)/bus_test-test.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='bus_test-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c + +bus_test-test.obj: test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test.obj -MD -MP -MF $(DEPDIR)/bus_test-test.Tpo -c -o bus_test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test.Tpo $(DEPDIR)/bus_test-test.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='bus_test-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi` + +bus_test-utils.o: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-utils.o -MD -MP -MF $(DEPDIR)/bus_test-utils.Tpo -c -o bus_test-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-utils.Tpo $(DEPDIR)/bus_test-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test-utils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c + +bus_test-utils.obj: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-utils.obj -MD -MP -MF $(DEPDIR)/bus_test-utils.Tpo -c -o bus_test-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-utils.Tpo $(DEPDIR)/bus_test-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test-utils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` + +bus_test-config-loader-expat.o: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-expat.o -MD -MP -MF $(DEPDIR)/bus_test-config-loader-expat.Tpo -c -o bus_test-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-expat.Tpo $(DEPDIR)/bus_test-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c + +bus_test-config-loader-expat.obj: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/bus_test-config-loader-expat.Tpo -c -o bus_test-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-expat.Tpo $(DEPDIR)/bus_test-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` + +bus_test-config-loader-libxml.o: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/bus_test-config-loader-libxml.Tpo -c -o bus_test-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-libxml.Tpo $(DEPDIR)/bus_test-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c + +bus_test-config-loader-libxml.obj: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/bus_test-config-loader-libxml.Tpo -c -o bus_test-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-libxml.Tpo $(DEPDIR)/bus_test-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` + +bus_test-test-main.o: test-main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test-main.o -MD -MP -MF $(DEPDIR)/bus_test-test-main.Tpo -c -o bus_test-test-main.o `test -f 'test-main.c' || echo '$(srcdir)/'`test-main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test-main.Tpo $(DEPDIR)/bus_test-test-main.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-main.c' object='bus_test-test-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test-main.o `test -f 'test-main.c' || echo '$(srcdir)/'`test-main.c + +bus_test-test-main.obj: test-main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test-main.obj -MD -MP -MF $(DEPDIR)/bus_test-test-main.Tpo -c -o bus_test-test-main.obj `if test -f 'test-main.c'; then $(CYGPATH_W) 'test-main.c'; else $(CYGPATH_W) '$(srcdir)/test-main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test-main.Tpo $(DEPDIR)/bus_test-test-main.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-main.c' object='bus_test-test-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test-main.obj `if test -f 'test-main.c'; then $(CYGPATH_W) 'test-main.c'; else $(CYGPATH_W) '$(srcdir)/test-main.c'; fi` + bus_test_launch_helper-test-launch-helper.o: test-launch-helper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_launch_helper-test-launch-helper.o -MD -MP -MF $(DEPDIR)/bus_test_launch_helper-test-launch-helper.Tpo -c -o bus_test_launch_helper-test-launch-helper.o `test -f 'test-launch-helper.c' || echo '$(srcdir)/'`test-launch-helper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_launch_helper-test-launch-helper.Tpo $(DEPDIR)/bus_test_launch_helper-test-launch-helper.Po @@ -917,6 +1451,582 @@ bus_test_launch_helper-activation-helper.obj: activation-helper.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_launch_helper-activation-helper.obj `if test -f 'activation-helper.c'; then $(CYGPATH_W) 'activation-helper.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper.c'; fi` +bus_test_system-config-loader-expat.o: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-expat.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-expat.Tpo -c -o bus_test_system-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-expat.Tpo $(DEPDIR)/bus_test_system-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test_system-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c + +bus_test_system-config-loader-expat.obj: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-expat.Tpo -c -o bus_test_system-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-expat.Tpo $(DEPDIR)/bus_test_system-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test_system-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` + +bus_test_system-config-loader-libxml.o: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo -c -o bus_test_system-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo $(DEPDIR)/bus_test_system-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test_system-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c + +bus_test_system-config-loader-libxml.obj: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo -c -o bus_test_system-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo $(DEPDIR)/bus_test_system-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test_system-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` + +bus_test_system-config-parser-common.o: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-common.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-common.Tpo -c -o bus_test_system-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-common.Tpo $(DEPDIR)/bus_test_system-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test_system-config-parser-common.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c + +bus_test_system-config-parser-common.obj: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-common.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-common.Tpo -c -o bus_test_system-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-common.Tpo $(DEPDIR)/bus_test_system-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test_system-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` + +bus_test_system-config-parser-trivial.o: config-parser-trivial.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-trivial.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo -c -o bus_test_system-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo $(DEPDIR)/bus_test_system-config-parser-trivial.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='bus_test_system-config-parser-trivial.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c + +bus_test_system-config-parser-trivial.obj: config-parser-trivial.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-trivial.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo -c -o bus_test_system-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo $(DEPDIR)/bus_test_system-config-parser-trivial.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='bus_test_system-config-parser-trivial.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi` + +bus_test_system-utils.o: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-utils.o -MD -MP -MF $(DEPDIR)/bus_test_system-utils.Tpo -c -o bus_test_system-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-utils.Tpo $(DEPDIR)/bus_test_system-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test_system-utils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c + +bus_test_system-utils.obj: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-utils.obj -MD -MP -MF $(DEPDIR)/bus_test_system-utils.Tpo -c -o bus_test_system-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-utils.Tpo $(DEPDIR)/bus_test_system-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test_system-utils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` + +bus_test_system-test-system.o: test-system.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-test-system.o -MD -MP -MF $(DEPDIR)/bus_test_system-test-system.Tpo -c -o bus_test_system-test-system.o `test -f 'test-system.c' || echo '$(srcdir)/'`test-system.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-test-system.Tpo $(DEPDIR)/bus_test_system-test-system.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-system.c' object='bus_test_system-test-system.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-test-system.o `test -f 'test-system.c' || echo '$(srcdir)/'`test-system.c + +bus_test_system-test-system.obj: test-system.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-test-system.obj -MD -MP -MF $(DEPDIR)/bus_test_system-test-system.Tpo -c -o bus_test_system-test-system.obj `if test -f 'test-system.c'; then $(CYGPATH_W) 'test-system.c'; else $(CYGPATH_W) '$(srcdir)/test-system.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-test-system.Tpo $(DEPDIR)/bus_test_system-test-system.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-system.c' object='bus_test_system-test-system.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-test-system.obj `if test -f 'test-system.c'; then $(CYGPATH_W) 'test-system.c'; else $(CYGPATH_W) '$(srcdir)/test-system.c'; fi` + +dbus_daemon-activation.o: activation.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-activation.o -MD -MP -MF $(DEPDIR)/dbus_daemon-activation.Tpo -c -o dbus_daemon-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-activation.Tpo $(DEPDIR)/dbus_daemon-activation.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='dbus_daemon-activation.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c + +dbus_daemon-activation.obj: activation.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-activation.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-activation.Tpo -c -o dbus_daemon-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-activation.Tpo $(DEPDIR)/dbus_daemon-activation.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='dbus_daemon-activation.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi` + +dbus_daemon-bus.o: bus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-bus.o -MD -MP -MF $(DEPDIR)/dbus_daemon-bus.Tpo -c -o dbus_daemon-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-bus.Tpo $(DEPDIR)/dbus_daemon-bus.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='dbus_daemon-bus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c + +dbus_daemon-bus.obj: bus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-bus.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-bus.Tpo -c -o dbus_daemon-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-bus.Tpo $(DEPDIR)/dbus_daemon-bus.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='dbus_daemon-bus.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi` + +dbus_daemon-config-parser.o: config-parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser.Tpo -c -o dbus_daemon-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser.Tpo $(DEPDIR)/dbus_daemon-config-parser.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='dbus_daemon-config-parser.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c + +dbus_daemon-config-parser.obj: config-parser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser.Tpo -c -o dbus_daemon-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser.Tpo $(DEPDIR)/dbus_daemon-config-parser.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='dbus_daemon-config-parser.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi` + +dbus_daemon-config-parser-common.o: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser-common.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser-common.Tpo -c -o dbus_daemon-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser-common.Tpo $(DEPDIR)/dbus_daemon-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon-config-parser-common.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c + +dbus_daemon-config-parser-common.obj: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser-common.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser-common.Tpo -c -o dbus_daemon-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser-common.Tpo $(DEPDIR)/dbus_daemon-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` + +dbus_daemon-connection.o: connection.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-connection.o -MD -MP -MF $(DEPDIR)/dbus_daemon-connection.Tpo -c -o dbus_daemon-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-connection.Tpo $(DEPDIR)/dbus_daemon-connection.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='dbus_daemon-connection.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c + +dbus_daemon-connection.obj: connection.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-connection.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-connection.Tpo -c -o dbus_daemon-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-connection.Tpo $(DEPDIR)/dbus_daemon-connection.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='dbus_daemon-connection.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi` + +dbus_daemon-desktop-file.o: desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-desktop-file.o -MD -MP -MF $(DEPDIR)/dbus_daemon-desktop-file.Tpo -c -o dbus_daemon-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-desktop-file.Tpo $(DEPDIR)/dbus_daemon-desktop-file.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon-desktop-file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c + +dbus_daemon-desktop-file.obj: desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-desktop-file.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-desktop-file.Tpo -c -o dbus_daemon-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-desktop-file.Tpo $(DEPDIR)/dbus_daemon-desktop-file.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon-desktop-file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi` + +dbus_daemon-dir-watch-default.o: dir-watch-default.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-default.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo -c -o dbus_daemon-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo $(DEPDIR)/dbus_daemon-dir-watch-default.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='dbus_daemon-dir-watch-default.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c + +dbus_daemon-dir-watch-default.obj: dir-watch-default.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-default.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo -c -o dbus_daemon-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo $(DEPDIR)/dbus_daemon-dir-watch-default.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='dbus_daemon-dir-watch-default.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi` + +dbus_daemon-dir-watch-dnotify.o: dir-watch-dnotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-dnotify.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo -c -o dbus_daemon-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='dbus_daemon-dir-watch-dnotify.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c + +dbus_daemon-dir-watch-dnotify.obj: dir-watch-dnotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-dnotify.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo -c -o dbus_daemon-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='dbus_daemon-dir-watch-dnotify.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi` + +dbus_daemon-dir-watch-inotify.o: dir-watch-inotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-inotify.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo -c -o dbus_daemon-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-inotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='dbus_daemon-dir-watch-inotify.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c + +dbus_daemon-dir-watch-inotify.obj: dir-watch-inotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-inotify.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo -c -o dbus_daemon-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-inotify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='dbus_daemon-dir-watch-inotify.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi` + +dbus_daemon-dir-watch-kqueue.o: dir-watch-kqueue.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-kqueue.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo -c -o dbus_daemon-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='dbus_daemon-dir-watch-kqueue.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c + +dbus_daemon-dir-watch-kqueue.obj: dir-watch-kqueue.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-kqueue.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo -c -o dbus_daemon-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='dbus_daemon-dir-watch-kqueue.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi` + +dbus_daemon-dispatch.o: dispatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dispatch.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dispatch.Tpo -c -o dbus_daemon-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dispatch.Tpo $(DEPDIR)/dbus_daemon-dispatch.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='dbus_daemon-dispatch.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c + +dbus_daemon-dispatch.obj: dispatch.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dispatch.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dispatch.Tpo -c -o dbus_daemon-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dispatch.Tpo $(DEPDIR)/dbus_daemon-dispatch.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='dbus_daemon-dispatch.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi` + +dbus_daemon-driver.o: driver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-driver.o -MD -MP -MF $(DEPDIR)/dbus_daemon-driver.Tpo -c -o dbus_daemon-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-driver.Tpo $(DEPDIR)/dbus_daemon-driver.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='dbus_daemon-driver.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c + +dbus_daemon-driver.obj: driver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-driver.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-driver.Tpo -c -o dbus_daemon-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-driver.Tpo $(DEPDIR)/dbus_daemon-driver.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='dbus_daemon-driver.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi` + +dbus_daemon-expirelist.o: expirelist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-expirelist.o -MD -MP -MF $(DEPDIR)/dbus_daemon-expirelist.Tpo -c -o dbus_daemon-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-expirelist.Tpo $(DEPDIR)/dbus_daemon-expirelist.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='dbus_daemon-expirelist.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c + +dbus_daemon-expirelist.obj: expirelist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-expirelist.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-expirelist.Tpo -c -o dbus_daemon-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-expirelist.Tpo $(DEPDIR)/dbus_daemon-expirelist.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='dbus_daemon-expirelist.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi` + +dbus_daemon-policy.o: policy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-policy.o -MD -MP -MF $(DEPDIR)/dbus_daemon-policy.Tpo -c -o dbus_daemon-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-policy.Tpo $(DEPDIR)/dbus_daemon-policy.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='dbus_daemon-policy.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c + +dbus_daemon-policy.obj: policy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-policy.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-policy.Tpo -c -o dbus_daemon-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-policy.Tpo $(DEPDIR)/dbus_daemon-policy.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='dbus_daemon-policy.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi` + +dbus_daemon-selinux.o: selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-selinux.o -MD -MP -MF $(DEPDIR)/dbus_daemon-selinux.Tpo -c -o dbus_daemon-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-selinux.Tpo $(DEPDIR)/dbus_daemon-selinux.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='dbus_daemon-selinux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c + +dbus_daemon-selinux.obj: selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-selinux.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-selinux.Tpo -c -o dbus_daemon-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-selinux.Tpo $(DEPDIR)/dbus_daemon-selinux.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='dbus_daemon-selinux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi` + +dbus_daemon-services.o: services.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-services.o -MD -MP -MF $(DEPDIR)/dbus_daemon-services.Tpo -c -o dbus_daemon-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-services.Tpo $(DEPDIR)/dbus_daemon-services.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='dbus_daemon-services.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c + +dbus_daemon-services.obj: services.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-services.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-services.Tpo -c -o dbus_daemon-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-services.Tpo $(DEPDIR)/dbus_daemon-services.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='dbus_daemon-services.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi` + +dbus_daemon-signals.o: signals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-signals.o -MD -MP -MF $(DEPDIR)/dbus_daemon-signals.Tpo -c -o dbus_daemon-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-signals.Tpo $(DEPDIR)/dbus_daemon-signals.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='dbus_daemon-signals.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c + +dbus_daemon-signals.obj: signals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-signals.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-signals.Tpo -c -o dbus_daemon-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-signals.Tpo $(DEPDIR)/dbus_daemon-signals.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='dbus_daemon-signals.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi` + +dbus_daemon-test.o: test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-test.o -MD -MP -MF $(DEPDIR)/dbus_daemon-test.Tpo -c -o dbus_daemon-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-test.Tpo $(DEPDIR)/dbus_daemon-test.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='dbus_daemon-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c + +dbus_daemon-test.obj: test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-test.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-test.Tpo -c -o dbus_daemon-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-test.Tpo $(DEPDIR)/dbus_daemon-test.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='dbus_daemon-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi` + +dbus_daemon-utils.o: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-utils.o -MD -MP -MF $(DEPDIR)/dbus_daemon-utils.Tpo -c -o dbus_daemon-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-utils.Tpo $(DEPDIR)/dbus_daemon-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon-utils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c + +dbus_daemon-utils.obj: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-utils.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-utils.Tpo -c -o dbus_daemon-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-utils.Tpo $(DEPDIR)/dbus_daemon-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon-utils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` + +dbus_daemon-config-loader-expat.o: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-expat.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo -c -o dbus_daemon-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c + +dbus_daemon-config-loader-expat.obj: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo -c -o dbus_daemon-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` + +dbus_daemon-config-loader-libxml.o: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo -c -o dbus_daemon-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c + +dbus_daemon-config-loader-libxml.obj: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo -c -o dbus_daemon-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` + +dbus_daemon-main.o: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-main.o -MD -MP -MF $(DEPDIR)/dbus_daemon-main.Tpo -c -o dbus_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-main.Tpo $(DEPDIR)/dbus_daemon-main.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='dbus_daemon-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c + +dbus_daemon-main.obj: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-main.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-main.Tpo -c -o dbus_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-main.Tpo $(DEPDIR)/dbus_daemon-main.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='dbus_daemon-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` + +dbus_daemon_launch_helper-activation-helper-bin.o: activation-helper-bin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper-bin.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo -c -o dbus_daemon_launch_helper-activation-helper-bin.o `test -f 'activation-helper-bin.c' || echo '$(srcdir)/'`activation-helper-bin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper-bin.c' object='dbus_daemon_launch_helper-activation-helper-bin.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper-bin.o `test -f 'activation-helper-bin.c' || echo '$(srcdir)/'`activation-helper-bin.c + +dbus_daemon_launch_helper-activation-helper-bin.obj: activation-helper-bin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper-bin.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo -c -o dbus_daemon_launch_helper-activation-helper-bin.obj `if test -f 'activation-helper-bin.c'; then $(CYGPATH_W) 'activation-helper-bin.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper-bin.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper-bin.c' object='dbus_daemon_launch_helper-activation-helper-bin.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper-bin.obj `if test -f 'activation-helper-bin.c'; then $(CYGPATH_W) 'activation-helper-bin.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper-bin.c'; fi` + +dbus_daemon_launch_helper-config-loader-expat.o: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-expat.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo -c -o dbus_daemon_launch_helper-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon_launch_helper-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c + +dbus_daemon_launch_helper-config-loader-expat.obj: config-loader-expat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo -c -o dbus_daemon_launch_helper-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon_launch_helper-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi` + +dbus_daemon_launch_helper-config-loader-libxml.o: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo -c -o dbus_daemon_launch_helper-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon_launch_helper-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c + +dbus_daemon_launch_helper-config-loader-libxml.obj: config-loader-libxml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo -c -o dbus_daemon_launch_helper-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon_launch_helper-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi` + +dbus_daemon_launch_helper-config-parser-common.o: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-common.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo -c -o dbus_daemon_launch_helper-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon_launch_helper-config-parser-common.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c + +dbus_daemon_launch_helper-config-parser-common.obj: config-parser-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-common.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo -c -o dbus_daemon_launch_helper-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon_launch_helper-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi` + +dbus_daemon_launch_helper-config-parser-trivial.o: config-parser-trivial.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-trivial.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo -c -o dbus_daemon_launch_helper-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='dbus_daemon_launch_helper-config-parser-trivial.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c + +dbus_daemon_launch_helper-config-parser-trivial.obj: config-parser-trivial.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-trivial.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo -c -o dbus_daemon_launch_helper-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='dbus_daemon_launch_helper-config-parser-trivial.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi` + +dbus_daemon_launch_helper-desktop-file.o: desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-desktop-file.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo -c -o dbus_daemon_launch_helper-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon_launch_helper-desktop-file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c + +dbus_daemon_launch_helper-desktop-file.obj: desktop-file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-desktop-file.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo -c -o dbus_daemon_launch_helper-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon_launch_helper-desktop-file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi` + +dbus_daemon_launch_helper-utils.o: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-utils.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo -c -o dbus_daemon_launch_helper-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo $(DEPDIR)/dbus_daemon_launch_helper-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon_launch_helper-utils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c + +dbus_daemon_launch_helper-utils.obj: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-utils.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo -c -o dbus_daemon_launch_helper-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo $(DEPDIR)/dbus_daemon_launch_helper-utils.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon_launch_helper-utils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` + +dbus_daemon_launch_helper-activation-helper.o: activation-helper.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo -c -o dbus_daemon_launch_helper-activation-helper.o `test -f 'activation-helper.c' || echo '$(srcdir)/'`activation-helper.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper.c' object='dbus_daemon_launch_helper-activation-helper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper.o `test -f 'activation-helper.c' || echo '$(srcdir)/'`activation-helper.c + +dbus_daemon_launch_helper-activation-helper.obj: activation-helper.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo -c -o dbus_daemon_launch_helper-activation-helper.obj `if test -f 'activation-helper.c'; then $(CYGPATH_W) 'activation-helper.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper.c' object='dbus_daemon_launch_helper-activation-helper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper.obj `if test -f 'activation-helper.c'; then $(CYGPATH_W) 'activation-helper.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper.c'; fi` + dbus_daemon_launch_helper_test-activation-helper-bin.o: activation-helper-bin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper_test-activation-helper-bin.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Tpo -c -o dbus_daemon_launch_helper_test-activation-helper-bin.o `test -f 'activation-helper-bin.c' || echo '$(srcdir)/'`activation-helper-bin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Tpo $(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Po @@ -1050,44 +2160,26 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -install-man1: $(man_MANS) +install-agentDATA: $(agent_DATA) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" - @list=''; test -n "$(man1dir)" || exit 0; \ - { for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + test -z "$(agentdir)" || $(MKDIR_P) "$(DESTDIR)$(agentdir)" + @list='$(agent_DATA)'; test -n "$(agentdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ - done; } + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(agentdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(agentdir)" || exit $$?; \ + done -uninstall-man1: +uninstall-agentDATA: @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man1dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - test -z "$$files" || { \ - echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } + @list='$(agent_DATA)'; test -n "$(agentdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(agentdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(agentdir)" && rm -f $$files install-configDATA: $(config_DATA) @$(NORMAL_INSTALL) test -z "$(configdir)" || $(MKDIR_P) "$(DESTDIR)$(configdir)" @@ -1108,6 +2200,26 @@ uninstall-configDATA: test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(configdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(configdir)" && rm -f $$files +install-systemdsystemunitDATA: $(systemdsystemunit_DATA) + @$(NORMAL_INSTALL) + test -z "$(systemdsystemunitdir)" || $(MKDIR_P) "$(DESTDIR)$(systemdsystemunitdir)" + @list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemdsystemunitdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(systemdsystemunitdir)" || exit $$?; \ + done + +uninstall-systemdsystemunitDATA: + @$(NORMAL_UNINSTALL) + @list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(systemdsystemunitdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(systemdsystemunitdir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -1254,19 +2366,6 @@ check-TESTS: $(TESTS) else :; fi distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -1299,9 +2398,9 @@ distdir: $(DISTFILES) check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am -all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) +all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) installdirs: - for dir in "$(DESTDIR)$(initddir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(configdir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(initddir)" "$(DESTDIR)$(agentdir)" "$(DESTDIR)$(configdir)" "$(DESTDIR)$(systemdsystemunitdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -1331,8 +2430,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ - mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \ + clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -1352,14 +2451,15 @@ info: info-am info-am: -install-data-am: install-configDATA install-initdSCRIPTS install-man +install-data-am: install-agentDATA install-configDATA \ + install-initdSCRIPTS install-systemdsystemunitDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: -install-exec-am: +install-exec-am: install-binPROGRAMS install-binSCRIPTS install-html: install-html-am @@ -1369,7 +2469,7 @@ install-info: install-info-am install-info-am: -install-man: install-man1 +install-man: install-pdf: install-pdf-am @@ -1399,59 +2499,70 @@ ps: ps-am ps-am: -uninstall-am: uninstall-configDATA uninstall-initdSCRIPTS \ - uninstall-man +uninstall-am: uninstall-agentDATA uninstall-binPROGRAMS \ + uninstall-binSCRIPTS uninstall-configDATA \ + uninstall-initdSCRIPTS uninstall-systemdsystemunitDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook -uninstall-man: uninstall-man1 - .MAKE: check-am install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ - ctags distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-configDATA \ - install-data install-data-am install-data-hook install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-initdSCRIPTS install-man install-man1 install-pdf \ + clean-binPROGRAMS clean-generic clean-libtool clean-local \ + clean-noinstPROGRAMS ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-agentDATA \ + install-am install-binPROGRAMS install-binSCRIPTS \ + install-configDATA install-data install-data-am \ + install-data-hook install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-initdSCRIPTS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-configDATA \ - uninstall-hook uninstall-initdSCRIPTS uninstall-man \ - uninstall-man1 + install-systemdsystemunitDATA installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-agentDATA uninstall-am uninstall-binPROGRAMS \ + uninstall-binSCRIPTS uninstall-configDATA uninstall-hook \ + uninstall-initdSCRIPTS uninstall-systemdsystemunitDATA clean-local: /bin/rm *.bb *.bbg *.da *.gcov || true uninstall-hook: - rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon - rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper + rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT) + rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT) install-data-hook: - if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \ - $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \ - chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \ - fi - $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR) $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services - $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1 - $(INSTALL_PROGRAM) dbus-daemon-launch-helper $(DESTDIR)$(libexecdir) - if test `id -u` -eq 0; then \ - chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \ - chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \ - else \ - echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \ - echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \ - fi +@DBUS_UNIX_TRUE@ if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \ +@DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \ +@DBUS_UNIX_TRUE@ chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \ +@DBUS_UNIX_TRUE@ fi +@DBUS_UNIX_TRUE@ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon$(EXEEXT) $(DESTDIR)$(DBUS_DAEMONDIR) +@DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1 +@DBUS_UNIX_TRUE@ if test -f dbus-daemon-launch-helper$(EXEEXT) ; then \ +@DBUS_UNIX_TRUE@ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon-launch-helper$(EXEEXT) $(DESTDIR)$(libexecdir); \ +@DBUS_UNIX_TRUE@ if test `id -u` -eq 0; then \ +@DBUS_UNIX_TRUE@ chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \ +@DBUS_UNIX_TRUE@ chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \ +@DBUS_UNIX_TRUE@ else \ +@DBUS_UNIX_TRUE@ echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \ +@DBUS_UNIX_TRUE@ echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \ +@DBUS_UNIX_TRUE@ fi \ +@DBUS_UNIX_TRUE@ fi +# Install dbus.socket as default implementation of a D-Bus stack +@HAVE_SYSTEMD_TRUE@ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants +@HAVE_SYSTEMD_TRUE@ $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants/dbus.socket +# Unconditionally enable D-Bus on systemd installations +@HAVE_SYSTEMD_TRUE@ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants +@HAVE_SYSTEMD_TRUE@ $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants/dbus.socket +@HAVE_SYSTEMD_TRUE@ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants +@HAVE_SYSTEMD_TRUE@ $(LN_S) ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/bus/activation.c b/bus/activation.c index 2fcd85d2..ee5efa8e 100644 --- a/bus/activation.c +++ b/bus/activation.c @@ -6,7 +6,7 @@ * Copyright (C) 2004 Imendio HB * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -16,12 +16,14 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include "activation.h" #include "activation-exit-codes.h" #include "desktop-file.h" @@ -68,6 +70,7 @@ typedef struct char *name; char *exec; char *user; + char *systemd_service; unsigned long mtime; BusServiceDirectory *s_dir; char *filename; @@ -89,6 +92,7 @@ typedef struct BusActivation *activation; char *service_name; char *exec; + char *systemd_service; DBusList *entries; int n_entries; DBusBabysitter *babysitter; @@ -101,7 +105,7 @@ static BusServiceDirectory * bus_service_directory_ref (BusServiceDirectory *dir) { _dbus_assert (dir->refcount); - + dir->refcount++; return dir; @@ -111,8 +115,8 @@ bus_service_directory_ref (BusServiceDirectory *dir) static void bus_service_directory_unref (BusServiceDirectory *dir) { - if (dir == NULL) - return; + if (dir == NULL) + return; _dbus_assert (dir->refcount > 0); dir->refcount--; @@ -132,10 +136,10 @@ bus_pending_activation_entry_free (BusPendingActivationEntry *entry) { if (entry->activation_message) dbus_message_unref (entry->activation_message); - + if (entry->connection) dbus_connection_unref (entry->connection); - + dbus_free (entry); } @@ -149,7 +153,7 @@ handle_timeout_callback (DBusTimeout *timeout, _dbus_wait_for_memory (); } -static BusPendingActivation * +static BusPendingActivation * bus_pending_activation_ref (BusPendingActivation *pending_activation) { _dbus_assert (pending_activation->refcount > 0); @@ -162,7 +166,7 @@ static void bus_pending_activation_unref (BusPendingActivation *pending_activation) { DBusList *link; - + if (pending_activation == NULL) /* hash table requires this */ return; @@ -171,7 +175,7 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation) if (pending_activation->refcount > 0) return; - + if (pending_activation->timeout_added) { _dbus_loop_remove_timeout (bus_context_get_loop (pending_activation->activation->context), @@ -182,7 +186,7 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation) if (pending_activation->timeout) _dbus_timeout_unref (pending_activation->timeout); - + if (pending_activation->babysitter) { if (!_dbus_babysitter_set_watch_functions (pending_activation->babysitter, @@ -190,12 +194,13 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation) pending_activation->babysitter, NULL)) _dbus_assert_not_reached ("setting watch functions to NULL failed"); - + _dbus_babysitter_unref (pending_activation->babysitter); } - + dbus_free (pending_activation->service_name); dbus_free (pending_activation->exec); + dbus_free (pending_activation->systemd_service); link = _dbus_list_get_first_link (&pending_activation->entries); @@ -213,7 +218,7 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation) pending_activation->n_entries; _dbus_assert (pending_activation->activation->n_pending_activations >= 0); - + dbus_free (pending_activation); } @@ -231,17 +236,18 @@ bus_activation_entry_unref (BusActivationEntry *entry) { if (entry == NULL) /* hash table requires this */ return; - + _dbus_assert (entry->refcount > 0); entry->refcount--; - - if (entry->refcount > 0) + + if (entry->refcount > 0) return; - + dbus_free (entry->name); dbus_free (entry->exec); dbus_free (entry->user); dbus_free (entry->filename); + dbus_free (entry->systemd_service); dbus_free (entry); } @@ -253,19 +259,21 @@ update_desktop_file_entry (BusActivation *activation, BusDesktopFile *desktop_file, DBusError *error) { - char *name, *exec, *user; + char *name, *exec, *user, *exec_tmp, *systemd_service; BusActivationEntry *entry; DBusStat stat_buf; DBusString file_path; DBusError tmp_error; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + name = NULL; exec = NULL; user = NULL; + exec_tmp = NULL; entry = NULL; - + systemd_service = NULL; + dbus_error_init (&tmp_error); if (!_dbus_string_init (&file_path)) @@ -273,21 +281,21 @@ update_desktop_file_entry (BusActivation *activation, BUS_SET_OOM (error); return FALSE; } - + if (!_dbus_string_append (&file_path, s_dir->dir_c) || !_dbus_concat_dir_and_file (&file_path, filename)) { BUS_SET_OOM (error); goto failed; } - - if (!_dbus_stat (&file_path, &stat_buf, NULL)) + + if (!_dbus_stat (&file_path, &stat_buf, NULL)) { dbus_set_error (error, DBUS_ERROR_FAILED, "Can't stat the service file\n"); goto failed; } - + if (!bus_desktop_file_get_string (desktop_file, DBUS_SERVICE_SECTION, DBUS_SERVICE_NAME, @@ -298,7 +306,7 @@ update_desktop_file_entry (BusActivation *activation, if (!bus_desktop_file_get_string (desktop_file, DBUS_SERVICE_SECTION, DBUS_SERVICE_EXEC, - &exec, + &exec_tmp, error)) goto failed; @@ -325,10 +333,37 @@ update_desktop_file_entry (BusActivation *activation, } _DBUS_ASSERT_ERROR_IS_CLEAR (&tmp_error); - entry = _dbus_hash_table_lookup_string (s_dir->entries, + /* systemd service is never required */ + if (!bus_desktop_file_get_string (desktop_file, + DBUS_SERVICE_SECTION, + DBUS_SERVICE_SYSTEMD_SERVICE, + &systemd_service, &tmp_error)) + { + _DBUS_ASSERT_ERROR_IS_SET (&tmp_error); + /* if we got OOM, then exit */ + if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY)) + { + dbus_move_error (&tmp_error, error); + goto failed; + } + else + { + /* if we have error because we didn't find anything then continue */ + dbus_error_free (&tmp_error); + dbus_free (systemd_service); + systemd_service = NULL; + } + } + + _DBUS_ASSERT_ERROR_IS_CLEAR (&tmp_error); + + entry = _dbus_hash_table_lookup_string (s_dir->entries, _dbus_string_get_const_data (filename)); + + exec = strdup (_dbus_replace_install_prefix (exec_tmp)); + if (entry == NULL) /* New file */ - { + { /* FIXME we need a better-defined algorithm for which service file to * pick than "whichever one is first in the directory listing" */ @@ -338,19 +373,20 @@ update_desktop_file_entry (BusActivation *activation, "Service %s already exists in activation entry list\n", name); goto failed; } - + entry = dbus_new0 (BusActivationEntry, 1); if (entry == NULL) { BUS_SET_OOM (error); goto failed; } - + entry->name = name; entry->exec = exec; entry->user = user; + entry->systemd_service = systemd_service; entry->refcount = 1; - + entry->s_dir = s_dir; entry->filename = _dbus_strdup (_dbus_string_get_const_data (filename)); if (!entry->filename) @@ -364,7 +400,7 @@ update_desktop_file_entry (BusActivation *activation, BUS_SET_OOM (error); goto failed; } - + if (!_dbus_hash_table_insert_string (s_dir->entries, entry->filename, bus_activation_entry_ref (entry))) { /* Revert the insertion in the entries table */ @@ -386,10 +422,12 @@ update_desktop_file_entry (BusActivation *activation, name, _dbus_string_get_const_data (&file_path)); goto failed; } - + dbus_free (entry->name); dbus_free (entry->exec); dbus_free (entry->user); + dbus_free (entry->systemd_service); + entry->systemd_service = systemd_service; entry->name = name; entry->exec = exec; entry->user = user; @@ -399,15 +437,15 @@ update_desktop_file_entry (BusActivation *activation, BUS_SET_OOM (error); /* Also remove path to entries hash since we want this in sync with * the entries hash table */ - _dbus_hash_table_remove_string (entry->s_dir->entries, + _dbus_hash_table_remove_string (entry->s_dir->entries, entry->filename); bus_activation_entry_unref (entry); return FALSE; } } - + entry->mtime = stat_buf.mtime; - + _dbus_string_free (&file_path); bus_activation_entry_unref (entry); @@ -415,13 +453,14 @@ update_desktop_file_entry (BusActivation *activation, failed: dbus_free (name); - dbus_free (exec); + dbus_free (exec_tmp); dbus_free (user); + dbus_free (systemd_service); _dbus_string_free (&file_path); if (entry) bus_activation_entry_unref (entry); - + return FALSE; } @@ -439,15 +478,15 @@ check_service_file (BusActivation *activation, retval = TRUE; tmp_entry = entry; - + _dbus_string_init_const (&filename, entry->filename); - + if (!_dbus_string_init (&file_path)) { BUS_SET_OOM (error); return FALSE; } - + if (!_dbus_string_append (&file_path, entry->s_dir->dir_c) || !_dbus_concat_dir_and_file (&file_path, &filename)) { @@ -455,7 +494,7 @@ check_service_file (BusActivation *activation, retval = FALSE; goto out; } - + if (!_dbus_stat (&file_path, &stat_buf, NULL)) { _dbus_verbose ("****** Can't stat file \"%s\", removing from cache\n", @@ -468,20 +507,20 @@ check_service_file (BusActivation *activation, retval = TRUE; goto out; } - else + else { - if (stat_buf.mtime > entry->mtime) + if (stat_buf.mtime > entry->mtime) { BusDesktopFile *desktop_file; DBusError tmp_error; - + dbus_error_init (&tmp_error); - + desktop_file = bus_desktop_file_load (&file_path, &tmp_error); if (desktop_file == NULL) { _dbus_verbose ("Could not load %s: %s\n", - _dbus_string_get_const_data (&file_path), + _dbus_string_get_const_data (&file_path), tmp_error.message); if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY)) { @@ -493,10 +532,10 @@ check_service_file (BusActivation *activation, retval = TRUE; goto out; } - - /* @todo We can return OOM or a DBUS_ERROR_FAILED error + + /* @todo We can return OOM or a DBUS_ERROR_FAILED error * Handle these both better - */ + */ if (!update_desktop_file_entry (activation, entry->s_dir, &filename, desktop_file, &tmp_error)) { bus_desktop_file_free (desktop_file); @@ -510,12 +549,12 @@ check_service_file (BusActivation *activation, retval = TRUE; goto out; } - + bus_desktop_file_free (desktop_file); retval = TRUE; } } - + out: _dbus_string_free (&file_path); @@ -540,14 +579,14 @@ update_directory (BusActivation *activation, dbus_bool_t retval; BusActivationEntry *entry; DBusString full_path; - + _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + iter = NULL; desktop_file = NULL; - + _dbus_string_init_const (&dir, s_dir->dir_c); - + if (!_dbus_string_init (&filename)) { BUS_SET_OOM (error); @@ -564,24 +603,24 @@ update_directory (BusActivation *activation, retval = FALSE; /* from this point it's safe to "goto out" */ - + iter = _dbus_directory_open (&dir, error); if (iter == NULL) { _dbus_verbose ("Failed to open directory %s: %s\n", - s_dir->dir_c, + s_dir->dir_c, error ? error->message : "unknown"); goto out; } - + /* Now read the files */ dbus_error_init (&tmp_error); while (_dbus_directory_get_next_file (iter, &filename, &tmp_error)) { _dbus_assert (!dbus_error_is_set (&tmp_error)); - + _dbus_string_set_length (&full_path, 0); - + if (!_dbus_string_ends_with_c_str (&filename, ".service")) { _dbus_verbose ("Skipping non-.service file %s\n", @@ -590,21 +629,21 @@ update_directory (BusActivation *activation, } entry = _dbus_hash_table_lookup_string (s_dir->entries, _dbus_string_get_const_data (&filename)); - if (entry) /* Already has this service file in the cache */ + if (entry) /* Already has this service file in the cache */ { if (!check_service_file (activation, entry, NULL, error)) goto out; continue; } - + if (!_dbus_string_append (&full_path, s_dir->dir_c) || !_dbus_concat_dir_and_file (&full_path, &filename)) { BUS_SET_OOM (error); goto out; } - + /* New file */ desktop_file = bus_desktop_file_load (&full_path, &tmp_error); if (desktop_file == NULL) @@ -618,19 +657,19 @@ update_directory (BusActivation *activation, dbus_move_error (&tmp_error, error); goto out; } - + dbus_error_free (&tmp_error); continue; } - /* @todo We can return OOM or a DBUS_ERROR_FAILED error + /* @todo We can return OOM or a DBUS_ERROR_FAILED error * Handle these both better - */ + */ if (!update_desktop_file_entry (activation, s_dir, &filename, desktop_file, &tmp_error)) { bus_desktop_file_free (desktop_file); desktop_file = NULL; - + _dbus_verbose ("Could not add %s to activation entry list: %s\n", _dbus_string_get_const_data (&full_path), tmp_error.message); @@ -656,7 +695,7 @@ update_directory (BusActivation *activation, dbus_move_error (&tmp_error, error); goto out; } - + retval = TRUE; out: @@ -664,12 +703,12 @@ update_directory (BusActivation *activation, _DBUS_ASSERT_ERROR_IS_SET (error); else _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + if (iter != NULL) _dbus_directory_close (iter); _dbus_string_free (&filename); _dbus_string_free (&full_path); - + return retval; } @@ -872,7 +911,7 @@ bus_activation_new (BusContext *context, (DBusFreeFunction) dbus_free, (DBusFreeFunction) dbus_free); - if (activation->environment == NULL) + if (activation->environment == NULL) { BUS_SET_OOM (error); goto failed; @@ -885,9 +924,9 @@ bus_activation_new (BusContext *context, } return activation; - + failed: - bus_activation_unref (activation); + bus_activation_unref (activation); return NULL; } @@ -895,7 +934,7 @@ BusActivation * bus_activation_ref (BusActivation *activation) { _dbus_assert (activation->refcount > 0); - + activation->refcount += 1; return activation; @@ -910,13 +949,13 @@ bus_activation_unref (BusActivation *activation) if (activation->refcount > 0) return; - + dbus_free (activation->server_address); if (activation->entries) _dbus_hash_table_unref (activation->entries); if (activation->pending_activations) _dbus_hash_table_unref (activation->pending_activations); - if (activation->directories) + if (activation->directories) _dbus_hash_table_unref (activation->directories); if (activation->environment) _dbus_hash_table_unref (activation->environment); @@ -929,13 +968,13 @@ add_bus_environment (BusActivation *activation, DBusError *error) { const char *type; - + if (!bus_activation_set_environment_variable (activation, "DBUS_STARTER_ADDRESS", activation->server_address, error)) return FALSE; - + type = bus_context_get_type (activation->context); if (type != NULL) { @@ -982,13 +1021,13 @@ restore_pending (void *data) _dbus_verbose ("Restoring pending activation for service %s, has timeout = %d\n", d->pending_activation->service_name, d->pending_activation->timeout_added); - + _dbus_hash_table_insert_string_preallocated (d->pending_activation->activation->pending_activations, d->hash_entry, d->pending_activation->service_name, d->pending_activation); bus_pending_activation_ref (d->pending_activation); - + d->hash_entry = NULL; } @@ -1002,7 +1041,7 @@ free_pending_restore_data (void *data) d->hash_entry); bus_pending_activation_unref (d->pending_activation); - + dbus_free (d); } @@ -1015,12 +1054,12 @@ add_restore_pending_to_transaction (BusTransaction *transaction, d = dbus_new (RestorePendingData, 1); if (d == NULL) return FALSE; - + d->pending_activation = pending_activation; d->hash_entry = _dbus_hash_table_preallocate_entry (d->pending_activation->activation->pending_activations); - + bus_pending_activation_ref (d->pending_activation); - + if (d->hash_entry == NULL || !bus_transaction_add_cancel_hook (transaction, restore_pending, d, free_pending_restore_data)) @@ -1030,7 +1069,7 @@ add_restore_pending_to_transaction (BusTransaction *transaction, } _dbus_verbose ("Saved pending activation to be restored if the transaction fails\n"); - + return TRUE; } @@ -1045,7 +1084,7 @@ bus_activation_service_created (BusActivation *activation, DBusList *link; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + /* Check if it's a pending activation */ pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name); @@ -1057,14 +1096,14 @@ bus_activation_service_created (BusActivation *activation, { BusPendingActivationEntry *entry = link->data; DBusList *next = _dbus_list_get_next_link (&pending_activation->entries, link); - + if (dbus_connection_get_is_connected (entry->connection)) { /* Only send activation replies to regular activation requests. */ if (!entry->auto_activation) { dbus_uint32_t result; - + message = dbus_message_new_method_return (entry->activation_message); if (!message) { @@ -1073,7 +1112,7 @@ bus_activation_service_created (BusActivation *activation, } result = DBUS_START_REPLY_SUCCESS; - + if (!dbus_message_append_args (message, DBUS_TYPE_UINT32, &result, DBUS_TYPE_INVALID)) @@ -1082,18 +1121,18 @@ bus_activation_service_created (BusActivation *activation, BUS_SET_OOM (error); goto error; } - + if (!bus_transaction_send_from_driver (transaction, entry->connection, message)) { dbus_message_unref (message); BUS_SET_OOM (error); goto error; } - + dbus_message_unref (message); } } - + link = next; } @@ -1113,7 +1152,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation DBusList *link; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + /* Check if it's a pending activation */ pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, bus_service_get_name (service)); @@ -1130,7 +1169,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation if (entry->auto_activation && dbus_connection_get_is_connected (entry->connection)) { DBusConnection *addressed_recipient; - + addressed_recipient = bus_service_get_primary_owners_connection (service); /* Resume dispatching where we left off in bus_dispatch() */ @@ -1150,7 +1189,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation BUS_SET_OOM (error); goto error; } - + _dbus_hash_table_remove_string (activation->pending_activations, bus_service_get_name (service)); return TRUE; @@ -1172,19 +1211,19 @@ try_send_activation_failure (BusPendingActivation *pending_activation, BusActivation *activation; DBusList *link; BusTransaction *transaction; - + activation = pending_activation->activation; transaction = bus_transaction_new (activation->context); if (transaction == NULL) return FALSE; - + link = _dbus_list_get_first_link (&pending_activation->entries); while (link != NULL) { BusPendingActivationEntry *entry = link->data; DBusList *next = _dbus_list_get_next_link (&pending_activation->entries, link); - + if (dbus_connection_get_is_connected (entry->connection)) { if (!bus_transaction_send_error_reply (transaction, @@ -1193,12 +1232,12 @@ try_send_activation_failure (BusPendingActivation *pending_activation, entry->activation_message)) goto error; } - + link = next; } bus_transaction_execute_and_free (transaction); - + return TRUE; error: @@ -1385,7 +1424,7 @@ remove_babysitter_watch (DBusWatch *watch, void *data) { BusPendingActivation *pending_activation = data; - + _dbus_loop_remove_watch (bus_context_get_loop (pending_activation->activation->context), watch, babysitter_watch_callback, pending_activation); } @@ -1395,12 +1434,12 @@ pending_activation_timed_out (void *data) { BusPendingActivation *pending_activation = data; DBusError error; - + /* Kill the spawned process, since it sucks * (not sure this is what we want to do, but * may as well try it for now) */ - if (pending_activation->babysitter) + if (pending_activation->babysitter) _dbus_babysitter_kill_child (pending_activation->babysitter); dbus_error_init (&error); @@ -1426,7 +1465,7 @@ cancel_pending (void *data) if (pending_activation->babysitter) _dbus_babysitter_kill_child (pending_activation->babysitter); - + _dbus_hash_table_remove_string (pending_activation->activation->pending_activations, pending_activation->service_name); } @@ -1435,31 +1474,31 @@ static void free_pending_cancel_data (void *data) { BusPendingActivation *pending_activation = data; - + bus_pending_activation_unref (pending_activation); } static dbus_bool_t add_cancel_pending_to_transaction (BusTransaction *transaction, BusPendingActivation *pending_activation) -{ +{ if (!bus_transaction_add_cancel_hook (transaction, cancel_pending, pending_activation, free_pending_cancel_data)) return FALSE; - bus_pending_activation_ref (pending_activation); - + bus_pending_activation_ref (pending_activation); + _dbus_verbose ("Saved pending activation to be canceled if the transaction fails\n"); - + return TRUE; } -static dbus_bool_t +static dbus_bool_t update_service_cache (BusActivation *activation, DBusError *error) { DBusHashIter iter; - + _dbus_hash_iter_init (activation->directories, &iter); while (_dbus_hash_iter_next (&iter)) { @@ -1481,37 +1520,37 @@ update_service_cache (BusActivation *activation, DBusError *error) continue; } } - + return TRUE; } static BusActivationEntry * -activation_find_entry (BusActivation *activation, +activation_find_entry (BusActivation *activation, const char *service_name, DBusError *error) { BusActivationEntry *entry; - + entry = _dbus_hash_table_lookup_string (activation->entries, service_name); if (!entry) - { - if (!update_service_cache (activation, error)) + { + if (!update_service_cache (activation, error)) return NULL; entry = _dbus_hash_table_lookup_string (activation->entries, service_name); } - else + else { BusActivationEntry *updated_entry; - if (!check_service_file (activation, entry, &updated_entry, error)) + if (!check_service_file (activation, entry, &updated_entry, error)) return NULL; entry = updated_entry; } - if (!entry) + if (!entry) { dbus_set_error (error, DBUS_ERROR_SERVICE_UNKNOWN, "The name %s was not provided by any .service files", @@ -1633,7 +1672,7 @@ bus_activation_activate_service (BusActivation *activation, DBusHashIter iter; dbus_bool_t activated; DBusString command; - + activated = TRUE; _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -1648,7 +1687,7 @@ bus_activation_activate_service (BusActivation *activation, } entry = activation_find_entry (activation, service_name, error); - if (!entry) + if (!entry) return FALSE; /* Bypass the registry lookup if we're auto-activating, bus_dispatch would not @@ -1661,9 +1700,9 @@ bus_activation_activate_service (BusActivation *activation, if (bus_registry_lookup (bus_context_get_registry (activation->context), &service_str) != NULL) { dbus_uint32_t result; - + _dbus_verbose ("Service \"%s\" is already active\n", service_name); - + message = dbus_message_new_method_return (activation_message); if (!message) @@ -1674,7 +1713,7 @@ bus_activation_activate_service (BusActivation *activation, } result = DBUS_START_REPLY_ALREADY_RUNNING; - + if (!dbus_message_append_args (message, DBUS_TYPE_UINT32, &result, DBUS_TYPE_INVALID)) @@ -1696,7 +1735,7 @@ bus_activation_activate_service (BusActivation *activation, return retval; } } - + pending_activation_entry = dbus_new0 (BusPendingActivationEntry, 1); if (!pending_activation_entry) { @@ -1711,7 +1750,7 @@ bus_activation_activate_service (BusActivation *activation, dbus_message_ref (activation_message); pending_activation_entry->connection = connection; dbus_connection_ref (connection); - + /* Check if the service is being activated */ pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name); if (pending_activation) @@ -1719,7 +1758,7 @@ bus_activation_activate_service (BusActivation *activation, if (!_dbus_list_append (&pending_activation->entries, pending_activation_entry)) { _dbus_verbose ("Failed to append a new entry to pending activation\n"); - + BUS_SET_OOM (error); bus_pending_activation_entry_free (pending_activation_entry); return FALSE; @@ -1734,23 +1773,23 @@ bus_activation_activate_service (BusActivation *activation, if (!pending_activation) { _dbus_verbose ("Failed to create pending activation\n"); - + BUS_SET_OOM (error); - bus_pending_activation_entry_free (pending_activation_entry); + bus_pending_activation_entry_free (pending_activation_entry); return FALSE; } pending_activation->activation = activation; pending_activation->refcount = 1; - + pending_activation->service_name = _dbus_strdup (service_name); if (!pending_activation->service_name) { _dbus_verbose ("Failed to copy service name for pending activation\n"); - + BUS_SET_OOM (error); bus_pending_activation_unref (pending_activation); - bus_pending_activation_entry_free (pending_activation_entry); + bus_pending_activation_entry_free (pending_activation_entry); return FALSE; } @@ -1764,6 +1803,19 @@ bus_activation_activate_service (BusActivation *activation, return FALSE; } + if (entry->systemd_service) + { + pending_activation->systemd_service = _dbus_strdup (entry->systemd_service); + if (!pending_activation->systemd_service) + { + _dbus_verbose ("Failed to copy systemd service for pending activation\n"); + BUS_SET_OOM (error); + bus_pending_activation_unref (pending_activation); + bus_pending_activation_entry_free (pending_activation_entry); + return FALSE; + } + } + pending_activation->timeout = _dbus_timeout_new (bus_context_get_activation_timeout (activation->context), pending_activation_timed_out, @@ -1772,7 +1824,7 @@ bus_activation_activate_service (BusActivation *activation, if (!pending_activation->timeout) { _dbus_verbose ("Failed to create timeout for pending activation\n"); - + BUS_SET_OOM (error); bus_pending_activation_unref (pending_activation); bus_pending_activation_entry_free (pending_activation_entry); @@ -1786,53 +1838,53 @@ bus_activation_activate_service (BusActivation *activation, NULL)) { _dbus_verbose ("Failed to add timeout for pending activation\n"); - + BUS_SET_OOM (error); bus_pending_activation_unref (pending_activation); - bus_pending_activation_entry_free (pending_activation_entry); + bus_pending_activation_entry_free (pending_activation_entry); return FALSE; } pending_activation->timeout_added = TRUE; - + if (!_dbus_list_append (&pending_activation->entries, pending_activation_entry)) { _dbus_verbose ("Failed to add entry to just-created pending activation\n"); - + BUS_SET_OOM (error); bus_pending_activation_unref (pending_activation); - bus_pending_activation_entry_free (pending_activation_entry); + bus_pending_activation_entry_free (pending_activation_entry); return FALSE; } pending_activation->n_entries += 1; pending_activation->activation->n_pending_activations += 1; - + activated = FALSE; _dbus_hash_iter_init (activation->pending_activations, &iter); while (_dbus_hash_iter_next (&iter)) { BusPendingActivation *p = _dbus_hash_iter_get_value (&iter); - - if (strcmp (p->exec, entry->exec) == 0) + + if (strcmp (p->exec, entry->exec) == 0) { activated = TRUE; break; } } - + if (!_dbus_hash_table_insert_string (activation->pending_activations, pending_activation->service_name, pending_activation)) { _dbus_verbose ("Failed to put pending activation in hash table\n"); - + BUS_SET_OOM (error); bus_pending_activation_unref (pending_activation); return FALSE; } } - + if (!add_cancel_pending_to_transaction (transaction, pending_activation)) { _dbus_verbose ("Failed to add pending activation cancel hook to transaction\n"); @@ -1842,10 +1894,99 @@ bus_activation_activate_service (BusActivation *activation, return FALSE; } - + if (activated) return TRUE; + if (bus_context_get_systemd_activation (activation->context)) + { + if (strcmp (service_name, "org.freedesktop.systemd1") == 0) + /* systemd itself is missing apparently. That can happen + only during early startup. Let's just wait until systemd + connects to us and do nothing. */ + return TRUE; + + if (entry->systemd_service) + { + BusTransaction *activation_transaction; + DBusString service_string; + BusService *service; + BusRegistry *registry; + + /* OK, we have a systemd service configured for this entry, + hence let's enqueue an activation request message. This + is implemented as a directed signal, not a method call, + for three reasons: 1) we don't expect a response on + success, where we just expect a name appearing on the + bus; 2) at this time the systemd service might not yet + have connected, so we wouldn't know the message serial at + this point to set up a pending call; 3) it is ugly if the + bus suddenly becomes the caller of a remote method. */ + + message = dbus_message_new_signal (DBUS_PATH_DBUS, + "org.freedesktop.systemd1.Activator", + "ActivationRequest"); + if (!message) + { + _dbus_verbose ("No memory to create activation message\n"); + BUS_SET_OOM (error); + return FALSE; + } + + if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS) || + !dbus_message_set_destination (message, "org.freedesktop.systemd1") || + !dbus_message_append_args (message, + DBUS_TYPE_STRING, &entry->systemd_service, + DBUS_TYPE_INVALID)) + { + _dbus_verbose ("No memory to set args of activation message\n"); + dbus_message_unref (message); + BUS_SET_OOM (error); + return FALSE; + } + + /* Create our transaction */ + activation_transaction = bus_transaction_new (activation->context); + if (activation_transaction == NULL) + { + _dbus_verbose ("No memory to create activation transaction\n"); + dbus_message_unref (message); + BUS_SET_OOM (error); + return FALSE; + } + + /* Check whether systemd is already connected */ + registry = bus_connection_get_registry (connection); + _dbus_string_init_const (&service_string, "org.freedesktop.systemd1"); + service = bus_registry_lookup (registry, &service_string); + + if (service != NULL) + /* Wonderful, systemd is connected, let's just send the msg */ + retval = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service), + message, error); + else + /* systemd is not around, let's "activate" it. */ + retval = bus_activation_activate_service (activation, connection, activation_transaction, TRUE, + message, "org.freedesktop.systemd1", error); + + dbus_message_unref (message); + + if (!retval) + { + _DBUS_ASSERT_ERROR_IS_SET (error); + _dbus_verbose ("failed to send activation message: %s\n", error->name); + bus_transaction_cancel_and_free (activation_transaction); + return FALSE; + } + + bus_transaction_execute_and_free (activation_transaction); + return TRUE; + } + + /* OK, we have no configured systemd service, hence let's + proceed with traditional activation. */ + } + /* use command as system and session different */ if (!_dbus_string_init (&command)) { @@ -1901,7 +2042,7 @@ bus_activation_activate_service (BusActivation *activation, { _dbus_verbose ("Failed to parse command line: %s\n", entry->exec); _DBUS_ASSERT_ERROR_IS_SET (error); - + _dbus_hash_table_remove_string (activation->pending_activations, pending_activation->service_name); @@ -1929,7 +2070,7 @@ bus_activation_activate_service (BusActivation *activation, _dbus_verbose ("Spawning %s ...\n", argv[0]); if (!_dbus_spawn_async_with_babysitter (&pending_activation->babysitter, argv, envp, - NULL, activation, + NULL, activation, error)) { _dbus_verbose ("Failed to spawn child\n"); @@ -1944,7 +2085,7 @@ bus_activation_activate_service (BusActivation *activation, envp = NULL; _dbus_assert (pending_activation->babysitter != NULL); - + if (!_dbus_babysitter_set_watch_functions (pending_activation->babysitter, add_babysitter_watch, remove_babysitter_watch, @@ -1956,7 +2097,7 @@ bus_activation_activate_service (BusActivation *activation, _dbus_verbose ("Failed to set babysitter watch functions\n"); return FALSE; } - + return TRUE; } @@ -2003,7 +2144,47 @@ bus_activation_list_services (BusActivation *activation, return FALSE; } - + +dbus_bool_t +dbus_activation_systemd_failure (BusActivation *activation, + DBusMessage *message) +{ + DBusError error; + const char *code, *str, *unit = NULL; + + dbus_error_init(&error); + + /* This is called whenever the systemd activator sent us a + response. We'll invalidate all pending activations that match the + unit name. */ + + if (dbus_message_get_args (message, &error, + DBUS_TYPE_STRING, &unit, + DBUS_TYPE_STRING, &code, + DBUS_TYPE_STRING, &str, + DBUS_TYPE_INVALID)) + dbus_set_error(&error, code, str); + + if (unit) + { + DBusHashIter iter; + + _dbus_hash_iter_init (activation->pending_activations, + &iter); + + while (_dbus_hash_iter_next (&iter)) + { + BusPendingActivation *p = _dbus_hash_iter_get_value (&iter); + + if (p->systemd_service && strcmp (p->systemd_service, unit) == 0) + pending_activation_failed(p, &error); + } + } + + dbus_error_free(&error); + + return TRUE; +} #ifdef DBUS_BUILD_TESTS @@ -2019,8 +2200,8 @@ bus_activation_list_services (BusActivation *activation, static dbus_bool_t test_create_service_file (DBusString *dir, - const char *filename, - const char *name, + const char *filename, + const char *name, const char *exec) { DBusString file_name, full_path; @@ -2039,7 +2220,7 @@ test_create_service_file (DBusString *dir, ret_val = FALSE; goto out; } - + file = fopen (_dbus_string_get_const_data (&full_path), "w"); if (!file) { @@ -2060,9 +2241,9 @@ test_remove_service_file (DBusString *dir, const char *filename) { DBusString file_name, full_path; dbus_bool_t ret_val; - + ret_val = TRUE; - + _dbus_string_init_const (&file_name, filename); if (!_dbus_string_init (&full_path)) @@ -2092,9 +2273,9 @@ test_remove_directory (DBusString *dir) DBusDirIter *iter; DBusString filename, full_path; dbus_bool_t ret_val; - + ret_val = TRUE; - + if (!_dbus_string_init (&filename)) return FALSE; @@ -2103,15 +2284,15 @@ test_remove_directory (DBusString *dir) _dbus_string_free (&filename); return FALSE; } - + iter = _dbus_directory_open (dir, NULL); if (iter == NULL) { ret_val = FALSE; goto out; } - - while (_dbus_directory_get_next_file (iter, &filename, NULL)) + + while (_dbus_directory_get_next_file (iter, &filename, NULL)) { if (!test_remove_service_file (dir, _dbus_string_get_const_data (&filename))) { @@ -2138,13 +2319,13 @@ static dbus_bool_t init_service_reload_test (DBusString *dir) { DBusStat stat_buf; - + if (!_dbus_stat (dir, &stat_buf, NULL)) { if (!_dbus_create_directory (dir, NULL)) return FALSE; } - else + else { if (!test_remove_directory (dir)) return FALSE; @@ -2169,7 +2350,7 @@ cleanup_service_reload_test (DBusString *dir) return TRUE; } -typedef struct +typedef struct { BusActivation *activation; const char *service_name; @@ -2183,16 +2364,16 @@ check_func (void *data) BusActivationEntry *entry; DBusError error; dbus_bool_t ret_val; - + ret_val = TRUE; d = data; - + dbus_error_init (&error); - + entry = activation_find_entry (d->activation, d->service_name, &error); if (entry == NULL) { - if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY)) + if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY)) { ret_val = TRUE; } @@ -2201,10 +2382,10 @@ check_func (void *data) if (d->expecting_find) ret_val = FALSE; } - + dbus_error_free (&error); } - else + else { if (!d->expecting_find) ret_val = FALSE; @@ -2223,7 +2404,7 @@ do_test (const char *description, dbus_bool_t oom_test, CheckData *data) else err = !check_func (data); - if (err) + if (err) _dbus_assert_not_reached ("Test failed"); return TRUE; @@ -2236,19 +2417,19 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test) DBusString address; DBusList *directories; CheckData d; - + directories = NULL; _dbus_string_init_const (&address, ""); - + if (!_dbus_list_append (&directories, _dbus_string_get_data (dir))) - return FALSE; + return FALSE; activation = bus_activation_new (NULL, &address, &directories, NULL); if (!activation) return FALSE; d.activation = activation; - + /* Check for existing service file */ d.expecting_find = TRUE; d.service_name = SERVICE_NAME_1; @@ -2269,10 +2450,10 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test) d.expecting_find = TRUE; d.service_name = SERVICE_NAME_2; - + if (!do_test ("Added service file", oom_test, &d)) return FALSE; - + /* Check for removed service file */ if (!test_remove_service_file (dir, SERVICE_FILE_2)) return FALSE; @@ -2282,9 +2463,9 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test) if (!do_test ("Removed service file", oom_test, &d)) return FALSE; - + /* Check for updated service file */ - + _dbus_sleep_milliseconds (1000); /* Sleep a second to make sure the mtime is updated */ if (!test_create_service_file (dir, SERVICE_FILE_1, SERVICE_NAME_3, "exec-3")) @@ -2300,7 +2481,7 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test) d.service_name = SERVICE_NAME_1; if (!do_test ("Updated service file, part 2", oom_test, &d)) - return FALSE; + return FALSE; bus_activation_unref (activation); _dbus_list_clear (&directories); @@ -2315,36 +2496,36 @@ bus_activation_service_reload_test (const DBusString *test_data_dir) if (!_dbus_string_init (&directory)) return FALSE; - + if (!_dbus_string_append (&directory, _dbus_get_tmpdir())) return FALSE; - + if (!_dbus_string_append (&directory, "/dbus-reload-test-") || !_dbus_generate_random_ascii (&directory, 6)) { return FALSE; } - + /* Do normal tests */ if (!init_service_reload_test (&directory)) _dbus_assert_not_reached ("could not initiate service reload test"); - + if (!do_service_reload_test (&directory, FALSE)) ; /* Do nothing? */ - + /* Do OOM tests */ if (!init_service_reload_test (&directory)) _dbus_assert_not_reached ("could not initiate service reload test"); - + if (!do_service_reload_test (&directory, TRUE)) ; /* Do nothing? */ - + /* Cleanup test directory */ if (!cleanup_service_reload_test (&directory)) return FALSE; - + _dbus_string_free (&directory); - + return TRUE; } diff --git a/bus/activation.h b/bus/activation.h index 03bfed28..97f25b1f 100644 --- a/bus/activation.h +++ b/bus/activation.h @@ -4,7 +4,7 @@ * Copyright (C) 2003 CodeFactory AB * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -14,7 +14,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA @@ -57,6 +57,8 @@ dbus_bool_t bus_activation_service_created (BusActivation *activation, dbus_bool_t bus_activation_list_services (BusActivation *registry, char ***listp, int *array_len); +dbus_bool_t dbus_activation_systemd_failure (BusActivation *activation, + DBusMessage *message); dbus_bool_t bus_activation_send_pending_auto_activation_messages (BusActivation *activation, BusService *service, @@ -64,5 +66,4 @@ dbus_bool_t bus_activation_send_pending_auto_activation_messages (BusActivati DBusError *error); - #endif /* BUS_ACTIVATION_H */ @@ -4,7 +4,7 @@ * Copyright (C) 2003, 2004 Red Hat, Inc. * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -14,13 +14,14 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ +#include <config.h> #include "bus.h" #include "activation.h" #include "connection.h" @@ -35,6 +36,9 @@ #include <dbus/dbus-hash.h> #include <dbus/dbus-credentials.h> #include <dbus/dbus-internals.h> +#ifdef DBUS_CYGWIN +#include <signal.h> +#endif struct BusContext { @@ -58,6 +62,8 @@ struct BusContext unsigned int fork : 1; unsigned int syslog : 1; unsigned int keep_umask : 1; + unsigned int allow_anonymous : 1; + unsigned int systemd_activation : 1; }; static dbus_int32_t server_data_slot = -1; @@ -74,7 +80,7 @@ server_get_context (DBusServer *server) { BusContext *context; BusServerData *bd; - + if (!dbus_server_allocate_data_slot (&server_data_slot)) return NULL; @@ -101,7 +107,7 @@ server_watch_callback (DBusWatch *watch, * if the code in activation.c for the babysitter * watch handler is fixed. */ - + return dbus_watch_handle (watch, condition); } @@ -111,9 +117,9 @@ add_server_watch (DBusWatch *watch, { DBusServer *server = data; BusContext *context; - + context = server_get_context (server); - + return _dbus_loop_add_watch (context->loop, watch, server_watch_callback, server, NULL); @@ -125,9 +131,9 @@ remove_server_watch (DBusWatch *watch, { DBusServer *server = data; BusContext *context; - + context = server_get_context (server); - + _dbus_loop_remove_watch (context->loop, watch, server_watch_callback, server); } @@ -147,7 +153,7 @@ add_server_timeout (DBusTimeout *timeout, { DBusServer *server = data; BusContext *context; - + context = server_get_context (server); return _dbus_loop_add_timeout (context->loop, @@ -160,9 +166,9 @@ remove_server_timeout (DBusTimeout *timeout, { DBusServer *server = data; BusContext *context; - + context = server_get_context (server); - + _dbus_loop_remove_timeout (context->loop, timeout, server_timeout_callback, server); } @@ -173,7 +179,7 @@ new_connection_callback (DBusServer *server, void *data) { BusContext *context = data; - + if (!bus_connections_setup_connection (context->connections, new_connection)) { _dbus_verbose ("No memory to setup new connection\n"); @@ -191,15 +197,24 @@ new_connection_callback (DBusServer *server, dbus_connection_set_max_message_size (new_connection, context->limits.max_message_size); - + + dbus_connection_set_max_received_unix_fds (new_connection, + context->limits.max_incoming_unix_fds); + + dbus_connection_set_max_message_unix_fds (new_connection, + context->limits.max_message_unix_fds); + + dbus_connection_set_allow_anonymous (new_connection, + context->allow_anonymous); + /* on OOM, we won't have ref'd the connection so it will die. */ } static void free_server_data (void *data) { - BusServerData *bd = data; - + BusServerData *bd = data; + dbus_free (bd); } @@ -222,17 +237,17 @@ setup_server (BusContext *context, } bd->context = context; - + if (!dbus_server_set_auth_mechanisms (server, (const char**) auth_mechanisms)) { BUS_SET_OOM (error); return FALSE; } - + dbus_server_set_new_connection_function (server, new_connection_callback, context, NULL); - + if (!dbus_server_set_watch_functions (server, add_server_watch, remove_server_watch, @@ -253,7 +268,7 @@ setup_server (BusContext *context, BUS_SET_OOM (error); return FALSE; } - + return TRUE; } @@ -262,9 +277,11 @@ setup_server (BusContext *context, * when config files are reloaded. */ static dbus_bool_t -process_config_first_time_only (BusContext *context, - BusConfigParser *parser, - DBusError *error) +process_config_first_time_only (BusContext *context, + BusConfigParser *parser, + const DBusString *address, + dbus_bool_t systemd_activation, + DBusError *error) { DBusString log_prefix; DBusList *link; @@ -280,6 +297,8 @@ process_config_first_time_only (BusContext *context, retval = FALSE; auth_mechanisms = NULL; + context->systemd_activation = systemd_activation; + /* Check for an existing pid file. Of course this is a race; * we'd have to use fcntl() locks on the pid file to * avoid that. But we want to check for the pid file @@ -290,15 +309,34 @@ process_config_first_time_only (BusContext *context, { DBusString u; DBusStat stbuf; - + _dbus_string_init_const (&u, pidfile); if (_dbus_stat (&u, &stbuf, NULL)) { +#ifdef DBUS_CYGWIN + DBusString p; + long /* int */ pid; + + _dbus_string_init (&p); + _dbus_file_get_contents(&p, &u, NULL); + _dbus_string_parse_int(&p, 0, &pid, NULL); + _dbus_string_free(&p); + + if ((kill((int)pid, 0))) { + dbus_set_error(NULL, DBUS_ERROR_FILE_EXISTS, + "pid %ld not running, removing stale pid file\n", + pid); + _dbus_delete_file(&u, NULL); + } else { +#endif dbus_set_error (error, DBUS_ERROR_FAILED, "The pid file \"%s\" exists, if the message bus is not running, remove this file", pidfile); goto failed; +#ifdef DBUS_CYGWIN + } +#endif } } @@ -374,35 +412,58 @@ process_config_first_time_only (BusContext *context, } /* Listen on our addresses */ - - addresses = bus_config_parser_get_addresses (parser); - - link = _dbus_list_get_first_link (addresses); - while (link != NULL) + + if (address) { DBusServer *server; - - server = dbus_server_listen (link->data, error); + + server = dbus_server_listen (_dbus_string_get_const_data(address), error); if (server == NULL) - { - _DBUS_ASSERT_ERROR_IS_SET (error); - goto failed; - } + { + _DBUS_ASSERT_ERROR_IS_SET (error); + goto failed; + } else if (!setup_server (context, server, auth_mechanisms, error)) - { - _DBUS_ASSERT_ERROR_IS_SET (error); - goto failed; - } + { + _DBUS_ASSERT_ERROR_IS_SET (error); + goto failed; + } if (!_dbus_list_append (&context->servers, server)) goto oom; + } + else + { + addresses = bus_config_parser_get_addresses (parser); - link = _dbus_list_get_next_link (addresses, link); + link = _dbus_list_get_first_link (addresses); + while (link != NULL) + { + DBusServer *server; + + server = dbus_server_listen (link->data, error); + if (server == NULL) + { + _DBUS_ASSERT_ERROR_IS_SET (error); + goto failed; + } + else if (!setup_server (context, server, auth_mechanisms, error)) + { + _DBUS_ASSERT_ERROR_IS_SET (error); + goto failed; + } + + if (!_dbus_list_append (&context->servers, server)) + goto oom; + + link = _dbus_list_get_next_link (addresses, link); + } } context->fork = bus_config_parser_get_fork (parser); context->syslog = bus_config_parser_get_syslog (parser); context->keep_umask = bus_config_parser_get_keep_umask (parser); + context->allow_anonymous = bus_config_parser_get_allow_anonymous (parser); _DBUS_ASSERT_ERROR_IS_CLEAR (error); retval = TRUE; @@ -436,7 +497,7 @@ process_config_every_time (BusContext *context, char *addr; const char *servicehelper; char *s; - + dbus_bool_t retval; _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -541,7 +602,7 @@ process_config_every_time (BusContext *context, failed: _dbus_string_free (&full_address); - + if (addr) dbus_free (addr); @@ -616,6 +677,8 @@ bus_context_new (const DBusString *config_file, ForceForkSetting force_fork, DBusPipe *print_addr_pipe, DBusPipe *print_pid_pipe, + const DBusString *address, + dbus_bool_t systemd_activation, DBusError *error) { DBusString log_prefix; @@ -669,8 +732,8 @@ bus_context_new (const DBusString *config_file, _DBUS_ASSERT_ERROR_IS_SET (error); goto failed; } - - if (!process_config_first_time_only (context, parser, error)) + + if (!process_config_first_time_only (context, parser, address, systemd_activation, error)) { _DBUS_ASSERT_ERROR_IS_SET (error); goto failed; @@ -680,7 +743,7 @@ bus_context_new (const DBusString *config_file, _DBUS_ASSERT_ERROR_IS_SET (error); goto failed; } - + /* we need another ref of the server data slot for the context * to own */ @@ -697,14 +760,14 @@ bus_context_new (const DBusString *config_file, DBusString addr; const char *a = bus_context_get_address (context); int bytes; - + _dbus_assert (a != NULL); if (!_dbus_string_init (&addr)) { BUS_SET_OOM (error); goto failed; } - + if (!_dbus_string_append (&addr, a) || !_dbus_string_append (&addr, "\n")) { @@ -728,10 +791,10 @@ bus_context_new (const DBusString *config_file, if (!_dbus_pipe_is_stdout_or_stderr (print_addr_pipe)) _dbus_pipe_close (print_addr_pipe, NULL); - + _dbus_string_free (&addr); } - + context->connections = bus_connections_new (context); if (context->connections == NULL) { @@ -768,8 +831,8 @@ bus_context_new (const DBusString *config_file, if ((force_fork != FORK_NEVER && context->fork) || force_fork == FORK_ALWAYS) { _dbus_verbose ("Forking and becoming daemon\n"); - - if (!_dbus_become_daemon (context->pidfile ? &u : NULL, + + if (!_dbus_become_daemon (context->pidfile ? &u : NULL, print_pid_pipe, error, context->keep_umask)) @@ -781,7 +844,7 @@ bus_context_new (const DBusString *config_file, else { _dbus_verbose ("Fork not requested\n"); - + /* Need to write PID file and to PID pipe for ourselves, * not for the child process. This is a no-op if the pidfile * is NULL and print_pid_pipe is NULL. @@ -817,7 +880,7 @@ bus_context_new (const DBusString *config_file, bus_config_parser_unref (parser); parser = NULL; } - + /* Here we change our credentials if required, * as soon as we've set up our sockets and pidfile */ @@ -836,10 +899,10 @@ bus_context_new (const DBusString *config_file, } dbus_server_free_data_slot (&server_data_slot); - + return context; - - failed: + + failed: if (parser != NULL) bus_config_parser_unref (parser); if (context != NULL) @@ -847,7 +910,7 @@ bus_context_new (const DBusString *config_file, if (server_data_slot >= 0) dbus_server_free_data_slot (&server_data_slot); - + return NULL; } @@ -877,7 +940,7 @@ bus_context_reload_config (BusContext *context, _DBUS_ASSERT_ERROR_IS_SET (error); goto failed; } - + if (!process_config_every_time (context, parser, TRUE, error)) { _DBUS_ASSERT_ERROR_IS_SET (error); @@ -906,19 +969,19 @@ shutdown_server (BusContext *context, if (server == NULL || !dbus_server_get_is_connected (server)) return; - + if (!dbus_server_set_watch_functions (server, NULL, NULL, NULL, context, NULL)) _dbus_assert_not_reached ("setting watch functions to NULL failed"); - + if (!dbus_server_set_timeout_functions (server, NULL, NULL, NULL, context, NULL)) _dbus_assert_not_reached ("setting timeout functions to NULL failed"); - + dbus_server_disconnect (server); } @@ -954,9 +1017,9 @@ bus_context_unref (BusContext *context) if (context->refcount == 0) { DBusList *link; - + _dbus_verbose ("Finalizing bus context %p\n", context); - + bus_context_shutdown (context); if (context->connections) @@ -964,13 +1027,13 @@ bus_context_unref (BusContext *context) bus_connections_unref (context->connections); context->connections = NULL; } - + if (context->registry) { bus_registry_unref (context->registry); context->registry = NULL; } - + if (context->activation) { bus_activation_unref (context->activation); @@ -981,7 +1044,7 @@ bus_context_unref (BusContext *context) while (link != NULL) { dbus_server_unref (link->data); - + link = _dbus_list_get_next_link (&context->servers, link); } _dbus_list_clear (&context->servers); @@ -991,7 +1054,7 @@ bus_context_unref (BusContext *context) bus_policy_unref (context->policy); context->policy = NULL; } - + if (context->loop) { _dbus_loop_unref (context->loop); @@ -1021,7 +1084,7 @@ bus_context_unref (BusContext *context) */ _dbus_delete_file (&u, NULL); - dbus_free (context->pidfile); + dbus_free (context->pidfile); } dbus_free (context); @@ -1048,6 +1111,12 @@ bus_context_get_servicehelper (BusContext *context) return context->servicehelper; } +dbus_bool_t +bus_context_get_systemd_activation (BusContext *context) +{ + return context->systemd_activation; +} + BusRegistry* bus_context_get_registry (BusContext *context) { @@ -1117,7 +1186,7 @@ bus_context_create_client_policy (BusContext *context, int bus_context_get_activation_timeout (BusContext *context) { - + return context->limits.activation_timeout; } @@ -1242,10 +1311,10 @@ bus_context_check_security_policy (BusContext *context, const char *sender_name; const char *sender_loginfo; const char *proposed_recipient_loginfo; - + type = dbus_message_get_type (message); dest = dbus_message_get_destination (message); - + /* dispatch.c was supposed to ensure these invariants */ _dbus_assert (dest != NULL || type == DBUS_MESSAGE_TYPE_SIGNAL || @@ -1265,12 +1334,12 @@ bus_context_check_security_policy (BusContext *context, sender_name = NULL; sender_loginfo = "(bus)"; } - + if (proposed_recipient != NULL) proposed_recipient_loginfo = bus_connection_get_loginfo (proposed_recipient); else proposed_recipient_loginfo = "bus"; - + switch (type) { case DBUS_MESSAGE_TYPE_METHOD_CALL: @@ -1278,19 +1347,19 @@ bus_context_check_security_policy (BusContext *context, case DBUS_MESSAGE_TYPE_METHOD_RETURN: case DBUS_MESSAGE_TYPE_ERROR: break; - + default: _dbus_verbose ("security check disallowing message of unknown type %d\n", type); dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED, "Message bus will not accept messages of unknown type\n"); - + return FALSE; } requested_reply = FALSE; - + if (sender != NULL) { /* First verify the SELinux access controls. If allowed then @@ -1323,12 +1392,12 @@ bus_context_check_security_policy (BusContext *context, return FALSE; } - + if (bus_connection_is_active (sender)) { sender_policy = bus_connection_get_policy (sender); _dbus_assert (sender_policy != NULL); - + /* Fill in requested_reply variable with TRUE if this is a * reply and the reply was pending. */ @@ -1337,8 +1406,8 @@ bus_context_check_security_policy (BusContext *context, if (proposed_recipient != NULL /* not to the bus driver */ && addressed_recipient == proposed_recipient /* not eavesdropping */) { - DBusError error2; - + DBusError error2; + dbus_error_init (&error2); requested_reply = bus_connections_check_reply (bus_connection_get_connections (sender), transaction, @@ -1374,7 +1443,7 @@ bus_context_check_security_policy (BusContext *context, dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED, "Client tried to send a message other than %s without being registered", "Hello"); - + return FALSE; } } @@ -1393,7 +1462,7 @@ bus_context_check_security_policy (BusContext *context, _dbus_assert ((sender != NULL && sender_policy != NULL) || (sender == NULL && sender_policy == NULL)); - + if (proposed_recipient != NULL) { /* only the bus driver can send to an inactive recipient (as it @@ -1418,11 +1487,11 @@ bus_context_check_security_policy (BusContext *context, } else recipient_policy = NULL; - + _dbus_assert ((proposed_recipient != NULL && recipient_policy != NULL) || (proposed_recipient != NULL && sender == NULL && recipient_policy == NULL) || (proposed_recipient == NULL && recipient_policy == NULL)); - + log = FALSE; if (sender_policy && !bus_client_policy_check_can_send (sender_policy, @@ -1482,7 +1551,7 @@ bus_context_check_security_policy (BusContext *context, dbus_message_get_member (message) : "(unset)", dbus_message_get_error_name (message) ? dbus_message_get_error_name (message) : "(unset)", - requested_reply, + requested_reply, dest ? dest : DBUS_SERVICE_DBUS, proposed_recipient_loginfo); @@ -1535,13 +1604,13 @@ bus_context_check_security_policy (BusContext *context, /* See if limits on size have been exceeded */ if (proposed_recipient && - dbus_connection_get_outgoing_size (proposed_recipient) > - context->limits.max_outgoing_bytes) + ((dbus_connection_get_outgoing_size (proposed_recipient) > context->limits.max_outgoing_bytes) || + (dbus_connection_get_outgoing_unix_fds (proposed_recipient) > context->limits.max_outgoing_unix_fds))) { dbus_set_error (error, DBUS_ERROR_LIMITS_EXCEEDED, "The destination service \"%s\" has a full message queue", dest ? dest : (proposed_recipient ? - bus_connection_get_name (proposed_recipient) : + bus_connection_get_name (proposed_recipient) : DBUS_SERVICE_DBUS)); _dbus_verbose ("security policy disallowing message due to full message queue\n"); return FALSE; @@ -1552,7 +1621,7 @@ bus_context_check_security_policy (BusContext *context, * connection). Only the addressed recipient may reply. */ if (type == DBUS_MESSAGE_TYPE_METHOD_CALL && - sender && + sender && addressed_recipient && addressed_recipient == proposed_recipient && /* not eavesdropping */ !bus_connections_expect_reply (bus_connection_get_connections (sender), @@ -1563,7 +1632,7 @@ bus_context_check_security_policy (BusContext *context, _dbus_verbose ("Failed to record reply expectation or problem with the message expecting a reply\n"); return FALSE; } - + _dbus_verbose ("security policy allowing message\n"); return TRUE; } @@ -4,7 +4,7 @@ * Copyright (C) 2003 Red Hat, Inc. * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -14,7 +14,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA @@ -24,11 +24,11 @@ #ifndef BUS_BUS_H #define BUS_BUS_H -#include <config.h> - #include <dbus/dbus.h> #include <dbus/dbus-string.h> #include <dbus/dbus-mainloop.h> +#include <dbus/dbus-pipe.h> +#include <dbus/dbus-sysdeps.h> typedef struct BusActivation BusActivation; typedef struct BusConnections BusConnections; @@ -47,8 +47,11 @@ typedef struct BusMatchRule BusMatchRule; typedef struct { long max_incoming_bytes; /**< How many incoming message bytes for a single connection */ + long max_incoming_unix_fds; /**< How many incoming message unix fds for a single connection */ long max_outgoing_bytes; /**< How many outgoing bytes can be queued for a single connection */ + long max_outgoing_unix_fds; /**< How many outgoing unix fds can be queued for a single connection */ long max_message_size; /**< Max size of a single message in bytes */ + long max_message_unix_fds; /**< Max number of unix fds of a single message*/ int activation_timeout; /**< How long to wait for an activation to time out */ int auth_timeout; /**< How long to wait for an authentication to time out */ int max_completed_connections; /**< Max number of authorized connections */ @@ -72,6 +75,8 @@ BusContext* bus_context_new (const DBusStri ForceForkSetting force_fork, DBusPipe *print_addr_pipe, DBusPipe *print_pid_pipe, + const DBusString *address, + dbus_bool_t systemd_activation, DBusError *error); dbus_bool_t bus_context_reload_config (BusContext *context, DBusError *error); @@ -83,6 +88,7 @@ dbus_bool_t bus_context_get_id (BusContext const char* bus_context_get_type (BusContext *context); const char* bus_context_get_address (BusContext *context); const char* bus_context_get_servicehelper (BusContext *context); +dbus_bool_t bus_context_get_systemd_activation (BusContext *context); BusRegistry* bus_context_get_registry (BusContext *context); BusConnections* bus_context_get_connections (BusContext *context); BusActivation* bus_context_get_activation (BusContext *context); diff --git a/bus/config-loader-expat.c b/bus/config-loader-expat.c index c0620aed..b571fda3 100644 --- a/bus/config-loader-expat.c +++ b/bus/config-loader-expat.c @@ -21,16 +21,12 @@ * */ +#include <config.h> #include "config-parser.h" #include <dbus/dbus-internals.h> #include <expat.h> -static XML_Memory_Handling_Suite memsuite = -{ - dbus_malloc, - dbus_realloc, - dbus_free -}; +static XML_Memory_Handling_Suite memsuite; typedef struct { @@ -195,7 +191,11 @@ bus_config_load (const DBusString *file, _dbus_string_free (&context.content); return NULL; } - + + memsuite.malloc_fcn = dbus_malloc; + memsuite.realloc_fcn = dbus_realloc; + memsuite.free_fcn = dbus_free; + expat = XML_ParserCreate_MM ("UTF-8", &memsuite, NULL); if (expat == NULL) { diff --git a/bus/config-loader-libxml.c b/bus/config-loader-libxml.c index 3d82a633..c73a1815 100644 --- a/bus/config-loader-libxml.c +++ b/bus/config-loader-libxml.c @@ -21,6 +21,7 @@ * */ +#include <config.h> #include "config-parser.h" #include <dbus/dbus-internals.h> #include <libxml/xmlreader.h> diff --git a/bus/config-parser-common.c b/bus/config-parser-common.c index 54a67468..f8d75be7 100644 --- a/bus/config-parser-common.c +++ b/bus/config-parser-common.c @@ -21,6 +21,7 @@ * */ +#include <config.h> #include <dbus/dbus-internals.h> #include <string.h> @@ -122,6 +123,10 @@ bus_config_parser_element_name_to_type (const char *name) { return ELEMENT_KEEP_UMASK; } + else if (strcmp (name, "allow_anonymous") == 0) + { + return ELEMENT_ALLOW_ANONYMOUS; + } return ELEMENT_NONE; } @@ -174,6 +179,8 @@ bus_config_parser_element_type_to_name (ElementType type) return "syslog"; case ELEMENT_KEEP_UMASK: return "keep_umask"; + case ELEMENT_ALLOW_ANONYMOUS: + return "allow_anonymous"; } _dbus_assert_not_reached ("bad element type"); diff --git a/bus/config-parser-common.h b/bus/config-parser-common.h index 8451ce08..da745606 100644 --- a/bus/config-parser-common.h +++ b/bus/config-parser-common.h @@ -24,8 +24,6 @@ #ifndef BUS_CONFIG_PARSER_COMMON_H #define BUS_CONFIG_PARSER_COMMON_H -#include <config.h> - typedef enum { ELEMENT_NONE, @@ -48,8 +46,9 @@ typedef enum ELEMENT_ASSOCIATE, ELEMENT_STANDARD_SESSION_SERVICEDIRS, ELEMENT_STANDARD_SYSTEM_SERVICEDIRS, + ELEMENT_KEEP_UMASK, ELEMENT_SYSLOG, - ELEMENT_KEEP_UMASK + ELEMENT_ALLOW_ANONYMOUS } ElementType; ElementType bus_config_parser_element_name_to_type (const char *element_name); diff --git a/bus/config-parser-trivial.c b/bus/config-parser-trivial.c index fd016a84..59ec2ba2 100644 --- a/bus/config-parser-trivial.c +++ b/bus/config-parser-trivial.c @@ -22,6 +22,7 @@ * */ +#include <config.h> #include "config-parser-common.h" #include "config-parser-trivial.h" #include "utils.h" @@ -131,6 +132,25 @@ bus_config_parser_unref (BusConfigParser *parser) } dbus_bool_t +bus_config_parser_check_doctype (BusConfigParser *parser, + const char *doctype, + DBusError *error) +{ + _DBUS_ASSERT_ERROR_IS_CLEAR (error); + + if (strcmp (doctype, "busconfig") != 0) + { + dbus_set_error (error, + DBUS_ERROR_FAILED, + "Configuration file has the wrong document type %s", + doctype); + return FALSE; + } + else + return TRUE; +} + +dbus_bool_t bus_config_parser_start_element (BusConfigParser *parser, const char *element_name, const char **attribute_names, diff --git a/bus/config-parser-trivial.h b/bus/config-parser-trivial.h index ce542bfb..31ddef6b 100644 --- a/bus/config-parser-trivial.h +++ b/bus/config-parser-trivial.h @@ -24,8 +24,6 @@ #ifndef BUS_CONFIG_PARSER_TRIVIAL_H #define BUS_CONFIG_PARSER_TRIVIAL_H -#include <config.h> - #include <dbus/dbus.h> #include <dbus/dbus-string.h> #include <dbus/dbus-list.h> @@ -41,6 +39,9 @@ BusConfigParser* bus_config_parser_new (const DBusString *basedir, BusConfigParser* bus_config_parser_ref (BusConfigParser *parser); void bus_config_parser_unref (BusConfigParser *parser); +dbus_bool_t bus_config_parser_check_doctype (BusConfigParser *parser, + const char *doctype, + DBusError *error); dbus_bool_t bus_config_parser_start_element (BusConfigParser *parser, const char *element_name, const char **attribute_names, diff --git a/bus/config-parser.c b/bus/config-parser.c index 5218910b..2d19f2b9 100644 --- a/bus/config-parser.c +++ b/bus/config-parser.c @@ -20,6 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include "config-parser-common.h" #include "config-parser.h" #include "test.h" @@ -115,6 +117,8 @@ struct BusConfigParser unsigned int keep_umask : 1; /**< TRUE to keep original umask when forking */ unsigned int is_toplevel : 1; /**< FALSE if we are a sub-config-file inside another one */ + + unsigned int allow_anonymous : 1; /**< TRUE to allow anonymous connections */ }; static Element* @@ -402,6 +406,15 @@ bus_config_parser_new (const DBusString *basedir, parser->limits.max_incoming_bytes = _DBUS_ONE_MEGABYTE * 127; parser->limits.max_outgoing_bytes = _DBUS_ONE_MEGABYTE * 127; parser->limits.max_message_size = _DBUS_ONE_MEGABYTE * 32; + + /* We set relatively conservative values here since due to the + way SCM_RIGHTS works we need to preallocate an array for the + maximum number of file descriptors we can receive. Picking a + high value here thus translates directly to more memory + allocation. */ + parser->limits.max_incoming_unix_fds = 1024*4; + parser->limits.max_outgoing_unix_fds = 1024*4; + parser->limits.max_message_unix_fds = 1024; /* Making this long means the user has to wait longer for an error * message if something screws up, but making it too short means @@ -851,6 +864,20 @@ start_busconfig_child (BusConfigParser *parser, return TRUE; } + else if (element_type == ELEMENT_ALLOW_ANONYMOUS) + { + if (!check_no_attributes (parser, "allow_anonymous", attribute_names, attribute_values, error)) + return FALSE; + + if (push_element (parser, ELEMENT_ALLOW_ANONYMOUS) == NULL) + { + BUS_SET_OOM (error); + return FALSE; + } + + parser->allow_anonymous = TRUE; + return TRUE; + } else if (element_type == ELEMENT_SERVICEDIR) { if (!check_no_attributes (parser, "servicedir", attribute_names, attribute_values, error)) @@ -1812,16 +1839,31 @@ set_limit (BusConfigParser *parser, must_be_positive = TRUE; parser->limits.max_incoming_bytes = value; } + else if (strcmp (name, "max_incoming_unix_fds") == 0) + { + must_be_positive = TRUE; + parser->limits.max_incoming_unix_fds = value; + } else if (strcmp (name, "max_outgoing_bytes") == 0) { must_be_positive = TRUE; parser->limits.max_outgoing_bytes = value; } + else if (strcmp (name, "max_outgoing_unix_fds") == 0) + { + must_be_positive = TRUE; + parser->limits.max_outgoing_unix_fds = value; + } else if (strcmp (name, "max_message_size") == 0) { must_be_positive = TRUE; parser->limits.max_message_size = value; } + else if (strcmp (name, "max_message_unix_fds") == 0) + { + must_be_positive = TRUE; + parser->limits.max_message_unix_fds = value; + } else if (strcmp (name, "service_start_timeout") == 0) { must_be_positive = TRUE; @@ -1994,6 +2036,7 @@ bus_config_parser_end_element (BusConfigParser *parser, case ELEMENT_ASSOCIATE: case ELEMENT_STANDARD_SESSION_SERVICEDIRS: case ELEMENT_STANDARD_SYSTEM_SERVICEDIRS: + case ELEMENT_ALLOW_ANONYMOUS: break; } @@ -2279,6 +2322,7 @@ bus_config_parser_content (BusConfigParser *parser, case ELEMENT_KEEP_UMASK: case ELEMENT_STANDARD_SESSION_SERVICEDIRS: case ELEMENT_STANDARD_SYSTEM_SERVICEDIRS: + case ELEMENT_ALLOW_ANONYMOUS: case ELEMENT_SELINUX: case ELEMENT_ASSOCIATE: if (all_whitespace (content)) @@ -2611,6 +2655,12 @@ bus_config_parser_get_keep_umask (BusConfigParser *parser) return parser->keep_umask; } +dbus_bool_t +bus_config_parser_get_allow_anonymous (BusConfigParser *parser) +{ + return parser->allow_anonymous; +} + const char * bus_config_parser_get_pidfile (BusConfigParser *parser) { @@ -2955,8 +3005,11 @@ limits_equal (const BusLimits *a, { return (a->max_incoming_bytes == b->max_incoming_bytes + || a->max_incoming_unix_fds == b->max_incoming_unix_fds || a->max_outgoing_bytes == b->max_outgoing_bytes + || a->max_outgoing_unix_fds == b->max_outgoing_unix_fds || a->max_message_size == b->max_message_size + || a->max_message_unix_fds == b->max_message_unix_fds || a->activation_timeout == b->activation_timeout || a->auth_timeout == b->auth_timeout || a->max_completed_connections == b->max_completed_connections @@ -3195,6 +3248,9 @@ static const char *test_session_service_dir_matches[] = #ifdef DBUS_UNIX "/testhome/foo/.testlocal/testshare/dbus-1/services", #endif +#ifdef DBUS_WIN + NULL, +#endif NULL }; @@ -3318,6 +3374,9 @@ static const char *test_system_service_dir_matches[] = "/testusr/testshare/dbus-1/system-services", #endif DBUS_DATADIR"/dbus-1/system-services", +#ifdef DBUS_WIN + NULL, +#endif NULL }; @@ -3447,8 +3506,12 @@ bus_config_parser_test (const DBusString *test_data_dir) if (!test_default_session_servicedirs()) return FALSE; +#ifdef DBUS_WIN + printf("default system service dir skipped\n"); +#else if (!test_default_system_servicedirs()) return FALSE; +#endif if (!process_test_valid_subdir (test_data_dir, "valid-config-files", VALID)) return FALSE; diff --git a/bus/config-parser.h b/bus/config-parser.h index 3aac1ed3..ba5bf749 100644 --- a/bus/config-parser.h +++ b/bus/config-parser.h @@ -24,8 +24,6 @@ #ifndef BUS_CONFIG_PARSER_H #define BUS_CONFIG_PARSER_H -#include <config.h> - #include <dbus/dbus.h> #include <dbus/dbus-string.h> #include <dbus/dbus-list.h> diff --git a/bus/connection.c b/bus/connection.c index 50807f1a..8e7d222a 100644 --- a/bus/connection.c +++ b/bus/connection.c @@ -20,6 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include "connection.h" #include "dispatch.h" #include "policy.h" @@ -118,7 +120,7 @@ get_connections_for_uid (BusConnections *connections, /* val is NULL is 0 when it isn't in the hash yet */ - val = _dbus_hash_table_lookup_ulong (connections->completed_by_user, + val = _dbus_hash_table_lookup_uintptr (connections->completed_by_user, uid); current_count = _DBUS_POINTER_TO_INT (val); @@ -147,14 +149,14 @@ adjust_connections_for_uid (BusConnections *connections, if (current_count == 0) { - _dbus_hash_table_remove_ulong (connections->completed_by_user, uid); + _dbus_hash_table_remove_uintptr (connections->completed_by_user, uid); return TRUE; } else { dbus_bool_t retval; - retval = _dbus_hash_table_insert_ulong (connections->completed_by_user, + retval = _dbus_hash_table_insert_uintptr (connections->completed_by_user, uid, _DBUS_INT_TO_POINTER (current_count)); /* only positive adjustment can fail as otherwise @@ -437,7 +439,7 @@ bus_connections_new (BusContext *context) if (connections == NULL) goto failed_1; - connections->completed_by_user = _dbus_hash_table_new (DBUS_HASH_ULONG, + connections->completed_by_user = _dbus_hash_table_new (DBUS_HASH_UINTPTR, NULL, NULL); if (connections->completed_by_user == NULL) goto failed_2; @@ -584,9 +586,12 @@ cache_peer_loginfo_string (BusConnectionData *d, if (dbus_connection_get_windows_user (connection, &windows_sid)) { - if (!_dbus_string_append_printf (&loginfo_buf, "sid=\"%s\" ", windows_sid)) - goto oom; + dbus_bool_t did_append; + did_append = _dbus_string_append_printf (&loginfo_buf, + "sid=\"%s\" ", windows_sid); dbus_free (windows_sid); + if (!did_append) + goto oom; } if (!_dbus_string_steal_data (&loginfo_buf, &(d->cached_loginfo_string))) @@ -837,7 +842,7 @@ expire_incomplete_timeout (void *data) { BusConnections *connections = data; - _dbus_verbose ("Running %s\n", _DBUS_FUNCTION_NAME); + _dbus_verbose ("Running\n"); /* note that this may remove the timeout */ bus_connections_expire_incomplete (connections); @@ -1630,7 +1635,7 @@ cancel_pending_reply (void *data) { CancelPendingReplyData *d = data; - _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d); + _dbus_verbose ("d = %p\n", d); if (!bus_expire_list_remove (d->connections->pending_replies, &d->pending->expire_item)) @@ -1644,7 +1649,7 @@ cancel_pending_reply_data_free (void *data) { CancelPendingReplyData *d = data; - _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d); + _dbus_verbose ("d = %p\n", d); /* d->pending should be either freed or still * in the list of pending replies (owned by someone @@ -1781,7 +1786,7 @@ cancel_check_pending_reply (void *data) { CheckPendingReplyData *d = data; - _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d); + _dbus_verbose ("d = %p\n",d); bus_expire_list_add_link (d->connections->pending_replies, d->link); @@ -1793,7 +1798,7 @@ check_pending_reply_data_free (void *data) { CheckPendingReplyData *d = data; - _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d); + _dbus_verbose ("d = %p\n",d); if (d->link != NULL) { diff --git a/bus/dbus-daemon.1 b/bus/dbus-daemon.1 deleted file mode 100644 index 6bfca148..00000000 --- a/bus/dbus-daemon.1 +++ /dev/null @@ -1,760 +0,0 @@ -.\" -.\" dbus-daemon manual page. -.\" Copyright (C) 2003,2008 Red Hat, Inc. -.\" -.TH dbus-daemon 1 -.SH NAME -dbus-daemon \- Message bus daemon -.SH SYNOPSIS -.PP -.B dbus-daemon -dbus-daemon [\-\-version] [\-\-session] [\-\-system] [\-\-config-file=FILE] -[\-\-print-address[=DESCRIPTOR]] [\-\-print-pid[=DESCRIPTOR]] [\-\-fork] - -.SH DESCRIPTION - -\fIdbus-daemon\fP is the D-Bus message bus daemon. See -http://www.freedesktop.org/software/dbus/ for more information about -the big picture. D-Bus is first a library that provides one-to-one -communication between any two applications; \fIdbus-daemon\fP is an -application that uses this library to implement a message bus -daemon. Multiple programs connect to the message bus daemon and can -exchange messages with one another. - -.PP -There are two standard message bus instances: the systemwide message bus -(installed on many systems as the "messagebus" init service) and the -per-user-login-session message bus (started each time a user logs in). -\fIdbus-daemon\fP is used for both of these instances, but with -a different configuration file. - -.PP -The \-\-session option is equivalent to -"\-\-config-file=/src/build/dbus/etc/dbus-1/session.conf" and the \-\-system -option is equivalent to -"\-\-config-file=/src/build/dbus/etc/dbus-1/system.conf". By creating -additional configuration files and using the \-\-config-file option, -additional special-purpose message bus daemons could be created. - -.PP -The systemwide daemon is normally launched by an init script, -standardly called simply "messagebus". - -.PP -The systemwide daemon is largely used for broadcasting system events, -such as changes to the printer queue, or adding/removing devices. - -.PP -The per-session daemon is used for various interprocess communication -among desktop applications (however, it is not tied to X or the GUI -in any way). - -.PP -SIGHUP will cause the D-Bus daemon to PARTIALLY reload its -configuration file and to flush its user/group information caches. Some -configuration changes would require kicking all apps off the bus; so they will -only take effect if you restart the daemon. Policy changes should take effect -with SIGHUP. - -.SH OPTIONS -The following options are supported: -.TP -.I "--config-file=FILE" -Use the given configuration file. -.TP -.I "--fork" -Force the message bus to fork and become a daemon, even if -the configuration file does not specify that it should. -In most contexts the configuration file already gets this -right, though. -.TP -.I "--print-address[=DESCRIPTOR]" -Print the address of the message bus to standard output, or -to the given file descriptor. This is used by programs that -launch the message bus. -.TP -.I "--print-pid[=DESCRIPTOR]" -Print the process ID of the message bus to standard output, or -to the given file descriptor. This is used by programs that -launch the message bus. -.TP -.I "--session" -Use the standard configuration file for the per-login-session message -bus. -.TP -.I "--system" -Use the standard configuration file for the systemwide message bus. -.TP -.I "--version" -Print the version of the daemon. - -.SH CONFIGURATION FILE - -A message bus daemon has a configuration file that specializes it -for a particular application. For example, one configuration -file might set up the message bus to be a systemwide message bus, -while another might set it up to be a per-user-login-session bus. - -.PP -The configuration file also establishes resource limits, security -parameters, and so forth. - -.PP -The configuration file is not part of any interoperability -specification and its backward compatibility is not guaranteed; this -document is documentation, not specification. - -.PP -The standard systemwide and per-session message bus setups are -configured in the files "/src/build/dbus/etc/dbus-1/system.conf" and -"/src/build/dbus/etc/dbus-1/session.conf". These files normally -<include> a system-local.conf or session-local.conf; you can put local -overrides in those files to avoid modifying the primary configuration -files. - -.PP -The configuration file is an XML document. It must have the following -doctype declaration: -.nf - - <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" - "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> - -.fi - -.PP -The following elements may be present in the configuration file. - -.TP -.I "<busconfig>" - -.PP -Root element. - -.TP -.I "<type>" - -.PP -The well-known type of the message bus. Currently known values are -"system" and "session"; if other values are set, they should be -either added to the D-Bus specification, or namespaced. The last -<type> element "wins" (previous values are ignored). This element -only controls which message bus specific environment variables are -set in activated clients. Most of the policy that distinguishes a -session bus from the system bus is controlled from the other elements -in the configuration file. - -.PP -If the well-known type of the message bus is "session", then the -DBUS_STARTER_BUS_TYPE environment variable will be set to "session" -and the DBUS_SESSION_BUS_ADDRESS environment variable will be set -to the address of the session bus. Likewise, if the type of the -message bus is "system", then the DBUS_STARTER_BUS_TYPE environment -variable will be set to "system" and the DBUS_SESSION_BUS_ADDRESS -environment variable will be set to the address of the system bus -(which is normally well known anyway). - -.PP -Example: <type>session</type> - -.TP -.I "<include>" - -.PP -Include a file <include>filename.conf</include> at this point. If the -filename is relative, it is located relative to the configuration file -doing the including. - -.PP -<include> has an optional attribute "ignore_missing=(yes|no)" -which defaults to "no" if not provided. This attribute -controls whether it's a fatal error for the included file -to be absent. - -.TP -.I "<includedir>" - -.PP -Include all files in <includedir>foo.d</includedir> at this -point. Files in the directory are included in undefined order. -Only files ending in ".conf" are included. - -.PP -This is intended to allow extension of the system bus by particular -packages. For example, if CUPS wants to be able to send out -notification of printer queue changes, it could install a file to -/src/build/dbus/etc/dbus-1/system.d that allowed all apps to receive -this message and allowed the printer daemon user to send it. - -.TP -.I "<user>" - -.PP -The user account the daemon should run as, as either a username or a -UID. If the daemon cannot change to this UID on startup, it will exit. -If this element is not present, the daemon will not change or care -about its UID. - -.PP -The last <user> entry in the file "wins", the others are ignored. - -.PP -The user is changed after the bus has completed initialization. So -sockets etc. will be created before changing user, but no data will be -read from clients before changing user. This means that sockets -and PID files can be created in a location that requires root -privileges for writing. - -.TP -.I "<fork>" - -.PP -If present, the bus daemon becomes a real daemon (forks -into the background, etc.). This is generally used -rather than the \-\-fork command line option. - -.TP -.I "<keep_umask>" - -.PP -If present, the bus daemon keeps its original umask when forking. -This may be useful to avoid affecting the behavior of child processes. - -.TP -.I "<listen>" - -.PP -Add an address that the bus should listen on. The -address is in the standard D-Bus format that contains -a transport name plus possible parameters/options. - -.PP -Example: <listen>unix:path=/tmp/foo</listen> - -.PP -Example: <listen>tcp:host=localhost,port=1234</listen> - -.PP -If there are multiple <listen> elements, then the bus listens -on multiple addresses. The bus will pass its address to -started services or other interested parties with -the last address given in <listen> first. That is, -apps will try to connect to the last <listen> address first. - -.PP -tcp sockets can accept IPv4 addresses, IPv6 addresses or hostnames. -If a hostname resolves to multiple addresses, the server will bind -to all of them. The family=ipv4 or family=ipv6 options can be used -to force it to bind to a subset of addresses - -.PP -Example: <listen>tcp:host=localhost,port=0,family=ipv4</listen> - -.PP -A special case is using a port number of zero (or omitting the port), -which means to choose an available port selected by the operating -system. The port number chosen can be obtained with the ---print-address command line parameter and will be present in other -cases where the server reports its own address, such as when -DBUS_SESSION_BUS_ADDRESS is set. - -.PP -Example: <listen>tcp:host=localhost,port=0</listen> - -.PP -tcp addresses also allow a bind=hostname option, which will override -the host option specifying what address to bind to, without changing -the address reported by the bus. The bind option can also take a -special name '*' to cause the bus to listen on all local address -(INADDR_ANY). The specified host should be a valid name of the local -machine or weird stuff will happen. - -.PP -Example: <listen>tcp:host=localhost,bind=*,port=0</listen> - -.TP -.I "<auth>" - -.PP -Lists permitted authorization mechanisms. If this element doesn't -exist, then all known mechanisms are allowed. If there are multiple -<auth> elements, all the listed mechanisms are allowed. The order in -which mechanisms are listed is not meaningful. - -.PP -Example: <auth>EXTERNAL</auth> - -.PP -Example: <auth>DBUS_COOKIE_SHA1</auth> - -.TP -.I "<servicedir>" - -.PP -Adds a directory to scan for .service files. Directories are -scanned starting with the last to appear in the config file -(the first .service file found that provides a particular -service will be used). - -.PP -Service files tell the bus how to automatically start a program. -They are primarily used with the per-user-session bus, -not the systemwide bus. - -.TP -.I "<standard_session_servicedirs/>" - -.PP -<standard_session_servicedirs/> is equivalent to specifying a series -of <servicedir/> elements for each of the data directories in the "XDG -Base Directory Specification" with the subdirectory "dbus-1/services", -so for example "/usr/share/dbus-1/services" would be among the -directories searched. - -.PP -The "XDG Base Directory Specification" can be found at -http://freedesktop.org/wiki/Standards/basedir-spec if it hasn't moved, -otherwise try your favorite search engine. - -.PP -The <standard_session_servicedirs/> option is only relevant to the -per-user-session bus daemon defined in -/src/build/dbus/etc/dbus-1/session.conf. Putting it in any other -configuration file would probably be nonsense. - -.TP -.I "<standard_system_servicedirs/>" - -.PP -<standard_system_servicedirs/> specifies the standard system-wide -activation directories that should be searched for service files. -This option defaults to /src/build/dbus/share/dbus-1/system-services. - -.PP -The <standard_system_servicedirs/> option is only relevant to the -per-system bus daemon defined in -/src/build/dbus/etc/dbus-1/system.conf. Putting it in any other -configuration file would probably be nonsense. - -.TP -.I "<servicehelper/>" - -.PP -<servicehelper/> specifies the setuid helper that is used to launch -system daemons with an alternate user. Typically this should be -the dbus-daemon-launch-helper executable in located in libexec. - -.PP -The <servicehelper/> option is only relevant to the per-system bus daemon -defined in /src/build/dbus/etc/dbus-1/system.conf. Putting it in any other -configuration file would probably be nonsense. - -.TP -.I "<limit>" - -.PP -<limit> establishes a resource limit. For example: -.nf - <limit name="max_message_size">64</limit> - <limit name="max_completed_connections">512</limit> -.fi - -.PP -The name attribute is mandatory. -Available limit names are: -.nf - "max_incoming_bytes" : total size in bytes of messages - incoming from a single connection - "max_outgoing_bytes" : total size in bytes of messages - queued up for a single connection - "max_message_size" : max size of a single message in - bytes - "service_start_timeout" : milliseconds (thousandths) until - a started service has to connect - "auth_timeout" : milliseconds (thousandths) a - connection is given to - authenticate - "max_completed_connections" : max number of authenticated connections - "max_incomplete_connections" : max number of unauthenticated - connections - "max_connections_per_user" : max number of completed connections from - the same user - "max_pending_service_starts" : max number of service launches in - progress at the same time - "max_names_per_connection" : max number of names a single - connection can own - "max_match_rules_per_connection": max number of match rules for a single - connection - "max_replies_per_connection" : max number of pending method - replies per connection - (number of calls-in-progress) - "reply_timeout" : milliseconds (thousandths) - until a method call times out -.fi - -.PP -The max incoming/outgoing queue sizes allow a new message to be queued -if one byte remains below the max. So you can in fact exceed the max -by max_message_size. - -.PP -max_completed_connections divided by max_connections_per_user is the -number of users that can work together to denial-of-service all other users by using -up all connections on the systemwide bus. - -.PP -Limits are normally only of interest on the systemwide bus, not the user session -buses. - -.TP -.I "<policy>" - -.PP -The <policy> element defines a security policy to be applied to a particular -set of connections to the bus. A policy is made up of -<allow> and <deny> elements. Policies are normally used with the systemwide bus; -they are analogous to a firewall in that they allow expected traffic -and prevent unexpected traffic. - -.PP -Currently, the system bus has a default-deny policy for sending method calls -and owning bus names. Everything else, in particular reply messages, receive -checks, and signals has a default allow policy. - -.PP -In general, it is best to keep system services as small, targeted programs which -run in their own process and provide a single bus name. Then, all that is needed -is an <allow> rule for the "own" permission to let the process claim the bus -name, and a "send_destination" rule to allow traffic from some or all uids to -your service. - -.PP -The <policy> element has one of four attributes: -daemon.1.in -.nf - context="(default|mandatory)" - at_console="(true|false)" - user="username or userid" - group="group name or gid" -.fi - -.PP -Policies are applied to a connection as follows: -.nf - - all context="default" policies are applied - - all group="connection's user's group" policies are applied - in undefined order - - all user="connection's auth user" policies are applied - in undefined order - - all at_console="true" policies are applied - - all at_console="false" policies are applied - - all context="mandatory" policies are applied -.fi - -.PP -Policies applied later will override those applied earlier, -when the policies overlap. Multiple policies with the same -user/group/context are applied in the order they appear -in the config file. - -.TP -.I "<deny>" -.I "<allow>" - -.PP -A <deny> element appears below a <policy> element and prohibits some -action. The <allow> element makes an exception to previous <deny> -statements, and works just like <deny> but with the inverse meaning. - -.PP -The possible attributes of these elements are: -.nf - send_interface="interface_name" - send_member="method_or_signal_name" - send_error="error_name" - send_destination="name" - send_type="method_call" | "method_return" | "signal" | "error" - send_path="/path/name" - - receive_interface="interface_name" - receive_member="method_or_signal_name" - receive_error="error_name" - receive_sender="name" - receive_type="method_call" | "method_return" | "signal" | "error" - receive_path="/path/name" - - send_requested_reply="true" | "false" - receive_requested_reply="true" | "false" - - eavesdrop="true" | "false" - - own="name" - user="username" - group="groupname" -.fi - -.PP -Examples: -.nf - <deny send_interface="org.freedesktop.System" send_member="Reboot"/> - <deny receive_interface="org.freedesktop.System" receive_member="Reboot"/> - <deny own="org.freedesktop.System"/> - <deny send_destination="org.freedesktop.System"/> - <deny receive_sender="org.freedesktop.System"/> - <deny user="john"/> - <deny group="enemies"/> -.fi - -.PP -The <deny> element's attributes determine whether the deny "matches" a -particular action. If it matches, the action is denied (unless later -rules in the config file allow it). - -.PP -send_destination and receive_sender rules mean that messages may not be -sent to or received from the *owner* of the given name, not that -they may not be sent *to that name*. That is, if a connection -owns services A, B, C, and sending to A is denied, sending to B or C -will not work either. - -.PP -The other send_* and receive_* attributes are purely textual/by-value -matches against the given field in the message header. - -.PP -"Eavesdropping" occurs when an application receives a message that -was explicitly addressed to a name the application does not own, or -is a reply to such a message. Eavesdropping thus only applies to -messages that are addressed to services and replies to such messages -(i.e. it does not apply to signals). - -.PP -For <allow>, eavesdrop="true" indicates that the rule matches even -when eavesdropping. eavesdrop="false" is the default and means that -the rule only allows messages to go to their specified recipient. -For <deny>, eavesdrop="true" indicates that the rule matches -only when eavesdropping. eavesdrop="false" is the default for <deny> -also, but here it means that the rule applies always, even when -not eavesdropping. The eavesdrop attribute can only be combined with -send and receive rules (with send_* and receive_* attributes). - - -.PP -The [send|receive]_requested_reply attribute works similarly to the eavesdrop -attribute. It controls whether the <deny> or <allow> matches a reply -that is expected (corresponds to a previous method call message). -This attribute only makes sense for reply messages (errors and method -returns), and is ignored for other message types. - -.PP -For <allow>, [send|receive]_requested_reply="true" is the default and indicates that -only requested replies are allowed by the -rule. [send|receive]_requested_reply="false" means that the rule allows any reply -even if unexpected. - -.PP -For <deny>, [send|receive]_requested_reply="false" is the default but indicates that -the rule matches only when the reply was not -requested. [send|receive]_requested_reply="true" indicates that the rule applies -always, regardless of pending reply state. - -.PP -user and group denials mean that the given user or group may -not connect to the message bus. - -.PP -For "name", "username", "groupname", etc. -the character "*" can be substituted, meaning "any." Complex globs -like "foo.bar.*" aren't allowed for now because they'd be work to -implement and maybe encourage sloppy security anyway. - -.PP -It does not make sense to deny a user or group inside a <policy> -for a user or group; user/group denials can only be inside -context="default" or context="mandatory" policies. - -.PP -A single <deny> rule may specify combinations of attributes such as -send_destination and send_interface and send_type. In this case, the -denial applies only if both attributes match the message being denied. -e.g. <deny send_interface="foo.bar" send_destination="foo.blah"/> would -deny messages with the given interface AND the given bus name. -To get an OR effect you specify multiple <deny> rules. - -.PP -You can't include both send_ and receive_ attributes on the same -rule, since "whether the message can be sent" and "whether it can be -received" are evaluated separately. - -.PP -Be careful with send_interface/receive_interface, because the -interface field in messages is optional. In particular, do NOT -specify <deny send_interface="org.foo.Bar"/>! This will cause -no-interface messages to be blocked for all services, which is -almost certainly not what you intended. Always use rules of -the form: <deny send_interface="org.foo.Bar" send_destination="org.foo.Service"/> - -.TP -.I "<selinux>" - -.PP -The <selinux> element contains settings related to Security Enhanced Linux. -More details below. - -.TP -.I "<associate>" - -.PP -An <associate> element appears below an <selinux> element and -creates a mapping. Right now only one kind of association is possible: -.nf - <associate own="org.freedesktop.Foobar" context="foo_t"/> -.fi - -.PP -This means that if a connection asks to own the name -"org.freedesktop.Foobar" then the source context will be the context -of the connection and the target context will be "foo_t" - see the -short discussion of SELinux below. - -.PP -Note, the context here is the target context when requesting a name, -NOT the context of the connection owning the name. - -.PP -There's currently no way to set a default for owning any name, if -we add this syntax it will look like: -.nf - <associate own="*" context="foo_t"/> -.fi -If you find a reason this is useful, let the developers know. -Right now the default will be the security context of the bus itself. - -.PP -If two <associate> elements specify the same name, the element -appearing later in the configuration file will be used. - -.SH SELinux - -.PP -See http://www.nsa.gov/selinux/ for full details on SELinux. Some useful excerpts: - -.IP "" 8 -Every subject (process) and object (e.g. file, socket, IPC object, -etc) in the system is assigned a collection of security attributes, -known as a security context. A security context contains all of the -security attributes associated with a particular subject or object -that are relevant to the security policy. - -.IP "" 8 -In order to better encapsulate security contexts and to provide -greater efficiency, the policy enforcement code of SELinux typically -handles security identifiers (SIDs) rather than security contexts. A -SID is an integer that is mapped by the security server to a security -context at runtime. - -.IP "" 8 -When a security decision is required, the policy enforcement code -passes a pair of SIDs (typically the SID of a subject and the SID of -an object, but sometimes a pair of subject SIDs or a pair of object -SIDs), and an object security class to the security server. The object -security class indicates the kind of object, e.g. a process, a regular -file, a directory, a TCP socket, etc. - -.IP "" 8 -Access decisions specify whether or not a permission is granted for a -given pair of SIDs and class. Each object class has a set of -associated permissions defined to control operations on objects with -that class. - -.PP -D-Bus performs SELinux security checks in two places. - -.PP -First, any time a message is routed from one connection to another -connection, the bus daemon will check permissions with the security context of -the first connection as source, security context of the second connection -as target, object class "dbus" and requested permission "send_msg". - -.PP -If a security context is not available for a connection -(impossible when using UNIX domain sockets), then the target -context used is the context of the bus daemon itself. -There is currently no way to change this default, because we're -assuming that only UNIX domain sockets will be used to -connect to the systemwide bus. If this changes, we'll -probably add a way to set the default connection context. - -.PP -Second, any time a connection asks to own a name, -the bus daemon will check permissions with the security -context of the connection as source, the security context specified -for the name in the config file as target, object -class "dbus" and requested permission "acquire_svc". - -.PP -The security context for a bus name is specified with the -<associate> element described earlier in this document. -If a name has no security context associated in the -configuration file, the security context of the bus daemon -itself will be used. - -.SH DEBUGGING - -.PP -If you're trying to figure out where your messages are going or why -you aren't getting messages, there are several things you can try. - -.PP -Remember that the system bus is heavily locked down and if you -haven't installed a security policy file to allow your message -through, it won't work. For the session bus, this is not a concern. - -.PP -The simplest way to figure out what's happening on the bus is to run -the \fIdbus-monitor\fP program, which comes with the D-Bus -package. You can also send test messages with \fIdbus-send\fP. These -programs have their own man pages. - -.PP -If you want to know what the daemon itself is doing, you might consider -running a separate copy of the daemon to test against. This will allow you -to put the daemon under a debugger, or run it with verbose output, without -messing up your real session and system daemons. - -.PP -To run a separate test copy of the daemon, for example you might open a terminal -and type: -.nf - DBUS_VERBOSE=1 dbus-daemon --session --print-address -.fi - -.PP -The test daemon address will be printed when the daemon starts. You will need -to copy-and-paste this address and use it as the value of the -DBUS_SESSION_BUS_ADDRESS environment variable when you launch the applications -you want to test. This will cause those applications to connect to your -test bus instead of the DBUS_SESSION_BUS_ADDRESS of your real session bus. - -.PP -DBUS_VERBOSE=1 will have NO EFFECT unless your copy of D-Bus -was compiled with verbose mode enabled. This is not recommended in -production builds due to performance impact. You may need to rebuild -D-Bus if your copy was not built with debugging in mind. (DBUS_VERBOSE -also affects the D-Bus library and thus applications using D-Bus; it may -be useful to see verbose output on both the client side and from the daemon.) - -.PP -If you want to get fancy, you can create a custom bus -configuration for your test bus (see the session.conf and system.conf -files that define the two default configurations for example). This -would allow you to specify a different directory for .service files, -for example. - - -.SH AUTHOR -See http://www.freedesktop.org/software/dbus/doc/AUTHORS - -.SH BUGS -Please send bug reports to the D-Bus mailing list or bug tracker, -see http://www.freedesktop.org/software/dbus/ diff --git a/bus/dbus-daemon.1.in b/bus/dbus-daemon.1.in deleted file mode 100644 index 8342600e..00000000 --- a/bus/dbus-daemon.1.in +++ /dev/null @@ -1,760 +0,0 @@ -.\" -.\" dbus-daemon manual page. -.\" Copyright (C) 2003,2008 Red Hat, Inc. -.\" -.TH dbus-daemon 1 -.SH NAME -dbus-daemon \- Message bus daemon -.SH SYNOPSIS -.PP -.B dbus-daemon -dbus-daemon [\-\-version] [\-\-session] [\-\-system] [\-\-config-file=FILE] -[\-\-print-address[=DESCRIPTOR]] [\-\-print-pid[=DESCRIPTOR]] [\-\-fork] - -.SH DESCRIPTION - -\fIdbus-daemon\fP is the D-Bus message bus daemon. See -http://www.freedesktop.org/software/dbus/ for more information about -the big picture. D-Bus is first a library that provides one-to-one -communication between any two applications; \fIdbus-daemon\fP is an -application that uses this library to implement a message bus -daemon. Multiple programs connect to the message bus daemon and can -exchange messages with one another. - -.PP -There are two standard message bus instances: the systemwide message bus -(installed on many systems as the "messagebus" init service) and the -per-user-login-session message bus (started each time a user logs in). -\fIdbus-daemon\fP is used for both of these instances, but with -a different configuration file. - -.PP -The \-\-session option is equivalent to -"\-\-config-file=@EXPANDED_SYSCONFDIR@/dbus-1/session.conf" and the \-\-system -option is equivalent to -"\-\-config-file=@EXPANDED_SYSCONFDIR@/dbus-1/system.conf". By creating -additional configuration files and using the \-\-config-file option, -additional special-purpose message bus daemons could be created. - -.PP -The systemwide daemon is normally launched by an init script, -standardly called simply "messagebus". - -.PP -The systemwide daemon is largely used for broadcasting system events, -such as changes to the printer queue, or adding/removing devices. - -.PP -The per-session daemon is used for various interprocess communication -among desktop applications (however, it is not tied to X or the GUI -in any way). - -.PP -SIGHUP will cause the D-Bus daemon to PARTIALLY reload its -configuration file and to flush its user/group information caches. Some -configuration changes would require kicking all apps off the bus; so they will -only take effect if you restart the daemon. Policy changes should take effect -with SIGHUP. - -.SH OPTIONS -The following options are supported: -.TP -.I "--config-file=FILE" -Use the given configuration file. -.TP -.I "--fork" -Force the message bus to fork and become a daemon, even if -the configuration file does not specify that it should. -In most contexts the configuration file already gets this -right, though. -.TP -.I "--print-address[=DESCRIPTOR]" -Print the address of the message bus to standard output, or -to the given file descriptor. This is used by programs that -launch the message bus. -.TP -.I "--print-pid[=DESCRIPTOR]" -Print the process ID of the message bus to standard output, or -to the given file descriptor. This is used by programs that -launch the message bus. -.TP -.I "--session" -Use the standard configuration file for the per-login-session message -bus. -.TP -.I "--system" -Use the standard configuration file for the systemwide message bus. -.TP -.I "--version" -Print the version of the daemon. - -.SH CONFIGURATION FILE - -A message bus daemon has a configuration file that specializes it -for a particular application. For example, one configuration -file might set up the message bus to be a systemwide message bus, -while another might set it up to be a per-user-login-session bus. - -.PP -The configuration file also establishes resource limits, security -parameters, and so forth. - -.PP -The configuration file is not part of any interoperability -specification and its backward compatibility is not guaranteed; this -document is documentation, not specification. - -.PP -The standard systemwide and per-session message bus setups are -configured in the files "@EXPANDED_SYSCONFDIR@/dbus-1/system.conf" and -"@EXPANDED_SYSCONFDIR@/dbus-1/session.conf". These files normally -<include> a system-local.conf or session-local.conf; you can put local -overrides in those files to avoid modifying the primary configuration -files. - -.PP -The configuration file is an XML document. It must have the following -doctype declaration: -.nf - - <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" - "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> - -.fi - -.PP -The following elements may be present in the configuration file. - -.TP -.I "<busconfig>" - -.PP -Root element. - -.TP -.I "<type>" - -.PP -The well-known type of the message bus. Currently known values are -"system" and "session"; if other values are set, they should be -either added to the D-Bus specification, or namespaced. The last -<type> element "wins" (previous values are ignored). This element -only controls which message bus specific environment variables are -set in activated clients. Most of the policy that distinguishes a -session bus from the system bus is controlled from the other elements -in the configuration file. - -.PP -If the well-known type of the message bus is "session", then the -DBUS_STARTER_BUS_TYPE environment variable will be set to "session" -and the DBUS_SESSION_BUS_ADDRESS environment variable will be set -to the address of the session bus. Likewise, if the type of the -message bus is "system", then the DBUS_STARTER_BUS_TYPE environment -variable will be set to "system" and the DBUS_SESSION_BUS_ADDRESS -environment variable will be set to the address of the system bus -(which is normally well known anyway). - -.PP -Example: <type>session</type> - -.TP -.I "<include>" - -.PP -Include a file <include>filename.conf</include> at this point. If the -filename is relative, it is located relative to the configuration file -doing the including. - -.PP -<include> has an optional attribute "ignore_missing=(yes|no)" -which defaults to "no" if not provided. This attribute -controls whether it's a fatal error for the included file -to be absent. - -.TP -.I "<includedir>" - -.PP -Include all files in <includedir>foo.d</includedir> at this -point. Files in the directory are included in undefined order. -Only files ending in ".conf" are included. - -.PP -This is intended to allow extension of the system bus by particular -packages. For example, if CUPS wants to be able to send out -notification of printer queue changes, it could install a file to -@EXPANDED_SYSCONFDIR@/dbus-1/system.d that allowed all apps to receive -this message and allowed the printer daemon user to send it. - -.TP -.I "<user>" - -.PP -The user account the daemon should run as, as either a username or a -UID. If the daemon cannot change to this UID on startup, it will exit. -If this element is not present, the daemon will not change or care -about its UID. - -.PP -The last <user> entry in the file "wins", the others are ignored. - -.PP -The user is changed after the bus has completed initialization. So -sockets etc. will be created before changing user, but no data will be -read from clients before changing user. This means that sockets -and PID files can be created in a location that requires root -privileges for writing. - -.TP -.I "<fork>" - -.PP -If present, the bus daemon becomes a real daemon (forks -into the background, etc.). This is generally used -rather than the \-\-fork command line option. - -.TP -.I "<keep_umask>" - -.PP -If present, the bus daemon keeps its original umask when forking. -This may be useful to avoid affecting the behavior of child processes. - -.TP -.I "<listen>" - -.PP -Add an address that the bus should listen on. The -address is in the standard D-Bus format that contains -a transport name plus possible parameters/options. - -.PP -Example: <listen>unix:path=/tmp/foo</listen> - -.PP -Example: <listen>tcp:host=localhost,port=1234</listen> - -.PP -If there are multiple <listen> elements, then the bus listens -on multiple addresses. The bus will pass its address to -started services or other interested parties with -the last address given in <listen> first. That is, -apps will try to connect to the last <listen> address first. - -.PP -tcp sockets can accept IPv4 addresses, IPv6 addresses or hostnames. -If a hostname resolves to multiple addresses, the server will bind -to all of them. The family=ipv4 or family=ipv6 options can be used -to force it to bind to a subset of addresses - -.PP -Example: <listen>tcp:host=localhost,port=0,family=ipv4</listen> - -.PP -A special case is using a port number of zero (or omitting the port), -which means to choose an available port selected by the operating -system. The port number chosen can be obtained with the ---print-address command line parameter and will be present in other -cases where the server reports its own address, such as when -DBUS_SESSION_BUS_ADDRESS is set. - -.PP -Example: <listen>tcp:host=localhost,port=0</listen> - -.PP -tcp addresses also allow a bind=hostname option, which will override -the host option specifying what address to bind to, without changing -the address reported by the bus. The bind option can also take a -special name '*' to cause the bus to listen on all local address -(INADDR_ANY). The specified host should be a valid name of the local -machine or weird stuff will happen. - -.PP -Example: <listen>tcp:host=localhost,bind=*,port=0</listen> - -.TP -.I "<auth>" - -.PP -Lists permitted authorization mechanisms. If this element doesn't -exist, then all known mechanisms are allowed. If there are multiple -<auth> elements, all the listed mechanisms are allowed. The order in -which mechanisms are listed is not meaningful. - -.PP -Example: <auth>EXTERNAL</auth> - -.PP -Example: <auth>DBUS_COOKIE_SHA1</auth> - -.TP -.I "<servicedir>" - -.PP -Adds a directory to scan for .service files. Directories are -scanned starting with the last to appear in the config file -(the first .service file found that provides a particular -service will be used). - -.PP -Service files tell the bus how to automatically start a program. -They are primarily used with the per-user-session bus, -not the systemwide bus. - -.TP -.I "<standard_session_servicedirs/>" - -.PP -<standard_session_servicedirs/> is equivalent to specifying a series -of <servicedir/> elements for each of the data directories in the "XDG -Base Directory Specification" with the subdirectory "dbus-1/services", -so for example "/usr/share/dbus-1/services" would be among the -directories searched. - -.PP -The "XDG Base Directory Specification" can be found at -http://freedesktop.org/wiki/Standards/basedir-spec if it hasn't moved, -otherwise try your favorite search engine. - -.PP -The <standard_session_servicedirs/> option is only relevant to the -per-user-session bus daemon defined in -@EXPANDED_SYSCONFDIR@/dbus-1/session.conf. Putting it in any other -configuration file would probably be nonsense. - -.TP -.I "<standard_system_servicedirs/>" - -.PP -<standard_system_servicedirs/> specifies the standard system-wide -activation directories that should be searched for service files. -This option defaults to @EXPANDED_DATADIR@/dbus-1/system-services. - -.PP -The <standard_system_servicedirs/> option is only relevant to the -per-system bus daemon defined in -@EXPANDED_SYSCONFDIR@/dbus-1/system.conf. Putting it in any other -configuration file would probably be nonsense. - -.TP -.I "<servicehelper/>" - -.PP -<servicehelper/> specifies the setuid helper that is used to launch -system daemons with an alternate user. Typically this should be -the dbus-daemon-launch-helper executable in located in libexec. - -.PP -The <servicehelper/> option is only relevant to the per-system bus daemon -defined in @EXPANDED_SYSCONFDIR@/dbus-1/system.conf. Putting it in any other -configuration file would probably be nonsense. - -.TP -.I "<limit>" - -.PP -<limit> establishes a resource limit. For example: -.nf - <limit name="max_message_size">64</limit> - <limit name="max_completed_connections">512</limit> -.fi - -.PP -The name attribute is mandatory. -Available limit names are: -.nf - "max_incoming_bytes" : total size in bytes of messages - incoming from a single connection - "max_outgoing_bytes" : total size in bytes of messages - queued up for a single connection - "max_message_size" : max size of a single message in - bytes - "service_start_timeout" : milliseconds (thousandths) until - a started service has to connect - "auth_timeout" : milliseconds (thousandths) a - connection is given to - authenticate - "max_completed_connections" : max number of authenticated connections - "max_incomplete_connections" : max number of unauthenticated - connections - "max_connections_per_user" : max number of completed connections from - the same user - "max_pending_service_starts" : max number of service launches in - progress at the same time - "max_names_per_connection" : max number of names a single - connection can own - "max_match_rules_per_connection": max number of match rules for a single - connection - "max_replies_per_connection" : max number of pending method - replies per connection - (number of calls-in-progress) - "reply_timeout" : milliseconds (thousandths) - until a method call times out -.fi - -.PP -The max incoming/outgoing queue sizes allow a new message to be queued -if one byte remains below the max. So you can in fact exceed the max -by max_message_size. - -.PP -max_completed_connections divided by max_connections_per_user is the -number of users that can work together to denial-of-service all other users by using -up all connections on the systemwide bus. - -.PP -Limits are normally only of interest on the systemwide bus, not the user session -buses. - -.TP -.I "<policy>" - -.PP -The <policy> element defines a security policy to be applied to a particular -set of connections to the bus. A policy is made up of -<allow> and <deny> elements. Policies are normally used with the systemwide bus; -they are analogous to a firewall in that they allow expected traffic -and prevent unexpected traffic. - -.PP -Currently, the system bus has a default-deny policy for sending method calls -and owning bus names. Everything else, in particular reply messages, receive -checks, and signals has a default allow policy. - -.PP -In general, it is best to keep system services as small, targeted programs which -run in their own process and provide a single bus name. Then, all that is needed -is an <allow> rule for the "own" permission to let the process claim the bus -name, and a "send_destination" rule to allow traffic from some or all uids to -your service. - -.PP -The <policy> element has one of four attributes: -daemon.1.in -.nf - context="(default|mandatory)" - at_console="(true|false)" - user="username or userid" - group="group name or gid" -.fi - -.PP -Policies are applied to a connection as follows: -.nf - - all context="default" policies are applied - - all group="connection's user's group" policies are applied - in undefined order - - all user="connection's auth user" policies are applied - in undefined order - - all at_console="true" policies are applied - - all at_console="false" policies are applied - - all context="mandatory" policies are applied -.fi - -.PP -Policies applied later will override those applied earlier, -when the policies overlap. Multiple policies with the same -user/group/context are applied in the order they appear -in the config file. - -.TP -.I "<deny>" -.I "<allow>" - -.PP -A <deny> element appears below a <policy> element and prohibits some -action. The <allow> element makes an exception to previous <deny> -statements, and works just like <deny> but with the inverse meaning. - -.PP -The possible attributes of these elements are: -.nf - send_interface="interface_name" - send_member="method_or_signal_name" - send_error="error_name" - send_destination="name" - send_type="method_call" | "method_return" | "signal" | "error" - send_path="/path/name" - - receive_interface="interface_name" - receive_member="method_or_signal_name" - receive_error="error_name" - receive_sender="name" - receive_type="method_call" | "method_return" | "signal" | "error" - receive_path="/path/name" - - send_requested_reply="true" | "false" - receive_requested_reply="true" | "false" - - eavesdrop="true" | "false" - - own="name" - user="username" - group="groupname" -.fi - -.PP -Examples: -.nf - <deny send_interface="org.freedesktop.System" send_member="Reboot"/> - <deny receive_interface="org.freedesktop.System" receive_member="Reboot"/> - <deny own="org.freedesktop.System"/> - <deny send_destination="org.freedesktop.System"/> - <deny receive_sender="org.freedesktop.System"/> - <deny user="john"/> - <deny group="enemies"/> -.fi - -.PP -The <deny> element's attributes determine whether the deny "matches" a -particular action. If it matches, the action is denied (unless later -rules in the config file allow it). - -.PP -send_destination and receive_sender rules mean that messages may not be -sent to or received from the *owner* of the given name, not that -they may not be sent *to that name*. That is, if a connection -owns services A, B, C, and sending to A is denied, sending to B or C -will not work either. - -.PP -The other send_* and receive_* attributes are purely textual/by-value -matches against the given field in the message header. - -.PP -"Eavesdropping" occurs when an application receives a message that -was explicitly addressed to a name the application does not own, or -is a reply to such a message. Eavesdropping thus only applies to -messages that are addressed to services and replies to such messages -(i.e. it does not apply to signals). - -.PP -For <allow>, eavesdrop="true" indicates that the rule matches even -when eavesdropping. eavesdrop="false" is the default and means that -the rule only allows messages to go to their specified recipient. -For <deny>, eavesdrop="true" indicates that the rule matches -only when eavesdropping. eavesdrop="false" is the default for <deny> -also, but here it means that the rule applies always, even when -not eavesdropping. The eavesdrop attribute can only be combined with -send and receive rules (with send_* and receive_* attributes). - - -.PP -The [send|receive]_requested_reply attribute works similarly to the eavesdrop -attribute. It controls whether the <deny> or <allow> matches a reply -that is expected (corresponds to a previous method call message). -This attribute only makes sense for reply messages (errors and method -returns), and is ignored for other message types. - -.PP -For <allow>, [send|receive]_requested_reply="true" is the default and indicates that -only requested replies are allowed by the -rule. [send|receive]_requested_reply="false" means that the rule allows any reply -even if unexpected. - -.PP -For <deny>, [send|receive]_requested_reply="false" is the default but indicates that -the rule matches only when the reply was not -requested. [send|receive]_requested_reply="true" indicates that the rule applies -always, regardless of pending reply state. - -.PP -user and group denials mean that the given user or group may -not connect to the message bus. - -.PP -For "name", "username", "groupname", etc. -the character "*" can be substituted, meaning "any." Complex globs -like "foo.bar.*" aren't allowed for now because they'd be work to -implement and maybe encourage sloppy security anyway. - -.PP -It does not make sense to deny a user or group inside a <policy> -for a user or group; user/group denials can only be inside -context="default" or context="mandatory" policies. - -.PP -A single <deny> rule may specify combinations of attributes such as -send_destination and send_interface and send_type. In this case, the -denial applies only if both attributes match the message being denied. -e.g. <deny send_interface="foo.bar" send_destination="foo.blah"/> would -deny messages with the given interface AND the given bus name. -To get an OR effect you specify multiple <deny> rules. - -.PP -You can't include both send_ and receive_ attributes on the same -rule, since "whether the message can be sent" and "whether it can be -received" are evaluated separately. - -.PP -Be careful with send_interface/receive_interface, because the -interface field in messages is optional. In particular, do NOT -specify <deny send_interface="org.foo.Bar"/>! This will cause -no-interface messages to be blocked for all services, which is -almost certainly not what you intended. Always use rules of -the form: <deny send_interface="org.foo.Bar" send_destination="org.foo.Service"/> - -.TP -.I "<selinux>" - -.PP -The <selinux> element contains settings related to Security Enhanced Linux. -More details below. - -.TP -.I "<associate>" - -.PP -An <associate> element appears below an <selinux> element and -creates a mapping. Right now only one kind of association is possible: -.nf - <associate own="org.freedesktop.Foobar" context="foo_t"/> -.fi - -.PP -This means that if a connection asks to own the name -"org.freedesktop.Foobar" then the source context will be the context -of the connection and the target context will be "foo_t" - see the -short discussion of SELinux below. - -.PP -Note, the context here is the target context when requesting a name, -NOT the context of the connection owning the name. - -.PP -There's currently no way to set a default for owning any name, if -we add this syntax it will look like: -.nf - <associate own="*" context="foo_t"/> -.fi -If you find a reason this is useful, let the developers know. -Right now the default will be the security context of the bus itself. - -.PP -If two <associate> elements specify the same name, the element -appearing later in the configuration file will be used. - -.SH SELinux - -.PP -See http://www.nsa.gov/selinux/ for full details on SELinux. Some useful excerpts: - -.IP "" 8 -Every subject (process) and object (e.g. file, socket, IPC object, -etc) in the system is assigned a collection of security attributes, -known as a security context. A security context contains all of the -security attributes associated with a particular subject or object -that are relevant to the security policy. - -.IP "" 8 -In order to better encapsulate security contexts and to provide -greater efficiency, the policy enforcement code of SELinux typically -handles security identifiers (SIDs) rather than security contexts. A -SID is an integer that is mapped by the security server to a security -context at runtime. - -.IP "" 8 -When a security decision is required, the policy enforcement code -passes a pair of SIDs (typically the SID of a subject and the SID of -an object, but sometimes a pair of subject SIDs or a pair of object -SIDs), and an object security class to the security server. The object -security class indicates the kind of object, e.g. a process, a regular -file, a directory, a TCP socket, etc. - -.IP "" 8 -Access decisions specify whether or not a permission is granted for a -given pair of SIDs and class. Each object class has a set of -associated permissions defined to control operations on objects with -that class. - -.PP -D-Bus performs SELinux security checks in two places. - -.PP -First, any time a message is routed from one connection to another -connection, the bus daemon will check permissions with the security context of -the first connection as source, security context of the second connection -as target, object class "dbus" and requested permission "send_msg". - -.PP -If a security context is not available for a connection -(impossible when using UNIX domain sockets), then the target -context used is the context of the bus daemon itself. -There is currently no way to change this default, because we're -assuming that only UNIX domain sockets will be used to -connect to the systemwide bus. If this changes, we'll -probably add a way to set the default connection context. - -.PP -Second, any time a connection asks to own a name, -the bus daemon will check permissions with the security -context of the connection as source, the security context specified -for the name in the config file as target, object -class "dbus" and requested permission "acquire_svc". - -.PP -The security context for a bus name is specified with the -<associate> element described earlier in this document. -If a name has no security context associated in the -configuration file, the security context of the bus daemon -itself will be used. - -.SH DEBUGGING - -.PP -If you're trying to figure out where your messages are going or why -you aren't getting messages, there are several things you can try. - -.PP -Remember that the system bus is heavily locked down and if you -haven't installed a security policy file to allow your message -through, it won't work. For the session bus, this is not a concern. - -.PP -The simplest way to figure out what's happening on the bus is to run -the \fIdbus-monitor\fP program, which comes with the D-Bus -package. You can also send test messages with \fIdbus-send\fP. These -programs have their own man pages. - -.PP -If you want to know what the daemon itself is doing, you might consider -running a separate copy of the daemon to test against. This will allow you -to put the daemon under a debugger, or run it with verbose output, without -messing up your real session and system daemons. - -.PP -To run a separate test copy of the daemon, for example you might open a terminal -and type: -.nf - DBUS_VERBOSE=1 dbus-daemon --session --print-address -.fi - -.PP -The test daemon address will be printed when the daemon starts. You will need -to copy-and-paste this address and use it as the value of the -DBUS_SESSION_BUS_ADDRESS environment variable when you launch the applications -you want to test. This will cause those applications to connect to your -test bus instead of the DBUS_SESSION_BUS_ADDRESS of your real session bus. - -.PP -DBUS_VERBOSE=1 will have NO EFFECT unless your copy of D-Bus -was compiled with verbose mode enabled. This is not recommended in -production builds due to performance impact. You may need to rebuild -D-Bus if your copy was not built with debugging in mind. (DBUS_VERBOSE -also affects the D-Bus library and thus applications using D-Bus; it may -be useful to see verbose output on both the client side and from the daemon.) - -.PP -If you want to get fancy, you can create a custom bus -configuration for your test bus (see the session.conf and system.conf -files that define the two default configurations for example). This -would allow you to specify a different directory for .service files, -for example. - - -.SH AUTHOR -See http://www.freedesktop.org/software/dbus/doc/AUTHORS - -.SH BUGS -Please send bug reports to the D-Bus mailing list or bug tracker, -see http://www.freedesktop.org/software/dbus/ diff --git a/bus/dbus.service.in b/bus/dbus.service.in new file mode 100644 index 00000000..399306f6 --- /dev/null +++ b/bus/dbus.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=D-Bus System Message Bus +Requires=dbus.socket +After=syslog.target + +[Service] +ExecStartPre=@EXPANDED_BINDIR@/dbus-uuidgen --ensure +ExecStartPre=-/bin/rm -f @DBUS_SYSTEM_PID_FILE@ +ExecStart=@EXPANDED_BINDIR@/dbus-daemon --system --address=systemd: --nofork --systemd-activation +ExecReload=@EXPANDED_BINDIR@/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig diff --git a/bus/dbus.socket.in b/bus/dbus.socket.in new file mode 100644 index 00000000..74cbe582 --- /dev/null +++ b/bus/dbus.socket.in @@ -0,0 +1,5 @@ +[Unit] +Description=D-Bus System Message Bus Socket + +[Socket] +ListenStream=@DBUS_SYSTEM_SOCKET@ diff --git a/bus/desktop-file.c b/bus/desktop-file.c index 754a83c3..ae441c5e 100644 --- a/bus/desktop-file.c +++ b/bus/desktop-file.c @@ -21,6 +21,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include <dbus/dbus-sysdeps.h> #include <dbus/dbus-internals.h> #include "desktop-file.h" @@ -330,7 +332,7 @@ new_line (BusDesktopFileParser *parser) line = §ion->lines[section->n_lines++]; - memset (line, 0, sizeof (BusDesktopFileLine)); + _DBUS_ZERO(*line); return line; } diff --git a/bus/desktop-file.h b/bus/desktop-file.h index 7f43458a..58e78e8f 100644 --- a/bus/desktop-file.h +++ b/bus/desktop-file.h @@ -4,7 +4,7 @@ * Copyright (C) 2003 CodeFactory AB * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -14,7 +14,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA @@ -35,6 +35,7 @@ #define DBUS_SERVICE_EXEC "Exec" #define DBUS_SERVICE_USER "User" #define DBUS_SERVICE_GROUP "Group" +#define DBUS_SERVICE_SYSTEMD_SERVICE "SystemdService" typedef struct BusDesktopFile BusDesktopFile; diff --git a/bus/dir-watch-default.c b/bus/dir-watch-default.c index 8e457eb6..69361b1f 100644 --- a/bus/dir-watch-default.c +++ b/bus/dir-watch-default.c @@ -30,11 +30,6 @@ /* NoOp */ void -bus_watch_directory (const char *dir, BusContext *context) -{ -} - -void bus_set_watched_dirs (BusContext *context, DBusList **directories) { } diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c index 094993bb..39eff974 100644 --- a/bus/dir-watch-inotify.c +++ b/bus/dir-watch-inotify.c @@ -24,7 +24,6 @@ #include <config.h> -#define _GNU_SOURCE #include <stdlib.h> #include <unistd.h> #include <fcntl.h> diff --git a/bus/dir-watch-kqueue.c b/bus/dir-watch-kqueue.c index 4a01b748..4e436eb1 100644 --- a/bus/dir-watch-kqueue.c +++ b/bus/dir-watch-kqueue.c @@ -169,7 +169,7 @@ bus_set_watched_dirs (BusContext *context, DBusList **directories) */ for (i = 0; new_dirs[i]; i++) { - for (j = 0; i < num_fds; j++) + for (j = 0; j < num_fds; j++) { if (dirs[j] && strcmp (new_dirs[i], dirs[j]) == 0) { diff --git a/bus/dispatch.c b/bus/dispatch.c index ca55177b..a80476cd 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -6,7 +6,7 @@ * Copyright (C) 2004 Imendio HB * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -16,13 +16,14 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ +#include <config.h> #include "dispatch.h" #include "connection.h" #include "driver.h" @@ -35,6 +36,23 @@ #include <dbus/dbus-internals.h> #include <string.h> +#ifdef HAVE_UNIX_FD_PASSING +#include <dbus/dbus-sysdeps-unix.h> +#include <unistd.h> +#endif + +#ifndef TEST_CONNECTION +/* + TODO autotools: + move to build system as already done for cmake +*/ +#ifdef DBUS_UNIX +#define TEST_CONNECTION "debug-pipe:name=test-server" +#else +#define TEST_CONNECTION "tcp:host=localhost,port=1234" +#endif +#endif + static dbus_bool_t send_one_message (DBusConnection *connection, BusContext *context, @@ -51,7 +69,11 @@ send_one_message (DBusConnection *connection, message, NULL)) return TRUE; /* silently don't send it */ - + + if (dbus_message_contains_unix_fds(message) && + !dbus_connection_can_send_type(connection, DBUS_TYPE_UNIX_FD)) + return TRUE; /* silently don't send it */ + if (!bus_transaction_send (transaction, connection, message)) @@ -97,6 +119,17 @@ bus_dispatch_matches (BusTransaction *transaction, message, error)) return FALSE; + if (dbus_message_contains_unix_fds (message) && + !dbus_connection_can_send_type (addressed_recipient, + DBUS_TYPE_UNIX_FD)) + { + dbus_set_error (error, + DBUS_ERROR_NOT_SUPPORTED, + "Tried to send message with Unix file descriptors" + "to a client that doesn't support that."); + return FALSE; + } + /* Dispatch the message */ if (!bus_transaction_send (transaction, addressed_recipient, message)) { @@ -134,7 +167,7 @@ bus_dispatch_matches (BusTransaction *transaction, } _dbus_list_clear (&recipients); - + if (dbus_error_is_set (&tmp_error)) { dbus_move_error (&tmp_error, error); @@ -154,25 +187,25 @@ bus_dispatch (DBusConnection *connection, BusContext *context; DBusHandlerResult result; DBusConnection *addressed_recipient; - + result = DBUS_HANDLER_RESULT_HANDLED; - + transaction = NULL; addressed_recipient = NULL; dbus_error_init (&error); - + context = bus_connection_get_context (connection); _dbus_assert (context != NULL); - + /* If we can't even allocate an OOM error, we just go to sleep * until we can. */ while (!bus_connection_preallocate_oom_error (connection)) _dbus_wait_for_memory (); - + /* Ref connection in case we disconnect it at some point in here */ dbus_connection_ref (connection); - + service_name = dbus_message_get_destination (message); #ifdef DBUS_ENABLE_VERBOSE_MODE @@ -182,7 +215,7 @@ bus_dispatch (DBusConnection *connection, interface_name = dbus_message_get_interface (message); member_name = dbus_message_get_member (message); error_name = dbus_message_get_error_name (message); - + _dbus_verbose ("DISPATCH: %s %s %s to %s\n", interface_name ? interface_name : "(no interface)", member_name ? member_name : "(no member)", @@ -190,7 +223,7 @@ bus_dispatch (DBusConnection *connection, service_name ? service_name : "peer"); } #endif /* DBUS_ENABLE_VERBOSE_MODE */ - + /* If service_name is NULL, if it's a signal we send it to all * connections with a match rule. If it's not a signal, there * are some special cases here but mostly we just bail out. @@ -214,7 +247,7 @@ bus_dispatch (DBusConnection *connection, goto out; } } - + /* Create our transaction */ transaction = bus_transaction_new (context); if (transaction == NULL) @@ -222,7 +255,7 @@ bus_dispatch (DBusConnection *connection, BUS_SET_OOM (&error); goto out; } - + /* Assign a sender to the message */ if (bus_connection_is_active (connection)) { @@ -242,7 +275,7 @@ bus_dispatch (DBusConnection *connection, */ service_name = dbus_message_get_destination (message); } - + if (service_name && strcmp (service_name, DBUS_SERVICE_DBUS) == 0) /* to bus driver */ { @@ -270,9 +303,9 @@ bus_dispatch (DBusConnection *connection, BusRegistry *registry; _dbus_assert (service_name != NULL); - + registry = bus_connection_get_registry (connection); - + _dbus_string_init_const (&service_string, service_name); service = bus_registry_lookup (registry, &service_string); @@ -292,7 +325,7 @@ bus_dispatch (DBusConnection *connection, _dbus_verbose ("bus_activation_activate_service() failed: %s\n", error.name); goto out; } - + goto out; } else if (service == NULL) @@ -316,7 +349,7 @@ bus_dispatch (DBusConnection *connection, */ if (!bus_dispatch_matches (transaction, connection, addressed_recipient, message, &error)) goto out; - + out: if (dbus_error_is_set (&error)) { @@ -348,7 +381,7 @@ bus_dispatch (DBusConnection *connection, &error, message)) { bus_connection_send_oom_error (connection, message); - + /* cancel transaction due to OOM */ if (transaction != NULL) { @@ -357,8 +390,8 @@ bus_dispatch (DBusConnection *connection, } } } - - + + dbus_error_free (&error); } @@ -382,12 +415,12 @@ bus_dispatch_message_filter (DBusConnection *connection, dbus_bool_t bus_dispatch_add_connection (DBusConnection *connection) -{ +{ if (!dbus_connection_add_filter (connection, bus_dispatch_message_filter, NULL, NULL)) return FALSE; - + return TRUE; } @@ -424,7 +457,7 @@ block_connection_until_message_from_bus (BusContext *context, const char *what_is_expected) { _dbus_verbose ("expecting: %s\n", what_is_expected); - + while (dbus_connection_get_dispatch_status (connection) == DBUS_DISPATCH_COMPLETE && dbus_connection_get_is_connected (connection)) @@ -533,13 +566,13 @@ check_service_owner_changed_foreach (DBusConnection *connection, DBusError error; const char *service_name, *old_owner, *new_owner; - if (d->expected_kind == SERVICE_CREATED + if (d->expected_kind == SERVICE_CREATED && connection == d->skip_connection) return TRUE; dbus_error_init (&error); d->failed = TRUE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -573,7 +606,7 @@ check_service_owner_changed_foreach (DBusConnection *connection, if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY)) { dbus_error_free (&error); - _dbus_wait_for_memory (); + _dbus_wait_for_memory (); goto reget_service_info_data; } else @@ -599,7 +632,7 @@ check_service_owner_changed_foreach (DBusConnection *connection, goto out; } - if (*service_name == ':' && new_owner[0] + if (*service_name == ':' && new_owner[0] && strcmp (service_name, new_owner) != 0) { _dbus_warn ("inconsistent ServiceOwnedChanged message (\"%s\" [ %s -> %s ])\n", @@ -609,10 +642,10 @@ check_service_owner_changed_foreach (DBusConnection *connection, } d->failed = FALSE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); @@ -629,7 +662,7 @@ kill_client_connection (BusContext *context, CheckServiceOwnerChangedData socd; _dbus_verbose ("killing connection %p\n", connection); - + s = dbus_bus_get_unique_name (connection); _dbus_assert (s != NULL); @@ -637,36 +670,36 @@ kill_client_connection (BusContext *context, _dbus_wait_for_memory (); dbus_connection_ref (connection); - + /* kick in the disconnect handler that unrefs the connection */ dbus_connection_close (connection); bus_test_run_everything (context); - + _dbus_assert (bus_test_client_listed (connection)); - + /* Run disconnect handler in test.c */ if (bus_connection_dispatch_one_message (connection)) _dbus_assert_not_reached ("something received on connection being killed other than the disconnect"); - + _dbus_assert (!dbus_connection_get_is_connected (connection)); dbus_connection_unref (connection); connection = NULL; _dbus_assert (!bus_test_client_listed (connection)); - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; socd.skip_connection = NULL; - + bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); dbus_free (base_service); - + if (socd.failed) _dbus_assert_not_reached ("didn't get the expected NameOwnerChanged (deletion) messages"); - + if (!check_no_leftovers (context)) _dbus_assert_not_reached ("stuff left in message queues after disconnecting a client"); } @@ -676,7 +709,7 @@ kill_client_connection_unchecked (DBusConnection *connection) { /* This kills the connection without expecting it to affect * the rest of the bus. - */ + */ _dbus_verbose ("Unchecked kill of connection %p\n", connection); dbus_connection_ref (connection); @@ -722,11 +755,10 @@ check_no_leftovers (BusContext *context) nmd.failed = FALSE; bus_test_clients_foreach (check_no_messages_foreach, &nmd); - + if (nmd.failed) { - _dbus_verbose ("%s: leftover message found\n", - _DBUS_FUNCTION_NAME); + _dbus_verbose ("leftover message found\n"); return FALSE; } else @@ -756,7 +788,7 @@ check_hello_message (BusContext *context, name_message = NULL; _dbus_verbose ("check_hello_message for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -766,7 +798,7 @@ check_hello_message (BusContext *context, return TRUE; dbus_connection_ref (connection); /* because we may get disconnected */ - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -775,44 +807,44 @@ check_hello_message (BusContext *context, } _dbus_assert (dbus_message_has_signature (message, "")); - + dbus_message_unref (message); message = NULL; if (!dbus_connection_get_is_connected (connection)) { _dbus_verbose ("connection was disconnected (presumably auth failed)\n"); - + dbus_connection_unref (connection); - + return TRUE; } - + /* send our message */ bus_test_run_clients_loop (SEND_PENDING (connection)); if (!dbus_connection_get_is_connected (connection)) { _dbus_verbose ("connection was disconnected (presumably auth failed)\n"); - + dbus_connection_unref (connection); - + return TRUE; } - + block_connection_until_message_from_bus (context, connection, "reply to Hello"); if (!dbus_connection_get_is_connected (connection)) { _dbus_verbose ("connection was disconnected (presumably auth failed)\n"); - + dbus_connection_unref (connection); - + return TRUE; } dbus_connection_unref (connection); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -830,7 +862,7 @@ check_hello_message (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_ERROR) { if (dbus_message_is_error (message, @@ -848,7 +880,7 @@ check_hello_message (BusContext *context, else { CheckServiceOwnerChangedData socd; - + if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_RETURN) { ; /* good, expected */ @@ -884,14 +916,14 @@ check_hello_message (BusContext *context, while (!dbus_bus_set_unique_name (connection, name)) _dbus_wait_for_memory (); - + socd.expected_kind = SERVICE_CREATED; socd.expected_service_name = name; socd.failed = FALSE; socd.skip_connection = connection; /* we haven't done AddMatch so won't get it ourselves */ bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; @@ -912,7 +944,7 @@ check_hello_message (BusContext *context, "NameAcquired"); goto out; } - + retry_get_acquired_name: if (!dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &acquired, @@ -946,20 +978,20 @@ check_hello_message (BusContext *context, if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: - _dbus_verbose ("ending %s retval = %d\n", _DBUS_FUNCTION_NAME, retval); - + _dbus_verbose ("ending - retval = %d\n", retval); + dbus_error_free (&error); - + if (message) dbus_message_unref (message); if (name_message) dbus_message_unref (name_message); - + return retval; } @@ -980,7 +1012,7 @@ check_double_hello_message (BusContext *context, message = NULL; _dbus_verbose ("check_double_hello_message for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -988,7 +1020,7 @@ check_double_hello_message (BusContext *context, if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1006,15 +1038,15 @@ check_double_hello_message (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } dbus_connection_unref (connection); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1032,7 +1064,7 @@ check_double_hello_message (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_ERROR) { warn_unexpected (connection, message, "method return for Hello"); @@ -1041,15 +1073,15 @@ check_double_hello_message (BusContext *context, if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1072,7 +1104,7 @@ check_get_connection_unix_user (BusContext *context, message = NULL; _dbus_verbose ("check_get_connection_unix_user for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1083,7 +1115,7 @@ check_get_connection_unix_user (BusContext *context, base_service_name = dbus_bus_get_unique_name (connection); - if (!dbus_message_append_args (message, + if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &base_service_name, DBUS_TYPE_INVALID)) { @@ -1108,10 +1140,10 @@ check_get_connection_unix_user (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } @@ -1183,10 +1215,10 @@ check_get_connection_unix_user (BusContext *context, out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1209,7 +1241,7 @@ check_get_connection_unix_process_id (BusContext *context, message = NULL; _dbus_verbose ("check_get_connection_unix_process_id for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1220,7 +1252,7 @@ check_get_connection_unix_process_id (BusContext *context, base_service_name = dbus_bus_get_unique_name (connection); - if (!dbus_message_append_args (message, + if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &base_service_name, DBUS_TYPE_INVALID)) { @@ -1245,10 +1277,10 @@ check_get_connection_unix_process_id (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } @@ -1278,11 +1310,11 @@ check_get_connection_unix_process_id (BusContext *context, */ _dbus_verbose ("Windows correctly does not support GetConnectionUnixProcessID\n"); } -#endif +#endif else { warn_unexpected (connection, message, "not this error"); - + goto out; } } @@ -1291,7 +1323,7 @@ check_get_connection_unix_process_id (BusContext *context, #ifdef DBUS_WIN warn_unexpected (connection, message, "GetConnectionUnixProcessID to fail on Windows"); goto out; -#else +#else if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_RETURN) { ; /* good, expected */ @@ -1350,10 +1382,10 @@ check_get_connection_unix_process_id (BusContext *context, out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1375,7 +1407,7 @@ check_add_match_all (BusContext *context, message = NULL; _dbus_verbose ("check_add_match_all for %p\n", connection); - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -1391,7 +1423,7 @@ check_add_match_all (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1402,32 +1434,32 @@ check_add_match_all (BusContext *context, message = NULL; dbus_connection_ref (connection); /* because we may get disconnected */ - + /* send our message */ bus_test_run_clients_loop (SEND_PENDING (connection)); if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } - + block_connection_until_message_from_bus (context, connection, "reply to AddMatch"); if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); - + _dbus_verbose ("connection was disconnected\n"); + dbus_connection_unref (connection); - + return TRUE; } dbus_connection_unref (connection); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1445,7 +1477,7 @@ check_add_match_all (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_ERROR) { if (dbus_message_is_error (message, @@ -1477,15 +1509,15 @@ check_add_match_all (BusContext *context, if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); - + return retval; } @@ -1500,7 +1532,7 @@ check_hello_connection (BusContext *context) dbus_error_init (&error); - connection = dbus_connection_open_private ("debug-pipe:name=test-server", &error); + connection = dbus_connection_open_private (TEST_CONNECTION, &error); if (connection == NULL) { _DBUS_ASSERT_ERROR_IS_SET (&error); @@ -1516,10 +1548,10 @@ check_hello_connection (BusContext *context) } spin_connection_until_authenticated (context, connection); - + if (!check_hello_message (context, connection)) return FALSE; - + if (dbus_bus_get_unique_name (connection) == NULL) { /* We didn't successfully register, so we can't @@ -1531,7 +1563,7 @@ check_hello_connection (BusContext *context) { if (!check_add_match_all (context, connection)) return FALSE; - + kill_client_connection (context, connection); } @@ -1552,17 +1584,17 @@ check_nonexistent_service_no_auto_start (BusContext *context, dbus_bool_t retval; const char *nonexistent = NONEXISTENT_SERVICE_NAME; dbus_uint32_t flags; - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, "StartServiceByName"); - + if (message == NULL) return TRUE; dbus_message_set_auto_start (message, FALSE); - + flags = 0; if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &nonexistent, @@ -1572,7 +1604,7 @@ check_nonexistent_service_no_auto_start (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1588,12 +1620,12 @@ check_nonexistent_service_no_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1613,7 +1645,7 @@ check_nonexistent_service_no_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -1638,11 +1670,11 @@ check_nonexistent_service_no_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -1656,15 +1688,15 @@ check_nonexistent_service_auto_start (BusContext *context, DBusMessage *message; dbus_uint32_t serial; dbus_bool_t retval; - + message = dbus_message_new_method_call (NONEXISTENT_SERVICE_NAME, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -1680,12 +1712,12 @@ check_nonexistent_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) @@ -1706,7 +1738,7 @@ check_nonexistent_service_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -1731,11 +1763,11 @@ check_nonexistent_service_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -1749,16 +1781,16 @@ check_base_service_activated (BusContext *context, dbus_bool_t retval; DBusError error; const char *base_service, *base_service_from_bus, *old_owner; - + retval = FALSE; - + dbus_error_init (&error); base_service = NULL; old_owner = NULL; base_service_from_bus = NULL; message = initial_message; - dbus_message_ref (message); + dbus_message_ref (message); if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, @@ -1798,7 +1830,7 @@ check_base_service_activated (BusContext *context, base_service); goto out; } - + if (strcmp (base_service, base_service_from_bus) != 0) { _dbus_warn ("Expected base service activation, got \"%s\" instead with owner \"%s\"\n", @@ -1812,14 +1844,14 @@ check_base_service_activated (BusContext *context, old_owner); goto out; } - + socd.expected_kind = SERVICE_CREATED; socd.expected_service_name = base_service; socd.failed = FALSE; socd.skip_connection = connection; bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; } @@ -1834,7 +1866,7 @@ check_base_service_activated (BusContext *context, *base_service_p = base_service; retval = TRUE; - + out: if (message) dbus_message_unref (message); @@ -1854,9 +1886,9 @@ check_service_activated (BusContext *context, dbus_bool_t retval; DBusError error; dbus_uint32_t activation_result; - + retval = FALSE; - + dbus_error_init (&error); message = initial_message; @@ -1923,15 +1955,15 @@ check_service_activated (BusContext *context, socd.expected_service_name = service_name; bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; - + dbus_message_unref (message); service_name = NULL; old_owner = NULL; base_service_from_bus = NULL; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -1943,10 +1975,10 @@ check_service_activated (BusContext *context, else { warn_unexpected (connection, message, "NameOwnerChanged for the activated name"); - + goto out; } - + if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_METHOD_RETURN) { warn_unexpected (connection, message, "reply to StartServiceByName"); @@ -1984,7 +2016,7 @@ check_service_activated (BusContext *context, dbus_message_unref (message); message = NULL; - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after verifying existent activation results\n"); @@ -1992,12 +2024,12 @@ check_service_activated (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); dbus_error_free (&error); - + return retval; } @@ -2011,9 +2043,9 @@ check_service_auto_activated (BusContext *context, DBusMessage *message; dbus_bool_t retval; DBusError error; - + retval = FALSE; - + dbus_error_init (&error); message = initial_message; @@ -2025,7 +2057,7 @@ check_service_auto_activated (BusContext *context, { const char *service_name; CheckServiceOwnerChangedData socd; - + reget_service_name_arg: if (!dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &service_name, @@ -2046,28 +2078,28 @@ check_service_auto_activated (BusContext *context, goto out; } } - + if (strcmp (service_name, activated_name) != 0) { _dbus_warn ("Expected to see service %s created, saw %s instead\n", activated_name, service_name); goto out; } - + socd.expected_kind = SERVICE_CREATED; socd.expected_service_name = service_name; socd.failed = FALSE; - socd.skip_connection = connection; + socd.skip_connection = connection; bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); - + if (socd.failed) goto out; - + /* Note that this differs from regular activation in that we don't get a * reply to ActivateService here. */ - + dbus_message_unref (message); message = NULL; service_name = NULL; @@ -2075,16 +2107,16 @@ check_service_auto_activated (BusContext *context, else { warn_unexpected (connection, message, "NameOwnerChanged for the activated name"); - + goto out; } - + retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -2098,7 +2130,7 @@ check_service_deactivated (BusContext *context, CheckServiceOwnerChangedData socd; retval = FALSE; - + /* Now we are expecting ServiceOwnerChanged (deletion) messages for the base * service and the activated_name. The base service * notification is required to come last. @@ -2108,11 +2140,11 @@ check_service_deactivated (BusContext *context, socd.failed = FALSE; socd.skip_connection = NULL; bus_test_clients_foreach (check_service_owner_changed_foreach, - &socd); + &socd); if (socd.failed) goto out; - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; @@ -2124,7 +2156,7 @@ check_service_deactivated (BusContext *context, goto out; retval = TRUE; - + out: return retval; } @@ -2139,27 +2171,27 @@ check_send_exit_to_service (BusContext *context, DBusMessage *message; dbus_uint32_t serial; dbus_bool_t retval; - + _dbus_verbose ("Sending exit message to the test service\n"); retval = FALSE; - + /* Kill off the test service by sending it a quit message */ message = dbus_message_new_method_call (service_name, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Exit"); - + if (message == NULL) { /* Do this again; we still need the service to exit... */ if (!check_send_exit_to_service (context, connection, service_name, base_service)) goto out; - + return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2168,7 +2200,7 @@ check_send_exit_to_service (BusContext *context, if (!check_send_exit_to_service (context, connection, service_name, base_service)) goto out; - + return TRUE; } @@ -2190,12 +2222,12 @@ check_send_exit_to_service (BusContext *context, dbus_connection_return_message (connection, message); message = NULL; } - + if (!got_error) { /* If no error, wait for the test service to exit */ block_connection_until_message_from_bus (context, connection, "test service to exit"); - + bus_test_run_everything (context); } @@ -2210,7 +2242,7 @@ check_send_exit_to_service (BusContext *context, "error with the correct reply serial"); goto out; } - + if (!dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2238,7 +2270,7 @@ check_send_exit_to_service (BusContext *context, * stuff. */ message = pop_message_waiting_for_memory (connection); - + if (message == NULL) { warn_unexpected (connection, NULL, @@ -2259,10 +2291,10 @@ check_send_exit_to_service (BusContext *context, "error with the correct reply serial"); goto out; } - + _dbus_verbose ("Got error %s after test service exited\n", dbus_message_get_error_name (message)); - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after %s\n", @@ -2270,13 +2302,13 @@ check_send_exit_to_service (BusContext *context, goto out; } } - + retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -2291,9 +2323,9 @@ check_got_error (BusContext *context, va_list ap; dbus_bool_t error_found; const char *error_name; - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2332,20 +2364,20 @@ check_got_error (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } - + typedef enum -{ +{ GOT_SERVICE_CREATED, GOT_SERVICE_DELETED, GOT_ERROR, - GOT_SOMETHING_ELSE + GOT_SOMETHING_ELSE } GotServiceInfo; static GotServiceInfo @@ -2419,7 +2451,7 @@ check_existent_service_no_auto_start (BusContext *context, dbus_uint32_t flags; base_service_message = NULL; - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -2429,7 +2461,7 @@ check_existent_service_no_auto_start (BusContext *context, return TRUE; dbus_message_set_auto_start (message, FALSE); - + flags = 0; if (!dbus_message_append_args (message, DBUS_TYPE_STRING, &existent, @@ -2439,7 +2471,7 @@ check_existent_service_no_auto_start (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2460,12 +2492,12 @@ check_existent_service_no_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2486,7 +2518,7 @@ check_existent_service_no_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2511,7 +2543,7 @@ check_existent_service_no_auto_start (BusContext *context, else { GotServiceInfo message_kind; - + if (!check_base_service_activated (context, connection, message, &base_service)) goto out; @@ -2521,7 +2553,7 @@ check_existent_service_no_auto_start (BusContext *context, /* We may need to block here for the test service to exit or finish up */ block_connection_until_message_from_bus (context, connection, "test service to exit or finish up"); - + message = dbus_connection_borrow_message (connection); if (message == NULL) { @@ -2564,7 +2596,7 @@ check_existent_service_no_auto_start (BusContext *context, socd.expected_service_name = base_service; socd.failed = FALSE; socd.skip_connection = NULL; - + bus_test_clients_foreach (check_service_owner_changed_foreach, &socd); @@ -2577,10 +2609,10 @@ check_existent_service_no_auto_start (BusContext *context, if (message_kind != GOT_ERROR) { block_connection_until_message_from_bus (context, connection, "error about service exiting"); - + /* and process everything again */ bus_test_run_everything (context); - + if (!check_got_error (context, connection, DBUS_ERROR_SPAWN_CHILD_EXITED, DBUS_ERROR_NO_MEMORY, @@ -2598,11 +2630,11 @@ check_existent_service_no_auto_start (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + if (!check_service_activated (context, connection, EXISTENT_SERVICE_NAME, base_service, message)) goto out; - + dbus_message_unref (message); message = NULL; @@ -2621,14 +2653,14 @@ check_existent_service_no_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); if (base_service_message) dbus_message_unref (base_service_message); - + return retval; } @@ -2645,7 +2677,7 @@ check_segfault_service_no_auto_start (BusContext *context, dbus_bool_t retval; const char *segv_service; dbus_uint32_t flags; - + message = dbus_message_new_method_call (DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, @@ -2655,7 +2687,7 @@ check_segfault_service_no_auto_start (BusContext *context, return TRUE; dbus_message_set_auto_start (message, FALSE); - + segv_service = "org.freedesktop.DBus.TestSuiteSegfaultService"; flags = 0; if (!dbus_message_append_args (message, @@ -2666,7 +2698,7 @@ check_segfault_service_no_auto_start (BusContext *context, dbus_message_unref (message); return TRUE; } - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2682,12 +2714,12 @@ check_segfault_service_no_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2707,7 +2739,7 @@ check_segfault_service_no_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2740,11 +2772,11 @@ check_segfault_service_no_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -2764,10 +2796,10 @@ check_segfault_service_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -2783,12 +2815,12 @@ check_segfault_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2808,7 +2840,7 @@ check_segfault_service_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -2833,11 +2865,11 @@ check_segfault_service_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } #endif @@ -2860,7 +2892,7 @@ check_existent_hello_from_self (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "RunHelloFromSelf"); - + if (message == NULL) return TRUE; @@ -2888,7 +2920,7 @@ check_existent_hello_from_self (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from running hello from self"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2905,7 +2937,7 @@ check_existent_hello_from_self (BusContext *context, dbus_message_unref (message); message = NULL; - + return TRUE; } @@ -2922,7 +2954,7 @@ check_existent_ping (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.DBus.Peer", "Ping"); - + if (message == NULL) return TRUE; @@ -2941,7 +2973,7 @@ check_existent_ping (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from running Ping"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -2965,7 +2997,7 @@ check_existent_ping (BusContext *context, dbus_message_unref (message); message = NULL; - + return TRUE; } @@ -2979,12 +3011,12 @@ check_existent_get_machine_id (BusContext *context, DBusMessage *message; dbus_uint32_t serial; const char *machine_id; - + message = dbus_message_new_method_call (EXISTENT_SERVICE_NAME, "/org/freedesktop/TestSuite", "org.freedesktop.DBus.Peer", "GetMachineId"); - + if (message == NULL) return TRUE; @@ -3003,7 +3035,7 @@ check_existent_get_machine_id (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from running GetMachineId"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3039,14 +3071,14 @@ check_existent_get_machine_id (BusContext *context, dbus_message_unref (message); return FALSE; } - + /* We can't check that the machine id is correct because during make check it is * just made up for each process separately */ - + dbus_message_unref (message); message = NULL; - + return TRUE; } @@ -3070,7 +3102,7 @@ check_existent_service_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; @@ -3102,12 +3134,12 @@ check_existent_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3152,7 +3184,7 @@ check_existent_service_auto_start (BusContext *context, dbus_connection_return_message (connection, message); message = NULL; - switch (message_kind) + switch (message_kind) { case GOT_SERVICE_CREATED: message = pop_message_waiting_for_memory (connection); @@ -3162,12 +3194,12 @@ check_existent_service_auto_start (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + /* Check that ServiceOwnerChanged (creation) was correctly received */ if (!check_service_auto_activated (context, connection, EXISTENT_SERVICE_NAME, base_service, message)) goto out; - + dbus_message_unref (message); message = NULL; @@ -3179,7 +3211,7 @@ check_existent_service_auto_start (BusContext *context, * failed to register under EXISTENT_SERVICE_NAME */ CheckServiceOwnerChangedData socd; - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; @@ -3208,7 +3240,7 @@ check_existent_service_auto_start (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from echo message after auto-activation"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3230,7 +3262,7 @@ check_existent_service_auto_start (BusContext *context, if (!check_existent_get_machine_id (context, connection)) goto out; - + if (!check_existent_hello_from_self (context, connection)) goto out; @@ -3238,7 +3270,7 @@ check_existent_service_auto_start (BusContext *context, EXISTENT_SERVICE_NAME, base_service)) goto out; - + retval = TRUE; out: @@ -3268,7 +3300,7 @@ check_launch_service_file_missing (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; @@ -3287,12 +3319,12 @@ check_launch_service_file_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3312,7 +3344,7 @@ check_launch_service_file_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3338,11 +3370,11 @@ check_launch_service_file_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3383,12 +3415,12 @@ check_launch_service_user_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_warn ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3408,7 +3440,7 @@ check_launch_service_user_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3434,11 +3466,11 @@ check_launch_service_user_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3479,12 +3511,12 @@ check_launch_service_exec_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_warn ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3504,7 +3536,7 @@ check_launch_service_exec_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3538,11 +3570,11 @@ check_launch_service_exec_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3583,12 +3615,12 @@ check_launch_service_service_missing (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_warn ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3608,7 +3640,7 @@ check_launch_service_service_missing (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3642,11 +3674,11 @@ check_launch_service_service_missing (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3667,10 +3699,10 @@ check_shell_fail_service_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; - + if (!dbus_connection_send (connection, message, &serial)) { dbus_message_unref (message); @@ -3686,12 +3718,12 @@ check_shell_fail_service_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } - + retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3711,7 +3743,7 @@ check_shell_fail_service_auto_start (BusContext *context, dbus_message_get_sender (message) : "(none)"); goto out; } - + if (dbus_message_is_error (message, DBUS_ERROR_NO_MEMORY)) { @@ -3737,11 +3769,11 @@ check_shell_fail_service_auto_start (BusContext *context, } retval = TRUE; - + out: if (message) dbus_message_unref (message); - + return retval; } @@ -3767,7 +3799,7 @@ check_shell_service_success_auto_start (BusContext *context, "/org/freedesktop/TestSuite", "org.freedesktop.TestSuite", "Echo"); - + if (message == NULL) return TRUE; @@ -3790,12 +3822,12 @@ check_shell_service_success_auto_start (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } retval = FALSE; - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3840,7 +3872,7 @@ check_shell_service_success_auto_start (BusContext *context, dbus_connection_return_message (connection, message); message = NULL; - switch (message_kind) + switch (message_kind) { case GOT_SERVICE_CREATED: message = pop_message_waiting_for_memory (connection); @@ -3850,12 +3882,12 @@ check_shell_service_success_auto_start (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + /* Check that ServiceOwnerChanged (creation) was correctly received */ if (!check_service_auto_activated (context, connection, SHELL_SUCCESS_SERVICE_NAME, base_service, message)) goto out; - + dbus_message_unref (message); message = NULL; @@ -3867,7 +3899,7 @@ check_shell_service_success_auto_start (BusContext *context, * failed to register under SHELL_SUCCESS_SERVICE_NAME */ CheckServiceOwnerChangedData socd; - + socd.expected_kind = SERVICE_DELETED; socd.expected_service_name = base_service; socd.failed = FALSE; @@ -3896,7 +3928,7 @@ check_shell_service_success_auto_start (BusContext *context, * doesn't send a reply due to OOM. */ block_connection_until_message_from_bus (context, connection, "reply from echo message after auto-activation"); - + message = pop_message_waiting_for_memory (connection); if (message == NULL) { @@ -3911,7 +3943,7 @@ check_shell_service_success_auto_start (BusContext *context, } if (!dbus_message_get_args (message, NULL, - DBUS_TYPE_STRING, &argv[0], + DBUS_TYPE_STRING, &argv[0], DBUS_TYPE_STRING, &argv[1], DBUS_TYPE_STRING, &argv[2], DBUS_TYPE_STRING, &argv[3], @@ -3924,59 +3956,59 @@ check_shell_service_success_auto_start (BusContext *context, goto out; } - /* don't worry about arg[0] as it may be different + /* don't worry about arg[0] as it may be different depending on the path to the tests */ if (strcmp("-test", argv[1]) != 0) { - _dbus_warn ("Unexpected argv[1] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[1] in shell success service test (expected: %s, got: %s)\n", "-test", argv[1]); goto out; - } + } if (strcmp("that", argv[2]) != 0) { - _dbus_warn ("Unexpected argv[2] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[2] in shell success service test (expected: %s, got: %s)\n", "that", argv[2]); goto out; - } + } if (strcmp("we get", argv[3]) != 0) { - _dbus_warn ("Unexpected argv[3] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[3] in shell success service test (expected: %s, got: %s)\n", "we get", argv[3]); goto out; - } - + } + if (strcmp("back", argv[4]) != 0) { - _dbus_warn ("Unexpected argv[4] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[4] in shell success service test (expected: %s, got: %s)\n", "back", argv[4]); goto out; - } + } if (strcmp("--what", argv[5]) != 0) { - _dbus_warn ("Unexpected argv[5] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[5] in shell success service test (expected: %s, got: %s)\n", "--what", argv[5]); goto out; - } + } if (strcmp("we put in", argv[6]) != 0) { - _dbus_warn ("Unexpected argv[6] in shell success service test (expected: %s, got: %s)\n", + _dbus_warn ("Unexpected argv[6] in shell success service test (expected: %s, got: %s)\n", "we put in", argv[6]); goto out; - } + } dbus_message_unref (message); message = NULL; - + if (!check_send_exit_to_service (context, connection, SHELL_SUCCESS_SERVICE_NAME, base_service)) goto out; - + retval = TRUE; out: @@ -4002,7 +4034,7 @@ check_oom_check1_func (void *data) if (! (* d->func) (d->context)) return FALSE; - + if (!check_no_leftovers (d->context)) { _dbus_warn ("Messages were left over, should be covered by test suite\n"); @@ -4070,7 +4102,7 @@ check_get_services (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); dbus_connection_unref (connection); @@ -4142,15 +4174,15 @@ check_get_services (BusContext *context, *len = l; } } - + if (!check_no_leftovers (context)) goto out; - + retval = TRUE; - + out: dbus_error_free (&error); - + if (message) dbus_message_unref (message); @@ -4184,6 +4216,7 @@ check_list_services (BusContext *context, if (!_dbus_string_array_contains ((const char **)services, existent)) { _dbus_warn ("Did not get the expected %s from ListActivatableNames\n", existent); + dbus_free_string_array (services); return FALSE; } @@ -4231,7 +4264,7 @@ check_list_services (BusContext *context, if (!dbus_connection_get_is_connected (connection)) { - _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__); + _dbus_verbose ("connection was disconnected\n"); return TRUE; } @@ -4322,7 +4355,7 @@ check_list_services (BusContext *context, "should have been a NameOwnerChanged (creation)\n"); goto out; } - + if (!check_service_activated (context, connection, EXISTENT_SERVICE_NAME, base_service, message)) goto out; @@ -4339,7 +4372,7 @@ check_list_services (BusContext *context, break; } } - + if (!check_get_services (context, connection, "ListNames", &services, &len)) { return TRUE; @@ -4383,7 +4416,7 @@ check_oom_check2_func (void *data) if (! (* d->func) (d->context, d->connection)) return FALSE; - + if (!check_no_leftovers (d->context)) { _dbus_warn ("Messages were left over, should be covered by test suite\n"); @@ -4404,7 +4437,7 @@ check2_try_iterations (BusContext *context, d.func = func; d.context = context; d.connection = connection; - + if (!_dbus_test_oom_handling (description, check_oom_check2_func, &d)) { @@ -4427,19 +4460,19 @@ setenv_TEST_LAUNCH_HELPER_CONFIG(const DBusString *test_data_dir, { _dbus_string_free (&full); return FALSE; - } + } _dbus_string_init_const (&file, filename); - + if (!_dbus_concat_dir_and_file (&full, &file)) { _dbus_string_free (&full); return FALSE; } - _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n", + _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n", _dbus_string_get_const_data (&full)); - + _dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full)); _dbus_string_free (&full); @@ -4463,12 +4496,12 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG"); dbus_error_init (&error); - + context = bus_context_new_test (test_data_dir, filename); if (context == NULL) return FALSE; - - foo = dbus_connection_open_private ("debug-pipe:name=test-server", &error); + + foo = dbus_connection_open_private (TEST_CONNECTION, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4476,7 +4509,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, foo); - + if (!check_hello_message (context, foo)) _dbus_assert_not_reached ("hello message failed"); @@ -4485,8 +4518,8 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, if (!check_add_match_all (context, foo)) _dbus_assert_not_reached ("AddMatch message failed"); - - bar = dbus_connection_open_private ("debug-pipe:name=test-server", &error); + + bar = dbus_connection_open_private (TEST_CONNECTION, &error); if (bar == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4494,14 +4527,14 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, bar); - + if (!check_hello_message (context, bar)) _dbus_assert_not_reached ("hello message failed"); if (!check_add_match_all (context, bar)) _dbus_assert_not_reached ("AddMatch message failed"); - - baz = dbus_connection_open_private ("debug-pipe:name=test-server", &error); + + baz = dbus_connection_open_private (TEST_CONNECTION, &error); if (baz == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4509,31 +4542,36 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, baz); - + if (!check_hello_message (context, baz)) _dbus_assert_not_reached ("hello message failed"); if (!check_add_match_all (context, baz)) _dbus_assert_not_reached ("AddMatch message failed"); +#ifdef DBUS_WIN_FIXME + _dbus_warn("TODO: testing of GetConnectionUnixUser message skipped for now\n"); + _dbus_warn("TODO: testing of GetConnectionUnixProcessID message skipped for now\n"); +#else if (!check_get_connection_unix_user (context, baz)) _dbus_assert_not_reached ("GetConnectionUnixUser message failed"); if (!check_get_connection_unix_process_id (context, baz)) _dbus_assert_not_reached ("GetConnectionUnixProcessID message failed"); +#endif if (!check_list_services (context, baz)) _dbus_assert_not_reached ("ListActivatableNames message failed"); - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after setting up initial connections\n"); _dbus_assert_not_reached ("initial connection setup failed"); } - + check1_try_iterations (context, "create_and_hello", check_hello_connection); - + check2_try_iterations (context, foo, "nonexistent_service_no_auto_start", check_nonexistent_service_no_auto_start); @@ -4543,15 +4581,15 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, check2_try_iterations (context, foo, "segfault_service_no_auto_start", check_segfault_service_no_auto_start); #endif - + check2_try_iterations (context, foo, "existent_service_no_auto_start", check_existent_service_no_auto_start); - + check2_try_iterations (context, foo, "nonexistent_service_auto_start", check_nonexistent_service_auto_start); - -#ifdef DBUS_WIN_FIXME + +#ifdef DBUS_WIN_FIXME _dbus_warn("TODO: dispatch.c segfault_service_auto_start test\n"); #else /* only do the segfault test if we are not using the launcher */ @@ -4576,7 +4614,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, check2_try_iterations (context, foo, "existent_service_auto_auto_start", check_existent_service_auto_start); #endif - + if (!check_existent_service_auto_start (context, foo)) _dbus_assert_not_reached ("existent service auto start failed"); @@ -4590,7 +4628,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, kill_client_connection_unchecked (baz); bus_context_unref (context); - + return TRUE; } @@ -4605,14 +4643,14 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir, /* save the config name for the activation helper */ if (!setenv_TEST_LAUNCH_HELPER_CONFIG (test_data_dir, filename)) _dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG"); - + dbus_error_init (&error); - + context = bus_context_new_test (test_data_dir, filename); if (context == NULL) return FALSE; - - foo = dbus_connection_open_private ("debug-pipe:name=test-server", &error); + + foo = dbus_connection_open_private (TEST_CONNECTION, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4647,7 +4685,7 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir, kill_client_connection_unchecked (foo); bus_context_unref (context); - + return TRUE; } @@ -4660,6 +4698,9 @@ bus_dispatch_test (const DBusString *test_data_dir) "valid-config-files/debug-allow-all.conf", FALSE)) return FALSE; +#ifdef DBUS_WIN + _dbus_warn("Info: Launch helper activation tests skipped because launch-helper is not supported yet\n"); +#else /* run launch-helper activation tests */ _dbus_verbose ("Launch helper activation tests\n"); if (!bus_dispatch_test_conf (test_data_dir, @@ -4670,6 +4711,7 @@ bus_dispatch_test (const DBusString *test_data_dir) if (!bus_dispatch_test_conf_fail (test_data_dir, "valid-config-files-system/debug-allow-all-fail.conf")) return FALSE; +#endif return TRUE; } @@ -4682,16 +4724,16 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir) DBusError error; dbus_error_init (&error); - + /* Test SHA1 authentication */ _dbus_verbose ("Testing SHA1 context\n"); - + context = bus_context_new_test (test_data_dir, "valid-config-files/debug-allow-all-sha1.conf"); if (context == NULL) return FALSE; - foo = dbus_connection_open_private ("debug-pipe:name=test-server", &error); + foo = dbus_connection_open_private (TEST_CONNECTION, &error); if (foo == NULL) _dbus_assert_not_reached ("could not alloc connection"); @@ -4699,19 +4741,19 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir) _dbus_assert_not_reached ("could not set up connection"); spin_connection_until_authenticated (context, foo); - + if (!check_hello_message (context, foo)) _dbus_assert_not_reached ("hello message failed"); if (!check_add_match_all (context, foo)) _dbus_assert_not_reached ("addmatch message failed"); - + if (!check_no_leftovers (context)) { _dbus_warn ("Messages were left over after setting up initial SHA-1 connection\n"); _dbus_assert_not_reached ("initial connection setup failed"); } - + check1_try_iterations (context, "create_and_hello_sha1", check_hello_connection); @@ -4722,4 +4764,155 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir) return TRUE; } +#ifdef HAVE_UNIX_FD_PASSING + +dbus_bool_t +bus_unix_fds_passing_test(const DBusString *test_data_dir) +{ + BusContext *context; + DBusConnection *foo, *bar; + DBusError error; + DBusMessage *m; + dbus_bool_t b; + int one[2], two[2], x, y, z; + char r; + + dbus_error_init (&error); + + context = bus_context_new_test (test_data_dir, "valid-config-files/debug-allow-all.conf"); + if (context == NULL) + _dbus_assert_not_reached ("could not alloc context"); + + foo = dbus_connection_open_private (TEST_CONNECTION, &error); + if (foo == NULL) + _dbus_assert_not_reached ("could not alloc connection"); + + if (!bus_setup_debug_client (foo)) + _dbus_assert_not_reached ("could not set up connection"); + + spin_connection_until_authenticated (context, foo); + + if (!check_hello_message (context, foo)) + _dbus_assert_not_reached ("hello message failed"); + + if (!check_add_match_all (context, foo)) + _dbus_assert_not_reached ("AddMatch message failed"); + + bar = dbus_connection_open_private (TEST_CONNECTION, &error); + if (bar == NULL) + _dbus_assert_not_reached ("could not alloc connection"); + + if (!bus_setup_debug_client (bar)) + _dbus_assert_not_reached ("could not set up connection"); + + spin_connection_until_authenticated (context, bar); + + if (!check_hello_message (context, bar)) + _dbus_assert_not_reached ("hello message failed"); + + if (!check_add_match_all (context, bar)) + _dbus_assert_not_reached ("AddMatch message failed"); + + if (!(m = dbus_message_new_signal("/", "a.b.c", "d"))) + _dbus_assert_not_reached ("could not alloc message"); + + if (!(_dbus_full_duplex_pipe(one, one+1, TRUE, &error))) + _dbus_assert_not_reached("Failed to allocate pipe #1"); + + if (!(_dbus_full_duplex_pipe(two, two+1, TRUE, &error))) + _dbus_assert_not_reached("Failed to allocate pipe #2"); + + if (!dbus_message_append_args(m, + DBUS_TYPE_UNIX_FD, one, + DBUS_TYPE_UNIX_FD, two, + DBUS_TYPE_UNIX_FD, two, + DBUS_TYPE_INVALID)) + _dbus_assert_not_reached("Failed to attach fds."); + + if (!_dbus_close(one[0], &error)) + _dbus_assert_not_reached("Failed to close pipe #1 "); + if (!_dbus_close(two[0], &error)) + _dbus_assert_not_reached("Failed to close pipe #2 "); + + if (!(dbus_connection_can_send_type(foo, DBUS_TYPE_UNIX_FD))) + _dbus_assert_not_reached("Connection cannot do fd passing"); + + if (!(dbus_connection_can_send_type(bar, DBUS_TYPE_UNIX_FD))) + _dbus_assert_not_reached("Connection cannot do fd passing"); + + if (!dbus_connection_send (foo, m, NULL)) + _dbus_assert_not_reached("Failed to send fds"); + + dbus_message_unref(m); + + bus_test_run_clients_loop (SEND_PENDING (foo)); + + bus_test_run_everything (context); + + block_connection_until_message_from_bus (context, foo, "unix fd reception on foo"); + + if (!(m = pop_message_waiting_for_memory (foo))) + _dbus_assert_not_reached("Failed to receive msg"); + + if (!dbus_message_is_signal(m, "a.b.c", "d")) + _dbus_assert_not_reached("bogus message received"); + + dbus_message_unref(m); + + block_connection_until_message_from_bus (context, bar, "unix fd reception on bar"); + + if (!(m = pop_message_waiting_for_memory (bar))) + _dbus_assert_not_reached("Failed to receive msg"); + + if (!dbus_message_is_signal(m, "a.b.c", "d")) + _dbus_assert_not_reached("bogus message received"); + + if (!dbus_message_get_args(m, + &error, + DBUS_TYPE_UNIX_FD, &x, + DBUS_TYPE_UNIX_FD, &y, + DBUS_TYPE_UNIX_FD, &z, + DBUS_TYPE_INVALID)) + _dbus_assert_not_reached("Failed to parse fds."); + + dbus_message_unref(m); + + if (write(x, "X", 1) != 1) + _dbus_assert_not_reached("Failed to write to pipe #1"); + if (write(y, "Y", 1) != 1) + _dbus_assert_not_reached("Failed to write to pipe #2"); + if (write(z, "Z", 1) != 1) + _dbus_assert_not_reached("Failed to write to pipe #2/2nd fd"); + + if (!_dbus_close(x, &error)) + _dbus_assert_not_reached("Failed to close pipe #1/other side "); + if (!_dbus_close(y, &error)) + _dbus_assert_not_reached("Failed to close pipe #2/other side "); + if (!_dbus_close(z, &error)) + _dbus_assert_not_reached("Failed to close pipe #2/other size 2nd fd "); + + if (read(one[1], &r, 1) != 1 || r != 'X') + _dbus_assert_not_reached("Failed to read value from pipe."); + if (read(two[1], &r, 1) != 1 || r != 'Y') + _dbus_assert_not_reached("Failed to read value from pipe."); + if (read(two[1], &r, 1) != 1 || r != 'Z') + _dbus_assert_not_reached("Failed to read value from pipe."); + + if (!_dbus_close(one[1], &error)) + _dbus_assert_not_reached("Failed to close pipe #1 "); + if (!_dbus_close(two[1], &error)) + _dbus_assert_not_reached("Failed to close pipe #2 "); + + _dbus_verbose ("Disconnecting foo\n"); + kill_client_connection_unchecked (foo); + + _dbus_verbose ("Disconnecting bar\n"); + kill_client_connection_unchecked (bar); + + bus_context_unref (context); + + return TRUE; +} +#endif + #endif /* DBUS_BUILD_TESTS */ diff --git a/bus/driver.c b/bus/driver.c index 5e8a7a26..cc8d1f26 100644 --- a/bus/driver.c +++ b/bus/driver.c @@ -5,7 +5,7 @@ * Copyright (C) 2003, 2004, 2005 Red Hat, Inc. * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -15,13 +15,14 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ +#include <config.h> #include "activation.h" #include "connection.h" #include "driver.h" @@ -56,20 +57,20 @@ bus_driver_send_service_owner_changed (const char *service_name, null_service = ""; _dbus_verbose ("sending name owner changed: %s [%s -> %s]\n", - service_name, - old_owner ? old_owner : null_service, + service_name, + old_owner ? old_owner : null_service, new_owner ? new_owner : null_service); message = dbus_message_new_signal (DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, "NameOwnerChanged"); - + if (message == NULL) { BUS_SET_OOM (error); return FALSE; } - + if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS)) goto oom; @@ -81,7 +82,7 @@ bus_driver_send_service_owner_changed (const char *service_name, goto oom; _dbus_assert (dbus_message_has_signature (message, "sss")); - + retval = bus_dispatch_matches (transaction, NULL, NULL, message, error); dbus_message_unref (message); @@ -102,17 +103,17 @@ bus_driver_send_service_lost (DBusConnection *connection, DBusMessage *message; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + message = dbus_message_new_signal (DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, "NameLost"); - + if (message == NULL) { BUS_SET_OOM (error); return FALSE; } - + if (!dbus_message_set_destination (message, bus_connection_get_name (connection)) || !dbus_message_append_args (message, DBUS_TYPE_STRING, &service_name, @@ -145,7 +146,7 @@ bus_driver_send_service_acquired (DBusConnection *connection, DBusMessage *message; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + message = dbus_message_new_signal (DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, "NameAcquired"); @@ -155,7 +156,7 @@ bus_driver_send_service_acquired (DBusConnection *connection, BUS_SET_OOM (error); return FALSE; } - + if (!dbus_message_set_destination (message, bus_connection_get_name (connection)) || !dbus_message_append_args (message, DBUS_TYPE_STRING, &service_name, @@ -193,9 +194,9 @@ create_unique_client_name (BusRegistry *registry, static int next_major_number = 0; static int next_minor_number = 0; int len; - + len = _dbus_string_get_length (str); - + while (TRUE) { /* start out with 1-0, go to 1-1, 1-2, 1-3, @@ -213,21 +214,21 @@ create_unique_client_name (BusRegistry *registry, _dbus_assert (next_minor_number >= 0); /* appname:MAJOR-MINOR */ - + if (!_dbus_string_append (str, ":")) return FALSE; - + if (!_dbus_string_append_int (str, next_major_number)) return FALSE; if (!_dbus_string_append (str, ".")) return FALSE; - + if (!_dbus_string_append_int (str, next_minor_number)) return FALSE; next_minor_number += 1; - + /* Check if a client with the name exists */ if (bus_registry_lookup (registry, str) == NULL) break; @@ -274,7 +275,7 @@ bus_driver_handle_hello (DBusConnection *connection, _DBUS_ASSERT_ERROR_IS_SET (error); return FALSE; } - + if (!_dbus_string_init (&unique_name)) { BUS_SET_OOM (error); @@ -284,7 +285,7 @@ bus_driver_handle_hello (DBusConnection *connection, retval = FALSE; registry = bus_connection_get_registry (connection); - + if (!create_unique_client_name (registry, &unique_name)) { BUS_SET_OOM (error); @@ -296,14 +297,14 @@ bus_driver_handle_hello (DBusConnection *connection, _DBUS_ASSERT_ERROR_IS_SET (error); goto out_0; } - + if (!dbus_message_set_sender (message, bus_connection_get_name (connection))) { BUS_SET_OOM (error); goto out_0; } - + if (!bus_driver_send_welcome_message (connection, message, transaction, error)) goto out_0; @@ -312,10 +313,10 @@ bus_driver_handle_hello (DBusConnection *connection, &unique_name, connection, 0, transaction, error); if (service == NULL) goto out_0; - + _dbus_assert (bus_connection_is_active (connection)); retval = TRUE; - + out_0: _dbus_string_free (&unique_name); return retval; @@ -331,17 +332,17 @@ bus_driver_send_welcome_message (DBusConnection *connection, const char *name; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + name = bus_connection_get_name (connection); _dbus_assert (name != NULL); - + welcome = dbus_message_new_method_return (hello_message); if (welcome == NULL) { BUS_SET_OOM (error); return FALSE; } - + if (!dbus_message_append_args (welcome, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) @@ -352,7 +353,7 @@ bus_driver_send_welcome_message (DBusConnection *connection, } _dbus_assert (dbus_message_has_signature (welcome, DBUS_TYPE_STRING_AS_STRING)); - + if (!bus_transaction_send_from_driver (transaction, connection, welcome)) { dbus_message_unref (welcome); @@ -381,9 +382,9 @@ bus_driver_handle_list_services (DBusConnection *connection, DBusMessageIter sub; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + registry = bus_connection_get_registry (connection); - + reply = dbus_message_new_method_return (message); if (reply == NULL) { @@ -399,7 +400,7 @@ bus_driver_handle_list_services (DBusConnection *connection, } dbus_message_iter_init_append (reply, &iter); - + if (!dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &sub)) @@ -422,7 +423,7 @@ bus_driver_handle_list_services (DBusConnection *connection, return FALSE; } } - + i = 0; while (i < len) { @@ -445,7 +446,7 @@ bus_driver_handle_list_services (DBusConnection *connection, BUS_SET_OOM (error); return FALSE; } - + if (!bus_transaction_send_from_driver (transaction, connection, reply)) { dbus_message_unref (reply); @@ -567,17 +568,17 @@ bus_driver_handle_acquire_service (DBusConnection *connection, BusRegistry *registry; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + registry = bus_connection_get_registry (connection); - + if (!dbus_message_get_args (message, error, DBUS_TYPE_STRING, &name, DBUS_TYPE_UINT32, &flags, DBUS_TYPE_INVALID)) return FALSE; - + _dbus_verbose ("Trying to own name %s with flags 0x%x\n", name, flags); - + retval = FALSE; reply = NULL; @@ -588,7 +589,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection, &service_reply, transaction, error)) goto out; - + reply = dbus_message_new_method_return (message); if (reply == NULL) { @@ -609,12 +610,12 @@ bus_driver_handle_acquire_service (DBusConnection *connection, } retval = TRUE; - + out: if (reply) dbus_message_unref (reply); return retval; -} +} static dbus_bool_t bus_driver_handle_release_service (DBusConnection *connection, @@ -692,9 +693,9 @@ bus_driver_handle_service_exists (DBusConnection *connection, BusRegistry *registry; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + registry = bus_connection_get_registry (connection); - + if (!dbus_message_get_args (message, error, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) @@ -712,7 +713,7 @@ bus_driver_handle_service_exists (DBusConnection *connection, service = bus_registry_lookup (registry, &service_name); service_exists = service != NULL; } - + reply = dbus_message_new_method_return (message); if (reply == NULL) { @@ -735,7 +736,7 @@ bus_driver_handle_service_exists (DBusConnection *connection, } retval = TRUE; - + out: if (reply) dbus_message_unref (reply); @@ -755,9 +756,9 @@ bus_driver_handle_activate_service (DBusConnection *connection, BusActivation *activation; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + activation = bus_connection_get_activation (connection); - + if (!dbus_message_get_args (message, error, DBUS_TYPE_STRING, &name, DBUS_TYPE_UINT32, &flags, @@ -779,7 +780,7 @@ bus_driver_handle_activate_service (DBusConnection *connection, } retval = TRUE; - + out: return retval; } @@ -810,7 +811,7 @@ send_ack_reply (DBusConnection *connection, } dbus_message_unref (reply); - + return TRUE; } @@ -951,7 +952,7 @@ bus_driver_handle_add_match (DBusConnection *connection, const char *text; DBusString str; BusMatchmaker *matchmaker; - + _DBUS_ASSERT_ERROR_IS_CLEAR (error); text = NULL; @@ -968,7 +969,7 @@ bus_driver_handle_add_match (DBusConnection *connection, "(inactive)"); goto failed; } - + if (!dbus_message_get_args (message, error, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID)) @@ -997,9 +998,9 @@ bus_driver_handle_add_match (DBusConnection *connection, bus_matchmaker_remove_rule (matchmaker, rule); goto failed; } - + bus_match_rule_unref (rule); - + return TRUE; failed: @@ -1019,12 +1020,12 @@ bus_driver_handle_remove_match (DBusConnection *connection, const char *text; DBusString str; BusMatchmaker *matchmaker; - + _DBUS_ASSERT_ERROR_IS_CLEAR (error); text = NULL; rule = NULL; - + if (!dbus_message_get_args (message, error, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID)) @@ -1045,14 +1046,14 @@ bus_driver_handle_remove_match (DBusConnection *connection, if (!send_ack_reply (connection, transaction, message, error)) goto failed; - + matchmaker = bus_connection_get_matchmaker (connection); if (!bus_matchmaker_remove_rule_by_value (matchmaker, rule, error)) goto failed; bus_match_rule_unref (rule); - + return TRUE; failed: @@ -1074,7 +1075,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection, BusRegistry *registry; BusService *service; DBusMessage *reply; - + _DBUS_ASSERT_ERROR_IS_CLEAR (error); registry = bus_connection_get_registry (connection); @@ -1097,7 +1098,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection, } else if (service == NULL) { - dbus_set_error (error, + dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER, "Could not get owner of name '%s': no such name", text); goto failed; @@ -1113,7 +1114,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection, "Could not determine unique name for '%s'", text); goto failed; } - _dbus_assert (*base_name == ':'); + _dbus_assert (*base_name == ':'); } _dbus_assert (base_name != NULL); @@ -1122,11 +1123,11 @@ bus_driver_handle_get_service_owner (DBusConnection *connection, if (reply == NULL) goto oom; - if (! dbus_message_append_args (reply, + if (! dbus_message_append_args (reply, DBUS_TYPE_STRING, &base_name, DBUS_TYPE_INVALID)) goto oom; - + if (! bus_transaction_send_from_driver (transaction, connection, reply)) goto oom; @@ -1159,7 +1160,7 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection, DBusMessage *reply; DBusMessageIter iter, array_iter; char *dbus_service_name = DBUS_SERVICE_DBUS; - + _DBUS_ASSERT_ERROR_IS_CLEAR (error); registry = bus_connection_get_registry (connection); @@ -1184,14 +1185,14 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection, } else if (service == NULL) { - dbus_set_error (error, + dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER, "Could not get owners of name '%s': no such name", text); goto failed; } else { - if (!bus_service_list_queued_owners (service, + if (!bus_service_list_queued_owners (service, &base_names, error)) goto failed; @@ -1209,7 +1210,7 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection, DBUS_TYPE_STRING_AS_STRING, &array_iter)) goto oom; - + link = _dbus_list_get_first_link (&base_names); while (link != NULL) { @@ -1217,8 +1218,8 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection, _dbus_assert (link->data != NULL); uname = (char *)link->data; - - if (!dbus_message_iter_append_basic (&array_iter, + + if (!dbus_message_iter_append_basic (&array_iter, DBUS_TYPE_STRING, &uname)) goto oom; @@ -1228,8 +1229,8 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection, if (! dbus_message_iter_close_container (&iter, &array_iter)) goto oom; - - + + if (! bus_transaction_send_from_driver (transaction, connection, reply)) goto oom; @@ -1284,7 +1285,7 @@ bus_driver_handle_get_connection_unix_user (DBusConnection *connection, serv = bus_registry_lookup (registry, &str); if (serv == NULL) { - dbus_set_error (error, + dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER, "Could not get UID of name '%s': no such name", service); goto failed; @@ -1360,7 +1361,7 @@ bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection, serv = bus_registry_lookup (registry, &str); if (serv == NULL) { - dbus_set_error (error, + dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER, "Could not get PID of name '%s': no such name", service); goto failed; @@ -1436,7 +1437,7 @@ bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection, serv = bus_registry_lookup (registry, &str); if (serv == NULL) { - dbus_set_error (error, + dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER, "Could not get audit session data for name '%s': no such name", service); goto failed; @@ -1510,7 +1511,7 @@ bus_driver_handle_get_connection_selinux_security_context (DBusConnection *conne serv = bus_registry_lookup (registry, &str); if (serv == NULL) { - dbus_set_error (error, + dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER, "Could not get security context of name '%s': no such name", service); goto failed; @@ -1563,7 +1564,7 @@ bus_driver_handle_reload_config (DBusConnection *connection, _DBUS_ASSERT_ERROR_IS_CLEAR (error); reply = NULL; - + context = bus_connection_get_context (connection); if (!bus_context_reload_config (context, error)) goto failed; @@ -1608,7 +1609,7 @@ bus_driver_handle_get_id (DBusConnection *connection, } reply = NULL; - + context = bus_connection_get_context (connection); if (!bus_context_get_id (context, &uuid)) goto oom; @@ -1622,24 +1623,24 @@ bus_driver_handle_get_id (DBusConnection *connection, DBUS_TYPE_STRING, &v_STRING, DBUS_TYPE_INVALID)) goto oom; - + _dbus_assert (dbus_message_has_signature (reply, "s")); - + if (! bus_transaction_send_from_driver (transaction, connection, reply)) goto oom; - _dbus_string_free (&uuid); + _dbus_string_free (&uuid); dbus_message_unref (reply); return TRUE; oom: _DBUS_ASSERT_ERROR_IS_CLEAR (error); - + BUS_SET_OOM (error); if (reply) dbus_message_unref (reply); - _dbus_string_free (&uuid); + _dbus_string_free (&uuid); return FALSE; } @@ -1660,7 +1661,7 @@ static struct { "Hello", "", DBUS_TYPE_STRING_AS_STRING, - bus_driver_handle_hello }, + bus_driver_handle_hello }, { "RequestName", DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_UINT32_AS_STRING, DBUS_TYPE_UINT32_AS_STRING, @@ -1739,10 +1740,10 @@ write_args_for_direction (DBusString *xml, DBusTypeReader typereader; DBusString sigstr; int current_type; - + _dbus_string_init_const (&sigstr, signature); _dbus_type_reader_init_types_only (&typereader, &sigstr, 0); - + while ((current_type = _dbus_type_reader_get_current_type (&typereader)) != DBUS_TYPE_INVALID) { const DBusString *subsig; @@ -1793,7 +1794,7 @@ bus_driver_generate_introspect_string (DBusString *xml) i = 0; while (i < _DBUS_N_ELEMENTS (message_handlers)) { - + if (!_dbus_string_append_printf (xml, " <method name=\"%s\">\n", message_handlers[i].name)) return FALSE; @@ -1806,22 +1807,22 @@ bus_driver_generate_introspect_string (DBusString *xml) if (!_dbus_string_append (xml, " </method>\n")) return FALSE; - + ++i; } if (!_dbus_string_append_printf (xml, " <signal name=\"NameOwnerChanged\">\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " </signal>\n")) return FALSE; @@ -1829,10 +1830,10 @@ bus_driver_generate_introspect_string (DBusString *xml) if (!_dbus_string_append_printf (xml, " <signal name=\"NameLost\">\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " </signal>\n")) return FALSE; @@ -1840,16 +1841,16 @@ bus_driver_generate_introspect_string (DBusString *xml) if (!_dbus_string_append_printf (xml, " <signal name=\"NameAcquired\">\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n")) return FALSE; - + if (!_dbus_string_append_printf (xml, " </signal>\n")) return FALSE; if (!_dbus_string_append (xml, " </interface>\n")) return FALSE; - + if (!_dbus_string_append (xml, "</node>\n")) return FALSE; @@ -1867,7 +1868,7 @@ bus_driver_handle_introspect (DBusConnection *connection, const char *v_STRING; _dbus_verbose ("Introspect() on bus driver\n"); - + _DBUS_ASSERT_ERROR_IS_CLEAR (error); reply = NULL; @@ -1914,7 +1915,7 @@ bus_driver_handle_introspect (DBusConnection *connection, dbus_message_unref (reply); _dbus_string_free (&xml); - + return FALSE; } @@ -1929,6 +1930,14 @@ bus_driver_handle_message (DBusConnection *connection, _DBUS_ASSERT_ERROR_IS_CLEAR (error); + if (dbus_message_is_signal (message, "org.freedesktop.systemd1.Activator", "ActivationFailure")) + { + BusContext *context; + + context = bus_connection_get_context (connection); + return dbus_activation_systemd_failure(bus_context_get_activation(context), message); + } + if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_METHOD_CALL) { _dbus_verbose ("Driver got a non-method-call message, ignoring\n"); @@ -1939,16 +1948,16 @@ bus_driver_handle_message (DBusConnection *connection, DBUS_INTERFACE_INTROSPECTABLE, "Introspect")) return bus_driver_handle_introspect (connection, transaction, message, error); - + interface = dbus_message_get_interface (message); if (interface == NULL) interface = DBUS_INTERFACE_DBUS; - + _dbus_assert (dbus_message_get_member (message) != NULL); - + name = dbus_message_get_member (message); sender = dbus_message_get_sender (message); - + if (strcmp (interface, DBUS_INTERFACE_DBUS) != 0) { @@ -1956,13 +1965,13 @@ bus_driver_handle_message (DBusConnection *connection, interface); goto unknown; } - + _dbus_verbose ("Driver got a method call: %s\n", dbus_message_get_member (message)); - + /* security checks should have kept this from getting here */ _dbus_assert (sender != NULL || strcmp (name, "Hello") == 0); - + i = 0; while (i < _DBUS_N_ELEMENTS (message_handlers)) { @@ -1976,7 +1985,7 @@ bus_driver_handle_message (DBusConnection *connection, _dbus_verbose ("Call to %s has wrong args (%s, expected %s)\n", name, dbus_message_get_signature (message), message_handlers[i].in_args); - + dbus_set_error (error, DBUS_ERROR_INVALID_ARGS, "Call to %s has wrong args (%s, expected %s)\n", name, dbus_message_get_signature (message), @@ -1984,7 +1993,7 @@ bus_driver_handle_message (DBusConnection *connection, _DBUS_ASSERT_ERROR_IS_SET (error); return FALSE; } - + if ((* message_handlers[i].handler) (connection, transaction, message, error)) { _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -1998,7 +2007,7 @@ bus_driver_handle_message (DBusConnection *connection, return FALSE; } } - + ++i; } @@ -2009,7 +2018,7 @@ bus_driver_handle_message (DBusConnection *connection, dbus_set_error (error, DBUS_ERROR_UNKNOWN_METHOD, "%s does not understand message %s", DBUS_SERVICE_DBUS, name); - + return FALSE; } diff --git a/bus/expirelist.c b/bus/expirelist.c index 58e1f6d1..946a615c 100644 --- a/bus/expirelist.c +++ b/bus/expirelist.c @@ -21,6 +21,7 @@ * */ +#include <config.h> #include "expirelist.h" #include "test.h" #include <dbus/dbus-internals.h> @@ -217,7 +218,7 @@ expire_timeout_handler (void *data) { BusExpireList *list = data; - _dbus_verbose ("Running %s\n", _DBUS_FUNCTION_NAME); + _dbus_verbose ("Running\n"); /* note that this may remove the timeout */ bus_expirelist_expire (list); @@ -4,7 +4,7 @@ * Copyright (C) 2003 Red Hat, Inc. * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -14,12 +14,14 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include "bus.h" #include "driver.h" #include <dbus/dbus-internals.h> @@ -27,7 +29,9 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#ifdef HAVE_SIGNAL_H #include <signal.h> +#endif #ifdef HAVE_ERRNO_H #include <errno.h> #endif @@ -47,8 +51,8 @@ signal_handler (int sig) switch (sig) { -#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX - case SIGIO: +#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX + case SIGIO: /* explicit fall-through */ #endif /* DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX */ #ifdef SIGHUP @@ -56,7 +60,7 @@ signal_handler (int sig) { DBusString str; _dbus_string_init_const (&str, "foo"); - if ((reload_pipe[RELOAD_WRITE_END] > 0) && + if ((reload_pipe[RELOAD_WRITE_END] > 0) && !_dbus_write_socket (reload_pipe[RELOAD_WRITE_END], &str, 0, 1)) { _dbus_warn ("Unable to write to reload pipe.\n"); @@ -71,7 +75,7 @@ signal_handler (int sig) static void usage (void) { - fprintf (stderr, DAEMON_NAME " [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork] [--introspect]\n"); + fprintf (stderr, DBUS_DAEMON_NAME " [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork] [--introspect] [--address=ADDRESS] [--systemd-activation]\n"); exit (1); } @@ -82,7 +86,7 @@ version (void) "Copyright (C) 2002, 2003 Red Hat, Inc., CodeFactory AB, and others\n" "This is free software; see the source for copying conditions.\n" "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", - VERSION); + DBUS_VERSION_STRING); exit (0); } @@ -90,7 +94,7 @@ static void introspect (void) { DBusString xml; - const char *v_STRING; + const char *v_STRING; if (!_dbus_string_init (&xml)) goto oom; @@ -102,14 +106,15 @@ introspect (void) } v_STRING = _dbus_string_get_const_data (&xml); - printf ("%s\n", v_STRING); + printf ("%s\n", v_STRING); exit (0); - + oom: _dbus_warn ("Can not introspect - Out of memory\n"); exit (1); } + static void check_two_config_files (const DBusString *config_file, const char *extra_arg) @@ -123,6 +128,18 @@ check_two_config_files (const DBusString *config_file, } static void +check_two_addresses (const DBusString *address, + const char *extra_arg) +{ + if (_dbus_string_get_length (address) > 0) + { + fprintf (stderr, "--%s specified but address %s already requested\n", + extra_arg, _dbus_string_get_const_data (address)); + exit (1); + } +} + +static void check_two_addr_descriptors (const DBusString *addr_fd, const char *extra_arg) { @@ -208,9 +225,6 @@ setup_reload_pipe (DBusLoop *loop) exit (1); } - _dbus_fd_set_close_on_exec (reload_pipe[0]); - _dbus_fd_set_close_on_exec (reload_pipe[1]); - watch = _dbus_watch_new (reload_pipe[RELOAD_READ_END], DBUS_WATCH_READABLE, TRUE, handle_reload_watch, NULL, NULL); @@ -249,6 +263,7 @@ main (int argc, char **argv) { DBusError error; DBusString config_file; + DBusString address; DBusString addr_fd; DBusString pid_fd; const char *prev_arg; @@ -257,11 +272,16 @@ main (int argc, char **argv) int i; dbus_bool_t print_address; dbus_bool_t print_pid; + dbus_bool_t is_session_bus; int force_fork; + dbus_bool_t systemd_activation; if (!_dbus_string_init (&config_file)) return 1; + if (!_dbus_string_init (&address)) + return 1; + if (!_dbus_string_init (&addr_fd)) return 1; @@ -270,7 +290,9 @@ main (int argc, char **argv) print_address = FALSE; print_pid = FALSE; + is_session_bus = FALSE; force_fork = FORK_FOLLOW_CONFIG_FILE; + systemd_activation = FALSE; prev_arg = NULL; i = 1; @@ -290,6 +312,8 @@ main (int argc, char **argv) force_fork = FORK_NEVER; else if (strcmp (arg, "--fork") == 0) force_fork = FORK_ALWAYS; + else if (strcmp (arg, "--systemd-activation") == 0) + systemd_activation = TRUE; else if (strcmp (arg, "--system") == 0) { check_two_config_files (&config_file, "system"); @@ -309,7 +333,7 @@ main (int argc, char **argv) const char *file; check_two_config_files (&config_file, "config-file"); - + file = strchr (arg, '='); ++file; @@ -320,18 +344,40 @@ main (int argc, char **argv) strcmp (prev_arg, "--config-file") == 0) { check_two_config_files (&config_file, "config-file"); - + if (!_dbus_string_append (&config_file, arg)) exit (1); } else if (strcmp (arg, "--config-file") == 0) ; /* wait for next arg */ + else if (strstr (arg, "--address=") == arg) + { + const char *file; + + check_two_addresses (&address, "address"); + + file = strchr (arg, '='); + ++file; + + if (!_dbus_string_append (&address, file)) + exit (1); + } + else if (prev_arg && + strcmp (prev_arg, "--address") == 0) + { + check_two_addresses (&address, "address"); + + if (!_dbus_string_append (&address, arg)) + exit (1); + } + else if (strcmp (arg, "--address") == 0) + ; /* wait for next arg */ else if (strstr (arg, "--print-address=") == arg) { const char *desc; check_two_addr_descriptors (&addr_fd, "print-address"); - + desc = strchr (arg, '='); ++desc; @@ -344,7 +390,7 @@ main (int argc, char **argv) strcmp (prev_arg, "--print-address") == 0) { check_two_addr_descriptors (&addr_fd, "print-address"); - + if (!_dbus_string_append (&addr_fd, arg)) exit (1); @@ -357,7 +403,7 @@ main (int argc, char **argv) const char *desc; check_two_pid_descriptors (&pid_fd, "print-pid"); - + desc = strchr (arg, '='); ++desc; @@ -370,19 +416,19 @@ main (int argc, char **argv) strcmp (prev_arg, "--print-pid") == 0) { check_two_pid_descriptors (&pid_fd, "print-pid"); - + if (!_dbus_string_append (&pid_fd, arg)) exit (1); - + print_pid = TRUE; } else if (strcmp (arg, "--print-pid") == 0) print_pid = TRUE; /* and we'll get the next arg if appropriate */ else usage (); - + prev_arg = arg; - + ++i; } @@ -445,6 +491,8 @@ main (int argc, char **argv) dbus_error_init (&error); context = bus_context_new (&config_file, force_fork, &print_addr_pipe, &print_pid_pipe, + _dbus_string_get_length(&address) > 0 ? &address : NULL, + systemd_activation, &error); _dbus_string_free (&config_file); if (context == NULL) @@ -458,19 +506,19 @@ main (int argc, char **argv) /* bus_context_new() closes the print_addr_pipe and * print_pid_pipe */ - + setup_reload_pipe (bus_context_get_loop (context)); #ifdef SIGHUP _dbus_set_signal_handler (SIGHUP, signal_handler); #endif -#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX +#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX _dbus_set_signal_handler (SIGIO, signal_handler); #endif /* DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX */ - + _dbus_verbose ("We are on D-Bus...\n"); _dbus_loop_run (bus_context_get_loop (context)); - + bus_context_shutdown (context); bus_context_unref (context); bus_selinux_shutdown (); diff --git a/bus/messagebus-config.in b/bus/messagebus-config.in new file mode 100644 index 00000000..39459dcb --- /dev/null +++ b/bus/messagebus-config.in @@ -0,0 +1,178 @@ +#!/bin/sh +# +# messagebus-config, Copyright 2009 Yaakov Selkowitz +# +# This file is part of the Cygwin port of dbus. + +# ====================================================================== +# Initialization +# ====================================================================== +PROGNAME=$(basename $0) +_tdir=$(dirname $0) +PROGDIR=$(cd $_tdir && pwd) + +CSIH_SCRIPT=/usr/share/csih/cygwin-service-installation-helper.sh + +# Subdirectory where the new package is being installed +PREFIX=@prefix@ + +# Directory where the config files are stored +SYSCONFDIR=@sysconfdir@/dbus-1 +DEVDIR=/dev +LOGDIR=/var/log +RUNDIR=$(dirname @DBUS_SYSTEM_PID_FILE@) +SOCKDIR=$(dirname @DBUS_SYSTEM_SOCKET@) + +source ${CSIH_SCRIPT} + +# ====================================================================== +# Routine: install_service +# Install messagebus as a service +# ====================================================================== +install_service() { + + if csih_is_nt + then + + # Check if messagebus is installed and remove on user request. + if cygrunsrv -Q messagebus > /dev/null 2>&1 + then + csih_warning "The messagebus service is already installed." + echo + if csih_request "Do you want to reinstall it with different args?" + then + cygrunsrv -E messagebus + cygrunsrv -R messagebus + fi + fi + + # Install messagebus service if it is not already installed + if ! cygrunsrv -Q messagebus > /dev/null 2>&1 + then + echo + csih_warning "The following function requires administrator privileges!" + if csih_request "Do you want to install messagebus as service?" + then + if cygrunsrv -I messagebus -d "CYGWIN D-Bus system service" -p @EXPANDED_BINDIR@/dbus-daemon -a "--nofork --system" + then + echo + csih_inform "The messagebus service has been installed under the LocalSystem" + csih_inform "account (also known as SYSTEM). To start the service now, call" + csih_inform "\`net start messagebus' or \`cygrunsrv -S messagebus'. Otherwise, it" + csih_inform "will start automatically after the next reboot." + echo + csih_inform "Check ${SYSCONFDIR}/system.conf first, if it suits your needs." + fi + fi # user allowed us to install messagebus + fi # messagebus already installed + fi # csih_is_nt +} # --- End of install_service --- # + + +# ====================================================================== +# Main Entry Point +# ====================================================================== + + +# Check how the script has been started. If +# (1) it has been started by giving the full path and +# that path is /etc/postinstall, OR +# (2) Otherwise, if the environment variable +# CONFIG_AUTO_ANSWER_NO is set +# then set auto_answer to "no". This allows automatic +# creation of the config files in /etc w/o overwriting +# them if they already exist. In both cases, color +# escape sequences are suppressed, so as to prevent +# cluttering setup's logfiles. +if [ "$PROGDIR" = "/etc/postinstall" ] +then + csih_auto_answer="no" + csih_disable_color +fi +if [ -n "${CONFIG_AUTO_ANSWER_NO}" ] +then + csih_auto_answer="no" + csih_disable_color +fi + + +# ====================================================================== +# Parse options +# ====================================================================== +while : +do + case $# in + 0) + break + ;; + esac + + option=$1 + shift + + case "$option" in + -d | --debug ) + set -x + csih_trace_on + ;; + + -y | --yes ) + csih_auto_answer=yes + ;; + + -n | --no ) + csih_auto_answer=no + ;; + + *) + echo "usage: ${PROGNAME} [OPTION]..." + echo + echo "This script creates a basic messagebus configuration." + echo + echo "Options:" + echo " --debug -d Enable shell's debug output." + echo " --yes -y Answer all questions with \"yes\" automatically." + echo " --no -n Answer all questions with \"no\" automatically." + echo + exit 1 + ;; + + esac +done + +# ====================================================================== +# Action! +# ====================================================================== + +# Check for ${SYSCONFDIR} directory +csih_make_dir "${SYSCONFDIR}" "Cannot create global configuration files." +chmod 775 "${SYSCONFDIR}" +setfacl -m u:system:rwx "${SYSCONFDIR}" + +# Check for ${DEVDIR} directory +csih_make_dir "${DEVDIR}" "Syslogging using messagebus will not work." +chmod 775 "${DEVDIR}" +setfacl -m u:system:rwx "${DEVDIR}" + +# Check for ${LOGDIR} directory +csih_make_dir "${LOGDIR}" "Syslogging using messagebus will not work." +chmod 775 "${LOGDIR}" +setfacl -m u:system:rwx "${LOGDIR}" + +# Check for ${RUNDIR} directory +csih_make_dir "${RUNDIR}" "PID files of running processes will not be created." +chmod 775 "${RUNDIR}" +setfacl -m u:system:rwx "${RUNDIR}" + +# Check for ${SOCKDIR} directory +csih_make_dir "${SOCKDIR}" "SOCKET files of running processes will not be created." +chmod 775 "${SOCKDIR}" +setfacl -m u:system:rwx "${SOCKDIR}" + +# maybe: csih_auto_answer=no will skip, +# interactive user will get a chance to override +install_service + + +echo +echo "Configuration finished. Have fun!" diff --git a/bus/messagebus.in b/bus/messagebus.in index 1f1004b1..3e2ee07a 100755 --- a/bus/messagebus.in +++ b/bus/messagebus.in @@ -68,7 +68,7 @@ case "$1" in stop ;; status) - status $processname + status $servicename RETVAL=$? ;; restart) diff --git a/bus/org.freedesktop.dbus-session.plist.in b/bus/org.freedesktop.dbus-session.plist.in new file mode 100644 index 00000000..40ff370d --- /dev/null +++ b/bus/org.freedesktop.dbus-session.plist.in @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>org.freedesktop.dbus-session</string> + + <key>ServiceIPC</key> + <true/> + + <!-- Please uncomment on 10.4; OnDemand doesn't work properly there. --> + <!-- + <key>OnDemand</key> + <false /> + --> + + <key>ProgramArguments</key> + <array> + <string>@DBUS_DAEMONDIR@/dbus-daemon</string> + <string>--nofork</string> + <string>--session</string> + </array> + + <key>Sockets</key> + <dict> + <key>unix_domain_listener</key> + <dict> + <key>SecureSocketWithKey</key> + <string>DBUS_LAUNCHD_SESSION_BUS_SOCKET</string> + </dict> + </dict> +</dict> +</plist> diff --git a/bus/policy.c b/bus/policy.c index bc1d2d9d..a1fff861 100644 --- a/bus/policy.c +++ b/bus/policy.c @@ -21,6 +21,7 @@ * */ +#include <config.h> #include "policy.h" #include "services.h" #include "test.h" @@ -168,13 +169,13 @@ bus_policy_new (void) policy->refcount = 1; - policy->rules_by_uid = _dbus_hash_table_new (DBUS_HASH_ULONG, + policy->rules_by_uid = _dbus_hash_table_new (DBUS_HASH_UINTPTR, NULL, free_rule_list_func); if (policy->rules_by_uid == NULL) goto failed; - policy->rules_by_gid = _dbus_hash_table_new (DBUS_HASH_ULONG, + policy->rules_by_gid = _dbus_hash_table_new (DBUS_HASH_UINTPTR, NULL, free_rule_list_func); if (policy->rules_by_gid == NULL) @@ -303,7 +304,7 @@ bus_policy_create_client_policy (BusPolicy *policy, { DBusList **list; - list = _dbus_hash_table_lookup_ulong (policy->rules_by_gid, + list = _dbus_hash_table_lookup_uintptr (policy->rules_by_gid, groups[i]); if (list != NULL) @@ -327,7 +328,7 @@ bus_policy_create_client_policy (BusPolicy *policy, { DBusList **list; - list = _dbus_hash_table_lookup_ulong (policy->rules_by_uid, + list = _dbus_hash_table_lookup_uintptr (policy->rules_by_uid, uid); if (list != NULL) @@ -517,7 +518,7 @@ get_list (DBusHashTable *hash, { DBusList **list; - list = _dbus_hash_table_lookup_ulong (hash, key); + list = _dbus_hash_table_lookup_uintptr (hash, key); if (list == NULL) { @@ -525,7 +526,7 @@ get_list (DBusHashTable *hash, if (list == NULL) return NULL; - if (!_dbus_hash_table_insert_ulong (hash, key, list)) + if (!_dbus_hash_table_insert_uintptr (hash, key, list)) { dbus_free (list); return NULL; @@ -638,7 +639,7 @@ merge_id_hash (DBusHashTable *dest, _dbus_hash_iter_init (to_absorb, &iter); while (_dbus_hash_iter_next (&iter)) { - unsigned long id = _dbus_hash_iter_get_ulong_key (&iter); + unsigned long id = _dbus_hash_iter_get_uintptr_key (&iter); DBusList **list = _dbus_hash_iter_get_value (&iter); DBusList **target = get_list (dest, id); diff --git a/bus/rc.messagebus.in b/bus/rc.messagebus.in index b147503d..c52ca777 100644 --- a/bus/rc.messagebus.in +++ b/bus/rc.messagebus.in @@ -61,7 +61,7 @@ case "$1" in stop ;; status) - status $processname + status $servicename RETVAL=$? ;; restart) diff --git a/bus/selinux.c b/bus/selinux.c index 5a9af5ac..fe04063a 100644 --- a/bus/selinux.c +++ b/bus/selinux.c @@ -20,9 +20,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include <dbus/dbus-internals.h> #include <dbus/dbus-string.h> +#ifndef DBUS_WIN #include <dbus/dbus-userdb.h> +#endif #include "selinux.h" #include "services.h" #include "policy.h" @@ -1088,4 +1092,3 @@ _dbus_change_to_daemon_user (const char *user, return TRUE; } #endif - diff --git a/bus/services.c b/bus/services.c index b260c633..0a049257 100644 --- a/bus/services.c +++ b/bus/services.c @@ -21,6 +21,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include <dbus/dbus-hash.h> #include <dbus/dbus-list.h> #include <dbus/dbus-mempool.h> diff --git a/bus/session.conf.in b/bus/session.conf.in index e7229ad5..e121ff93 100644 --- a/bus/session.conf.in +++ b/bus/session.conf.in @@ -12,7 +12,7 @@ the behavior of child processes. --> <keep_umask/> - <listen>unix:tmpdir=@DBUS_SESSION_SOCKET_DIR@</listen> + <listen>@DBUS_SESSION_BUS_DEFAULT_ADDRESS@</listen> <standard_session_servicedirs /> @@ -45,8 +45,11 @@ <!-- the memory limits are 1G instead of say 4G because they can't exceed 32-bit signed int max --> <limit name="max_incoming_bytes">1000000000</limit> + <limit name="max_incoming_unix_fds">250000000</limit> <limit name="max_outgoing_bytes">1000000000</limit> + <limit name="max_outgoing_unix_fds">250000000</limit> <limit name="max_message_size">1000000000</limit> + <limit name="max_message_unix_fds">4096</limit> <limit name="service_start_timeout">120000</limit> <limit name="auth_timeout">240000</limit> <limit name="max_completed_connections">100000</limit> diff --git a/bus/signals.c b/bus/signals.c index b020a76c..6f97b2b3 100644 --- a/bus/signals.c +++ b/bus/signals.c @@ -20,6 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include <config.h> #include "signals.h" #include "services.h" #include "utils.h" @@ -1018,25 +1020,173 @@ bus_match_rule_parse (DBusConnection *matches_go_to, return rule; } +typedef struct RulePool RulePool; +struct RulePool +{ + /* Maps non-NULL interface names to non-NULL (DBusList **)s */ + DBusHashTable *rules_by_iface; + + /* List of BusMatchRules which don't specify an interface */ + DBusList *rules_without_iface; +}; + struct BusMatchmaker { int refcount; - DBusList *all_rules; + /* Pools of rules, grouped by the type of message they match. 0 + * (DBUS_MESSAGE_TYPE_INVALID) represents rules that do not specify a message + * type. + */ + RulePool rules_by_type[DBUS_NUM_MESSAGE_TYPES]; }; +static void +rule_list_free (DBusList **rules) +{ + while (*rules != NULL) + { + BusMatchRule *rule; + + rule = (*rules)->data; + bus_match_rule_unref (rule); + _dbus_list_remove_link (rules, *rules); + } +} + +static void +rule_list_ptr_free (DBusList **list) +{ + /* We have to cope with NULL because the hash table frees the "existing" + * value (which is NULL) when creating a new table entry... + */ + if (list != NULL) + { + rule_list_free (list); + dbus_free (list); + } +} + BusMatchmaker* bus_matchmaker_new (void) { BusMatchmaker *matchmaker; + int i; matchmaker = dbus_new0 (BusMatchmaker, 1); if (matchmaker == NULL) return NULL; matchmaker->refcount = 1; - + + for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++) + { + RulePool *p = matchmaker->rules_by_type + i; + + p->rules_by_iface = _dbus_hash_table_new (DBUS_HASH_STRING, + dbus_free, (DBusFreeFunction) rule_list_ptr_free); + + if (p->rules_by_iface == NULL) + goto nomem; + } + return matchmaker; + + nomem: + for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++) + { + RulePool *p = matchmaker->rules_by_type + i; + + if (p->rules_by_iface == NULL) + break; + else + _dbus_hash_table_unref (p->rules_by_iface); + } + + return NULL; +} + +static DBusList ** +bus_matchmaker_get_rules (BusMatchmaker *matchmaker, + int message_type, + const char *interface, + dbus_bool_t create) +{ + RulePool *p; + + _dbus_assert (message_type >= 0); + _dbus_assert (message_type < DBUS_NUM_MESSAGE_TYPES); + + _dbus_verbose ("Looking up rules for message_type %d, interface %s\n", + message_type, + interface != NULL ? interface : "<null>"); + + p = matchmaker->rules_by_type + message_type; + + if (interface == NULL) + { + return &p->rules_without_iface; + } + else + { + DBusList **list; + + list = _dbus_hash_table_lookup_string (p->rules_by_iface, interface); + + if (list == NULL && create) + { + char *dupped_interface; + + list = dbus_new0 (DBusList *, 1); + if (list == NULL) + return NULL; + + dupped_interface = _dbus_strdup (interface); + if (dupped_interface == NULL) + { + dbus_free (list); + return NULL; + } + + _dbus_verbose ("Adding list for type %d, iface %s\n", message_type, + interface); + + if (!_dbus_hash_table_insert_string (p->rules_by_iface, + dupped_interface, list)) + { + dbus_free (list); + dbus_free (dupped_interface); + return NULL; + } + } + + return list; + } +} + +static void +bus_matchmaker_gc_rules (BusMatchmaker *matchmaker, + int message_type, + const char *interface, + DBusList **rules) +{ + RulePool *p; + + if (interface == NULL) + return; + + if (*rules != NULL) + return; + + _dbus_verbose ("GCing HT entry for message_type %u, interface %s\n", + message_type, interface); + + p = matchmaker->rules_by_type + message_type; + + _dbus_assert (_dbus_hash_table_lookup_string (p->rules_by_iface, interface) + == rules); + + _dbus_hash_table_remove_string (p->rules_by_iface, interface); } BusMatchmaker * @@ -1057,14 +1207,14 @@ bus_matchmaker_unref (BusMatchmaker *matchmaker) matchmaker->refcount -= 1; if (matchmaker->refcount == 0) { - while (matchmaker->all_rules != NULL) + int i; + + for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++) { - BusMatchRule *rule; + RulePool *p = matchmaker->rules_by_type + i; - rule = matchmaker->all_rules->data; - bus_match_rule_unref (rule); - _dbus_list_remove_link (&matchmaker->all_rules, - matchmaker->all_rules); + _dbus_hash_table_unref (p->rules_by_iface); + rule_list_free (&p->rules_without_iface); } dbus_free (matchmaker); @@ -1076,17 +1226,31 @@ dbus_bool_t bus_matchmaker_add_rule (BusMatchmaker *matchmaker, BusMatchRule *rule) { + DBusList **rules; + _dbus_assert (bus_connection_is_active (rule->matches_go_to)); - if (!_dbus_list_append (&matchmaker->all_rules, rule)) + _dbus_verbose ("Adding rule with message_type %d, interface %s\n", + rule->message_type, + rule->interface != NULL ? rule->interface : "<null>"); + + rules = bus_matchmaker_get_rules (matchmaker, rule->message_type, + rule->interface, TRUE); + + if (rules == NULL) + return FALSE; + + if (!_dbus_list_append (rules, rule)) return FALSE; if (!bus_connection_add_match_rule (rule->matches_go_to, rule)) { - _dbus_list_remove_last (&matchmaker->all_rules, rule); + _dbus_list_remove_last (rules, rule); + bus_matchmaker_gc_rules (matchmaker, rule->message_type, + rule->interface, rules); return FALSE; } - + bus_match_rule_ref (rule); #ifdef DBUS_ENABLE_VERBOSE_MODE @@ -1171,13 +1335,13 @@ match_rule_equal (BusMatchRule *a, } static void -bus_matchmaker_remove_rule_link (BusMatchmaker *matchmaker, +bus_matchmaker_remove_rule_link (DBusList **rules, DBusList *link) { BusMatchRule *rule = link->data; bus_connection_remove_match_rule (rule->matches_go_to, rule); - _dbus_list_remove_link (&matchmaker->all_rules, link); + _dbus_list_remove_link (rules, link); #ifdef DBUS_ENABLE_VERBOSE_MODE { @@ -1196,8 +1360,25 @@ void bus_matchmaker_remove_rule (BusMatchmaker *matchmaker, BusMatchRule *rule) { + DBusList **rules; + + _dbus_verbose ("Removing rule with message_type %d, interface %s\n", + rule->message_type, + rule->interface != NULL ? rule->interface : "<null>"); + bus_connection_remove_match_rule (rule->matches_go_to, rule); - _dbus_list_remove (&matchmaker->all_rules, rule); + + rules = bus_matchmaker_get_rules (matchmaker, rule->message_type, + rule->interface, FALSE); + + /* We should only be asked to remove a rule by identity right after it was + * added, so there should be a list for it. + */ + _dbus_assert (rules != NULL); + + _dbus_list_remove (rules, rule); + bus_matchmaker_gc_rules (matchmaker, rule->message_type, rule->interface, + rules); #ifdef DBUS_ENABLE_VERBOSE_MODE { @@ -1218,29 +1399,38 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker, BusMatchRule *value, DBusError *error) { - /* FIXME this is an unoptimized linear scan */ + DBusList **rules; + DBusList *link = NULL; - DBusList *link; + _dbus_verbose ("Removing rule by value with message_type %d, interface %s\n", + value->message_type, + value->interface != NULL ? value->interface : "<null>"); - /* we traverse backward because bus_connection_remove_match_rule() - * removes the most-recently-added rule - */ - link = _dbus_list_get_last_link (&matchmaker->all_rules); - while (link != NULL) + rules = bus_matchmaker_get_rules (matchmaker, value->message_type, + value->interface, FALSE); + + if (rules != NULL) { - BusMatchRule *rule; - DBusList *prev; + /* we traverse backward because bus_connection_remove_match_rule() + * removes the most-recently-added rule + */ + link = _dbus_list_get_last_link (rules); + while (link != NULL) + { + BusMatchRule *rule; + DBusList *prev; - rule = link->data; - prev = _dbus_list_get_prev_link (&matchmaker->all_rules, link); + rule = link->data; + prev = _dbus_list_get_prev_link (rules, link); - if (match_rule_equal (rule, value)) - { - bus_matchmaker_remove_rule_link (matchmaker, link); - break; - } + if (match_rule_equal (rule, value)) + { + bus_matchmaker_remove_rule_link (rules, link); + break; + } - link = prev; + link = prev; + } } if (link == NULL) @@ -1250,38 +1440,30 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker, return FALSE; } + bus_matchmaker_gc_rules (matchmaker, value->message_type, value->interface, + rules); + return TRUE; } -void -bus_matchmaker_disconnected (BusMatchmaker *matchmaker, - DBusConnection *disconnected) +static void +rule_list_remove_by_connection (DBusList **rules, + DBusConnection *connection) { DBusList *link; - /* FIXME - * - * This scans all match rules on the bus. We could avoid that - * for the rules belonging to the connection, since we keep - * a list of those; but for the rules that just refer to - * the connection we'd need to do something more elaborate. - * - */ - - _dbus_assert (bus_connection_is_active (disconnected)); - - link = _dbus_list_get_first_link (&matchmaker->all_rules); + link = _dbus_list_get_first_link (rules); while (link != NULL) { BusMatchRule *rule; DBusList *next; rule = link->data; - next = _dbus_list_get_next_link (&matchmaker->all_rules, link); + next = _dbus_list_get_next_link (rules, link); - if (rule->matches_go_to == disconnected) + if (rule->matches_go_to == connection) { - bus_matchmaker_remove_rule_link (matchmaker, link); + bus_matchmaker_remove_rule_link (rules, link); } else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') || ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':')) @@ -1292,7 +1474,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker, */ const char *name; - name = bus_connection_get_name (disconnected); + name = bus_connection_get_name (connection); _dbus_assert (name != NULL); /* because we're an active connection */ if (((rule->flags & BUS_MATCH_SENDER) && @@ -1300,7 +1482,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker, ((rule->flags & BUS_MATCH_DESTINATION) && strcmp (rule->destination, name) == 0)) { - bus_matchmaker_remove_rule_link (matchmaker, link); + bus_matchmaker_remove_rule_link (rules, link); } } @@ -1308,6 +1490,44 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker, } } +void +bus_matchmaker_disconnected (BusMatchmaker *matchmaker, + DBusConnection *connection) +{ + int i; + + /* FIXME + * + * This scans all match rules on the bus. We could avoid that + * for the rules belonging to the connection, since we keep + * a list of those; but for the rules that just refer to + * the connection we'd need to do something more elaborate. + */ + + _dbus_assert (bus_connection_is_active (connection)); + + _dbus_verbose ("Removing all rules for connection %p\n", connection); + + for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++) + { + RulePool *p = matchmaker->rules_by_type + i; + DBusHashIter iter; + + rule_list_remove_by_connection (&p->rules_without_iface, connection); + + _dbus_hash_iter_init (p->rules_by_iface, &iter); + while (_dbus_hash_iter_next (&iter)) + { + DBusList **items = _dbus_hash_iter_get_value (&iter); + + rule_list_remove_by_connection (items, connection); + + if (*items == NULL) + _dbus_hash_iter_remove_entry (&iter); + } + } +} + static dbus_bool_t connection_is_primary_owner (DBusConnection *connection, const char *service_name) @@ -1333,8 +1553,11 @@ static dbus_bool_t match_rule_matches (BusMatchRule *rule, DBusConnection *sender, DBusConnection *addressed_recipient, - DBusMessage *message) + DBusMessage *message, + BusMatchFlags already_matched) { + int flags; + /* All features of the match rule are AND'd together, * so FALSE if any of them don't match. */ @@ -1343,8 +1566,11 @@ match_rule_matches (BusMatchRule *rule, * or for addressed_recipient may mean a message with no * specific recipient (i.e. a signal) */ - - if (rule->flags & BUS_MATCH_MESSAGE_TYPE) + + /* Don't bother re-matching features we've already checked implicitly. */ + flags = rule->flags & (~already_matched); + + if (flags & BUS_MATCH_MESSAGE_TYPE) { _dbus_assert (rule->message_type != DBUS_MESSAGE_TYPE_INVALID); @@ -1352,7 +1578,7 @@ match_rule_matches (BusMatchRule *rule, return FALSE; } - if (rule->flags & BUS_MATCH_INTERFACE) + if (flags & BUS_MATCH_INTERFACE) { const char *iface; @@ -1366,7 +1592,7 @@ match_rule_matches (BusMatchRule *rule, return FALSE; } - if (rule->flags & BUS_MATCH_MEMBER) + if (flags & BUS_MATCH_MEMBER) { const char *member; @@ -1380,7 +1606,7 @@ match_rule_matches (BusMatchRule *rule, return FALSE; } - if (rule->flags & BUS_MATCH_SENDER) + if (flags & BUS_MATCH_SENDER) { _dbus_assert (rule->sender != NULL); @@ -1397,7 +1623,7 @@ match_rule_matches (BusMatchRule *rule, } } - if (rule->flags & BUS_MATCH_DESTINATION) + if (flags & BUS_MATCH_DESTINATION) { const char *destination; @@ -1420,7 +1646,7 @@ match_rule_matches (BusMatchRule *rule, } } - if (rule->flags & BUS_MATCH_PATH) + if (flags & BUS_MATCH_PATH) { const char *path; @@ -1434,7 +1660,7 @@ match_rule_matches (BusMatchRule *rule, return FALSE; } - if (rule->flags & BUS_MATCH_ARGS) + if (flags & BUS_MATCH_ARGS) { int i; DBusMessageIter iter; @@ -1504,38 +1730,19 @@ match_rule_matches (BusMatchRule *rule, return TRUE; } -dbus_bool_t -bus_matchmaker_get_recipients (BusMatchmaker *matchmaker, - BusConnections *connections, - DBusConnection *sender, - DBusConnection *addressed_recipient, - DBusMessage *message, - DBusList **recipients_p) +static dbus_bool_t +get_recipients_from_list (DBusList **rules, + DBusConnection *sender, + DBusConnection *addressed_recipient, + DBusMessage *message, + DBusList **recipients_p) { - /* FIXME for now this is a wholly unoptimized linear search */ - /* Guessing the important optimization is to skip the signal-related - * match lists when processing method call and exception messages. - * So separate match rule lists for signals? - */ - DBusList *link; - _dbus_assert (*recipients_p == NULL); + if (rules == NULL) + return TRUE; - /* This avoids sending same message to the same connection twice. - * Purpose of the stamp instead of a bool is to avoid iterating over - * all connections resetting the bool each time. - */ - bus_connections_increment_stamp (connections); - - /* addressed_recipient is already receiving the message, don't add to list. - * NULL addressed_recipient means either bus driver, or this is a signal - * and thus lacks a specific addressed_recipient. - */ - if (addressed_recipient != NULL) - bus_connection_mark_stamp (addressed_recipient); - - link = _dbus_list_get_first_link (&matchmaker->all_rules); + link = _dbus_list_get_first_link (rules); while (link != NULL) { BusMatchRule *rule; @@ -1545,23 +1752,24 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker, #ifdef DBUS_ENABLE_VERBOSE_MODE { char *s = match_rule_to_string (rule); - + _dbus_verbose ("Checking whether message matches rule %s for connection %p\n", s, rule->matches_go_to); dbus_free (s); } #endif - + if (match_rule_matches (rule, - sender, addressed_recipient, message)) + sender, addressed_recipient, message, + BUS_MATCH_MESSAGE_TYPE | BUS_MATCH_INTERFACE)) { _dbus_verbose ("Rule matched\n"); - + /* Append to the list if we haven't already */ if (bus_connection_mark_stamp (rule->matches_go_to)) { if (!_dbus_list_append (recipients_p, rule->matches_go_to)) - goto nomem; + return FALSE; } #ifdef DBUS_ENABLE_VERBOSE_MODE else @@ -1571,14 +1779,72 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker, #endif /* DBUS_ENABLE_VERBOSE_MODE */ } - link = _dbus_list_get_next_link (&matchmaker->all_rules, link); + link = _dbus_list_get_next_link (rules, link); } return TRUE; +} - nomem: - _dbus_list_clear (recipients_p); - return FALSE; +dbus_bool_t +bus_matchmaker_get_recipients (BusMatchmaker *matchmaker, + BusConnections *connections, + DBusConnection *sender, + DBusConnection *addressed_recipient, + DBusMessage *message, + DBusList **recipients_p) +{ + int type; + const char *interface; + DBusList **neither, **just_type, **just_iface, **both; + + _dbus_assert (*recipients_p == NULL); + + /* This avoids sending same message to the same connection twice. + * Purpose of the stamp instead of a bool is to avoid iterating over + * all connections resetting the bool each time. + */ + bus_connections_increment_stamp (connections); + + /* addressed_recipient is already receiving the message, don't add to list. + * NULL addressed_recipient means either bus driver, or this is a signal + * and thus lacks a specific addressed_recipient. + */ + if (addressed_recipient != NULL) + bus_connection_mark_stamp (addressed_recipient); + + type = dbus_message_get_type (message); + interface = dbus_message_get_interface (message); + + neither = bus_matchmaker_get_rules (matchmaker, DBUS_MESSAGE_TYPE_INVALID, + NULL, FALSE); + just_type = just_iface = both = NULL; + + if (interface != NULL) + just_iface = bus_matchmaker_get_rules (matchmaker, + DBUS_MESSAGE_TYPE_INVALID, interface, FALSE); + + if (type > DBUS_MESSAGE_TYPE_INVALID && type < DBUS_NUM_MESSAGE_TYPES) + { + just_type = bus_matchmaker_get_rules (matchmaker, type, NULL, FALSE); + + if (interface != NULL) + both = bus_matchmaker_get_rules (matchmaker, type, interface, FALSE); + } + + if (!(get_recipients_from_list (neither, sender, addressed_recipient, + message, recipients_p) && + get_recipients_from_list (just_iface, sender, addressed_recipient, + message, recipients_p) && + get_recipients_from_list (just_type, sender, addressed_recipient, + message, recipients_p) && + get_recipients_from_list (both, sender, addressed_recipient, + message, recipients_p))) + { + _dbus_list_clear (recipients_p); + return FALSE; + } + + return TRUE; } #ifdef DBUS_BUILD_TESTS @@ -1943,7 +2209,7 @@ check_matches (dbus_bool_t expected_to_match, _dbus_assert (rule != NULL); /* We can't test sender/destination rules since we pass NULL here */ - matched = match_rule_matches (rule, NULL, NULL, message); + matched = match_rule_matches (rule, NULL, NULL, message, 0); if (matched != expected_to_match) { diff --git a/bus/signals.h b/bus/signals.h index 4ea10755..eeb1d2d0 100644 --- a/bus/signals.h +++ b/bus/signals.h @@ -77,7 +77,7 @@ dbus_bool_t bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker, void bus_matchmaker_remove_rule (BusMatchmaker *matchmaker, BusMatchRule *rule); void bus_matchmaker_disconnected (BusMatchmaker *matchmaker, - DBusConnection *disconnected); + DBusConnection *connection); dbus_bool_t bus_matchmaker_get_recipients (BusMatchmaker *matchmaker, BusConnections *connections, DBusConnection *sender, diff --git a/bus/test-launch-helper.c b/bus/test-launch-helper.c index d78ca519..ab36b6ec 100644 --- a/bus/test-launch-helper.c +++ b/bus/test-launch-helper.c @@ -21,6 +21,7 @@ * */ +#include <config.h> #include "test.h" #include "activation-helper.h" diff --git a/bus/test-main.c b/bus/test-main.c index f19d0d55..cb0ed008 100644 --- a/bus/test-main.c +++ b/bus/test-main.c @@ -21,12 +21,14 @@ * */ +#include <config.h> #include "test.h" #include <stdio.h> #include <stdlib.h> #include <dbus/dbus-string.h> #include <dbus/dbus-sysdeps.h> #include <dbus/dbus-internals.h> +#include <dbus/dbus-message-private.h> #include "selinux.h" #ifdef DBUS_BUILD_TESTS @@ -69,6 +71,7 @@ test_post_hook (void) if (_dbus_getenv ("DBUS_TEST_SELINUX")) bus_selinux_shutdown (); check_memleaks (progname); + _dbus_check_fdleaks(); } int @@ -138,6 +141,14 @@ main (int argc, char **argv) die ("service reload"); test_post_hook (); +#ifdef HAVE_UNIX_FD_PASSING + test_pre_hook (); + printf ("%s: Running unix fd passing test\n", argv[0]); + if (!bus_unix_fds_passing_test (&test_data_dir)) + die ("unix fd passing"); + test_post_hook (); +#endif + printf ("%s: Success\n", argv[0]); diff --git a/bus/test-system.c b/bus/test-system.c index 6224ab5e..56a7d4ea 100644 --- a/bus/test-system.c +++ b/bus/test-system.c @@ -21,6 +21,7 @@ * */ +#include <config.h> #include "test.h" #include <stdio.h> #include <stdlib.h> @@ -4,7 +4,7 @@ * Copyright (C) 2003 Red Hat, Inc. * * Licensed under the Academic Free License version 2.1 - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -14,7 +14,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA @@ -45,7 +45,7 @@ client_watch_callback (DBusWatch *watch, * if the code in activation.c for the babysitter * watch handler is fixed. */ - + return dbus_watch_handle (watch, condition); } @@ -54,7 +54,7 @@ add_client_watch (DBusWatch *watch, void *data) { DBusConnection *connection = data; - + return _dbus_loop_add_watch (client_loop, watch, client_watch_callback, connection, NULL); @@ -65,7 +65,7 @@ remove_client_watch (DBusWatch *watch, void *data) { DBusConnection *connection = data; - + _dbus_loop_remove_watch (client_loop, watch, client_watch_callback, connection); } @@ -89,7 +89,7 @@ add_client_timeout (DBusTimeout *timeout, void *data) { DBusConnection *connection = data; - + return _dbus_loop_add_timeout (client_loop, timeout, client_timeout_callback, connection, NULL); } @@ -98,7 +98,7 @@ remove_client_timeout (DBusTimeout *timeout, void *data) { DBusConnection *connection = data; - + _dbus_loop_remove_timeout (client_loop, timeout, client_timeout_callback, connection); } @@ -111,27 +111,27 @@ client_disconnect_filter (DBusConnection *connection, DBUS_INTERFACE_LOCAL, "Disconnected")) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - + _dbus_verbose ("Removing client %p in disconnect handler\n", connection); - + _dbus_list_remove (&clients, connection); dbus_connection_unref (connection); - + if (clients == NULL) { _dbus_loop_unref (client_loop); client_loop = NULL; } - + return DBUS_HANDLER_RESULT_HANDLED; } dbus_bool_t bus_setup_debug_client (DBusConnection *connection) { - dbus_bool_t retval; + dbus_bool_t retval; if (!dbus_connection_add_filter (connection, client_disconnect_filter, @@ -146,7 +146,7 @@ bus_setup_debug_client (DBusConnection *connection) if (client_loop == NULL) goto out; } - + if (!dbus_connection_set_watch_functions (connection, add_client_watch, remove_client_watch, @@ -154,7 +154,7 @@ bus_setup_debug_client (DBusConnection *connection) connection, NULL)) goto out; - + if (!dbus_connection_set_timeout_functions (connection, add_client_timeout, remove_client_timeout, @@ -164,16 +164,16 @@ bus_setup_debug_client (DBusConnection *connection) if (!_dbus_list_append (&clients, connection)) goto out; - + retval = TRUE; - + out: if (!retval) { dbus_connection_remove_filter (connection, client_disconnect_filter, NULL); - + dbus_connection_set_watch_functions (connection, NULL, NULL, NULL, NULL, NULL); dbus_connection_set_timeout_functions (connection, @@ -187,7 +187,7 @@ bus_setup_debug_client (DBusConnection *connection) client_loop = NULL; } } - + return retval; } @@ -196,7 +196,7 @@ bus_test_clients_foreach (BusConnectionForeachFunction function, void *data) { DBusList *link; - + link = _dbus_list_get_first_link (&clients); while (link != NULL) { @@ -205,7 +205,7 @@ bus_test_clients_foreach (BusConnectionForeachFunction function, if (!(* function) (connection, data)) break; - + link = next; } } @@ -214,7 +214,7 @@ dbus_bool_t bus_test_client_listed (DBusConnection *connection) { DBusList *link; - + link = _dbus_list_get_first_link (&clients); while (link != NULL) { @@ -223,7 +223,7 @@ bus_test_client_listed (DBusConnection *connection) if (c == connection) return TRUE; - + link = next; } @@ -232,17 +232,17 @@ bus_test_client_listed (DBusConnection *connection) void bus_test_run_clients_loop (dbus_bool_t block_once) -{ +{ if (client_loop == NULL) return; _dbus_verbose ("---> Dispatching on \"client side\"\n"); - + /* dispatch before we block so pending dispatches * won't make our block return early */ _dbus_loop_dispatch (client_loop); - + /* Do one blocking wait, since we're expecting data */ if (block_once) { @@ -262,12 +262,12 @@ bus_test_run_bus_loop (BusContext *context, dbus_bool_t block_once) { _dbus_verbose ("---> Dispatching on \"server side\"\n"); - + /* dispatch before we block so pending dispatches * won't make our block return early */ _dbus_loop_dispatch (bus_context_get_loop (context)); - + /* Do one blocking wait, since we're expecting data */ if (block_once) { @@ -298,7 +298,7 @@ bus_context_new_test (const DBusString *test_data_dir, DBusString config_file; DBusString relative; BusContext *context; - + if (!_dbus_string_init (&config_file)) { _dbus_warn ("No memory\n"); @@ -321,25 +321,25 @@ bus_context_new_test (const DBusString *test_data_dir, _dbus_string_free (&config_file); return NULL; } - + dbus_error_init (&error); - context = bus_context_new (&config_file, FALSE, NULL, NULL, &error); + context = bus_context_new (&config_file, FALSE, NULL, NULL, NULL, FALSE, &error); if (context == NULL) { _DBUS_ASSERT_ERROR_IS_SET (&error); - + _dbus_warn ("Failed to create debug bus context from configuration file %s: %s\n", filename, error.message); dbus_error_free (&error); - + _dbus_string_free (&config_file); - + return NULL; } _dbus_string_free (&config_file); - + return context; } @@ -24,8 +24,6 @@ #ifndef BUS_TEST_H #define BUS_TEST_H -#include <config.h> - #ifdef DBUS_BUILD_TESTS #include <dbus/dbus.h> @@ -51,7 +49,9 @@ void bus_test_run_everything (BusContext *context); BusContext* bus_context_new_test (const DBusString *test_data_dir, const char *filename); - +#ifdef HAVE_UNIX_FD_PASSING +dbus_bool_t bus_unix_fds_passing_test (const DBusString *test_data_dir); +#endif #endif |