From 2ab2f9ad20752a59ab137421ad1e380e8c4981dc Mon Sep 17 00:00:00 2001 From: Jaeho Lee Date: Thu, 15 Nov 2012 14:03:35 +0900 Subject: [PATCH] 1. apply systemd 2. add a function of aul_test : update running list --- am_daemon/amd_request.c | 13 ++++++ include/app_sock.h | 3 +- include/aul.h | 7 +++ packaging/ac.service | 15 ++++++ packaging/aul.spec | 88 ++++++++++++++++++++++-------------- packaging/launchpad-preload@.service | 14 ++++++ src/status.c | 22 +++++++++ test/aul_test.c | 10 ++++ 8 files changed, 137 insertions(+), 35 deletions(-) create mode 100644 packaging/ac.service create mode 100644 packaging/launchpad-preload@.service diff --git a/am_daemon/amd_request.c b/am_daemon/amd_request.c index 434884e..59e3850 100755 --- a/am_daemon/amd_request.c +++ b/am_daemon/amd_request.c @@ -286,6 +286,9 @@ static gboolean __request_handler(gpointer data) int *status; int ret = -1; char *appid; + char *app_path; + char *tmp_pid; + int pid; bundle *kb = NULL; item_pkt_t *item; @@ -369,6 +372,16 @@ static gboolean __request_handler(gpointer data) __send_result_to_client(clifd, ret); free(pkt); break; + case APP_RUNNING_LIST_UPDATE: + kb = bundle_decode(pkt->data, pkt->len); + appid = (char *)bundle_get_val(kb, AUL_K_APPID); + app_path = (char *)bundle_get_val(kb, AUL_K_EXEC); + tmp_pid = (char *)bundle_get_val(kb, AUL_K_PID); + pid = atoi(tmp_pid); + ret = _status_add_app_info_list(appid, app_path, pid); + __send_result_to_client(clifd, ret); + free(pkt); + break; default: _E("no support packet"); } diff --git a/include/app_sock.h b/include/app_sock.h index 8917f67..8346c1f 100755 --- a/include/app_sock.h +++ b/include/app_sock.h @@ -46,7 +46,8 @@ enum app_cmd { APP_KEY_RESERVE, APP_KEY_RELEASE, APP_STATUS_UPDATE, - APP_RELEASED + APP_RELEASED, + APP_RUNNING_LIST_UPDATE }; #define AUL_SOCK_PREFIX "/tmp/alaunch" diff --git a/include/aul.h b/include/aul.h index ed0ba86..0bb36d2 100755 --- a/include/aul.h +++ b/include/aul.h @@ -179,6 +179,13 @@ typedef enum _aul_type{ /** AUL internal private key */ #define AUL_K_PACKAGETYPE "__AUL_PACKAGETYPE__" +/** AUL internal private key */ +#define AUL_K_APPID "__AUL_APPID__" +/** AUL internal private key */ +#define AUL_K_PID "__AUL_PID__" + + + /** * @brief This is callback function for aul_launch_init * @param[in] type event's type received from system diff --git a/packaging/ac.service b/packaging/ac.service new file mode 100644 index 0000000..6ff0443 --- /dev/null +++ b/packaging/ac.service @@ -0,0 +1,15 @@ +# +# classical example of a socket activated service? +# + +[Unit] +Description=Start the Access Control server + +[Service] +ExecStartPre=-/bin/mkdir -m 1777 /tmp/alaunch +ExecStart=/usr/bin/amd + +OOMScoreAdjust=-100 + +[Install] +WantedBy=multi-user.target diff --git a/packaging/aul.spec b/packaging/aul.spec index 2498306..ec10852 100644 --- a/packaging/aul.spec +++ b/packaging/aul.spec @@ -1,13 +1,18 @@ Name: aul Summary: App utility library -Version: 0.0.207 +Version: 0.0.208 Release: 1 Group: System/Libraries License: Apache License, Version 2.0 Source0: %{name}-%{version}.tar.gz +#Source101: launchpad-preload@.service +#Source102: ac.service Requires(post): /sbin/ldconfig +Requires(post): /usr/bin/systemctl Requires(postun): /sbin/ldconfig +Requires(postun): /usr/bin/systemctl +Requires(preun): /usr/bin/systemctl BuildRequires: cmake BuildRequires: pkgconfig(dbus-glib-1) @@ -56,55 +61,70 @@ rm -rf %{buildroot} mkdir -p %{buildroot}/etc/init.d install -m 755 launchpad_run %{buildroot}/etc/init.d -chmod +x %{buildroot}/usr/bin/aul_service.sh -chmod +x %{buildroot}/usr/bin/aul_service_test.sh +mkdir -p %{buildroot}/etc/rc.d/rc3.d +mkdir -p %{buildroot}/etc/rc.d/rc4.d +ln -sf ../../init.d/launchpad_run %{buildroot}/%{_sysconfdir}/rc.d/rc3.d/S15launchpad_run +ln -sf ../../init.d/launchpad_run %{buildroot}/%{_sysconfdir}/rc.d/rc4.d/S80launchpad_run -%post +mkdir -p %{buildroot}/opt/dbspace +sqlite3 %{buildroot}/opt/dbspace/.mida.db < %{buildroot}/usr/share/aul/mida_db.sql +rm -rf %{buildroot}/usr/share/aul/mida_db.sql -/sbin/ldconfig -mkdir -p /etc/rc.d/rc3.d -mkdir -p /etc/rc.d/rc4.d -ln -sf /etc/init.d/launchpad_run /etc/rc.d/rc3.d/S15launchpad_run -ln -sf /etc/init.d/launchpad_run /etc/rc.d/rc4.d/S80launchpad_run +#mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants +#install -m 0644 %SOURCE101 %{buildroot}%{_libdir}/systemd/system/launchpad-preload@.service +#ln -s ../launchpad-preload@.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/launchpad-preload@app.service -mkdir -p /opt/dbspace -sqlite3 /opt/dbspace/.mida.db < /usr/share/aul/mida_db.sql -rm -rf /usr/share/aul/mida_db.sql +#mkdir -p %{buildroot}%{_libdir}/systemd/user/tizen-middleware.target.wants +#install -m 0644 %SOURCE102 %{buildroot}%{_libdir}/systemd/user/ac.service +#ln -s ../ac.service %{buildroot}%{_libdir}/systemd/user/tizen-middleware.target.wants/ac.service -chown 0:0 /usr/lib/libaul.so.0.1.0 -chown 0:5000 /opt/dbspace/.mida.db -chown 0:5000 /opt/dbspace/.mida.db-journal -chmod 644 /usr/lib/libaul.so.0.1.0 -chmod 664 /opt/dbspace/.mida.db -chmod 664 /opt/dbspace/.mida.db-journal +#%preun +#if [ $1 == 0 ]; then +# systemctl stop launchpad-preload@app.service +#fi -%postun -p /sbin/ldconfig +#%post +#/sbin/ldconfig +#systemctl daemon-reload +#if [ $1 == 1 ]; then +# systemctl restart launchpad-preload@app.service +#fi + +#%postun -p /sbin/ldconfig +#systemctl daemon-reload %files %manifest aul.manifest -/usr/lib/*.so.* -/etc/init.d/launchpad_run -/usr/bin/aul_service.sh -/usr/bin/aul_service_test.sh -/usr/share/aul/mida_db.sql -/usr/bin/aul_mime.sh -/usr/bin/aul_test -/usr/bin/launch_app +%attr(0644,root,root) %{_libdir}/libaul.so.0 +%attr(0644,root,root) %{_libdir}/libaul.so.0.1.0 +%{_sysconfdir}/init.d/launchpad_run +%attr(0755,root,root) %{_bindir}/aul_service.sh +%attr(0755,root,root) %{_bindir}/aul_service_test.sh +%attr(0755,root,root) %{_sysconfdir}/rc.d/rc3.d/S15launchpad_run +%attr(0755,root,root) %{_sysconfdir}/rc.d/rc4.d/S80launchpad_run +%config(noreplace) %attr(0644,root,app) /opt/dbspace/.mida.db +%config(noreplace) %attr(0644,root,app) /opt/dbspace/.mida.db-journal +%attr(0755,root,root) %{_bindir}/aul_mime.sh +%{_bindir}/aul_test +%{_bindir}/launch_app /usr/share/aul/miregex/* /usr/share/aul/service/* /usr/share/aul/preload_list.txt /usr/share/aul/preexec_list.txt -/usr/bin/launchpad_preloading_preinitializing_daemon -/usr/bin/amd -/usr/bin/daemon-manager-release-agent -/usr/bin/daemon-manager-launch-agent - +%{_bindir}/launchpad_preloading_preinitializing_daemon +%{_bindir}/amd +%{_bindir}/daemon-manager-release-agent +%{_bindir}/daemon-manager-launch-agent +#%{_libdir}/systemd/system/multi-user.target.wants/launchpad-preload@app.service +#%{_libdir}/systemd/system/launchpad-preload@.service +#%{_libdir}/systemd/user/tizen-middleware.target.wants/ac.service +#%{_libdir}/systemd/user/ac.service %files devel /usr/include/aul/*.h -/usr/lib/*.so -/usr/lib/pkgconfig/*.pc +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc diff --git a/packaging/launchpad-preload@.service b/packaging/launchpad-preload@.service new file mode 100644 index 0000000..6a924d4 --- /dev/null +++ b/packaging/launchpad-preload@.service @@ -0,0 +1,14 @@ +[Unit] +Description=Start the preload/preinit daemon + +[Service] +EnvironmentFile=/etc/sysconfig/tizen-mobile-ui +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket +Environment=DISPLAY=:0 +Environment=XDG_RUNTIME_DIR=/run/user/%I +ExecStart=/usr/bin/launchpad_preloading_preinitializing_daemon +KillSignal=SIGKILL +KillMode=process + +[Install] +WantedBy=multi-user.target diff --git a/src/status.c b/src/status.c index 95cea3c..f442572 100755 --- a/src/status.c +++ b/src/status.c @@ -19,6 +19,9 @@ * */ +#include +#include + #include "aul_util.h" #include "app_sock.h" #include "aul_api.h" @@ -32,3 +35,22 @@ SLPAPI int aul_status_update(int status) return ret; } +SLPAPI int aul_running_list_update(char *appid, char *app_path, char *pid) +{ + int ret; + bundle *kb; + + kb = bundle_create(); + + bundle_add(kb, AUL_K_APPID, appid); + bundle_add(kb, AUL_K_EXEC, app_path); + bundle_add(kb, AUL_K_PID, pid); + + ret = app_send_cmd(AUL_UTIL_PID, APP_RUNNING_LIST_UPDATE, kb); + + if (kb != NULL) + bundle_free(kb); + + return ret; +} + diff --git a/test/aul_test.c b/test/aul_test.c index 8225139..5d4bd49 100755 --- a/test/aul_test.c +++ b/test/aul_test.c @@ -362,6 +362,14 @@ static int get_pkg_func() return 0; } +static int update_running_list() +{ + aul_running_list_update(gargv[2], gargv[3], gargv[4]); + + return 0; +} + + /* static int set_pkg_func() { @@ -588,6 +596,8 @@ static test_func_t test_func[] = { {"getpkg", get_pkg_func, "get package", "[usage] getpkg "}, + {"update_list", update_running_list, "update running list", + "[usage] update_list "}, /* {"setpkg", set_pkg_func, "set package", "[usage] setpkg "}, -- 2.7.4