From 6d2c9a84bd15a1ac2213e94ab3170d9b8336726e Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 22 Dec 2014 09:45:51 -0600 Subject: add some improvements to lms --- .../patches/patch-Slim_Utils_OS_Linux_pm | 13 +++ .../src/Slim/Utils/OS/OpenADK.pm | 100 +++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm create mode 100644 package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm diff --git a/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm b/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm new file mode 100644 index 000000000..6561fe08c --- /dev/null +++ b/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm @@ -0,0 +1,13 @@ +--- logitechmediaserver-7.9.0-1418119409-noCPAN.orig/Slim/Utils/OS/Linux.pm 2014-12-08 22:00:23.000000000 -0600 ++++ logitechmediaserver-7.9.0-1418119409-noCPAN/Slim/Utils/OS/Linux.pm 2014-12-13 02:11:35.032418001 -0600 +@@ -27,6 +27,10 @@ sub getFlavor { + + return 'Netgear RAIDiator'; + ++ } elsif (-f '/etc/.adktarget') { ++ ++ return 'OpenADK'; ++ + } elsif (-f '/etc/squeezeos.version') { + + return 'SqueezeOS'; diff --git a/package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm b/package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm new file mode 100644 index 000000000..d82807b05 --- /dev/null +++ b/package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm @@ -0,0 +1,100 @@ +package Slim::Utils::OS::OpenADK; + +# Logitech Media Server Copyright 2001-2011 Logitech. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License, +# version 2. + +use strict; +use FindBin qw($Bin); + +use base qw(Slim::Utils::OS::Linux); + +sub initDetails { + my $class = shift; + + $class->{osDetails} = $class->SUPER::initDetails(); + + # package specific addition to @INC to cater for plugin locations + $class->{osDetails}->{isDebian} = 1 ; + + unshift @INC, '/usr/share/logitechmediaserver'; + unshift @INC, '/usr/share/logitechmediaserver/CPAN'; + + return $class->{osDetails}; +} + +=head2 dirsFor( $dir ) + +Return OS Specific directories. + +Argument $dir is a string to indicate which of the server directories we +need information for. + +=cut + +sub dirsFor { + my ($class, $dir) = @_; + + my @dirs = (); + + if ($dir =~ /^(?:oldprefs|updates)$/) { + + push @dirs, $class->SUPER::dirsFor($dir); + + } elsif ($dir =~ /^(?:Firmware|Graphics|HTML|IR|MySQL|SQL|lib|Bin)$/) { + + push @dirs, "/usr/share/logitechmediaserver/$dir"; + + } elsif ($dir eq 'Plugins') { + + push @dirs, $class->SUPER::dirsFor($dir); + push @dirs, "/usr/share/perl5/Slim/Plugin", "/usr/share/logitechmediaserver/Plugins"; + + } elsif ($dir =~ /^(?:strings|revision)$/) { + + push @dirs, "/usr/share/logitechmediaserver"; + + } elsif ($dir eq 'libpath') { + + push @dirs, "/usr/share/logitechmediaserver"; + + } elsif ($dir =~ /^(?:types|convert)$/) { + + push @dirs, "/etc/logitechmediaserver"; + + } elsif ($dir =~ /^(?:prefs)$/) { + + push @dirs, $::prefsdir || "/var/lib/logitechmediaserver/prefs"; + + } elsif ($dir eq 'log') { + + push @dirs, $::logdir || "/var/log/logitechmediaserver"; + + } elsif ($dir eq 'cache') { + + push @dirs, $::cachedir || "/var/lib/logitechmediaserver/cache"; + + } elsif ($dir =~ /^(?:music|playlists)$/) { + + push @dirs, ''; + + } else { + + warn "dirsFor: Didn't find a match request: [$dir]\n"; + } + + return wantarray() ? @dirs : $dirs[0]; +} + +# Bug 9488, always decode on Ubuntu/Debian +sub decodeExternalHelperPath { + return Slim::Utils::Unicode::utf8decode_locale($_[1]); +} + +sub scanner { + return '/usr/sbin/logitechmediaserver-scanner'; +} + + +1; -- cgit v1.2.3