Sidplay2_Database config does nothing?


Hi, I'm using MOC-2.5.2 in Debian stable.
I've got the HVSID collection, and I've pointed MOC to it with the config file. Problem is, it doesn't do anything. I've checked with strace and it's reading the config file, but it doesn't appear to touch the HVSID directory at all, and all the SID files end up with the wrong length.

I thought maaaaybe it was because of a weird symlink issue or something, so I copied the directory to /tmp/ and passed that over with:
SidPlay2_Database = /tmp/C64Music/
and still no love. I can play SIDs from the directory okay, but it won't read the database. And without the database, everything plays for 3 minutes per track.

Hi mantar,

and I've pointed MOC to it with the config file

Was it in your home folder by any chance? have you used '~'?

Could you run mocp with -D option and see if there is any error regarding reading the database file?

It's reading the config file according to strace, and it doesn't seem to matter where I put the HVSid collection. Relevant strace output:

stat("/home/mantar/.moc/config", {st_mode=S_IFREG|0644, st_size=1049, ...}) = 0 geteuid() = 1000 open("/home/mantar/.moc/config", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=1049, ...}) = 0 read(3, "SidPlay2_Database = /tmp/C64Musi"..., 4096) = 1049 read(3, "", 4096) = 0 close(3) = 0

This is with the C64Music directory copied to /tmp since it wasn't working in /home/mantar.

mocp -D output:

Loading plugins from /usr/lib/x86_64-linux-gnu/moc/decoder_plugins... Loading plugin libaac_decoder... OK Loading plugin libflac_decoder... OK Loading plugin libmodplug_decoder... OK Loading plugin libmp3_decoder... OK Loading plugin libmusepack_decoder... OK Loading plugin libopus_decoder... OK Loading plugin libsidplay2_decoder... OK Loading plugin libsndfile_decoder... OK Loading plugin libspeex_decoder... OK Loading plugin libvorbis_decoder... OK Loading plugin libwavpack_decoder... OK

So that looks fine, too. Next I suppose I'll compile from source and see if that works, maybe a Debian maintainer did something funky.

Okay, I tried compiling from both the 2.5.2 source, and the 2.6-alpha3 and there's no change. All sids are 3 minutes per track. It's weird, even looking at the code I don't see anything obviously wrong, but it doesn't load the song lengths.

Unrelated, but I also noticed when compiling that the configure script doesn't check for the libresid-builder requirement, just libsidplay2, and so compilation will start up and and quickly fail without that header. (IE #include <sidplay/builders/resid.h> )

... I also noticed when compiling that the configure script doesn't check for the libresid-builder requirement, ...

In the sidplay2.m4 file there is what is described as a:

... rather ugly hack to find the builder...

which tests the builders variable in libsidplay2.pc. Is this not sufficient?

Apparently not, the configure script succeeds without the resid builder header being present, then the compile errors out because the header's missing.
It's really not a big deal, since the error is clear as day about what you need, but to be technically correct (the best kind of correct!) the config script ought to throw an error first.

And what I have found out is this.

Testing the builders variable is sufficient when SidPlay2 is installed from source as intended. However, Debian monkeys with the library's packaging and places the components into several different packages.

In this process, the builders variable and the resid.h header have become seperated into the libsidplay2-dev and libresid-builder-dev packages respectively. So on Debian, the test is no longer sufficient as the user may not have installed the libresid-builder-dev package and therefore not have the full complement of files as intended by SidPlay2's developers.

... the config script ought to throw an error first.

How right you are. I shall add a test to thwart Debian's monkeying.

I have today committed r2952/r2953 which resolve the libresid-builder issue (which was unrelated to the main topic of this thread).

Will update a Debian package soon. The Build-Depends will be set respectively to satisfy the Monkeys ;-)