MeeGo Paketierungs- und Compliance-Richtlinien

Kurzüberblick

Hier sind die Schritte auf einen Blick.

  1. Einleitung
  2. Compliance 3.1.1: Namensgebung
  3. Compliance 3.1.2: Abhängigkeiten
  4. Compliance 3.1.3: Integration mit RPM
  5. Compliance 3.1.4: Struktur im Dateisystem
  6. Compliance 3.1.5: Desktopintegration
  7. Compliance 3.2.1: Konformität ausführbarer Anwendungsdateien
  8. Compliance 3.2.2: Verwendung implementierungsabhängiger Befehlssätze
  9. Herzlichen Glückwunsch!

Einleitung

Bevor Sie diesen Artikel lesen, sollten Sie sich die MeeGo Quality/Compliance-Seite ansehen. Er stellt den Compliance-Standard für Anwendungen und Endgeräte im Detail vor. Darüber hinaus wird beschrieben, wie die Compliance-Tools einzurichten sind, damit Sie Ihre eigene Anwendung vor dem Einreichen beim App-Shop testen können.

Dieser Artikel beschreibt, wie Sie ein RPM-Installationspaket, das den MeeGo Richtlinien entspricht, erstellen und es für die Einreichung beim App-Shop vorbereiten müssen.

Dies sind die wichtigsten Compliance-Punkte. Vergessen Sie nicht, weitere Informationen im Compliance-Dokument durchzulesen.


Compliance-Spezifikation 3.1.1: Namensgebung

Der Name eines Anwendungspakets sollte mit einem der vollqualifizierten Domänennamen des Inhabers in Kleinschreibung und umgekehrter Reihenfolge beginnen und mit dem Namen der Anwendung enden (z. B. de.firmenname.appname).

Dies wird verlangt, um gleichnamige Anwendungen zu vermeiden und sicherzustellen, dass jeder, der eine Anwendung beim App-Shop einreicht, über einen wiedererkennbaren und marktgängigen Namen für die Installationsdatei verfügt.


Compliance-Spezifikation 3.1.2: Abhängigkeiten

Anwendungspakete MÜSSEN alle zur ihrer Ausführung erforderlichen Systemkomponenten anfordern („require“ in RPM-Terminologie). Optionale Abhängigkeiten KÖNNEN ausgelassen werden, wenn die benutzerfreundliche Ausführung der Anwendung dadurch nicht beeinträchtigt wird, d. h. dass die Weglassung nicht trotz erfolgreicher Installation der Anwendung dazu führen sollte, dass die Anwendung nicht korrekt ausgeführt werden kann. Anwendungspakete DÜRFEN NICHT auf Funktionen außerhalb dieser Spezifikation angewiesen sein, da die Installation der Anwendung dadurch beeinträchtigt würde.

Abhängigkeiten von Systemkomponenten sind bezüglich der Paketnamen oder der Funktionen gestattet.

Das RPM-Paketformat ermöglicht dem Entwickler/Paketersteller, andere RPM-Pakete als Installationsabhängigkeiten anzugeben. Diese Anforderung besagt nur, dass wenn für Ihre Anwendungen die Installation anderer Pakete erforderlich ist, Sie diese anfordern müssen. Der vorletzte Satz in der Spezifikation ist sehr wichtig. Deshalb werden wir ihn hier wiederholen:

Anwendungspakte DÜRFEN NICHT auf Funktionen außerhalb dieser Spezifikation angewiesen sein (womit die Compliance-Spezifikation gemeint ist), da die Installation der Anwendung dadurch beeinträchtigt würde.

Das bedeutet, Sie müssen bei Installationsabhängigkeiten wissen, ob diese Teil der in den Compliance-Spezifikationen von MeeGo vorgegebenen Pakete sind. Ist dies der Fall, dann sind sie auf jedem Endgerät, das den MeeGo Richtlinien entspricht, vorhanden, und Sie können sie einfach im RPM anfordern. Wenn das benötigte Paket eines Drittanbieters in der Compliance-Spezifikation nicht vorgegeben ist, müssen Sie die Bibliothek des anderen Anbieters einbinden. Das bedeutet auch, dass Repositorien anderer Anbieter bei Anwendungen, die den MeeGo Richtlinien entsprechen, nicht verwendet werden dürfen. Anstatt das Repository eines Drittanbieters zu verwenden, laden Sie die Bibliotheken herunter und binden sie in Ihren RPM ein.


Compliance-Spezifikation 3.1.3: Integration mit RPM

Anwendungspakete müssen so erstellt werden, dass das Paket-Managementsystem erkennt, welche Dateien installiert werden. Abfragen zu installierten Paketen mit Standard-Paketmanagementtools müssen erwartungsgemäß funktionieren.

Pakete, die alle Dateien im Rahmen eines Post-Install-Skripts installieren, entsprechen den Anforderungen nicht. Die Deinstallation der Anwendung muss sauber erfolgen und das System in dem Zustand zurücklassen, in dem es sich vor der Installation befand (abgesehen von Dateien oder Konfigurationen, die vom Benutzer hinzugefügt wurden).

Das bedeutet einfach nur, dass Installation und Deinstallation auf die übliche RPM-Weise stattfinden müssen und die Anwendung vollständig deinstalliert werden muss.

Hier sind einige Beispiele dafür, wie rpm Ihre Installationsdateien verwenden können sollte.

Beispiele:

  • Das Paket finden, zu dem eine Datei gehört: $ rpm –q –file Dateiname
  • Alle von einem Paket installierten Dateien auflisten: $ rpm –ql Paketname

Compliance-Spezifikation 3.1.4: Struktur im Dateisystem

Eine Anwendung soll in /opt/[Paketname]/ und, falls erforderlich, in die Verzeichnisse /etc/opt/[Paketname]/ und /var/opt/[Paketname]/ installiert werden. Um ordnungsgemäß ausgeführt werden zu können, müssen systemweite Konfigurationsdateien in das Verzeichnis /etc/opt/[Paketname] kopiert werden. Veränderliche Daten eines Pakets wie Sperrdateien, zwischengespeicherte Dateien usw. müssen in das Verzeichnis /var/opt/[Paketname] und nicht direkt in /var kopiert werden, außer wenn ein bestimmter Speicherpfad zur korrekten Funktion der Anwendung oder des Systems erforderlich ist. Anwenderspezifische Dateien müssen im Verzeichnis ~/.config/[Paketname] gespeichert werden. Diese Regeln sollen die Namensgleichheit der Anwendungspaket- und Systemdateien verhindern, indem Teile des Dateisystems, die eindeutig für diese Anwendung sind, definiert werden.

Diese Anforderung besagt lediglich, dass Binärdateien, Systemkonfigurationsdateien und Dateien wie Sperrdateien, zwischengespeicherte und anwenderspezifische Dateien alle ihr entsprechendes Verzeichnis haben.


Compliance-Spezifikation 3.1.5: Desktopintegration

Eine .desktop-Datei muss unter /usr/share/applications installiert werden und mindestens für folgende Felder Werte enthalten: Name, Comment, [Exec oder Link], Icon, Type und Categories. Die im Feld „Icon“ der .desktop-Datei angegebene Bilddatei muss entweder im SVG- oder PNG-Format vorliegen. Wenn es sich um ein PNG-Format handelt, sind folgende Größen zulässig: 16 x 16, 32 x 32, 64 x 64 und 128 x 128.

Der erste Teil dieser Anforderung besagt, dass Sie für Ihre Anwendung eine .desktop-Datei erstellen müssen. In ihr werden Informationen dazu gespeichert, wie eine Anwendung zu starten ist, sowie der Name der Anwendung, Umgebungsvariablen, Speicherpfad des Symbols und mehr. Die „Desktop Entry Specification“ wird von freedesktop.org gepflegt.

Hier ist ein Beispiel einer .desktop-Datei, in diesem Fall für die MeeGo Hilfeanwendung:

[Desktop Entry]

Version=1.0

Name=MeeGo Help

Comment=MeeGo Help Application

Type=Application

Icon=moblin-logo-icon

Terminal=false

Exec=meego-help

Categories=Utility;

Der zweite Teil dieser Anforderung gibt die Größe der Symbole an, die mit der Anwendung eingereicht werden müssen.


Compliance-Spezifikation 3.2.1: Konformität ausführbarer Anwendungsdateien

Alle den MeeGo Richtlinien entsprechenden ausführbaren Binärdateien und gemeinsamen Bibliotheken müssen im ELF-Format vorliegen, wie im Abschnitt 2.4.1 beschrieben. Sie sollten externe Schnittstellen nur aus folgenden Quellen importieren:

  • gemeinsame Bibliotheken, die als Bestandteil des Anwendungspakets bereitgestellt werden
  • gemeinsame MeeGo Core-Bibliotheken, wenn die Schnittstelle Teil der öffentlichen Schnittstellen der betreffenden Bibliothek ist

Zusätzlich kann die ausführbare Datei öffentliche Schnittstellen aus gemeinsamen Bibliotheken verwenden, die spezifisch für ein MeeGo Profil sind, aber in dem Fall entspricht die Anwendung nur den Richtlinien dieses Profils.

Wenn die ausführbare Datei ein Plug-In für eine MeeGo Systemkomponente ist, kann sie Schnittstellen von einer ausführbaren Datei der Systemkomponente importieren und aus gemeinsamen Bibliotheken als Teil dieser ausführbaren Datei laden.

Diese Anforderung weist erneut darauf hin, dass eine den MeeGo Anforderungen entsprechende Anwendung nur mit gemeinsamen MeeGo Core-Bibliotheken verknüpft werden darf. Das ist darin begründet, dass diese Bibliotheken bereits auf jedem Endgerät, das den MeeGo Anforderungen entspricht, installiert sind.

Die Aussage, dass ausführbare Dateien im ELF-Format vorliegen müssen, bezieht sich nur auf die Binärdateien der Anwendung. Skriptsprachen wie Python, Perl, Ruby usw. sind mit Sicherheit akzeptabel.

MeeGo Profile, mitunter auch als „Verticals“ bezeichnet, sind eine Kombination der MeeGo Core-Installationspakete und den Installationspaketen für ein bestimmtes Profil. Die verschiedenen Profile sind derzeit MeeGo Netbook, MeeGo Tablet, MeeGo IVI (Fahrzeug-Infotainment) und MeeGo Handset. Wenn eine Anwendung APIs verwendet, die beispielsweise vom MeeGo-Tablet-Profil stammen, erfüllt diese Anwendung die Anforderungen für Tablets, nicht jedoch für die anderen Profile.

Der letzte Satz des Abschnitts 3.2.1 gibt an, dass wenn zur Erstellung einer Anwendung Komponenten verwendet werden, deren Verknüpfung laut den MeeGo-Compliance-Richtlinien zulässig ist.


Compliance-Spezifikation 3.2.2: Verwendung implementierungsabhängiger Befehlssätze

Binärdateien oder gemeinsame Bibliotheken einer Anwendung KÖNNEN Erweiterungen der CPU-Architektur und implementierungsspezifische Funktionen bei der Erstellung der Binärdateien verwenden. Wenn dadurch die Portierbarkeit der Anwendung begrenzt wird, muss die Anwendung die resultierenden Einschränkungen deutlich identifizieren – die der Anwendung zugeordneten Repositorien/Shops müssen in der Lage sein, nicht einsetzbare Geräte herauszufiltern. Der Mechanismus dafür ist nicht spezifiziert.

Wenn Sie CPU-spezifische Befehlssätze verwenden, müssen Sie die Einschränkung Ihrer Anwendung angeben.


Fazit

Wir haben uns die Einzelheiten der Compliance-Richtlinien für MeeGo-Anwendungen genauer angesehen und sie hoffentlich auf nachvollziehbare Weise zusammengefasst. Wenn Sie weitere Fragen zu den Compliance-Richtlinien haben, sehen Sie sich die folgenden Ressourcen an.


Mit der Energieverwaltung für kommende MeeGo-Tablets werden einige zusätzliche Empfehlungen eingeführt. Die Links unten bieten weitere Informationen zur Energieverwaltung und den Änderungen an der .desktop-Datei, die erforderlich sind, um dieser Empfehlung zu entsprechen:
Energieverwaltung – Häufige Fragen (FAQ)
Energieverwaltung – Eintrag für die Desktop-Datei











0