Unlike the Ubuntu package, the Arch AUR package just built and ran with no problems, so that's what I'm using now.
squeezeboxserver_7.5.5_all.deb
apt-get install mysql-server libmysqlclient-dev mysql-client libdbd-mysql-perl libgd2-xpm-dev flac sox dpkg --force-all -i squeezeboxserver_7.5.5_all.debBut this does nothing for the perl dependency hell, so I'll probably just go back to installing it from the tar file.
% /usr/sbin/squeezeboxserver --prefsdir /u/rees/lib/slimp3/prefs --noupnp --d_mysql --logdir /var/log/squeezeboxserver/ --cachedir /var/lib/squeezeboxserver/cache --charset=utf8 The following modules failed to load: DBI DBD::mysql EV XML::Parser::Expat HTML::Parser JSON::XS Digest::SHA1 YAML::Syck GD Sub::Name
http://downloads.slimdevices.com/LogitechMediaServer_v7.7.2/logitechmediaserver-7.7.2-noCPAN.tgz
I couldn't get this to work.
perl -MCPAN -e shell o conf prerequisites_policy follow o conf mbuild_install_build_command 'sudo ./Build' o conf make_install_make_command 'sudo make' o conf commit q mkdir CPAN-ng mv -f CPAN/Audio CPAN/Digest CPAN/HTML CPAN/Image CPAN/JSON CPAN/Sub CPAN/Template* CPAN/XML CPAN/YAML CPAN-ng cpan -i DBI EV XML::Parser::Expat HTML::Parser JSON::XS Digest::SHA1 YAML::XS Audio::Scan Image::Scale JSON::XS::VersionOneAndTwo XML::Simple Media::Scan cpan -i YAML File::Which Net::DNS::Select URI::urn::oid URI::urn::isbn URI::urn URI::tn3270 URI::telnet URI::ssh URI::snews URI::sips URI::rtspu URI::rtsp URI::rsync URI::rlogin URI::pop URI::nntp URI::news URI::mms URI::mailto URI::ldaps URI::ldapi URI::ldap URI::https URI::gopher URI::ftp URI::file::FAT URI::data URI::WithBase URI::URL URI::Split URI::QueryParam URI::Heuristic XML::SAX::ParserFactory XML::SAX::DocumentLocator XML::SAX::Base XML::SAX XML::NamespaceSupport WWW::RobotRules::AnyDBM_File WWW::RobotRules File::Listing URI::sip URI::http URI::file::Win32 URI::file::Unix URI::file::QNX URI::file::OS2 URI::file::Mac URI::file::Base URI::file URI::_query URI::Escape Tie::Cache::LRU Carp::Assert XML::Parser::Style::Tree XML::Parser::Style::Subs XML::Parser::Style::Stream XML::Parser::Style::Objects XML::Parser::Style::Debug XML::Parser::Expat XML::Parser URI RPC::XML::Server RPC::XML::Procedure RPC::XML::Parser RPC::XML::Method RPC::XML::Function RPC::XML::Client RPC::XML SQL::Abstract Text::Unidecode Path::Class::File Path::Class::Entity Path::Class::Dir Path::Class IO::String UNIVERSAL::moniker Tie::Watch Tie::RegexpHash Tie::Cache::LRU::Expires Test::Simple Test::More Test::Builder SQL::Abstract::Limit Ima::DBI File::Spec::Win32 File::Spec::VMS File::Spec::Unix File::Spec::OS2 File::Spec::Mac File::Spec::Functions File::Spec::Epoc File::Spec::Cygwin File::Spec File::BOM Class::WhiteHole Class::Trigger Class::ISA Class::Data::Inheritable Class::Accessor::Fast Class::Accessor Net::IP Test::Builder::Tester::Color Test::Builder::Tester Test::Builder::Module Date::Parse Readonly Tie::LLHash Tie::IxHash File::Slurp GD Time::tm Time::localtime Time::Zone Time::HiRes Template::View Template::Plugin::XML::XPath Template::Plugin::XML::Style Template::Plugin::XML::Simple Template::Plugin::XML::RSS Template::Plugin::XML::DOM Template::Plugin::GD::Text::Wrap Template::Plugin::GD::Text::Align Template::Plugin::GD::Text Template::Plugin::GD::Polygon Template::Plugin::GD::Image Template::Plugin::GD::Graph::points Template::Plugin::GD::Graph::pie3d Template::Plugin::GD::Graph::pie Template::Plugin::GD::Graph::mixed Template::Plugin::GD::Graph::linespoints Template::Plugin::GD::Graph::lines3d Template::Plugin::GD::Graph::lines Template::Plugin::GD::Graph::bars3d Template::Plugin::GD::Graph::bars Template::Plugin::GD::Graph::area Template::Plugin::GD::Constants Template::Plugin::DBI Template::Directive cpan -i HTML::TokeParser HTML::PullParser HTML::Parser HTML::LinkExtor HTML::HeadParser HTML::Filter HTML::Entities DBI::ProfileDumper::Apache DBI::ProfileDumper DBI::ProfileData DBI::Profile DBI::DBD::Metadata DBI::DBD DBI::Const::GetInfoType DBI::Const::GetInfoReturn DBI::Const::GetInfo::ODBC DBI::Const::GetInfo::ANSI DBI DBD::Sponge Compress::Zlib YAML::Loader::Base YAML::Dumper::Base POE::Queue::Array Error Cache::Object Cache::FileCache Cache::CacheUtils Cache::Cache Cache::BaseCache Locale::Hebrew Digest::base Digest::SHA1 XML::XSPF::Track XML::XSPF::Base XML::Writer CGI::Cookie Net::DNS::Update Net::DNS::Resolver::UNIX Net::DNS::Resolver::Cygwin Net::DNS::Resolver Net::DNS::Question Net::DNS::Header Text::Glob Number::Compare File::Find::Rule Data::VString Proc::Background::Unix Proc::Background DBD::mysql::GetInfo DBD::mysql Class::C3 Carp::Clan Data::Page Class::Virtually::Abstract Class::Virtual Class::Accessor::Chained::Fast Class::Accessor::Chained Data::Dump DBI::Shell::Timing DBI::Shell::Spool DBI::Shell::SQLMinus DBI::Shell::FindSqlFile DBI::Shell::Completion DBI::Shell DBI::Format::SQLMinus DBI::Format MPEG::Audio::Frame Class::Data::Accessor URI::Find Class::Singleton Class::Inspector YAML::Syck JSON::Syck Algorithm::C3 Net::HTTPS Net::HTTP::NB Net::HTTP::Methods Net::HTTP LWP HTTP::Status HTTP::Response HTTP::Request::Common HTTP::Request HTTP::Negotiate HTTP::Message HTTP::Headers::Util HTTP::Headers::ETag HTTP::Headers::Auth HTTP::Headers HTTP::Date HTTP::Daemon HTTP::Cookies::Netscape HTTP::Cookies::Microsoft HTTP::Cookies HTML::Form Net::DNS::Resolver::Win32 Net::DNS::Resolver::Recurse Net::DNS::Resolver::Base Net::DNS::RR::TXT Net::DNS::RR::SRV Net::DNS::RR::SPF Net::DNS::RR::NAPTR Net::DNS::RR Net::DNS::Packet Net::DNS::Nameserver Net::DNS POE::XS::Queue::Array POE::Queue File::Temp MP4::Info XML::Simple Proc::Background::Win32 Template::Test Template::Stash::XS Template::Stash::Context Template::Stash Template::Service Template::Provider Template::Plugins Template::Plugin::Wrap Template::Plugin::View Template::Plugin::URL Template::Plugin::Table Template::Plugin::String Template::Plugin::Procedural Template::Plugin::Pod Template::Plugin::Iterator Template::Plugin::Image Template::Plugin::HTML Template::Plugin::Format Template::Plugin::Filter Template::Plugin::File Template::Plugin::Dumper Template::Plugin::Directory Template::Plugin::Date Template::Plugin::Datafile Template::Plugin::CGI Template::Plugin::Autoformat Template::Plugin Template::Parser Template::Namespace::Constants Template::Iterator Template::Grammar Template::Filters Template::Exception Template::Document Template::Context Template::Constants Template::Config Template::Base Template XML::XSPF DBIx::Class::Schema DBIx::Migration JSON::XS GD wget http://cpan.perl.org/authors/id/A/AD/ADAMK/DBD-SQLite-1.34_01.tar.gz tar xfvz DBD-SQLite-1.34_01.tar.gz cd DBD-SQLite-1.34_01 perl Makefile.PL make sudo make install mv CPAN/Media CPAN-ng % ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp NOTE: Class::XSAccessor 1.05+ not found, install it for better performance Can't locate Media/Scan.pm in @INC (@INC contains: /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/5.14/i386-linux-thread-multi-64int /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/5.14/i386-linux-thread-multi-64int/auto /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/5.14.2/i686-linux-gnu-thread-multi-64int /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/5.14.2/i686-linux-gnu-thread-multi-64int/auto /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/5.14/i686-linux-gnu-thread-multi-64int /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/5.14/i686-linux-gnu-thread-multi-64int/auto /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN/arch/i686-linux-gnu-thread-multi-64int /u/rees/lib/slimp3/7.7.2-33893-noCPAN/lib /u/rees/lib/slimp3/7.7.2-33893-noCPAN/CPAN /u/rees/lib/slimp3/7.7.2-33893-noCPAN /u/rees/lib/slimp3/7.7.2-33893-noCPAN /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Utils/Scanner/LMS.pm line 18. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Utils/Scanner/LMS.pm line 18. Compilation failed in require at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Control/Commands.pm line 46. Compilation failed in require at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Control/Request.pm line 434. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Control/Request.pm line 434. Compilation failed in require at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Player/Client.pm line 32. Compilation failed in require at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Utils/Alarm.pm line 48. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Utils/Alarm.pm line 48. Compilation failed in require at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Buttons/Alarm.pm line 12. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Buttons/Alarm.pm line 12. Compilation failed in require at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Buttons/Common.pm line 41. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/7.7.2-33893-noCPAN/Slim/Buttons/Common.pm line 41. Compilation failed in require at ./slimserver.pl line 186. BEGIN failed--compilation aborted at ./slimserver.pl line 186. rm -rf ~/.cpan
Several annoying problems with this. Importing new tunes does not import the cover art, and full rescan of the library doesn't work, so crud just accumulates. The web interface doesn't usually work the first time and must be reloaded. It's generally slower and laggier than older versions.
Follow instructions for Ubuntu 11.10 / 7.6.1.
install DBD-SQLite-1.34_01, Audio-Scan-0.90, Image-Scale-0.03 from source
cpan -i -f Template::Stash
Squeezeboxserver seems extremely brittle. It requires exact versions of its many perl modules. Some modules are included with the distribution but many of them are the wrong version. I've had the best luck by tracking down the correct versions and installing them manually, but it's a tedious process. To complicate matters, sometimes there are two different version of a particular perl module that both have the same version number (like DBD-SQLite-1.34).
Had to break up the cpan install line, I guess someone's limiting the size of cpan input.
perl -MCPAN -e shell o conf prerequisites_policy follow o conf mbuild_install_build_command 'sudo ./Build' o conf make_install_make_command 'sudo make' o conf commit install YAML File::Which Net::DNS::Select URI::urn::oid URI::urn::isbn URI::urn URI::tn3270 URI::telnet URI::ssh URI::snews URI::sips URI::rtspu URI::rtsp URI::rsync URI::rlogin URI::pop URI::nntp URI::news URI::mms URI::mailto URI::ldaps URI::ldapi URI::ldap URI::https URI::gopher URI::ftp URI::file::FAT URI::data URI::WithBase URI::URL URI::Split URI::QueryParam URI::Heuristic XML::SAX::ParserFactory XML::SAX::DocumentLocator XML::SAX::Base XML::SAX XML::NamespaceSupport WWW::RobotRules::AnyDBM_File WWW::RobotRules File::Listing URI::sip URI::http URI::file::Win32 URI::file::Unix URI::file::QNX URI::file::OS2 URI::file::Mac URI::file::Base URI::file URI::_query URI::Escape Tie::Cache::LRU Carp::Assert XML::Parser::Style::Tree XML::Parser::Style::Subs XML::Parser::Style::Stream XML::Parser::Style::Objects XML::Parser::Style::Debug XML::Parser::Expat XML::Parser URI RPC::XML::Server RPC::XML::Procedure RPC::XML::Parser RPC::XML::Method RPC::XML::Function RPC::XML::Client RPC::XML SQL::Abstract Text::Unidecode Path::Class::File Path::Class::Entity Path::Class::Dir Path::Class IO::String UNIVERSAL::moniker Tie::Watch Tie::RegexpHash Tie::Cache::LRU::Expires Test::Simple Test::More Test::Builder SQL::Abstract::Limit Ima::DBI File::Spec::Win32 File::Spec::VMS File::Spec::Unix File::Spec::OS2 File::Spec::Mac File::Spec::Functions File::Spec::Epoc File::Spec::Cygwin File::Spec File::BOM Class::WhiteHole Class::Trigger Class::ISA Class::Data::Inheritable Class::Accessor::Fast Class::Accessor Net::IP Test::Builder::Tester::Color Test::Builder::Tester Test::Builder::Module Date::Parse Readonly Tie::LLHash Tie::IxHash File::Slurp GD Time::tm Time::localtime Time::Zone Time::HiRes Template::View Template::Plugin::XML::XPath Template::Plugin::XML::Style Template::Plugin::XML::Simple Template::Plugin::XML::RSS Template::Plugin::XML::DOM Template::Plugin::GD::Text::Wrap Template::Plugin::GD::Text::Align Template::Plugin::GD::Text Template::Plugin::GD::Polygon Template::Plugin::GD::Image Template::Plugin::GD::Graph::points Template::Plugin::GD::Graph::pie3d Template::Plugin::GD::Graph::pie Template::Plugin::GD::Graph::mixed Template::Plugin::GD::Graph::linespoints Template::Plugin::GD::Graph::lines3d Template::Plugin::GD::Graph::lines Template::Plugin::GD::Graph::bars3d Template::Plugin::GD::Graph::bars Template::Plugin::GD::Graph::area Template::Plugin::GD::Constants Template::Plugin::DBI Template::Directive install HTML::TokeParser HTML::PullParser HTML::Parser HTML::LinkExtor HTML::HeadParser HTML::Filter HTML::Entities DBI::ProfileDumper::Apache DBI::ProfileDumper DBI::ProfileData DBI::Profile DBI::DBD::Metadata DBI::DBD DBI::Const::GetInfoType DBI::Const::GetInfoReturn DBI::Const::GetInfo::ODBC DBI::Const::GetInfo::ANSI DBI DBD::Sponge Compress::Zlib YAML::Loader::Base YAML::Dumper::Base POE::Queue::Array Error Cache::Object Cache::FileCache Cache::CacheUtils Cache::Cache Cache::BaseCache Locale::Hebrew Digest::base Digest::SHA1 XML::XSPF::Track XML::XSPF::Base XML::Writer CGI::Cookie Net::DNS::Update Net::DNS::Resolver::UNIX Net::DNS::Resolver::Cygwin Net::DNS::Resolver Net::DNS::Question Net::DNS::Header Text::Glob Number::Compare File::Find::Rule Data::VString Proc::Background::Unix Proc::Background DBD::mysql::GetInfo DBD::mysql Class::C3 Carp::Clan Data::Page Class::Virtually::Abstract Class::Virtual Class::Accessor::Chained::Fast Class::Accessor::Chained Data::Dump DBI::Shell::Timing DBI::Shell::Spool DBI::Shell::SQLMinus DBI::Shell::FindSqlFile DBI::Shell::Completion DBI::Shell DBI::Format::SQLMinus DBI::Format MPEG::Audio::Frame Class::Data::Accessor URI::Find Class::Singleton Class::Inspector YAML::Syck JSON::Syck Algorithm::C3 Net::HTTPS Net::HTTP::NB Net::HTTP::Methods Net::HTTP LWP HTTP::Status HTTP::Response HTTP::Request::Common HTTP::Request HTTP::Negotiate HTTP::Message HTTP::Headers::Util HTTP::Headers::ETag HTTP::Headers::Auth HTTP::Headers HTTP::Date HTTP::Daemon HTTP::Cookies::Netscape HTTP::Cookies::Microsoft HTTP::Cookies HTML::Form Net::DNS::Resolver::Win32 Net::DNS::Resolver::Recurse Net::DNS::Resolver::Base Net::DNS::RR::TXT Net::DNS::RR::SRV Net::DNS::RR::SPF Net::DNS::RR::NAPTR Net::DNS::RR Net::DNS::Packet Net::DNS::Nameserver Net::DNS POE::XS::Queue::Array POE::Queue File::Temp MP4::Info XML::Simple Proc::Background::Win32 Template::Test Template::Stash::XS Template::Stash::Context Template::Stash Template::Service Template::Provider Template::Plugins Template::Plugin::Wrap Template::Plugin::View Template::Plugin::URL Template::Plugin::Table Template::Plugin::String Template::Plugin::Procedural Template::Plugin::Pod Template::Plugin::Iterator Template::Plugin::Image Template::Plugin::HTML Template::Plugin::Format Template::Plugin::Filter Template::Plugin::File Template::Plugin::Dumper Template::Plugin::Directory Template::Plugin::Date Template::Plugin::Datafile Template::Plugin::CGI Template::Plugin::Autoformat Template::Plugin Template::Parser Template::Namespace::Constants Template::Iterator Template::Grammar Template::Filters Template::Exception Template::Document Template::Context Template::Constants Template::Config Template::Base Template XML::XSPF DBIx::Class::Schema DBIx::Migration JSON::XS GD qAfter getting all the perl modules installed, it still wouldn't start:
% ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp Undefined subroutine &Class::XSAccessor::Array::_generate_accessor called at /u/rees/lib/slimp3/squeezecenter-7.3.2/Slim/Utils/Accessor.pm line 97. Compilation failed in require at (eval 253) line 2. ...propagated at /usr/share/perl/5.12/base.pm line 93.
So I tried the latest, http://downloads.slimdevices.com/SqueezeboxServer_v7.6.1/squeezeboxserver-7.6.1-noCPAN.tgz. It of course required even more perl modules, and failed in the appropriately named Syck.pm.
wget -q -O - http://downloads.slimdevices.com/SqueezeboxServer_v7.6.1/squeezeboxserver-7.6.1-noCPAN.tgz | tar xfvz - cd squeezeboxserver-7.6.1-33110-noCPAN ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp Use of inherited AUTOLOAD for non-method YAML::Syck::DumpYAML() is deprecated at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110/CPAN/YAML/Syck.pm line 65.
Move all the included modules out of the way, and install more prerequisites.
mv CPAN CPAN- cpan -i EV YAML::Syck AnyEvent Audio::Scan Image::Scale
Now it complains about bad versions.
The following CPAN modules were found but cannot work with Squeezebox Server: Audio::Scan (loaded 0.93, need 0.90) Image::Scale (loaded 0.08, need 0.03)
Fetch the indicated versions, which I found at http://search.cpan.org/:
wget http://search.cpan.org/CPAN/authors/id/A/AG/AGRUNDMA/Audio-Scan-0.90.tar.gz wget http://search.cpan.org/CPAN/authors/id/A/AG/AGRUNDMA/Image-Scale-0.03.tar.gz tar xfz perl Makefile.PL make sudo make install
Install some more missing modules, but there's still some version skew:
cpan -i UUID::Tiny ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp [11-11-14 23:55:01.3923] main::init (350) Starting Squeezebox Server (v7.6.1, r33110, Wed Aug 17 19:53:42 MDT 2011) perl 5.012004 [11-11-14 23:55:03.3482] Slim::Utils::SQLiteHelper::init (61) Warning: DBD::SQLite version 1.34 or higher required perl -MDBD::SQLite -e 'print DBD::SQLite->VERSION . "\n"' 1.33
At this point I'm wondering 1) why isn't there an easy way to discover the version of an installed module? and 2) how does anyone ever run any perl scripts?
The latest on search.cpan.org is 1.33 so I had to fetch 1.34 from the download directory. Made and installed it. I found out later there are several different versions of 1.34, and I got the wrong one. You need 1.34_01.
It's hard to tell, but I think I'm making progress.
% ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp [11-11-15 00:21:04.7561] main::init (350) Starting Squeezebox Server (v7.6.1, r33110, Wed Aug 17 19:53:42 MDT 2011) perl 5.012004 [11-11-15 00:21:05.4843] Slim::Utils::Misc::msg (1236) Warning: [00:21:05.4840] Class::C3::Componentised::load_components(): Use of DBIx::Class::UTF8Columns is strongly discouraged. See documentation of DBIx::Class::UTF8Columns for more info [11-11-15 00:21:05.8836] Slim::Schema::Storage::throw_exception (119) Error: DBI Exception: DBD::SQLite::db do failed: SQL logic error or missing database database persistentdb is already in use [for Statement "ATTACH '/u/rees/lib/slimp3/cache/persist.db' AS persistentdb"] [11-11-15 00:21:05.8854] Slim::Schema::Storage::throw_exception (119) Backtrace: frame 0: Slim::Utils::Log::logBacktrace (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 119) frame 1: Slim::Schema::Storage::throw_exception (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1288) frame 2: DBIx::Class::Storage::DBI::__ANON__ (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1222) frame 3: DBIx::Class::Storage::DBI::_do_query (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1193) frame 4: DBIx::Class::Storage::DBI::connect_call_do_sql (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1175) frame 5: DBIx::Class::Storage::DBI::_do_connection_actions (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1182) frame 6: DBIx::Class::Storage::DBI::_do_connection_actions (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1027) frame 7: DBIx::Class::Storage::DBI::_run_connection_actions (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 1017) frame 8: DBIx::Class::Storage::DBI::_populate_dbh (/usr/local/share/perl/5.12.4/DBIx/Class/Storage/DBI.pm line 906) frame 9: DBIx::Class::Storage::DBI::ensure_connected (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 43) frame 10: (eval) (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 43) frame 11: Slim::Schema::Storage::dbh (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema.pm line 295) frame 12: Slim::Schema::_connect (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema.pm line 129) frame 13: Slim::Schema::init (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/Import.pm line 637) frame 14: Slim::Music::Import::_checkLibraryStatus (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/Import.pm line 569) frame 15: Slim::Music::Import::useImporter (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/MusicFolderScan.pm line 51) frame 16: Slim::Music::MusicFolderScan::init (./slimserver.pl line 518) frame 17: main::init (./slimserver.pl line 639) frame 18: main::main (./slimserver.pl line 1136) [11-11-15 00:21:05.8908] Slim::Schema::Storage::throw_exception (119) Error: Carp::Clan::__ANON__(): DBI Exception: DBD::SQLite::db do failed: SQL logic error or missing database database persistentdb is already in use [for Statement "ATTACH '/u/rees/lib/slimp3/cache/persist.db' AS persistentdb"] at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 123 [11-11-15 00:21:05.8923] Slim::Schema::Storage::throw_exception (119) Backtrace: frame 0: Slim::Utils::Log::logBacktrace (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 119) frame 1: Slim::Schema::Storage::throw_exception (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 47) frame 2: Slim::Schema::Storage::dbh (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema.pm line 295) frame 3: Slim::Schema::_connect (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema.pm line 129) frame 4: Slim::Schema::init (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/Import.pm line 637) frame 5: Slim::Music::Import::_checkLibraryStatus (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/Import.pm line 569) frame 6: Slim::Music::Import::useImporter (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/MusicFolderScan.pm line 51) frame 7: Slim::Music::MusicFolderScan::init (./slimserver.pl line 518) frame 8: main::init (./slimserver.pl line 639) frame 9: main::main (./slimserver.pl line 1136) [11-11-15 00:21:05.8953] Carp::Clan::__ANON__ (225) Warning: Carp::Clan::__ANON__(): DBI Exception: DBD::SQLite::db do failed: SQL logic error or missing database database persistentdb is already in use [for Statement "ATTACH '/u/rees/lib/slimp3/cache/persist.db' AS persistentdb"] at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 123 [11-11-15 00:21:05.8967] Slim::Schema::forceCommit (2067) Warning: Trying to commit transactions before DB is initialized!
The solution, found in the forum, is to use the included version of DBIx::Class. That helped a bit but then I got this.
% ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp [11-11-15 07:35:22.9441] main::init (350) Starting Squeezebox Server (v7.6.1, r33110, Wed Aug 17 19:53:42 MDT 2011) perl 5.012004 [11-11-15 07:35:23.2023] Slim::Schema::Storage::throw_exception (119) Error: DBI Exception: DBD::SQLite::db selectrow_array failed: no such table: sqlite_stat1 [for Statement "SELECT COUNT(*) FROM sqlite_stat1 WHERE tbl = 'tracks'"] [11-11-15 07:35:23.2030] Slim::Schema::Storage::throw_exception (119) Backtrace: frame 0: Slim::Utils::Log::logBacktrace (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema/Storage.pm line 119) frame 1: Slim::Schema::Storage::throw_exception (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/DBIx/Class/Storage/DBI.pm line 1006) frame 2: DBIx::Class::Storage::DBI::__ANON__ (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Utils/SQLiteHelper.pm line 356) frame 3: (eval) (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Utils/SQLiteHelper.pm line 356) frame 4: Slim::Utils::SQLiteHelper::postConnect (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema.pm line 295) frame 5: Slim::Schema::_connect (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Schema.pm line 129) frame 6: Slim::Schema::init (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/Import.pm line 637) frame 7: Slim::Music::Import::_checkLibraryStatus (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/Import.pm line 569) frame 8: Slim::Music::Import::useImporter (/u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Music/MusicFolderScan.pm line 51) frame 9: Slim::Music::MusicFolderScan::init (./slimserver.pl line 518) frame 10: main::init (./slimserver.pl line 639) frame 11: main::main (./slimserver.pl line 1136) [11-11-15 07:35:23.2042] Slim::Utils::SQLiteHelper::postConnect (359) Optimizing DB because of missing or empty sqlite_stat1 table [11-11-15 07:35:23.2625] Slim::Schema::init (154) Warning: Creating new database - empty database or database from 6.3.x found [11-11-15 07:35:23.8776] Slim::Web::Pages::init (35) Warning: Can't locate File/ReadBackwards.pm in @INC (@INC contains: /u/rees/lib/slimp3/cache/InstalledPlugins /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/5.12/i386-linux-thread-multi-64int /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/5.12/i386-linux-thread-multi-64int/auto /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/5.12.4/i686-linux-gnu-thread-multi-64int /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/5.12.4/i686-linux-gnu-thread-multi-64int/auto /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/5.12/i686-linux-gnu-thread-multi-64int /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/5.12/i686-linux-gnu-thread-multi-64int/auto /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/arch/i686-linux-gnu-thread-multi-64int /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/lib /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN /etc/perl /usr/local/lib/perl/5.12.4 /usr/local/share/perl/5.12.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.12 /usr/share/perl/5.12 /usr/local/lib/site_perl .) at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/Pages/Common.pm line 11. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/Pages/Common.pm line 11. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/Pages.pm line 35.
Change tactics. Use the included CPAN, but remove the modules that are causing problems. I think there is some magic combinations of included and manually installed modules that will make this work, I just haven't stumbled across it yet.
cp -a CPAN- CPAN rm -rf CPAN/YAML CPAN/Image CPAN/Audio CPAN/XML % ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp NOTE: Class::XSAccessor 1.05+ not found, install it for better performance DBD::SQLite object version 1.34_03 does not match bootstrap parameter 1.34_01 at /usr/lib/perl/5.12/DynaLoader.pm line 215. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Utils/ArtworkCache.pm line 11. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Utils/ArtworkCache.pm line 11. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/Graphics.pm line 12. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/Graphics.pm line 12. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/HTTP.pm line 51. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Web/HTTP.pm line 51. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Player/Client.pm line 33. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Utils/Alarm.pm line 48. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Utils/Alarm.pm line 48. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Buttons/Alarm.pm line 12. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Buttons/Alarm.pm line 12. Compilation failed in require at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Buttons/Common.pm line 41. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/Slim/Buttons/Common.pm line 41. Compilation failed in require at ./slimserver.pl line 184. BEGIN failed--compilation aborted at ./slimserver.pl line 184.Remove DBD::SQLite 1.34_03 and install 1.34_01.
% ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp NOTE: Class::XSAccessor 1.05+ not found, install it for better performance [11-11-15 08:00:03.3587] main::init (350) Starting Squeezebox Server (v7.6.1, r33110, Wed Aug 17 19:53:42 MDT 2011) perl 5.012004 [11-11-15 08:00:03.9452] Slim::Utils::SQLiteHelper::postConnect (359) Optimizing DB because of missing or empty sqlite_stat1 table [11-11-15 08:00:04.0575] Slim::bootstrap::tryModuleLoad (289) Warning: Module [Template::Stash::XS] failed to load: Couldn't load Template::Stash::XS 2.21: Template::Stash::XS object version 2.22 does not match bootstrap parameter 2.21 at /usr/lib/perl/5.12/DynaLoader.pm line 215. BEGIN failed--compilation aborted at /u/rees/lib/slimp3/squeezeboxserver-7.6.1-33110-noCPAN/CPAN/Template/Stash/XS.pm line 31. Compilation failed in require at (eval 899) line 2. BEGIN failed--compilation aborted at (eval 899) line 2. [11-11-15 08:00:05.6146] main::checkDataSource (1050) Warning: Schema updated or no tracks in the database, initiating scan. The following modules failed to load: HTML::ParserRemove some more troublesome modules. Success?
rm -rf CPAN/Template* CPAN/HTML CPAN/JSON CPAN/Digest CPAN/Sub ./slimserver.pl --d_mysql --prefsdir /u/rees/lib/slimp3/prefs --noupnp NOTE: Class::XSAccessor 1.05+ not found, install it for better performance [11-11-16 17:59:31.3285] main::init (350) Starting Squeezebox Server (v7.6.1, r33110, Wed Aug 17 19:53:42 MDT 2011) perl 5.012004 [11-11-16 17:59:31.5787] Slim::Utils::SQLiteHelper::postConnect (359) Optimizing DB because of missing or empty sqlite_stat1 table [11-11-16 17:59:32.1111] main::checkDataSource (1050) Warning: Schema updated or no tracks in the database, initiating scan. NOTE: Class::XSAccessor 1.05+ not found, install it for better performance [11-11-16 17:59:32.8593] main::main (196) Starting Squeezebox Server scanner (v7.6.1, r33110, Wed Aug 17 19:53:42 MDT 2011) perl 5.012004 [11-11-16 17:59:33.4906] Slim::Music::Import::runImporter (460) Starting Slim::Music::MusicFolderScan scan [11-11-16 17:59:33.4918] Slim::Utils::Scanner::Local::rescan (166) Discovering files in /u/rees/mp3 [11-11-16 18:00:04.5659] Slim::Utils::Scanner::Local::__ANON__ (246) Removing deleted files (0) [11-11-16 18:00:04.5665] Slim::Utils::Scanner::Local::__ANON__ (321) Scanning new files (12472)
Finally, remove the cpan turds:
rm -rf ~/.cpan
After giving up on Slimserver 6.5.2 I decided to try squeezecenter again despite my previous frustrating experience with it. I eventually got this to work by using the regular (not non-CPAN) tar file release. My first attempt was with the non-CPAN version, and that failed.
apt-get install mysql-server mysql-client libdbd-mysql-perl libgd2-xpm-dev flac sox wget -q -O - http://downloads.slimdevices.com/SqueezeCenter_v7.3.2/squeezecenter-7.3.2-noCPAN.tgz | tar xfvz - mv CPAN CPAN- perl -MCPAN -e shell install (see below for list) mysql --user=root --password=xxxxxx use mysql; create user 'slimserver'@'localhost'; create database slimserver; grant all on slimserver.* to 'slimserver'@'localhost'; slimserver.pref: dbusername, dbsource ./slimserver.pl --d_mysql --prefsfile /u/rees/l/slimp3/slimserver.pref --noupnp cpan -f -i GD
Can't get Bin/build-perl-modules.pl to work, so move modules out of the way and install using CPAN. Apparently slimserver won't use the standard modules if it has its own CPAN directory.
mv CPAN CPAN- perl -MCPAN -e shell install YAML File::Which Net::DNS::Select URI::urn::oid URI::urn::isbn URI::urn URI::tn3270 URI::telnet URI::ssh URI::snews URI::sips URI::rtspu URI::rtsp URI::rsync URI::rlogin URI::pop URI::nntp URI::news URI::mms URI::mailto URI::ldaps URI::ldapi URI::ldap URI::https URI::gopher URI::ftp URI::file::FAT URI::data URI::WithBase URI::URL URI::Split URI::QueryParam URI::Heuristic XML::SAX::ParserFactory XML::SAX::DocumentLocator XML::SAX::Base XML::SAX XML::NamespaceSupport WWW::RobotRules::AnyDBM_File WWW::RobotRules File::Listing URI::sip URI::http URI::file::Win32 URI::file::Unix URI::file::QNX URI::file::OS2 URI::file::Mac URI::file::Base URI::file URI::_query URI::Escape Tie::Cache::LRU Carp::Assert XML::Parser::Style::Tree XML::Parser::Style::Subs XML::Parser::Style::Stream XML::Parser::Style::Objects XML::Parser::Style::Debug XML::Parser::Expat XML::Parser URI RPC::XML::Server RPC::XML::Procedure RPC::XML::Parser RPC::XML::Method RPC::XML::Function RPC::XML::Client RPC::XML SQL::Abstract Text::Unidecode Path::Class::File Path::Class::Entity Path::Class::Dir Path::Class IO::String UNIVERSAL::moniker Tie::Watch Tie::RegexpHash Tie::Cache::LRU::Expires Test::Simple Test::More Test::Builder SQL::Abstract::Limit Ima::DBI File::Spec::Win32 File::Spec::VMS File::Spec::Unix File::Spec::OS2 File::Spec::Mac File::Spec::Functions File::Spec::Epoc File::Spec::Cygwin File::Spec File::BOM Class::WhiteHole Class::Trigger Class::ISA Class::Data::Inheritable Class::Accessor::Fast Class::Accessor Net::IP Test::Builder::Tester::Color Test::Builder::Tester Test::Builder::Module Date::Parse Readonly Tie::LLHash File::Slurp GD Time::tm Time::localtime Time::Zone Time::HiRes Template::View Template::Plugin::XML::XPath Template::Plugin::XML::Style Template::Plugin::XML::Simple Template::Plugin::XML::RSS Template::Plugin::XML::DOM Template::Plugin::GD::Text::Wrap Template::Plugin::GD::Text::Align Template::Plugin::GD::Text Template::Plugin::GD::Polygon Template::Plugin::GD::Image Template::Plugin::GD::Graph::points Template::Plugin::GD::Graph::pie3d Template::Plugin::GD::Graph::pie Template::Plugin::GD::Graph::mixed Template::Plugin::GD::Graph::linespoints Template::Plugin::GD::Graph::lines3d Template::Plugin::GD::Graph::lines Template::Plugin::GD::Graph::bars3d Template::Plugin::GD::Graph::bars Template::Plugin::GD::Graph::area Template::Plugin::GD::Constants Template::Plugin::DBI Template::Directive HTML::TokeParser HTML::PullParser HTML::Parser HTML::LinkExtor HTML::HeadParser HTML::Filter HTML::Entities DBI::ProfileDumper::Apache DBI::ProfileDumper DBI::ProfileData DBI::Profile DBI::DBD::Metadata DBI::DBD DBI::Const::GetInfoType DBI::Const::GetInfoReturn DBI::Const::GetInfo::ODBC DBI::Const::GetInfo::ANSI DBI DBD::Sponge Compress::Zlib YAML::Loader::Base YAML::Dumper::Base POE::Queue::Array Error Cache::Object Cache::FileCache Cache::CacheUtils Cache::Cache Cache::BaseCache Locale::Hebrew Digest::base Digest::SHA1 XML::XSPF::Track XML::XSPF::Base XML::Writer CGI::Cookie Net::DNS::Update Net::DNS::Resolver::UNIX Net::DNS::Resolver::Cygwin Net::DNS::Resolver Net::DNS::Question Net::DNS::Header Text::Glob Number::Compare File::Find::Rule Data::VString Proc::Background::Unix Proc::Background DBD::mysql::GetInfo DBD::mysql Class::C3 Carp::Clan Data::Page Class::Virtually::Abstract Class::Virtual Class::Accessor::Chained::Fast Class::Accessor::Chained Data::Dump DBI::Shell::Timing DBI::Shell::Spool DBI::Shell::SQLMinus DBI::Shell::FindSqlFile DBI::Shell::Completion DBI::Shell DBI::Format::SQLMinus DBI::Format MPEG::Audio::Frame Net::UPnP::QueryResponse Net::UPnP::HTTP Net::UPnP::Device Net::UPnP::ActionResponse Net::UPnP Net::UPnP::HTTPResponse Class::Data::Accessor URI::Find Class::Singleton Class::Inspector YAML::Syck JSON::Syck Algorithm::C3 Net::HTTPS Net::HTTP::NB Net::HTTP::Methods Net::HTTP LWP HTTP::Status HTTP::Response HTTP::Request::Common HTTP::Request HTTP::Negotiate HTTP::Message HTTP::Headers::Util HTTP::Headers::ETag HTTP::Headers::Auth HTTP::Headers HTTP::Date HTTP::Daemon HTTP::Cookies::Netscape HTTP::Cookies::Microsoft HTTP::Cookies HTML::Form Net::DNS::Resolver::Win32 Net::DNS::Resolver::Recurse Net::DNS::Resolver::Base Net::DNS::RR::TXT Net::DNS::RR::SRV Net::DNS::RR::SPF Net::DNS::RR::NAPTR Net::DNS::RR Net::DNS::Packet Net::DNS::Nameserver Net::DNS POE::XS::Queue::Array POE::Queue File::Temp MP4::Info XML::Simple Proc::Background::Win32 Template::Test Template::Stash::XS Template::Stash::Context Template::Stash Template::Service Template::Provider Template::Plugins Template::Plugin::Wrap Template::Plugin::View Template::Plugin::URL Template::Plugin::Table Template::Plugin::String Template::Plugin::Procedural Template::Plugin::Pod Template::Plugin::Iterator Template::Plugin::Image Template::Plugin::HTML Template::Plugin::Format Template::Plugin::Filter Template::Plugin::File Template::Plugin::Dumper Template::Plugin::Directory Template::Plugin::Date Template::Plugin::Datafile Template::Plugin::CGI Template::Plugin::Autoformat Template::Plugin Template::Parser Template::Namespace::Constants Template::Iterator Template::Grammar Template::Filters Template::Exception Template::Document Template::Context Template::Constants Template::Config Template::Base Template XML::XSPF DBIx::Class::Schema DBIx::Migration JSON::XS GD
Eventually I got slimserver to run, but it didn't work. It seemed unable to enter any id3 tags into its database.
Looks like I'm missing the "apparmor" module, whatever that is.
wget http://www.slimdevices.com/downloads/SqueezeCenter_v7.0.1/squeezecenter_7.0.1_all.deb dpkg -i squeezecenter_7.0.1_all.deb apt-get install mysql-server mysql-client libdbd-mysql-perl flac sox apt-get -f install ... Setting up squeezecenter (7.0.1) ... Adding system user `squeezecenter' (UID 116) ... Adding new user `squeezecenter' (UID 116) with group `nogroup' ... Not creating home directory `/usr/share/squeezecenter'. ls: cannot access /sys/module/apparmor: No such file or directory ls: cannot access /sys/module/apparmor: No such file or directory ls: cannot access /sys/module/apparmor: No such file or directory Loading AppArmor module: Failed. dpkg: error processing squeezecenter (--configure): subprocess post-installation script returned error exit status 1 Processing triggers for libc6 ... ldconfig deferred processing now taking place Errors were encountered while processing: squeezecenter E: Sub-process /usr/bin/dpkg returned an error code (1)
More about this problem in this thread:
Slimcenter 7.0 on Ubuntu 8.04 - apparmor issues
After struggling with 7.0.2 for a while I decided to go back to 6.5.2. I had the usual trouble with perl packages, but the only other problem was creating the database and mysql user.
apt-get install mysql-server mysql-client mysql --user=root --password=xxxxxx use mysql; create user 'slimserver'@'localhost'; create database slimserver; grant all on slimserver.* to 'slimserver'@'localhost'; slimserver.pref: dbusername, dbsource [I tried setting a password on the database user but couldn't get it to work] ./slimserver.pl --d_mysql --prefsfile /u/rees/slimp3/slimserver.pref --playeraddr 10.0.1.155 --noupnp
Slimserver has been renamed Squeezecenter. It now depends on libgd. There is no package for this on OpenBSD. It won't build from source because the libgd configure assumes the wrong location for png.h.
Bin/build-perl-modules.pl Perl-Modules (fails) Bin/build-perl-modules.pl JSON::XS YAML::Syck perl -MCPAN -e shell install GD (fails; depends on libgd; why didn't build-perl-modules.pl tell me that?)
Fetch libgd source and fix it:
configure ed Makefile /libpng.libpng/s'/usr/local/include/libpng/libpng'/usr/local/include/libpng'p gmake install
Try GD again:
Bin/build-perl-modules.pl GD (thinks it worked, but it's wrong; try CPAN again) perl -MCPAN -e shell install GD
At this point perl is completely confused and I'm thinking about selling my Slimp3 and just using Apple products instead. Check out this cute error message:
./slimserver.pl --d_mysql --prefsfile /u/rees/slimp3/slimserver.pref --playeraddr 10.0.1.1 --noupnp The following CPAN modules were found but cannot work with SqueezeCenter: XML::Parser (loaded 2.34, need 2.34) To fix this problem you have several options: 1. Install the latest version of the module(s) using CPAN: sudo cpan Some::Module 2. Update the module's package using apt-get, yum, etc. 3. Run the .tar.gz version of SqueezeCenter which includes all required CPAN modules.
You can bypass the annoying click-through license by going directly to the downloads directory.
I tried to just use packages this time. This turned out to be a mistake. Apparently with perl you just can't mix packages and non-package modules. The OpenBSD package system is too inflexible to use for installing perl modules. See below.
pkg_add mysql-client* mysql-server* ln -s mysqld_safe /usr/local/bin/mysqld /usr/local/bin/mysql_install_db edit Bin/build-perl-modules.pl (see below) Bin/build-perl-modules.pl /usr/local/bin/mysqld --defaults-file=/u/rees/slimp3/my.cnf ./slimserver.pl --d_mysql --prefsfile /u/rees/slimp3/slimserver.pref --playeraddr 10.0.1.2 --noupnp
Another possible fix for the missing mysqld (from Urs Breinlinger):
--- server/Slim/Utils/Misc.pm.orig 2007-03-04 23:54:17.000000000 +0100 +++ server/Slim/Utils/Misc.pm 2007-03-04 23:54:44.000000000 +0100 @@ -110,7 +110,7 @@ if (Slim::Utils::OSDetect::OS() ne "win") { - push @paths, (split(/:/, $ENV{'PATH'}), qw(/usr/bin /usr/local/bin /usr/libexec /sw/bin /usr/sbin)); + push @paths, (split(/:/, $ENV{'PATH'}), qw(/usr/bin /usr/local/bin /usr/libexec /sw/bin /usr/sbin /usr/local/libexec));
Got stuck here:
% ./slimserver.pl --prefsfile /u/rees/slimp3/slimserver.pref --playeraddr 10.0.1.1 --noupnp Can't locate auto/Compress/Zlib/autosplit.ix in @INC... Starting mysqld daemon with databases from /u/rees/slimp3/MySQL STOPPING server from pid file /u/rees/slimp3/slimserver-mysql.pid 070515 16:54:39 mysqld ended 2007-05-15 16:55:08.8332 ERROR: DBI Connection failed: DBI connect...
At this point I tried installing some p5 packages, and pkg_add had the audacity to tell me it couldn't install some files because they were already installed and had the correct md5, and that's a fatal error! So I gave up on packages and did this instead:
perl -MCPAN -e shell /u/root/cpan PREFIX=/usr/local EXPATLIBPATH=/usr/local/lib EXPATINCPATH=/usr/local/include follow UNINST=1 ftp://ftp.wayne.edu/cpan/ ftp://cpan.cse.msu.edu/ ftp://cpan.uchicago.edu/pub/CPAN/ install Flickr::Upload
Still can't get mysqld to not die. Turned out slim had some wrong config files:
% ./slimserver.pl --d_mysql --d_sql --prefsfile /u/rees/slimp3/slimserver.pref --playeraddr 10.0.1.1 --noupnp 2007-05-16 14:10:58.5837 MySQLHelper: createConfig() Creating config from file: [/u/rees/SlimServer_v6.5.1/MySQL/my.tt] -> [/u/rees/slimp3/my.cnf]. 2007-05-16 14:10:58.8231 MySQLHelper: startServer() About to start MySQL with command: [/usr/local/bin/mysqld --defaults-file=/u/rees/slimp3/my.cnf] Starting mysqld daemon with databases from /u/rees/slimp3/MySQL STOPPING server from pid file /u/rees/slimp3/slimserver-mysql.pid 070516 14:10:58 mysqld ended % grep error /u/rees/slimp3/my.cnf log-error = /u/rees/slimp3/mysql-error-log.txt % cat /u/rees/slimp3/mysql-error-log.txt 070515 16:34:51 mysqld started 070515 16:34:52 [ERROR] Error message file '/u/rees/SlimServer_v6.5.1/MySQL/errmsg.sys' had only 463 error messages, but it should contain at least 472 error messages. Check that the above file is the right version for this program! 070515 16:34:52 [ERROR] Aborting
Aha!
rm -f MySQL/errmsg.sys; cp /usr/local/share/mysql/english/errmsg.sys MySQL
Now perl will often dump core for no reason but with some persistence it can be made to start. I start it in a "screen" window and leave it running.
This was a bit of a struggle. I started by installing the pre-requisites from packages. I got stuck on mysqld. There were conflicts due to some perl modules I had installed. At this point I would have been happy with a forced install that would either blow away the conflicting files or simply install mysqld without resolving the pre-requisites. But the pkg_add man page doesn't describe what the various -F options do, so I tried them all, and -i. Nothing worked. As far as I can tell, none of the options or environment variables listed on the man page do anything. So I just used tar to extract the files from the package. This mostly worked.
Now I needed to install the perl modules needed by slimserver. Again pkg_add failed me. I tried just fetching from cpan but quickly descended into dependency hell. So next I tried slimserver's build-perl-modules.pl. It failed with the useless message "There was a problem creating Makefile - exiting!" The Slim wiki provided the answer, some code to make the XML module look in /usr/local for the expat libs and includes.
Next problem:
Illegal hexadecimal digit 'h' ignored at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 57... 2006-10-20 07:10:30.2501 ERROR: Slim::Formats::readTags: While trying to ->getTag(/u/mp3/Compilations/Two Zombies Later _ Strange and Unusual Music from the Exotica Mailing List/Fuad Motel.mp3) : panic: frexp at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 59.
This turned out to be a bad tag added by iTunes. Removing the tag fixed the problem.
Finally, I had trouble with many tunes showing up twice. This turned out to be iTunes again, this time putting the wrong path in some playlist files. I removed the offending playlists and everything was fine.
% ./slimserver.pl Starting mysqld daemon with databases from /u/rees/slimp3/MySQL 2006-10-20 06:59:22.1271 UPnP: Error adding multicast membership, UPnP may not work properly: Protocol not available 2006-10-20 06:59:22.1289 UPnP: Error setting multicast TTL: Protocol not available 2006-10-20 07:01:28.6101 About to look for files in /u/mp3 2006-10-20 07:01:28.6148 For files with extensions in: [(?i-xsm:\.(?:ape|wma|shn|wav|wave|mp3|mp2|flc|flac|m4a|mov|m4b|mp4|mp+|mpc|ogg|aif|aiff|cue)$)] 2006-10-20 07:01:43.7236 Found 8063 files in /u/mp3 Illegal hexadecimal digit 'h' ignored at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 57. Use of uninitialized value in subroutine entry at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 83. Use of uninitialized value in subroutine entry at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 84. Use of uninitialized value in subroutine entry at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 84. Use of uninitialized value in division (/) at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 77. Use of uninitialized value in subroutine entry at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 89. 2006-10-20 07:10:30.2501 ERROR: Slim::Formats::readTags: While trying to ->getTag(/u/mp3/Compilations/Two Zombies Later _ Strange and Unusual Music from the Exotica Mailing List/Fuad Motel.mp3) : panic: frexp at /u/rees/SlimServer_v6.5.0/Slim/Utils/SoundCheck.pm line 59. 2006-10-20 07:10:30.2511 Backtrace: frame 0: Slim::Formats::readTags (/u/rees/SlimServer_v6.5.0/Slim/Schema.pm line 750) frame 1: Slim::Schema::newTrack (/u/rees/SlimServer_v6.5.0/Slim/Utils/Scanner.pm line 322) frame 2: Slim::Utils::Scanner::scanDirectory (/u/rees/SlimServer_v6.5.0/Slim/Music/MusicFolderScan.pm line 72) frame 3: Slim::Music::MusicFolderScan::startScan (/u/rees/SlimServer_v6.5.0/Slim/Music/Import.pm line 393) frame 4: Slim::Music::Import::runImporter (/u/rees/SlimServer_v6.5.0/Slim/Music/Import.pm line 236) frame 5: Slim::Music::Import::runScan (/u/rees/SlimServer_v6.5.0/scanner.pl line 179) frame 6: (eval) (/u/rees/SlimServer_v6.5.0/scanner.pl line 173) frame 7: main::main (/u/rees/SlimServer_v6.5.0/scanner.pl line 330) Size mismatch on COMM at /u/rees/SlimServer_v6.5.0/Slim/Formats/MP3.pm line 129 2006-10-20 07:26:28.7150 About to look for files in /u/mp3/AAA 2006-10-20 07:26:28.7203 For files with extensions in: [(?i-xsm:\.(?:asf|wax|asx|lnk|wpl|m3u|pls|xspf|cue)$)] 2006-10-20 07:26:28.9154 Found 15 files in /u/mp3/AAA 2006-10-20 07:26:31.4182 Slim::Formats::Playlists::M3U::read: Can't remove directory /u/rees/slimp3/templates/u/rees/SlimServer_v6.5.0/HTML/EN: Directory not empty at /u/rees/SlimServer_v6.5.0/scanner.pl line 210 Can't remove directory /u/rees/slimp3/templates/u/rees/SlimServer_v6.5.0/HTML: Directory not empty at /u/rees/SlimServer_v6.5.0/scanner.pl line 210 Can't remove directory /u/rees/slimp3/templates/u/rees/SlimServer_v6.5.0: Directory not empty at /u/rees/SlimServer_v6.5.0/scanner.pl line 210 Can't remove directory /u/rees/slimp3/templates/u/rees: Directory not empty at /u/rees/SlimServer_v6.5.0/scanner.pl line 210 Can't remove directory /u/rees/slimp3/templates/u: Directory not empty at /u/rees/SlimServer_v6.5.0/scanner.pl line 210 Can't remove directory /u/rees/slimp3/templates: Directory not empty at /u/rees/SlimServer_v6.5.0/scanner.pl line 210 2006-10-20 08:06:12.8406 Bogus streamstate for unpause 2006-10-20 08:06:12.8419 Backtrace: frame 0: Slim::Networking::SliMP3::Stream::unpause (/u/rees/SlimServer_v6.5.0/Slim/Player/SLIMP3.pm line 144) frame 1: Slim::Player::SLIMP3::resume (/u/rees/SlimServer_v6.5.0/Slim/Player/Source.pm line 448) frame 2: Slim::Player::Source::playmode (/u/rees/SlimServer_v6.5.0/Slim/Player/Playlist.pm line 613) frame 3: Slim::Player::Playlist::reshuffle (/u/rees/SlimServer_v6.5.0/Slim/Control/Commands.pm line 1077) frame 4: Slim::Control::Commands::playlistXtracksCommand (/u/rees/SlimServer_v6.5.0/Slim/Control/Request.pm line 1485) frame 5: (eval) (/u/rees/SlimServer_v6.5.0/Slim/Control/Request.pm line 1485) frame 6: Slim::Control::Request::execute (/u/rees/SlimServer_v6.5.0/Slim/Control/Request.pm line 774) frame 7: Slim::Control::Request::executeRequest (/u/rees/SlimServer_v6.5.0/Slim/Player/Client.pm line 462) frame 8: Slim::Player::Client::execute (/u/rees/SlimServer_v6.5.0/Slim/Buttons/BrowseDB.pm line 226) frame 9: Slim::Buttons::BrowseDB::__ANON__ (/u/rees/SlimServer_v6.5.0/Slim/Hardware/IR.pm line 830) frame 10: Slim::Hardware::IR::executeButton (/u/rees/SlimServer_v6.5.0/Slim/Buttons/Input/List.pm line 141) frame 11: Slim::Buttons::Input::List::__ANON__ (/u/rees/SlimServer_v6.5.0/Slim/Hardware/IR.pm line 830) frame 12: Slim::Hardware::IR::executeButton (/u/rees/SlimServer_v6.5.0/Slim/Control/Commands.pm line 148) frame 13: Slim::Control::Commands::buttonCommand (/u/rees/SlimServer_v6.5.0/Slim/Control/Request.pm line 1485) frame 14: (eval) (/u/rees/SlimServer_v6.5.0/Slim/Control/Request.pm line 1485) frame 15: Slim::Control::Request::execute (/u/rees/SlimServer_v6.5.0/Slim/Control/Request.pm line 774) frame 16: Slim::Control::Request::executeRequest (/u/rees/SlimServer_v6.5.0/Slim/Player/Client.pm line 462) frame 17: Slim::Player::Client::execute (/u/rees/SlimServer_v6.5.0/Slim/Hardware/IR.pm line 844) frame 18: Slim::Hardware::IR::processCode (/u/rees/SlimServer_v6.5.0/Slim/Hardware/IR.pm line 700) frame 19: Slim::Hardware::IR::releaseCode (/u/rees/SlimServer_v6.5.0/Slim/Hardware/IR.pm line 517) frame 20: Slim::Hardware::IR::checkRelease (/u/rees/SlimServer_v6.5.0/Slim/Utils/Timers.pm line 181) frame 21: Slim::Utils::Timers::checkTimers (./slimserver.pl line 490) frame 22: main::idle (./slimserver.pl line 440) frame 23: main::main (./slimserver.pl line 1039)Jim Rees