From 4a1409460a7c0a5d26fe10b5f84368b3cb8b8b5a Mon Sep 17 00:00:00 2001 From: José Bollo Date: Wed, 26 Oct 2016 18:24:13 +0200 Subject: doc: switch to mkdocs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Bollo --- doc/widgets.html | 176 ------------------------------------------------------- 1 file changed, 176 deletions(-) delete mode 100644 doc/widgets.html (limited to 'doc/widgets.html') diff --git a/doc/widgets.html b/doc/widgets.html deleted file mode 100644 index 8c27577..0000000 --- a/doc/widgets.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - The widgets - - - - - - -
-

The widgets

-

José Bollo

-

Fulup Ar Foll

-

24 juin 2016

-
- -

The widgets

-

The widgets

-

The widgets are described by the technical recommendations widgets and widgets-digsig.

-

In summary, widgets are ZIP files that can be signed and whose content is described by the file .

-

The configuration file config.xml

-

This is one of the important file of the widget. It fully describes the widget.

-

Here is the example of the config file for the QML application SmartHome.

-
<?xml version="1.0" encoding="UTF-8"?>
-<widget xmlns="http://www.w3.org/ns/widgets" id="smarthome" version="0.1">
-  <name>SmartHome</name>
-  <icon src="smarthome.png"/>
-  <content src="qml/smarthome/smarthome.qml" type="text/vnd.qt.qml"/>
-  <description>This is the Smarthome QML demo application. It shows some user interfaces for controlling an 
-automated house. The user interface is completely done with QML.</description>
-  <author>Qt team</author>
-  <license>GPL</license>
-</widget>
-

The most important items are:

- -

Further development will add handling of for requiring and providing permissions and services.

-

Tools for managing widgets

-

This project includes tools for managing widgets. These tools are:

- -

For all these commands, a tiny help is available with options -h or --help.

-

There is no tool for unpacking a widget. For doing such operation, you can use the command unzip.

-

To list the files of a widget:

-
$ unzip -l WIDGET
-

To extract a widget in some directory:

-
$ unzip WIDGET -d DIRECTORY
-

Note that DIRECTORY will be created if needed.

-

Signing a widget

-

To sign a widget, you need a private key and its certificate.

-

The tool wgtpkg-sign creates or replace a signature file in the directory of the widget BEFORE its packaging.

-

There are two types of signature files: author and distributor.

-

Example 1: add an author signature

-
$ wgtpkg-sign -a -k me.key.pem -c me.cert.pem DIRECTORY
-

Example 2: add a distributor signature

-
$ wgtpkg-sign -k authority.key.pem -c authority.cert.pem DIRECTORY
-

Packing a widget

-

This operation can be done using the command zip but we provide the tool wgtpkg-pack that may add checking.

-

Example:

-
$ wgtpkg-pack DIRECTORY -o file.wgt
-

Getting data about a widget file

-

The command wgtpkg-info opens a widget file, reads its config.xml file and displays its content in a human readable way.

-

Writing a widget

-

What kind of application?

-

The file /etc/afm/afm-launch.conf explain how to launch applications. (It is the current state that use afm-user-daemon. In a future, it may be replace by systemd features.)

-

Currently the applications that can be run are:

- -

The steps for writing a widget

-
    -
  1. make your application

  2. -
  3. create its configuration file config.xml

  4. -
  5. sign it

  6. -
  7. pack it

  8. -
-

Fairly easy, no?

-

Organization of directory of applications

-

directory where are stored applications

-

Applications can be installed in different places: the system itself, extension device. On a phone application are typically installed on the sd card.

-

This translates to:

- -

From here those paths are referenced as: "APPDIR".

-

The main path for applications is: APPDIR/PKGID/VER.

-

Where:

- -

This organization has the advantage to allow several versions to leave together. This is needed for some good reasons (rolling back) and also for less good reasons (user habits).

-

Identity of installed files

-

All files are installed as user "afm" and group "afm". All files have rw(x) for user and r-(x) for group and others.

-

This allows every user to read every file.

-

labeling the directories of applications

-

The data of a user are in its directory and are labelled by the security-manager using the labels of the application.

- - -- cgit 1.2.3-korg