diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-04-05 22:47:48 +0000 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-04-05 22:47:48 +0000 |
commit | fa42accd367ffcd4ad05c19cd9bbb622de020485 (patch) | |
tree | be028fd5fbd75fc8de671fefea66f5bc4a7993d7 | |
parent | d07c6d7733893765e40b4545c02bfbb5bda14d10 (diff) | |
download | ptxdist-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.conf | 61 | ||||
-rw-r--r-- | generic/etc/dbus-1/system.conf | 83 | ||||
-rw-r--r-- | rules/dbus.in | 66 | ||||
-rw-r--r-- | rules/dbus.make | 38 |
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 |