e: add support for systemd user session.

This commit is contained in:
Cedric Bail 2013-03-28 23:53:24 +09:00
parent 3f34680b7a
commit cd28bc8145
8 changed files with 90 additions and 23 deletions

View File

@ -1,3 +1,7 @@
2013-03-28 Cedric Bail
* added support for systemd user session.
2013-03-11 Mike Blumenkrantz
* menus are now drawn directly on the compositor canvas

1
NEWS
View File

@ -45,6 +45,7 @@ Additions:
* new option for disabling all pointer warps
* added option for preventing all keyboard layout changes
* added option for remembering filemanager windows globally
* Added support for systemd user session
Changes:
Modules:

View File

@ -205,6 +205,12 @@ if test "x${have_bluetooth}" = "xyes"; then
AC_DEFINE_UNQUOTED([HAVE_BLUETOOTH], [1], [Bluetooth is there])
fi
# Detect systemd user session directory properly
EFL_PKG_CHECK_VAR([USER_SESSION_DIR], [systemd], [systemduserunitdir],
[have_systemd_user_session="yes"], [have_systemd_user_session="no"])
AM_CONDITIONAL([HAVE_SYSTEMD_USER_SESSION], [test "x${have_systemd_user_session}" = "xyes"])
AC_SUBST([USER_SESSION_DIR])
execinfo_libs=""
AC_CHECK_HEADERS([execinfo.h], [have_execinfo="yes"], [have_execinfo="no"])
if test "x${have_execinfo}" = "xyes" ; then
@ -1009,6 +1015,7 @@ data/etc/Makefile
data/etc/sysactions.conf
data/icons/Makefile
data/backgrounds/Makefile
data/units/Makefile
doc/Makefile
doc/Doxyfile
doc/e.dox

View File

@ -10,4 +10,6 @@ icons \
backgrounds \
flags \
favorites \
desktop
desktop \
units

9
data/units/Makefile.am Normal file
View File

@ -0,0 +1,9 @@
AUTOMAKE_OPTIONS = 1.4 foreign
MAINTAINERCLEANFILES = Makefile.in
if HAVE_SYSTEMD_USER_SESSION
unitsdir = $(USER_SESSION_DIR)
units_DATA = e18.service
endif
EXTRA_DIST = $(units_DATA)

27
data/units/e18.service Normal file
View File

@ -0,0 +1,27 @@
[Unit]
Description=Enlightenment 17 service
Before=end.target
After=xorg.target
Requires=xorg.target
Requires=dbus.socket
Requires=pulseaudio.service
Requires=ssh-agent.service
AllowIsolate=true
[Service]
Type=notify
#Environment=PATH=uncomment:to:override:your:PATH
Environment=E_START=enlightenment
ExecStart=/usr/bin/enlightenment
Restart=always
RestartPreventExitStatus=0
RestartSec=2
StartLimitInterval=30
StartLimitBurst=7
KillMode=process
WatchdogSec=1
TimeoutSec=1
NotifyAccess=all
[Install]
WantedBy=wm.target

14
m4/pkg_var.m4 Normal file
View File

@ -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

View File

@ -187,32 +187,35 @@ main(int argc, char **argv)
/* trap deadly bug signals and allow some form of sane recovery */
/* or ability to gdb attach and debug at this point - better than your */
/* wm/desktop vanishing and not knowing what happened */
TS("Signal Trap");
action.sa_sigaction = e_sigseg_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGSEGV, &action, NULL);
if (!getenv("NOTIFY_SOCKET"))
{
TS("Signal Trap");
action.sa_sigaction = e_sigseg_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGSEGV, &action, NULL);
action.sa_sigaction = e_sigill_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGILL, &action, NULL);
action.sa_sigaction = e_sigill_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGILL, &action, NULL);
action.sa_sigaction = e_sigfpe_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGFPE, &action, NULL);
action.sa_sigaction = e_sigfpe_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGFPE, &action, NULL);
action.sa_sigaction = e_sigbus_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGBUS, &action, NULL);
action.sa_sigaction = e_sigbus_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGBUS, &action, NULL);
action.sa_sigaction = e_sigabrt_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGABRT, &action, NULL);
TS("Signal Trap Done");
action.sa_sigaction = e_sigabrt_act;
action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
sigemptyset(&action.sa_mask);
sigaction(SIGABRT, &action, NULL);
TS("Signal Trap Done");
}
t = ecore_time_unix_get();
s = getenv("E_START_TIME");