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