diff options
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | 8f16a007ea94f65894c8c71e0aaeba83e0d13993.patch | 86 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | composer.json | 25 | ||||
-rw-r--r-- | php-bacon-qr-code.spec | 134 |
5 files changed, 256 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1ab5c4f --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/8f16a007ea94f65894c8c71e0aaeba83e0d13993.patch b/8f16a007ea94f65894c8c71e0aaeba83e0d13993.patch new file mode 100644 index 0000000..6b94827 --- /dev/null +++ b/8f16a007ea94f65894c8c71e0aaeba83e0d13993.patch @@ -0,0 +1,86 @@ +From 8f16a007ea94f65894c8c71e0aaeba83e0d13993 Mon Sep 17 00:00:00 2001 +From: Ben Scholzen <mail@dasprids.de> +Date: Sat, 26 Nov 2016 14:47:45 +0100 +Subject: [PATCH] Fix unit tests on PHP 7.1 and add PHP 5.6 to test matrix + +--- + .gitignore | 2 ++ + .travis.yml | 4 +++- + composer.json | 3 +++ + tests/BaconQrCode/Common/BitArrayTest.php | 6 +++++- + tests/BaconQrCode/Common/ReedSolomonCodecTest.php | 6 +++++- + 5 files changed, 18 insertions(+), 3 deletions(-) + +diff --git a/.gitignore b/.gitignore +index 35c1bcd..c4fcf18 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,3 +1,5 @@ ++composer.lock ++vendor + nbproject + .idea + .buildpath +diff --git a/.travis.yml b/.travis.yml +index 4e554be..60690f0 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -3,7 +3,9 @@ php: + - 5.3 + - 5.4 + - 5.5 ++ - 5.6 + - 7.0 ++ - 7.1 + - hhvm + +-script: phpunit --bootstrap tests/bootstrap.php --configuration tests/phpunit.xml tests +\ No newline at end of file ++script: ./vendor/bin/phpunit --bootstrap tests/bootstrap.php --configuration tests/phpunit.xml tests +diff --git a/composer.json b/composer.json +index 47f442d..7947259 100644 +--- a/composer.json ++++ b/composer.json +@@ -22,5 +22,8 @@ + "psr-0": { + "BaconQrCode": "src/" + } ++ }, ++ "require-dev": { ++ "phpunit/phpunit": "^5.6" + } + } +diff --git a/tests/BaconQrCode/Common/BitArrayTest.php b/tests/BaconQrCode/Common/BitArrayTest.php +index 06aa4e1..81bcbce 100644 +--- a/tests/BaconQrCode/Common/BitArrayTest.php ++++ b/tests/BaconQrCode/Common/BitArrayTest.php +@@ -94,7 +94,11 @@ public function testGetNextSet4() + + public function testGetNextSet5() + { +- mt_srand(hexdec('deadbeef')); ++ if (defined('MT_RAND_PHP')) { ++ mt_srand(0xdeadbeef, MT_RAND_PHP); ++ } else { ++ mt_srand(0xdeadbeef); ++ } + + for ($i = 0; $i < 10; $i++) { + $array = new BitArray(mt_rand(1, 100)); +diff --git a/tests/BaconQrCode/Common/ReedSolomonCodecTest.php b/tests/BaconQrCode/Common/ReedSolomonCodecTest.php +index 99a6c72..604641a 100644 +--- a/tests/BaconQrCode/Common/ReedSolomonCodecTest.php ++++ b/tests/BaconQrCode/Common/ReedSolomonCodecTest.php +@@ -38,7 +38,11 @@ public static function tabProvider() + */ + public function testCodec($symbolSize, $generatorPoly, $firstRoot, $primitive, $numRoots) + { +- mt_srand(0xdeadbeef); ++ if (defined('MT_RAND_PHP')) { ++ mt_srand(0xdeadbeef, MT_RAND_PHP); ++ } else { ++ mt_srand(0xdeadbeef); ++ } + + $blockSize = (1 << $symbolSize) - 1; + $dataSize = $blockSize - $numRoots; diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..91b0fd5 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../common/Makefile + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..01b16bc --- /dev/null +++ b/composer.json @@ -0,0 +1,25 @@ +{ + "name": "bacon/bacon-qr-code", + "description": "BaconQrCode is a QR code generator for PHP.", + "license" : "BSD-2-Clause", + "homepage": "https://github.com/Bacon/BaconQrCode", + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-gd": "to generate QR code images" + }, + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "http://www.dasprids.de", + "role": "Developer" + } + ], + "autoload": { + "psr-0": { + "BaconQrCode": "src/" + } + } +} diff --git a/php-bacon-qr-code.spec b/php-bacon-qr-code.spec new file mode 100644 index 0000000..68457d3 --- /dev/null +++ b/php-bacon-qr-code.spec @@ -0,0 +1,134 @@ +# remirepo/fedora spec file for php-bacon-qr-code +# +# Copyright (c) 2017 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit 031a2ce68c5794064b49d11775b2daf45c96e21c +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner Bacon +%global gh_project BaconQrCode + +%global pk_vendor bacon +%global pk_project bacon-qr-code + +%global ns_vendor %nil +%global ns_project %{gh_project} +%global php_home %{_datadir}/php +%global with_tests 0%{!?_without_tests:1} + +Name: php-%{pk_project} +Version: 1.0.1 +Release: 1%{?dist} +Summary: QR code generator for PHP + +Group: Development/Libraries +License: BSD +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{gh_short}.tar.gz + +# upstream patch +Patch0: https://github.com/%{gh_owner}/%{gh_project}/commit/8f16a007ea94f65894c8c71e0aaeba83e0d13993.patch + +BuildArch: noarch +%if %{with_tests} +# For tests +BuildRequires: php(language) >= 5.3.3 +BuildRequires: php-gd +BuildRequires: php-reflection +BuildRequires: php-simplexml +BuildRequires: php-ctype +BuildRequires: php-iconv +BuildRequires: php-spl +BuildRequires: php-composer(phpunit/phpunit) +# Required by autoloader +BuildRequires: php-composer(fedora/autoloader) +%endif + +# From composer.json, "require": { +# "php": ">=5.3.3" +Requires: php(language) >= 5.3.3 +# From composer.json, "suggest": { +# "ext-gd": "to generate QR code images" +Requires: php-gd +# From phpcompatinfo report for version 1.0.1 +Requires: php-reflection +Requires: php-simplexml +Requires: php-ctype +Requires: php-iconv +Requires: php-spl +# Required by autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} + + +%description +BaconQrCode is a port of QR code portion of the ZXing library. +It currently only features the encoder part, but could later +receive the decoder part as well. + +As the Reed Solomon codec implementation of the ZXing library +performs quite slow in PHP, it was exchanged with the implementation +by Phil Karn. + +Autoloader: %{php_home}/%{ns_project}/autoload.php + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} +%patch0 -p1 -b .upstream + +cat << 'EOF' | tee src/%{ns_project}/autoload.php +<?php +/* Autoloader for %{name} and its dependencies */ +require_once '/usr/share/php/Fedora/Autoloader/autoload.php'; +\Fedora\Autoloader\Autoload::addPsr4('%{ns_project}\\', __DIR__); +EOF + + +%build +# Empty build section, most likely nothing required. + + +%install +: Library +mkdir -p %{buildroot}%{php_home} +cp -pr src/%{ns_project} %{buildroot}%{php_home}/%{ns_project} + + +%check +%if %{with_tests} +cd tests +cat << 'EOF' | tee bootstrap.php +<?php +require '%{buildroot}%{php_home}/%{ns_project}/autoload.php'; +EOF + +ret=0 +for cmd in php php56 php70 php71 php72; do + if which $cmd; then + $cmd %{_bindir}/phpunit --verbose || ret=1 + fi +done +exit $ret +%else +: Test suite disabled +%endif + + +%files +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc composer.json +%doc README.md +%dir %{php_home}/%{ns_vendor} + %{php_home}/%{ns_vendor}/%{ns_project} + + +%changelog +* Tue Jun 27 2017 Remi Collet <remi@remirepo.net> - 1.0.1-1 +- initial package, version 1.0.1 +- open https://github.com/Bacon/BaconQrCode/pull/29 - phpunit |