[php-maint] Bug#805222: [Pkg-php-pecl] Bug#805222: php-apcu: FTBFS: PHP Fatal error: Call to a member function getFilelist() on null

Ondřej Surý ondrej at sury.org
Tue Dec 8 11:21:13 UTC 2015


JFTR this is not a correct fix and we need upstream to fix that, because
there are two different approaches of handling packagingroot at
different places and this is the main reason why it's causing the
errors.

PEAR_Command_Install is directly mangling the variables (channelsdir,
etc.), but the code below resets this to default value by calling
PEAR_Config::setInstallRoot($options['packagingroot']) followed by
PEAR_Config::setInstallRoot(false). This needs to be made consistent.

Cheers,
Ondrej

On Mon, Dec 7, 2015, at 17:21, Ondřej Surý wrote:
> Control: reassign -1 php-pear
> Control: found -1 php-pear/5.6.16+dfsg-1
> Control: affects -1 php5-apcu
> 
> Hi,
> 
> thank you for the report, after some debugging it seems this is a
> generic error in PEAR instead of bug just in the php-apcu. This should
> not affect no users, but it probably broke all PHP extensions, since it
> stops honoring packagingroot after calling PEAR_Registry->setConfig()
> 
> I have a fix ready and PHP building, and I am ccing Fedora and SuSE
> maintainers.
> 
> Mathieu, this also applies to your standalone src:php-pear:
> 
> diff --git a/PEAR/Command/Install.php b/PEAR/Command/Install.php
> index 9d572ed..3b1fec9 100644
> --- a/PEAR/Command/Install.php
> +++ b/PEAR/Command/Install.php
> @@ -848,7 +848,7 @@ Run post-installation scripts in package <package>,
> if any exist.
>              $pkg = &$instreg->getPackage($param->getPackage(),
>              $param->getChannel());
>              // $pkg may be NULL if install is a 'fake' install via
>              --packagingroot
>              if (is_object($pkg)) {
> -                $pkg->setConfig($this->config);
> +                $pkg->setConfig($this->config, false);
>                  if ($list = $pkg->listPostinstallScripts()) {
>                      $pn =
>                      $reg->parsedPackageNameToString(array('channel' =>
>                         $param->getChannel(), 'package' =>
>                         $param->getPackage()), true);
> 
> 
> This fixes the issue right now, but it should be probably reported
> upstream to have a correct fix (since this might break other stuff :)),
> but my PEAR account doesn't work right now, so it might take me a while
> to report this to upstream.
> 
> Cheers,
> Ondrej
> 
> On Sun, Nov 15, 2015, at 22:18, Chris West (Faux) wrote:
> > Source: php-apcu
> > Version: 4.0.7-1
> > Severity: serious
> > Justification: fails to build from source
> > Tags: sid stretch
> > User: reproducible-builds at lists.alioth.debian.org
> > Usertags: ftbfs
> > X-Debbugs-CC: reproducible-builds at lists.alioth.debian.org
> > 
> > Dear Maintainer,
> > 
> > The package fails to build:
> > 
> > 	/usr/bin/pear -c debian/pearrc -d download_dir=/tmp -d include_path=/usr/share/php -d php_bin=/usr/bin/php -d bin_dir=/usr/bin -d php_dir=/usr/share/php -d data_dir=/usr/share/php/data -d doc_dir=/usr/share/doc/php5-apcu -d test_dir=/usr/share/php/tests install --offline --nodeps -P /php-apcu-4.0.7/debian/php5-apcu --nobuild ./apcu-4.0.7/package.xml
> > PHP Fatal error:  Call to a member function getFilelist() on null in
> > /usr/share/php/PEAR/Command/Install.php on line 747
> > dh_auto_install: /usr/bin/pear -c debian/pearrc -d download_dir=/tmp -d
> > include_path=/usr/share/php -d php_bin=/usr/bin/php -d bin_dir=/usr/bin
> > -d php_dir=/usr/share/php -d data_dir=/usr/share/php/data -d
> > doc_dir=/usr/share/doc/php5-apcu -d test_dir=/usr/share/php/tests install
> > --offline --nodeps -P /php-apcu-4.0.7/debian/php5-apcu --nobuild
> > ./apcu-4.0.7/package.xml returned exit code 255
> > debian/rules:9: recipe for target 'override_dh_auto_install' failed
> > make[1]: *** [override_dh_auto_install] Error 10
> > make[1]: Leaving directory '/php-apcu-4.0.7'
> > 
> > Full build log:
> > https://reproducible.debian.net/rb-pkg/unstable/amd64/php-apcu.html
> > 
> > -- System Information:
> > Debian Release: stretch/sid
> > APT prefers unstable
> > APT policy: (500, 'unstable')
> > Architecture: amd64 (x86_64)
> > 
> > _______________________________________________
> > Pkg-php-pecl mailing list
> > Pkg-php-pecl at lists.alioth.debian.org
> > http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-php-pecl
> 
> 
> -- 
> Ondřej Surý <ondrej at sury.org>
> Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server


-- 
Ondřej Surý <ondrej at sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server



More information about the pkg-php-maint mailing list