mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-23 07:15:35 +08:00
Generate DBus session.conf from template for each platform individually
Before this commit we used to have a static session.conf. But the session configuration needs to be different for Mac OS and Windows. Our static one was Windows only. This caused the packaged DBus daemon to fail on Mac OS. This commit solves this by generating the config file at qmake time with special configuration for each operating system. ref T170
This commit is contained in:
@@ -70,7 +70,24 @@ win32-g++ {
|
||||
DESTDIR = $$DestRoot/lib
|
||||
DLLDESTDIR = $$DestRoot/bin
|
||||
|
||||
OTHER_FILES += $$TRANSLATIONS readme.txt buildconfig.cpp.in
|
||||
OTHER_FILES += $$TRANSLATIONS readme.txt share/dbus-1/session.conf.in
|
||||
|
||||
win32 {
|
||||
DBUS_SESSION_BUS_LISTEN_ADDRESS = "autolaunch:"
|
||||
DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL = "<!--<auth>EXTERNAL</auth>-->"
|
||||
}
|
||||
|
||||
macx {
|
||||
DBUS_SESSION_BUS_LISTEN_ADDRESS = "launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
|
||||
DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL = "<auth>EXTERNAL</auth>"
|
||||
}
|
||||
|
||||
win32|macx {
|
||||
dbus_session_conf.input = share/dbus-1/session.conf.in
|
||||
dbus_session_conf.output = $$DestRoot/share/dbus-1/session.conf
|
||||
QMAKE_SUBSTITUTES += dbus_session_conf
|
||||
}
|
||||
|
||||
|
||||
win32 {
|
||||
dlltarget.path = $$PREFIX/bin
|
||||
@@ -80,4 +97,8 @@ win32 {
|
||||
INSTALLS += target
|
||||
}
|
||||
|
||||
package_dbus_conf.path = $$PREFIX/share/dbus-1
|
||||
package_dbus_conf.files += $$DestRoot/share/dbus-1/*.conf
|
||||
INSTALLS += package_dbus_conf
|
||||
|
||||
load(common_post)
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
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">
|
||||
<!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 -->
|
||||
<!-- Our well-known bus type, don\'t change this -->
|
||||
<type>session</type>
|
||||
|
||||
<!-- If we fork, keep the user's original umask to avoid affecting
|
||||
<!-- If we fork, keep the user\'s original umask to avoid affecting
|
||||
the behavior of child processes. -->
|
||||
<keep_umask/>
|
||||
|
||||
<listen>autolaunch:</listen>
|
||||
<listen>$$DBUS_SESSION_BUS_LISTEN_ADDRESS</listen>
|
||||
|
||||
<!-- On Unix systems, the most secure authentication mechanism is
|
||||
EXTERNAL, which uses credential-passing over Unix sockets.
|
||||
@@ -22,54 +22,54 @@
|
||||
and will not work on obscure flavours of Unix that do not have
|
||||
a supported credentials-passing mechanism. On those platforms/transports,
|
||||
comment out the <auth> element to allow fallback to DBUS_COOKIE_SHA1. -->
|
||||
<!--<auth>EXTERNAL</auth>-->
|
||||
$$DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL
|
||||
|
||||
<standard_session_servicedirs />
|
||||
|
||||
<policy context="default">
|
||||
<policy context=\"default\">
|
||||
<!-- Allow everything to be sent -->
|
||||
<allow send_destination="*" eavesdrop="true"/>
|
||||
<allow send_destination=\"*\" eavesdrop=\"true\"/>
|
||||
<!-- Allow everything to be received -->
|
||||
<allow eavesdrop="true"/>
|
||||
<allow eavesdrop=\"true\"/>
|
||||
<!-- Allow anyone to own anything -->
|
||||
<allow own="*"/>
|
||||
<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
|
||||
<!-- This is included last so local configuration can override what\'s
|
||||
in this standard file -->
|
||||
<include ignore_missing="yes">session-local.conf</include>
|
||||
<include ignore_missing=\"yes\">session-local.conf</include>
|
||||
|
||||
<include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</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,
|
||||
\"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_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>
|
||||
<!-- 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>
|
||||
<!-- We do not override max_message_unix_fds here since the in-kernel
|
||||
limit is also relatively low -->
|
||||
<limit name="service_start_timeout">120000</limit>
|
||||
<limit name="auth_timeout">240000</limit>
|
||||
<limit name="pending_fd_timeout">150000</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=\"service_start_timeout\">120000</limit>
|
||||
<limit name=\"auth_timeout\">240000</limit>
|
||||
<limit name=\"pending_fd_timeout\">150000</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>
|
||||
|
||||
</busconfig>
|
||||
Reference in New Issue
Block a user