Launching Applications using Upstart

Registered by Ted Gould on 2013-05-09

Launching applications needs to be done in a consistent and controlled manner so that various hooks can be included for security and consistent tracking of applications. This looks at using Upstart for that, based on the prototype here:

https://code.launchpad.net/~ted/+junk/upstart-app-launch

In this session we need to come to ensure that everyone's use cases are met, or can be met with additional work. Create a list of those work items. Assign them.

We also need to determine where the upstart rules will live and which packages will be required to install them.

Also we should determine if this is only something we expect to use for Unity 8 based shell integration or if it should be ported to Unity 7 as well.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Ted Gould
Direction:
Needs approval
Assignee:
None
Definition:
Drafting
Series goal:
Accepted for saucy
Implementation:
Unknown
Milestone target:
milestone icon ubuntu-13.07

Related branches

Sprints

Whiteboard

Following areas need to be discussed:
* integration of unity-greeter and actual accounts (Login)
* installing backends for Unity 7 & 8 in parallel
* (touch) input device support - make it a great experience
* additional documentation (e.g. video to show how to use U8, on the desktop or online)
* which of the phone core apps will be available
* discovery of local content (pictures, music, videos/movies)
* HUD invocation ?
* creation of lightdm session
* other plumbing?
expected minimal capabilities:
* runs on MIR
* can log in multiple local users
* can access local content (pics, videos, music)
* networking works
* can use phone core apps (spec. browser)
* good experience navigating the shell with a non touch screen device (i.e. mouse, touchpad)
Notes:
no feature add on desktop, its only a reflection of what is in phone
dash/scopes backend stacks my be running in parallel (old & new)
networking will be a converged backend, and (famous last words) "should just work"
Everything in that is phablet-extras is what backend deltas are missing
A PPA needs to be set up with appropriate Mir, LightDM, and Unity 8 packages for Saucy (see the Ubuntu Touch Preview superproject for various projects related to Unity 8)
Note that we currently do not configure logind to kill user processes after ending the session, as we want screen sessions and the like to survive. Apps which register with upstart can/should be killed, of course (unless they explicitly mark themselves for survival, perhaps?)

(?)

Work Items

Work items:
[ted] Determine a way for legacy apps to have multiple instances: TODO
[ted] Take junk branch and make it into a source package: DONE
[stgraber] Try c-groups pre-start: TODO
[mdeslaur] upstart apparmor profile fun: DONE
[3v1n0] Try using upstart app launching in Unity 7: TODO
[ted] Get the launcher backend for Unity 8 to support upstart app jobs: TODO
[jamesodhunt] Look into a libupstart C library to send signals to upstart: DONE
[ted] Add ability to set statup ID in application job: TODO
[ted] Add ability to set display to get the screen: TODO
[mdeslaur] determine if AppArmor profiles prevent communication with upstart socket: DONE
[jamesodhunt] fix bug 1159895 (unsetting inherited env var): DONE
[pitti] in apport, collect ~/.cache/upstart/application-<desktopname>.log for all shipped .desktop files: DONE