.sopm-Referenz

Referenz aller wichtigen .sopm-Elemente für OTOBO, Znuny und OTRS CE: Name, Version, Framework, Filelist, Abhängigkeiten und Install-Sektionen.

.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

ForkWurzelelementBeispiel
OTOBOotobo_package<otobo_package version="1.1">
Znuny / OTRS CEotrs_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