Schemata/Definitionssprache
aus openSUSE, der freien Wissensdatenbank
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

