Bug 214775

Summary: [poudriere] textproc/php56-xml: wrong installation path when ZTS is enabled in lang/php56
Product: Ports & Packages Reporter: O. Hartmann <ohartmann>
Component: Individual Port(s)Assignee: Alex Dupre <ale>
Status: Closed DUPLICATE    
Severity: Affects Many People CC: ohartmann
Priority: --- Flags: ohartmann: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on: 180924    
Bug Blocks:    

Description O. Hartmann 2016-11-23 09:26:08 UTC
Using poudriere compiling ports relying on lang/php56 and www/apache24 with threading enabled in Apache 2.4 and therefore ZTS enabled in PHP 5.6 makes poudriere building ports incorrectly.

Symptoms:

Running "poudriere options" on all over the repository I'm about to build (a subset of the ports collection), enabling threading in www/apache24 requires, as far as I know, also enabling ZTS in lang/php56 (and devel/apr1). Subsequently, ZTS is enbaled as option and configured to related ports.

Now, building the repo fails on certain ports since a couple of weeks now after an update of the ports tree. In my case, just for instance, these are:

devel/pear
textproc/php56-wddx
textproc/php56-xmlreader
databases/php56-pdo_pgsql(*)
databases/php56-pdo_sqlite(*)

[... and further]

(*): see below, not XML related, but similar issue!

It seems, that these ports rely all PHP module installations located in

 /usr/local/lib/php/20131226-zts/XXX.so 

but the error states (here as pars pro toto php56-wddx-5.6.27):

==>   php56-wddx-5.6.27 depends on file: /usr/local/lib/php/20131226/xml.so - not found
*** Error code 1

It seems some ports do get the path wrong for ZTS enabled PHP modules, which should be /usr/local/lib/php/20131226-zts, but is indeed under poudriere /usr/local/lib/php/20131226/

The errors marked with (*) have same error, but they do miss not XML related modules, but "pdo.so", so I guess this indicates that there is a major problem with ZTS enabled and installing packages into the correct path.

By the way, I'm using PostGreSQL 9.6 and therefore, I have on ALL systems (also poudriere) in /etc/make.conf

DEFAULT_OPTIONS+=pgsql=9.6

Just for the record. The problem occured synchronously on three different poudriere building systems.

I just switched recently on my hosts from PostgreSQL 9.5 to 9.6, therefore, I recompiled all related (or not related) ports, including Apache 2.4 (with threads), lang/php, devel/apr1 and so forth with ZTS enabled and all php-related installations - but I did this the traditional FreeBSD way with the make/portmaster system. I did not detect any problems so far, the php modules get installed in the correct place.

I can not exclude a misconfiguration of my own, but then, I must have done this on three different poudriere system the same way.

The problem is serious. i prevents the installation of any php-based port on all of our jails!
Comment 1 O. Hartmann 2016-12-06 07:43:57 UTC
Obviously, it ist not only the port textproc/php56-cml that is failing, there are also others, see Bug 214979

*** This bug has been marked as a duplicate of bug 214979 ***