Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 93906 - Mythtv-0.18.1 requires USE=xv to build
Summary: Mythtv-0.18.1 requires USE=xv to build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Television related Applications in Gentoo's Portage
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-25 02:27 UTC by Chris Williams
Modified: 2005-06-06 02:55 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Williams 2005-05-25 02:27:43 UTC
This is probably partly upstream and partly a local issue.

While building mythtv on a headless machine that will act as a backend only I
came across this build error:

Calculating dependencies   
Please note, this ebuild does not use your CFLAGS and CXXFLAGS. It determines
a sane set and uses those. Please do not attempt to override this behavior.

>>> Unpacking source...
>>> Unpacking mythtv-0.18.1.tar.bz2 to /var/tmp/portage/mythtv-0.18.1/work
>>> Source unpacked.
./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --disable-altivec --disable-audio-oss
--disable-audio-alsa --disable-audio-arts --disable-audio-jack --disable-lirc
--disable-joystick-menu --disable-xvmc-vld --disable-dvb --disable-dvb-eit
--dvb-path=/usr/include --disable-opengl-vsync --enable-vorbis --disable-xvmc
--disable-xv --disable-directfb --enable-x11 --enable-proc-opt --disable-mmx
--compile-type=release --disable-distcc
WARNING: include the output of ./configure along with
any bug report, when using a processor optimized build.
# Basic Settings
Compile type     release
Compiler cache   no
DistCC           no
Install prefix   /usr
CPU              x86 (AMD Athlon(tm) Processor)
Big Endian       no
MMX enabled      no
Vector Builtins  no

# Input Support
Joystick menu    no
lirc support     no
ivtv support     yes
FireWire support no
DVB support      no [/usr/include]

# Sound Output Support
OSS support      no
ALSA support     no
aRts support     no
JACK support     no

# Video Output Support
x11 support      yes
xrandr support   yes
xv support       no
XvMC support     no
XvMC VLD support no
OpenGL vsync     no
DirectFB         no

Creating config.mak and config.h
--8<--- snip
g++  -o mythprogfind main.o    -L/usr/qt/3/lib -L../../libs/libmyth
-L../../libs/libmythtv -L../../libs/libavcodec -L../../libs/libavformat
-lmythtv-0.18.1 -lmythavformat-0.18.1 -lmythavcodec-0.18.1 -lmyth-0.18.1
-lfreetype -lmp3lame -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
g++  -o mythepg main.o    -L/usr/qt/3/lib -L../../libs/libmyth
-L../../libs/libmythtv -L../../libs/libavcodec -L../../libs/libavformat
-lmythtv-0.18.1 -lmythavformat-0.18.1 -lmythavcodec-0.18.1 -lmyth-0.18.1
-lfreetype -lmp3lame -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
../../libs/libmyth/libmyth-0.18.1.so: undefined reference to
`XineramaIsActive'../../libs/libmyth/libmyth-0.18.1.so: undefined reference to
`XineramaQueryScreens'../../libs/libmyth/libmyth-0.18.1.so: undefined reference
to `XineramaQueryExtension'collect2: ld returned 1 exit status
make[2]: *** [mythprogfind] Error 1make[2]: Leaving directory
`/var/tmp/portage/mythtv-0.18.1/work/mythtv-0.18.1/programs/mythprogfind'make[1]:
*** [sub-mythprogfind] Error 2
make[1]: *** Waiting for unfinished
jobs....../../libs/libmyth/libmyth-0.18.1.so: undefined reference to
`XineramaIsActive'../../libs/libmyth/libmyth-0.18.1.so: undefined reference to
`XineramaQueryScreens'../../libs/libmyth/libmyth-0.18.1.so: undefined reference
to `XineramaQueryExtension'
collect2: ld returned 1 exit statusmake[2]: *** [mythepg] Error 1make[2]:
Leaving directory
`/var/tmp/portage/mythtv-0.18.1/work/mythtv-0.18.1/programs/mythepg'
make[1]: *** [sub-mythepg] Error 2make[1]: Leaving directory
`/var/tmp/portage/mythtv-0.18.1/work/mythtv-0.18.1/programs'make: ***
[sub-programs] Error 2
!!! ERROR: media-tv/mythtv-0.18.1 failed.!!! Function src_compile, Line 121,
Exitcode 2!!! emake failed!!! If you need support, post the topmost build error,
NOT this status message.
...done!                                                                            

The USE flags were minimal, in line with a headless machine: specifically -xv.
The link fails because the Xinerama library is not included.  The Mythtv
configure script will only insert libXinerama if Xv is enabled.  This, I think,
is an upstream issue.

Building with USE=xv sets --enable=xv but is overridden by the configure script
if libXv is not found.  LibXv is only present if X was built with USE=xv. 
Perhaps the ebuild should check this is the case in the same way it checks mysql
support in Qt.

Reproducible: Always
Steps to Reproduce:
1. Attempt to build mythtv-0.18.1 with USE=-xv
2.
3.

Actual Results:  
The software should build with any of the optional configure flags, specifically
--disable-xv set.  It does not.

Building Mythtv with USE=xv is not sufficient if X was not built with USE=xv. 
The ebuild does check this.

Expected Results:  
Build even with Xv disabled.

Check for xv in X if USE=xv is specified for mythtv.

Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.4.20041102-r1,2.6.11-gentoo-r9 i686)
=================================================================
System uname: 2.6.11-gentoo-r9 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.6.12
Python:              dev-lang/python-2.3.5 [2.3.5 (#1, May  3 2005, 14:45:46)]
distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
dev-lang/python:     2.3.5
sys-apps/sandbox:    [Not Present]
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.9.4, 1.8.5-r3, 1.4_p6, 1.5, 1.6.3, 1.7.9-r1
sys-devel/binutils:  2.15.92.0.2-r7
sys-devel/libtool:   1.5.16
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -mcpu=i686 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -mcpu=i686 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distcc distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://mirror.internode.on.net/pub/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
USE="x86 apache2 apm avi berkdb bitmap-fonts crypt curl emboss encode foomaticdb
fortran gdbm gif gpm gtk2 imlib jpeg libg++ libwww mad mikmod motif mp3 mpeg
mysql ncurses nls oggoggvorbis pam pdflib perl png python quicktime readline
samba sdl spell ssl svga tcpd truetype truetype-fonts type1-fonts vorbis xml2
xmms zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Comment 1 Doug Goldstein (RETIRED) gentoo-dev 2005-05-25 13:40:09 UTC
The real issue is, you can't build X with USE="minimal". Try it out.
Comment 2 Doug Goldstein (RETIRED) gentoo-dev 2005-05-30 00:19:13 UTC
I know for sure it's the fact that you built xorg-x11 with USE=minimal. It won't
work.
Comment 3 Chris Williams 2005-05-30 04:02:42 UTC
(In reply to comment #2)
> I know for sure it's the fact that you built xorg-x11 with USE=minimal. It won't
> work.

If I _had_ built X with USE=minimal then you might have a point.  Until you made
this statement I had not even heard of a "minimal" USE flag.  When I said
minimal I meant a small set of the relevant USE flags: as reflected in my
"emerge --info".  More specifically,

[ebuild   R   ] x11-base/xorg-x11-6.8.2-r1  -3dfx +3dnow +bitmap-fonts -cjk
-debug -dlloader -dmx -doc -font-server* -hardened -insecure-drivers -ipv6
-minimal +mmx +nls -opengl +pam -sdk +sse -static +truetype-fonts +type1-fonts
(-uclibc) -xprint -xv 0 kB


Regardless of how X is built, Mythtv will not build if --disable-xv is specified
(as it is in the ebuild if USE=-xv) because the inclusion of Xinerama libraries
in linking is conditional on Xv support and some components like mythprogfind
use Xinerama functions (unguarded).  

Even with USE=xv Mythtv will continue to fail to build unless X was built with
USE=xv because Mythtv configure overrides the --enable-xv when it doesn't find
the Xv library.  I suggest we should check for this prerequisite in the ebuild
just as we do for Qt and mysql.
Comment 4 Brian Jackson (RETIRED) gentoo-dev 2005-05-30 07:08:01 UTC
We anxiously await your patch.
Comment 5 Doug Goldstein (RETIRED) gentoo-dev 2005-06-06 02:55:10 UTC
Message should be printed now.