LMS-Community / slimserver-vendor

Third-party software used with Lyrion Music Server
https://lyrion.org
42 stars 68 forks source link

Image::Scale wrong version #8

Closed Efreak closed 7 years ago

Efreak commented 8 years ago
The following CPAN modules were found but cannot work with Logitech Media Server:
  Image::Scale:
Image::Scale object version 0.11 does not match bootstrap parameter 0.08 at /usr/lib/perl/5.18/DynaLoader.pm line 207.
Compilation failed in require at (eval 105) line 1.
BEGIN failed--compilation aborted at (eval 105) line 1.

I see the last change to the repo was to update Image::Scale to version 0.11...

mherger commented 8 years ago

How did you install? what OS? Can't help with a little more information.

chincheta0815 commented 8 years ago

I had the same issue on march, 3rd (yesterday). I used the Unix noCPAN tarball from the nightlies download page. After compiling on a raspi 2 (arm) I got thid message.

I changed the versions from 0.08 to 0.11 in CPAN/arch...Scale.pm and modules.conf and lms started.

In the slimserver github repo these files seem to have the correct version numbers.

Maybe a problem with nightlies tarball?

mherger commented 8 years ago

@chincheta0815 - you'd have to copy not only the .so file, but the Scale.pm to your installation. It's not a problem with the nightlies, but with putting the right file in the right place if you're compiling yourself. Maybe I should improve this in the buildme.sh script.

What OS are you running on your Pi? Why did you have to compile yourself?

chincheta0815 commented 8 years ago

Okay. I have to check whether I copied right. Seems to be that I was NOOBing. To make shure I copied everything well: What do I have to copy where after running the buildme.sh? Maybe there is a script showing that (one for creating the tar, packages etc.) so you don't have to write but just provide the link and I can adapt that.

I usually do some compiling on my own to understand things etc. Normally it's not that hard ;o) I want to add some packages for Shairtunes2 and compile also a new helperbinary for that plugin. BTW: There was a subdir in the plugins folder where perl stuff could got. How does that have to be called? The existing compiled one for arm is too old. The system is Raspbian.

By the way I once did some fixing for libmediascan to make it run with solaris/illumos and to respect symlinks in these distros. I am not able to test that on a linux or other distros... The PI is not mine ,o) You once asked my for patches for solaris... Are you interested in these changes? I then would clean up everything a bit and send it to you (tell me the best way for sending).

Sorry for the offtopics stuff. I did not know where to put that elsewhere and it seemed necessary to be mentioned ;o)

mherger commented 8 years ago

@chincheta0815 - what to put where... seriously: I often don't know myself either.... and I currently don't remember. So here's my vague memory dump:

After the module has been built, you have sub-folders in the resulting build folder, named either after your perl version, lib or arch or something. In there you should find an eg. Image/Scale.pm file, and an Image/Scale.so. The latter belongs in to the CPAN/arch/{your architecture here}/folder, while the .pm should go in CPAN/Image/ (inside LMS).

We already provide binaries for Raspbian. So unless it's just for your exercise, you shouldn't need to compile.

As for libmediascan patches: you should head over to @andygrundman - he's the author of that module.

fireheadman commented 8 years ago

also ran into this issue today, I was able to work around this by editing /usr/local/lms/CPAN/Image/Scale.pm and changing this line:

our $VERSION = '0.08';

our $VERSION = '0.11';

Then LMS fired right up without any errors.

andygrundman commented 8 years ago

You absolutely should never make changes like this one, it will cause all kinds of unintended problems.

fireheadman commented 8 years ago

for now, its called a temp fix until a perm solution can be addressed.... let me know if you have anything beneficial to add or that I can try.

andygrundman commented 8 years ago

It's not a fix at all. You need the versions of both the binary and Perl halves of a module to match, simple as that. If you've got version 0.11 of the binary (Image/Scale.so), then you need to use version 0.11 of the Perl side as well. You can find version 0.11 here: http://search.cpan.org/~agrundma/Image-Scale-0.11/ I don't know the details of the package you're using, but clearly someone has packaged it incorrectly.

fireheadman commented 8 years ago

I would say then... the nightly build is responsible or maybe the slimserver-vendor??? Would require time on my part to look closer at it. But for now, LMS runs in a jail on freebsd and it works... it plays music and does what it is supposed to do. Per the OP, I do not seem to be the only person running into this issue... I am just the only person willing to risk/try other things to be able to listen to my music.

....I'll poke around and let you know what I find, as I am in the middle of building out my project.

fireheadman commented 8 years ago

here is a better solution (until the nightly's catch up for freebsd):

cpan App::cpanminus
cpanm Image::Scale@0.11    <-- Installed correct version
/usr/libexec/locate.updatedb   <-- update locate DB
locate Scale.pm   <-- search and sift for location of where Scale.pm (for 0.11)
cd /usr/local/lms/CPAN/Image  <-- goto Scale.pm (0.08) location
mv Scale.pm Scale.pm.0.08   <-- just in case, preserve old version
cp /root/.cpanm/work/1479277874.49469/Image-Scale-0.11/lib/Image/Scale.pm .  <-- copy new version over
chown lms Scale.pm
chmod 600 Scale.pm
service lms restart  <-- restart LMS, looks good!

FYI: Since LMS is slowly fading away, I do not have much intention of updating the Jail it is running in. Should LMS regain momentum in the world and get a bunch of updates/mods/enhancements, then I could see it warranting a complete recompile/build. But for now, it is working perfect and no more bandaids on it.

More likely than not.... perl is to far ahead of what the nightly's or slimserver-vendor builds are built on. Once I updated perl to 5.24.1, I had tons of errors on compiling. I know there is a version built between 5.20.3 and 5.24.1, but I once I got a working version, I did not see the advantages of going through another headache compiling it.