← Back to team overview

ubuntu-appstore-developers team mailing list archive

Click package hooks

 

Trying to write down some guiding principles for the hooks.  I consider
most of this opinion and points to start discussions as I don't believe
that much has been written down about the hooks yet.


There should be two types of hooks, system and user.  System hooks run
as the click package user and are expected to do things that are system
wide.  User hooks run as the user installing the program and are meant
to set up items in the user's individual home directory.  (Q: Is the
click package user enough for security?  Do system hooks need to be
root?)

Packages themselves should not control or configure hooks, to the
package they're a transparent implementation detail of the system
itself.  There should be no "hooks" directory or configuration entry.

Hooks are run after the package has been decompressed and copied into
the final directory.  Roughly the install would be phased like: <click
packaging magic>, <system hooks>, then <user hooks>

All hooks should always be run in the appropriate phase of the
installation.  It is the responsibility of the hook itself to determine
if it is useful for the particular package it is executing on.

If any hook returns a non-zero status the install is considered to have
failed.

Hooks will be given the directory that the package is installed in.

No hook may modify the directory structure of the package itself, it
must only create/modify files elsewhere in the system.

Each hook should provide an anti-hook that will clean up the system or
user home on package removal.


Let's discuss those for now and see where that leads.  Then we can get
more specific.

Thanks,
Ted

Attachment: signature.asc
Description: This is a digitally signed message part


Follow ups