Opened 17 years ago
Closed 15 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)
Change History (11)
Changed 17 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Attachment: | Portfile.diff added |
---|
comment:1 Changed 17 years ago by jmroot (Joshua Root)
Cc: | jwa@… removed |
---|---|
Owner: | changed from macports-tickets@… to jwa@… |
comment:2 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Summary: | BUG: php4 fails if sablotron was build with javascript variant → BUG: php4 fails if sablotron was built with javascript variant |
---|
comment:3 Changed 17 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 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Cc: | mcalhoun@… added |
---|
Cc Me!
comment:5 Changed 16 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 16 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 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Attachment: | Portfile.2.diff added |
---|
comment:7 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
I made the changes to sablotron in r43258 and uploaded a modified patch to php4.
comment:9 Changed 15 years ago by jyrkiwahlstedt
Resolution: | → fixed |
---|---|
Status: | new → closed |
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)
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.