diff options
-rw-r--r-- | Autoload.php.in | 30 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | php-phpunit-phpdcd.spec | 112 | ||||
-rw-r--r-- | phpdcd-rpm.patch | 34 |
4 files changed, 134 insertions, 44 deletions
diff --git a/Autoload.php.in b/Autoload.php.in new file mode 100644 index 0000000..c7f66e0 --- /dev/null +++ b/Autoload.php.in @@ -0,0 +1,30 @@ +<?php +/* Inspired from autoload from version 0.9.3 */ + +require_once 'SebastianBergmann/FinderFacade/autoload.php'; +require_once 'SebastianBergmann/Version/autoload.php'; +require_once 'PHP/Token/Stream/Autoload.php'; +require_once 'PHP/Timer/Autoload.php'; +require_once 'Symfony/Component/Console/autoloader.php'; + +spl_autoload_register( + function ($class) + { + static $classes = NULL; + static $path = NULL; + + if ($classes === NULL) { + $classes = array( + ___CLASSLIST___ + ); + + $path = dirname(__FILE__); + } + + $cn = strtolower($class); + + if (isset($classes[$cn])) { + require $path . $classes[$cn]; + } + } +); @@ -1,4 +1,4 @@ SRCDIR := $(shell pwd) NAME := $(shell basename $(SRCDIR)) -include ../common/Makefile +include ../../../common/Makefile diff --git a/php-phpunit-phpdcd.spec b/php-phpunit-phpdcd.spec index 59b602c..a7e64f6 100644 --- a/php-phpunit-phpdcd.spec +++ b/php-phpunit-phpdcd.spec @@ -1,32 +1,51 @@ -%{!?__pear: %{expand: %%global __pear %{_bindir}/pear}} -%global pear_name phpdcd -%global channel pear.phpunit.de +%global gh_commit 10246f167713d0bd0b74540ca81e4caf30b72157 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner sebastianbergmann +%global gh_project phpdcd +%global php_home %{_datadir}/php/SebastianBergmann +%global pear_name phpdcd +%global pear_channel pear.phpunit.de +%global with_tests %{?_without_tests:0}%{!?_without_tests:1} Name: php-phpunit-phpdcd -Version: 0.9.3 +Version: 1.0.2 Release: 1%{?dist} Summary: Dead Code Detector (DCD) for PHP code Group: Development/Libraries License: BSD -URL: http://github.com/sebastianbergmann/phpdcd -Source0: http://pear.phpunit.de/get/%{pear_name}-%{version}.tgz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}.tar.gz -BuildArch: noarch -BuildRequires: php-pear >= 1:1.9.4 -BuildRequires: php-channel(%{channel}) -Requires: php-common >= 5.2.7 -Requires: php-channel(%{channel}) -Requires(post): %{__pear} -Requires(postun): %{__pear} -Requires: php-pear(pear.phpunit.de/File_Iterator) >= 1.3.0 -Requires: php-pear(pear.phpunit.de/PHP_TokenStream) >= 1.1.0 -Requires: php-pear(pear.phpunit.de/PHP_Timer) >= 1.0.1 +# Autoload template +Source1: Autoload.php.in -Requires: php-pear(components.ez.no/ConsoleTools) >= 1.6 +# Fix for RPM, use autoload +Patch0: %{gh_project}-rpm.patch -Provides: php-pear(%{channel}/%{pear_name}) = %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch +BuildRequires: php(language) >= 5.3.3 +BuildRequires: %{_bindir}/phpab +%if %{with_tests} +BuildRequires: %{_bindir}/phpunit +BuildRequires: php-phpunit-FinderFacade >= 1.1.0 +BuildRequires: php-phpunit-Version >= 1.0.3 +BuildRequires: php-symfony-console >= 2.2.0 +BuildRequires: php-phpunit-PHP-Timer >= 1.0.4 +BuildRequires: php-phpunit-PHP-TokenStream >= 1.1.3 +%endif + +# From composer.json +Requires: php(language) >= 5.3.3 +Requires: php-phpunit-FinderFacade >= 1.1.0 +Requires: php-phpunit-Version >= 1.0.3 +Requires: php-symfony-console >= 2.2.0 +Requires: php-phpunit-PHP-Timer >= 1.0.4 +Requires: php-phpunit-PHP-TokenStream >= 1.1.3 +# From phpcompatinfo report for version 1.0.2 +Requires: php-pcre +Requires: php-spl %description @@ -34,54 +53,61 @@ phpdcd is a Dead Code Detector (DCD) for PHP code. It scans a PHP project for all declared functions and methods and reports those as being "dead code" that are not called at least once. + %prep -%setup -q -c -[ -f package2.xml ] || mv package.xml package2.xml -%{__mv} package2.xml %{pear_name}-%{version}/%{name}.xml +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p1 -b .rpm %build -cd %{pear_name}-%{version} -# Empty build section, most likely nothing required. +phpab \ + --output src/Autoload.php \ + --template %{SOURCE1} \ + src %install -cd %{pear_name}-%{version} -%{__rm} -rf $RPM_BUILD_ROOT docdir -%{__pear} install --nodeps --packagingroot $RPM_BUILD_ROOT %{name}.xml +rm -rf %{buildroot} +mkdir -p %{buildroot}%{php_home} +cp -pr src %{buildroot}%{php_home}/PHPDCD + +install -D -p -m 755 phpdcd %{buildroot}%{_bindir}/phpdcd -# Clean up unnecessary files -%{__rm} -rf $RPM_BUILD_ROOT%{pear_phpdir}/.??* -# Install XML package description -%{__mkdir} -p $RPM_BUILD_ROOT%{pear_xmldir} -%{__install} -pm 644 %{name}.xml $RPM_BUILD_ROOT%{pear_xmldir} +%if %{with_tests} +%check +phpunit \ + --bootstrap src/Autoload.php \ + -d date.timezone=UTC \ + tests +%endif %clean -%{__rm} -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT %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 \ - %{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,-) -%{pear_xmldir}/%{name}.xml -%{pear_phpdir}/PHPDCD +%doc LICENSE README.md composer.json +%{php_home}/PHPDCD %{_bindir}/phpdcd %changelog +* Sun May 4 2014 Remi Collet <remi@fedoraproject.org> - 1.0.2-1 +- update to 1.0.2 +- sources from github +- run test suite during build + * Sat Mar 31 2012 Remi Collet <RPMS@FamilleCollet.com> - 0.9.3-1 - upstream 0.9.3, rebuild for remi repository diff --git a/phpdcd-rpm.patch b/phpdcd-rpm.patch new file mode 100644 index 0000000..96c27ea --- /dev/null +++ b/phpdcd-rpm.patch @@ -0,0 +1,34 @@ +diff -up ./phpdcd.rpm ./phpdcd +--- ./phpdcd.rpm 2014-05-04 09:36:58.000000000 +0200 ++++ ./phpdcd 2014-05-04 09:38:12.000000000 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env php ++#!/usr/bin/php + <?php + /** + * phpdcd +@@ -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/PHPDCD/Autoload.php'; + + $application = new SebastianBergmann\PHPDCD\CLI\Application; + $application->run(); |