Dear Haitzler,

In this mail, I am saying the downloadable application package(Tizen native 
package(*.tpk) or Tizen web package(*.wgt)) not the rpm packages.

In tizen ecosystem and tizen store, application developers can register thier 
apps that are packaged by tpk or wgt only.
I don't want to re-invent the existing rpm packagement system, the feature is 
just related to downloadable application packages like apk in Android.

Best regard,
dongeup.

------- Original Message -------
Sender : 하이츨러<[email protected]> 수석/차세대Computing Lab(S/W센터)/삼성전자
Date : 2013-10-16 12:34 (GMT+09:00)
Title : Re: [Dev] 3rd party so library installation feature

btw. my reply of "you re-invented rpm" is not a joke. what you want is a 
package manager. please study up on rpm (since that is what we use for the base 
os). you CAN have it use a DIFFERENT rpm database (--dbpath option). so that 
rpm db can be owned by the USER not root/os. it can be seeded with a single 
virtual package (the "tizen" package) that lists all the files in the base 
tizen distro and then everything installed by rpm depends on it. if the db is 
owned by the ouser then they USER (not root) can run the commands happily. rpm 
SUPPORTS the concept of relocatable pkgs... (--relocate), and supports the idea 
of depending on specific FILES (like libBLAH.so.2) that meets your requirement 
of not depending on pkg name. already done. shared libs ALREADY deal with 
versioning by major version (libBLAH.so.1 series is forwards compatible until 
libBLAH.so.2 when it broke - both can be installed at the same time if packaged 
properly).

your requirements of "being able to remove a lib that breaks use by apps" imho 
is a bad req - but it's possible to do (--force option for rpm). it's utterly 
inadvisable though and it's better to just do what rpm does by default - forbid 
uninstallation of the dependency (library).

why limit libraries to "partner" and "platform"? you do this then tizen is not 
an open platform. simple. it's a walled garden for those "in the private club 
only". and in that case tizen is no different to its competitors. and if its no 
different then there is no reason for people to use it or developers to target 
it because it simply has no userbase compared to its competition.

also... please don't re-invent packaging via manifest xml files. rpm already 
does all of this and much more in spec files with an entire toolset  that is 
well tested. you can forbid running of execution of pre/post install and 
uninstall scripts with --noscripts for security.

ALL you need/want is some integration work. that means having a tool that seeds 
a user-private rpmdb from the system rpm pkg set/files, and that uses rpm to 
manage the dependencies/files/conflicts/upgrades etc. etc. - maybe yum or apt 
on top etc. for the "fetch files from the network" bits... and of course the 
gui bits that expose the errors/conflicts and issues to the user at 
installation time.

everything you need and want is already done in rpm. its battle-tested, 
enterprise-scale and much more mature than anything android has. it has been 
pushed to solve problems far more expansive than what you list and has come out 
the other end already. re-inventing this is not a good idea. :)


On 10/15/2013 09:10 PM, 함동읍 wrote:

Dear All,

I want to discuss "3rd party so library installation feature.

Requirement

1. To provide a way to download a necessary shared library from 
authorized/dedicated site
2. If users want to use application B which uses a shared library, they 
download that library from the site by themselves.
3. When another application C requires the same library later, users can use it 
without additional download.
4. When the end user tries to remove application B owning the shared library 
that is required for other installed applications, the platform should warn the 
user that designated applications would not work correctly if the library is 
removed.
5. The platform should provide a naming service for the installed shared 
library so that any 3rd party application using it may locate and use (load) it 
without knowing the specific id of the owning package/application.

Considerations

1. Library provider
   1) Tizen app can be a library provider with specifying a tag and embedding 
the libraries.
   2) Library provider specifies a tag in the manifest file.
      a) <ProvideLibrary>http://tizen.org/library/name</ProvideLibrary>
      b) This tag can be restricted to partner and platform privilege levels.
   3) Libraries are located at /shared/res/ to share with other apps.

2. Library user
   1) Library user specifies a tag in the manifest file.
      a) <RequireLibrary>http://tizen.org/feature/library/name</RequireLibrary>
   2) Library user has to check whether the library provider app has been 
installed or not.
      a) The library provider app is not installed, request of installation is 
sent to Store client.


3. Platform package manager
   1) Installed apps from Store should be uninstalled anytime when device user 
requests through the System settings.
      a) Library provider app should be uninstalled anytime.
      b) Deep relationship with library provider app and library user is not 
recommended.
         Library user app can be working without library provider app, if 
needed.
   2) Package manager can extract information of provider and users using 
manifest at installation time.
      a) Package manager can display a warning popup to notify a message.
         i.e. “If this app is uninstalled, [AppB, AppC and AppD] apps may not 
be working well.”
      b) If the provider is uninstalled, the related user apps can be 
terminated, if needed.
   3) Application libraries are located in app directory and don’t be moved to 
common library directory.
      a) Library path is not specified in library user app.
   4) Package Manager can support library path API using the key that is 
specified in manifest.xml.

Appendix
In Android, some apps use functionality and resources of another app
1. Several apps request functionality to an app
2. Several apps use an app as a service app
3. App accesses another app resource directly
4. Android supports <uses-library>, but these libraries are not downloaded by 
store but preloaded.

Please check considerations and give me the feedback.

Best regards,
dongeup.



--
The above message is intended solely for the named addressee and may
contain trade secret, industrial technology or privileged and
confidential information otherwise protected under applicable law
including the Unfair Competition Prevention and Trade Secret Protection
Act. Any unauthorized dissemination, distribution, copying or use of the
information contained in this communication is strictly prohibited. If
you have received this communication in error, please notify the sender
by email and delete this communication immediately.
_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to