MacOS – MacPort – jslint fails to install due to incompatible spidermonkey installation

installmacosmacports

Problem Description in Brief:
I am trying to install jslint which depends on the spidermonkey macport. Installation of spidermonkey is successful, however, it appears to be incompatible with the installation of jslint. Consequently, jslint is not installed.

Problem Description in Detail:
When I tried to install jslint, it successfully installed its dependency, spidermonkey, however, failed to install jslint. Below is the error message that was returned, which I copied and pasted from the log that was produced.

:debug:configure configure phase started at Mon Nov 11 13:31:53 EST 2013
:notice:configure --->  Configuring jslint
:debug:configure Using compiler 'Xcode Clang'
:debug:configure Executing org.macports.configure (jslint)
:error:configure You need to install spidermonkey with the +fileobject variant in order to use jslint.
:error:configure org.macports.configure for port jslint returned: incompatible spidermonkey installation
:debug:configure Error code: NONE
:debug:configure Backtrace: incompatible spidermonkey installation
    while executing
"$procedure $targetname"
:info:configure Warning: targets not executed for jslint: org.macports.activate org.macports.configure org.macports.build org.macports.destroot org.macports.install
:notice:configure Please see the log file for port jslint for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_jslint/jslint/main.log

This is a problem that has been reported to the MacPorts project, however, closed due to it being 'invalid'. See the following link.

http://trac.macports.org/ticket/37053

So, my question is, how do I go about installing spidermonkey with the +fileobject variant in order to install and use jslint? Furthermore, is there a way to configure macports so I don't have to do this each time I try to upgrade my macports?

Any advice/suggestions on how to resolve this would be appreciated.

Best Answer

If you don't have spidermonkey installed, use sudo port install jslint +fileobject. If you already have it installed, you need to rebuild it with the +fileobject variant: sudo port upgrade --enforce-variants spidermonkey +fileobject and re-try installing jslint.