Skip to content

Commit

Permalink
expand the section on identifiers
Browse files Browse the repository at this point in the history
  • Loading branch information
allanday committed Feb 10, 2017
1 parent 511d748 commit ca774e7
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions docs/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ Each application must be built against a runtime, and this runtime must be insta
.. tip::
Each runtime can be thought of as a ``/usr`` filesystem. Indeed, when an application is run, its runtime is mounted at ``/usr``.

.. note::
Flatpak identifies runtimes (as well as SDKs and applications) by a triple of name/arch/branch. The name is expected to be in inverse-dns notation, which needs to match the D-Bus name used for the application. For example: ``org.gnome.Sdk/x86_64/3.14`` or ``org.gnome.Builder/i386/master``.

Bundled libraries
^^^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -62,6 +59,25 @@ The flatpak command

Most flatpak commands are performed system-wide by default. To perform a command for the current user only, use the ``--user`` option. This allows runtimes and application bundles to be installed per-user, for instance.

Identifiers
-----------

Flatpak identifies each application, runtime and SDK according to a reverse DNS identifier, which is sometimes combined with a name/arch/branch triple.

Naming
^^^^^^

Flatpak requires each application, runtime and SDK to have a unique name, which takes the form of an inverse DNS address, such as ``com.company.App``. Here, the final segment of the address is the application's name, and the preceding part is the domain that the application belongs to. In order to prevent name conflicts, this domain should correspond to a DNS registered address. This means using a domain from a website, either for the application or the organization that produced it. For instance, if an application has its own website at ``app.com``, its Flatpak name would be ``com.app.App``. Multiple applications can belong to the same domain, such as ``org.organization.App1`` and ``org.organization.App2``.

If you do not have a registered domain for your application, it is easy to use a third party website to get one. For example, Github allows the creation of personal pages that can be used for this purpose. Here, a personal namespace of ``name.github.io`` could be used as the basis of application identifier ``io.github.name.App``.

If an application provides a D-Bus service, the D-Bus service name is expected to be the same as the application name.

Identifier triples
^^^^^^^^^^^^^^^^^^

Many flatpak commands only require the name of an application, runtime or SDK. However, in some circumstances it is also necessary to specify the architecture and branch (branches allow a particular version to be specified). This is done using a name/arch/branch triple. For example: ``org.gnome.Sdk/x86_64/3.14`` or ``org.gnome.Builder/i386/master``.

Under the hood
--------------

Expand Down

0 comments on commit ca774e7

Please sign in to comment.