summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--php-jsonlint-bin-without-composer-autoloader.patch35
-rw-r--r--php-jsonlint.spec76
2 files changed, 90 insertions, 21 deletions
diff --git a/php-jsonlint-bin-without-composer-autoloader.patch b/php-jsonlint-bin-without-composer-autoloader.patch
new file mode 100644
index 0000000..fdad739
--- /dev/null
+++ b/php-jsonlint-bin-without-composer-autoloader.patch
@@ -0,0 +1,35 @@
+diff --git a/bin/jsonlint b/bin/jsonlint
+index 1b9272a..c15cfa6 100755
+--- a/bin/jsonlint
++++ b/bin/jsonlint
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env php
++#!/usr/bin/php
+ <?php
+
+ /*
+@@ -10,20 +10,10 @@
+ * file that was distributed with this source code.
+ */
+
+-function includeIfExists($file)
+-{
+- if (file_exists($file)) {
+- return include $file;
+- }
+-}
+-
+-if ((!$loader = includeIfExists(__DIR__.'/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__.'/../../../autoload.php'))) {
+- $msg = 'You must set up the project dependencies, run the following commands:'.PHP_EOL.
+- 'curl -sS https://getcomposer.org/installer | php'.PHP_EOL.
+- 'php composer.phar install'.PHP_EOL;
+- fwrite(STDERR, $msg);
+- exit(1);
+-}
++spl_autoload_register(function ($class) {
++ $src = str_replace('\\', '/', $class).'.php';
++ @include_once $src;
++});
+
+ use Seld\JsonLint\JsonParser;
+
diff --git a/php-jsonlint.spec b/php-jsonlint.spec
index 870809d..1dabed0 100644
--- a/php-jsonlint.spec
+++ b/php-jsonlint.spec
@@ -1,13 +1,29 @@
+#
+# RPM spec file for php-jsonlint
+#
+# Copyright (c) 2013-2014 Shawn Iwinski <shawn.iwinski@gmail.com>
+# Remi Collet <remi@fedoraproject.org>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
%global github_owner Seldaek
%global github_name jsonlint
-%global github_version 1.1.2
-%global github_commit 7cd4c4965e17e6e4c07f26d566619a4c76f8c672
+%global github_version 1.2.0
+%global github_commit 9cae56dbe34f4392e7d0f559474df33749a39f8d
+# "php": ">=5.3.0"
%global php_min_ver 5.3.0
+# Build using "--without tests" to disable tests
+%global with_tests %{?_without_tests:0}%{!?_without_tests:1}
+
Name: php-%{github_name}
Version: %{github_version}
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: JSON Lint for PHP
Group: Development/Libraries
@@ -15,19 +31,21 @@ License: MIT
URL: https://github.com/%{github_owner}/%{github_name}
Source0: %{url}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz
-# Upstream
-Patch0: %{github_name}-phpunit.patch
+# Bin usage without Composer autoloader
+Patch0: %{name}-bin-without-composer-autoloader.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-# For tests
+%if %{with_tests}
+# For tests: composer.json
BuildRequires: php(language) >= %{php_min_ver}
BuildRequires: php-phpunit-PHPUnit
-# For tests: phpcompatinfo
+# For tests: phpcompatinfo (computed from version 1.2.0)
BuildRequires: php-pcre
+%endif
Requires: php(language) >= %{php_min_ver}
-# phpcompatinfo
+# phpcompatinfo (computed from version 1.2.0)
Requires: php-pcre
Provides: php-composer(seld/jsonlint) = %{version}
@@ -45,29 +63,39 @@ This library is a port of the JavaScript jsonlint
%patch0 -p1
-# Create PSR-0 autoloader for tests
-( cat <<'AUTOLOAD'
-<?php
-spl_autoload_register(function ($class) {
- $src = str_replace('\\', '/', $class).'.php';
- require_once $src;
-});
-AUTOLOAD
-) > autoload.php
-
%build
# Empty build section, nothing to build
%install
-mkdir -p -m 755 %{buildroot}%{_datadir}/php/Seld
+# Lib
+mkdir -p %{buildroot}%{_datadir}/php/Seld
cp -rp src/Seld/JsonLint %{buildroot}%{_datadir}/php/Seld/
+# Bin
+mkdir -p %{buildroot}%{_bindir}
+install -pm 0755 bin/jsonlint %{buildroot}%{_bindir}/
+
%check
-%{_bindir}/phpunit --bootstrap=./autoload.php \
- --include-path=./src:./tests .
+%if %{with_tests}
+# Create autoloader
+cat > autoload.php <<'AUTOLOAD'
+<?php
+spl_autoload_register(function ($class) {
+ $src = str_replace('\\', '/', $class).'.php';
+ @include_once $src;
+});
+AUTOLOAD
+
+# Create PHPUnit config w/ colors turned off
+sed 's/colors\s*=\s*"true"/colors="false"/' phpunit.xml.dist > phpunit.xml
+
+%{_bindir}/phpunit --bootstrap=./autoload.php --include-path=./src:./tests .
+%else
+: Tests skipped
+%endif
%files
@@ -75,9 +103,15 @@ cp -rp src/Seld/JsonLint %{buildroot}%{_datadir}/php/Seld/
%doc LICENSE *.mdown composer.json
%dir %{_datadir}/php/Seld
%{_datadir}/php/Seld/JsonLint
+%{_bindir}/jsonlint
%changelog
+* Wed Aug 20 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.2.0-1
+- Updated to 1.2.0 (BZ #1124228)
+- Added option to build without tests ("--without tests")
+- Added bin
+
* Mon Jun 9 2014 Remi Collet <remi@fedoraproject.org> - 1.1.2-2
- fix FTBFS, include path during test
- upstream patch for latest PHPUnit