pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/net/icingaweb2 net/icingaweb2: import icingaweb2-2.8.2



details:   https://anonhg.NetBSD.org/pkgsrc/rev/419b864c642c
branches:  trunk
changeset: 445287:419b864c642c
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Tue Jan 19 08:12:05 2021 +0000

description:
net/icingaweb2: import icingaweb2-2.8.2

Packaged for wip by Edgar Fuß.

Icinga Web 2 is a powerful PHP framework for web applications that comes
in a clean and reduced design.
It's fast, responsive, accessible and easily extensible with modules.

diffstat:

 net/icingaweb2/DESCR                                                  |     3 +
 net/icingaweb2/Makefile                                               |   287 +
 net/icingaweb2/PLIST                                                  |  2419 ++++++++++
 net/icingaweb2/distinfo                                               |     7 +
 net/icingaweb2/files/authentication.ini                               |     7 +
 net/icingaweb2/files/config.ini                                       |    20 +
 net/icingaweb2/files/groups.ini                                       |    13 +
 net/icingaweb2/files/modules/monitoring/backends.ini                  |     3 +
 net/icingaweb2/files/modules/monitoring/commandtransports.ini         |     9 +
 net/icingaweb2/files/modules/monitoring/config.ini                    |     2 +
 net/icingaweb2/files/resources.ini                                    |    33 +
 net/icingaweb2/files/roles.ini                                        |    15 +
 net/icingaweb2/options.mk                                             |    18 +
 net/icingaweb2/patches/patch-library_Icinga_Application_webrouter.php |    44 +
 14 files changed, 2880 insertions(+), 0 deletions(-)

diffs (truncated from 2936 to 300 lines):

diff -r d77941a0c472 -r 419b864c642c net/icingaweb2/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/net/icingaweb2/DESCR      Tue Jan 19 08:12:05 2021 +0000
@@ -0,0 +1,3 @@
+Icinga Web 2 is a powerful PHP framework for web applications that comes
+in a clean and reduced design.
+It's fast, responsive, accessible and easily extensible with modules.
diff -r d77941a0c472 -r 419b864c642c net/icingaweb2/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/net/icingaweb2/Makefile   Tue Jan 19 08:12:05 2021 +0000
@@ -0,0 +1,287 @@
+# $NetBSD: Makefile,v 1.1 2021/01/19 08:12:05 wiz Exp $
+
+DISTNAME=      icingaweb2-2.8.2
+GITHUB_TAG=    v${PKGVERSION_NOREV}
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=icinga/}
+CATEGORIES=    net sysutils www
+
+MAINTAINER=    ef%math.uni-bonn.de@localhost
+HOMEPAGE=      https://www.icinga.com/products/user-experience-2/
+COMMENT=       PHP-based Web UI for Icinga
+LICENSE=       gnu-gpl-v2
+
+DEPENDS+=      ${PHP_PKG_PREFIX}-curl-[0-9]*:../../www/php-curl
+DEPENDS+=      ${PHP_PKG_PREFIX}-gd-[0-9]*:../../graphics/php-gd
+DEPENDS+=      ${PHP_PKG_PREFIX}-gettext-[0-9]*:../../devel/php-gettext
+DEPENDS+=      ${PHP_PKG_PREFIX}-imagick-[0-9]*:../../graphics/php-imagick
+DEPENDS+=      ${PHP_PKG_PREFIX}-intl-[0-9]*:../../textproc/php-intl
+DEPENDS+=      ${PHP_PKG_PREFIX}-json-[0-9]*:../../textproc/php-json
+DEPENDS+=      ${PHP_PKG_PREFIX}-mbstring-[0-9]*:../../converters/php-mbstring
+# For php-*sql see options.mk
+
+USE_TOOLS+=    pax
+
+USE_LANGUAGES= # empty
+NO_BUILD=      YES
+
+# Can't set NO_CONFIGURE=YES since REPLACE_INTERPRETER needs a configure phase
+do-configure:
+
+PKG_SYSCONFSUBDIR=             icingaweb2
+EGDIR=                         ${PREFIX}/share/examples/icingaweb2
+SHAREDIR=                      ${PREFIX}/share/icingaweb2
+INCDIR=                                ${PREFIX}/lib/php
+INSTALLATION_DIRS+=            ${PREFIX}/bin ${EGDIR} ${SHAREDIR}
+STORAGEDIR=                    ${VARBASE}/db/icingaweb2
+LOGDIR=                                ${VARBASE}/log/icingaweb2
+OWN_DIRS+=                     ${STORAGEDIR} ${LOGDIR}
+RUNDIR_PARENT=                 ${VARBASE}/run
+EDITOR=                                vi
+PKG_SYSCONFDIR.icinga2?=       ${PKG_SYSCONFBASE}/icinga2
+
+BUILD_DEFS+=   VARBASE PKG_SYSCONFBASE
+
+.include "../../mk/bsd.prefs.mk"
+.include "options.mk"
+
+# The upstream distribution is not exactly packaging-friendly. It's kind of a blob, no Makefile, no configuration, everything-is-Linux mindset. Hard-coded paths everywhere, #!/usr/bin/env etc.
+# Debian (upstream's main target) splits it into a bunch of packages, namely icingaweb2, icingaweb2-common, icingaweb2-module-doc, icingaweb2-module-monitoring (no -module-translation, that's in 
-common), icingacli (no "web" or "2") and php-icinga (also no "web" or "2").
+# Most files go to /usr/share/icingaweb2, but to make it even more interesting, files in the php-icinga package are relocated from the library/Icinga subdiretory of the distribution to 
/usr/share/php/Icinga (but other files in that package go to /usr/share/icingaweb2/library).
+# Some files aren't even installed at all.
+# There are also no example configuration files.
+
+# Install example configuration files.
+# Contents taken from the "Advanced Topics: Icinga Web 2 Manual Setup: Icinga Web 2 Manual Configuration" manual section
+CONFS=         roles.ini resources.ini config.ini authentication.ini groups.ini roles.ini
+CONFDIRS=      modules modules/monitoring
+CONFS+=                modules/monitoring/config.ini modules/monitoring/backends.ini modules/monitoring/commandtransports.ini
+CONFDIRS+=     enabledModules
+# symlinks in enabledModules?
+
+# for extraction, see post-extract below
+
+SUBST_CLASSES+=                        sampleconfig-db
+SUBST_STAGE.sampleconfig-db=   pre-configure
+SUBST_MESSAGE.sampleconfig-db= Fixing DB in config examples.
+SUBST_FILES.sampleconfig-db=   etc/examples/resources.ini
+# If compiled with MySQL support, use MySQL example, else PgSQL.
+.if !empty(PKG_OPTIONS:Mmysql)
+SUBST_SED.sampleconfig-db=     -e 's,@DB_TYPE@,mysql,g'
+SUBST_SED.sampleconfig-db+=    -e 's,@DB_PORT@,3306,g'
+.else
+SUBST_SED.sampleconfig-db=     -e 's,@DB_TYPE@,pgsql,g'
+SUBST_SED.sampleconfig-db+=    -e 's,@DB_PORT@,5432,g'
+.endif
+
+SUBST_CLASSES+=                                sampleconfig-path
+SUBST_STAGE.sampleconfig-path=         pre-configure
+SUBST_MESSAGE.sampleconfig-path=       Fixing paths in config examples.
+SUBST_FILES.sampleconfig-path=         etc/examples/config.ini
+SUBST_VARS.sampleconfig-path=          SHAREDIR LOGDIR
+
+# for installation of the example configuration files, see do-install below
+
+.for d in ${CONFDIRS}
+OWN_DIRS+=     ${PKG_SYSCONFDIR}/${d}
+.endfor
+
+.for f in ${CONFS}
+CONF_FILES+=   ${EGDIR}/${f} ${PKG_SYSCONFDIR}/${f}
+.endfor
+
+
+# Remove unneeded files in directories that are installed
+RMFILES=       application/fonts/fontello-ifont/config.json application/fonts/fontello-ifont/demo.html
+RMFILES+=      application/fonts/fontello-ifont/font/ifont.eot application/fonts/fontello-ifont/font/ifont.svg application/fonts/fontello-ifont/font/ifont.ttf 
application/fonts/fontello-ifont/font/ifont.woff application/fonts/fontello-ifont/font/ifont.woff2
+RMFILES+=      application/fonts/fontello-ifont/LICENSE.txt application/fonts/fontello-ifont/README.txt
+RMFILES+=      application/fonts/icingaweb.md
+RMFILES+=      application/VERSION
+RMFILES+=      library/vendor/dompdf/lib/php-font-lib/LICENSE
+RMFILES+=      library/vendor/dompdf/LICENSE library/vendor/dompdf/SOURCE
+RMFILES+=      library/vendor/HTMLPurifier/LICENSE library/vendor/HTMLPurifier/SOURCE
+RMFILES+=      library/vendor/JShrink/LICENSE library/vendor/JShrink/SOURCE
+RMFILES+=      library/vendor/lessphp/LICENSE library/vendor/lessphp/SOURCE
+RMFILES+=      library/vendor/Parsedown/LICENSE library/vendor/Parsedown/SOURCE
+RMFILES+=      library/vendor/Zend/LICENSE.txt library/vendor/Zend/README.md library/vendor/Zend/VERSION
+
+# for actual removal, see post-extract below
+
+
+# Some file have the executable bit set, but shouldn't
+NONEXECFILES=  application/fonts/fontello-ifont/css/*
+NONEXECFILES+= public/font/*
+NONEXECFILES+= library/vendor/HTMLPurifier/DefinitionCache/Serializer/README
+
+# for actual chmod, see post-extract below
+
+
+REPLACE_SH=            test/setup_vendor.sh            # !/usr/bin/bash, no bashisms (not actually installed)
+REPLACE_SH+=           test/travis_database.sh         # !/usr/bin/bash, no bashisms (not actually installed)
+
+REPLACE_INTERPRETER+=  php
+REPLACE.php.old=       .*php                           # /usr/bin/php, /usr/bin/env php
+REPLACE.php.new=       ${PREFIX}/bin/php
+REPLACE_FILES.php=     packages/files/bin/icingacli    # /usr/bin/php
+REPLACE_FILES.php+=    test/check-syntax.php           # /usr/bin/env php (but not actually installed)
+
+# We need a lot of SUBSTs. The list of hard-coded paths was gathered along the lines of "grep -rF '/etc/' . | sed -n -e 's:^.*/etc/\([^/]*\)/.*$:\1:p' | sort | uniq" etc., plus manual inspection.
+# See below for a descrption what is NOT substituted.
+
+SUBST_CLASSES+=                        schema
+SUBST_STAGE.schema=            pre-configure
+SUBST_MESSAGE.schema=          Fixing schema paths.
+SUBST_FILES.schema=            doc/20-Advanced-Topics.md
+SUBST_FILES.schema+=           doc/80-Upgrading.md
+SUBST_SED.schema=              -e 's,/usr/share/doc/icingaweb2,${SHAREDIR}/etc,g'
+
+SUBST_CLASSES+=                        sharedir
+SUBST_STAGE.sharedir=          pre-configure
+SUBST_MESSAGE.sharedir=                Fixing SHAREDIR paths.
+SUBST_FILES.sharedir=          doc/03-Configuration.md
+SUBST_FILES.sharedir+=         doc/20-Advanced-Topics.md
+SUBST_FILES.sharedir+=         modules/setup/application/clicommands/ConfigCommand.php
+SUBST_FILES.sharedir+=         public/error_unavailable.html
+SUBST_FILES.sharedir+=         packages/files/bin/icingacli
+SUBST_SED.sharedir=            -e 's,/usr/share/icingaweb2,${SHAREDIR},g'
+
+SUBST_CLASSES+=                        storagedir
+SUBST_STAGE.storagedir=                pre-configure
+SUBST_MESSAGE.storagedir=      Fixing STORAGEDIR paths.
+SUBST_FILES.storagedir=                library/Icinga/Application/ApplicationBootstrap.php
+SUBST_SED.storagedir=          -e 's,/var/lib/icingaweb2,${STORAGEDIR},g'
+
+.if ${LOGDIR} != "/var/log/icingaweb2"
+SUBST_CLASSES+=                        logdir
+SUBST_STAGE.logdir=            pre-configure
+SUBST_MESSAGE.logdir=          Fixing LOGDIR paths.
+SUBST_FILES.logdir=            application/forms/Config/General/LoggingConfigForm.php
+SUBST_SED.logdir=              -e 's,/var/log/icingaweb2,${LOGDIR},g'
+.endif
+
+.if ${RUNDIR_PARENT} != "/var/run"
+SUBST_CLASSES+=                        rundir
+SUBST_STAGE.rundir=            pre-configure
+SUBST_MESSAGE.rundir=          Fixing RUNDIR paths.
+SUBST_FILES.rundir=            doc/04-Resources.md
+SUBST_FILES.rundir+=           modules/monitoring/application/forms/Config/Transport/LocalTransportForm.php
+SUBST_FILES.rundir+=           modules/monitoring/application/forms/Config/Transport/RemoteTransportForm.php
+SUBST_FILES.rundir+=           modules/monitoring/doc/05-Command-Transports.md
+SUBST_FILES.rundir+=           modules/setup/application/clicommands/ConfigCommand.php
+SUBST_SED.rundir=              -e 's,/var/run,${RUNDIR_PARENT},g'
+.endif
+
+# This is kind of gross, but occurs only in documentation and the setup tool
+SUBST_CLASSES+=                        apache2
+SUBST_STAGE.apache2=           pre-configure
+SUBST_MESSAGE.apache2=         Fixing Apache2 config paths.
+SUBST_FILES.apache2=           doc/02-Installation.md
+SUBST_FILES.apache2+=          doc/20-Advanced-Topics.md
+SUBST_FILES.apache2+=          modules/setup/application/clicommands/ConfigCommand.php
+SUBST_SED.apache2=             -e 's,/etc/apache2,${PREFIX}/etc/httpd,g'
+SUBST_SED.apache2+=            -e 's,/etc/httpd,${PREFIX}/etc/httpd,g'
+
+SUBST_CLASSES+=                        icinga2
+SUBST_STAGE.icinga2=           pre-configure
+SUBST_MESSAGE.icinga2=         Fixing Icinga2 config paths.
+SUBST_FILES.icinga2=           modules/monitoring/doc/05-Command-Transports.md
+SUBST_SED.icinga2=             -e 's,/etc/icinga2,${PKG_SYSCONFDIR.icinga2},g'
+
+SUBST_CLASSES+=                        confdir
+SUBST_STAGE.confdir=           pre-configure
+SUBST_MESSAGE.confdir=         Fixing config paths.
+SUBST_FILES.confdir=           doc/03-Configuration.md
+SUBST_FILES.confdir+=          doc/04-Resources.md
+SUBST_FILES.confdir+=          doc/05-Authentication.md
+SUBST_FILES.confdir+=          doc/06-Security.md
+SUBST_FILES.confdir+=          doc/07-Preferences.md
+SUBST_FILES.confdir+=          doc/20-Advanced-Topics.md
+SUBST_FILES.confdir+=          doc/90-SELinux.md
+SUBST_FILES.confdir+=          library/Icinga/Application/ApplicationBootstrap.php
+SUBST_FILES.confdir+=          modules/monitoring/doc/03-Configuration.md
+SUBST_FILES.confdir+=          modules/monitoring/doc/05-Command-Transports.md
+SUBST_FILES.confdir+=          modules/setup/application/clicommands/ConfigCommand.php
+SUBST_FILES.confdir+=          modules/setup/application/clicommands/TokenCommand.php
+#SUBST_FILES.confdir+=         modules/setup/application/locale/de_DE/LC_MESSAGES/setup.mo
+SUBST_FILES.confdir+=          modules/setup/application/locale/de_DE/LC_MESSAGES/setup.po
+#SUBST_FILES.confdir+=         modules/setup/application/locale/it_IT/LC_MESSAGES/setup.mo
+SUBST_FILES.confdir+=          modules/setup/application/locale/it_IT/LC_MESSAGES/setup.po
+SUBST_FILES.confdir+=          modules/setup/application/views/scripts/form/setup-welcome.phtml
+SUBST_FILES.confdir+=          modules/setup/library/Setup/WebWizard.php
+SUBST_SED.confdir=             -e 's,/etc/icingaweb2,${PKG_SYSCONFDIR},g'
+
+SUBST_CLASSES+=                        php-inc
+SUBST_STAGE.php-inc=           pre-configure
+SUBST_MESSAGE.php-inc=         Fixing PHP include paths.
+SUBST_FILES.php-inc=           packages/files/bin/icingacli
+SUBST_FILES.php-inc+=          packages/files/public/index.php
+SUBST_SED.php-inc=             -e 's,/usr/share/php,${INCDIR},g'
+
+# This is also kind of gross, but occurs only in documentation
+SUBST_CLASSES+=                        php-config
+SUBST_STAGE.php-config=                pre-configure
+SUBST_MESSAGE.php-config=      Fixing PHP config paths.
+SUBST_FILES.php-config=                doc/02-Installation.md
+SUBST_SED.php-config=          -e 's,/etc/php\.ini,${PREFIX}/etc/php.ini,g'
+SUBST_SED.php-config+=         -e 's,/etc/php\.d,${PREFIX}/etc/php.d,g'
+
+# These could be based on a "translation" option. It's used for msgformat, msgmerge and xgettext
+SUBST_CLASSES+=                        env-gettext
+SUBST_STAGE.env-gettext=       pre-configure
+SUBST_MESSAGE.env-gettext=     Fixing env usage.
+SUBST_FILES.env-gettext=       modules/translation/library/Translation/Util/GettextTranslationHelper.php
+SUBST_SED.env-gettext=         -e 's,/usr/bin/env ,${PREFIX}/bin/,g'
+
+# While there, we can fix references to vim, too
+SUBST_CLASSES+=                        vim
+SUBST_STAGE.vim=               pre-configure
+SUBST_MESSAGE.vim=             Fixing vim references.
+SUBST_FILES.vim=               doc/05-Authentication.md
+SUBST_FILES.vim+=              doc/06-Security.md
+SUBST_FILES.vim+=              doc/20-Advanced-Topics.md
+SUBST_FILES.vim+=              modules/monitoring/doc/03-Configuration.md
+SUBST_FILES.vim+=              modules/monitoring/doc/05-Command-Transports.md
+SUBST_SED.vim=                 -e 's,vim /,${EDITOR} /,g'
+
+# There is also a bunch of hard-coded paths that are NOT substituted:
+# -- comments at the head of .po files
+# -- paths in files that are not actually installed: /usr/bin/msgfmt, /usr/bin/msgmerge, /usr/bin/xgettext, /usr/share/php, /var/lib/pgsql
+# -- paths that are Linux-specific enyway: /usr/sbin/semodule, /usr/lib/os-release, /usr/share/selinux, /etc/apk, /etc/apt, /etc/audit, /etc/opt, /etc/selinux
+# -- paths where the usage seems OK: /usr/share/{file,misc,mime}/magic{,.mime,.mgc}, /tmp, /proc/self
+# -- example path in comment: /var/spool/whatwever
+
+# post-extract jobs
+post-extract:
+       ${MKDIR} ${WRKSRC}/etc/examples
+.for d in ${CONFDIRS}
+       ${MKDIR} ${WRKSRC}/etc/examples/${d}
+.endfor
+.for f in ${CONFS}
+       ${CP} ${FILESDIR}/${f} ${WRKSRC}/etc/examples/${f}
+.endfor
+.for f in ${RMFILES}
+       ${RM} ${WRKSRC}/${f}
+.endfor
+.for f in ${NONEXECFILES}
+       ${CHMOD} -x ${WRKSRC}/${f}
+.endfor
+
+# Remove .orig file so it doesn't get installed
+post-patch:
+       ${RM} ${WRKSRC}/library/Icinga/Application/webrouter.php.orig
+
+# Install the files
+do-install:
+       cd ${WRKSRC} && ${PAX} -rw -pmp application doc etc/schema library/vendor modules/doc modules/migrate modules/monitoring modules/setup modules/translation modules/test public test 
${DESTDIR}${SHAREDIR}
+       ${INSTALL_SCRIPT} ${WRKSRC}/packages/files/public/index.php ${DESTDIR}${SHAREDIR}/public/index.php
+       cd ${WRKSRC}/library && ${PAX} -rw -pmp Icinga ${DESTDIR}${INCDIR}
+       cd ${WRKSRC}/etc/examples && ${PAX} -rw -pmp . ${DESTDIR}${EGDIR}
+       ${INSTALL_SCRIPT} ${WRKSRC}/packages/files/bin/icingacli ${DESTDIR}${PREFIX}/bin/icingacli
+
+PLIST_SUBST+=  SHAREDIR="${SHAREDIR:S.${PREFIX}/..}"
+PLIST_SUBST+=  INCDIR="${INCDIR:S.${PREFIX}/..}"
+PLIST_SUBST+=  EGDIR="${EGDIR:S.${PREFIX}/..}"
+
+GENERATE_PLIST+=       printf "${EGDIR:S.${PREFIX}/..}/%s\n" ${CONFS};
+
+.include "../../mk/bsd.pkg.mk"
+.include "../../lang/php/phpversion.mk"
diff -r d77941a0c472 -r 419b864c642c net/icingaweb2/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000



Home | Main Index | Thread Index | Old Index