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)
  • einfach zu lesen 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

Stil ist Substanz , lassen Sie uns also eine Kombination aus Python und dem RPM-spec-Dateiformat wählen. Das heißt

  • das es ASCII-basiert ist
    • von Menschen lesbare Namen und Ausdrücke nutzt
  • das Format Schlüssel: Wert
    • für einfache Werte
    • Schlüssel starten in der linken Spalte
    • Schlüsseln folgt ein Doppelpunkt
  • Einrückungen sind wichtig
    • eingerückte Zeilen sind fortgesetzte Zeilen
  • Kann mehrere Schemata enthalte
    • das Herunterladen und Verarbeiten dutzender .pat-Dateien ist schlecht

Das Grundformat für einen einfachen Wert ist

Schlüssel: Wert

Das Format für längere Werte ist

Schlüssel:
  Zeile1
  Zeile2

Bei Schlüsseln spielt die Groß- und Kleinschreibung keine Rolle. Der Doppelpunkt ist nicht Teil des Schlüssels sondern wird als Trenner benutzt.

Zusätzlich sind Qualifizierer erlaubt, um Unterschlüssel wie Sprachen oder Architekturen anzugeben. Qualifizierer sthen in eckigen ([]) Klammern und können entweder zwischen dem Schlüssel und dem trennenden Doppelpunkt oder in der Spalte ganz links stehen.

Summary[de]: Das ist die Kurzfassung
Description:
[de] Dies ist eine Beschreibung
     mit mehr als einer Zeile.
[en] This is a description
     with more than a single line.

Bei Qualifiziereren spielt die Groß- und Kleinschreibung keine Rolle. Mehrere Qualifizierer können innerhalb der Klammern durch ein Komma getrennt angegeben werde.

 Requires[x86_64,i386]: foobar == 42.0


Definition

Ein Schema beginnt mit dem Schlüssel

 Pattern:

gefolgt von einem Name-Version-Release.Arch Wert.

Abhängigkeiten werden über die folgenden Werte definiert:

 Requires:
 Provides:
 Conflicts:
 Obsoletes:
 Recommends:
 Suggests:
 Supplements:
 Enhances:

Ihre Werte sind standardmäßig Pakete. Abhängigkeiten zu Schemata müssen ein pattern: vorangestellt haben:

 Requires: xorg-x11

erfordert das Paket xorg-x11 in jeder Version

 Requires: pattern:x11 == 11.0

erforder das Schema x11 in Version 11.0

Mehrere Abhängigkeitswerte müssen durch eine neue Zeile, ein Leerzeichen oder ein Komma getrennt werden. Die folgenden Abhängigkeiten sind alle gleich.

 Recommends: audio, video, network
 Recommends: audio video network
 Recommends:
   audio
   video
   network

Auf Paketnamen (und Schematanamen) kann ein Operator folgen (einer von = == > >= < <= <> != (= und == sind äquivalent, <> und != sind äquivalent) und eine evr-Spezifikation (epoch:version-release) folgen.


Beispiel

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

# Pattern definition file
# pattern[default-10.2-4.i586]
Name: default-10.2-4-i586
Summary: Default System
Description:
  This is the default system for this product.
[de] Das ist das Grundsystem für OpenSUSE.
Requires:
  pattern:basesystem
Recommends:
  pattern:base == 10.2 pattern:x11 pattern:apparmor
[x86_64,ia64,pcc64] pattern:32bit
[ppc] pattern:64bit
[x86_64,i586] pattern:x86

Weitere Beispiele: Basis, KDE, Laptop, X11


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
  pattern:x11
  pattern:apparmor
  pattern:32bit
  pattern:64bit
  pattern:x86