lgtm From: "t.iwanek" <t.iwa...@samsung.com<mailto:t.iwa...@samsung.com>> Date: Tuesday, August 19, 2014 at 12:57 To: "crosswalk-dev@lists.crosswalk-project.org<mailto:crosswalk-dev@lists.crosswalk-project.org>" <crosswalk-dev@lists.crosswalk-project.org<mailto:crosswalk-dev@lists.crosswalk-project.org>> Subject: [Crosswalk-dev] Intent to implement - tizen - installer backend for pkgmgr-server
Description: This intent is about integration xwalk installer as backend installer of tizen platform’s installer. This enables to installs xwalk application on tizen in same way as it is done for native applications installation (or wrt apps). Affected component: Crosswalk - IVI Related feature: XWALK-1731 Implementation details: (same as in issue) Pkgmgr backend installer XWalk should follow 'backend strategy'. Each backend installer (xwalk installer which pretends to be tizen backend installer) should provides two components: · backend library - shared library for purpose of quering and receiving information about applications connected with given backend, (Example backend API (API which it should implement): $ {wrt-installer repository}/src/pkg-mgr/backendlib.cpp) · backend installer - executable (or symlink) which: o takes input of: -k INSTALLTION_KEY -i PACKAGE_PATH -q § INSTALLTION_KEY - stand for installation key which should be passed to pkgmgr API to notify about installation result progress, § PACKAGE_PATH - stand for package path in filesystem, § "-q" - stand for quiet mode in installation (no popups) o installs package and notifies about success of installation with: § pkgmgr_parse_* API to update information about packages in pkgmgr's database (this is done already in xwalk-pkg-helper as I can see) § pkgmgr signal API to inform about progress and installation result (this API must be used to notify pkgmgr-tool about installation success/failure), o name of binary/symlink: § have to be name of extension it represents (e.g. "wgt") § is case-sensitive (this actually should be changed in pkgmgr...) Comparing to WRT There is difference comparing to WRT in case that xwalkctl doesn't allow user to be root user. wrt-installer and wrt backend lib uses from root user. Therefore xwalk should provide backend installer and library which ditches privilege to app user (I assume app user is going to be used). Implementation Backend library should: · be installed with crosswalk to location: /etc/package-manager/backendlib/ · should implement API needed pkgmgr, · may not support all functions but at least should be able to state if given are is installed (pkg_plugin_app_is_installed()) · should change user to app for time of operation, perform query to database of applications (for app user), Backend installer should: * provide links: * /etc/package-manager/backend/xpk -> /usr/bin/xwalkctl_wrapper, * /etc/package-manager/backend/wgt -> /usr/bin/xwalkctl_wrapper, * ( and all lower/upper-case variants ... ), * accepts right convention for command line * accepts -k argument and pass it to xwalk-pkg-helper (done in https://crosswalk-project.org/jira/browse/XWALK-1446), * wrapper should work similary to following script: ############################################################# #/bin/bash su - app <<-EOF /usr/bin/xwalkctl $@ # -i -k -q arguments should be supported EOF ############################################################# Notes Possible problems: · when calling backend pkgmgr may not set all environment variables correctly, · does package ID conform pattern which is accepted by tizen's pkgmgr, · smack privileges, · package file should be accessible for app user (e.g. does 'sdb install' command set right privs?) Integration with tizen platform installer gives: * 'pkgmgr-tool' usability, * 'sdb install' usability (SDK?), * usage of platform API to trigger installation, Only changes in pkgmgr that are required involves place where "wgt" extension is hard-coded. This code should applies to "xpk" too. As I know some "wgt" are hardcoded in osp framework also. Please, make points if I am wrong. Correct my ideas. Regards, Tomasz Iwanek _______________________________________________ Crosswalk-dev mailing list Crosswalk-dev@lists.crosswalk-project.org https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev