[MacPorts] #51287: Inkscape crashes on startup if enchant is installed with +applespell

MacPorts noreply at macports.org
Tue May 3 12:39:42 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  |
-------------------------------+----------------------

Comment (by devans@…):

 Replying to [comment:6 raimue@…]:
 > Thank you for the analysis, David.
 >
 > The idea of switching to enchant +applespell as default was meant to
 reduce the setup overhead for new users. As spell checking in the system
 is already configured for local language, users do not need to install
 extra dictionaries. Also, suggestions and custom additions would be
 adopted automatically.
 >
 > It is interesting to see it actually crashes inside the call for
 [[https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSSpellChecker_Class/#//apple_ref/occ/clm/NSSpellChecker/sharedSpellChecker|'[NSSpellChecker
 sharedSpellChecker]']], which is provided by AppKit.framework. I don't
 think we have any more influence on the underlying libraries. This crash
 might even be specific to OS X 10.8.
 >
 > To add some data point, I cannot reproduce this crash on OS X 10.10.5
 Yosemite:
 > {{{
 > $ port -q installed enchant inkscape
 >   enchant @1.6.0_4+applespell (active)
 >   inkscape @0.91_14+strict+x11 (active)
 > }}}

 Same here so it appears to be OS X version dependent.  I can check 10.8+
 but not earlier.

 >
 > For the inkscape issue, it looks like inkscape picks up aspell on build
 time opportunistically without declaring a dependency. This functionality
 should be disabled or the explicit dependency must be added.

 Agreed.  The current dependencies were based on the expectation that
 enchant would configure with aspell by default (as it used to).  The
 problem is that inkscape does the spellchecking in two pieces.  It uses
 gtkspell -> enchant to transparently check spelling and underline spelling
 errors on the contents the text widget used to display a text object but
 then accesses aspell directly (not via enchant) to find suggested
 spellings, add to the dictionary, etc.  Basically everything that is done
 in the spell checking dialog in the side pane.  So for things to work
 consistently, enchant needs to be configured with aspell.  Not great.

 In addition, during configuration they use the presence of aspell to
 indicate that the spell checking item should be enabled in the text menu
 but use an independent check for gtkspell to enable its use in the text
 widget.  So it will try to use gtkspell even if aspell isn't available.
 A few things to think about upstream.

 I can use require_active_variants to mandate enchant +aspell but that will
 break the default build on the buildbots if enchant isn't configured with
 aspell by default.  As the port description says, enchant was originally
 designed to use an aspell-like API. I believe this is generally the
 default on most Linux platforms.

 If applespell didn't break on 10.8, I'd suggest enchant +applespell
 +aspell by default.

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


More information about the macports-tickets mailing list