[Pkg-nagios-devel] Bug#923813: unblock: icingaweb2/2.6.2-3

Bas Couwenberg sebastic at xs4all.nl
Tue Mar 5 17:24:31 GMT 2019


Package: release.debian.org
Severity: normal
User: release.debian.org at packages.debian.org
Usertags: unblock

Please unblock package icingaweb2.

It contains additional patches for PHP 7.3 support. The initial patch
for #914457 only fixed the issues in the icingaweb2 code, the additional
(upstream) patches also fix the issues in the vendor libraries.

The package in unstable also fixes the Icon list in the documentation
module.

The other changes make the package lintian clean.

unblock icingaweb2/2.6.2-3

Kind Regards,

Bas
-------------- next part --------------
diff -Nru icingaweb2-2.6.2/debian/changelog icingaweb2-2.6.2/debian/changelog
--- icingaweb2-2.6.2/debian/changelog	2018-11-23 18:36:14.000000000 +0100
+++ icingaweb2-2.6.2/debian/changelog	2019-03-05 10:35:01.000000000 +0100
@@ -1,3 +1,14 @@
+icingaweb2 (2.6.2-3) unstable; urgency=medium
+
+  * Team upload.
+  * Bump Standards-Version to 4.3.0, no changes.
+  * Fix Icons list in 'Developer Style' documentation.
+  * Add upstream patches to fix PHP 7.3 support.
+  * Use .maintscript files instead of dpkg-maintscript-helper directly.
+  * Update lintian override for normalize.css.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Tue, 05 Mar 2019 10:35:01 +0100
+
 icingaweb2 (2.6.2-2) unstable; urgency=medium
 
   * Team upload.
diff -Nru icingaweb2-2.6.2/debian/control icingaweb2-2.6.2/debian/control
--- icingaweb2-2.6.2/debian/control	2018-11-23 18:35:14.000000000 +0100
+++ icingaweb2-2.6.2/debian/control	2018-12-25 23:27:47.000000000 +0100
@@ -8,7 +8,7 @@
                php-cli,
                node-uglify (>= 2) | yui-compressor,
                node-source-map | yui-compressor
-Standards-Version: 4.2.1
+Standards-Version: 4.3.0
 Vcs-Browser: https://salsa.debian.org/nagios-team/pkg-icingaweb2
 Vcs-Git: https://salsa.debian.org/nagios-team/pkg-icingaweb2.git
 Homepage: https://icinga.com
diff -Nru icingaweb2-2.6.2/debian/icingacli.maintscript icingaweb2-2.6.2/debian/icingacli.maintscript
--- icingaweb2-2.6.2/debian/icingacli.maintscript	1970-01-01 01:00:00.000000000 +0100
+++ icingaweb2-2.6.2/debian/icingacli.maintscript	2019-03-05 10:35:01.000000000 +0100
@@ -0,0 +1 @@
+rm_conffile /etc/bash_completion.d/icingacli 2.4.0-1~
diff -Nru icingaweb2-2.6.2/debian/icingacli.postinst icingaweb2-2.6.2/debian/icingacli.postinst
--- icingaweb2-2.6.2/debian/icingacli.postinst	2018-11-23 18:35:14.000000000 +0100
+++ icingaweb2-2.6.2/debian/icingacli.postinst	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-
-dpkg-maintscript-helper rm_conffile \
-   "/etc/bash_completion.d/icingacli" "2.4.0-1~" -- "$@"
-
-#DEBHELPER#
-
-exit 0
diff -Nru icingaweb2-2.6.2/debian/icingacli.postrm icingaweb2-2.6.2/debian/icingacli.postrm
--- icingaweb2-2.6.2/debian/icingacli.postrm	2018-11-23 18:35:14.000000000 +0100
+++ icingaweb2-2.6.2/debian/icingacli.postrm	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-
-dpkg-maintscript-helper rm_conffile \
-   "/etc/bash_completion.d/icingacli" "2.4.0-1~" -- "$@"
-
-#DEBHELPER#
-
-exit 0
diff -Nru icingaweb2-2.6.2/debian/icingacli.preinst icingaweb2-2.6.2/debian/icingacli.preinst
--- icingaweb2-2.6.2/debian/icingacli.preinst	2018-11-23 18:35:14.000000000 +0100
+++ icingaweb2-2.6.2/debian/icingacli.preinst	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-
-dpkg-maintscript-helper rm_conffile \
-   "/etc/bash_completion.d/icingacli" "2.4.0-1~" -- "$@"
-
-#DEBHELPER#
-
-exit 0
diff -Nru icingaweb2-2.6.2/debian/icingaweb2.install icingaweb2-2.6.2/debian/icingaweb2.install
--- icingaweb2-2.6.2/debian/icingaweb2.install	2018-11-23 18:35:15.000000000 +0100
+++ icingaweb2-2.6.2/debian/icingaweb2.install	2019-03-05 10:19:26.000000000 +0100
@@ -1,20 +1,21 @@
-public doc                       usr/share/icingaweb2
+public doc                                   usr/share/icingaweb2
 
-application/controllers          usr/share/icingaweb2/application
-application/fonts/fontello-ifont/css usr/share/icingaweb2/application/fonts/fontello-ifont
-application/forms                usr/share/icingaweb2/application
-application/layouts              usr/share/icingaweb2/application
-application/views                usr/share/icingaweb2/application
+application/controllers                      usr/share/icingaweb2/application
+application/fonts/fontello-ifont/config.json usr/share/icingaweb2/application/fonts/fontello-ifont
+application/fonts/fontello-ifont/css         usr/share/icingaweb2/application/fonts/fontello-ifont
+application/forms                            usr/share/icingaweb2/application
+application/layouts                          usr/share/icingaweb2/application
+application/views                            usr/share/icingaweb2/application
 
-etc/schema                       usr/share/icingaweb2/etc
+etc/schema                                   usr/share/icingaweb2/etc
 
-packages/files/public/index.php  usr/share/icingaweb2/public
-debian/icingaweb2.conf           etc/apache2/conf-available
+packages/files/public/index.php              usr/share/icingaweb2/public
+debian/icingaweb2.conf                       etc/apache2/conf-available
 
 # TODO: vendor libraries - should be moved to a proper package
-library/vendor/dompdf/*          usr/share/icingaweb2/library/vendor/dompdf
-library/vendor/HTMLPurifier/*    usr/share/icingaweb2/library/vendor/HTMLPurifier
-library/vendor/HTMLPurifier.*    usr/share/icingaweb2/library/vendor
-library/vendor/JShrink/*.php     usr/share/icingaweb2/library/vendor/JShrink
-library/vendor/lessphp/*.php     usr/share/icingaweb2/library/vendor/lessphp
-library/vendor/Parsedown/*.php   usr/share/icingaweb2/library/vendor/Parsedown
+library/vendor/dompdf/*                      usr/share/icingaweb2/library/vendor/dompdf
+library/vendor/HTMLPurifier/*                usr/share/icingaweb2/library/vendor/HTMLPurifier
+library/vendor/HTMLPurifier.*                usr/share/icingaweb2/library/vendor
+library/vendor/JShrink/*.php                 usr/share/icingaweb2/library/vendor/JShrink
+library/vendor/lessphp/*.php                 usr/share/icingaweb2/library/vendor/lessphp
+library/vendor/Parsedown/*.php               usr/share/icingaweb2/library/vendor/Parsedown
diff -Nru icingaweb2-2.6.2/debian/icingaweb2.lintian-overrides icingaweb2-2.6.2/debian/icingaweb2.lintian-overrides
--- icingaweb2-2.6.2/debian/icingaweb2.lintian-overrides	2018-11-23 18:35:15.000000000 +0100
+++ icingaweb2-2.6.2/debian/icingaweb2.lintian-overrides	2019-03-05 10:35:01.000000000 +0100
@@ -10,7 +10,7 @@
 
 # Not guarateerd compatible
 embedded-javascript-library * please use libjs-jquery*
-embedded-javascript-library * please use node-normalize.css
+embedded-javascript-library * please use libjs-normalize
 
 # Embedded module documentation
 package-contains-documentation-outside-usr-share-doc usr/share/icingaweb2/doc/*
diff -Nru icingaweb2-2.6.2/debian/patches/break-continue.patch icingaweb2-2.6.2/debian/patches/break-continue.patch
--- icingaweb2-2.6.2/debian/patches/break-continue.patch	2018-11-23 18:35:15.000000000 +0100
+++ icingaweb2-2.6.2/debian/patches/break-continue.patch	2019-03-05 10:35:01.000000000 +0100
@@ -3,6 +3,7 @@
 Author: Bas Couwenberg <sebastic at debian.org>
 Bug-Debian: https://bugs.debian.org/914457
 Forwarded: https://github.com/Icinga/icingaweb2/pull/3634
+Applied-Upstream: https://github.com/Icinga/icingaweb2/commit/8ebf53558093c631402e8e3565b99af3b29a7373
 
 --- a/library/Icinga/Application/Modules/Module.php
 +++ b/library/Icinga/Application/Modules/Module.php
diff -Nru icingaweb2-2.6.2/debian/patches/GridChart-Fix-compatibility-issues-with-PHP-7.3.patch icingaweb2-2.6.2/debian/patches/GridChart-Fix-compatibility-issues-with-PHP-7.3.patch
--- icingaweb2-2.6.2/debian/patches/GridChart-Fix-compatibility-issues-with-PHP-7.3.patch	1970-01-01 01:00:00.000000000 +0100
+++ icingaweb2-2.6.2/debian/patches/GridChart-Fix-compatibility-issues-with-PHP-7.3.patch	2019-03-05 10:35:01.000000000 +0100
@@ -0,0 +1,15 @@
+Description: GridChart: Fix compatibility issues with PHP 7.3
+Author: Markus Frosch <markus.frosch at icinga.com>
+Origin: https://github.com/Icinga/icingaweb2/pull/3637/commits/ecfaf7cedef6801f837dbb082ad420bad98069cc
+
+--- a/library/Icinga/Chart/GridChart.php
++++ b/library/Icinga/Chart/GridChart.php
+@@ -409,7 +409,7 @@ class GridChart extends Chart
+                         );
+                         break;
+                     default:
+-                        continue;
++                        continue 2;
+                 }
+                 $el = $this->setupGraph($graphObj, $graph);
+                 if ($el) {
diff -Nru icingaweb2-2.6.2/debian/patches/series icingaweb2-2.6.2/debian/patches/series
--- icingaweb2-2.6.2/debian/patches/series	2018-11-23 18:35:15.000000000 +0100
+++ icingaweb2-2.6.2/debian/patches/series	2019-03-05 10:35:01.000000000 +0100
@@ -1 +1,5 @@
 break-continue.patch
+vendor-Update-zf1-for-PHP-7.3.patch
+vendor-Update-JShrink-to-1.3.1.patch
+GridChart-Fix-compatibility-issues-with-PHP-7.3.patch
+vendor-Update-dompdf-to-a-fixed-version-for-PHP-7.3.patch
diff -Nru icingaweb2-2.6.2/debian/patches/vendor-Update-dompdf-to-a-fixed-version-for-PHP-7.3.patch icingaweb2-2.6.2/debian/patches/vendor-Update-dompdf-to-a-fixed-version-for-PHP-7.3.patch
--- icingaweb2-2.6.2/debian/patches/vendor-Update-dompdf-to-a-fixed-version-for-PHP-7.3.patch	1970-01-01 01:00:00.000000000 +0100
+++ icingaweb2-2.6.2/debian/patches/vendor-Update-dompdf-to-a-fixed-version-for-PHP-7.3.patch	2019-03-05 10:35:01.000000000 +0100
@@ -0,0 +1,321 @@
+Description: vendor: Update dompdf to a fixed version for PHP 7.3
+ https://github.com/dompdf/dompdf/pull/1854
+Author: Markus Frosch <markus.frosch at icinga.com>
+Origin: https://github.com/Icinga/icingaweb2/pull/3637/commits/f4f61dff5b601b0964d457b9c90b94132dea5d02
+
+--- a/library/vendor/dompdf/SOURCE
++++ b/library/vendor/dompdf/SOURCE
+@@ -1,16 +1,26 @@
+-GLOBIGNORE=$0; rm -rf *
++#!/bin/bash
++set -eux
++#GLOBIGNORE=$0; rm -rf *
+ 
+-curl https://codeload.github.com/dompdf/dompdf/tar.gz/v0.8.2 -o dompdf-0.8.2.tar.gz
+-tar xzf dompdf-0.8.2.tar.gz --strip-components 1 dompdf-0.8.2/{lib,src,LICENSE.LGPL}
+-rm dompdf-0.8.2.tar.gz
++#DOMPDF_VERSION=0.8.2
++DOMPDF_VERSION=6a77a427984f97743018ace3e095fbf0edaaee29 # https://github.com/dompdf/dompdf/pull/1854
++
++PHP_FONTLIB_VERSION=0.5.1
++PHP_SVGLIB_VERSION=0.3.2
++
++rm -rf lib/ src/
++
++curl -LsS https://github.com/dompdf/dompdf/archive/"$DOMPDF_VERSION".tar.gz -o /tmp/dompdf.tar.gz
++tar xf /tmp/dompdf.tar.gz --strip-components 1 dompdf-"$DOMPDF_VERSION"/{lib,src,LICENSE.LGPL}
++rm /tmp/dompdf.tar.gz
+ mv LICENSE.LGPL LICENSE
+ 
+-curl https://codeload.github.com/PhenX/php-font-lib/tar.gz/0.5.1 -o php-font-lib-0.5.1.tar.gz
+-mkdir -p lib/php-font-lib
+-tar xzf php-font-lib-0.5.1.tar.gz --strip-components 1 -C lib/php-font-lib php-font-lib-0.5.1/{src,LICENSE}
+-rm php-font-lib-0.5.1.tar.gz
+-
+-curl https://codeload.github.com/PhenX/php-svg-lib/tar.gz/v0.3.2 -o php-svg-lib-0.3.2.tar.gz
+-mkdir -p lib/php-svg-lib
+-tar xzf php-svg-lib-0.3.2.tar.gz --strip-components 1 -C lib/php-svg-lib php-svg-lib-0.3.2/src
+-rm php-svg-lib-0.3.2.tar.gz
++curl -LsS https://github.com/PhenX/php-font-lib/archive/"$PHP_FONTLIB_VERSION".tar.gz -o /tmp/php-font-lib.tar.gz
++[ -d lib/php-font-lib ] || mkdir -p lib/php-font-lib
++tar xf /tmp/php-font-lib.tar.gz --strip-components 1 -C lib/php-font-lib php-font-lib-"$PHP_FONTLIB_VERSION"/{src,LICENSE}
++rm /tmp/php-font-lib.tar.gz
++
++curl -LsS https://github.com/PhenX/php-svg-lib/archive/v"$PHP_SVGLIB_VERSION".tar.gz -o /tmp/php-svg-lib.tar.gz
++[ -d lib/php-svg-lib ] || mkdir -p lib/php-svg-lib
++tar xf /tmp/php-svg-lib.tar.gz --strip-components 1 -C lib/php-svg-lib php-svg-lib-"$PHP_SVGLIB_VERSION"/src
++rm /tmp/php-svg-lib.tar.gz
+--- a/library/vendor/dompdf/lib/Cpdf.php
++++ b/library/vendor/dompdf/lib/Cpdf.php
+@@ -464,28 +464,28 @@ class Cpdf
+                         // Named with limited valid values
+                         case 'NonFullScreenPageMode':
+                             if (!in_array($v, array('UseNone', 'UseOutlines', 'UseThumbs', 'UseOC'))) {
+-                                continue;
++                                continue 2;
+                             }
+                             $o['info'][$k] = $v;
+                             break;
+ 
+                         case 'Direction':
+                             if (!in_array($v, array('L2R', 'R2L'))) {
+-                                continue;
++                                continue 2;
+                             }
+                             $o['info'][$k] = $v;
+                             break;
+ 
+                         case 'PrintScaling':
+                             if (!in_array($v, array('None', 'AppDefault'))) {
+-                                continue;
++                                continue 2;
+                             }
+                             $o['info'][$k] = $v;
+                             break;
+ 
+                         case 'Duplex':
+                             if (!in_array($v, array('None', 'AppDefault'))) {
+-                                continue;
++                                continue 2;
+                             }
+                             $o['info'][$k] = $v;
+                             break;
+@@ -4801,12 +4801,12 @@ EOT;
+         imagesavealpha($img, false);
+ 
+         // create temp alpha file
+-        $tempfile_alpha = tempnam($this->tmp, "cpdf_img_");
++        $tempfile_alpha = @tempnam($this->tmp, "cpdf_img_");
+         @unlink($tempfile_alpha);
+         $tempfile_alpha = "$tempfile_alpha.png";
+ 
+         // create temp plain file
+-        $tempfile_plain = tempnam($this->tmp, "cpdf_img_");
++        $tempfile_plain = @tempnam($this->tmp, "cpdf_img_");
+         @unlink($tempfile_plain);
+         $tempfile_plain = "$tempfile_plain.png";
+ 
+--- a/library/vendor/dompdf/src/Adapter/CPDF.php
++++ b/library/vendor/dompdf/src/Adapter/CPDF.php
+@@ -562,6 +562,25 @@ class CPDF implements Canvas
+     }
+ 
+     /**
++     * Draw line at the specified coordinates on every page.
++     *
++     * See {@link Style::munge_color()} for the format of the colour array.
++     *
++     * @param float $x1
++     * @param float $y1
++     * @param float $x2
++     * @param float $y2
++     * @param array $color
++     * @param float $width
++     * @param array $style optional
++     */
++    public function page_line($x1, $y1, $x2, $y2, $color, $width, $style = array())
++    {
++        $_t = 'line';
++        $this->_page_text[] = compact('_t', 'x1', 'y1', 'x2', 'y2', 'color', 'width', 'style');
++    }
++
++    /**
+      * @param float $x
+      * @param float $y
+      * @param float $r1
+@@ -608,7 +627,7 @@ class CPDF implements Canvas
+             imageinterlace($im, false);
+ 
+             $tmp_dir = $this->_dompdf->getOptions()->getTempDir();
+-            $tmp_name = tempnam($tmp_dir, "{$type}dompdf_img_");
++            $tmp_name = @tempnam($tmp_dir, "{$type}dompdf_img_");
+             @unlink($tmp_name);
+             $filename = "$tmp_name.png";
+             $this->_image_cache[] = $filename;
+@@ -1092,6 +1111,10 @@ class CPDF implements Canvas
+                         }
+                         $eval->evaluate($code, array('PAGE_NUM' => $page_number, 'PAGE_COUNT' => $this->_page_count));
+                         break;
++
++                    case 'line':
++                        $this->line( $x1, $y1, $x2, $y2, $color, $width, $style );
++                        break;
+                 }
+             }
+ 
+--- a/library/vendor/dompdf/src/Adapter/GD.php
++++ b/library/vendor/dompdf/src/Adapter/GD.php
+@@ -729,7 +729,7 @@ class GD implements Canvas
+         $func_name = "imagecreatefrom$img_type";
+         if (!function_exists($func_name)) {
+             if (!method_exists("Dompdf\Helpers", $func_name)) {
+-                throw new \Exception("Function $func_name() not found.  Cannot convert $type image: $img_url.  Please install the image PHP extension.");
++                throw new \Exception("Function $func_name() not found.  Cannot convert $img_type image: $img_url.  Please install the image PHP extension.");
+             }
+             $func_name = "\\Dompdf\\Helpers::" . $func_name;
+         }
+@@ -977,6 +977,11 @@ class GD implements Canvas
+     {
+         // N/A
+     }
++
++    public function page_line()
++    {
++        // N/A
++    }
+ 
+     /**
+      * Streams the image to the client.
+--- a/library/vendor/dompdf/src/Adapter/PDFLib.php
++++ b/library/vendor/dompdf/src/Adapter/PDFLib.php
+@@ -208,7 +208,7 @@ class PDFLib implements Canvas
+             $this->_pdf->begin_document("", "");
+         } else {
+             $tmp_dir = $this->_dompdf->getOptions()->getTempDir();
+-            $tmp_name = tempnam($tmp_dir, "libdompdf_pdf_");
++            $tmp_name = @tempnam($tmp_dir, "libdompdf_pdf_");
+             @unlink($tmp_name);
+             $this->_file = "$tmp_name.pdf";
+             $this->_pdf->begin_document($this->_file, "");
+@@ -763,6 +763,25 @@ class PDFLib implements Canvas
+     }
+ 
+     /**
++     * Draw line at the specified coordinates on every page.
++     *
++     * See {@link Style::munge_color()} for the format of the colour array.
++     *
++     * @param float $x1
++     * @param float $y1
++     * @param float $x2
++     * @param float $y2
++     * @param array $color
++     * @param float $width
++     * @param array $style optional
++     */
++    public function page_line($x1, $y1, $x2, $y2, $color, $width, $style = array())
++    {
++        $_t = 'line';
++        $this->_page_text[] = compact('_t', 'x1', 'y1', 'x2', 'y2', 'color', 'width', 'style');
++    }
++
++    /**
+      * @param float $x1
+      * @param float $y1
+      * @param float $r1
+@@ -1259,6 +1278,11 @@ class PDFLib implements Canvas
+                         }
+                         $eval->evaluate($code, array('PAGE_NUM' => $p, 'PAGE_COUNT' => $this->_page_count));
+                         break;
++
++                    case 'line':
++                        $this->line( $x1, $y1, $x2, $y2, $color, $width, $style );
++                        break;
++
+                 }
+             }
+ 
+--- a/library/vendor/dompdf/src/Css/Stylesheet.php
++++ b/library/vendor/dompdf/src/Css/Stylesheet.php
+@@ -1357,7 +1357,7 @@ class Stylesheet
+                                 $key = $page_selector;
+ 
+                             default:
+-                                continue;
++                                continue 3;
+                         }
+ 
+                         // Store the style for later...
+--- a/library/vendor/dompdf/src/Dompdf.php
++++ b/library/vendor/dompdf/src/Dompdf.php
+@@ -368,7 +368,7 @@ class Dompdf
+ 
+             $ext = strtolower(pathinfo($realfile, PATHINFO_EXTENSION));
+             if (!in_array($ext, $this->allowedLocalFileExtensions)) {
+-                throw new Exception("Permission denied on $file.");
++                throw new Exception("Permission denied on $file. This file extension is forbidden");
+             }
+ 
+             if (!$realfile) {
+@@ -607,7 +607,7 @@ class Dompdf
+                             if (!$accept) {
+                                 //found at least one mediatype, but none of the accepted ones
+                                 //Skip this css file.
+-                                continue;
++                                continue 2;
+                             }
+                         }
+ 
+@@ -628,7 +628,7 @@ class Dompdf
+                         ($media = $tag->getAttribute("media")) &&
+                         !in_array($media, $acceptedmedia)
+                     ) {
+-                        continue;
++                        continue 2;
+                     }
+ 
+                     $css = "";
+@@ -945,7 +945,7 @@ class Dompdf
+      *
+      * @param array $options options (see above)
+      *
+-     * @return string
++     * @return string|null
+      */
+     public function output($options = array())
+     {
+--- a/library/vendor/dompdf/src/FontMetrics.php
++++ b/library/vendor/dompdf/src/FontMetrics.php
+@@ -186,7 +186,7 @@ class FontMetrics
+         $fontDir = $this->getOptions()->getFontDir();
+         $remoteHash = md5($remoteFile);
+         $localFile = $fontDir . DIRECTORY_SEPARATOR . $remoteHash;
+-        $localTempFile = tempnam($this->options->get("tempDir"), "dompdf-font-");
++        $localTempFile = @tempnam($this->options->get("tempDir"), "dompdf-font-");
+ 
+         $cacheEntry = $localFile;
+         $localFile .= ".".strtolower(pathinfo(parse_url($remoteFile, PHP_URL_PATH),PATHINFO_EXTENSION));
+--- a/library/vendor/dompdf/src/FrameDecorator/Page.php
++++ b/library/vendor/dompdf/src/FrameDecorator/Page.php
+@@ -515,7 +515,7 @@ class Page extends AbstractFrameDecorato
+         // parents of $frame must fit on the page as well:
+         $p = $frame->get_parent();
+         while ($p) {
+-            $max_y += $p->get_style()->computed_bottom_spacing();
++            $max_y += (float) $p->get_style()->computed_bottom_spacing();
+             $p = $p->get_parent();
+         }
+ 
+--- a/library/vendor/dompdf/src/Image/Cache.php
++++ b/library/vendor/dompdf/src/Image/Cache.php
+@@ -88,7 +88,7 @@ class Cache
+                     } // From remote
+                     else {
+                         $tmp_dir = $dompdf->getOptions()->getTempDir();
+-                        $resolved_url = tempnam($tmp_dir, "ca_dompdf_img_");
++                        $resolved_url = @tempnam($tmp_dir, "ca_dompdf_img_");
+                         $image = "";
+ 
+                         if ($data_uri) {
+--- a/library/vendor/dompdf/src/Renderer/AbstractRenderer.php
++++ b/library/vendor/dompdf/src/Renderer/AbstractRenderer.php
+@@ -401,7 +401,7 @@ abstract class AbstractRenderer
+             $this->_canvas->get_cpdf()->addImagePng($filedummy, $x, $this->_canvas->get_height() - $y - $height, $width, $height, $bg);
+         } else {
+             $tmp_dir = $this->_dompdf->getOptions()->getTempDir();
+-            $tmp_name = tempnam($tmp_dir, "bg_dompdf_img_");
++            $tmp_name = @tempnam($tmp_dir, "bg_dompdf_img_");
+             @unlink($tmp_name);
+             $tmp_file = "$tmp_name.png";
+ 
+--- a/library/vendor/dompdf/src/Renderer/Text.php
++++ b/library/vendor/dompdf/src/Renderer/Text.php
+@@ -137,7 +137,7 @@ class Text extends AbstractRenderer
+ 
+             switch ($text_deco) {
+                 default:
+-                    continue;
++                    continue 2;
+ 
+                 case "underline":
+                     $deco_y += $base - $descent + $underline_offset + $line_thickness / 2;
diff -Nru icingaweb2-2.6.2/debian/patches/vendor-Update-JShrink-to-1.3.1.patch icingaweb2-2.6.2/debian/patches/vendor-Update-JShrink-to-1.3.1.patch
--- icingaweb2-2.6.2/debian/patches/vendor-Update-JShrink-to-1.3.1.patch	1970-01-01 01:00:00.000000000 +0100
+++ icingaweb2-2.6.2/debian/patches/vendor-Update-JShrink-to-1.3.1.patch	2019-03-05 10:35:01.000000000 +0100
@@ -0,0 +1,64 @@
+Description: vendor: Update JShrink to 1.3.1
+ This fixes mainly problems with PHP 7.3.
+Author: Markus Frosch <markus.frosch at icinga.com>
+Origin: https://github.com/Icinga/icingaweb2/pull/3637/commits/87e81e6b3ae87d30a975ed193531d3f483932a5b
+
+--- a/library/vendor/JShrink/Minifier.php
++++ b/library/vendor/JShrink/Minifier.php
+@@ -183,7 +183,7 @@ class Minifier
+                 // new lines
+                 case "\n":
+                     // if the next line is something that can't stand alone preserve the newline
+-                    if (strpos('(-+[@', $this->b) !== false) {
++                    if ($this->b !== false && strpos('(-+[@', $this->b) !== false) {
+                         echo $this->a;
+                         $this->saveString();
+                         break;
+@@ -231,7 +231,7 @@ class Minifier
+                             // check for some regex that breaks stuff
+                             if ($this->a === '/' && ($this->b === '\'' || $this->b === '"')) {
+                                 $this->saveRegex();
+-                                continue;
++                                continue 3;
+                             }
+ 
+                             echo $this->a;
+@@ -274,9 +274,8 @@ class Minifier
+         if (isset($this->c)) {
+             $char = $this->c;
+             unset($this->c);
+-
+-            // Otherwise we start pulling from the input.
+         } else {
++            // Otherwise we start pulling from the input.
+             $char = substr($this->input, $this->index, 1);
+ 
+             // If the next character doesn't exist return false.
+@@ -459,11 +458,8 @@ class Minifier
+         echo $this->a;
+ 
+         // Loop until the string is done
+-        while (true) {
+-
+-            // Grab the very next character and load it into a
+-            $this->a = $this->getChar();
+-
++        // Grab the very next character and load it into a
++        while (($this->a = $this->getChar()) !== false) {
+             switch ($this->a) {
+ 
+                 // If the string opener (single or double quote) is used
+--- a/library/vendor/JShrink/SOURCE
++++ b/library/vendor/JShrink/SOURCE
+@@ -1,4 +1,7 @@
+-curl https://codeload.github.com/tedious/JShrink/tar.gz/v1.3.0 -o JShrink-1.3.0.tar.gz
+-tar xzf JShrink-1.3.0.tar.gz --strip-components 1 JShrink-1.3.0/LICENSE
+-tar xzf JShrink-1.3.0.tar.gz --strip-components 3 JShrink-1.3.0/src/JShrink/Minifier.php
+-rm JShrink-1.3.0.tar.gz
++#!/bin/bash
++set -eux
++VERSION=1.3.1
++curl -LsS https://github.com/tedious/JShrink/archive/v"$VERSION".tar.gz -o /tmp/JShrink.tar.gz
++tar xzf /tmp/JShrink.tar.gz --strip-components 1 JShrink-"$VERSION"/LICENSE
++tar xzf /tmp/JShrink.tar.gz --strip-components 3 JShrink-"$VERSION"/src/JShrink/Minifier.php
++rm /tmp/JShrink.tar.gz
diff -Nru icingaweb2-2.6.2/debian/patches/vendor-Update-zf1-for-PHP-7.3.patch icingaweb2-2.6.2/debian/patches/vendor-Update-zf1-for-PHP-7.3.patch
--- icingaweb2-2.6.2/debian/patches/vendor-Update-zf1-for-PHP-7.3.patch	1970-01-01 01:00:00.000000000 +0100
+++ icingaweb2-2.6.2/debian/patches/vendor-Update-zf1-for-PHP-7.3.patch	2019-03-05 10:35:01.000000000 +0100
@@ -0,0 +1,48 @@
+Description: vendor: Update zf1 for PHP 7.3
+Author: Markus Frosch <markus.frosch at icinga.com>
+Origin: https://github.com/Icinga/icingaweb2/pull/3645/commits/113a10481ba5c60c16a3f6740c4ba925920a4947
+
+--- a/library/vendor/Zend/Form.php
++++ b/library/vendor/Zend/Form.php
+@@ -1159,7 +1159,7 @@ class Zend_Form implements Iterator, Cou
+                 } else {
+                     switch ($argc) {
+                         case 0:
+-                            continue;
++                            continue 2;
+                         case (1 <= $argc):
+                             $type = array_shift($spec);
+                         case (2 <= $argc):
+@@ -1664,7 +1664,7 @@ class Zend_Form implements Iterator, Cou
+      */
+     public function addSubForms(array $subForms)
+     {
+-        foreach ($subForms as $key => $spec) {          
++        foreach ($subForms as $key => $spec) {
+             $name = (string) $key;
+             if ($spec instanceof Zend_Form) {
+                 $this->addSubForm($spec, $name);
+@@ -1676,7 +1676,7 @@ class Zend_Form implements Iterator, Cou
+                 $order = null;
+                 switch ($argc) {
+                     case 0:
+-                        continue;
++                        continue 2;
+                     case (1 <= $argc):
+                         $subForm = array_shift($spec);
+ 
+--- a/library/vendor/Zend/README.md
++++ b/library/vendor/Zend/README.md
+@@ -1,6 +1,6 @@
+ # icingaweb2-vendor-zf1
+ 
+-icingaweb2-vendor-zf1 is [Icinga Web 2](https://icinga.com/products/icinga-web-2/)'s fork of
++icingaweb2-vendor-zf1 is [Icinga Web 2](https://www.icinga.org/products/icinga-web-2/)'s fork of
+ [Zend Framework](https://framework.zend.com/) 1 which is
+ [end-of-life](https://framework.zend.com/blog/2016-06-28-zf1-eol.html) since Sep 28, 2016.
+ We've reduced the library to the minimum required by Icinga Web 2 and its modules.
+--- a/library/vendor/Zend/VERSION
++++ b/library/vendor/Zend/VERSION
+@@ -1 +1 @@
+-v1.12.20
++v1.12.20-23-gc1f645550
diff -Nru icingaweb2-2.6.2/debian/rules icingaweb2-2.6.2/debian/rules
--- icingaweb2-2.6.2/debian/rules	2018-11-23 18:35:15.000000000 +0100
+++ icingaweb2-2.6.2/debian/rules	2019-03-05 10:35:01.000000000 +0100
@@ -40,7 +40,8 @@
 	      debian/*/usr/share/icingaweb2/library/vendor/dompdf/lib/fonts/DejaVuSerif-Italic.ttf
 
 	# Remove executable bit
-	chmod -x debian/*/usr/share/icingaweb2/public/font/ifont.* \
-	         debian/*/usr/share/icingaweb2/library/vendor/HTMLPurifier/DefinitionCache/Serializer/README
+	chmod -x debian/*/usr/share/icingaweb2/application/fonts/fontello-ifont/config.json \
+	         debian/*/usr/share/icingaweb2/library/vendor/HTMLPurifier/DefinitionCache/Serializer/README \
+	         debian/*/usr/share/icingaweb2/public/font/ifont.*
 
 # vi: ts=4 sw=4 noexpandtab :


More information about the Pkg-nagios-devel mailing list