Schemata/Definitionssprache

aus openSUSE, der freien Wissensdatenbank

< Schemata(Weitergeleitet von Muster/Definitionssprache)

Inhaltsverzeichnis

Schematabeschreibungssprache

Grundprinzip

Da openSUSE ab 10.2 Schemata benutzt, müssen diese auch beschrieben werden können. Sie sollten

  • einfach zu schreiben sein. (von Menschen)
  • einfach zu lesen sein. (von Menschen)
  • einfach zu verarbeiten sein. (von Maschinen)

Das aktuelle .pat-Format erfüllt diese Bedingungen nicht komplett, da es schwer zu lesen ist und man sich kryptische Schlüsselnamen merken muss. Darüber hinaus sollen Schemata in Zukunft auch in repomd-Paketdepots verfügbar sein.

Aus diesem Grund benötigen wir einige Werkzeuge um die Schematabeschreibung in die Formate .pat und repomd zu konvertieren.


Vorschlag

Als Vorlage dient das .spec-Dateiformat, welches bereits von RPM benutzt wird. Es ist ASCII-basiert und verwendet von Menschen lesbare Namen und Auszeichnungen.

Das Basisformat ist

 Schlüssel: Wert

Für Abhängigkeiten besteht Wert aus einer Art Spezifikationswert (entweder package oder pattern) gefolgt von einem Doppelpunkt und einem Namen. Die Auszeichnung durch eine Version (operator version-release) ist optional.


Beispiel

Dies ist das Standardschema wie es in openSUSE-10.2 Alpha 3 verwendet wird.

# Pattern definition file
# pattern[default-10.2-4.i586]
Name: default
Summary: Default System
Description: This is the default system for this product.
Version: 10.2
Release: 4
Arch: i586
Requires: pattern:basesystem
Recommends: pattern:base
Recommends: pattern:x11
Recommends: pattern:apparmor
Recommends: pattern:32bit
Recommends: pattern:64bit
Recommends: pattern:x86

Weitere Beispiele: base , kde , laptop, X11

Fragen

  • Wie wird mit mehrzeiligen Werten verfahren (bspw. Description:) ?
    • Wiederholung der Kennzeichnung (tag) (Description:) für jede Zeile
    • Alle Zeilen bis zur nächsten Kennzeichnung (tag)
    • Einrücken der Vortsetzungszeilen (Kennzeichnungen (tags) starten ganz links, in Vortsetzungszeilen beginnen mit einem Leerzeichen)
  • Sollten mehrere Werte (bspw. für Abhängigkeiten, wie in .spec-Dateien) erlaubt sein ?
    • Getrennt durch ein Komma oder durch Leerzeichen ?
  • Standard auf eine Art (package: oder pattern:) bei den Abhängigkeiten ?

Internationalisierung

Vergessen Sie nicht die Übersetzungen

# Pattern definition file
# pattern[default-10.2-4.i586]
Name: default
Summary: Default System
Summary[de]: Grundsystem
Summary[hu]: Alaprendszer
Description: This is the default system for this product.
Description[de]: Das Grundsystem dieses Produkts.
Description[hu]: A termék alaprendszere.
Version: 10.2
Release: 4
Arch: i586
Requires: pattern:basesystem
Recommends: pattern:base
Recommends: pattern:x11
Recommends: pattern:apparmor
Recommends: pattern:32bit
Recommends: pattern:64bit
Recommends: pattern:x86