~ci-train-bot/miral/miral-ubuntu-zesty-2641

248.1.1 by Alan Griffiths
Add doxygen skeleton
1
Welcome to MirAL {#mainpage}
2
================
3
4
MirAL is an ABI stable abstraction layer over Mir (and some working examples).
5
250.1.1 by Alan Griffiths
Why MirAL?
6
Why MirAL?
7
----------
8
9
Mir is a library for writing Linux display servers and shells that are
10
independent of the underlying graphics stack. It fits into a similar role as an
11
X server or Weston (a Wayland server) but was initially motivated by Canonical’s
12
vision of "convergent" computing.
13
14
The Mir project has had some success in meeting Canonical’s immediate needs –
15
it is running in the Ubuntu Touch phones and tablets, and as an experimental
16
option for running the Unity8 shell on the desktop.  But because of the
17
concentration of effort on delivering the features needed for this internal use
18
it hasn’t really addressed the needs of potential users outside of Canonical.
19
20
Mir provides two APIs for users: the "client" API is for applications that run
21
on Mir and that is largely used by toolkits. There is support for Mir in the GTK
22
and Qt toolkits, and in SDL. This works pretty well and the Mir client API has
23
remained backwards compatible for a couple of years and can do so for the
24
foreseeable future.
25
26
The problem is that the server-side ABI compatibility is broken by almost every
27
release of Mir. This isn’t a big problem for Canonical, as the API is fairly
28
stable and both Mir and Unity8 are in rapid development: rebuilding Unity8
29
every time Mir is released is a small overhead. But for independent developers
30
the lack of a stable ABI is problematic as they cannot easily synchronize their
31
releases to updates of Mir.
32
250.1.4 by Alan Griffiths
Reword for clarity
33
MirAL is the answer to this: It offers an "abstraction layer" written over the
34
top of the current Mir server API that will provide a stable ABI. There are a
35
number of other goals that can be addressed at the same time:
250.1.1 by Alan Griffiths
Why MirAL?
36
37
  - The API can be considerably narrowed as a lot of things can be customized
38
    that are of no interest to shell development;
39
  - A more declarative design style can be followed than the implementation
40
    focused approach that the Mir server API follows; and,
41
  - Common facilities can be provided that don’t belong in the Mir libraries.
42
  
43
Mir is supported on a range of platforms including phones, tablets and desktops.
44
There is also work to provide it as a "snap" in the "internet of things". The
45
miral-shell already works in all these environments (for a suitably forgiving
46
value of "works") and is an early opportunity to learn about this alternative
47
to X11.
248.1.2 by Alan Griffiths
Add the existing docs to the doxygen output
48
49
Notes for Developers
50
--------------------
51
330.160.4 by Alan Griffiths
Another pass
52
 - \ref getting_and_using_miral
250.1.2 by Alan Griffiths
Introducing the Miral API
53
 - \ref introducing_the_miral_api
248.1.2 by Alan Griffiths
Add the existing docs to the doxygen output
54
 - \ref tasks_for_the_interested_reader