Will my package run on OTOBO and Znuny?
Short answer: usually yes — but you have to declare it correctly. OTOBO, Znuny, and OTRS Community Edition all originate from the same OTRS codebase and share the .opm format. The most common reason why a package cannot be installed on a fork is a missing <Framework> line, not the code itself.
Version lines differ
| Fork | Version Lines |
|---|---|
| OTOBO | 10.0.x, 10.1.x, 11.0.x, 11.1.x |
| Znuny | 6.0.x … 6.5.x, 7.0.x, 7.1.x |
| OTRS Community Edition | 5.0.x, 6.0.x |
A package that only declares <Framework>6.0.x</Framework> will be rejected by the OTOBO package manager — even though the exact same code often runs there without issues. The package manager only checks the declared version.
Solution: declare multiple frameworks
<Framework>11.0.x</Framework> <!-- OTOBO -->
<Framework>7.0.x</Framework> <!-- Znuny -->
<Framework>6.0.x</Framework> <!-- OTRS CE -->
The compatibility checker instantly shows which forks your package targets and suggests missing sister versions.
Declaration is not a free pass
A matching <Framework> line only permits installation. Before releasing for another fork, check:
- Internal API calls — some
Kernel::System::*modules differ between OTOBO and Znuny. - Templates — OTOBO has modernized parts of the frontend.
- Database schema — rare, but possible for core-related packages.
Test on every target version, ideally in an automated way (see CI/CD with opmbuild).
Increase reach
If your package supports multiple forks, list it on Open ITSM Hub with all compatible systems — this helps users across all three communities find it.
