[MacPorts] #51287: Inkscape crashes on startup if enchant is installed with +applespell (was: Inkscape crash on startup (OS X 10.8))

MacPorts noreply at macports.org
Mon May 2 14:02:39 PDT 2016

#51287: Inkscape crashes on startup if enchant is installed with +applespell
  Reporter:  jo.vanoost@…      |      Owner:  devans@…
      Type:  defect            |     Status:  assigned
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:
Resolution:                    |   Keywords:
      Port:  inkscape enchant  |
Changes (by devans@…):

 * cc: raimue@… (added)
 * version:  2.3.4 =>
 * port:  inkscape => inkscape enchant


 Thanks, Jo.

 After a lot of fooling around I was able to reproduce your problem on
 10.8.  As you suggest, there is a problem using the AppleSpell backend
 with enchant.  The crash occurs when gtkspell attempts to initialize
 enchant when enchant has been built with this backend.  The error that
 occurs is symptomatic of the situation where an object has been allocated
 but prematurely freed before being used. By this time, the original
 pointer has been reallocated to something else (NSCFType in this case)
 which doesn't accept the selector from the original object call.  So the
 crash is an enchant/AppleSpell problem.

 From the inkscape point of view, this is all moot because the inkscape
 code assumes that enchant has been installed with the aspell backend.  If
 aspell is not installed at build time inkscape will disable the spell
 check functionality, partially at least, by not including the SpellCheck
 menu item in the Text menu.  Unfortunately the text window code will still
 try and initialize gtkspell (and thereby enchant) if gtkspell is installed
 regardless of whether aspell is installed.  These two need to be
 coordinated in inkscape to avoid problems.  I note that this is a new
 error because enchant was recently modified to install the AppleSpell
 backend by default rather than aspell as it did previously.  Need to
 review this too.

 At any rate, in order for spell checking to work in inkscape, you need to
 do the following:

   * Make sure that aspell is installed with at least one language
 dictionary.  This dictionary should correspond to whatever language your
 machine is configured to use.
   * Make sure that enchant is installed with the aspell backend AND that
 the AppleSpell backend is NOT installed.  Currently this means enchant
 +aspell -applespell.  Note that, as currently configured, enchant will
 install aspell and the aspell English dictionary, aspell-dict-en, if they
 are not already installed.
   * Once aspell and enchant are properly installed, you need to rebuild
 inkscape so it will properly configure spell checking.

 Command sequence for this would be:

 sudo port install aspell aspell-dict-xx
 sudo port install enchant +aspell -applespell
 sudo port -n upgrade --force inkscape

 This allows inkscape to start up without errors for me and spell checking
 works.  You should see SpellChecking at the bottom of the text menu and
 selecting it will open a spell checking dialog in the dialog pane on the
 right side of your screen.  If you then create a text object and type in
 some text you should see the text echoed in the spell checking dialog and
 clicking the start button will cause it to start spell checking.

 Please give this a try and let me know if it works for you as well.  If
 so, I will massage the relevant ports as necessary to ensure that inkscape
 installs this way by default.

 Copying raimue as he made the change in enchant (r145039) that
 precipitated this issue. Due to this issue, I would prefer to see enchant
 +aspell as the default variant, at least until the AppleSpell crash issue
 is resolved.

Ticket URL: <https://trac.macports.org/ticket/51287#comment:4>
MacPorts <https://www.macports.org/>
Ports system for OS X

More information about the macports-tickets mailing list