cedric pushed a commit to branch master.
commit b9296086cb275c51de4f7cf93a581e4b7cdbd3e8
Author: Cedric Bail <[email protected]>
Date: Sun Mar 17 11:52:10 2013 +0900
clouseau: add support for systemd user session.
---
configure.ac | 7 +++++++
data/Makefile.am | 2 +-
data/units/Makefile.am | 9 +++++++++
data/units/clouseaud.service | 10 ++++++++++
data/units/clouseaud.socket | 8 ++++++++
data/units/clouseaud.socket~ | 8 ++++++++
m4/pkg_var.m4 | 14 ++++++++++++++
src/bin/clouseaud.c | 4 ++--
8 files changed, 59 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index fccaf9f..f204c20 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,6 +62,12 @@ PKG_CHECK_MODULES([EFL],
]
)
+# 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])
+
### Checks for linker characteristics
lt_enable_auto_import=""
case "${host_os}" in
@@ -90,6 +96,7 @@ src/bin/Makefile
src/scripts/Makefile
data/Makefile
data/images/Makefile
+data/units/Makefile
])
AC_OUTPUT
diff --git a/data/Makefile.am b/data/Makefile.am
index fee2fa8..984455c 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,2 +1,2 @@
MAINTAINERCLEANFILES = Makefile.in
-SUBDIRS = images
+SUBDIRS = images units
diff --git a/data/units/Makefile.am b/data/units/Makefile.am
new file mode 100644
index 0000000..f757a41
--- /dev/null
+++ b/data/units/Makefile.am
@@ -0,0 +1,9 @@
+AUTOMAKE_OPTIONS = 1.4 foreign
+MAINTAINERCLEANFILES = Makefile.in
+
+if HAVE_SYSTEMD_USER_SESSION
+unitsdir = $(USER_SESSION_DIR)
+units_DATA = clouseaud.service clouseaud.socket
+endif
+
+EXTRA_DIST = $(units_DATA)
diff --git a/data/units/clouseaud.service b/data/units/clouseaud.service
new file mode 100644
index 0000000..c071126
--- /dev/null
+++ b/data/units/clouseaud.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Clouseau system service
+Requires=xorg.target
+After=xorg.target
+
+[Service]
+ExecStart=/usr/bin/clouseaud
+
+[Install]
+Also=clouseaud.socket
diff --git a/data/units/clouseaud.socket b/data/units/clouseaud.socket
new file mode 100644
index 0000000..adfbec7
--- /dev/null
+++ b/data/units/clouseaud.socket
@@ -0,0 +1,8 @@
+[Unit]
+Description=Clouseau Service Sockets
+
+[Socket]
+ListenStream=22522
+
+[Install]
+WantedBy=sockets.target
diff --git a/data/units/clouseaud.socket~ b/data/units/clouseaud.socket~
new file mode 100644
index 0000000..a15d993
--- /dev/null
+++ b/data/units/clouseaud.socket~
@@ -0,0 +1,8 @@
+[Unit]
+Description=Clouseau Service Sockets
+
+[Socket]
+ListenStream=%t/.ecore/elev8-serversockpath/6523
+
+[Install]
+WantedBy=sockets.target
diff --git a/m4/pkg_var.m4 b/m4/pkg_var.m4
new file mode 100644
index 0000000..3d0a309
--- /dev/null
+++ b/m4/pkg_var.m4
@@ -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
+
diff --git a/src/bin/clouseaud.c b/src/bin/clouseaud.c
index f29ec6b..aa43089 100644
--- a/src/bin/clouseaud.c
+++ b/src/bin/clouseaud.c
@@ -406,8 +406,8 @@ int main(void)
return EINA_FALSE;
}
- if (!(server = ecore_con_server_add(ECORE_CON_REMOTE_TCP,
- LISTEN_IP, PORT, NULL)))
+ if (!(server = ecore_con_server_add(ECORE_CON_REMOTE_TCP |
ECORE_CON_SOCKET_ACTIVATE,
+ LISTEN_IP, PORT, NULL)))
exit(1);
eet_svr = ecore_con_eet_server_new(server);
--
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar