From 2ae8e4de88eaba5bc4790a393e507d7cca33a039 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 30 May 2014 17:44:59 +0200 Subject: php-doctrine-orm: fix for latest PHP --- php-doctrine-orm-upstream.patch | 31 +++++++++++++++++++++++++++++++ php-doctrine-orm.spec | 14 +++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 php-doctrine-orm-upstream.patch diff --git a/php-doctrine-orm-upstream.patch b/php-doctrine-orm-upstream.patch new file mode 100644 index 0000000..4754af4 --- /dev/null +++ b/php-doctrine-orm-upstream.patch @@ -0,0 +1,31 @@ +From 93c276d059b40b0783ba9a24549a8b135e257693 Mon Sep 17 00:00:00 2001 +From: Renaud LITTOLFF +Date: Fri, 30 May 2014 10:43:11 +0200 +Subject: [PATCH] Fix the "Erroneous data format for unserializing" error + message + +--- + lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +index ba7a2d2..5fe8587 100644 +--- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php ++++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +@@ -908,7 +908,12 @@ public function __sleep() + public function newInstance() + { + if ($this->_prototype === null) { +- $this->_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($this->name), $this->name)); ++ if (version_compare(PHP_VERSION, '5.4') >= 0) { ++ $rc = new \ReflectionClass($this->name); ++ $this->_prototype = $rc->newInstanceWithoutConstructor(); ++ } else { ++ $this->_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($this->name), $this->name)); ++ } + } + + return clone $this->_prototype; +-- +1.9.3 + diff --git a/php-doctrine-orm.spec b/php-doctrine-orm.spec index ccac8bc..c7c40cf 100644 --- a/php-doctrine-orm.spec +++ b/php-doctrine-orm.spec @@ -18,7 +18,7 @@ Name: php-%{github_owner}-orm Version: %{github_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: Doctrine Object-Relational-Mapper (ORM) Group: Development/Libraries @@ -30,6 +30,9 @@ Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_co # 2) Auto-load using Doctrine\Common\ClassLoader Patch0: %{name}-bin.patch +# Upstream fix for latest PHP +Patch1: %{name}-upstream.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch @@ -79,9 +82,15 @@ Optional caches (see Doctrine\ORM\Tools\Setup::createConfiguration()): # Patch bin script %patch0 -p1 +# For PHP 5.5.13+ +%patch1 -p1 + # Remove empty file rm -f lib/Doctrine/ORM/README.markdown +# Clenup backup files +find . -name \*.orig -exec rm {} \; + # Remove unnecessary executable bit chmod a-x lib/Doctrine/ORM/Tools/Pagination/Paginator.php @@ -116,6 +125,9 @@ rm -rf %{buildroot} %changelog +* Fri May 30 2014 Remi Collet 2.4.2-2 +- upstream fix for latest PHP (#1103219) + * Mon Feb 17 2014 Remi Collet 2.4.2-1 - backport 2.4.2 for remi repo -- cgit