From dc7f3de243563bf02ca8b2ecc6455c9157d04329 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Fri, 20 Oct 2017 13:12:03 +0200
Subject: fix FTBFS from Koschei, add patch for PHP 7.2 from
 https://github.com/zendframework/zend-barcode/pull/36

---
 .gitignore                          |   8 +
 36.patch                            | 383 ++++++++++++++++++++++++++++++++++++
 composer.json                       |  41 ++++
 php-zendframework-zend-barcode.spec |  29 +--
 4 files changed, 447 insertions(+), 14 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 36.patch
 create mode 100644 composer.json

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fc9aa8c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+clog
+package-*.xml
+*.tgz
+*.tar.gz
+*.tar.xz
+*.tar.xz.asc
+*.src.rpm
+*/*rpm
diff --git a/36.patch b/36.patch
new file mode 100644
index 0000000..7500f91
--- /dev/null
+++ b/36.patch
@@ -0,0 +1,383 @@
+From 70c29818f054a807e4f0cb16c041fe7cace32741 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 20 Oct 2017 13:00:34 +0200
+Subject: [PATCH] Fix for php72 (object is a reserved keyword)
+
+---
+ src/Renderer/AbstractRenderer.php |  4 ++--
+ test/FactoryTest.php              |  8 ++++----
+ test/Renderer/ImageTest.php       | 32 ++++++++++++++++----------------
+ test/Renderer/PdfTest.php         | 14 +++++++-------
+ test/Renderer/TestCommon.php      | 20 ++++++++++----------
+ 5 files changed, 39 insertions(+), 39 deletions(-)
+
+diff --git a/src/Renderer/AbstractRenderer.php b/src/Renderer/AbstractRenderer.php
+index ae02588..2263432 100644
+--- a/src/Renderer/AbstractRenderer.php
++++ b/src/Renderer/AbstractRenderer.php
+@@ -12,7 +12,7 @@
+ use Traversable;
+ use Zend\Barcode\Barcode;
+ use Zend\Barcode\Exception as BarcodeException;
+-use Zend\Barcode\Object;
++use Zend\Barcode\Object\ObjectInterface;
+ use Zend\Stdlib\ArrayUtils;
+ 
+ /**
+@@ -327,7 +327,7 @@ public function getAutomaticRenderError()
+      * @param  Object\ObjectInterface $barcode
+      * @return AbstractRenderer
+      */
+-    public function setBarcode(Object\ObjectInterface $barcode)
++    public function setBarcode(ObjectInterface $barcode)
+     {
+         $this->barcode = $barcode;
+         return $this;
+diff --git a/test/FactoryTest.php b/test/FactoryTest.php
+index 15e1ed6..742b7a0 100644
+--- a/test/FactoryTest.php
++++ b/test/FactoryTest.php
+@@ -13,7 +13,7 @@
+ use Zend\Barcode;
+ use Zend\Barcode\Exception\InvalidArgumentException;
+ use Zend\Barcode\Renderer;
+-use Zend\Barcode\Object;
++use Zend\Barcode\Object\Code25;
+ use Zend\Config\Config;
+ use Zend\ServiceManager\Exception\InvalidServiceException;
+ use ZendPdf as Pdf;
+@@ -159,14 +159,14 @@ public function testFactoryWithoutBarcodeWithAutomaticExceptionRenderWithZendCon
+     public function testFactoryWithExistingBarcodeObject()
+     {
+         $this->checkGDRequirement();
+-        $barcode = new Object\Code25();
++        $barcode = new Code25();
+         $renderer = Barcode\Barcode::factory($barcode);
+         $this->assertSame($barcode, $renderer->getBarcode());
+     }
+ 
+     public function testBarcodeObjectFactoryWithExistingBarcodeObject()
+     {
+-        $barcode = new Object\Code25();
++        $barcode = new Code25();
+         $generatedBarcode = Barcode\Barcode::makeBarcode($barcode);
+         $this->assertSame($barcode, $generatedBarcode);
+     }
+@@ -411,7 +411,7 @@ public function testProxyBarcodeRendererDrawAsSvgAutomaticallyRenderSvgIfExcepti
+     public function testProxyBarcodeObjectFont()
+     {
+         Barcode\Barcode::setBarcodeFont('my_font.ttf');
+-        $barcode = new Object\Code25();
++        $barcode = new Code25();
+         $this->assertSame('my_font.ttf', $barcode->getFont());
+         Barcode\Barcode::setBarcodeFont('');
+     }
+diff --git a/test/Renderer/ImageTest.php b/test/Renderer/ImageTest.php
+index db32b33..e5c833c 100644
+--- a/test/Renderer/ImageTest.php
++++ b/test/Renderer/ImageTest.php
+@@ -10,7 +10,7 @@
+ namespace ZendTest\Barcode\Renderer;
+ 
+ use Zend\Barcode;
+-use Zend\Barcode\Object;
++use Zend\Barcode\Object\Code39;
+ use Zend\Barcode\Renderer as RendererNS;
+ 
+ /**
+@@ -99,7 +99,7 @@ public function testNonAllowedImageType()
+     public function testDrawReturnResource()
+     {
+         $this->checkTTFRequirement();
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+         $resource = $this->renderer->draw();
+         $this->assertInternalType('resource', $resource, 'Image must be a resource');
+@@ -109,7 +109,7 @@ public function testDrawReturnResource()
+     public function testDrawWithExistantResourceReturnResource()
+     {
+         $this->checkTTFRequirement();
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+         $imageResource = imagecreatetruecolor(500, 500);
+         $this->renderer->setResource($imageResource);
+@@ -121,7 +121,7 @@ public function testDrawWithExistantResourceReturnResource()
+ 
+     public function testGoodUserHeight()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $this->renderer->setBarcode($barcode);
+         $this->renderer->setHeight(62);
+@@ -131,7 +131,7 @@ public function testGoodUserHeight()
+     public function testBadUserHeightLessThanBarcodeHeight()
+     {
+         $this->setExpectedException('\Zend\Barcode\Renderer\Exception\ExceptionInterface');
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $this->renderer->setBarcode($barcode);
+         $this->renderer->setHeight(61);
+@@ -140,7 +140,7 @@ public function testBadUserHeightLessThanBarcodeHeight()
+ 
+     public function testGoodUserWidth()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $this->renderer->setBarcode($barcode);
+         $this->renderer->setWidth(211);
+@@ -150,7 +150,7 @@ public function testGoodUserWidth()
+     public function testBadUserWidthLessThanBarcodeWidth()
+     {
+         $this->setExpectedException('\Zend\Barcode\Renderer\Exception\ExceptionInterface');
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $this->renderer->setBarcode($barcode);
+         $this->renderer->setWidth(210);
+@@ -159,7 +159,7 @@ public function testBadUserWidthLessThanBarcodeWidth()
+ 
+     public function testGoodHeightOfUserResource()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $imageResource = imagecreatetruecolor(500, 62);
+         $this->renderer->setResource($imageResource);
+@@ -170,7 +170,7 @@ public function testGoodHeightOfUserResource()
+     public function testBadHeightOfUserResource()
+     {
+         $this->setExpectedException('\Zend\Barcode\Renderer\Exception\ExceptionInterface');
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $this->renderer->setBarcode($barcode);
+         $imageResource = imagecreatetruecolor(500, 61);
+@@ -180,7 +180,7 @@ public function testBadHeightOfUserResource()
+ 
+     public function testGoodWidthOfUserResource()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $imageResource = imagecreatetruecolor(211, 500);
+         $this->renderer->setResource($imageResource);
+@@ -191,7 +191,7 @@ public function testGoodWidthOfUserResource()
+     public function testBadWidthOfUserResource()
+     {
+         $this->setExpectedException('\Zend\Barcode\Renderer\Exception\ExceptionInterface');
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $this->renderer->setBarcode($barcode);
+         $imageResource = imagecreatetruecolor(210, 500);
+@@ -203,7 +203,7 @@ public function testNoFontWithOrientation()
+     {
+         $this->setExpectedException('\Zend\Barcode\Renderer\Exception\ExceptionInterface');
+         Barcode\Barcode::setBarcodeFont(null);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $barcode->setOrientation(1);
+         $this->renderer->setBarcode($barcode);
+         $this->renderer->draw();
+@@ -281,7 +281,7 @@ public function testTopOffsetOverrideVerticalPosition()
+      */
+     public function testImageGifWithNoTransparency()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+ 
+         $this->renderer->setTransparentBackground(false);
+@@ -299,7 +299,7 @@ public function testImageGifWithNoTransparency()
+      */
+     public function testImagePngWithNoTransparency()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+ 
+         $this->renderer->setTransparentBackground(false);
+@@ -317,7 +317,7 @@ public function testImagePngWithNoTransparency()
+      */
+     public function testImageGifWithTransparency()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+ 
+         $this->renderer->setTransparentBackground(true);
+@@ -335,7 +335,7 @@ public function testImageGifWithTransparency()
+      */
+     public function testImagePngWithTransparency()
+     {
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+ 
+         $this->renderer->setTransparentBackground(true);
+diff --git a/test/Renderer/PdfTest.php b/test/Renderer/PdfTest.php
+index 36ac49e..5b4c9fb 100644
+--- a/test/Renderer/PdfTest.php
++++ b/test/Renderer/PdfTest.php
+@@ -11,7 +11,7 @@
+ 
+ use ZendPdf as Pdf;
+ use Zend\Barcode;
+-use Zend\Barcode\Object;
++use Zend\Barcode\Object\Code39;
+ 
+ /**
+  * @group      Zend_Barcode
+@@ -45,7 +45,7 @@ public function testGoodPdfResource()
+     public function testDrawReturnResource()
+     {
+         Barcode\Barcode::setBarcodeFont(__DIR__ . '/../Object/_fonts/Vera.ttf');
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+         $resource = $this->renderer->draw();
+         $this->assertInstanceOf('ZendPdf\PdfDocument', $resource);
+@@ -55,7 +55,7 @@ public function testDrawReturnResource()
+     public function testDrawWithExistantResourceReturnResource()
+     {
+         Barcode\Barcode::setBarcodeFont(__DIR__ . '/../Object/_fonts/Vera.ttf');
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->renderer->setBarcode($barcode);
+         $pdfResource = new Pdf\PdfDocument();
+         $this->renderer->setResource($pdfResource);
+@@ -75,7 +75,7 @@ protected function getRendererWithWidth500AndHeight300()
+     public function testHorizontalPositionToCenter()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $renderer->setBarcode($barcode);
+         $renderer->setHorizontalPosition('center');
+@@ -86,7 +86,7 @@ public function testHorizontalPositionToCenter()
+     public function testHorizontalPositionToRight()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $renderer->setBarcode($barcode);
+         $renderer->setHorizontalPosition('right');
+@@ -97,7 +97,7 @@ public function testHorizontalPositionToRight()
+     public function testVerticalPositionToMiddle()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $renderer->setBarcode($barcode);
+         $renderer->setVerticalPosition('middle');
+@@ -108,7 +108,7 @@ public function testVerticalPositionToMiddle()
+     public function testVerticalPositionToBottom()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $renderer->setBarcode($barcode);
+         $renderer->setVerticalPosition('bottom');
+diff --git a/test/Renderer/TestCommon.php b/test/Renderer/TestCommon.php
+index f04e49f..a2de440 100644
+--- a/test/Renderer/TestCommon.php
++++ b/test/Renderer/TestCommon.php
+@@ -11,7 +11,7 @@
+ 
+ use ZendTest\Barcode\Object\TestAsset as TestAsset;
+ use Zend\Barcode;
+-use Zend\Barcode\Object;
++use Zend\Barcode\Object\Code39;
+ use Zend\Config;
+ 
+ abstract class TestCommon extends \PHPUnit_Framework_TestCase
+@@ -51,7 +51,7 @@ public function tearDown()
+ 
+     public function testSetBarcodeObject()
+     {
+-        $barcode = new Object\Code39();
++        $barcode = new Code39();
+         $this->renderer->setBarcode($barcode);
+         $this->assertSame($barcode, $this->renderer->getBarcode());
+     }
+@@ -200,7 +200,7 @@ public function testHorizontalPositionToLeft()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $renderer->setBarcode($barcode);
+         $renderer->draw();
+@@ -211,7 +211,7 @@ public function testHorizontalPositionToCenter()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $renderer->setBarcode($barcode);
+         $renderer->setHorizontalPosition('center');
+@@ -223,7 +223,7 @@ public function testHorizontalPositionToRight()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $renderer->setBarcode($barcode);
+         $renderer->setHorizontalPosition('right');
+@@ -235,7 +235,7 @@ public function testLeftOffsetOverrideHorizontalPosition()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(211, $barcode->getWidth());
+         $renderer->setBarcode($barcode);
+         $renderer->setLeftOffset(12);
+@@ -248,7 +248,7 @@ public function testVerticalPositionToTop()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $renderer->setBarcode($barcode);
+         $renderer->setVerticalPosition('top');
+@@ -260,7 +260,7 @@ public function testVerticalPositionToMiddle()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $renderer->setBarcode($barcode);
+         $renderer->setVerticalPosition('middle');
+@@ -272,7 +272,7 @@ public function testVerticalPositionToBottom()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $renderer->setBarcode($barcode);
+         $renderer->setVerticalPosition('bottom');
+@@ -284,7 +284,7 @@ public function testTopOffsetOverrideVerticalPosition()
+     {
+         $renderer = $this->getRendererWithWidth500AndHeight300();
+         $renderer->setModuleSize(1);
+-        $barcode = new Object\Code39(['text' => '0123456789']);
++        $barcode = new Code39(['text' => '0123456789']);
+         $this->assertEquals(62, $barcode->getHeight());
+         $renderer->setBarcode($barcode);
+         $renderer->setTopOffset(12);
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..9fbaf0f
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,41 @@
+{
+    "name": "zendframework/zend-barcode",
+    "description": "provides a generic way to generate barcodes",
+    "license": "BSD-3-Clause",
+    "keywords": [
+        "zf2",
+        "barcode"
+    ],
+    "homepage": "https://github.com/zendframework/zend-barcode",
+    "autoload": {
+        "psr-4": {
+            "Zend\\Barcode\\": "src/"
+        }
+    },
+    "require": {
+        "php": "^5.5 || ^7.0",
+        "zendframework/zend-stdlib": "^2.7 || ^3.0",
+        "zendframework/zend-validator": "^2.6",
+        "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+    },
+    "require-dev": {
+        "zendframework/zend-config": "^2.6",
+        "zendframework/zendpdf": "*",
+        "fabpot/php-cs-fixer": "1.7.*",
+        "phpunit/PHPUnit": "~4.0"
+    },
+    "suggest": {
+        "zendframework/zendpdf": "ZendPdf component"
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "2.6-dev",
+            "dev-develop": "2.7-dev"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "ZendTest\\Barcode\\": "test/"
+        }
+    }
+}
diff --git a/php-zendframework-zend-barcode.spec b/php-zendframework-zend-barcode.spec
index 39d68db..e8fbe76 100644
--- a/php-zendframework-zend-barcode.spec
+++ b/php-zendframework-zend-barcode.spec
@@ -21,7 +21,7 @@
 
 Name:           php-%{gh_owner}-%{gh_project}
 Version:        2.6.0
-Release:        1%{?dist}
+Release:        4%{?dist}
 Summary:        Zend Framework %{library} component
 
 Group:          Development/Libraries
@@ -30,7 +30,8 @@ URL:            https://zendframework.github.io/%{gh_project}/
 Source0:        %{gh_commit}/%{name}-%{version}-%{gh_short}.tgz
 Source1:        makesrc.sh
 
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
+Patch0:         https://github.com/zendframework/zend-barcode/pull/36.patch
+
 BuildArch:      noarch
 # Tests
 %if %{with_tests}
@@ -97,6 +98,7 @@ Documentation: https://zendframework.github.io/%{gh_project}/
 
 %prep
 %setup -q -n %{gh_project}-%{gh_commit}
+%patch0 -p1
 
 mv LICENSE.md LICENSE
 
@@ -106,8 +108,6 @@ mv LICENSE.md LICENSE
 
 
 %install
-rm -rf %{buildroot}
-
 mkdir -p   %{buildroot}%{php_home}/Zend/
 cp -pr src %{buildroot}%{php_home}/Zend/%{library}
 
@@ -127,22 +127,19 @@ Zend\Loader\AutoloaderFactory::factory(array(
 require_once '%{php_home}/Zend/autoload.php';
 EOF
 
-%{_bindir}/phpunit --include-path=%{buildroot}%{php_home}
-
-if which php70; then
-   php70 %{_bindir}/phpunit --include-path=%{buildroot}%{php_home}
-fi
+ret=0
+for cmd in php php56 php70 php71 php72; do
+  if which $cmd; then
+    $cmd %{_bindir}/phpunit || ret=1
+  fi
+done
+exit $ret
 %else
 : Test suite disabled
 %endif
 
 
-%clean
-rm -rf %{buildroot}
-
-
 %files
-%defattr(-,root,root,-)
 %{!?_licensedir:%global license %%doc}
 %license LICENSE
 %doc *.md
@@ -151,6 +148,10 @@ rm -rf %{buildroot}
 
 
 %changelog
+* Fri Oct 20 2017 Remi Collet <remi@fedoraproject.org> - 2.6.0-4
+- fix FTBFS from Koschei, add patch for PHP 7.2 from
+  https://github.com/zendframework/zend-barcode/pull/36
+
 * Thu Feb 18 2016 Remi Collet <remi@fedoraproject.org> - 2.6.0-1
 - update to 2.6.0
 - raise dependency on zend-stdlib ^2.7
-- 
cgit