Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quackle isn't usable on macOS Mojave #101

Open
laeuter opened this issue Nov 29, 2019 · 7 comments
Open

Quackle isn't usable on macOS Mojave #101

laeuter opened this issue Nov 29, 2019 · 7 comments
Assignees
Labels

Comments

@laeuter
Copy link

laeuter commented Nov 29, 2019

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.

@jfultz
Copy link
Member

jfultz commented Dec 1, 2019

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.

@laeuter
Copy link
Author

laeuter commented Dec 1, 2019

I had downloaded quackle-1.0.4-macos.dmg from quackle.org.

Attached you find the requested screenshot:
Settings pane.
There are no obvious lexicons to use.

This is a screenshot when I have clicked 'Edit...' in the Lexicon row of the Settings screen.
Configure Lexicon.
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?

@jfultz
Copy link
Member

jfultz commented Jan 4, 2020

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.

@ChristophHaenel
Copy link

ChristophHaenel commented Jan 4, 2020 via email

@laeuter
Copy link
Author

laeuter commented Jan 4, 2020

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.

@jfultz jfultz self-assigned this Jan 4, 2020
@jfultz
Copy link
Member

jfultz commented Jan 5, 2020

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.

@jfultz jfultz added the bug label Jan 5, 2020
@laeuter
Copy link
Author

laeuter commented Jan 8, 2020

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants