[AppStream] Services

Marius Vollmer marius.vollmer at redhat.com
Tue May 9 08:00:12 UTC 2017


Hi,

to make AppStream more useful for servers, I would like to propose a new
component type "service".

It could look like this:

    <component type="service">
      <id>org.cockpit-project.mock.app-service</id>
      <metadata_license>CC0-1.0</metadata_license>
      <name>Demo Service</name>
      <icon type="cached" height="64" width="64">app-service.png</icon>
      <summary>
        A demo systemd service
      </summary>
      <description>
        ...
      </description>
      <launchable type="service">demo</launchable>
    </component>

I have used the new "launchable" tag instead of "provides" since I am
interested in constructing a user interface for a component, and not in
automatically finding missing services.  Does that make sense?

I don't think we need to mention anything about specific init facilities
in the metainfo.  For example, we don't need to say that a component
contains a systemd unit.  It should be enough to give a name that works
with the init facility of the OS.

Proposed spec additions below.  I can do the work of marking this up
properly once we get closer to consensus.

# Service

## Introduction

A service component is any software that is started and supervised by
the Operating System "init" facility, such as systemd.

[...]

## File specification

[...]

  <launchable/>

  At least one launchable element with type "service" must be present.
  The value is a name that can be used with the OS init facility to
  start/stop and monitor the service.

  For example, of the init facility is systemd, the value is the name of
  a systemd unit.

  If more than one launchable element with type "service" is present, a
  UI is expected to let the user manage all services.  Thus multiple
  launchables are not alternatives to start the same service, but the
  component does contain multiple services that might all need to be
  started.

  Only those services should be listed as launchables that the user is
  actually expected to start and stop manually.  Services that are
  started/stopped indirectly via dependencies of other services should
  not be listed.

  For systemd units, the services listed as launchables are expected to
  support enabling and disabling.

[...]


More information about the AppStream mailing list