Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 7 of 7
  1. #1
    Junior Member
    Join Date
    Aug 2012
    Posts
    6

    Building modules with buildme.sh, openSuse 12.2

    I'm new to Squeezebox, and am trying to get the server running on my old laptop file-server (32 bit), running OpenSUSE 12.2 (so perl 5.16).

    I downloaded and installed the RPM, but LMS won't start:

    "The following modules failed to load: EV JSON::XS YAML::XS Sub::Name"

    That's fair enough - my hardware and software is a fairly unusual combination. So I followed the advice given, downloaded the CPAN source and buildme script from "http://svn.slimdevices.com/repos/slim/7.7/trunk/vendor/CPAN/", and got that all to build. (That took a bit of work, as the script doesn't yet support perl 5.16. I added lines to the buildme.sh script for that.)

    So... now I've got a build directory, containing the results of the build script. But what should I do with it all? Move it to /usr/share/squeezeboxserver and add some paths to $PERL5LIB to help LMS?

    Thanks, Matt

  2. #2
    Junior Member
    Join Date
    Aug 2012
    Posts
    6
    Ok, I moved the build directory into /usr/share/squeezeboxserver/ and added
    export PERL5LIB="/usr/share/squeezeboxserver/build/5.16/lib/perl5/"
    to the init script. The server now starts.

    However, although my Squeezebox can connect to the server, and I can select and play tracks, I hear no sound on the squeezebox. That, although it can pull up detailed information about the mp3 it's "playing". I've looked long and hard at the network - I think it's okay. And there are some perl errors in the server log:

    [12-08-07 22:00:05.6918] Slim::Control::Request::execute (1889) Error: While trying to run function coderef [Slim::Control::Commands:laylistXitemCommand]: [Can't modify non-lvalue subroutine call at /usr/lib/perl5/vendor_perl/5.16.0/Slim/Music/Info.pm line 779.

    or

    [12-08-07 22:04:20.8706] Slim::Control::Request::execute (1889) Error: While trying to run function coderef [Slim::Control::Commands:laylistJumpCommand]: [Can't modify non-lvalue subroutine call at /usr/lib/perl5/vendor_perl/5.16.0/Slim/Music/Info.pm line 779.
    ]
    [12-08-07 22:04:20.8727] Slim::Web::JSONRPC::requestMethod (413) Request failed with error: Bad dispatch!

    I'm thinking I might be better off using perlbrew to build a perl 5.12 release on my machine alongside the default perl 5.16. Can anyone confirm that this is the way to go?

  3. #3
    Senior Member Mnyb's Avatar
    Join Date
    Feb 2006
    Location
    Västerås Sweden
    Posts
    11,663
    I can not confirm but afaik LMS is not tested beyond perl 5.14 I think even 5.14.2 is a problem .
    There is an open bug for perl 5.16 support in bugzilla .

    I rarely do this kind of stuff myself ,so I have no detailed advice

    But usually when the distro has the rigth perl you can normally just install a lms package and possibly in some rare cases just install some missing perl module ( instead of building them yourself ).

    I know that the error message points to the build script ,but many perl modules can be installed instead of built in many distros
    --------------------------------------------------------------------
    Main hifi: Touch + CIA PS +MeridianG68J MeridianHD621 MeridianG98DH 2 x MeridianDSP5200 MeridianDSP5200HC 2 xMeridianDSP3100 +Rel Stadium 3 sub.
    Bedroom/Office: Boom
    Kitchen: Touch + powered Fostex PM0.4
    Misc use: Radio (with battery)
    iPad1 with iPengHD & SqueezePad
    (in storage SB3, reciever ,controller )
    server HP proliant micro server N36L with ClearOS Linux

    http://people.xiph.org/~xiphmont/demo/neil-young.html

  4. #4
    Senior Member gharris999's Avatar
    Join Date
    Apr 2005
    Location
    Santa Fe, NM
    Posts
    3,299
    Quote Originally Posted by Mnyb View Post
    I can not confirm but afaik LMS is not tested beyond perl 5.14 I think even 5.14.2 is a problem .
    There is an open bug for perl 5.16 support in bugzilla .

    I rarely do this kind of stuff myself ,so I have no detailed advice

    But usually when the distro has the rigth perl you can normally just install a lms package and possibly in some rare cases just install some missing perl module ( instead of building them yourself ).

    I know that the error message points to the build script ,but many perl modules can be installed instead of built in many distros
    With LMS 7.8, perl 5.14.2 works just fine with Ubuntu 12.04 x86_64 and, in the ActiveState 32bit version, with windows 7.

  5. #5
    Junior Member
    Join Date
    Aug 2012
    Posts
    6
    Thanks for the advice. I'm not going to keep trying with perl 5.16, so I've been trying to proceed with perlbrew and 5.12.

    perlbrew built just fine, and the buildme script also ran successfully within the perlbrew 5.12 environment.

    However, I'm not sure how to get squeezeboxserver running under the perlbrew build. Didn't have much time to work on this tonight, so I'll keep going tomorrow, but is there perhaps a guide to getting that to work?

  6. #6
    Junior Member
    Join Date
    Aug 2012
    Posts
    6
    OK, I'm up and running. Will test some more, but seems like the server is working properly with my Squeezebox.

    I thought I'd document what I did to get LMS running under a perlbrew perl build.

    - installed perlbrew as root, called "perlbrew init", then used perlbrew to build a 5.12 release of perl.
    - "perlbrew use perl-5.12.4" as root, then in that environment called the buildme.sh script again to build all the modules for LMS. Moved that build directory into /usr/share/squeezeboxserver/ (unnecessary?).
    - There is some confusion as to where the home directory for the squeezeboxserver user is. /etc/passwd sets it to be /usr/share/squeezeboxserver/, but /etc/sysconfig/squeezeboxserver expects /usr/libexec/. In the end, I changed /etc/passwd.
    - Added a
    export PERL5LIB="/usr/lib/perl5/vendor_perl/"
    to the init script.
    - Changed the first line of squeezeboxserver to use the perlbrew perl:
    #!/root/perl5/perlbrew/perls/perl-5.12.4/bin/perl

    There are still some errors in the server log when I start the server:

    [12-08-10 16:02:11.9828] main::init (354) Starting Logitech Media Server (v7.7.2, r33893, Wed Mar 14 06:31:06 MDT 2012) perl 5.012004
    [12-08-10 16:02:14.0441] Slim::Utils::PluginManager::load (348) Warning: Couldn't call Slim::Plugin::Sounds::Plugin->initPlugin: Can't use string (123Sounds & Effec"...) as a HASH ref while "strict refs" in use at /usr/lib/perl5/vendor_perl//Slim/Plugin/Sounds/Plugin.pm line 63.
    [12-08-10 16:02:14.0868] Slim::Networking::Async::Socket::UDP::mcast_add (48) Error: While adding multicast membership, UPnP may not work properly: Protocol not available
    [12-08-10 16:02:14.0876] Slim::Networking::Async::Socket::UDP::mcast_add (56) Error: While setting IP_MULTICAST_IF, UPnP may not work properly: Protocol not available
    [12-08-10 16:02:14.0883] Slim::Networking::Async::Socket::UDP::mcast_add (64) Error: While setting multicast TTL, UPnP may not work properly: Protocol not available
    [12-08-10 16:02:14.0896] Slim::Networking::Async::Socket::UDP::mcast_add (48) Error: While adding multicast membership, UPnP may not work properly: Protocol not available
    [12-08-10 16:02:14.0904] Slim::Networking::Async::Socket::UDP::mcast_add (56) Error: While setting IP_MULTICAST_IF, UPnP may not work properly: Protocol not available
    [12-08-10 16:02:14.0911] Slim::Networking::Async::Socket::UDP::mcast_add (64) Error: While setting multicast TTL, UPnP may not work properly: Protocol not available

    These at least don't seem to be fatal.

  7. #7
    Junior Member
    Join Date
    Aug 2012
    Posts
    6
    Hmm... there are still some issues here.

    I made /root/ world readable, so that other users can get to the perlbrew build, but something keeps resetting that, causing squeezeboxserver to not be able to get to its perl.

    Also, squeezeboxserver doesn't seem terribly stable - it died yesterday while trying to rescan my files.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •