.sopm-Referenz
Das .sopm (Source OPM) ist die XML-Quelldatei eines Pakets. Beim Build wird daraus die .opm-Datei erzeugt. Diese Referenz beschreibt die gängigsten Elemente.
Wurzelelement
| Fork | Wurzelelement | Beispiel |
|---|---|---|
| OTOBO | otobo_package | <otobo_package version="1.1"> |
| Znuny / OTRS CE | otrs_package | <otrs_package version="1.0"> |
Der Inhalt ist ansonsten identisch — deshalb ist ein Paket meist forkübergreifend portierbar.
Pflichtelemente
<Name>MyPackage</Name> <!-- CamelCase, keine Leerzeichen -->
<Version>1.0.0</Version> <!-- major.minor.patch -->
<Framework>11.0.x</Framework> <!-- mind. eine, Format major.minor.x -->
<Vendor>Example GmbH</Vendor>
<License>GPL-3.0</License>
<Description Lang="en">...</Description>
<Framework>
Deklariert die kompatiblen Framework-Versionslinien. Mehrere Zeilen sind erlaubt und der Schlüssel zur Fork-Kompatibilität:
<Framework Minimum="11.0.9">11.0.x</Framework>
<Framework>7.0.x</Framework>
Das optionale Attribut Minimum erzwingt eine Mindest-Patch-Version. Mehr dazu im Kompatibilitäts-Leitfaden.
<Filelist>
Listet alle im Paket enthaltenen Dateien mit Pfad und Unix-Berechtigung:
<Filelist>
<File Permission="660" Location="Kernel/Config/Files/XML/MyPackage.xml" />
<File Permission="644" Location="var/httpd/htdocs/js/MyPackage.js" />
</Filelist>
Abhängigkeiten
<PackageRequired Version="11.0.1">ITSMCore</PackageRequired>
<ModuleRequired Version="3.0">JSON::XS</ModuleRequired>
PackageRequired— ein anderes.opm-Paket muss installiert sein.ModuleRequired— ein Perl-Modul (CPAN) muss vorhanden sein.
Install-/Upgrade-Sektionen
<DatabaseInstall Type="post">
<TableCreate Name="my_table">
<Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="INTEGER" />
<Column Name="name" Required="true" Size="200" Type="VARCHAR" />
</TableCreate>
</DatabaseInstall>
<CodeInstall Type="post"><![CDATA[
$Kernel::OM->Get('Kernel::System::MyModule')->Setup();
]]></CodeInstall>
Gegenstücke: DatabaseUninstall, CodeUninstall, DatabaseUpgrade, CodeUpgrade. Der Type steuert den Zeitpunkt (pre/post).
Werkzeuge
- .sopm-Generator — Manifest per Formular erzeugen
- .sopm-Validator — bestehendes Manifest prüfen
