[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
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
More information about the macports-tickets
mailing list