LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Using XBMC 10.0 slackbuild to compile XBMC 11.0 almost works (http://www.linuxquestions.org/questions/slackware-14/using-xbmc-10-0-slackbuild-to-compile-xbmc-11-0-almost-works-939228/)

farmerdave 04-11-2012 03:10 AM

Using XBMC 10.0 slackbuild to compile XBMC 11.0 almost works
 
I began with this Slackbuild for XBMC 10.0 on Slackware 13.37.

I have Slackware 13.37 installed and wanted to try and install XBMC 11.0.
I took a chance it would be a simple swap, changing xbmc.info to point to the correct download and correct md5sum on the XBMC source download, change the version numbers and try compiling.

I also commented out the patch in the Slackbuild, because it is a check for a non-sse2-cpu, unnecessary for me.

The first error that resulted was relatively simple to fix. It seemed to be a dependency on yajl, so I used the Slackbuild available for this and that problem was solved.

It compiled for a long time, but then gave this error.
Code:

xbmc/cores/dvdplayer/DVDCodecs/Audio/Audio.a(DVDAudioCodecPassthroughFFmpeg.o): In function `DllAvFormat::av_read_frame_flush(AVFormatContext*)':
DVDAudioCodecPassthroughFFmpeg.cpp:(.text._ZN11DllAvFormat19av_read_frame_flushEP15AVFormatContext[DllAvFormat::av_read_frame_flush(AVFormatContext*)]+0x19): undefined reference to `av_read_frame_flush'
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxers.a(DVDDemuxFFmpeg.o): In function `CDVDDemuxFFmpeg::Flush()':
DVDDemuxFFmpeg.cpp:(.text+0x2547): undefined reference to `av_read_frame_flush'
collect2: ld returned 1 exit status
make: *** [xbmc.bin] Error 1

I found a previous patch for what seems to be a similar error in xbmc-boxee-iview (the first "diff"), but have no real knowledge of patching files.
Code:

diff -Nur xbmc-10.00.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp xbmc-10.00.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
--- xbmc-10.00.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp 2010-04-04 11:42:49.000000000 +0100
+++ xbmc-10.00.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp 2010-04-04 22:57:37.512130259 +0100
@@ -556,6 +556,9 @@
  if (m_pFormatContext)
    m_dllAvFormat.av_read_frame_flush(m_pFormatContext);

+  if (m_ioContext)
+    m_ioContext->buf_ptr = m_ioContext->buf_end;
+
  m_iCurrentPts = DVD_NOPTS_VALUE;
 }

Here is where I get stuck, is anyone else either working on an XBMC 11.0 Slackbuild, or able to help me get through this one?

whizje 04-11-2012 01:42 PM

As I understand it uses `av_read_frame_flush' libavformat which comes with FFmpeg so if you first install FFmpeg it should work.

farmerdave 04-11-2012 04:42 PM

I already have installed FFmpeg from Slackbuilds. In order to compile FFmpeg I needed to have tetex or texlive installed, and so I installed texlive from Slackbuilds, however to get it to compile I needed to modify the Slackbuild to have "--disable-xindy".

To clarify, I firstly installed libmpeg2, faad2, libmodplug, libmms and enca as these are direct dependencies.

From the optional ones, I installed vobcopy, lirc, faac, libdvdcss, libssh,
libvdpau, libass, libva, avahi, ffmpeg, libdca (aka libdts), a52dec (aka liba52).

I then compiled XBMC using the "EXT_ALL=yes|no (Default is no), turns on all of the above options" option from the Slackbuild (same as ffmpeg=yes, a52dec=yes, dts=yes).

I wasn't sure about installing lirc, as I have previously run XBMC on Arch Linux, and now that mceusb is in the kernel installing lirc would break the remote control that I was using (it essentially worked out of the box with the right conf file).

FeyFre 04-11-2012 06:01 PM

I also have tried to build XBMC from slackbuilds(exact version as in slackbuild was written for) some time ago(a few months) and also had such problems(some of subcomponents are unbuildable or not-compatible). After few weeks I tried to rebuild - old problems disappeared and new, very similar, appeared. I think this problems will persist for a long time, until component developers stop play games instead of maintaining their components.

larryhaja 04-11-2012 08:25 PM

I have been working on an update to XBMC. Although it is slow going for me, due to job, school, and life, I do have a working xbmc.SlackBuild. The new required dependencies are libass, libmpeg2, libmodplug and yajl.

I should have a new update submitted to SBo by end of this weekend. Most of the kinks are worked out and I believe it will be ready by then.

XGizzmo 04-11-2012 09:36 PM

You could try adding --disable-external-ffmpg to the configure options, That should cause xbmc to use it own
internal version of ffmpeg.

farmerdave 04-11-2012 10:56 PM

Quote:

Originally Posted by XGizzmo (Post 4650703)
You could try adding --disable-external-ffmpg to the configure options, That should cause xbmc to use it own
internal version of ffmpeg.

Good idea. I had been setting the flag "ffmpeg=yes" because I thought without it I would lose some functionality within XBMC. I was unaware it had an internal version of ffmpeg.

farmerdave 04-11-2012 10:58 PM

Quote:

Originally Posted by larryhaja (Post 4650646)
I should have a new update submitted to SBo by end of this weekend.

Looking forward to seeing it!

farmerdave 04-20-2012 10:05 PM

XBMC 11.0 can be compiled using the version 10.0 Slackbuild if you use the internal ffmpeg. I specified the flags
Code:

OPT_DEPS="--enable-external-python --enable-external-liba52 --enable-external-libdts"
Leaving the rest of the Slackbuild unchanged will result in it stopping with the following
Code:

make: *** No rule to make target `install-livedatas'.  Stop.
due to the line in the Slackbuild
Code:

make install install-livedatas DESTDIR=$PKG
This can be then changed to
Code:

make install DESTDIR=$PKG
for a successful compile and package creation. The question is, what exactly is livedatas! Searching has not turned up much for me.

whizje 04-22-2012 04:10 PM

I have a package from http://slaxbmc.blogspot.com/ which has some quirks but works reasonably.

bassmadrigal 04-22-2012 06:37 PM

Man, I have been keeping my little build script up to date while following the svn (and then git) versions as it progressed from 10 to 10.1 and then onto 11. I have a working script, but it is at home, and I am at work. Once I get home, I will try to remember to go and post it (definitely not slackbuild quality yet, and it only does the build, not creating the package... that is in a separate script -- I guess I like to make things interesting). And I installed all the required and optional dependencies that were required with v10 (other than the ones not available through slackbuilds... came down to laziness), and I think the only additional one I added was the yajl. There are a couple of minor things I have in the build script that fixed my build issues (I believe I never had to specify to use the internal ffmpeg).

Anyway, here's to hoping that I can remember to post it when I get home. Eden has been running great on my machine (and NFS is sooooo much better than samba over wireless - I can now stream 1080p content without any issues... I could never pull that off with samba).

larryhaja 04-22-2012 10:07 PM

New build of xbmc 11.0 has been submitted to SBo.

farmerdave 04-23-2012 03:37 AM

Quote:

Originally Posted by larryhaja (Post 4660319)
New build of xbmc 11.0 has been submitted to SBo.

Great work! Any chance you are also working on MythTV 0.25?

bassmadrigal 04-23-2012 06:13 AM

For those who are interested in a quick and dirty compile while waiting for his new script to get approved, here is what my current script is.

Code:

rm -rf xbmc-11.0
tar -zxvf xbmc-11.0.tar.gz
cd xbmc-11.0

## Supposed fix needed for proper RTMP support (Need to have librtmp from SBo compiled)

cp -r /tmp/SBo/rtmpdump-2.3/librtmp/. lib/librtmp/
cd lib/librtmp
sed -i s:prefix=/usr/local:prefix=/usr: \
  Makefile
make
sudo make install
cd ../..

## Prevents DVDPlayer compile failure

sed -i 's:#ifdef _WIN32:#ifdef __linux__:' \
  xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp

## Removes the lsb_release dependency (seems like this doesn't completely remove it as it seems there are other references in other files, but all it does is show up during error messages)

sed -i 's|lsb_release -d|cat /etc/slackware-version|' \
  xbmc/utils/SystemInfo.cpp

## Fix to allow the Goom screensaver to compile

sed -i '12i\    #include "goomsl_yacc.h"' \
  xbmc/visualizations/Goom/goom2k4-0/src/goomsl_yacc.y

#./bootstrap
./configure \
  --prefix=/usr \
  --libdir=/usr/lib \
  --docdir=/usr/doc/xbmc \
  --enable-ccache \
  --enable-debug \
  --enable-gl \
  --enable-dvdcss \
  --enable-mid \
  --enable-goom \
  --enable-vdpau \
  --enable-rtmp \
  --disable-optical-drive \
  --enable-vaapi \
  --enable-ffmpeg-libvorbis \
  --disable-asap-codec \
  --enable-webserver \
  --build=i686-slackware-linux \
make


larryhaja 04-23-2012 08:46 AM

Quote:

Originally Posted by farmerdave (Post 4660501)
Great work! Any chance you are also working on MythTV 0.25?

I'm not the MythTV maintainer. You should ping him instead.


All times are GMT -5. The time now is 06:01 AM.