From 853095a7391703e9ef3f6a1e1ca7a3ee8319097e Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 18 Jul 2016 11:05:39 +0200 Subject: php-phpspec: 3.0.0 --- composer-dev.json | 68 +++++++++++++++ php-phpspec-dev.spec | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++ phpspec-3-rpm.patch | 39 +++++++++ 3 files changed, 334 insertions(+) create mode 100644 composer-dev.json create mode 100644 php-phpspec-dev.spec create mode 100644 phpspec-3-rpm.patch diff --git a/composer-dev.json b/composer-dev.json new file mode 100644 index 0000000..121e958 --- /dev/null +++ b/composer-dev.json @@ -0,0 +1,68 @@ +{ + "name": "phpspec/phpspec", + "description": "Specification-oriented BDD framework for PHP 5.6+", + "keywords": ["BDD", "SpecBDD", "TDD", "spec", "specification", "tests", "testing"], + "homepage": "http://phpspec.net/", + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "homepage": "http://marcelloduarte.net/" + }, + { + "name": "Ciaran McNulty", + "homepage": "https://ciaranmcnulty.com/" + } + ], + + "require": { + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.5", + "phpspec/php-diff": "^1.0.0", + "sebastian/exporter": "^1.0", + "symfony/console": "^2.7 || ^3.0", + "symfony/event-dispatcher": "^2.7 || ^3.0", + "symfony/process": "^2.7 || ^3.0", + "symfony/finder": "^2.7 || ^3.0", + "symfony/yaml": "^2.7 || ^3.0", + "doctrine/instantiator": "^1.0.1", + "ext-tokenizer": "*" + }, + + "require-dev": { + "behat/behat": "^3.1", + "symfony/filesystem": "^3.0", + "phpunit/phpunit": "^5.3", + "ciaranmcnulty/versionbasedtestskipper": "^0.2.1" + }, + + "suggest": { + "phpspec/nyan-formatters": "~1.0 – Adds Nyan formatters" + }, + + "autoload": { + "psr-0": { + "PhpSpec": "src/" + } + }, + + "autoload-dev": { + "psr-0": { + "spec\\PhpSpec": "." + } + }, + + "bin": ["bin/phpspec"], + + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + } +} diff --git a/php-phpspec-dev.spec b/php-phpspec-dev.spec new file mode 100644 index 0000000..707e32f --- /dev/null +++ b/php-phpspec-dev.spec @@ -0,0 +1,227 @@ +# remirepo/fedora spec file for php-phpspec +# +# Copyright (c) 2015-2016 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit cb8b387a8f8d66d76d8638f98877b1904f97fdbf +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner phpspec +%global gh_project phpspec +#global prever beta3 + +Name: php-phpspec +Version: 3.0.0 +Release: 1%{?dist} +Summary: Specification-oriented BDD framework for PHP + +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}%{?prever}-%{gh_short}.tar.gz + +Source1: %{gh_project}-autoload.php + +# Use our autoloader +Patch0: %{gh_project}-3-rpm.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch +BuildRequires: php-composer(phpspec/prophecy) >= 1.4 +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.6 +BuildRequires: php-composer(symfony/yaml) >= 2.1 +BuildRequires: php-composer(doctrine/instantiator) >= 1.0.1 +# From composer.json, require-dev +# "behat/behat": "^3.1", +# "symfony/filesystem": "^3.0", +# "phpunit/phpunit": "^5.3", +# "ciaranmcnulty/versionbasedtestskipper": "^0.2.1" +BuildRequires: php-composer(symfony/filesystem) >= 2.1 +BuildRequires: php-composer(phpunit/phpunit) >= 5.3 +# For our autoloader +BuildRequires: php-composer(symfony/class-loader) + +# From composer.json, require +# "php": "^5.6 || ^7.0", +# "phpspec/prophecy": "^1.5", +# "phpspec/php-diff": "^1.0.0", +# "sebastian/exporter": "^1.0", +# "symfony/console": "^2.7 || ^3.0", +# "symfony/event-dispatcher": "^2.7 || ^3.0", +# "symfony/process": "^2.7 || ^3.0", +# "symfony/finder": "^2.7 || ^3.0", +# "symfony/yaml": "^2.7 || ^3.0", +# "doctrine/instantiator": "^1.0.1" +# "ext-tokenizer": "*" + +Requires: php(language) >= 5.6 +Requires: php-composer(phpspec/prophecy) >= 1.5 +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.7 +Requires: php-composer(symfony/console) < 4 +Requires: php-composer(symfony/event-dispatcher) >= 2.7 +Requires: php-composer(symfony/event-dispatcher) < 4 +Requires: php-composer(symfony/finder) >= 2.7 +Requires: php-composer(symfony/finder) < 4 +Requires: php-composer(symfony/process) >= 2.7 +Requires: php-composer(symfony/process) < 4 +Requires: php-composer(symfony/yaml) >= 2.7 +Requires: php-composer(symfony/yaml) < 4 +Requires: php-composer(doctrine/instantiator) >= 1.0.1 +Requires: php-composer(doctrine/instantiator) < 2 +Requires: php-tokenizer +# For our autoloader +Requires: php-composer(symfony/class-loader) +# From phpcompatinfo report +Requires: php-pcntl +Requires: php-pcre +Requires: php-reflection +Requires: php-spl + +# 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 +export LANG=en_GB.utf8 + +# Ignore this test which use bossa/phpspec2-expect +rm spec/PhpSpec/Message/CurrentExampleTrackerSpec.php + +# remirepo:26 +run=0 +if which php56; then + php56 \ + -d include_path=.:%{buildroot}%{_datadir}/php \ + bin/phpspec \ + run --format pretty --verbose --no-ansi + + php56 %{_bindir}/phpunit \ + --verbose \ + --bootstrap %{buildroot}%{_datadir}/php/PhpSpec/autoload.php + + run=1 +fi +if which php70; then + php71 \ + -d include_path=.:%{buildroot}%{_datadir}/php \ + bin/phpspec \ + run --format pretty --verbose --no-ansi + + php71 %{_bindir}/phpunit \ + --verbose \ + --bootstrap %{buildroot}%{_datadir}/php/PhpSpec/autoload.php + + run=1 +fi +if [ $run -eq 0 ]; then +%{_bindir}/php \ + -d include_path=.:%{buildroot}%{_datadir}/php \ + bin/phpspec \ + run --format pretty --verbose --no-ansi + +%{_bindir}/phpunit \ + --verbose \ + --bootstrap %{buildroot}%{_datadir}/php/PhpSpec/autoload.php +# remirepo:2 +fi + +%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 +* Mon Jul 18 2016 Remi Collet - 3.0.0-1 +- update to 3.0.0 +- raise dependency on php ^5.6 || ^7.0 +- raise dependency on phpspec/prophecy ^1.5 +- raise dependency on symfony/console ^2.7 || ^3.0 + +* Mon Jul 18 2016 Remi Collet - 2.5.1-1 +- update to 2.5.1 + +* Mon Mar 21 2016 Remi Collet - 2.5.0-1 +- update to 2.5.0 + +* Sat Jan 2 2016 Remi Collet - 2.4.1-1 +- update to 2.4.1 + +* Sun Nov 29 2015 Remi Collet - 2.4.0-1 +- update to 2.4.0 +- allow to use symfony 3.0 + +* Wed Oct 28 2015 Remi Collet - 2.3.0-1 +- update to 2.3.0 + +* Thu Aug 13 2015 Remi Collet - 2.3.0-0.1.beta1 +- update to 2.3.0beta3 + +* Mon Jun 29 2015 Remi Collet - 2.2.1-3 +- switch to $fedoraClassLoader autoloader +- ensure /usr/share/php is in include_path + +* Sat May 30 2015 Remi Collet - 2.2.1-1 +- update to 2.2.1 + +* Sun Apr 19 2015 Remi Collet - 2.2.0-1 +- update to 2.2.0 +- raise dependency on phpspec/prophecy 1.4 + +* Tue Feb 17 2015 Remi Collet - 2.1.1-1 +- initial package diff --git a/phpspec-3-rpm.patch b/phpspec-3-rpm.patch new file mode 100644 index 0000000..921d82e --- /dev/null +++ b/phpspec-3-rpm.patch @@ -0,0 +1,39 @@ +diff -up bin/phpspec.rpm bin/phpspec +--- bin/phpspec.rpm 2016-07-18 10:56:02.330062305 +0200 ++++ bin/phpspec 2016-07-18 10:57:56.042682157 +0200 +@@ -3,24 +3,20 @@ + + call_user_func(function ($version) { + +- 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); ++ // Ensure correct include_path for SCL ++ $inc = get_include_path(); ++ $dirs = explode(':', $inc); ++ if (!in_array('/usr/share/php', $dirs)) { ++ $dirs[] = '/usr/share/php'; ++ set_include_path(implode(':', $dirs)); + } ++ unset ($inc, $dirs); ++ ++ require_once 'PhpSpec/autoload.php'; + + $app = new PhpSpec\Console\Application($version); + $app->run(); -- cgit