• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

php73-xsl baut nicht in poudriere

Errorsmith

Kompiliertier
Themenstarter #1
Hi

Ich habe mir vor ein paar Wochen ein poudriere gebaut und spiele nun etwas damit herum. Zum Testen habe ich also einige Pakete bauen lassen, unter anderem php73-xsl welches dann so endet:
Code:
===>   php73-xsl-7.3.4_1 depends on package: autoconf>0 - found
===>   Returning to build of php73-xsl-7.3.4_1
===>   php73-xsl-7.3.4_1 depends on file: /usr/local/lib/php/20180731/dom.so - not found
===>   Installing existing package /packages/All/php73-dom-7.3.4_1.txz
[120_x64-default-job-02] Installing php73-dom-7.3.4_1...
[120_x64-default-job-02] Extracting php73-dom-7.3.4_1: .......... done
===>   php73-xsl-7.3.4_1 depends on file: /usr/local/lib/php/20180731/dom.so - not found
*** Error code 1

Stop.
make: stopped in /usr/ports/textproc/php73-xsl
=>> Cleaning up wrkdir
===>  Cleaning for php73-xsl-7.3.4_1
build of textproc/php73-xsl | php73-xsl-7.3.4_1 ended at Thu Apr 11 07:25:05 CEST 2019
build time: 00:00:10
!!! build failure encountered !!!
Da er das Paket "php73-dom" kennt und installiert um das dom.so danach trotzdem nicht zu finden, stehe ich etwas auf dem Schlauch...
Wie kann ich sowas auflösen? Das Problem tritt in verschiedenen Varianten bei mehreren PHP Modulen auf (z.B. auch php73-phar mit Abhängigkeit hash.so)

Die jail ist eine 12.0 / x64 jail. Host und Portstree sind soweit aktuell.

Grüße,
Errorsmith
 
#2
Schau mal in das Paket rein, ob dom.so auch vorhanden ist, bzw. ob es in der Verzeichnisstruktur an gewünschter Stelle liegt:

Code:
tar -tzf /packages/All/php73-dom-7.3.4_1.txz
Rob
 

Errorsmith

Kompiliertier
Themenstarter #3
Hi

Sieht erstmal so aus:
Code:
+COMPACT_MANIFEST
+MANIFEST
/usr/local/share/licenses/php73-dom-7.3.4_1/catalog.mk
/usr/local/share/licenses/php73-dom-7.3.4_1/LICENSE
/usr/local/share/licenses/php73-dom-7.3.4_1/PHP301
/usr/local/lib/php/20180731-zts/dom.so
/usr/local/include/php/ext/dom/dom_ce.h
/usr/local/include/php/ext/dom/xml_common.h
/usr/local/include/php/ext/dom/dom_fe.h
/usr/local/include/php/ext/dom/php_dom.h
/usr/local/include/php/ext/dom/config.h
/usr/local/include/php/ext/dom/dom_properties.h
/usr/local/etc/php/ext-20-dom.ini
Ich finde auch keinen Hinweis darauf das die Installation fehlschlagen würde...
Auf den zweiten Blick ist aber der Pfad nicht richtig - er sucht in "/usr/local/lib/php/20180731/dom.so", installiert aber nach "/usr/local/lib/php/20180731-zts/dom.so"

Die Frage ist: Warum?

Grüße,
Errorsmith
 
#4
Offensichtlich werden die Extensions mit ZTS gebaut, PHP aber ohne.
Das muss konsistent sein.

Ob PHP mit ZTS gebaut ist, kannst du hiermit abfragen:
Code:
$ php -i | grep 'Thread Safety'
Rob
 

Errorsmith

Kompiliertier
Themenstarter #5
Ah - Das dürfte es gewesen sein. Ich hatte in den options die "ZTS" an. Kaffeemangel oder so vermute ich.
Wobei ich nun keine Option gefunden habe der jeweiligen Extension "ZTS" auf den Weg zu geben...

Ich baue das PHP nun nochmal "ohne" und guck ob das besser klappt.

Danke für den Hinweis :-)

Grüße,
Errorsmith
 

Errorsmith

Kompiliertier
Themenstarter #6
Nachtrag:
Hat geklappt. Nun hab ich ein Problem mit binutils & boostlib - da mache ich aber ggf einen neuen Thread für auf falls ich die Lösung nicht allein finde...
Grüße,
Errorsmith