e: add support for systemd user session.

devs/devilhorns/e_wayland
Cedric Bail 10 years ago
parent 3f34680b7a
commit cd28bc8145
  1. 4
      ChangeLog
  2. 1
      NEWS
  3. 7
      configure.ac
  4. 4
      data/Makefile.am
  5. 9
      data/units/Makefile.am
  6. 27
      data/units/e18.service
  7. 14
      m4/pkg_var.m4
  8. 55
      src/bin/e_main.c

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

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

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

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

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

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

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

@ -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);
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_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");
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_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_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");

Loading…
Cancel
Save