LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 05-17-2009, 03:52 PM   #1
manwichmakesameal
Member
 
Registered: Aug 2006
Distribution: Slackware
Posts: 804

Rep: Reputation: 110Reputation: 110
Slackware -current, Mythtv, and Qt


Ok, I'm trying to build mythtv on my -current installation. The only problem is,
Code:
ERROR! You must have a threaded Qt installed to compile MythTV.
If you think configure made a mistake, make sure you are using the latest
version from SVN.  If the latest version fails, report the problem to the
mythtv-dev@mythtv.org mailing list or IRC #mythtv on irc.freenode.net
Include the log file "config.err" produced by configure as this will help
solving the problem.
Is this just the way qt was compiled? I tried linking /usr/lib/qt to /usr/lib/qt4, and it still didn't work. Anyone have any luck with mythtv on -current?
 
Old 05-17-2009, 05:39 PM   #2
disturbed1
Senior Member
 
Registered: Mar 2005
Location: USA
Distribution: Slackware
Posts: 1,133
Blog Entries: 6

Rep: Reputation: 223Reputation: 223Reputation: 223
You have to use MythTV from SVN with qt-4.

MythTV .21 and MythTV fixes needs qt-3.
 
Old 09-07-2009, 12:22 AM   #3
yuchai
Member
 
Registered: Jan 2005
Location: New York, NY
Distribution: Slackware 13.0
Posts: 56

Rep: Reputation: 15
I just upgraded to Slackware 13.0 and mythtv won't run anymore, although it's actually due to the removal of arts in my case.

The problem I have, as described above, is that mythtv 0.21 won't compile since 13.0 uses Qt4. If I get the SVN trunk from mythtv website, can someone provide some guidance on how I can use that with some kind of Slackbuild script? For example I'm looking at the script for 12.2 at SlackBuilds.org

http://slackbuilds.org/repository/12...imedia/mythtv/

Can someone give some pointers on how I can modify that script for use with a SVN checkout?
 
Old 09-07-2009, 12:40 AM   #4
disturbed1
Senior Member
 
Registered: Mar 2005
Location: USA
Distribution: Slackware
Posts: 1,133
Blog Entries: 6

Rep: Reputation: 223Reputation: 223Reputation: 223
Add --disable-audio-arts to the configure section of the Slackbuild script.

Here's the entire configure section of the build script I use for Slackware64-13.0.
Code:
./configure \
  --prefix=/usr \
  --compile-type=release \
  --disable-distcc \
  --disable-ccache \
  --tune=core2 \
  --cpu=core2 \
  --arch=x86_64 \
  --enable-vdpau \
  --libdir-name=lib64 \
  --disable-audio-oss \
  --disable-audio-arts \
  --disable-audio-jack \
  --dvb-path=/usr/include \
  --with-bindings=perl

The configure has changed to auto probe a few more things compared to .21. If in doubt ./configure --help will shed some light on things. Adjust --libdir-name=,--tune=,--cpu=, and --arch= to fit your system. Remove --enable-vdpau if you do not use the nVidia binary driver with an VDPAU capable card.

Last edited by disturbed1; 09-07-2009 at 12:41 AM.
 
Old 09-07-2009, 02:35 PM   #5
octoberblu3
Member
 
Registered: Oct 2005
Distribution: Slackware64-current
Posts: 67

Rep: Reputation: 22
First, to install 0.21 you will need a working version of the qt3 package from "extra". See this thread to see what I mean about a "working" version of qt3.

Next, I think you may need to add some extra environment variables to get the proper qt version with myth.

I added the following lines right after the stanza about which arch you are running and changed the qmake in the script to the variable $QMAKE.

Code:
  QTDIR=/opt/kde3/lib64/qt3
  QMAKE=/opt/kde3/bin/qmake
  QMAKESPEC=$QTDIR/mkspecs/linux-g++-64
  LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib64
  PATH=$QTDIR/bin:$PATH
Configure with whatever parameters you want. My script for reference is the following. I have ARCH defined in the environment as "x86_64". I use two different SVN directories for 0.21 and 0.22. To build 0.21, I just call the script. to build 0.22, I call the script as "VERSION=0.22 ./mythtv.SlackBuild" I also stick the SVN revision number in the version of the package. I configure with libfftw3; you may need to remove that if you don't have that library.

Code:
#!/bin/sh

# Slackware build script for mythtv
# http://www.mythtv.org/

# Copyright 2006-2007  David Somero (dsomero@hotmail.com)
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

PRGNAM=mythtv
VERSION=${VERSION:-0.21}
ARCH=${ARCH:-i686}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=${TMP}/package-${PRGNAM}
OUTPUT=${OUTPUT:-/tmp}

set -e

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
fi

if [ $VERSION = 0.21 ]; then
  SRCDIR=${SRCDIR:-"$CWD/release-`echo $VERSION | tr . -`-fixes/$PRGNAM"}
  QTDIR=/opt/kde3/lib64/qt3
  QMAKE=/opt/kde3/bin/qmake
  QMAKESPEC=$QTDIR/mkspecs/linux-g++-64
  LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib64
  PATH=$QTDIR/bin:$PATH
else
  SRCDIR=${SRCDIR:-"$CWD/trunk/$PRGNAM"}
  QMAKE=/usr/bin/qmake
fi

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir $PRGNAM-$VERSION
rsync -aC $SRCDIR/ $PRGNAM-$VERSION/
cd $PRGNAM-$VERSION
VERSION=${VERSION}_r`svn info $SRCDIR | grep Revision | tr -d "Revision: "`
chown -R root:root .
find . \
 \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
 -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;

CFLAGS=$SLKCFLAGS \
./configure \
  --prefix=/usr \
  --libdir-name=lib$LIBDIRSUFFIX \
  --compile-type=release \
  --disable-distcc \
  --disable-dbox2  \
  --arch=$ARCH \
  --tune=i686 \
  --cpu=$ARCH \
  --enable-libfftw3 \
  --enable-dvb \
  --dvb-path=/usr/include \
  --with-bindings=perl \
  --enable-xvmc \
  --enable-opengl-vsync

$QMAKE $PRGNAM.pro
make
make \
  INSTALLDIRS=vendor \
  INSTALL_ROOT="$PKG" \
  install

# Copy some other needed stuff to /usr/share/mythtv
cp -a database contrib $PKG/usr/share/$PRGNAM

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING FAQ keys.txt README UPGRADING docs/* \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
( cd $PKG/usr/doc ; ln -s $PRGNAM-$VERSION $PRGNAM )

# Install init script
install -D -m 0755 $CWD/rc.mythbackend.new $PKG/etc/rc.d/rc.mythbackend.new

# Remove perlocal.pod and .packlist from $PKG
( cd $PKG
  find . -name "perllocal.pod" -o -name ".packlist"  -o -name "*.bs"  | xargs rm -f
)

( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)

mkdir -p $PKG/install
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cat $CWD/slack-desc.$PRGNAM > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
EDIT: I also have mythplugins in the same directory to feed from the same tree, so you may want to edit the slack-desc.$PRGNAM line if you just have a normal slack-desc file.

Last edited by octoberblu3; 09-09-2009 at 09:14 AM.
 
Old 09-09-2009, 08:56 AM   #6
yuchai
Member
 
Registered: Jan 2005
Location: New York, NY
Distribution: Slackware 13.0
Posts: 56

Rep: Reputation: 15
Thanks for the responses. I ended up just installing all the packages in extra/kde3-compat and my previous mythtv installation (both frontend and backend) worked again.

I was actually hoping for this as I didn't really want to recompile anything unless it was absolutely necessary so this worked out nicely. I also did not run into the font aliasing issues from the thread that octoberblu3 linked to.

I'll definitely keep the tips here in mind though for the next stable Mythtv release!! Thanks again.
 
Old 09-09-2009, 09:16 AM   #7
octoberblu3
Member
 
Registered: Oct 2005
Distribution: Slackware64-current
Posts: 67

Rep: Reputation: 22
Hey, even better. The font problem was only on Slackware64; the regular 32 bit Slack had no problem.
 
Old 09-09-2009, 11:51 AM   #8
Woodsman
Senior Member
 
Registered: Oct 2005
Distribution: Slackware 14.1
Posts: 3,482

Rep: Reputation: 545Reputation: 545Reputation: 545Reputation: 545Reputation: 545Reputation: 545
I would like to build the latest svn to run on 13.0 32-bit. I downloaded the svn sources.

1. I am using the 12.2 slackbuilds.org build script. With the svn version, what is the correct version number to use in the script? 0.22?

2. The build script looks for $PRGNAM-$VERSION.tar.bz2. Do I need to convert the svn trunk tree to a tar.bz2 file (excluding the .svn directory in the tree)?

3. I have noted the configure changes listed above by distrubed1.

Thanks much.
 
Old 09-09-2009, 12:23 PM   #9
disturbed1
Senior Member
 
Registered: Mar 2005
Location: USA
Distribution: Slackware
Posts: 1,133
Blog Entries: 6

Rep: Reputation: 223Reputation: 223Reputation: 223
I update mythTV svn and create the archives by date similar to Alien Bob's ffmpeg build script and ffmpeg-mksrctarball.sh.
VERSION=svn_$(date +"%Y%m%d")

Since this is YOUR package, version it however is easiest for you to distinguish and maintain. MythTV from svn is updated frequently. I get 100 messages from mythTV-commits in 48 hours
 
Old 09-09-2009, 01:26 PM   #10
Woodsman
Senior Member
 
Registered: Oct 2005
Distribution: Slackware 14.1
Posts: 3,482

Rep: Reputation: 545Reputation: 545Reputation: 545Reputation: 545Reputation: 545Reputation: 545
Quote:
VERSION=svn_$(date +"%Y%m%d")
That is good enough for me. I presume then that I need to create a tar.bz2 file using the same name string?

Oh wait. The SVN files simply downloaded to $HOME/trunk. There is no date information in any of the directory names. The file date stamps are when I downloaded, not the SVN date. Thus, at the moment I don't know how to create the svn_$(date +"%Y%m%d") variable string.

I'm new to SVN. This was the first time I used the program. I hope I don't have to rebuild packages often (I really only want the very basics from MythTV). Yet if there are known bugs then I will need to update and rebuild. I would prefer to have the SVN sources stored in my build MythTV directory rather than in the root of $HOME. The information probably is in the docs somewhere, but how do I direct SVN to store the MythTV source files there?

If I can store the SVN sources in my MythTV build directory then I should be able to modify the build script to automatically create a tar.bz2 file using the VERSION=svn_$(date +"%Y%m%d") variable --- once I learn how to create the variable.

I just rebuilt MPlayer so I think I have an example of building a tar.bz2 file on-the-fly from an SVN source tree. I just need to keep the SVN sources in my MythTV build directory and learn how to create the VERSION variable.

Thanks.
 
Old 09-09-2009, 09:19 PM   #11
forum1793
Member
 
Registered: May 2008
Posts: 312

Rep: Reputation: 34
Hi,

I used a modified SBo build script. When you do svn update (or is it "svn up") it should spit out the current revision number and I use that in the version. You can use the date field as described above and that will use the current date you execute the script, if memory serves.

With some of the gits (other code - not mythtv) I've just been copying to /tmp (via the script) instead of compressing and I altered the script to use that instead of untarring for those git updates.

Since the code is so big for mythtv, though I'm trying to build it after updating (but using "make clean" first). Make clean fails the first time so you can move the "set e" down a bit.

So, after doing that I was able to pull in several channels of over the air HD. But once when changing channels, it hard-locked. So I think the current mythtv code is not stable. You may have better luck.
 
Old 09-09-2009, 11:18 PM   #12
disturbed1
Senior Member
 
Registered: Mar 2005
Location: USA
Distribution: Slackware
Posts: 1,133
Blog Entries: 6

Rep: Reputation: 223Reputation: 223Reputation: 223
Here's my directory layout -

MythTV/mythtv
MythTV/mythplugins
MythTV/myththemes
MythTV/mythxtrathemes

Each directory has the $.SlackBuild, slack-desc, uncompressed svn folder, and compress.sh. Compress.sh is just a hack job that updates (svn up) the current package, changes the folder name to $PACKAGE-svn_$(date +"%Y%m%d"), and compresses to tar.xz. Mythtv alone is 35.1MB with bzip2 -9, xz -9 compresses to 15.8.

Considering I build shortly after I update, using VERSION=svn_$(date +"%Y%m%d") for my compress.sh and $.SlackBuild greatly simplifies things for me. It was easier for me to hack together a script using date, than getting the revision number

We currently use a single backend with 3 seperate frontends, and 2 webclients (streaming flash and music). HVR1600 (1 SD and 1 HD tuner). I pull V4L drivers from git. The kernel drivers for the HVR1600 were quite behind the git pull. All nVidia graphics cards, 9400 with VDPAU, 7600 and 7300. The backend is headless and sits in a closest. Live TV, prerecorded, and scheduling work as expected. Mythvideo works fine (xvid, ogg theora, and H.264) with meta data. Mythmusic works - though I do not favor the interface. Myth-web-browser seems largely unstable and prone to crash, though the Netflix top movie feeds, and other news feeds have worked when we used them. I've tested MythGames with 1942 (M.A.M.E), Donkey Kong Country and Killer Instinct (SNES) which worked fine. MythArchive doesn't seem to always work - though I expect this to be more of a PEBKAC error.

Mythweb, the web server interface works for scheduling, deleting/watching/downloading TV shows, playing music, controlling the frontends ...... Make sure mythweb is in the top directory, or flash streaming won't work. Though there was a patch posted for this, not sure if it was committed yet or not.

It really boils down to your hardware. Even though some capture cards are reported as supported they just do not work that well. The problem forum1793 posted is not uncommon with a few devices.
 
Old 09-10-2009, 08:42 AM   #13
octoberblu3
Member
 
Registered: Oct 2005
Distribution: Slackware64-current
Posts: 67

Rep: Reputation: 22
Instead of rolling up the whole "trunk" tree each time you want to compile, I just copy directly from the tree with something like this.

Instead of
Code:
tar xf $CWD/$PRGNAM-$VERSION.tar.bz2
I use
Code:
mkdir $PRGNAM-$VERSION
rsync -aC $CWD/trunk/ $PRGNAM-$VERSION/
AFTER this, I then modify the version line to add in the SVN revision number

Code:
VERSION=${VERSION}_r`svn info $CWD/trunk | grep Revision | tr -d "Revision: "`
This gives me a package name and version that looks like this:
mythtv-0.22_r21736-x86_64-1_SBo
 
Old 09-10-2009, 11:54 AM   #14
Woodsman
Senior Member
 
Registered: Oct 2005
Distribution: Slackware 14.1
Posts: 3,482

Rep: Reputation: 545Reputation: 545Reputation: 545Reputation: 545Reputation: 545Reputation: 545
I'll give all of that a try. I would be grateful if you folks could post or attach some of the scripts each of you mentioned. I think I understand what each of you is describing, but seeing the code often helps my mind click better.

I really like XBMC as my front-end for viewing files. Just excellent software. I don't underestimate what is involved with getting MythTV to function. I already have read many horror stories. Yet I need some kind of software for recording TV that will provide me flexibility and some robustness that my simpleton shell scripts do not provide. I wish build scripts for 13.0 were readily available for so many packages. I would like 13.0 build scripts for MythTV (SVN) and Freevo. I'm not a developer and premade scripts are nice. Perhaps eventually they will appear.
 
Old 09-12-2009, 08:18 AM   #15
forum1793
Member
 
Registered: May 2008
Posts: 312

Rep: Reputation: 34
Here is mine. You will need the other files from slackbuild.org.

Again, for this build I don't tar or untar. You can look through the script to see where the source should be placed.
Attached Files
File Type: txt mythtv.SlackBuild.txt (2.4 KB, 25 views)
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Installing Mythtv in slackware 12.1 garyg007 Slackware 4 01-15-2009 02:04 AM
slackware current question on the current kernels davimint Slackware 3 06-03-2007 07:39 AM
DISCUSSION: Upgrade to Slackware -current without a -current CD truthfatal LinuxAnswers Discussion 0 09-19-2006 01:42 PM
MythTV on Slackware 10.2 using DVB-T Video Card mart_is_good Slackware 1 10-24-2005 09:04 AM
Can't change channels in MythTV with Slackware 10.1 NetRAVEN5000 Linux - Software 2 06-15-2005 04:09 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 02:49 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration