Beyond Sunset / Hedon Demo on Linux

Need help running G/Q/ZDoom/ECWolf/Zandronum/3DGE? Did your computer break? Ask here.

Moderator: GZDoom Developers

User avatar
Custodian
Posts: 55
Joined: Fri Jan 29, 2021 8:24 pm
Github ID: disasteroftheuniverse
Graphics Processor: ATI/AMD (Modern GZDoom)
Location: Minneapolis MN, USA

Beyond Sunset / Hedon Demo on Linux

Post by Custodian »

On steam, a number of users have reported this error message when opening the beyond sunset demo:

Code: Select all

/path/to/steam/SteamLibrary/steamapps/common/Beyond Sunset Demo/./gzdoom: error while loading shared libraries: libzmusic.so.1: cannot open shared object file: No such file or directory
The issue clearly appears to be that the libzmusic needs to be installed on the end users system, and I'm not really sure how to do this, the steam Linux documentation is deeply unhelpful.

Out of curiosity, i tried downloading and installing the hedon demo and it generated the same error message as well.

Is there a known fix for this, or anyone more familiar with steam that can point me in the right direction?

it looks like the batch file included with hedon points the app at a directory with the compiled dependencies in it, but that doesn't seem to work. Any help is appreciated.
User avatar
KynikossDragonn
Posts: 202
Joined: Sat Dec 12, 2020 10:59 am
Twitch ID: kynikossdragonn
Github ID: KynikossDragonn
Graphics Processor: Intel (Modern GZDoom)
Location: Independence, KS, USA

Re: Beyond Sunset / Hedon Demo on Linux

Post by KynikossDragonn »

Try setting the binaries RPATH to $ORIGIN.

I do this by building GZDoom with a CMAKE_INSTALL_RPATH of $ORIGIN and then put libzmusic.so.1 in the same directory as the binary.

Though as you probably have noticed, it's standard practice to LD_LIBRARY_PATH to some "lib" directory in the same spot as the binary in the usual "start.sh" method a lot of Linux steam games use. But, I'd try with a RPATH of $ORIGIN as that is supported by every modern distro's dynamic linker.

this is what you should see in a objdump -x output if you did this correctly:
Screenshot_2022-07-09_17-48-03.png
after that as long as libzmusic.so.1 is in the same directory as where the binary is located it should always find ZMusic.
You do not have the required permissions to view the files attached to this post.
User avatar
Custodian
Posts: 55
Joined: Fri Jan 29, 2021 8:24 pm
Github ID: disasteroftheuniverse
Graphics Processor: ATI/AMD (Modern GZDoom)
Location: Minneapolis MN, USA

Re: Beyond Sunset / Hedon Demo on Linux

Post by Custodian »

KynikossDragonn wrote:Try setting the binaries RPATH to $ORIGIN.

I do this by building GZDoom with a CMAKE_INSTALL_RPATH of $ORIGIN
How can I do this?
User avatar
KynikossDragonn
Posts: 202
Joined: Sat Dec 12, 2020 10:59 am
Twitch ID: kynikossdragonn
Github ID: KynikossDragonn
Graphics Processor: Intel (Modern GZDoom)
Location: Independence, KS, USA

Re: Beyond Sunset / Hedon Demo on Linux

Post by KynikossDragonn »

I've only ever successfully done it during compile time by inserting a CMAKE_INSTALL_RPATH variable of type STRING set to $ORIGIN with the CMake GUI.

Every single time I've tried to do it following "advice" on the internet to insert the RPATH info with binary modifier tools it always corrupts the executable and makes it crash...

This wiki page talks about how to set RPATH stuff in CMake, but it's really as easy as just manually inserting the variable with the CMake GUI after you do the initial generation, then regenerate the build files and run the build process once you've set CMAKE_INSTALL_RPATH.
User avatar
Rachael
Admin
Posts: 12911
Joined: Tue Jan 13, 2004 1:31 pm
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Preferred Pronouns: She/Her

Re: Beyond Sunset / Hedon Demo on Linux

Post by Rachael »

GZDoom versions since 4.8.0 do this automatically.

Return to “Technical Issues”