← Back to team overview

ubuntu-appstore-developers team mailing list archive

Re: Summary of my understandings

 

> Upon installation of the package there will be a set of hooks run.  There
are two types of hooks, system hooks and user hooks.
> An example of a system hook would be one that builds the apparmor profile
and installs it.

Sorry to jump in without much context, but what i get from previous
comments is that a click package is 100% declarative. And this hooks
comment is not clear about that. And i associate hooks with user
extensibility. Will the package be able to add to those hooks or not?

Thanks, and sorry in advance if this has been covered somewhere else.

Lucio


On Thu, Jul 11, 2013 at 11:40 AM, Ted Gould <ted@xxxxxxxxxxxxx> wrote:

> **
>
> I hesitate to call these requirements, because I don't feel I the
> authority to declare them that, but I wanted to write down my understanding
> of things to give people a chance to object.  If no one objects, I guess
> this is canon.
>
> *Click Basic Points*
>
> A click package can be identified with a reverse domain name that
> represents the project: com.ubuntu.foo
>
> A click package will have a version number defined, and will be installed
> in a separate directory based on the version number.  This directory will
> be /opt/click.ubuntu.com/$(package)/$(version)/
>
> Every click package will contain a manifest that is the root of
> information about that package.  It is in JSON and called manifest.json.
>
> A click package may have (and won't in v1) several applications available
> from that package.  Each of those are defined in the manifest with one
> being designated as "primary" for showing to the user removal/installation
> graphics.
>
> Each application in the package will be represented by a file that
> conforms to the Freedesktop.org Desktop file format that contains
> information on the icon and executable path.  The core difference being
> that it'll have relative paths that aren't resolvable using standard XDG
> directory definitions (they'll all be in the package).
>
> Each application defined in the manifest will also have a security
> definition in the manifest.
>
> Upon installation of the package there will be a set of hooks run.  There
> are two types of hooks, system hooks and user hooks.  An example of a
> system hook would be one that builds the apparmor profile and installs it.
> An example of a user hook would be one that takes the desktop file template
> and puts it in ~/.local/share/applications with paths that can be
> resolved to the user selected installed version of the app.
>
> When I user installs an application version that was already installed by
> another user, the user hooks will be run in that user's account.
>
> All user and system hooks will provide a way to clean up the system/user
> account on uninstall of the version.
>
> The Click packaging system will maintain a reference count for which user
> installed which version of a particular package.  It will also garbage
> collect when no user has that version of the application installed.
>
> The graphical installer will query the Click packaging system to determine
> disk space cost of installing a new application or version.  For instance,
> if it's just an upgrade on a single user system space used would be: sizeof(new)
> - sizeof(old).  But if there is another user that has the same version it
> is: sizeof(new).  If it's upgrading to a version already installed by
> another user and this user is the last user for the selected version it is: -1
> * sizeof(old).
>
> When the security hook runs it will create an AppArmor profile of the name
> $(click package)_$(application)_$(version) that the application should be
> confined with.
>
> The same pattern as above should be consider the "Application ID" for all
> usage throughout the system.  Including identifying the application to
> Mir/HUD/etc.
>
> *References*
>
>
> http://bazaar.launchpad.net/~click-hackers/click/trunk/view/head:/doc/file-format.rst
>
> https://wiki.ubuntu.com/SecurityTeam/Specifications/ApplicationConfinement/Manifest#Click
>
> http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
>
> I think that's it.  Thoughts?
> Ted
>
> --
> Mailing list: https://launchpad.net/~ubuntu-appstore-developers
> Post to     : ubuntu-appstore-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~ubuntu-appstore-developers
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References