diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | php-phpspec.spec | 146 | ||||
| -rw-r--r-- | phpspec-autoload.php | 16 | ||||
| -rw-r--r-- | phpspec-rpm.patch | 34 | 
4 files changed, 200 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..13af741 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + diff --git a/php-phpspec.spec b/php-phpspec.spec new file mode 100644 index 0000000..c691df1 --- /dev/null +++ b/php-phpspec.spec @@ -0,0 +1,146 @@ +# spec file for php-phpspec +# +# Copyright (c) 2015 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit    66a1df93099282b1514e9e001fcf6e9393f7783d +%global gh_short     %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner     phpspec +%global gh_project   phpspec + +Name:           php-phpspec +Version:        2.1.1 +Release:        1%{?dist} +Summary:        Specification-oriented BDD framework for PHP 5.3+ + +Group:          Development/Libraries +License:        MIT +URL:            https://github.com/%{gh_owner}/%{gh_project} +Source0:        https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}.tar.gz + +Source1:        %{gh_project}-autoload.php + +# Use our autoloader +Patch0:         %{gh_project}-rpm.patch + +BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch:      noarch +BuildRequires:  %{_bindir}/phpunit +BuildRequires:  php-composer(phpspec/prophecy)         >= 1.1 +BuildRequires:  php-composer(phpspec/php-diff)         >= 1.0.0 +BuildRequires:  php-composer(sebastian/exporter)       >= 1.0 +BuildRequires:  php-composer(symfony/console)          >= 2.3.0 +BuildRequires:  php-composer(symfony/event-dispatcher) >= 2.1 +BuildRequires:  php-composer(symfony/finder)           >= 2.1 +BuildRequires:  php-composer(symfony/process)          >= 2.1 +BuildRequires:  php-composer(symfony/yaml)             >= 2.1 +BuildRequires:  php-composer(doctrine/instantiator)    >= 1.0.1 +BuildRequires:  php-composer(symfony/class-loader) +# From composer.json, require-dev +BuildRequires:  php-composer(symfony/filesystem)       >= 2.1 + +# From composer.json, require +#         "php":                      ">=5.3.3", +#         "phpspec/prophecy":         "~1.1", +#         "phpspec/php-diff":         "~1.0.0", +#         "sebastian/exporter":       "~1.0", +#         "symfony/console":          "~2.3", +#         "symfony/event-dispatcher": "~2.1", +#         "symfony/finder":           "~2.1", +#         "symfony/process":          "~2.1", +#         "symfony/yaml":             "~2.1", +#         "doctrine/instantiator":    "~1.0,>=1.0.1" +Requires:       php(language) >= 5.3.3 +Requires:       php-composer(phpspec/prophecy)         >= 1.1 +Requires:       php-composer(phpspec/prophecy)         <  2 +Requires:       php-composer(phpspec/php-diff)         >= 1.0.0 +Requires:       php-composer(phpspec/php-diff)         <  2 +Requires:       php-composer(sebastian/exporter)       >= 1.0 +Requires:       php-composer(sebastian/exporter)       <  2 +Requires:       php-composer(symfony/console)          >= 2.3.0 +Requires:       php-composer(symfony/console)          <  3 +Requires:       php-composer(symfony/event-dispatcher) >= 2.1 +Requires:       php-composer(symfony/event-dispatcher) <  3 +Requires:       php-composer(symfony/finder)           >= 2.1 +Requires:       php-composer(symfony/finder)           <  3 +Requires:       php-composer(symfony/process)          >= 2.1 +Requires:       php-composer(symfony/process)          <  3 +Requires:       php-composer(symfony/yaml)             >= 2.1 +Requires:       php-composer(symfony/yaml)             <  3 +Requires:       php-composer(doctrine/instantiator)    >= 1.0.1 +Requires:       php-composer(doctrine/instantiator)    <  2 +# For our autoloader +Requires:       php-composer(symfony/class-loader) +# From phpcompatinfo report +Requires:       php-pcntl +Requires:       php-pcre +Requires:       php-reflection +Requires:       php-spl +Requires:       php-tokenizer + +# Composer +Provides:       php-composer(phpspec/phpspec) = %{version} +# The application +Provides:       phpspec = %{version} + + +%description +phpspec is a tool which can help you write clean and working PHP code +using behaviour driven development or BDD. BDD is a technique derived +from test-first development. + +BDD is a technique used at story level and spec level. phpspec is a tool +for use at the spec level or SpecBDD. The technique is to first use a tool +like phpspec to describe the behaviour of an object you are about to write. +Next you write just enough code to meet that specification and finally you +refactor this code. + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p0 -b .rpm + +cp %{SOURCE1} src/PhpSpec/autoload.php + + +%build +# Nothing + + +%install +# No namespace, so use a package specific dir +rm -rf             %{buildroot} +mkdir -p           %{buildroot}%{_datadir}/php +cp -pr src/PhpSpec %{buildroot}%{_datadir}/php/PhpSpec + +install -Dpm755 bin/phpspec %{buildroot}%{_bindir}/phpspec + + +%check +%{_bindir}/php \ +  -d include_path=.:%{buildroot}%{_datadir}/php:/usr/share/php \ +  bin/phpspec \ +  run --format pretty --verbose --no-ansi + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc README.* CHANGES.* +%doc composer.json +%{_bindir}/phpspec +%{_datadir}/php/PhpSpec + + +%changelog +* Tue Feb 17 2015 Remi Collet <remi@fedoraproject.org> - 2.1.1-1 +- initial package
\ No newline at end of file diff --git a/phpspec-autoload.php b/phpspec-autoload.php new file mode 100644 index 0000000..fff41bc --- /dev/null +++ b/phpspec-autoload.php @@ -0,0 +1,16 @@ +<?php +require_once 'phpspec/php-diff/autoload.php'; +require_once 'Prophecy/autoload.php'; + +$vendorDir = '/usr/share/php'; +require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php'; +use Symfony\Component\ClassLoader\UniversalClassLoader; + +$loader = new UniversalClassLoader(); +$loader->registerNamespaces(array( +    'Doctrine\\Instantiator'              => $vendorDir, +    'SebastianBergmann'                   => $vendorDir, +    'Symfony\\Component'                  => $vendorDir, +    'PhpSpec'                             => dirname(__DIR__), +)); +$loader->register(); diff --git a/phpspec-rpm.patch b/phpspec-rpm.patch new file mode 100644 index 0000000..8daf1ef --- /dev/null +++ b/phpspec-rpm.patch @@ -0,0 +1,34 @@ +diff -up bin/phpspec.rpm bin/phpspec +--- bin/phpspec.rpm	2015-01-09 14:21:45.000000000 +0100 ++++ bin/phpspec	2015-02-17 15:18:53.913872436 +0100 +@@ -1,26 +1,13 @@ +-#!/usr/bin/env php ++#!/usr/bin/php + <?php +  + define('PHPSPEC_VERSION', '2.1.1'); +  +-if (is_file($autoload = getcwd() . '/vendor/autoload.php')) { +-    require $autoload; +-} elseif (is_file($autoload = getcwd() . '/../../autoload.php')) { +-    require $autoload; ++if (!ini_get('date.timezone')) { ++    ini_set('date.timezone', 'UTC'); + } +  +-if (is_file($autoload = __DIR__ . '/../vendor/autoload.php')) { +-    require($autoload); +-} elseif (is_file($autoload = __DIR__ . '/../../../autoload.php')) { +-    require($autoload); +-} else { +-    fwrite(STDERR, +-        'You must set up the project dependencies, run the following commands:' . PHP_EOL . +-        'curl -s http://getcomposer.org/installer | php' . PHP_EOL . +-        'php composer.phar install' . PHP_EOL +-    ); +-    exit(1); +-} ++require_once 'PhpSpec/autoload.php'; +  + $app = new PhpSpec\Console\Application(PHPSPEC_VERSION); + $app->run();  | 
