Subject: bug#34854: closed (Re: stepmania does not work)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 29 Mar 2019 13:18:02 +0000

Your bug report

#34854: stepmania does not work

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
34854: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34854
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: stepmania does not work
From: Ricardo Wurmus <[email-masked]>
To: Nicolas Goaziou <[email-masked]>
Cc: [email-masked]
Date: Fri, 29 Mar 2019 14:16:33 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Ricardo Wurmus <[email-masked]> writes:

> Nicolas Goaziou <[email-masked]> writes:
>
>> "GtkModule.so" should be located in the same directory as the executable
>> "stepmania". This is the case in our package: both are located in
>> "…stepmania-5.1.0-b2/share/stepmania/".
>>
>> However, our package definition also creates a symlink to the
>> "stepmania" executable in the "bin/" directory. Since the symlink is
>> launched, and not the executable, the working directory seems to be off.
>>
>> As another data point, the one place in the code base that actually
>> makes use of "GtkModule.so" is "LoadingWindow/LoadingWindow_Gtk.cpp"
>> file:
>>
>> --8<---------------cut here---------------start------------->8---
>> std::string LoadingWindow_Gtk::Init()
>> {
>> 	ASSERT( Handle == nullptr );
>>
>> 	Handle = dlopen( (RageFileManagerUtil::sDirOfExecutable + "/" + "GtkModule.so").c_str(), RTLD_NOW );
>> --8<---------------cut here---------------end--------------->8---
>>
>> I'm not sure about how to proceed from there. Maybe use `wrap-program'
>> around the "stepmania" symlink. If so, what to wrap? Another option is
>> to patch the "LoadingWindow_Gtk.cpp" file like:
>>
>> --8<---------------cut here---------------start------------->8---
>> Handle = dlopen( (RageFileManagerUtil::sDirOfExecutable + "/" + "../share/stepmania/GtkModule.so").c_str(), RTLD_NOW );
>> --8<---------------cut here---------------end--------------->8---
>>
>> I'd favor the second option, but I cannot test the results since
>> I cannot reproduce the problem.
>
> I implemented something similar in commit
> 45aba232abe50b6642abfaa06030985c7febbe07.
>
> There still are problems, though.  The program expects a directory
> “Songs” to exist in the current working directory.  It then fails with
> this error:
>
>     Error: No NoteSkins found
>
> This seems to work fine only when when “stepmania” is executed from
> within the “share/stepmania” directory.  I suspect that this is the same
> kind of problem.

This is now fixed with commit 4774677228.

-- 
Ricardo

Subject: stepmania does not work
From: Ricardo Wurmus <[email-masked]>
To: [email-masked]
Cc: Nicolas Goaziou <[email-masked]>
Date: Thu, 14 Mar 2019 09:17:33 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

“stepmania” cannot find its Songs directory, so I created it.  After
doing that, however, “stepmania” still cannot be started as it can’t
find GtkModule.so.

--8<---------------cut here---------------start------------->8---
$ /gnu/store/awp5w5v3hfg8zilviarwj85s2y820lyg-stepmania-5.1.0-b2/bin/stepmania --help

//////////////////////////////////////////////////////
Exception: Couldn't find 'Songs'
//////////////////////////////////////////////////////

Error: Couldn't find 'Songs'

$ mkdir Songs
$ /gnu/store/awp5w5v3hfg8zilviarwj85s2y820lyg-stepmania-5.1.0-b2/bin/stepmania 
StepMania5.1-UNKNOWN
Compiled 19700101 @ 00:00:01 (build UNKNOWN)
Log starting 2019-03-14 09:15:27
Couldn't load driver gtk: dlopen(): /gnu/store/awp5w5v3hfg8zilviarwj85s2y820lyg-stepmania-5.1.0-b2/bin/GtkModule.so: cannot open shared object file: No such file or directory
Error: Couldn't open any loading windows.
--8<---------------cut here---------------end--------------->8---

-- 
Ricardo