Opened 16 years ago

Closed 14 years ago

#14795 closed defect (fixed)

BUG: php4 fails if sablotron was built with javascript variant

Reported by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) Owned by: jyrkiwahlstedt
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: php4, sablotron

Description

Attached is a proposed patch to allow php4 to recognize if
sablotron was build with the javascript variant.

Attachments (2)

Portfile.diff (614 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 16 years ago.
Portfile.2.diff (335 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 15 years ago.

Download all attachments as: .zip

Change History (11)

Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.diff added

comment:1 Changed 16 years ago by jmroot (Joshua Root)

Cc: jwa@… removed
Owner: changed from macports-tickets@… to jwa@…

comment:2 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: BUG: php4 fails if sablotron was build with javascript variantBUG: php4 fails if sablotron was built with javascript variant

Ugly fix. There must be a way to do this using MacPorts APIs without resorting to shelling out to a new "port" process.

In what way does the php4 build fail if sablotron is built with the javascript variant? What error message?

In case anyone was wondering, this shouldn't affect php5 or php5-devel since they don't depend on sablotron.

comment:3 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Basically, php4 needs to know about the javascript library spidermonkey.
The specific error is below.

I agree that the fix is ugly, but I do not know of a better fix within the MacPorts API.
To my knowledge, there is no "variant_isset" command for previously installed ports.

The only solutions I have thought of are to:

  • Use the ugly fix.
  • Cease making javascript a variant in sablotron and simply have it be part of the port (thus ensuring "--with-sablot-js=${prefix}" is always correct).
  • Have php4 +xlst depend on spidermonkey and always use "--with-sablot-js=${prefix}."
  • Have php4 test if the file ${prefix}/lib/libjs.dylib exists and use "--with-sablot-js=${prefix}" if it does.

If "--with-sablot-js=${prefix}" is used and spidermonkey is not installed, the error is:

checking for JS_GetRuntime in -ljs... no
configure: error: libjs not found. Please check config.log for more information.

If "--with-sablot-js=${prefix}" is not used, and sablotron links against it, the error is:

DEBUG: Executing org.macports.destroot (php4)
DEBUG: Environment: 
DEBUG: Assembled command: 'cd "/Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/php-4.4.8" && make install-cli install-pear install-build install-headers install-programs INSTALL_ROOT=/Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot PHP_PEAR_INSTALL_DIR=/Users/mcalhoun/opt/local/lib/php DESTDIR=/Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot'
Installing PHP CLI binary:        /Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot/Users/mcalhoun/opt/local/bin/
Installing PHP CLI man page:      /Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot/Users/mcalhoun/opt/local/share/man/man1/
Installing PEAR environment:      /Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot/Users/mcalhoun/opt/local/lib/php4/
dyld: Symbol not found: _JS_ConvertStub
  Referenced from: /Users/mcalhoun/opt/local/lib/libsablot.0.dylib
  Expected in: flat namespace

make[1]: *** [install-pear-packages] Trace/BPT trap
make: *** [install-pear] Error 2
Error: Target org.macports.destroot returned: shell command " cd "/Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/php-4.4.8" && make install-cli install-pear install-build install-headers install-programs INSTALL_ROOT=/Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot PHP_PEAR_INSTALL_DIR=/Users/mcalhoun/opt/local/lib/php DESTDIR=/Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot " returned error 2
Command output: Installing PHP CLI binary:        /Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot/Users/mcalhoun/opt/local/bin/
Installing PHP CLI man page:      /Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot/Users/mcalhoun/opt/local/share/man/man1/
Installing PEAR environment:      /Users/mcalhoun/opt/local/var/macports/build/_Users_mcalhoun_Desktop_Test_MacPorts_mports_www_php4/work/destroot/Users/mcalhoun/opt/local/lib/php4/
dyld: Symbol not found: _JS_ConvertStub
  Referenced from: /Users/mcalhoun/opt/local/lib/libsablot.0.dylib
  Expected in: flat namespace

make[1]: *** [install-pear-packages] Trace/BPT trap
make: *** [install-pear] Error 2

Warning: the following items did not execute (for php4): org.macports.activate org.macports.destroot org.macports.install
Error: Status 1 encountered during processing.

comment:4 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… added

Cc Me!

comment:5 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Since I don't have php4 installed anymore, should I close this ticked as "won't fix"?

comment:6 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

Port: php4 sablotron added

I haven't done anything to fix it, so it's probably still a bug, so the ticket should stay open.

The cleanest solution seems to be to get rid of the +javascript variant in sablotron and always enable JavaScript support. Then we don't have to do anything special in the php4 port.

Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.2.diff added

comment:7 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

I made the changes to sablotron in r43258 and uploaded a modified patch to php4.

comment:8 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:9 Changed 14 years ago by jyrkiwahlstedt

Resolution: fixed
Status: newclosed

I'll close this one, as according to previous comments the problem has been fixed (AND php4 support has been discontinued by PHP team more than two years ago)

Note: See TracTickets for help on using tickets.