NAME

    OPM::Maker - Module/App to build and test OPM packages for Znuny,
    OTOBO, ((OTRS)) Community edition.

VERSION

    version 1.17

DESCRIPTION

    If you do customizing for ticketing systems like Znuny
    <https://znuny.org>, OTOBO <https://otobo.de> or ((OTRS)) Community
    Edition, you need to be able to check your package: Are all files of
    the package included in the file list in the sopm file? Is the sopm
    file valid? And you need to create the OPM file. There is
    xxxx.Console.pl (where xxxx is either otobo or otrs) included in
    stanrdard installations, but sometimes you might not have a ticket
    system installed on the machine where you want to build the package
    (e.g. when you build the package in a CI/CD job).

    OPM::Maker provides opmbuild that is a small tool for several tasks. At
    the moment it supports:

      * filetest

      Check if all files in the filelist exist on your disk and if all
      files on the disk are listed in the filelist

      * somptest

      Checks if your .sopm file is valid

      * dependencies

      List all CPAN- and ticket system - dependencies of your package

      * build

      Create the OPM file

      * index

      build an index file for an OPM repository.

    Currently under development:

      * dbtest

      Check if the DatabaseInstall and DatabaseUninstall sections in your
      .sopm files are valid. And it checks for SQL keywords.

PARSING HUGE FILES

    The commands index and dependencies parse ticketsystem addons. And
    those addons can become quite huge (the Znuny ITSM bundle is about 27M
    big). Usually the parser rejects such huge files, but that behaviour
    was changed as of version 1.10.

    Parsing XML files can lead to security issues (loading external
    entities, application runs out of memory, ...), so those commands work
    as follows:

      * Huge files (up to 30M) are parsed

      * If an environment variable OPM_MAX_SIZE is set, that is the max
      size for opm files

      If OPM_MAX_SIZE is set to 15M, opm files bigger than 15 MBytes are
      rejected, if the variable is set to 15000 opm files bigger than 15000
      Bytes are rejected.

      * Loading external entities/DTD is disabled

      * Entities are not expanded

      * OPM_UNSECURE reverts the last two settings

AUTHOR

    Renee Baecker <reneeb@cpan.org>

COPYRIGHT AND LICENSE

    This software is Copyright (c) 2017 by Renee Baecker.

    This is free software, licensed under:

      The Artistic License 2.0 (GPL Compatible)