forked from enlightenment/efl
link dbus and systemd services, allows systemd activation.
If the dbus service contains SystemdService entry and the dbus-daemon is started with --systemd-activation, then requests for services on the user session bus will be handled by systemd, creating cgroups and being handled as native systemd services of Type=dbus.
This commit is contained in:
parent
4be9526cc2
commit
c52da37d0b
|
@ -32,6 +32,7 @@ m4/ltsugar.m4 \
|
|||
m4/ltversion.m4
|
||||
|
||||
EXTRA_DIST = \
|
||||
m4/pkg_var.m4 \
|
||||
m4/ac_path_generic.m4 \
|
||||
m4/ecore_check_c_extension.m4 \
|
||||
m4/ecore_check_module.m4 \
|
||||
|
@ -309,6 +310,13 @@ service_DATA = \
|
|||
dbus-services/org.enlightenment.Efreet.service \
|
||||
dbus-services/org.enlightenment.Ethumb.service
|
||||
|
||||
if HAVE_SYSTEMD_USER_SESSION
|
||||
systemdunitsdir = @USER_SESSION_DIR@
|
||||
systemdunits_DATA = \
|
||||
systemd-services/efreet.service \
|
||||
systemd-services/ethumb.service
|
||||
endif
|
||||
EXTRA_DIST += $(systemdunits_DATA)
|
||||
|
||||
|
||||
.PHONY: doc benchmark examples install-examples
|
||||
|
|
35
configure.ac
35
configure.ac
|
@ -587,6 +587,35 @@ AC_ARG_ENABLE([systemd],
|
|||
want_systemd="no"
|
||||
])
|
||||
|
||||
systemd_dbus_prefix="# "
|
||||
if test "${want_systemd}" = "yes"; then
|
||||
systemd_dbus_prefix=""
|
||||
fi
|
||||
AC_SUBST(systemd_dbus_prefix)
|
||||
|
||||
AC_ARG_WITH([systemdunitdir],
|
||||
AC_HELP_STRING([--with-systemdunitdir=DIR],
|
||||
[path to systemd user services directory]),
|
||||
[USER_SESSION_DIR=${withval}])
|
||||
if test "$want_systemd" == "no"; then
|
||||
have_systemd_user_session="no"
|
||||
elif test -n "${USER_SESSION_DIR}"; then
|
||||
have_systemd_user_session="yes"
|
||||
AC_MSG_NOTICE([Using systemd user services directory as ${USER_SESSION_DIR}])
|
||||
else
|
||||
# Detect systemd user session directory properly
|
||||
EFL_PKG_CHECK_VAR([USER_SESSION_DIR], [systemd >= 192], [systemduserunitdir],
|
||||
[have_systemd_user_session="yes"], [have_systemd_user_session="no"])
|
||||
|
||||
if test "$want_systemd" = "yes" -a "$have_systemd_user_session" = "no"; then
|
||||
AC_MSG_ERROR([systemd support wanted, but systemd was not found.])
|
||||
fi
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([HAVE_SYSTEMD_USER_SESSION], [test "x${have_systemd_user_session}" = "xyes"])
|
||||
AC_SUBST([USER_SESSION_DIR])
|
||||
|
||||
|
||||
if test "x${have_systemd_pkg}" = "xauto" -o "x${have_systemd_pkg}" = "xyes"; then
|
||||
PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon >= 192 libsystemd-journal >= 192],
|
||||
[have_systemd_pkg="yes"],
|
||||
|
@ -4105,6 +4134,8 @@ pc/ethumb.pc
|
|||
pc/ethumb_client.pc
|
||||
dbus-services/org.enlightenment.Efreet.service
|
||||
dbus-services/org.enlightenment.Ethumb.service
|
||||
systemd-services/efreet.service
|
||||
systemd-services/ethumb.service
|
||||
$po_makefile_in
|
||||
cmakeconfig/EinaConfig.cmake
|
||||
cmakeconfig/EinaConfigVersion.cmake:cmakeconfig/EFLConfigVersion.cmake.in
|
||||
|
@ -4250,6 +4281,10 @@ fi
|
|||
echo " "
|
||||
echo "Installation....: make install (as root if needed, with 'su' or 'sudo')"
|
||||
echo " prefix........: $prefix"
|
||||
echo " dbus units....: $dbusservicedir"
|
||||
if test "${have_systemd_user_session}" = "yes"; then
|
||||
echo " systemd units.: $USER_SESSION_DIR"
|
||||
fi
|
||||
echo
|
||||
|
||||
if test "x${have_systemd_pkg}" = "xyes" -a "x${want_systemd}" = "xno"; then
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[D-BUS Service]
|
||||
Name=org.enlightenment.Efreet
|
||||
Exec=@prefix@/bin/efreetd
|
||||
@systemd_dbus_prefix@SystemdService=efreet.service
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[D-BUS Service]
|
||||
Name=org.enlightenment.Ethumb
|
||||
Exec=@prefix@/bin/ethumbd
|
||||
@systemd_dbus_prefix@SystemdService=ethumb.service
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
# -------------------------------------------
|
||||
# Retrieves the value of the pkg-config variable for the given module.
|
||||
AC_DEFUN([EFL_PKG_CHECK_VAR],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||
|
||||
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||
|
||||
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||
])# PKG_CHECK_VAR
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
/efreet.service
|
||||
/ethumb.service
|
|
@ -0,0 +1,7 @@
|
|||
[Unit]
|
||||
Description=Efreet Enlightenment FreeDesktop.Org Daemon
|
||||
|
||||
[Service]
|
||||
Type=dbus
|
||||
BusName=org.enlightenment.Efreet
|
||||
ExecStart=@prefix@/bin/efreetd
|
|
@ -0,0 +1,7 @@
|
|||
[Unit]
|
||||
Description=Enlightenment Thumbnailer
|
||||
|
||||
[Service]
|
||||
Type=dbus
|
||||
BusName=org.enlightenment.Ethumb
|
||||
ExecStart=@prefix@/bin/ethumbd
|
Loading…
Reference in New Issue