Solved Poudrere fails to build some PHP extensions for dependency problems

I am new to ports-mgmt/poudriere so I have no experience in troubleshooting it.
I have problems building several PHP extensions. The log file of the build for databases/ php74-pdo_mysql looks like:
Code:
...
===>   php74-pdo_mysql-7.4.12 depends on file: /usr/local/lib/php/20190902/pdo.so - not found
===>   Installing existing package /packages/All/php74-pdo-7.4.12.txz
[12_2_amd64-default-job-01] Installing php74-pdo-7.4.12...
[12_2_amd64-default-job-01] Extracting php74-pdo-7.4.12: .......... done
=====
Message from php74-pdo-7.4.12:

--
This file has been added to automatically load the installed extension:
/usr/local/etc/php/ext-20-pdo.ini
===>   php74-pdo_mysql-7.4.12 depends on file: /usr/local/lib/php/20190902/pdo.so - not found
*** Error code 1

Stop.
make: stopped in /usr/ports/databases/php74-pdo_mysql
=>> Cleaning up wrkdir
===>  Cleaning for php74-pdo_mysql-7.4.12
build of databases/php74-pdo_mysql | php74-pdo_mysql-7.4.12 ended at Thu Nov 19 23:48:23 EET 2020
build time: 00:00:07
!!! build failure encountered !!!
It looks like ports-mgmt/poudriere builds the PDO extension and doesn't find it afterwards.
Because of the same reason it is unable to build databases/php74-pdo_sqlite, and textproc/php74-xsl as well as textproc/php74-xmlreader fail because of similar error with textproc/php74-dom.
I have total of 5 failing builds, all of them are PHP 7.4 extensions. Note that some extensions and all their dependencies are successfully built.
The "interactive mode" didn't help me and I have no clues how to sort this out.
I will look forward your help!
 
Try doing a 'fresh' clean build by adding the -c option. Sometimes it incorrectly tries to pick up old dependencies.

Code:
     -c       Clean all previously built packages and logs.
poudriere-bulk(8)
 
I'm sorry but that didn't work. I've tested with commented out devel/ccache configuration too. To be absolutely sure I installed a fresh new ports-mgmt/poudriere on another host with the same result. Here is the list of my pkglist, with '*' are marked the failed builds:
Code:
math/php74-bcmath
archivers/php74-bz2
textproc/php74-ctype
ftp/php74-curl
textproc/php74-dom
sysutils/php74-fileinfo
security/php74-filter
graphics/php74-gd
converters/php74-iconv
mail/php74-imap
devel/php74-intl
devel/php74-json
net/php74-ldap
converters/php74-mbstring
databases/php74-mysqli
security/php74-openssl
databases/php74-pdo
* databases/php74-pdo_mysql
* databases/php74-pdo_sqlite
* devel/pear
security/pecl-mcrypt
archivers/php74-phar
www/php74-session
textproc/php74-simplexml
net/php74-soap
www/php74-tidy
textproc/php74-xml
* textproc/php74-xmlreader
textproc/php74-xmlwriter
* textproc/php74-xsl
archivers/php74-zip
archivers/php74-zlib
 
I'm sorry I have to bother you again, but the ports-mgmt/poudriere problem still persists. I'm using version 3.3.6, not devel. Tested with lang/php73 and its extensions with the same result:
Code:
===>   php73-pdo_mysql-7.3.26 depends on file: /usr/local/lib/php/20180731/pdo.so - not found
===>   Installing existing package /packages/All/php73-pdo-7.3.26.txz
[ptah.kitbg.com] Installing php73-pdo-7.3.26...
[ptah.kitbg.com] Extracting php73-pdo-7.3.26: .......... done
=====
Message from php73-pdo-7.3.26:

--
This file has been added to automatically load the installed extension:
/usr/local/etc/php/ext-20-pdo.ini
===>   php73-pdo_mysql-7.3.26 depends on file: /usr/local/lib/php/20180731/pdo.so - not found
*** Error code 1

Stop.
make: stopped in /usr/ports/databases/php73-pdo_mysql
=>> Cleaning up wrkdir
===>  Cleaning for php73-pdo_mysql-7.3.26
build of databases/php73-pdo_mysql | php73-pdo_mysql-7.3.26 ended at Sun Jan 24 19:23:23 EET 2021
 
Sorry for the delay!

I didn't use custom make.conf initially, now I have the following:
Code:
OPTIONS_UNSET+= DOCS X11 DEBUG
OPTIONS_SET+= CPU_OPTS OPTIMIZED_CFLAGS CPUFLAGS BUILD_OPTIMIZED
But it changes nothing.

I *guess* that the problem occurs only for ports depending on other PHP ports.
I tested with lang/php73 extensions with exactly same failure.
I can sadly reproduce the issue on brand new installation on number of machines. I've tested it on 4 machines, all running FreeBSD 12.2 and ports-mgmt/poudriere installed from ports.
 
I have an update:
My lang/php74 is built with ZTS support, thus the installed libraries are in /usr/local/lib/php/20190902-zts.
Port build fails because it looks for the libraries in /usr/local/lib/php/20190902/.
If I can change this I guess I'll manage to build everything in my ports-mgmt/poudriere!
 
Back
Top