Quackle isn't usable on macOS Mojave
laeuter opened this issue · 7 comments
I downloaded the .dmg this morning from quackle.org, installed Quackle into Applications, and upon double-clicking, the application started.
I cannot
- start a new game or
- generate a new word list.
A dialog 'Quackle cannot load its lexicon files.' appears.
When I want to add a new lexicon under 'Settings', it allows me to find a one-uppercase-word-per-row text file, but the 'Word count' remains at 0. Umlaut characters are not an issue. But the Alphabet might be, since the dropdown is empty.
It appears that Quackle is unable to find its data directory, but then, it shouldn't even start.
I would prefer to view the current data directory and set it if Quackle has self-configured it wrong.
Could it be that "Quackle.app/Contents/data" in settings.cpp is missing a 'Resources'?
With the available data, it is hard for me to guess how to proceed.
Did you download 1.0.4? From where (i.e., from the GitHub release page, quackle.org, or somewhere else)?
Can you provide a screenshot of your Settings pane? Which lexicon(s) have you been trying to use?
FWIW the problem isn't Mojave generally (assuming you're using 1.0.4). I developed and released 1.0.4 from a Mojave system, and testing it today with the latest Mojave updates, everything still works for me.
I had downloaded quackle-1.0.4-macos.dmg from quackle.org.
Attached you find the requested screenshot:
.
There are no obvious lexicons to use.
This is a screenshot when I have clicked 'Edit...' in the Lexicon row of the Settings screen.
.
The Alphabet dropdown is empty. In that situation I tried to import one of my own wordlists, but that failed (I suppose due to missing alphabets; both with and without umlauts).
The button 'Build lexicon database...' crashes the program immediately.
And finally an ls -lR of /Applications/Quackle.app of my freshly installed version:
quackle-tree.txt
Of course I could try to ramp up a development environment for Quackle to set some breakpoints. But it's weird that a fresh install isn't functional. It's an 2012 27" iMac with 8 GB RAM, with German language and keyboard, up-to-date updates.
Is it correct that a German wordlist and/or localization can only be added by recompiling the whole program?
Perchance does your user login on your system have non-ASCII characters in it? In looking at your GitHub username, I'm thinking maybe yes. I've been thinking about this, and I think I finally have tracked down how this might fail...
- If you have App Translocation in effect, the app bundle essentially runs from a directory that has your username in it
- Quackle's code for getting that user directory is not correctly preserving the encoding when getting the path from Cocoa calls and storing it in a
QString
.
If I'm right, then you can probably work around the problem by disabling App Translocation, which you should be able to do by clearing the quarantine attribute on the Quackle bundle.
xattr -dr com.apple.quarantine /Applications/Quackle.app
I think I finally know how to fix this.
Hi John,
thanks for looking into my issue. My login is completely ASCII.
Concerning your proposition, I first printed the attribute, and it was present on Quackle.app, coming from Safari. Then I deleted the attribute (and checked by a failing print), but Quackle still didn't start.
To track down the actual string manipulations, I probably make Quackle compile on my machine, then I could dump the strings' contents. But I suppose that might take some days.
Have a wonderful year 2020!
Martin.
Well, that suggests that I could hard-code the absolute path /Applications/Quackle.app
as a fallback, and it would probably work. But that was the only theory I had as to why it might fail for you and work for others, and I'm not happy about not understanding what's going on here.
But nonetheless, I do think there's an encoding problem. It's apparently not affecting you, but it could affect others, and I should fix that, too.
My Catalina computer being the more powerful one, I installed Qt 5.9.8 (open source) on it, and the program built fine, using the same source tree as in November.
I was able to start the program inside Xcode 11.3. The Debug executable also worked without Xcode running. I was able to play an ods5 (which is apparently my default) as well as a csw19 game. The program even worked when having been moved to my /Application folder, using the same settings as from Xcode (I suppose, the settings are kept inside the application bundle).
That essentially means that I have a running Quackle instance, but that doesn't help with debugging this issue.