LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Using XBMC 10.0 slackbuild to compile XBMC 11.0 almost works (https://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.

Slack-Lars 05-04-2012 08:35 AM

Quote:

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

Yeah ! Thanx so much larryhaja !

croxen 06-10-2012 05:52 AM

I've noticed that some of the rtmpdump-dependant addons for XBMC 11.0 have been written for rtmpdump-2.4 rather than 2.3 (the unofficial Hulu and Free Cable addons in particular). These addons won't run unless rtmpdump is upgraded, or rather will run, but won't retrieve content.

There's no slackbuild yet for rtmpdump 2.4. And 2.4 source hasn't been placed yet in the archive at http://rtmpdump.mplayerhq.hu/download/ but current code apparently needs to be gotten with a git pull.

So for XBMC functionality with these addons requiring rtmpdump-2.4, it appears that the slackbuild compile of rtmpdump needs to be upgraded with current 2.4 source, or the slackbuild rtmpdump package can be upgraded with the rtmpdump-2.4 package provided by the SlaXBMC project, which was the course I took and it seems to run fine. http://slaxbmc.blogspot.com/2012/01/...de-beta-1.html

If any version of rtmpdump was installed prior to the XBMC slackbuild having been run, then simply upgrading rtmpdump to 2.4 is sufficient. But if no version of rtmpdump was installed at the time when the slackbuild script for XBMC 11.0 was initially run, then the script will need to be run again after rtmpdump-2.4 is installed to enable 2.4 support in the compiled xbmc package.

vdemuth 06-11-2012 01:03 AM

Followed this thread and downloaded/installed the latest, but getting this error when starting:-

Quote:

XBMC needs hardware accelerated OpenGL rendering.
Install an appropriate graphics driver.
But I am running the ATI drivers as can be seen here:-

Code:

glxinfo
name of display: :0
display: :0  screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: ATI
server glx version string: 1.4

Any idea where I look to solve?

Thanks

ponce 06-11-2012 01:19 AM

I don't use XBMC so I wasn't aware of its dependency to rtmpdump from git (there's no 2.4 release, as you can see on its site).

Said that, I already have available a build script for it and I'm using here on -current with no problems

http://cgit.ponce.cc/slackbuilds/log/?h=rtmpdump

If there are no objections, I'll submit it to slackbuilds.org.

glorsplitz 06-11-2012 06:20 AM

As a side note I got PLEX working ok in current slack32 vbox vm, serves up content to roku.

I think I just installed their download and didn't have to do any dependency.

I'm interested in XBMC too, I'm going to give it a try.

vdemuth 06-11-2012 01:05 PM

Got this working here. My issues were surrounding the ati drivers. Uninstall and reinstall did the trick.

Just getting to grips now with this new version having been used to the previous one. Not spotted much difference so far. Just got to get album thumbnails working now.


All times are GMT -5. The time now is 10:13 AM.