Bug 245034

Summary: poudriere bulk build fails for some PHP/PECL ports
Product: Ports & Packages Reporter: Tommy P <tommyhp2>
Component: Individual Port(s)Assignee: Torsten Zuehlsdorff <tz>
Status: Open ---    
Severity: Affects Only Me CC: danmcgrath.ca, lwhsu
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242289
Attachments:
Description Flags
Bulk build logs
none
interactive build logs none

Description Tommy P 2020-03-24 20:07:51 UTC
When ZTS is enabled for PHP74 and MPM_WORKER enabled for Apache24, the following ports fail in poudriere bulk because of build-depends:

databases/pecl-memcache:build-depends
databases/pecl-memcached:build-depends
databases/php74-pdo_mysql:build-depends
databases/php74-pdo_pgsql:build-depends
databases/php74-pdo_sqlite:build-depends
databases/php74-pdo_odbc:build-depends
databases/php74-pdo_dblib:build-depends

textproc/php74-xsl:build-depends
print/pecl-pdflib:build-depends

net/php74-xmlrpc:build-depends

devel/php-composer:run-depends
devel/pecl-ds:build-depends
devel/pecl-zookeeper:build-depends
devel/pecl-swoole:build-depends
devel/pecl-json_post:build-depends
mail/pecl-mailparse:build-depends

In poudriere interactive mode, the above ports build successfully.
Comment 1 Tommy P 2020-03-24 20:08:24 UTC
Created attachment 212678 [details]
Bulk build logs
Comment 2 Tommy P 2020-03-24 20:08:59 UTC
Created attachment 212679 [details]
interactive build logs
Comment 3 Li-Wen Hsu freebsd_committer 2020-06-16 23:28:07 UTC
Over to php maintainer.
Comment 4 Torsten Zuehlsdorff freebsd_committer 2020-06-23 10:28:44 UTC
That is basically the same issue like in 242289. 

The Problem here is ZTS, because the framework puts it into an own directory. But than it forgets to use the new directory when creating dependencies.

So my thought was to remove the directories for ZTS (or debug). This should avoid the problem. But after some hacking i realized it is not that easy. And than i run into a constant E_NOTIME. 

Any help on this issue is very appreciated.
Comment 5 Danny McGrath 2021-04-03 22:05:02 UTC
I am noticing similar on my end, except it doesn't just break your stuff, but appears to break anything relating to DEBUG builds, which I currently need to debug a PHP zend_mm_heap corrupted error but can't now, and anything other than Apache pre-fork.

Someone was mentioning that ZTS should not be needed, but all attempts to disable it here were proving problematic due to the requiring that Apache event mpm forces ZTS.

Perhaps there is a much bigger problem here for PHP and Apache users?
Comment 6 Tommy P 2021-04-09 22:12:31 UTC
(In reply to Danny McGrath from comment #5)

I'm not sure about issues in interoperability between Apache and PHP since the poudriere interactive mode was able to build to each port successfully.  The build fails when non-interactive mode.