Your message dated Mon, 27 Jul 2026 04:34:20 +0000
with message-id <[email protected]>
and subject line Bug#1137412: fixed in twig-i18n-extension 5.0.2-1
has caused the Debian Bug report #1137412,
regarding twig-i18n-extension: FTBFS: Tests: 106, Assertions: 195, Failures: 7, 
PHPUnit Deprecations: 1, Skipped: 5, Risky: 2.
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1137412: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1137412
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:twig-i18n-extension
Version: 5.0.1-1
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202605/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:twig-i18n-extension, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_clean
 debian/rules binary
dh binary
   dh_update_autotools_config
   dh_autoreconf
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
phpabtpl composer.json > debian/autoload.php.tpl
# generate autoload-files. keep in sync with debian/tests/phpunit
phpab --output src/autoload.php \
        --template debian/autoload.php.tpl \
        src
phpab %development% - Copyright (C) 2009 - 2025 by Arne Blankerts and 
Contributors

[... snipped ...]


/usr/share/php/Twig/Test/NodeTestCase.php:70
/usr/share/php/Twig/Test/NodeTestCase.php:56

6) PhpMyAdmin\Tests\Twig\Extensions\Node\TransTest::testCompile#4 with data 
(PhpMyAdmin\Twig\Extensions\Node\TransNode Object (...), 'yield 
strtr(gettext("J'ai %fo...), ));')
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'yield strtr(gettext("J'ai %foo% pommes"), array(...'
+'yield strtr(gettext("J\x27ai %foo% pommes"), array(...'

/usr/share/php/Twig/Test/NodeTestCase.php:70
/usr/share/php/Twig/Test/NodeTestCase.php:56

7) PhpMyAdmin\Tests\Twig\Extensions\Node\TransTest::testCompile#6 with data 
(PhpMyAdmin\Twig\Extensions\Node\TransNode Object (...), 'yield 
strtr(gettext("J'ai %fo...), ));')
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'yield strtr(gettext("J'ai %foo% pommes"), array(...'
+'yield strtr(gettext("J\x27ai %foo% pommes"), array(...'

/usr/share/php/Twig/Test/NodeTestCase.php:70
/usr/share/php/Twig/Test/NodeTestCase.php:56

--

There were 2 risky tests:

1) 
PhpMyAdmin\Tests\Twig\Extensions\Node\I18nExtensionMoTranslatorSandboxTest::[email protected]
 with data ('Plural.test', 'Test a plural example with "e..." code', '', ['\n{# 
Plural tag without domai...ans %}'], false, [['--DATA--\nif (! 
class_exists(...pples.', '\nif (! class_exists('CustomO...> 2]\n', '\nreturn 
[]\n', '\nHey Jim, I have 2 apples.']], ...3 more elements)
Test code or tested code printed unexpected output: Compiled templates that 
failed on case 1:
Template: index.twig
<?php

use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
use Twig\TemplateWrapper;

/* index.twig */
class __TwigTemplate_81c90f9b48f988977b19928e849e1887 extends Template
{
    private Source $source;
    /**
     * @var array<string, Template>
     */
    private array $macros = [];

    public function __construct(Environment $env)
    {
        parent::__construct($env);

        $this->source = $this->getSourceContext();

        $this->parent = false;

        $this->blocks = [
        ];
        $this->sandbox = $this->extensions[SandboxExtension::class];
        $this->checkSecurity();
    }

    protected function doDisplay(array $context, array $blocks = []): iterable
    {
        $macros = $this->macros;
        // line 1
        yield "
";
        // line 3
        $context["name"] = "Jim";
        // line 4
        $context["apple_count"] = 2;
        // line 5
yield strtr(_dnpgettext((isset($context["obj"]) || array_key_exists("obj", 
$context) ? $context["obj"] : (function () { throw new RuntimeError('Variable 
"obj" does not exist.', 5, $this->source); })()), "%escape% %escape%", "Hey 
%escape%, I have one apple.", "Hey %escape%, I have %escape% apples.", 
abs(CoreExtension::getAttribute($this->env, $this->source, [        // line 7
(isset($context["a"]) || array_key_exists("a", $context) ? $context["a"] : 
(function () { throw new RuntimeError('Variable "a" does not exist.', 7, 
$this->source); })())], 0, [], "array", false, false, true, 7))), 
array("%escape%" =>         // line 6
(isset($context["escape"]) || array_key_exists("escape", $context) ? 
$context["escape"] : (function () { throw new RuntimeError('Variable "escape" 
does not exist.', 6, $this->source); })()), "%escape%" =>         // line 8
(isset($context["escape"]) || array_key_exists("escape", $context) ? 
$context["escape"] : (function () { throw new RuntimeError('Variable "escape" 
does not exist.', 8, $this->source); })()), "%escape%" => 
(isset($context["escape"]) || array_key_exists("escape", $context) ? 
$context["escape"] : (function () { throw new RuntimeError('Variable "escape" 
does not exist.', 8, $this->source); })()), ));
        yield from [];
    }

    /**
     * @codeCoverageIgnore
     */
    public function getTemplateName(): string
    {
        return "index.twig";
    }

    /**
     * @codeCoverageIgnore
     */
    public function isTraitable(): bool
    {
        return false;
    }

    /**
     * @codeCoverageIgnore
     */
    public function getDebugInfo(): array
    {
        return array (  54 => 8,  53 => 6,  52 => 7,  51 => 5,  49 => 4,  47 => 
3,  44 => 1,);
    }

    public function getSourceContext(): Source
    {
        return new Source("", "index.twig", "");
    }
    
    public function checkSecurity()
    {
        static $tags = ["set" => 3, "trans" => 5];
        static $filters = ["escape" => 6, "upper" => 10];
        static $functions = [];

        try {
            $this->sandbox->checkSecurity(
                ['set', 'trans'],
                ['escape', 'upper'],
                [],
                $this->source
            );
        } catch (SecurityError $e) {
            $e->setSourceContext($this->source);

            if ($e instanceof SecurityNotAllowedTagError && 
isset($tags[$e->getTagName()])) {
                $e->setTemplateLine($tags[$e->getTagName()]);
            } elseif ($e instanceof SecurityNotAllowedFilterError && 
isset($filters[$e->getFilterName()])) {
                $e->setTemplateLine($filters[$e->getFilterName()]);
            } elseif ($e instanceof SecurityNotAllowedFunctionError && 
isset($functions[$e->getFunctionName()])) {
                $e->setTemplateLine($functions[$e->getFunctionName()]);
            }

            throw $e;
        }

    }
}

/usr/share/php/Twig/Test/IntegrationTestCase.php:129

2) 
PhpMyAdmin\Tests\Twig\Extensions\Node\I18nExtensionSandboxTest::[email protected]
 with data ('Plural.test', 'Test a plural example with "e..." code', '', ['\n{# 
Plural tag without domai...ans %}'], false, [['--DATA--\nif (! 
class_exists(...pples.', '\nif (! class_exists('CustomO...> 2]\n', '\nreturn 
[]\n', '\nHey Jim, I have 2 apples.']], ...3 more elements)
Test code or tested code printed unexpected output: Compiled templates that 
failed on case 1:
Template: index.twig
<?php

use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
use Twig\TemplateWrapper;

/* index.twig */
class __TwigTemplate_81c90f9b48f988977b19928e849e1887 extends Template
{
    private Source $source;
    /**
     * @var array<string, Template>
     */
    private array $macros = [];

    public function __construct(Environment $env)
    {
        parent::__construct($env);

        $this->source = $this->getSourceContext();

        $this->parent = false;

        $this->blocks = [
        ];
        $this->sandbox = $this->extensions[SandboxExtension::class];
        $this->checkSecurity();
    }

    protected function doDisplay(array $context, array $blocks = []): iterable
    {
        $macros = $this->macros;
        // line 1
        yield "
";
        // line 3
        $context["name"] = "Jim";
        // line 4
        $context["apple_count"] = 2;
yield strtr(_dnpgettext(        // line 5
(isset($context["obj"]) || array_key_exists("obj", $context) ? $context["obj"] 
: (function () { throw new RuntimeError('Variable "obj" does not exist.', 5, 
$this->source); })()), "%escape% %escape%", "Hey %escape%, I have one apple.", 
"Hey %escape%, I have %escape% apples.", 
abs(CoreExtension::getAttribute($this->env, $this->source, [        // line 7
(isset($context["a"]) || array_key_exists("a", $context) ? $context["a"] : 
(function () { throw new RuntimeError('Variable "a" does not exist.', 7, 
$this->source); })())], 0, [], "array", false, false, true, 7))), 
array("%escape%" =>         // line 6
(isset($context["escape"]) || array_key_exists("escape", $context) ? 
$context["escape"] : (function () { throw new RuntimeError('Variable "escape" 
does not exist.', 6, $this->source); })()), "%escape%" =>         // line 8
(isset($context["escape"]) || array_key_exists("escape", $context) ? 
$context["escape"] : (function () { throw new RuntimeError('Variable "escape" 
does not exist.', 8, $this->source); })()), "%escape%" => 
(isset($context["escape"]) || array_key_exists("escape", $context) ? 
$context["escape"] : (function () { throw new RuntimeError('Variable "escape" 
does not exist.', 8, $this->source); })()), ));
        yield from [];
    }

    /**
     * @codeCoverageIgnore
     */
    public function getTemplateName(): string
    {
        return "index.twig";
    }

    /**
     * @codeCoverageIgnore
     */
    public function isTraitable(): bool
    {
        return false;
    }

    /**
     * @codeCoverageIgnore
     */
    public function getDebugInfo(): array
    {
        return array (  54 => 8,  53 => 6,  52 => 7,  51 => 5,  49 => 4,  47 => 
3,  44 => 1,);
    }

    public function getSourceContext(): Source
    {
        return new Source("", "index.twig", "");
    }
    
    public function checkSecurity()
    {
        static $tags = ["set" => 3, "trans" => 5];
        static $filters = ["escape" => 6, "upper" => 10];
        static $functions = [];

        try {
            $this->sandbox->checkSecurity(
                ['set', 'trans'],
                ['escape', 'upper'],
                [],
                $this->source
            );
        } catch (SecurityError $e) {
            $e->setSourceContext($this->source);

            if ($e instanceof SecurityNotAllowedTagError && 
isset($tags[$e->getTagName()])) {
                $e->setTemplateLine($tags[$e->getTagName()]);
            } elseif ($e instanceof SecurityNotAllowedFilterError && 
isset($filters[$e->getFilterName()])) {
                $e->setTemplateLine($filters[$e->getFilterName()]);
            } elseif ($e instanceof SecurityNotAllowedFunctionError && 
isset($functions[$e->getFunctionName()])) {
                $e->setTemplateLine($functions[$e->getFunctionName()]);
            }

            throw $e;
        }

    }
}

/usr/share/php/Twig/Test/IntegrationTestCase.php:129

FAILURES!
Tests: 106, Assertions: 195, Failures: 7, PHPUnit Deprecations: 1, Skipped: 5, 
Risky: 2.
make[1]: *** [debian/rules:20: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:4: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: twig-i18n-extension
Source-Version: 5.0.2-1
Done: William Desportes <[email protected]>

We believe that the bug you reported is fixed in the latest version of
twig-i18n-extension, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
William Desportes <[email protected]> (supplier of updated twig-i18n-extension 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Mon, 27 Jul 2026 05:53:05 +0200
Source: twig-i18n-extension
Architecture: source
Version: 5.0.2-1
Distribution: unstable
Urgency: medium
Maintainer: phpMyAdmin Team <[email protected]>
Changed-By: William Desportes <[email protected]>
Closes: 1137412
Changes:
 twig-i18n-extension (5.0.2-1) unstable; urgency=medium
 .
   * Replace the Salsa CI config file
     with "recipes/debian.yml@salsa-ci-team/pipeline"
   * Bump copyright years
   * Use /usr/share/php/ for require paths for DEP-8
   * New upstream version 5.0.2
     - Adapt tests to Twig 3.26.0 (Closes: #1137412)
   * Bump Standards-Version to 4.7.4
Checksums-Sha1:
 7906fc2c310cfa0ffeb38a9b57a615e128053cee 1653 twig-i18n-extension_5.0.2-1.dsc
 399c16287c8244e81e49b829314ff5a65a2ecefc 13880 
twig-i18n-extension_5.0.2.orig.tar.xz
 265f95d2ff16643ddc12f4986095e3c44872b745 4752 
twig-i18n-extension_5.0.2-1.debian.tar.xz
 b6d83ead1db30a5bf922711cd00ec113efd868d2 11866 
twig-i18n-extension_5.0.2-1_source.buildinfo
Checksums-Sha256:
 f23f980131e9b03cd4c537764d807df2a62af86f2097036c45144a2488dc0bba 1653 
twig-i18n-extension_5.0.2-1.dsc
 a93b15c115592e838bb9e0fb22ef64b00ad8646a984ccc1d466b9b3d760e43af 13880 
twig-i18n-extension_5.0.2.orig.tar.xz
 adfe5749833fe97716408812e2ef7c48d3d46de3ce9d258979664793cc6ed493 4752 
twig-i18n-extension_5.0.2-1.debian.tar.xz
 f09b4a1e372c5ad3fdbde68b75b2078eac8cab7142b053af580ba802caa7e115 11866 
twig-i18n-extension_5.0.2-1_source.buildinfo
Files:
 008082ed21c807208130a2ca87b313f7 1653 php optional 
twig-i18n-extension_5.0.2-1.dsc
 a083e3b4ecce39a14ca738f383c123e5 13880 php optional 
twig-i18n-extension_5.0.2.orig.tar.xz
 9a787b3e8093676347c3d7b1ac57689f 4752 php optional 
twig-i18n-extension_5.0.2-1.debian.tar.xz
 9bd1049a657685e6285228320335f114 11866 php optional 
twig-i18n-extension_5.0.2-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTUOpr7jDz/A89V91JwaE9HF9SaMQUCambamQAKCRBwaE9HF9Sa
MbyzAQDwzWFO4l2iLN3KK3+if1gV/9jtPx19HR7uJO4xf/OMkAD/W4pZlw5FaGqu
sOjg2XeWqNDDEkUcfjZY2C05ZB2OVQs=
=0XPq
-----END PGP SIGNATURE-----

Attachment: pgpA1A5tel19b.pgp
Description: PGP signature


--- End Message ---

Reply via email to