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

MacPorts noreply at macports.org
Mon May 23 03:19:51 PDT 2016

#51287: Inkscape crashes on startup if enchant is installed with +applespell
  Reporter:  jo.vanoost@…      |      Owner:  jeremyhu@…
      Type:  defect            |     Status:  new
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:
Resolution:                    |   Keywords:  lion
      Port:  inkscape enchant  |

Comment (by devans@…):

 I guess I'm not being clear

 inkscape will not enable the spellchecking item in the Text menu if aspell
 is not available at build time.  See configure.ac.  Thus aspell needs to
 be a dependency of inkscape.

 inkscape uses gtkspell which uses enchant to spellcheck words in a text
 object.  This part will work with any enchant backend. Mispelled words are
 highlighted (outlined) in red.

 However, the code that allows you to add words to a dictionary bypasses
 enchant and uses aspell api directly.  Thus, new words added are added to
 the aspell dictionary only and have no effect on the spellcheck
 highlighting via enchant unless enchant is using aspell as the backend.

 This can be demonstrated as follows:

 select spellchecking in the text box so that you have the inkscape
 workspace on the left and the spellcheck dialog on the right.

 create a text box in the workspace and enter a mispelled word (e.g.
 libertee).  When you hit the start button in the spellcheck dialog the
 word will be highlighted in red.

 Then using the dialog try to add the word to the dictionary.  If enchant
 +aspell is active, the highlighting of the word will immediately disappear
 since the word is now in the dictionary. Subsequent usages of this word
 will not be highlighted. This is the proper behavior.

 However, if enchant does not have +aspell selected then this will have no
 effect, the word will still be highlighted because the word was added to
 an aspell dictionary not the one enchant is using. Only aspell will work
 here as the code is using the aspell api directly.

 Thus there are two requirements for full functionality:  inkscape must
 depend on aspell to enable the spellcheck item in the text menu and
 enchant +aspell must be installed so that the spellchecking code and the
 code for adding words to the dictionary are using the same dictionary
 (which has to be aspell).

 I admit that this is a poor way to write the spellchecking code but this
 is the way it is.

 There is other funny things as well.  For instance, although the
 appearance of the spellcheck item in text menu is dependent upon having
 aspell available at build time, the spellcheck dialog is still enabled in
 the code.  So if you use a properly configured version of inkscape to
 display the spellcheck dialog using the text menu item and then quit and
 run a version built without aspell, the spellcheck dialog will appear on
 startup because inkscape remembers the window configuration from the
 previous run but if you close the dialog there is no way to open it again
 because the text menu item is missing.  This can make you think it's
 working without aspell but its really not (or only partially).

 This all needs work upstream.

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

More information about the macports-tickets mailing list