void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.6k stars 2.16k forks source link

EmulationStation fails to start #44861

Open Newchair2644 opened 1 year ago

Newchair2644 commented 1 year ago

Is this a new report?

Yes

System Info

Void 6.3.10_1 x86_64 GenuineIntel notuptodate rFF

Package(s) Affected

EmulationStation-2.9.4_1

Does a report exist for this bug with the project's home (upstream) and/or another distro?

https://retropie.org.uk/forum/topic/21196/emulation-station-will-not-boot-after-update

Expected behaviour

Should open with no errors.

Actual behaviour

Does not launch. Output of emulationstation --debug

Jul 05 11:06:44 lvl2:   EmulationStation - v2.9.4rp, built May 17 2021 - 04:05:54
Jul 05 11:06:44 lvl2:   Creating window...
Jul 05 11:06:44 lvl2:   Created window successfully.
Jul 05 11:06:44 lvl2:   GL vendor:   Intel
Jul 05 11:06:44 lvl2:   GL renderer: Mesa Intel(R) HD Graphics 3000 (SNB GT2)
Jul 05 11:06:44 lvl2:   GL version:  3.3 (Compatibility Profile) Mesa 23.1.3
Jul 05 11:06:44 lvl2:   Checking available OpenGL extensions...
Jul 05 11:06:44 lvl2:   ARB_texture_non_power_of_two: ok
Jul 05 11:06:44 lvl0:   Error - File type unknown!
emulationstation: ../es-core/src/resources/Font.cpp:21: Font::FontFace::FontFace(ResourceData&&, int): Assertion `!err' failed.
Aborted

Steps to reproduce

Install emulationstation and try opening with emulationstation

namgo commented 1 year ago

I've gotten this installed in a fresh VM, bumping the version within xpbs-src from 2.9.4 to 2.11.2 for EmulationStation.

After installing the updated version, the existing error still occurs.

My instinct is that https://github.com/RetroPie/EmulationStation/issues/427#issuecomment-388524825 is an issue, the compilation process assumes that certain files in the user's home directory are already available.

https://github.com/RetroPie/EmulationStation/issues/427#issuecomment-389709761 provides the paths that are checked. What's confusing to me is that it checks the bindir - they should be checking files outside of the bindir (/usr/bin/retropie -> /usr/share, no?).

This appears to explain why it worked for the packager and not us.

site-note: the patch void has looks like it's no longer necessary as the developers include time.h possibly making ctime no longer relevant - unless I misunderstand something.

Edit: https://github.com/RetroPie/EmulationStation/issues/819 should address it. Unless I'm wrong, there's no good way to package this until EmulationStation's basedir assumptions conforms to a spec.

Edit 2: feranur on irc suggested packaging the required files under /usr/share/examples/emulationstation/, which is probably our best bet at providing the necessary config/font files to the user. I'm not 100% clear on how to notify a user of this change at the package level other than INSTALL.msg, but it's a start.

Edit 3: An EmulationStation maintainer suggested importing an existing patch which checks /usr/share/EmulationStation/ for /resources/, I've done that. I can still set up an examples/ but it seems less important.