Squeezebox Server 7.6 + Perl 5.14

Ask questions about Arch Linux ARM. Please search before making a new topic.

Re: Squeezebox Server 7.6 + Perl 5.14

Postby bz31 » Thu Aug 02, 2012 8:10 am

Thanks maihoaomv.
The line
svnurl=svn.slimdevices.com/repos/slim/7.7/trunk/vendor/CPAN/
in PKGBUILD file can be changed by
svnurl=svn.slimdevices.com/repos/slim/7.8/trunk/vendor/CPAN/
bz31
 
Posts: 36
Joined: Mon Jun 18, 2012 8:35 am
Location: France

Re: Squeezebox Server 7.6 + Perl 5.14

Postby bz31 » Fri Aug 03, 2012 4:39 am

$this->bbcode_second_pass_quote('maihoaomv', 'f')ujcru

I've been kind of keeping an eye on this forum hoping someone might actually post something of value that will help me build LMS 7.7.2 for my GoFlexHome.

I've tried to build this package for arm several times but have yet to succeed (It takes 2 hours plus to build it on the GFH). I tried your suggestions on how to build the nightly tarball. It's currently at 7.8.0 (logitechmediaserver-7.8.0-1342011222-arm-linux.tgz). It failed to build. I then tried the official perl version tarball of logitechmediaserver 7.7.2-4 at http://www.mysqueezebox.com/download but I get an error at cleanup.

I changed the arch to ('arm') and hard coded the filename and sha1sum into the PKGBUILD (which I had already figured out). I also commented out the last line in the build section (#rm -r Bin/{arm-linux,darwin,i386-freebsd-64int,powerpc-linux,sparc-linux}) as you suggested.

I suspect from the error it may be that it thinks it's a i386 file rather than arm.
I would like to learn how to build the package myself but programming is not my strong point. I don't know where to go from here. Would it be possible you could assist me in figuring out what I'm doing wrong?

I get the following error:

sent 9733898 bytes received 631 bytes 19469058.00 bytes/sec
total size is 9729731 speedup is 1.00
/media/Seagate/logitechmediaserver/src/logitechmediaserver-7.7.2-33893
patching file CPAN/XML/Parser/Expat.pm
patching file CPAN/XML/Simple.pm
patching file Slim/Control/Request.pm
==> Starting package()...
==> Tidying install...
-> Purging unwanted files...
-> Compressing man and info pages...
-> Stripping unneeded symbols from binaries and libraries...
strip: Unable to recognise the format of the input file `./opt/logitechmediaserver/Bin/i386-linux/faad'

==> ERROR: An unknown error has occurred. Exiting...
==> Cleaning up...
User defined signal 1
[root@GoFlexHome logitechmediaserver]#

Thanks..........

Just to understand the problem and the solution:
The problème is strip: Unable to recognise the format of the input file `./opt/logitechmediaserver/Bin/i386-linux/faad'. The PKGBUILD from the AUR at https://aur.archlinux.org/packages.php?ID=53691 use the source $this->bbcode_second_pass_code('', 'http://downloads.slimdevices.com/LogitechMediaServer_v7.7.2/logitechmediaserver-7.7.2.tgz') which has Bin/{arm-linux,darwin,i386-freebsd-64int,powerpc-linux,sparc-linux} directories. The solution of maihoaomv use the ARM source file. It has only the Bin/arm-linux directory.
Add arm to arch and comment out the last line in the build section in PKGBUILD file are not necessary. We need only to change in PKGBUILD the source line and two other related lines . For example (the arm file for version 7.7.2 is http://downloads.slimdevices.com/Logite ... -linux.tgz) $this->bbcode_second_pass_code('', '--- logitechmediaserver/PKGBUILD 2012-07-27 01:41:33.000000000 +0200
+++ logitechmediaserver-7.7.2-arm-linux/PKGBUILD 2012-08-02 23:30:11.760491001 +0200
@@ -10,13 +10,13 @@
makedepends=('nasm' 'yasm' 'rsync')
[[ $CARCH = x86_64 ]] && optdepends=('lib32-glibc: transcoding' 'lib32-gcc-libs: transcoding')
depends=('perl>5.15' 'perl<5.17')
-source=("http://downloads.slimdevices.com/LogitechMediaServer_v${pkgver}/logitechmediaserver-${pkgver}.tgz"
+source=("http://downloads.slimdevices.com/LogitechMediaServer_v${pkgver}/logitechmediaserver-${pkgver}-arm-linux.tgz"
'perl-recent.patch'
'service'
'conf.d'
'rc.d')
backup=('etc/conf.d/logitechmediaserver')
-sha1sums=('081259a0795ddd132351f4c95342e7371d90d4f5'
+sha1sums=('84dabe87f8c8a7cb09e08bc95711479c47d879d9'
'2e9989b5ea49e9e3b0fa2e16590ad3a6957f7b9c'
'6e3428f9e798bf2403f46d7d20020eb985832356'
'80d3658796ba7241b497e5fce93813423c57e06e'
@@ -54,7 +54,7 @@
#rm -r CPAN/arch/5.16/{arm-linux-gnueabi-thread-multi-64int,i386-linux-thread-multi-64int,powerpc-linux-thread-multi-64int}
#[[ ${CARCH} = i686 ]] && rm -r CPAN/arch/5.16/x86_64-linux-thread-multi || true
#[[ ${CARCH} = x86_64 ]] && rm -r CPAN/arch/5.16/i386-linux-thread-multi || true
- rm -r Bin/{arm-linux,darwin,i386-freebsd-64int,powerpc-linux,sparc-linux}
+ rm -r Bin/arm-linux
}

package() {')
bz31
 
Posts: 36
Joined: Mon Jun 18, 2012 8:35 am
Location: France

Re: Squeezebox Server 7.6 + Perl 5.14

Postby fujcru » Tue Sep 11, 2012 3:14 am

I'm glad to see that this thread didn't die. I just compiled the latest beta of the Logitech Media Server (7.8.0-1346674706) on my Pogoplug Pro running Archlinux with perl 5.16.1. It seems to be functioning just fine. As some people have mentioned, you can do this by grabbing the tarball from AUR https://aur.archlinux.org/packages/lo/logitechmediaserver/logitechmediaserver.tar.gz and making a few changes to the PKGBUILD. My edited PKGBUILD is as follows: $this->bbcode_second_pass_code('', '
pkgname=logitechmediaserver
pkgver=7.8.0
pkgrel=1346674706
pkgdesc='Streaming audio server supported by Logitech'
url='http://www.mysqueezebox.com/download'
license=('GPL' 'custom')
arch=('i686' 'x86_64')
makedepends=('nasm' 'yasm' 'rsync')
[[ $CARCH = x86_64 ]] && optdepends=('lib32-glibc: transcoding' 'lib32-gcc-libs: transcoding')
depends=('perl>5.15' 'perl<5.17')
source=("http://downloads.slimdevices.com/nightly/7.8/sc/6ae78d4/logitechmediaserver-${pkgver}-${pkgrel}-arm-linux.tgz"
'perl-recent.patch'
'service'
'conf.d'
'rc.d')
backup=('etc/conf.d/logitechmediaserver')
sha1sums=('5ADEAA8FC0BCD86A13CE0C71F4503361A2711281'
'2e9989b5ea49e9e3b0fa2e16590ad3a6957f7b9c'
'6e3428f9e798bf2403f46d7d20020eb985832356'
'80d3658796ba7241b497e5fce93813423c57e06e'
'9a98d601faff6345dfeddae16d1f10547c2aacba')

install=install

build_cpan() {
svnurl=svn.slimdevices.com/repos/slim/7.7/trunk/vendor/CPAN/
wget -r --no-parent http://${svnurl} --reject 'mysql-*'
pushd ${svnurl}

wget http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.13.tar.gz
sed \
-e 's/XSAccessor-1.05/XSAccessor-1.13/g' \
-e '/RUN_TESTS=1/c RUN_TESTS=0' \
-e 's/perl5.12/perl/g' \
-e 's/5.12/5.16/g' \
-i buildme.sh
sh buildme.sh

popd
cp -r ${svnurl}build/5.16/lib/perl5/*-linux-thread-multi/* CPAN/
cp -r ${svnurl}build/arch CPAN/
rm -fr svn.slimdevices.com
}

build() {
cd "${srcdir}/${pkgname}-${pkgver}"-*

build_cpan
patch -p1 -i ../perl-recent.patch

rm -r CPAN/arch/5.{8,10,12,14}
#rm -r CPAN/arch/5.16/{arm-linux-gnueabi-thread-multi-64int,i386-linux-thread-multi-64int,powerpc-linux-thread-multi-64int}
#[[ ${CARCH} = i686 ]] && rm -r CPAN/arch/5.16/x86_64-linux-thread-multi || true
#[[ ${CARCH} = x86_64 ]] && rm -r CPAN/arch/5.16/i386-linux-thread-multi || true
rm -r Bin/arm-linux
}

package() {
cd "${srcdir}/${pkgname}-${pkgver}"-*

install -d "${pkgdir}"/{opt,usr/share/licenses}/"${pkgname}"
cp -a * "${pkgdir}/opt/${pkgname}"

ln -s /opt/"${pkgname}"/License.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 ../service "${pkgdir}/usr/lib/systemd/system/${pkgname}.service"
install -Dm644 ../conf.d "${pkgdir}/etc/conf.d/${pkgname}"
install -Dm755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}"
}
') I'm not a linux pro, so I kind of pieced it together from different messeages. As someone mentioned, it is not necessary to add "arm" to the arch line in the PKGBUILD if you compile using the command (makepkg -Acs --asroot). The -Acs option takes care of that. I also found that you can change the compression level to save time when you are compiling. By having makepkg create a .tar file rather than a .xz file, the compile took about a third of the time (you can find lots of reference to how to do this with a simple google search). There were a few errors once I started LMS.
defined(@array) is deprecated at /opt/logitechmediaserver/CPAN/Class/Inspector.pm line 124.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at /opt/logitechmediaserver/CPAN/Log/Log4perl/Config.pm line 840.
(Maybe you should just omit the defined()?)
defined(@array) is deprecated at /opt/logitechmediaserver/Slim/Player/SB1SliMP3Sync.pm line 146.
(Maybe you should just omit the defined()?)
overload arg '"' is invalid at /opt/logitechmediaserver/CPAN/DBIx/Class/Storage.pm line 26
The first three are pretty easy to fix. Go to the indicated line and simply delete the word "defined" in that line.
nano +124 /opt/logitechmediaserver/CPAN/Class/Inspector.pm
nano +840 /opt/logitechmediaserver/CPAN/Log/Log4perl/Config.pm
nano +146 /opt/logitechmediaserver/Slim/Player/SB1SliMP3Sync.pm
The last error appears to be a typo. I think instead of '"' it is supposed to be '""'. So go to the line (actually a few lines earlier) and add a second quotation mark.
overload arg '"' is invalid at /opt/logitechmediaserver/CPAN/DBIx/Class/Storage.pm line 26
I hope that helps anyone who wants to try this.
fujcru
 
Posts: 7
Joined: Mon Nov 21, 2011 3:05 am

Re: Squeezebox Server 7.6 + Perl 5.14

Postby Daimusou » Mon Oct 15, 2012 2:59 pm

Using the PKGBUILD submitted by fujcru, it complains about nasm and yasm not being installed.
As those are X86 assemblers, and this is on an ARM device, is this going to work?

But that aside, I get a SHA1 mismatch on the logitechmediaserver-7.8.0-1346674706-arm-linux.tgz file
[UPDATE]
I edited the PKGBUILD to include a SHA1 value that matched the actual file and it proceeds. But before even getting to the meat of LMS, it tries to build cpan. My system already has a 'cpan' command, but it does not have the 'patch' command that the PKGBUILD uses later. Building cpan takes a very long time on my Tonido, but it eventually dies compiling FreeType:

$this->bbcode_second_pass_code('', 'cc -c -I/usr/include/freetype2 -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DVERSION=\"0.03\" -DXS_VERSION=\"0.03\" -fPIC "-I/usr/lib/perl5/core_perl/CORE" FreeType.c
FreeType.xs: In function ‘XS_Font__FreeType__Glyph_char_code’:
FreeType.xs:808:30: error: lvalue required as left operand of assignment
')
Daimusou
 
Posts: 9
Joined: Sat Feb 11, 2012 12:33 am

Re: Squeezebox Server 7.6 + Perl 5.14

Postby user11 » Sat Dec 29, 2012 6:49 pm

$this->bbcode_second_pass_quote('WarheadsSE', 'P')ostby WarheadsSE » Wed Dec 21, 2011 4:27 pm
I'd like to help you get thsi sorted, as I can, .. the folks at slimdevices would much appreaciate your help.

What we should do, is take the AUR package, update it appropriately, and then place it into the PKGBUILDs github repo with a pull request. That way, it will be available via pacman :)


Any progress with this project? I had no problems with installing Logitech Media Server on network disk running Debian (took 2 hrs), but since a week trying do the same on Pogo running Arch. It's a nightmare!
user11
 
Posts: 7
Joined: Sat Dec 29, 2012 6:38 pm

Re: Squeezebox Server 7.6 + Perl 5.14

Postby fujcru » Fri Jan 04, 2013 10:03 am

Just like to report that I was able to compile the latest nightly, Logitech Media Server v7.8.0-1353679004 on my Pogoplug Pro running Archlinux and with Perl v5.16.2. I had been running Debian on the device, but recently modified my network some and reverted back to Archlinux on the Pogoplug Pro. That being said, I needed to try to build the package for LMS and, luckily, it still seems to be working for me. It would seem that Logitech is moving toward different software fir the Squeezeboxes (Logitech UE) which doesn't support connecting to LMS so there may not be very many further updates to LMS. Of note to those who are having trouble building the package, you might want to check to make sure that you have a large enough swap file. When I tried with no swap file, the build crashed about 1/4 of the way through. With a 512 MB swap file, it got maybe 3/4 of the way through before the build died. When I moved to a 1 GB swap file, the build was finally successful on the first try.

I basically followed the same steps. Download the tarball from AUR for logitechmediaserver 7.7.2-5 which is maintained by vesath: https://aur.archlinux.org/packages/lo/logitechmediaserver/logitechmediaserver.tar.gz. Extract that tarball and modify the PKGBUILD slightly to get it to work on the Pogoplug Pro (ARM architecture). This time around I just downloaded the latest nightly http://downloads.slimdevices.com/nightly/7.8/sc/2e3000d/logitechmediaserver-7.8.0-1353679004-arm-linux.tgz and had the PKGBUILD point to that. If I remember correctly, the changes to the PKGBUILD were that I changed the pkgver and pkgrel, changed the source and updated the SHA-1 checksum, and in the cleanup phase I changed the part where it is deleting the directories to only cleaning up Bin/arm-linux since that is the only directory in the tarball downloaded from Logitech. As usual makepkg -Acs --asroot. My PKGBUILD looked like this:
$this->bbcode_second_pass_code('', '# Maintainer: Gaetan Bisson <bisson@archlinux.org>

pkgname=logitechmediaserver
pkgver=7.8.0
pkgrel=1353679004
pkgdesc='Streaming audio server supported by Logitech'
url='http://www.mysqueezebox.com/download'
license=('GPL' 'custom')
arch=('i686' 'x86_64')
makedepends=('nasm' 'yasm' 'rsync' 'wget')
[[ $CARCH = x86_64 ]] && optdepends=('lib32-glibc: transcoding' 'lib32-gcc-libs: transcoding')
depends=('perl>5.15' 'perl<5.17')
source=('logitechmediaserver-7.8.0-1353679004-arm-linux.tgz'
'perl-recent.patch'
'service'
'conf.d'
'rc.d')
backup=('etc/conf.d/logitechmediaserver')
sha1sums=('8A6E0C0AFA74A532832C5F8FAEA95393C80034E6'
'2e9989b5ea49e9e3b0fa2e16590ad3a6957f7b9c'
'6e3428f9e798bf2403f46d7d20020eb985832356'
'80d3658796ba7241b497e5fce93813423c57e06e'
'9a98d601faff6345dfeddae16d1f10547c2aacba')

install=install

build_cpan() {
svnurl=svn.slimdevices.com/repos/slim/7.7/trunk/vendor/CPAN/
wget -r --no-parent http://${svnurl} --reject 'mysql-*'
pushd ${svnurl}

wget http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.13.tar.gz
sed \
-e 's/XSAccessor-1.05/XSAccessor-1.13/g' \
-e '/RUN_TESTS=1/c RUN_TESTS=0' \
-e 's/perl5.12/perl/g' \
-e 's/5.12/5.16/g' \
-i buildme.sh
sh buildme.sh

popd
cp -r ${svnurl}build/5.16/lib/perl5/*-linux-thread-multi/* CPAN/
cp -r ${svnurl}build/arch CPAN/
rm -fr svn.slimdevices.com
}

build() {
cd "${srcdir}/${pkgname}-${pkgver}"-*

build_cpan
patch -p1 -i ../perl-recent.patch

rm -r CPAN/arch/5.{8,10,12,14}
#rm -r CPAN/arch/5.16/{arm-linux-gnueabi-thread-multi-64int,i386-linux-thread-multi-64int,powerpc-linux-thread-multi-64int}
#[[ ${CARCH} = i686 ]] && rm -r CPAN/arch/5.16/x86_64-linux-thread-multi || true
#[[ ${CARCH} = x86_64 ]] && rm -r CPAN/arch/5.16/i386-linux-thread-multi || true
rm -r Bin/arm-linux
}

package() {
cd "${srcdir}/${pkgname}-${pkgver}"-*

install -d "${pkgdir}"/{opt,usr/share/licenses}/"${pkgname}"
cp -a * "${pkgdir}/opt/${pkgname}"

ln -s /opt/"${pkgname}"/License.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 ../service "${pkgdir}/usr/lib/systemd/system/${pkgname}.service"
install -Dm644 ../conf.d "${pkgdir}/etc/conf.d/${pkgname}"
install -Dm755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}"
}
') I changed the compression level so it just created a .tar file. pacman -U *.tar installed my newly built package. I made the few edits to the files previously mentioned (in my last post in this thread, I think) to correct for deprecated defined arrays and an invalid overload argument. When I started the server, /etc/rc.d/logitechmediaserver start, it started with no errors/warnings and is working beautifully.
fujcru
 
Posts: 7
Joined: Mon Nov 21, 2011 3:05 am

Re: Squeezebox Server 7.6 + Perl 5.14

Postby user11 » Sat Jan 05, 2013 3:01 pm

Well, swap could be the reason, but I have only Pogo B04 with 128MB, booting from Flashdrive and no swap. However I found, that the easiest way to get the Logitech Mediaserver up and running on Archlinux is... change it to Debian. I'd prefer to stick with Arch, but LMS is the most important feature for me. Arch was booting faster and used fewer resources than Debian. I did enjoy it, but because of that, Debian is going to be my full-time system for my pink monster.

Question to Arch gurus, maybe WarheadsSE can answer this? Is there any chance that Logitech Media Server will be added to the official repository?
user11
 
Posts: 7
Joined: Sat Dec 29, 2012 6:38 pm

Re: Squeezebox Server 7.6 + Perl 5.14

Postby WarheadsSE » Sat Jan 05, 2013 4:57 pm

if he would like to maintain it, it can be issued a pull request to get it into the alarm repo
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Squeezebox Server 7.6 + Perl 5.14

Postby user11 » Sat Jan 05, 2013 6:45 pm

I'm only new in Linux, maybe someone more advanced in github procedures would pull the request. On the other hand, someone more advanced would probably manage to install LMS without pacman, so I guess I'll have to stick with Debian... WarheadsSE - thanks for your outstanding work with the OXNAS kernel!
user11
 
Posts: 7
Joined: Sat Dec 29, 2012 6:38 pm

Re: Squeezebox Server 7.6 + Perl 5.14

Postby scales11 » Thu Feb 14, 2013 6:23 pm

Hi all. I am trying to compile this for the raspberry pi (does anyone have it compile so I can just install it?)

It is frustrating to get things working when the compile time takes hours and I keep hitting errors. I am thinking about cross-compiling or compiling on my desktop to help save time.

At the moment I am downloading the arm source from the mentioned link, and telling makepkg to ignore the checksums. I get stuck and things fail when it tries to patch something and claims a patch version is old...?

Can anyone offer a straight forward way to getting this installed? Next will be the player portion..
scales11
 
Posts: 6
Joined: Thu Feb 14, 2013 4:33 pm

PreviousNext

Return to User Questions

Who is online

Users browsing this forum: No registered users and 5 guests