snapcrafters / scummvm

A community-maintained package to easily install ScummVM on Linux
MIT License
7 stars 3 forks source link

Launching on Ubuntu 16.04 32 bit fails #20

Closed lotharsm closed 4 years ago

lotharsm commented 4 years ago

I got contacted by a user who has issues with running the ScummVM Snap on his 16.04 32 Bit installation. I could replicate the issue on a clean VM. Launching ScummVM fails with the following error message:

 [ ! -f /home/anus/snap/scummvm/3751/.config/scummvm/.added-games-bundle ]
exec /snap/scummvm/3751/bin/scummvm
dbus[1926]: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../../dbus/dbus-message.c line 1362.
Aborted (core dumped)

Any idea what's going on here? I'm currently trying to update my VM to 18.04 in order to try to narrow it down to either 16.04 or the 32 bitness.

lotharsm commented 4 years ago

I just updated to 18.04 and get the issue here too. Since it was working fine on 18.04 64 bit, I assume that there are issues with the 32 bit core18.

Please note that at least the sameboy and the supertux snap fail with the same error message. Maybe we should escalate this?

popey commented 4 years ago

Huh! That's a strange one indeed! I have reproduced on an i386 18.04 VM. Looks very much like this bug https://bugs.launchpad.net/ubuntu/+source/libsdl2/+bug/1775067

mcphail commented 4 years ago

I'm sure I remember something about (unrelated) SDL2 problems when 18.04 was first released, and is the reason why I hadn't migrated one of my snaps to core18. Perhaps we need to build a hand-rolled version of SDL2 from upstream or find a volunteer to maintain a PPA? Or beat onwards to core20, assuming there's enough 32-bit support in there to keep things running?

(Or slip back to core from core18, which might be the easier solution in the short term?).

It'd be horrible to go back to SDL1 here.

lotharsm commented 4 years ago

I'm all in for core20 :)

While investigating this issue, I noticed that almost each and every snap I tried was broken, so this is a huge issue indeed. Reverting back to SDL1 is no option, I'd rather drop 32 bit support completely.

Is core20 ready to do some testing?

mcphail commented 4 years ago

Last time I tried it kind-of worked but the gnome extension wasn't ready yet. That was several weeks ago, though, so things might have moved on. I don't know how much support there is for 32-bit in core20, given that Ubuntu 20.04 is only rolling with a reduced subset of 32-bit libraries. Does @popey know?

lotharsm commented 4 years ago

I tried to quickly build ScummVM with the core20 snap, but it fails with

Launching a VM.
Launched: snapcraft-scummvm                                                     
error: no changes of type "auto-refresh" found                                  
2020-05-20T15:33:20Z INFO Waiting for restart...
snapd 2.44.3 from Canonical✓ installed
core20 20 from Canonical✓ installed
Source path "/tmp/tmpg1r1r9_o/core18.snap" does not exist

even though I'm using a clean multipass environment. Same happens with LXD...

mcphail commented 4 years ago

Yes - you'll probably need to use the candidate or edge channels for snapcraft. I see that snapcraft 4.0 is presently being rolled out so you might prefer to wait a day or 2.

lotharsm commented 4 years ago

Ah, thanks. Another idea - what do you think about shipping a self compiled SDL2 version with the snap? I'm only afraid it could lead to other unrelated issues making it harder to debug - I don't even know if simply building an updated build will fix the issue on 32 bit or if it's more of an "underlying" issue.

mcphail commented 4 years ago

Looks as if there might be an easier way. Setting "DBUS_FATAL_WARNINGS: 0" in the environment variables might be all that is needed. I'm building a fork to test this but you might be faster building one yourself to try.

lotharsm commented 4 years ago

Thanks, rebuilding now.

lotharsm commented 4 years ago

It looks like I'm unable to build on 32bit at all :(

LXD errors out with Requested architecture isn't supported by this host., multipass cannot be installed since the multipass snap is only available for amd64. Any ideas?

mcphail commented 4 years ago

I'm currently trying snapcraft remote-build --build-on i386 . If it works I'll let you know.

mcphail commented 4 years ago

If you have an i386 machine/VM handy, can you try https://launchpad.net/~njmcphail/+snap/snapcraft-scummvm-6e7ed8/+build/965610/+files/scummvm_2.2.0git-5583-g4e0096bb9c_i386.snap ?

lotharsm commented 4 years ago

Yes, it works :)

The error message

dbus[3987]: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../../dbus/dbus-message.c line 1362.
This is normally a bug in some application using the D-Bus library.

still appears, but it won't crash ScummVM and launch it instead. \o/

mcphail commented 4 years ago

Two things I've learned from this:

1) there can't have been many gamers on i386 for this broken version of sdl2 to have persisted in the 18.04 archive;

and 2) snapcraft remote-build is seriously cool :)

lotharsm commented 4 years ago

I never dealt with snapcraft remote-build on my own - now I have the urge desire to take a closer look at this :P

M4RTO commented 3 years ago

i fix with this command "sudo apt --fix-broken install"