summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2009-04-05 22:47:48 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2009-04-05 22:47:48 +0000
commitfa42accd367ffcd4ad05c19cd9bbb622de020485 (patch)
treebe028fd5fbd75fc8de671fefea66f5bc4a7993d7
parentd07c6d7733893765e40b4545c02bfbb5bda14d10 (diff)
downloadptxdist-fa42accd367ffcd4ad05c19cd9bbb622de020485.tar.gz
ptxdist-fa42accd367ffcd4ad05c19cd9bbb622de020485.tar.xz
[dbus] convert installation of config file to install_alternative
system.conf + session.conf are now installed with install_alternative Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@10234 33e552b5-05e3-0310-8538-816dae2090ed
-rw-r--r--generic/etc/dbus-1/session.conf61
-rw-r--r--generic/etc/dbus-1/system.conf83
-rw-r--r--rules/dbus.in66
-rw-r--r--rules/dbus.make38
4 files changed, 164 insertions, 84 deletions
diff --git a/generic/etc/dbus-1/session.conf b/generic/etc/dbus-1/session.conf
new file mode 100644
index 000000000..df9d433cc
--- /dev/null
+++ b/generic/etc/dbus-1/session.conf
@@ -0,0 +1,61 @@
+<!-- This configuration file controls the per-user-login-session message bus.
+ Add a session-local.conf and edit that rather than changing this
+ file directly. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <!-- Our well-known bus type, don't change this -->
+ <type>session</type>
+
+ <!-- If we fork, keep the user's original umask to avoid affecting
+ the behavior of child processes. -->
+ <keep_umask/>
+
+ <listen>unix:tmpdir=/tmp</listen>
+
+ <standard_session_servicedirs />
+
+ <policy context="default">
+ <!-- Allow everything to be sent -->
+ <allow send_destination="*" eavesdrop="true"/>
+ <!-- Allow everything to be received -->
+ <allow eavesdrop="true"/>
+ <!-- Allow anyone to own anything -->
+ <allow own="*"/>
+ </policy>
+
+ <!-- Config files are placed here that among other things,
+ further restrict the above policy for specific services. -->
+ <includedir>session.d</includedir>
+
+ <!-- This is included last so local configuration can override what's
+ in this standard file -->
+ <include ignore_missing="yes">session-local.conf</include>
+
+ <include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include>
+
+ <!-- For the session bus, override the default relatively-low limits
+ with essentially infinite limits, since the bus is just running
+ as the user anyway, using up bus resources is not something we need
+ to worry about. In some cases, we do set the limits lower than
+ "all available memory" if exceeding the limit is almost certainly a bug,
+ having the bus enforce a limit is nicer than a huge memory leak. But the
+ intent is that these limits should never be hit. -->
+
+ <!-- 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_outgoing_bytes">1000000000</limit>
+ <limit name="max_message_size">1000000000</limit>
+ <limit name="service_start_timeout">120000</limit>
+ <limit name="auth_timeout">240000</limit>
+ <limit name="max_completed_connections">100000</limit>
+ <limit name="max_incomplete_connections">10000</limit>
+ <limit name="max_connections_per_user">100000</limit>
+ <limit name="max_pending_service_starts">10000</limit>
+ <limit name="max_names_per_connection">50000</limit>
+ <limit name="max_match_rules_per_connection">50000</limit>
+ <limit name="max_replies_per_connection">50000</limit>
+ <limit name="reply_timeout">300000</limit>
+
+</busconfig>
diff --git a/generic/etc/dbus-1/system.conf b/generic/etc/dbus-1/system.conf
new file mode 100644
index 000000000..e5d6d7891
--- /dev/null
+++ b/generic/etc/dbus-1/system.conf
@@ -0,0 +1,83 @@
+<!-- This configuration file controls the systemwide message bus.
+ Add a system-local.conf and edit that rather than changing this
+ file directly. -->
+
+<!-- Note that there are any number of ways you can hose yourself
+ security-wise by screwing up this file; in particular, you
+ probably don't want to listen on any more addresses, add any more
+ auth mechanisms, run as a different user, etc. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+ <!-- Our well-known bus type, do not change this -->
+ <type>system</type>
+
+ <!-- Run as special user -->
+ <user>@DBUS_USER@</user>
+
+ <!-- Fork into daemon mode -->
+ <fork/>
+
+ <!-- We use system service launching using a helper -->
+ <standard_system_servicedirs/>
+
+ <!-- This is a setuid helper that is used to launch system services -->
+ <servicehelper>/usr/libexec/dbus-daemon-launch-helper</servicehelper>
+
+ <!-- Write a pid file -->
+ <pidfile>/var/run/dbus/pid</pidfile>
+
+ <!-- Enable logging to syslog -->
+ <syslog/>
+
+ <!-- Only allow socket-credentials-based authentication -->
+ <auth>EXTERNAL</auth>
+
+ <!-- Only listen on a local socket. (abstract=/path/to/socket
+ means use abstract namespace, don't really create filesystem
+ file; only Linux supports this. Use path=/whatever on other
+ systems.) -->
+ <listen>unix:path=/var/run/dbus/system_bus_socket</listen>
+
+ <policy context="default">
+ <!-- All users can connect to system bus -->
+ <allow user="*"/>
+
+ <!-- Holes must be punched in service configuration files for
+ name ownership and sending method calls -->
+ <deny own="*"/>
+ <deny send_type="method_call"/>
+
+ <!-- Signals and reply messages (method returns, errors) are allowed
+ by default -->
+ <allow send_type="signal"/>
+ <allow send_requested_reply="true" send_type="method_return"/>
+ <allow send_requested_reply="true" send_type="error"/>
+
+ <!-- All messages may be received by default -->
+ <allow receive_type="method_call"/>
+ <allow receive_type="method_return"/>
+ <allow receive_type="error"/>
+ <allow receive_type="signal"/>
+
+ <!-- Allow anyone to talk to the message bus -->
+ <allow send_destination="org.freedesktop.DBus"/>
+ <!-- But disallow some specific bus services -->
+ <deny send_destination="org.freedesktop.DBus"
+ send_interface="org.freedesktop.DBus"
+ send_member="UpdateActivationEnvironment"/>
+ </policy>
+
+ <!-- Config files are placed here that among other things, punch
+ holes in the above policy for specific services. -->
+ <includedir>system.d</includedir>
+
+ <!-- This is included last so local configuration can override what's
+ in this standard file -->
+ <include ignore_missing="yes">system-local.conf</include>
+
+ <include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include>
+
+</busconfig>
diff --git a/rules/dbus.in b/rules/dbus.in
index 96f676084..20037e237 100644
--- a/rules/dbus.in
+++ b/rules/dbus.in
@@ -15,7 +15,7 @@ menuconfig DBUS
if DBUS
-config DBUS__SELINUX
+config DBUS_SELINUX
prompt "selinux support [BROKEN]"
depends on BROKEN
bool
@@ -48,65 +48,25 @@ config DBUS_X
help
Enable this option to build dbus with support for X.
-config ROOTFS_DBUS_SYSTEM_CONF
+config DBUS_SYSTEM_CONF
bool
- prompt "/etc/dbus-1/system.conf"
+ prompt "install /etc/dbus-1/system.conf"
default y
help
- Installs a /etc/dbus-1/system.conf file from a selectable source.
+ Installs (if present) the
+ "./projectroot/etc/dbus-1/system.conf" file from your
+ workspace, otherwise a generic one from the ptxdist
+ directory.
- choice
- prompt "Kind of /etc/dbus-1/system.conf"
- depends on ROOTFS_DBUS_SYSTEM_CONF
- default ROOTFS_GENERIC_DBUS_SYSTEM_CONF
-
- config ROOTFS_GENERIC_DBUS_SYSTEM_CONF
- bool
- prompt "Use generic"
- help
- This uses the generic configuration file for your dbus which is
- shipped with the sources. This configuration is likely to fail
- because it is thought for a desktop PC.
-
- config ROOTFS_USER_DBUS_SYSTEM_CONF
- bool
- prompt "User defined"
- help
- This uses a user defined /etc/dbus-1/system.conf. PTXdist
- uses file projectroot/etc/dbus-1/system.conf in your local
- project.
-
- endchoice
-
-config ROOTFS_DBUS_SESSION_CONF
+config DBUS_SESSION_CONF
bool
- prompt "/etc/dbus-1/session.conf"
+ prompt "install /etc/dbus-1/session.conf"
default y
help
- Installs a /etc/dbus-1/session.conf file from a selectable source.
-
- choice
- prompt "Kind of /etc/dbus-1/session.conf"
- depends on ROOTFS_DBUS_SESSION_CONF
- default ROOTFS_GENERIC_DBUS_SESSION_CONF
-
- config ROOTFS_GENERIC_DBUS_SESSION_CONF
- bool
- prompt "Use generic"
- help
- This uses the generic configuration file for your dbus which is
- shipped with the sources. This configuration is likely to fail
- because it is thought for a desktop PC.
-
- config ROOTFS_USER_DBUS_SESSION_CONF
- bool
- prompt "User defined"
- help
- This uses a user defined /etc/dbus-1/session.conf. PTXdist
- uses file projectroot/etc/dbus-1/session.conf in your local
- project.
-
- endchoice
+ Installs (if present) the
+ "./projectroot/etc/dbus-1/session.conf" file from your
+ workspace, otherwise a generic one from the ptxdist
+ directory.
# --enable-tests enable unit test code
# --enable-ansi enable -ansi -pedantic gcc flags
diff --git a/rules/dbus.make b/rules/dbus.make
index aca4f0a9b..5dcb8ad73 100644
--- a/rules/dbus.make
+++ b/rules/dbus.make
@@ -62,7 +62,7 @@ endif
ifdef PTXCONF_DBUS_XML_LIBXML2
DBUS_AUTOCONF += --with-xml=libxml
endif
-ifdef PTXCONF_DBUS__SELINUX
+ifdef PTXCONF_DBUS_SELINUX
DBUS_AUTOCONF += --enable-selinux
else
DBUS_AUTOCONF += --disable-selinux
@@ -121,41 +121,17 @@ $(STATEDIR)/dbus.targetinstall:
@$(call install_copy, dbus, 0, 0, 0755, /etc/dbus-1/session.d/)
# #
-# # use the default /etc/dbus-1/system.conf config file
+# # install /etc/dbus-1/system.conf config file
# #
-ifdef PTXCONF_ROOTFS_GENERIC_DBUS_SYSTEM_CONF
- @$(call install_copy, dbus, 0, 0, 0644, -, \
- /etc/dbus-1/system.conf)
-endif
-
-# #
-# # use the users /etc/dbus-1/system.conf config file from projectroot/etc/dbus-1/system.conf
-# #
-ifdef PTXCONF_ROOTFS_USER_DBUS_SYSTEM_CONF
- @echo "installing user system config file..."
- @$(call install_copy, dbus, 0, 0, 0644, \
- $(PTXDIST_WORKSPACE)/projectroot/etc/dbus-1/system.conf, \
- /etc/dbus-1/system.conf)
-endif
-
-# #
-# # use the default /etc/dbus-1/session.conf config file
-# #
-ifdef PTXCONF_ROOTFS_GENERIC_DBUS_SESSION_CONF
- @$(call install_copy, dbus, 0, 0, 0644, -, \
- /etc/dbus-1/session.conf)
+ifdef PTXCONF_ROOTFS_DBUS_SYSTEM_CONF
+ @$(call install_alternative, dbus, 0, 0, 0644, /etc/dbus-1/system.conf, n)
+ @$(call install_replace, dbus, /etc/dbus-1/system.conf, @DBUS_USER@, $(PTXCONF_DBUS_USER))
endif
# #
-# # use the user's /etc/dbus-1/session.conf config file from projectroot/etc/dbus-1/session.conf
+# # instal /etc/dbus-1/session.conf config file
# #
-ifdef PTXCONF_ROOTFS_USER_DBUS_SESSION_CONF
- @echo "installing user session config file..."
- @$(call install_copy, dbus, 0, 0, 0644, \
- $(PTXDIST_WORKSPACE)/projectroot/etc/dbus-1/session.conf, \
- /etc/dbus-1/session.conf)
-endif
-
+ @$(call install_alternative, dbus, 0, 0, 0644, /etc/dbus-1/session.conf, n)
# #
# # busybox init: start script