systemed/potlatch3

Running Potlatch 3 with Wine

SomeoneElseOSM opened this issue · 11 comments

See attached, but stack trace is a fairly unhelpful "Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x7bc4ece2)."

backtrace.txt

This was on Ubuntu 18.04 (KDE), running via "wine64 Potlatch.exe". The machine has 16Gb memory.

Note that this seems to happen much less frequently now than previously (the things that changed are that it's the new version of Potlatch.exe and I've installed missing fonts).

Thanks - let's keep this as a single holding ticket for Wine issues.

One more thing (not a "falling over" issue, but only affects Wine) - would it be possible to display something more accurate for the os in the changeset tags at e.g. https://www.openstreetmap.org/changeset/96767044 ? https://stackoverflow.com/questions/7372388/determine-whether-a-program-is-running-under-wine-at-runtime#7372419 suggests a bunch of Wine-specific registry entries, but I've no idea how accessible the Windows registry is from Air.

It doesn't look particularly practical - it might be possible to hack the installer somehow so that it looks for the registry at that point and sets a P3 preference accordingly, but that's way beyond my Windows experience. It would probably be more practical to provide a "sticky" changeset tag which the user can edit in the Settings window.

A "sticky" changeset value would work fine too.

One more thought (not just Wine possibly) - are language settings available to P3? It's good to try and add changeset discussion comments in a language people might understand.

Yes, I believe so, though localisation is the big thing that I haven't looked at yet for P3!

Here's my conclusion after testing both versions:

Native app on 2011 AIR version adds lots of effort and complexity with no tangible benefits. Even though certificate alerts cease at one point, there are still issues with incomplete data being loaded and missing imagery tiles, PL3 sometimes displays an error message that the /map call didn't succeed without providing more details. Native app also crashes once in a while with segmentation faults. Rendering speed, overall performance and stability are clearly better when using wine.

I've just tried running P3 on a fairly low-end machine (a Chromebook with about 2Gb memory, running Ubuntu 18.04 via Crouton). Wine installs without any obvious issues. If I then do:

wine64 Potlatch.exe

I see an "Application Install" screen for Potlatch
Accept defaults, including "C:\Program Files (x86)"

Continue
I agree
The progress bar in "Installing Application" gets about half way across.

At this point the command line that wine64 was run from displays:

(bionic)ajtown@localhost:~/Downloads$ wine64 Potlatch.exe
002c:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
002c:fixme:console:AttachConsole stub ffffffff
0033:fixme:console:AttachConsole stub ffffffff
0036:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
003b:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
003b:fixme:console:AttachConsole stub ffffffff
003e:fixme:console:AttachConsole stub ffffffff
003e:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0043:fixme:sync:SetWaitableTimerEx (0xd0, 0x22bfde8, 0, (nil), (nil), (nil), 500) semi-stub
003e:fixme:nls:get_dummy_preferred_ui_language (0x8 0x33ed28 (nil) 0x33ed2c) returning a dummy value (current locale)
003e:fixme:nls:get_dummy_preferred_ui_language (0x8 0x33ed28 0x191320 0x33ed2c) returning a dummy value (current locale)
003e:fixme:pulse:AudioSessionControl_RegisterAudioSessionNotification (0x1c4160)->(0x1ad408) - stub
003e:fixme:pulse:AudioSessionControl_UnregisterAudioSessionNotification (0x1c4160)->(0x1ad408) - stub
0049:fixme:console:AttachConsole stub ffffffff
0049:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
004f:fixme:sync:SetWaitableTimerEx (0xd0, 0x22bfde8, 0, (nil), (nil), (nil), 500) semi-stub
0049:fixme:nls:get_dummy_preferred_ui_language (0x8 0x33ed28 (nil) 0x33ed2c) returning a dummy value (current locale)
0049:fixme:nls:get_dummy_preferred_ui_language (0x8 0x33ed28 0x1723a8 0x33ed2c) returning a dummy value (current locale)
0049:fixme:pulse:AudioSessionControl_RegisterAudioSessionNotification (0x1c6f30)->(0x17fa48) - stub
0049:fixme:pulse:AudioSessionControl_UnregisterAudioSessionNotification (0x1c6f30)->(0x17fa48) - stub
0049:fixme:imm:ImmReleaseContext (0x10096, 0x36c5eb8): stub
0057:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
005c:fixme:sync:SetWaitableTimerEx (0xd4, 0x22bfde8, 0, (nil), (nil), (nil), 500) semi-stub
0057:fixme:nls:get_dummy_preferred_ui_language (0x8 0x33ed28 (nil) 0x33ed2c) returning a dummy value (current locale)
0057:fixme:nls:get_dummy_preferred_ui_language (0x8 0x33ed28 0x191768 0x33ed2c) returning a dummy value (current locale)
0057:fixme:pulse:AudioSessionControl_RegisterAudioSessionNotification (0x1b57e0)->(0x1adb10) - stub
0057:fixme:pulse:AudioSessionControl_UnregisterAudioSessionNotification (0x1b57e0)->(0x1adb10) - stub

And that's basically that - it just sits there, not using much memory or CPU. It's pretty repeatable, and it doesn't matter if I choose a different installation directory or the other Potlatch download. It may just be that this machine is too low a spec, but it'd be good to know why the install just seemed to grind to a halt.

I also did try and install Air from https://airsdk.harman.com/download , but it's not clear what I need out of that or how to "install" it (I presumably don't need the whole SDK, which ships with Android installers and all sorts).

The "ntlm_auth was not found or is outdated" error seems moderately common with Wine - https://forum.winehq.org/viewtopic.php?t=33023 and https://askubuntu.com/questions/1090094/wine-missing-ntlm-auth-3-0-25 seem relevant.

I also did try and install Air from https://airsdk.harman.com/download , but it's not clear what I need out of that or how to "install" it (I presumably don't need the whole SDK, which ships with Android installers and all sorts).

Yep, Harman appear to have decided that they're not going to provide the AIR runtime installer, and that they'd rather we ship Mac/Windows executables. I'll update the docs accordingly. You might be able to download it from Adobe still (https://labs.adobe.com/downloads/air.html) but who knows how long this'll stay up.

The "ntlm_auth was not found or is outdated" error seems moderately common with Wine - https://forum.winehq.org/viewtopic.php?t=33023 and https://askubuntu.com/questions/1090094/wine-missing-ntlm-auth-3-0-25 seem relevant.

"apt install winbind" does make that error go away (and makes sense, as the machine that I saw that on didn't have any SMB client on it whereas usually there would be one). The Potlatch installation still stops at the same distance down the progress bar though.

FWIW the inbuilt "~/.wine/drive_c/Program Files/Windows NT/Accessories/wordpad.exe" runs OK and looks like wordpad. I'll continue investigating.

The resolution for the problem at #5 (comment) above was to download the zip file not the self-extracting executable,

I've updated https://www.openstreetmap.org/user/SomeoneElse/diary/395603 to reflect that.

One more thought - I notice that in the Potlatch Windows .zip there's a "fonts" directory that includes various DejaVu fonts. I wonder whether it would be possible (technically or legally) to create a "Linux" version of the Windows .zip (still designed to be run under Wine), but also install the missing Windows fonts as well?

Alternatively, a version that didn't rely on system fonts at all and used fonts in the fonts directory for everything?