summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/system/CMakeLists.txt2
-rw-r--r--conf/system/afm-api-afm-main@.service.in13
-rw-r--r--conf/unit/afm-unit-debug.conf.in48
-rw-r--r--conf/unit/afm-unit.conf.in48
-rw-r--r--conf/unit/generate-unit-conf/afm-unit4
-rw-r--r--conf/unit/generate-unit-conf/provided.inc62
-rw-r--r--conf/unit/generate-unit-conf/service.inc8
7 files changed, 142 insertions, 43 deletions
diff --git a/conf/system/CMakeLists.txt b/conf/system/CMakeLists.txt
index c36128f..26fc562 100644
--- a/conf/system/CMakeLists.txt
+++ b/conf/system/CMakeLists.txt
@@ -20,6 +20,7 @@ cmake_minimum_required(VERSION 2.8)
configure_file(afm-system-daemon.service.in afm-system-daemon.service)
configure_file(afm-system-daemon.socket.in afm-system-daemon.socket)
+configure_file(afm-api-afm-main@.service.in afm-api-afm-main@.service)
if(NOT USE_SDK)
set(SYSCONFDIR_DBUS_SYSTEM ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d CACHE STRING "Path to dbus system configuration files")
@@ -30,6 +31,7 @@ if(NOT USE_SDK)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/afm-user-session.pamd DESTINATION ${SYSCONFDIR_PAMD} RENAME afm-user-session)
install(
FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/afm-api-afm-main@.service
${CMAKE_CURRENT_BINARY_DIR}/afm-system-daemon.service
${CMAKE_CURRENT_BINARY_DIR}/afm-system-daemon.socket
${CMAKE_CURRENT_SOURCE_DIR}/afm-system-setup.service
diff --git a/conf/system/afm-api-afm-main@.service.in b/conf/system/afm-api-afm-main@.service.in
new file mode 100644
index 0000000..f5b2519
--- /dev/null
+++ b/conf/system/afm-api-afm-main@.service.in
@@ -0,0 +1,13 @@
+[Unit]
+Description=Provides api afm-main for user %i
+X-AFM-API-TYPE=ws
+
+Requires=afm-user-setup@%i.service
+After=afm-user-setup@%i.service
+Requires=afm-system-daemon.socket
+After=afm-system-daemon.socket
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/ln -s @afm_platform_rundir@/apis/ws/afm-main /run/user/%i/apis/ws/afm-main
diff --git a/conf/unit/afm-unit-debug.conf.in b/conf/unit/afm-unit-debug.conf.in
index 05881fa..55af22d 100644
--- a/conf/unit/afm-unit-debug.conf.in
+++ b/conf/unit/afm-unit-debug.conf.in
@@ -113,14 +113,14 @@ ConditionSecurity=smack
# Automatic bound to required api
{{#required-api}}
{{#value=auto|ws}}
-BindsTo=afm-api-ws-{{name}}@%i.socket
-After=afm-api-ws-{{name}}@%i.socket
+BindsTo=afm-api-{{name}}@%i.service
+After=afm-api-{{name}}@%i.service
{{/value=auto|ws}}
{{/required-api}}
{{#provided-api}}
{{#value=ws|auto}}
-Requires=afm-api-ws-{{name}}@%i.socket
-After=afm-api-ws-{{name}}@%i.socket
+Requires=afm-api-{{name}}@%i.service
+After=afm-api-{{name}}@%i.service
{{/value=ws|auto}}
{{/provided-api}}
%nl
@@ -200,17 +200,43 @@ WantedBy=afm-user-session@.target
%systemd-unit wanted-by afm-user-session@.target
{{/required-permission.urn:AGL:permission::system:run-by-default}}
%end systemd-unit
-;---------------------------------------------------------------------------------
-;---- P R O V I D E D A P I S ----
-;---------------------------------------------------------------------------------
+;-------------------------------------------------------------------------------
+;---- P R O V I D E D A P I S ----
+;-------------------------------------------------------------------------------
{{#provided-api}}
-{{#value=ws|auto}}
+;-------------------------------------------------------------------------------
+;---- T H E S E R V I C E O F T H E A P I ----
+;-------------------------------------------------------------------------------
%begin systemd-unit
# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
%systemd-unit system
-%systemd-unit socket afm-api-ws-{{name}}@
+%systemd-unit service afm-api-{{name}}@
[Unit]
Description=Provides api {{name}} for user %i
+X-AFM-API-TYPE={{value}}
+Requires=afm-user-setup@%i.service
+After=afm-user-setup@%i.service
+{{#value=ws|auto}}
+Requires=afm-api-{{name}}@%i.socket
+After=afm-api-{{name}}@%i.socket
+{{/value=ws|auto}}
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+{{#value=ws|auto}}
+ExecStart=/bin/true
+{{/value=ws|auto}}
+%end systemd-unit
+;-------------------------------------------------------------------------------
+;---- T H E S O C K E T O F T H E A P I ----
+;-------------------------------------------------------------------------------
+{{#value=ws|auto}}
+%begin systemd-unit
+# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
+%systemd-unit system
+%systemd-unit socket afm-api-{{name}}@
+[Unit]
+Description=Provides websocket api {{name}} for user %i
Requires=afm-user-setup@%i.service
After=afm-user-setup@%i.service
DefaultDependencies=no
@@ -221,10 +247,6 @@ SmackLabelIPOut=System
ListenStream=@afm_users_rundir@/%i/apis/ws/{{name}}
FileDescriptorName={{name}}
Service=afm-{{#required-permission.urn:AGL:permission::public:hidden}}service{{/required-permission.urn:AGL:permission::public:hidden}}{{^required-permission.urn:AGL:permission::public:hidden}}appli{{/required-permission.urn:AGL:permission::public:hidden}}-{{:id}}--{{:ver}}--{{:#target}}@%i.service
-%nl
-[Install]
-WantedBy=afm-user-session@.target
-%systemd-unit wanted-by afm-user-session@.target
%end systemd-unit
{{/value=ws|auto}}
{{/provided-api}}
diff --git a/conf/unit/afm-unit.conf.in b/conf/unit/afm-unit.conf.in
index 20a3b50..0cbe103 100644
--- a/conf/unit/afm-unit.conf.in
+++ b/conf/unit/afm-unit.conf.in
@@ -113,14 +113,14 @@ ConditionSecurity=smack
# Automatic bound to required api
{{#required-api}}
{{#value=auto|ws}}
-BindsTo=afm-api-ws-{{name}}@%i.socket
-After=afm-api-ws-{{name}}@%i.socket
+BindsTo=afm-api-{{name}}@%i.service
+After=afm-api-{{name}}@%i.service
{{/value=auto|ws}}
{{/required-api}}
{{#provided-api}}
{{#value=ws|auto}}
-Requires=afm-api-ws-{{name}}@%i.socket
-After=afm-api-ws-{{name}}@%i.socket
+Requires=afm-api-{{name}}@%i.service
+After=afm-api-{{name}}@%i.service
{{/value=ws|auto}}
{{/provided-api}}
%nl
@@ -200,17 +200,43 @@ WantedBy=afm-user-session@.target
%systemd-unit wanted-by afm-user-session@.target
{{/required-permission.urn:AGL:permission::system:run-by-default}}
%end systemd-unit
-;---------------------------------------------------------------------------------
-;---- P R O V I D E D A P I S ----
-;---------------------------------------------------------------------------------
+;-------------------------------------------------------------------------------
+;---- P R O V I D E D A P I S ----
+;-------------------------------------------------------------------------------
{{#provided-api}}
-{{#value=ws|auto}}
+;-------------------------------------------------------------------------------
+;---- T H E S E R V I C E O F T H E A P I ----
+;-------------------------------------------------------------------------------
%begin systemd-unit
# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
%systemd-unit system
-%systemd-unit socket afm-api-ws-{{name}}@
+%systemd-unit service afm-api-{{name}}@
[Unit]
Description=Provides api {{name}} for user %i
+X-AFM-API-TYPE={{value}}
+Requires=afm-user-setup@%i.service
+After=afm-user-setup@%i.service
+{{#value=ws|auto}}
+Requires=afm-api-{{name}}@%i.socket
+After=afm-api-{{name}}@%i.socket
+{{/value=ws|auto}}
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+{{#value=ws|auto}}
+ExecStart=/bin/true
+{{/value=ws|auto}}
+%end systemd-unit
+;-------------------------------------------------------------------------------
+;---- T H E S O C K E T O F T H E A P I ----
+;-------------------------------------------------------------------------------
+{{#value=ws|auto}}
+%begin systemd-unit
+# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
+%systemd-unit system
+%systemd-unit socket afm-api-{{name}}@
+[Unit]
+Description=Provides websocket api {{name}} for user %i
Requires=afm-user-setup@%i.service
After=afm-user-setup@%i.service
DefaultDependencies=no
@@ -221,10 +247,6 @@ SmackLabelIPOut=System
ListenStream=@afm_users_rundir@/%i/apis/ws/{{name}}
FileDescriptorName={{name}}
Service=afm-{{#required-permission.urn:AGL:permission::public:hidden}}service{{/required-permission.urn:AGL:permission::public:hidden}}{{^required-permission.urn:AGL:permission::public:hidden}}appli{{/required-permission.urn:AGL:permission::public:hidden}}-{{:id}}--{{:ver}}--{{:#target}}@%i.service
-%nl
-[Install]
-WantedBy=afm-user-session@.target
-%systemd-unit wanted-by afm-user-session@.target
%end systemd-unit
{{/value=ws|auto}}
{{/provided-api}}
diff --git a/conf/unit/generate-unit-conf/afm-unit b/conf/unit/generate-unit-conf/afm-unit
index e2fb7d0..40a56fc 100644
--- a/conf/unit/generate-unit-conf/afm-unit
+++ b/conf/unit/generate-unit-conf/afm-unit
@@ -50,7 +50,9 @@ define( `IF_NOT_VALUE', `MUSTACH_IF_NOT(value=$1)')
define( `TARGET', `{{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}')
define( `UNIT_NAME_BASE', `afm-ON_PERM(`:public:hidden', `service', `appli')-{{:id}}--{{:ver}}--{{:#target}}@')
define( `UNIT_NAME_SERVICE', `UNIT_NAME_BASE%i.service')
-define( `UNIT_NAME_SOCKET_FOR', `afm-api-ws-$1@%i.socket')
+define( `UNIT_NAME_API_BASE', `afm-api-$1')
+define( `UNIT_NAME_API_SERVICE', `UNIT_NAME_API_BASE($1)@$2.service')
+define( `UNIT_NAME_API_SOCKET', `UNIT_NAME_API_BASE($1)@$2.socket')
define( `APP_DATA_DIR', `/home/%i/app-data')
define( `USER_RUN_DIR', `@afm_users_rundir@/%i')
define( `DEBUGGING_DIR', `@afm_platform_rundir@/debug')
diff --git a/conf/unit/generate-unit-conf/provided.inc b/conf/unit/generate-unit-conf/provided.inc
index ead1983..267e2ed 100644
--- a/conf/unit/generate-unit-conf/provided.inc
+++ b/conf/unit/generate-unit-conf/provided.inc
@@ -1,19 +1,63 @@
dnl vim: set filetype=sysctl.conf.m4 syntax=sysctl.conf.m4:
-;---------------------------------------------------------------------------------
-;---- P R O V I D E D A P I S ----
-;---------------------------------------------------------------------------------
+;-------------------------------------------------------------------------------
+;---- P R O V I D E D A P I S ----
+;-------------------------------------------------------------------------------
{{#provided-api}}
-{{#value=ws|auto}}
+;-------------------------------------------------------------------------------
+;---- T H E S E R V I C E O F T H E A P I ----
+;-------------------------------------------------------------------------------
%begin systemd-unit
# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
%systemd-unit system
-%systemd-unit socket afm-api-ws-{{name}}@
+%systemd-unit service UNIT_NAME_API_BASE({{name}})@
+
[Unit]
Description=Provides api {{name}} for user %i
+X-AFM-API-TYPE={{value}}
+
+Requires=afm-user-setup@%i.service
+After=afm-user-setup@%i.service
+
+{{#value=ws|auto}}
+Requires=UNIT_NAME_API_BASE({{name}})@%i.socket
+After=UNIT_NAME_API_BASE({{name}})@%i.socket
+{{/value=ws|auto}}
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+{{#value=ws|auto}}
+ExecStart=/bin/true
+{{/value=ws|auto}}
+dnl {{#value=link}}
+dnl ExecStart=/bin/ln -s {{:#metadata.install-dir}}/ USER_RUN_DIR/apis/link/{{name}}
+dnl {{/value=link}}
+
+dnl %nl
+dnl [Install]
+dnl WantedBy=afm-user-session@.target
+dnl %systemd-unit wanted-by afm-user-session@.target
+
+%end systemd-unit
+
+
+;-------------------------------------------------------------------------------
+;---- T H E S O C K E T O F T H E A P I ----
+;-------------------------------------------------------------------------------
+{{#value=ws|auto}}
+
+%begin systemd-unit
+
+# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
+
+%systemd-unit system
+%systemd-unit socket UNIT_NAME_API_BASE({{name}})@
+[Unit]
+Description=Provides websocket api {{name}} for user %i
Requires=afm-user-setup@%i.service
After=afm-user-setup@%i.service
DefaultDependencies=no
@@ -24,19 +68,13 @@ SmackLabelIPIn=System
SmackLabelIPOut=System
ListenStream=USER_RUN_DIR/apis/ws/{{name}}
FileDescriptorName={{name}}
-
Service=UNIT_NAME_SERVICE
-%nl
-[Install]
-WantedBy=afm-user-session@.target
-%systemd-unit wanted-by afm-user-session@.target
-
%end systemd-unit
-
{{/value=ws|auto}}
+
{{/provided-api}}
diff --git a/conf/unit/generate-unit-conf/service.inc b/conf/unit/generate-unit-conf/service.inc
index 88e4346..3efa975 100644
--- a/conf/unit/generate-unit-conf/service.inc
+++ b/conf/unit/generate-unit-conf/service.inc
@@ -42,14 +42,14 @@ ConditionSecurity=smack
# Automatic bound to required api
{{#required-api}}
{{#value=auto|ws}}
-BindsTo=UNIT_NAME_SOCKET_FOR({{name}})
-After=UNIT_NAME_SOCKET_FOR({{name}})
+BindsTo=UNIT_NAME_API_SERVICE({{name}},%i)
+After=UNIT_NAME_API_SERVICE({{name}},%i)
{{/value=auto|ws}}
{{/required-api}}
{{#provided-api}}
{{#value=ws|auto}}
-Requires=UNIT_NAME_SOCKET_FOR({{name}})
-After=UNIT_NAME_SOCKET_FOR({{name}})
+Requires=UNIT_NAME_API_SERVICE({{name}},%i)
+After=UNIT_NAME_API_SERVICE({{name}},%i)
{{/value=ws|auto}}
{{/provided-api}}