Solved Can't build some php74-modules with Zend Thread Safety enabled using synth

I use synth to build my ports, mainly because I have some rather complex Apache setups with tweaked configs that are not shipped in the default packages.

This initially worked fine, everything worked as expected. Later I enabled Zend Thread Safety (ZTS) in PHP, that apparently broke the dependencies of the modules so I had to rebuild them. For some reason a bunch of extensions do not build anymore, which ones seems to change a bit randomly, right now it is:
  • textproc/php74-xsl
  • databases/php74-pdo_sqlite
  • databases/php74-pdo_mysql
When I have a look at the build-logs of synth I see:

Code:
The first one will only work if you have a /usr/local/bin/perl,
the second will work as long as perl is in PATH.
===>   php74-xsl-7.4.1 depends on package: autoconf>0 - found
===>   Returning to build of php74-xsl-7.4.1
===>   php74-xsl-7.4.1 depends on file: /usr/local/lib/php/20190902/dom.so - not found
===>   Installing existing package /packages/All/php74-dom-7.4.1.txz
Installing php74-dom-7.4.1...
Extracting php74-dom-7.4.1: .......... done
=====
Message from php74-dom-7.4.1:

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

Stop.
make: stopped in /xports/textproc/php74-xsl

In pdo_mysql and pdo_squlite it needs pdo, and has the same kind of error.

My guess is this broke because of ZTS (Zend Thread Safety), if I install the stuff I see that it is looking for the files in /usr/local/lib/php/20190902-zts, while for the non-thread version it is /usr/local/lib/php/20190902. So somehow some of the modules do not seem to get this information but I can't seem to figure out how to enforce that.

I tried synth force textproc/php74-xsl but not much luck so far.

Any ideas?
 
Never mind, noticed that I should use the FastCGI module and not the Zend Thread Safety, which means I can compile it with default configuration and that seems to work.
 
If anyone else runs into this, removing all of the php74* files in /var/synth/live_packages/All and then running synth prepare-system (and then upgrading) seems to work for me. There’s likely a better / more permanent fix, but it doesn’t take long to build.
 
Back
Top