diff options
-rw-r--r-- | php-symfony2-ClassLoader-tests-bootstrap.patch | 24 | ||||
-rw-r--r-- | php-symfony2-ClassLoader.spec | 70 |
2 files changed, 78 insertions, 16 deletions
diff --git a/php-symfony2-ClassLoader-tests-bootstrap.patch b/php-symfony2-ClassLoader-tests-bootstrap.patch new file mode 100644 index 0000000..cf7f67c --- /dev/null +++ b/php-symfony2-ClassLoader-tests-bootstrap.patch @@ -0,0 +1,24 @@ +--- Symfony/Component/ClassLoader/Tests/bootstrap.php 2012-09-20 03:42:06.000000000 -0400 ++++ Symfony/Component/ClassLoader/Tests/bootstrap.php 2012-10-20 21:56:18.505220891 -0400 +@@ -10,9 +10,18 @@ + */ + + spl_autoload_register(function ($class) { +- if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\ClassLoader')) { +- if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\ClassLoader')).'.php')) { +- require_once $file; ++ if (0 === strpos(ltrim($class, '/'), 'Symfony\Component')) { ++ $file = substr(str_replace('\\', '/', $class), strlen('Symfony\Component')).'.php'; ++ if (file_exists(__DIR__.'/../..'.$file)) { ++ // Load from source tree ++ require_once __DIR__.'/../..'.$file; ++ } else { ++ try { ++ // Try loading from incude path ++ require_once 'Symfony/Component'.$file; ++ } catch (Exception $e) { ++ // Fail silently so class not found fatal error still raised ++ } + } + } + }); diff --git a/php-symfony2-ClassLoader.spec b/php-symfony2-ClassLoader.spec index 6c83d61..6600546 100644 --- a/php-symfony2-ClassLoader.spec +++ b/php-symfony2-ClassLoader.spec @@ -1,11 +1,12 @@ -%{!?pear_metadir: %global pear_metadir %{pear_phpdir}} %{!?__pear: %{expand: %%global __pear %{_bindir}/pear}} +%{!?pear_metadir: %global pear_metadir %{pear_phpdir}} %global pear_channel pear.symfony.com %global pear_name %(echo %{name} | sed -e 's/^php-symfony2-//' -e 's/-/_/g') +%global php_min_ver 5.3.3 Name: php-symfony2-ClassLoader -Version: 2.1.2 +Version: 2.1.3 Release: 1%{?dist} Summary: Symfony2 %{pear_name} Component @@ -13,20 +14,30 @@ Group: Development/Libraries License: MIT URL: http://symfony.com/doc/current/components/class_loader.html Source0: http://%{pear_channel}/get/%{pear_name}-%{version}.tgz +Patch0: %{name}-tests-bootstrap.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: php-pear(PEAR) BuildRequires: php-channel(%{pear_channel}) -# For tests +# Test requires +BuildRequires: php(language) >= %{php_min_ver} BuildRequires: php-pear(pear.phpunit.de/PHPUnit) - -Requires: php-common >= 5.3.2 +BuildRequires: php-pear(%{pear_channel}/Finder) >= 2.1.0 +# Test requires: phpci +BuildRequires: php-date +BuildRequires: php-pcre +BuildRequires: php-spl +BuildRequires: php-reflection +BuildRequires: php-tokenizer + +Requires: php(language) >= 5.3.2 Requires: php-pear(PEAR) Requires: php-channel(%{pear_channel}) Requires(post): %{__pear} Requires(postun): %{__pear} # phpci requires +Requires: php-date Requires: php-pcre Requires: php-spl Requires: php-reflection @@ -53,16 +64,27 @@ If your classes and the third-party libraries you use for your project follow these standards, the Symfony2 auto-loader is the only auto-loader you will ever need. -Optional dependency: APC +Optional dependencies: APC, XCache %prep %setup -q -c -# Hum... -sed -e '/CHANGELOG.md/s/role="php"/role="doc"/' \ +# Patches +cd %{pear_name}-%{version} +%patch0 -p0 +cd .. + +# Modify PEAR package.xml file: +# - Remove .gitignore file +# - Change role from "php" to "doc" for CHANGELOG.md file +# - Change role from "php" to "test" for all test files +# - Remove md5sum from bootsrap.php file since it was patched +sed -e '/.gitignore/d' \ + -e '/CHANGELOG.md/s/role="php"/role="doc"/' \ -e '/phpunit.xml.dist/s/role="php"/role="test"/' \ -e '/Tests/s/role="php"/role="test"/' \ + -e '/bootstrap.php/s/md5sum="[^"]*"\s*//' \ -e '/.gitignore/d' \ -i package.xml @@ -71,24 +93,24 @@ mv package.xml %{pear_name}-%{version}/%{name}.xml %build -# Empty build section, nothing required. +# Empty build section, nothing required %install cd %{pear_name}-%{version} -%{__pear} install --nodeps --packagingroot $RPM_BUILD_ROOT %{name}.xml +%{__pear} install --nodeps --packagingroot %{buildroot} %{name}.xml # Clean up unnecessary files -rm -rf $RPM_BUILD_ROOT%{pear_metadir}/.??* +rm -rf %{buildroot}%{pear_metadir}/.??* # Install XML package description -mkdir -p $RPM_BUILD_ROOT%{pear_xmldir} -install -pm 644 %{name}.xml $RPM_BUILD_ROOT%{pear_xmldir} +mkdir -p %{buildroot}%{pear_xmldir} +install -pm 644 %{name}.xml %{buildroot}%{pear_xmldir} %check -cd %{pear_name}-%{version}/Symfony/Component/%{pear_name}/Tests -phpunit --bootstrap bootstrap.php . +cd %{pear_name}-%{version}/Symfony/Component/%{pear_name} +%{_bindir}/phpunit %post @@ -110,10 +132,26 @@ fi %dir %{pear_phpdir}/Symfony %dir %{pear_phpdir}/Symfony/Component %{pear_phpdir}/Symfony/Component/%{pear_name} - %{pear_testdir}/%{pear_name} +%{pear_testdir}/%{pear_name} %changelog +* Tue Oct 30 2012 Remi Collet <RPMS@FamilleCollet.com> 2.1.3-1 +- sync with rawhide, update to 2.1.3 + +* Mon Oct 29 2012 Shawn Iwinski <shawn.iwinski@gmail.com> 2.1.2-2 +- Added "%%global pear_metadir" and usage in %%install +- Changed RPM_BUILD_ROOT to %%{buildroot} + +* Sat Oct 20 2012 Shawn Iwinski <shawn.iwinski@gmail.com> 2.1.2-1 +- Updated to upstream version 2.1.2 +- Updated description +- PHP minimum version 5.3.3 instead of 5.3.2 +- Added php-date require +- Added PEAR package.xml modifications +- Added patch for tests' bootstrap.php +- Added tests (%%check) + * Sat Oct 6 2012 Remi Collet <RPMS@FamilleCollet.com> 2.1.2-1 - update to 2.1.2 |