[MacPorts] #29561: jslint fails to install due to Spidermonkey segfault in variant test

MacPorts noreply at macports.org
Mon May 23 06:41:30 PDT 2011


#29561: jslint fails to install due to Spidermonkey segfault in variant test
---------------------------------------+------------------------------------
 Reporter:  macports.org@…             |       Owner:  macports-tickets@…                   
     Type:  defect                     |      Status:  new                                  
 Priority:  Normal                     |   Milestone:                                       
Component:  ports                      |     Version:  1.9.2                                
 Keywords:  spidermonkey segfault      |        Port:  jslint                               
---------------------------------------+------------------------------------
 When trying to install jslint, I get the following error:

 {{{
 > sudo port install jslint
 --->  Computing dependencies for jslint
 --->  Configuring jslint
 Error: You need to install spidermonkey with the +fileobject variant in
 order to use jslint.
 Error: Target org.macports.configure returned: incompatible spidermonkey
 installation
 Log for jslint is at:
 /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_jslint/main.log
 Error: Status 1 encountered during processing.
 To report a bug, see <http://guide.macports.org/#project.tickets>
 }}}
 Now the error message it reports does not really make sense considering:
 {{{
 > port installed spidermonkey
 The following ports are currently installed:
   spidermonkey @1.7.0_5+fileobject (active)
 }}}
 I looked for the test performed in the portfile, the test is the
 following:
 {{{
 exec ${prefix}/bin/js -e "new File();"
 }}}
 which, when tried from the command-line, yields:
 {{{
 > js -e "new File();"
 [1]    95301 segmentation fault  js -e "new File();"
 }}}
 (this is with a freshly installed spidermonkey, by the way)

 Makes sense that the jslint configure step would yield an error.

 Still, the following passes with flying colors:
 {{{
 js -e "File"
 }}}
 while the following does not:
 {{{
 js -e "FooObject"
 }}}
 Would it be possible to avoid the {{{new File()}}} stuff, and use a bare
 {{{File}}}, in the test? It is sufficient to get the js process to bail
 out: (with a reinstalled spidermonkey without {{{+fileobject}}})
 {{{
 > js -e File
 -e:1: ReferenceError: File is not defined
 }}}

 Note: the return code for the {{{js}}} process is {{{3}}} for a
 ReferenceError (e.g. FooObject not defined) and {{{139}}} for the
 segfault. I do not know if it's possible to test for a precise return
 code.

 PS: should I report the spidermonkey segfault as a different bug?

-- 
Ticket URL: <https://trac.macports.org/ticket/29561>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list