Package: release.debian.org Severity: normal User: [email protected] Usertags: unblock
Please unblock package symfony This fixes the RC bug #832858 (caused by PHP 7.0/7.1 changes), as well as fixing the FTBFS when building in 2017 (and future years). Both are backports of upstream patches. Debdiff attached. unblock symfony/2.8.7+dfsg-1.1 -- System Information: Debian Release: 9.0 APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental- debug'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-1-amd64 (SMP w/2 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
diff -Nru symfony-2.8.7+dfsg/debian/changelog symfony-2.8.7+dfsg/debian/changelog --- symfony-2.8.7+dfsg/debian/changelog 2016-06-08 01:52:05.000000000 +0100 +++ symfony-2.8.7+dfsg/debian/changelog 2017-01-29 13:54:28.000000000 +0000 @@ -1,3 +1,12 @@ +symfony (2.8.7+dfsg-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix PHP 7.0/7.1 related failures (Closes: #832858) + * Do not depend on a fixed date in layout tests (fixes FTBFS in 2017 and + beyond) + + -- James Clarke <[email protected]> Sun, 29 Jan 2017 13:54:28 +0000 + symfony (2.8.7+dfsg-1) unstable; urgency=medium [ Fabien Potencier ] diff -Nru symfony-2.8.7+dfsg/debian/patches/do-not-depend-on-a-fixed-date-in-layout- symfony-2.8.7+dfsg/debian/patches/do-not-depend-on-a-fixed-date-in-layout- --- symfony-2.8.7+dfsg/debian/patches/do-not-depend-on-a-fixed-date-in-layout- 1970-01-01 01:00:00.000000000 +0100 +++ symfony-2.8.7+dfsg/debian/patches/do-not-depend-on-a-fixed-date-in-layout- 2017-01-29 13:54:28.000000000 +0000 @@ -0,0 +1,163 @@ +From: Christian Flothmann <[email protected]> +Date: Sun, 1 Jan 2017 13:18:05 +0100 +X-Dgit-Generated: 2.8.7+dfsg-1.1 804ee09c5a98f4ff4ed1132b68bf4c4afa17facc +Subject: Do not depend on a fixed date in layout tests + +By default, the `DateType` as well as the `DateTimeType` set the choices +being available for the year to a range starting five years in the past. +After some time, this will make tests fail when the year of the fixed +date being used as the initial data is before the first year being part +of the choices. + +Origin: backport, https://github.com/symfony/symfony/commit/97b7fabf519b48333b772924b141f84efdb44c1e + +--- + +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/Form/Tests/AbstractBootstrap3LayoutTest.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/Form/Tests/AbstractBootstrap3LayoutTest.php +@@ -1346,7 +1346,7 @@ abstract class AbstractBootstrap3LayoutT + + public function testDateTime() + { +- $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', '2011-02-03 04:05:06', array( ++ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', date('Y').'-02-03 04:05:06', array( + 'input' => 'string', + 'with_seconds' => false, + )); +@@ -1365,7 +1365,7 @@ abstract class AbstractBootstrap3LayoutT + /following-sibling::select + [@id="name_date_year"] + [@class="form-control"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + /following-sibling::select + [@id="name_time_hour"] + [@class="form-control"] +@@ -1420,7 +1420,7 @@ abstract class AbstractBootstrap3LayoutT + + public function testDateTimeWithHourAndMinute() + { +- $data = array('year' => '2011', 'month' => '2', 'day' => '3', 'hour' => '4', 'minute' => '5'); ++ $data = array('year' => date('Y'), 'month' => '2', 'day' => '3', 'hour' => '4', 'minute' => '5'); + + $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', $data, array( + 'input' => 'array', +@@ -1442,7 +1442,7 @@ abstract class AbstractBootstrap3LayoutT + /following-sibling::select + [@id="name_date_year"] + [@class="form-control"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + /following-sibling::select + [@id="name_time_hour"] + [@class="form-control"] +@@ -1459,7 +1459,7 @@ abstract class AbstractBootstrap3LayoutT + + public function testDateTimeWithSeconds() + { +- $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', '2011-02-03 04:05:06', array( ++ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', date('Y').'-02-03 04:05:06', array( + 'input' => 'string', + 'with_seconds' => true, + )); +@@ -1479,7 +1479,7 @@ abstract class AbstractBootstrap3LayoutT + /following-sibling::select + [@id="name_date_year"] + [@class="form-control"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + /following-sibling::select + [@id="name_time_hour"] + [@class="form-control"] +@@ -1569,7 +1569,7 @@ abstract class AbstractBootstrap3LayoutT + + public function testDateChoice() + { +- $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateType', '2011-02-03', array( ++ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateType', date('Y').'-02-03', array( + 'input' => 'string', + 'widget' => 'choice', + )); +@@ -1589,7 +1589,7 @@ abstract class AbstractBootstrap3LayoutT + /following-sibling::select + [@id="name_year"] + [@class="form-control"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + ] + [count(./select)=3] + ' +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/Form/Tests/AbstractLayoutTest.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/Form/Tests/AbstractLayoutTest.php +@@ -1251,7 +1251,7 @@ abstract class AbstractLayoutTest extend + + public function testDateTime() + { +- $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', '2011-02-03 04:05:06', array( ++ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', date('Y').'-02-03 04:05:06', array( + 'input' => 'string', + 'with_seconds' => false, + )); +@@ -1270,7 +1270,7 @@ abstract class AbstractLayoutTest extend + [./option[@value="3"][@selected="selected"]] + /following-sibling::select + [@id="name_date_year"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + ] + /following-sibling::div + [@id="name_time"] +@@ -1330,7 +1330,7 @@ abstract class AbstractLayoutTest extend + + public function testDateTimeWithHourAndMinute() + { +- $data = array('year' => '2011', 'month' => '2', 'day' => '3', 'hour' => '4', 'minute' => '5'); ++ $data = array('year' => date('Y'), 'month' => '2', 'day' => '3', 'hour' => '4', 'minute' => '5'); + + $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', $data, array( + 'input' => 'array', +@@ -1351,7 +1351,7 @@ abstract class AbstractLayoutTest extend + [./option[@value="3"][@selected="selected"]] + /following-sibling::select + [@id="name_date_year"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + ] + /following-sibling::div + [@id="name_time"] +@@ -1371,7 +1371,7 @@ abstract class AbstractLayoutTest extend + + public function testDateTimeWithSeconds() + { +- $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', '2011-02-03 04:05:06', array( ++ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateTimeType', date('Y').'-02-03 04:05:06', array( + 'input' => 'string', + 'with_seconds' => true, + )); +@@ -1390,7 +1390,7 @@ abstract class AbstractLayoutTest extend + [./option[@value="3"][@selected="selected"]] + /following-sibling::select + [@id="name_date_year"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + ] + /following-sibling::div + [@id="name_time"] +@@ -1477,7 +1477,7 @@ abstract class AbstractLayoutTest extend + + public function testDateChoice() + { +- $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateType', '2011-02-03', array( ++ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\DateType', date('Y').'-02-03', array( + 'input' => 'string', + 'widget' => 'choice', + )); +@@ -1493,7 +1493,7 @@ abstract class AbstractLayoutTest extend + [./option[@value="3"][@selected="selected"]] + /following-sibling::select + [@id="name_year"] +- [./option[@value="2011"][@selected="selected"]] ++ [./option[@value="'.date('Y').'"][@selected="selected"]] + ] + [count(./select)=3] + ' diff -Nru symfony-2.8.7+dfsg/debian/patches/fix-php-7.1-related-failures symfony-2.8.7+dfsg/debian/patches/fix-php-7.1-related-failures --- symfony-2.8.7+dfsg/debian/patches/fix-php-7.1-related-failures 1970-01-01 01:00:00.000000000 +0100 +++ symfony-2.8.7+dfsg/debian/patches/fix-php-7.1-related-failures 2017-01-29 13:54:28.000000000 +0000 @@ -0,0 +1,125 @@ +From: Nicolas Grekas <[email protected]> +Date: Tue, 19 Jul 2016 08:52:31 +0200 +X-Dgit-Generated: 2.8.7+dfsg-1.1 d29b2011e906f2f6ab43996abfce73ff6723f758 +Subject: Fix PHP 7.1 related failures + +Origin: backport, https://github.com/symfony/symfony/commit/07467ed3a3aca5bd8760060e4472cf519b7812c5 +Bug-Debian: https://bugs.debian.org/832858 + +--- + +--- symfony-2.8.7+dfsg.orig/.travis.yml ++++ symfony-2.8.7+dfsg/.travis.yml +@@ -26,8 +26,9 @@ matrix: + - php: 5.4 + - php: 5.5 + - php: 5.6 +- env: deps=high + - php: 7.0 ++ env: deps=high ++ - php: 7.1 + env: deps=low + fast_finish: true + +@@ -50,13 +51,12 @@ before_install: + - if [[ ! $skip ]]; then echo session.gc_probability = 0 >> $INI_FILE; fi + - if [[ ! $skip && $PHP = 5.* ]]; then echo extension = mongo.so >> $INI_FILE; fi + - if [[ ! $skip && $PHP = 5.* ]]; then echo extension = memcache.so >> $INI_FILE; fi +- - if [[ ! $skip && $PHP = 5.* ]]; then (echo yes | pecl install -f apcu-4.0.10 && echo apc.enable_cli = 1 >> $INI_FILE); fi +- - if [[ ! $skip && $PHP = 7.* ]]; then (echo yes | pecl install -f apcu-5.1.2 && echo apc.enable_cli = 1 >> $INI_FILE); fi ++ - if [[ ! $skip && $PHP = 5.* ]]; then (echo yes | pecl install -f apcu-4.0.11 && echo apc.enable_cli = 1 >> $INI_FILE); fi ++ - if [[ ! $skip && $PHP = 7.0 ]]; then (echo yes | pecl install -f apcu-5.1.5 && echo apc.enable_cli = 1 >> $INI_FILE); fi + - if [[ ! $deps && $PHP = 5.* ]]; then (cd src/Symfony/Component/Debug/Resources/ext && phpize && ./configure && make && echo extension = $(pwd)/modules/symfony_debug.so >> $INI_FILE); fi + - if [[ ! $skip && $PHP = 5.* ]]; then pecl install -f memcached-2.1.0; fi + - if [[ ! $skip && ! $PHP = hhvm* ]]; then echo extension = ldap.so >> $INI_FILE; fi +- - if [[ ! $skip && ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini; fi +- - if [[ ! $skip ]]; then composer self-update --stable; fi ++ - if [[ ! $skip && ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi + - if [[ ! $skip ]]; then cp .composer/* ~/.composer/; fi + - if [[ ! $skip ]]; then ./phpunit install; fi + - if [[ ! $skip ]]; then export PHPUNIT=$(readlink -f ./phpunit); fi +--- symfony-2.8.7+dfsg.orig/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service_structure.txt ++++ symfony-2.8.7+dfsg/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service_structure.txt +@@ -23,5 +23,5 @@ class ProjectServiceContainer extends Co + } + } + +-class stdClass_%s extends \stdClass implements \ProxyManager\%s +-{%a}%A +\ No newline at end of file ++class stdClass_%s extends %SstdClass implements \ProxyManager\%s ++{%a}%A +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/Console/Helper/Table.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/Console/Helper/Table.php +@@ -448,7 +448,7 @@ class Table + } + + // create a two dimensional array (rowspan x colspan) +- $unmergedRows = array_replace_recursive(array_fill($line + 1, $nbLines, ''), $unmergedRows); ++ $unmergedRows = array_replace_recursive(array_fill($line + 1, $nbLines, array()), $unmergedRows); + foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) { + $value = isset($lines[$unmergedRowKey - $line]) ? $lines[$unmergedRowKey - $line] : ''; + $unmergedRows[$unmergedRowKey][$column] = new TableCell($value, array('colspan' => $cell->getColspan())); +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/DependencyInjection/Tests/CrossCheckTest.php +@@ -34,7 +34,7 @@ class CrossCheckTest extends \PHPUnit_Fr + $loaderClass = 'Symfony\\Component\\DependencyInjection\\Loader\\'.ucfirst($type).'FileLoader'; + $dumperClass = 'Symfony\\Component\\DependencyInjection\\Dumper\\'.ucfirst($type).'Dumper'; + +- $tmp = tempnam('sf_service_container', 'sf'); ++ $tmp = tempnam(sys_get_temp_dir(), 'sf'); + + file_put_contents($tmp, file_get_contents(self::$fixturesPath.'/'.$type.'/'.$fixture)); + +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/Form/Util/OrderedHashMap.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/Form/Util/OrderedHashMap.php +@@ -140,7 +140,7 @@ class OrderedHashMap implements \ArrayAc + ? 0 + // Imitate PHP's behavior of generating a key that equals + // the highest existing integer key + 1 +- : max($this->orderedKeys) + 1; ++ : 1 + (int) max($this->orderedKeys); + } + + $this->orderedKeys[] = $key; +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmer.php +@@ -20,7 +20,7 @@ abstract class CacheWarmer implements Ca + { + protected function writeCacheFile($file, $content) + { +- $tmpFile = tempnam(dirname($file), basename($file)); ++ $tmpFile = @tempnam(dirname($file), basename($file)); + if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) { + @chmod($file, 0666 & ~umask()); + +--- symfony-2.8.7+dfsg.orig/src/Symfony/Component/Validator/Constraints/File.php ++++ symfony-2.8.7+dfsg/src/Symfony/Component/Validator/Constraints/File.php +@@ -88,20 +88,22 @@ class File extends Constraint + + private function normalizeBinaryFormat($maxSize) + { ++ $sizeInt = (int) $maxSize; ++ + if (ctype_digit((string) $maxSize)) { +- $this->maxSize = (int) $maxSize; ++ $this->maxSize = $sizeInt; + $this->binaryFormat = null === $this->binaryFormat ? false : $this->binaryFormat; + } elseif (preg_match('/^\d++k$/i', $maxSize)) { +- $this->maxSize = $maxSize * 1000; ++ $this->maxSize = $sizeInt * 1000; + $this->binaryFormat = null === $this->binaryFormat ? false : $this->binaryFormat; + } elseif (preg_match('/^\d++M$/i', $maxSize)) { +- $this->maxSize = $maxSize * 1000000; ++ $this->maxSize = $sizeInt * 1000000; + $this->binaryFormat = null === $this->binaryFormat ? false : $this->binaryFormat; + } elseif (preg_match('/^\d++Ki$/i', $maxSize)) { +- $this->maxSize = $maxSize << 10; ++ $this->maxSize = $sizeInt << 10; + $this->binaryFormat = null === $this->binaryFormat ? true : $this->binaryFormat; + } elseif (preg_match('/^\d++Mi$/i', $maxSize)) { +- $this->maxSize = $maxSize << 20; ++ $this->maxSize = $sizeInt << 20; + $this->binaryFormat = null === $this->binaryFormat ? true : $this->binaryFormat; + } else { + throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum size', $this->maxSize)); diff -Nru symfony-2.8.7+dfsg/debian/patches/series symfony-2.8.7+dfsg/debian/patches/series --- symfony-2.8.7+dfsg/debian/patches/series 2016-06-08 01:52:05.000000000 +0100 +++ symfony-2.8.7+dfsg/debian/patches/series 2017-01-29 13:54:28.000000000 +0000 @@ -3,3 +3,5 @@ Increasing-timeout-in-test-AbstractProcessTest-testS.patch FrameworkBundle-SecurityBundle-Don-t-try-to-include-.patch HttpFoundation-Fix-incompatibility-with-php-memcache.patch +fix-php-7.1-related-failures +do-not-depend-on-a-fixed-date-in-layout-

