<xs:element name="operation">
<xs:complexType>
- <xs:attribute name="name" use="required"/>
+ <xs:attribute name="name" type="tizen:appserviceOperationType" use="required"/>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
-<xs:element name="box-label" type="xs:string"/>
+<xs:element name="box-label">
+ <xs:complexType mixed="true">
+ </xs:complexType>
+</xs:element>
<xs:element name="box-icon">
<xs:complexType>
+wrt-installer (0.0.97) unstable; urgency=low
+
+ * Revert "Change pkgname to appid for docomo request."
+
+ -- Tae-Jeong Lee <taejeong.lee@samsung.com> Fri, 25 Jan 2013 22:38:17 +0900
+
+wrt-installer (0.0.96) unstable; urgency=low
+
+ * Change pkgname to appid for docomo request. PART2
+
+ * Git : framework/web/wrt-installer
+ * Tag : wrt-installer_0.0.96
+
+ -- Soyoung Kim <sy037.kim@samsung.com> Thu, 24 Jan 2013 21:14:47 +0900
+
+wrt-installer (0.0.95) unstable; urgency=low
+
+ * change schema type of livebox
+ * Patch for semaphore deadlock bug while plugins installation.
+ * Fixed preinstall for plugin
+ * Change pkgname to appid for docomo request. PART1
+ * Fixed app-control element type
+
+ * Git : framework/web/wrt-installer
+ * Tag : wrt-installer_0.0.95
+
+ -- Soyoung Kim <sy037.kim@samsung.com> Thu, 24 Jan 2013 16:00:35 +0900
+
wrt-installer (0.0.94) unstable; urgency=low
* Modify app control element.
fi
}
+#Plugin installation is temporary code for window SDK
+/usr/bin/wrt-installer -p
+
if [ ! -d $_working_dir ]; then
echo "There is no preinstall widget directory - $_working_dir"
restore_widget
exit 1
fi
-#Plugin installation is temporary code for window SDK
-/usr/bin/wrt-installer -p
-
install_widgets
-#git:framework/web/wrt-installer wrt-installer 0.0.94
+#git:framework/web/wrt-installer wrt-installer 0.0.97
Name: wrt-installer
Summary: Installer for tizen Webruntime
-Version: 0.0.94
+Version: 0.0.97
Release: 1
Group: Development/Libraries
License: Apache License, Version 2.0
*/
#include "plugin_utils.h"
-#include <dpl/semaphore.h>
#include <dpl/exception.h>
#include <dpl/log/log.h>
#include <dpl/wrt-dao-ro/global_config.h>
+#include <sys/file.h>
using namespace WrtDB;
namespace PluginUtils {
-const char PLUGIN_INSTALL_SEMAPHORE[] = "/.wrt_plugin_install_lock";
+const char* PLUGIN_INSTALL_LOCK_FILE = "/tmp/.wrt_plugin_install_lock";
-static DPL::Semaphore semaphore(PLUGIN_INSTALL_SEMAPHORE);
+static int s_plugin_install_lock_fd = -1;
bool lockPluginInstallation()
{
- Try {
- semaphore.Lock();
- return true;
+ int ret = 0;
+
+ LogInfo("Try to lock for plugins installation.");
+
+ s_plugin_install_lock_fd =
+ open(PLUGIN_INSTALL_LOCK_FILE, O_RDONLY|O_CREAT, 0666);
+
+ if (s_plugin_install_lock_fd == -1)
+ {
+ LogError("Lock file open failed!");
+
+ return false;
}
- Catch(DPL::Semaphore::Exception::Base){
+
+ ret = flock(s_plugin_install_lock_fd, LOCK_EX); //lock with waiting
+
+ if (ret == -1)
+ {
+ LogError("Lock failed!");
+
+ close(s_plugin_install_lock_fd);
+ s_plugin_install_lock_fd = -1;
+
return false;
}
+
+ return true;
}
bool unlockPluginInstallation()
{
- Try {
- semaphore.Unlock();
+ LogInfo("Unlock for plugins installation.");
+
+ if (s_plugin_install_lock_fd != -1)
+ {
+ int ret = 0;
+
+ ret = flock(s_plugin_install_lock_fd, LOCK_UN); //unlock
+
+ if (ret == -1)
+ {
+ LogError("Unlock failed!");
+ }
+
+ close(s_plugin_install_lock_fd);
+ s_plugin_install_lock_fd = -1;
+
return true;
}
- Catch(DPL::Semaphore::Exception::Base){
- return false;
+ else
+ {
+ LogError("Lock file was not created!");
}
+
+ return false;
}
bool checkPluginInstallationRequired()