summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--autoload.php.in28
-rw-r--r--php-phpunit-phpcov.spec100
-rw-r--r--phpcov-rpm.patch27
3 files changed, 116 insertions, 39 deletions
diff --git a/autoload.php.in b/autoload.php.in
new file mode 100644
index 0000000..f4358a0
--- /dev/null
+++ b/autoload.php.in
@@ -0,0 +1,28 @@
+<?php
+/* Inspired from autoload from version 1.2.0 */
+
+require 'PHPUnit/Autoload.php';
+require 'Symfony/Component/Console/autoloader.php';
+require 'SebastianBergmann/FinderFacade/autoload.php';
+/*
+already required in PHPUnit
+require 'PHP/CodeCoverage/Autoload.php';
+require 'SebastianBergmann/Diff/autoload.php';
+require 'SebastianBergmann/Version/autoload.php';
+*/
+
+spl_autoload_register(
+ function($class) {
+ static $classes = null;
+ if ($classes === null) {
+ $classes = array(
+ ___CLASSLIST___
+ );
+ }
+ $cn = strtolower($class);
+ if (isset($classes[$cn])) {
+ require ___BASEDIR___$classes[$cn];
+ }
+ }
+);
+
diff --git a/php-phpunit-phpcov.spec b/php-phpunit-phpcov.spec
index 29ed92c..2894413 100644
--- a/php-phpunit-phpcov.spec
+++ b/php-phpunit-phpcov.spec
@@ -6,35 +6,54 @@
#
# Please, preserve the changelog entries
#
-%{!?pear_metadir: %global pear_metadir %{pear_phpdir}}
+%global gh_commit 5e32a1355826e5e2e0e99b4e2d0762867f4a8181
+%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
+%global gh_owner sebastianbergmann
+%global gh_project phpcov
+%global php_home %{_datadir}/php/SebastianBergmann
%global pear_name phpcov
%global pear_channel pear.phpunit.de
+# not Ready
+%global with_tests %{?_with_tests:1}%{!?_with_tests:0}
+
Name: php-phpunit-phpcov
-Version: 1.1.0
+Version: 2.0.0
Release: 1%{?dist}
Summary: TextUI front-end for PHP_CodeCoverage
Group: Development/Libraries
License: BSD
-URL: https://github.com/sebastianbergmann/phpcov
-Source0: http://%{pear_channel}/get/%{pear_name}-%{version}.tgz
+URL: https://github.com/%{gh_owner}/%{gh_project}
+Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}.tar.gz
+
+# Autoload template
+Source1: autoload.php.in
+
+# Fix autoload for RPM
+Patch0: %{gh_project}-rpm.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: php(language) >= 5.3.3
-BuildRequires: php-pear(PEAR) >= 1.9.4
-BuildRequires: php-channel(%{pear_channel})
-
-Requires(post): %{__pear}
-Requires(postun): %{__pear}
-# from package.xml
+BuildRequires: %{_bindir}/phpab
+%if %{with_tests}
+BuildRequires: php-phpunit-PHPUnit >= 4.0
+BuildRequires: php-phpunit-PHP-CodeCoverage >= 2.0
+BuildRequires: php-phpunit-diff >= 1.1
+BuildRequires: php-phpunit-FinderFacade >= 1.1
+BuildRequires: php-phpunit-Version >= 1.0.3
+BuildRequires: php-symfony-console >= 2.2
+%endif
+
+# from composer.json
Requires: php(language) >= 5.3.3
-Requires: php-pear(PEAR) >= 1.9.4
-Requires: php-channel(%{pear_channel})
-Requires: php-pear(components.ez.no/ConsoleTools) >= 1.6
-Requires: php-pear(%{pear_channel}/PHPUnit) >= 3.7.0
-Requires: php-pear(%{pear_channel}/PHP_CodeCoverage) >= 1.2.0
+Requires: php-phpunit-PHPUnit >= 4.0
+Requires: php-phpunit-PHP-CodeCoverage >= 2.0
+Requires: php-phpunit-diff >= 1.1
+Requires: php-phpunit-FinderFacade >= 1.1
+Requires: php-phpunit-Version >= 1.0.3
+Requires: php-symfony-console >= 2.2
# from phpcompatinfo report for version 1.1.0
Requires: php-reflection
Requires: php-spl
@@ -49,28 +68,33 @@ TextUI front-end for PHP_CodeCoverage.
%prep
-%setup -q -c
+%setup -q -n %{gh_project}-%{gh_commit}
-cd %{pear_name}-%{version}
-mv ../package.xml %{name}.xml
+%patch0 -p0 -b .rpm
%build
-cd %{pear_name}-%{version}
-# Empty build section, most likely nothing required.
+phpab \
+ --output src/autoload.php \
+ --template %{SOURCE1} \
+ src
%install
-rm -rf %{buildroot}
-cd %{pear_name}-%{version}
-%{__pear} install --nodeps --packagingroot %{buildroot} %{name}.xml
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{php_home}
+cp -pr src %{buildroot}%{php_home}/PHPCOV
+
+install -D -p -m 755 phpcov %{buildroot}%{_bindir}/phpcov
-# Clean up unnecessary files
-rm -rf %{buildroot}%{pear_metadir}/.??*
-# Install XML package description
-mkdir -p %{buildroot}%{pear_xmldir}
-install -pm 644 %{name}.xml %{buildroot}%{pear_xmldir}
+%if %{with_tests}
+%check
+phpunit \
+ --bootstrap src/autoload.php \
+ -d date.timezone=UTC \
+ tests
+%endif
%clean
@@ -78,25 +102,23 @@ rm -rf %{buildroot}
%post
-%{__pear} install --nodeps --soft --force --register-only \
- %{pear_xmldir}/%{name}.xml >/dev/null || :
-
-%postun
-if [ $1 -eq 0 ] ; then
- %{__pear} uninstall --nodeps --ignore-errors --register-only \
- %{pear_channel}/%{pear_name} >/dev/null || :
+if [ -x %{_bindir}/pear ]; then
+ %{_bindir}/pear uninstall --nodeps --ignore-errors --register-only \
+ %{pear_channel}/%{pear_name} >/dev/null || :
fi
%files
%defattr(-,root,root,-)
-%doc %{pear_docdir}/%{pear_name}
-%{pear_xmldir}/%{name}.xml
-%dir %{pear_phpdir}/SebastianBergmann
-%{pear_phpdir}/SebastianBergmann/PHPCOV
+%doc LICENSE README.md composer.json
+%{php_home}/PHPCOV
%{_bindir}/phpcov
%changelog
+* Wed Apr 30 2014 Remi Collet <remi@fedoraproject.org> - 2.0.0-1
+- update to 2.0.0
+- sources from github
+
* Thu Sep 12 2013 Remi Collet <remi@fedoraproject.org> - 1.1.0-1
- initial package
diff --git a/phpcov-rpm.patch b/phpcov-rpm.patch
new file mode 100644
index 0000000..062caeb
--- /dev/null
+++ b/phpcov-rpm.patch
@@ -0,0 +1,27 @@
+--- phpcov.rpm 2014-04-30 15:53:58.000000000 +0200
++++ phpcov 2014-04-30 15:55:08.000000000 +0200
+@@ -42,23 +42,7 @@
+ * @since File available since Release 1.0.0
+ */
+
+-$loaded = false;
+-
+-foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
+- if (file_exists($file)) {
+- require $file;
+- $loaded = true;
+- break;
+- }
+-}
+-
+-if (!$loaded) {
+- die(
+- 'You need to set up the project dependencies using the following commands:' . PHP_EOL .
+- 'wget http://getcomposer.org/composer.phar' . PHP_EOL .
+- 'php composer.phar install' . PHP_EOL
+- );
+-}
++require 'SebastianBergmann/PHPCOV/autoload.php';
+
+ $application = new SebastianBergmann\PHPCOV\Application;
+ $application->run();