I'm attempting to upgrade my LMS 7.7.1 to 7.7.2 so I can get my squeezebox to stop upgrading and downgrading firmware every time i use it.
I've downloaded the CPAN sources from svn and got them to build successfully after a couple minor tweaks.
I couldn't find any documentation that tells me what to do with the artifacts that were built, however.
I attempted to just copy the files in build/ to [LMS]/CPAN/, but it results in an annoying Perl issue:
Of course, if I switch back to the modules that come with the LMS download, I get the opposite (hence the 'annoying' part):Code:DBD::SQLite object version 1.34_01 does not match bootstrap parameter 1.35 at /usr/local/lib/perl5/5.10.1/mach/DynaLoader.pm line 223.
I assume I simply haven't copied the built artifacts into the correct places.Code:DBD::SQLite object version 1.35 does not match bootstrap parameter 1.34_01 at /usr/local/lib/perl5/5.10.1/mach/DynaLoader.pm line 223.
Can someone confirm that simply copying everything from build/ into [LMS]/CPAN/ is enough?
If that's not enough, could someone reply with where everything should be copied?
Any assistance is appreciated!
Results 1 to 10 of 13
-
2012-08-12, 09:18 #1
Building from svn on FreeBSD 8.2 amd64; where to copy built artifacts?
-
2012-08-12, 15:33 #2
As someone who refuses to change from FreeBSD despite constant accusations of perversions involving deceased equines, I'd love to be able to answer this question, but I don't understand it.
Don't push your love too far
Your wounds won't leave a scar
Right now is where you are
In a broken dream.
-
2012-08-26, 13:57 #3
I'll try to clarify a bit.
I'm attempting to build LMS from the svn sources on FreeBSD 8.2 amd64.
I downloaded the 7.7.2 CPAN sources and ran the buildme.sh script to build everything (after a couple tweaks to get everything to build correctly).
Now I have a directory called "build" with all of the built artifacts in it.
I also have a directory that contains the .tar.gz distribution of LMS 7.7.2.
My question is: where do I copy the files from the "build" directory to make .tar.gz distribution of LMS 7.7.2 work?
-
2012-08-26, 15:05 #4
Of course, I figure it all out after posting once again. -_-
All I had to do was copy everything from build/arch/5.10/ to [LMS]/CPAN/arch/5.10/.
After doing that and moving a couple symlinks around, LMS 7.7.2 starts!
-
2012-08-26, 15:51 #5
Glad you figured it out.
Don't push your love too far
Your wounds won't leave a scar
Right now is where you are
In a broken dream.
-
2012-08-29, 13:35 #6Junior Member
- Join Date
- Nov 2011
- Posts
- 7
-
2012-09-09, 13:35 #7
Sure. Here's what I came up with, including links to a couple patches that you'll need. As always, your mileage may vary! Note that I'm building LMS 7.7.2 on FreeBSD 8.2-RELEASE amd64, Perl 5.10.1, GCC 4.2.1.
1) Download the CPAN sources for whichever version you wish to use into a new directory (requires 'subversion'):
2) The main issue I've found with compiling LMS for amd64 is ffmpeg fails to compile due to the age of the shipping version of GCC in FreeBSD; it's too old. Upgrading GCC in FreeBSD is not an option as the kernel (and most ports) might not build afterwards. To get around this we need to make a couple changes to the "buildme.sh" script, among other things. The VP6f and VP8 codecs are the culprits (or maybe just one of them; I removed both to be sure), so we simply need to remove a couple parameters from the 'configure' portion of building ffmpeg. The following patch can be applied to remove the parameters (as well as accomplish part of the next step):Code:svn co http://svn.slimdevices.com/repos/slim/7.7/tags/7.7.2/vendor/CPAN
http://www.ethereal.cc/~alan/lms/bui...ms772.sh.patch
3) At this point ffmpeg will compile but libmediascan will not. We need to update 'mediascan.c' to not care about the VP6f and VP8 codecs that we disabled in the last step. First we extract 'mediascan.c':
4) Next we'll apply a patch to mediascan.c to remove the aforementioned codecs:Code:tar xzvf libmediascan-0.1.tar.gz cp libmediascan-0.1/src/mediascan.c ./
http://www.ethereal.cc/~alan/lms/med...lms772.c.patch
5) If everything worked up to this point, you should be able to simply run ./buildme.sh and wait for everything to compile. Once compiled, you should have a directory called "build" which contains all of the newly-built libraries for LMS. Now we need to extract the LMS download somewhere (fetch can be used in place of wget):
6) Now you can copy everything you just built overtop of what you just extracted:Code:wget http://downloads.slimdevices.com/LogitechMediaServer_v7.7.2/logitechmediaserver-7.7.2.tgz tar xzvf logitechmediaserver-7.7.2.tgz
NOTE: [CPAN] is replaced by the location of the "CPAN" directory you got from step #1; [LMS] is replaced by the location of the LMS files you extracted in step #5.Code:cp -Rv [CPAN]/build/arch/5.10/* [LMS]/CPAN/arch/5.10/
7) You're all set! If you have symlinks to any particular directories (config, prefs, etc.), now would be the time to update those to point to your current installation.
I hope this helps!
-
2012-10-03, 04:37 #8Junior Member
- Join Date
- Nov 2011
- Posts
- 7
Thanks for the steps above. I've tried following them and run into a problem. I have 9.0-RELEASE FreeBSD amd64, Perl 5.12.4, and GCC 4.2.1. Steps 1-4 seem to go fine but then when I run './buildme.sh' after lots of building I get the following error:
I read each of your patches but I can't see how they might be linked to this problem. Any thought?Code:WARNING: Setting ABSTRACT via file 'lib/Media/Scan.pm' failed at /usr/local/lib/perl5/site_perl/5.12.4/ExtUtils/MakeMaker.pm line 609 Writing Makefile for Media::Scan Writing MYMETA.yml and MYMETA.json cp lib/Media/Scan/Image.pm blib/lib/Media/Scan/Image.pm cp lib/Media/Scan/Result.pm blib/lib/Media/Scan/Result.pm cp lib/Media/Scan/Audio.pm blib/lib/Media/Scan/Audio.pm cp lib/Media/Scan/Video.pm blib/lib/Media/Scan/Video.pm cp lib/Media/Scan/Progress.pm blib/lib/Media/Scan/Progress.pm cp lib/Media/Scan.pm blib/lib/Media/Scan.pm cp lib/Media/Scan/Error.pm blib/lib/Media/Scan/Error.pm /usr/local/bin/perl5.12.4 /usr/local/lib/perl5/5.12.4/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.12.4/ExtUtils/typemap -typemap typemap Scan.xs > Scan.xsc && mv Scan.xsc Scan.c Please specify prototyping behavior for Scan.xs (see perlxs manual) cc -c -I/usr/local/lms/CPAN/build/include -I/usr/local/lms/CPAN/build/include -I/usr/local/lms/CPAN/build/include -I/usr/local/lms/CPAN/build/include -I/usr/local/lms/CPAN/build/include -I/usr/local/lms/CPAN/build/include -I/usr/local/lms/CPAN/build/include -DAPPLLIB_EXP="/usr/local/lib/perl5/5.12.4/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -g -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.12.4/mach/CORE" -O2 -Wall -Wno-unused-value -Wno-format-security Scan.c ./xs/Result.xs: In function 'XS_Media__Scan__Result_size': ./xs/Result.xs:45: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'uint64_t' Running Mkbootstrap for Media::Scan () chmod 644 Scan.bs rm -f blib/arch/auto/Media/Scan/Scan.so LD_RUN_PATH="/usr/lib:/usr/local/lib" cc -shared -L/usr/local/lib -fstack-protector Scan.o -o blib/arch/auto/Media/Scan/Scan.so /usr/local/lms/CPAN/build/include/../lib/libmediascan.a /usr/local/lms/CPAN/build/include/../lib/libavformat.a /usr/local/lms/CPAN/build/include/../lib/libavcodec.a /usr/local/lms/CPAN/build/include/../lib/libswscale.a /usr/local/lms/CPAN/build/include/../lib/libavutil.a /usr/local/lms/CPAN/build/include/../lib/libexif.a /usr/local/lms/CPAN/build/include/../lib/libjpeg.a /usr/local/lms/CPAN/build/include/../lib/libpng.a /usr/local/lms/CPAN/build/include/../lib/libgif.a /usr/local/lms/CPAN/build/include/../lib/libdb.a -lm -lz -lintl /usr/bin/ld: /usr/local/lms/CPAN/build/include/../lib/libavcodec.a(deinterlace.o): relocation R_X86_64_PC32 against `ff_pw_4' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value *** Error code 1 Stop in /usr/local/lms/CPAN/libmediascan-0.1/bindings/perl. make failed, aborting
-
2012-10-03, 05:15 #9
The ffmpeg config needs to be told it's building amd64:
https://github.com/XenoPsyche/slimse...02727724b10018Don't push your love too far
Your wounds won't leave a scar
Right now is where you are
In a broken dream.
-
2012-10-04, 12:04 #10Junior Member
- Join Date
- Nov 2011
- Posts
- 7
How do I use the patch in your link? I tried to add the lines from your changed buildme.sh to mine but when I ran it I got the same error as above. Is the problem something to do with needing to build perl differently on Freebsd? The error says something about the 'stack-protector' and buildme has 'For 64-bit native systems, use: perlbrew install perl-5.12.4 -D usethreads -A ccflags=-fno-stack-protector -A ldflags=-fno-stack-protector'. I already have perl 5.12.4, do I need to uninstall and reinstall using this command? I'm pretty sure I have perl only for LMS/ Squeezebox.
Any help appreciated, Stuart





Reply With Quote

