GNU bug report logs - #34854
stepmania does not work

Previous Next

Package: guix;

Reported by: Ricardo Wurmus <rekado <at> elephly.net>

Date: Thu, 14 Mar 2019 08:32:01 UTC

Severity: normal

Done: Ricardo Wurmus <rekado <at> elephly.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 34854 in the body.
You can then email your comments to 34854 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#34854; Package guix. (Thu, 14 Mar 2019 08:32:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ricardo Wurmus <rekado <at> elephly.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 14 Mar 2019 08:32:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: bug-guix <at> gnu.org
Cc: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Subject: stepmania does not work
Date: Thu, 14 Mar 2019 09:17:33 +0100
“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





Information forwarded to bug-guix <at> gnu.org:
bug#34854; Package guix. (Thu, 14 Mar 2019 14:42:01 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Ricardo Wurmus <rekado <at> elephly.net>
Cc: bug-guix <at> gnu.org
Subject: Re: stepmania does not work
Date: Thu, 14 Mar 2019 15:27:51 +0100
Hello,

Ricardo Wurmus <rekado <at> elephly.net> writes:

> “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---

Oddly, I cannot reproduce the issue on a foreign distribution (Debian):
the program runs properly.

Nevertheless, as a hint, "GtkModule.so" is located in
"/gnu/store/…-stepmania-5.1.0-b2/share/stepmania/".

If I read the following excerpt from Makefile.am correctly:

--8<---------------cut here---------------start------------->8---
installFiles = src/stepmania
if HAVE_GTK
installFiles += src/GtkModule.so
endif

[...]

install-exec-hook:
	mkdir -p "$(DESTDIR)$(prefix)/stepmania-$(VERSION)"
	$(INSTALL) $(installFiles) "$(DESTDIR)$(prefix)/stepmania-$(VERSION)"
--8<---------------cut here---------------end--------------->8---

"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.

WDYT?

Regards,

-- 
Nicolas Goaziou




Information forwarded to bug-guix <at> gnu.org:
bug#34854; Package guix. (Fri, 29 Mar 2019 06:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 34854 <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Cc: 34854 <at> debbugs.gnu.org
Subject: Re: stepmania does not work
Date: Fri, 29 Mar 2019 07:20:16 +0100
Nicolas Goaziou <mail <at> nicolasgoaziou.fr> 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.

--
Ricardo





Reply sent to Ricardo Wurmus <rekado <at> elephly.net>:
You have taken responsibility. (Fri, 29 Mar 2019 13:18:02 GMT) Full text and rfc822 format available.

Notification sent to Ricardo Wurmus <rekado <at> elephly.net>:
bug acknowledged by developer. (Fri, 29 Mar 2019 13:18:02 GMT) Full text and rfc822 format available.

Message #16 received at 34854-done <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Cc: 34854-done <at> debbugs.gnu.org
Subject: Re: stepmania does not work
Date: Fri, 29 Mar 2019 14:16:33 +0100
Ricardo Wurmus <rekado <at> elephly.net> writes:

> Nicolas Goaziou <mail <at> nicolasgoaziou.fr> 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





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 27 Apr 2019 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.