Slimserver

Slimserver 6.5.2

You can bypass the annoying click-through license by going directly to the downloads directory.

OpenBSD 4.1 / Slimserver 6.5.1

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

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

cp /usr/local/share/mysql/english/errmsg.sys /u/rees/SlimServer_v6.5.1/MySQL

OpenBSD 3.9 / Slimserver 6.5.0

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.

slim.diff

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)

Back to OpenBSD Hacks

Jim Rees