#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 Comment: 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