After performed an update, emerge -a --update world ... a few library dependences broke I resolved all but one, Checking dynamic linking consistency... broken /usr/lib/libmythavcodec-0.20.2.so.0.20.2 (requires libdts.so.0), with the the assistance of revdep-rebuild And now when I tried to update to media-tv/mythtv-0.20.2_p14814 to receive the following .... make[1]: Entering directory `/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs' cd mythtv && /usr/qt/3/bin/qmake mythtv.pro "QMAKE=/usr/qt/3/bin/qmake" -o Makefile cd mythtv && make -f Makefile make[2]: Entering directory `/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs/mythtv' g++ -c -pipe -mtune=i686 -Wall -W -O3 -Wall -Wno-switch -fomit-frame-pointer -D_REENTRANT -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DLIBDIR=\"/usr/lib\" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I/usr/include -I/usr/include -I/usr/include -I../.. -I../../libs -I../../libs/libmyth -I../../libs/libmythtv -I../../libs/libavutil -I../../libs/libavformat -I../../libs/libavcodec -I../../libs/libmythupnp -I../../libs/libmythui -I../../libs/libmythlivemedia -I/usr/qt/3/include -I/usr/include -I/usr/include -o main.o main.cpp /usr/qt/3/include/qsqldatabase.h:63: warning: 'class QSqlDriverCreatorBase' has virtual functions but non-virtual destructor g++ -o mythtv main.o -L/usr/qt/3/lib -L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec -L../../libs/libavformat -L../../libs/libmythfreemheg -L../../libs/libmythui -L../../libs/libmythupnp -L../../libs/libmythlivemedia -lmythtv-0.20.2 -lmythavformat-0.20.2 -lmythavutil-0.20.2 -lmythavcodec-0.20.2 -lmythfreemheg-0.20.2 -lmythupnp-0.20.2 -lmythlivemedia-0.20.2 -lmyth-0.20.2 -lmythui-0.20.2 -lfreetype -lmp3lame -lasound -lraw1394 -liec61883 -lavc1394 -L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lqt-mt -lGLU -lGL -lXmu -lXext -lX11 -lm -lpthread ../../libs/libmythtv/libmythtv-0.20.2.so: undefined reference to `glXGetProcAddress' collect2: ld returned 1 exit status make[2]: *** [mythtv] Error 1 make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs/mythtv' make[1]: *** [sub-mythtv] Error 2 make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/work/mythtv-0.20.2/programs' make: *** [sub-programs] Error 2 * * ERROR: media-tv/mythtv-0.20.2_p14814 failed. * Call stack: * ebuild.sh, line 1701: Called dyn_compile * ebuild.sh, line 1039: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * mythtv-0.20.2_p14814.ebuild, line 211: Called die * The specific snippet of code: * emake || die "emake failed" * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-tv/mythtv-0.20.2_p14814/temp/build.log'. Reproducible: Always Steps to Reproduce: 1.emerge -a =mythtv-0.20.2_p14668 2. 3. Expected Results: install =mythtv-0.20.2_p14668 emerge --info ... Portage 2.1.3.19 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.22-gentoo-r9 i686) ================================================================= System uname: 2.6.22-gentoo-r9 i686 Intel(R) Pentium(R) III CPU 1133MHz Timestamp of tree: Thu, 17 Jan 2008 23:00:01 +0000 app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r6 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i486-pc-linux-gnu" CFLAGS="-O2 -mtune=i686 -pipe" CHOST="i486-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -mtune=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X a52 aac acl alsa apache2 automount berkdb bindist bitmap-fonts caps cdb cddb cdr cli cracklib crypt cups curl dbus dri dts dvb dvd dvdr encode esd exif fam ffmpeg fftw firefox flac fortran gd gdbm gif gpm gstreamer gtk gtk2 hal iconv ieee1394 ipv6 isdnlog java javascript joystick jpeg ldap libdvdread lirc lm_sensors mad mailwrapper midi mikmod mmx mp3 mpeg mudflap mysql ncurses nls nptl nptlonly nsplugin ntponly nxclient ogg opengl openmp pam pcre pdf perl png posix pppd python qt3 quicktime readline real reflection samba sdl server session spell spl ssl startup-notification tcpd theora threads transcode truetype truetype-fonts type1 type1-fonts unicode usb v4l vcd vorbis wifi win32codecs x86 xcomposite xine xml xorg xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="atiusb" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
do you have libdca installed?
(In reply to comment #1) > do you have libdca installed? > Yes .... libdca-0.0.5.
(In reply to comment #1) > do you have libdca installed? > Temporarily reverted back to libdts-0.0.2-r5 because mythtv-0.20.2_p14324 won't function properly without it. Features cease to work ... Hopefully libdts-0.0.2-r5 isn't removed until this issue is resolved.
Please try with a newer revision because I believe this was an --as-needed issue and should be fixed.
(In reply to comment #4) > Please try with a newer revision because I believe this was an --as-needed > issue and should be fixed. > Is there anyway I can safely revert back to the libdts package if it doesn't work? I quickpkg'd the libdts just in case ... what command can I use to emerge it back if your sugestion doesn't work? A simple "emerge -av /usr/portage/packages/media-libs/libdts-0.0.2-r5.tbz2" doesn't work. I receive the following ... !!! All ebuilds that could satisfy "=media-libs/libdts-0.0.2-r5" have been masked. !!! One of the following masked packages is required to complete your request: - media-libs/libdts-0.0.2-r5 (masked by: ) I have libdts set in the "/etc/portage/package.unmask" file.
Is there anyway I can safely revert back to the libdts package if it doesn't work? I quickpkg'd the libdts just in case ... what command can I use to emerge it back if your sugestion doesn't work? A simple "emerge -av /usr/portage/packages/media-libs/libdts-0.0.2-r5.tbz2" doesn't work. I receive the following ... !!! All ebuilds that could satisfy "=media-libs/libdts-0.0.2-r5" have been masked. !!! One of the following masked packages is required to complete your request: - media-libs/libdts-0.0.2-r5 (masked by: ) I have libdts set in the "/etc/portage/package.unmask" file.
libdts plays no role in this issue. man emerge would tell you how to use a binary package. emerge -gav libdts
(In reply to comment #7) > libdts plays no role in this issue. man emerge would tell you how to use a > binary package. emerge -gav libdts > The issue persists ... see below ... collect2: ld returned 1 exit status make[2]: *** [mythtv] Error 1 make[2]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/work/mythtv-0.20.2/programs/mythtv' make[1]: *** [sub-mythtv] Error 2 make[1]: Leaving directory `/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/work/mythtv-0.20.2/programs' make: *** [sub-programs] Error 2 * * ERROR: media-tv/mythtv-0.20.2_p15634 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2847: Called die * The specific snippet of code: * emake || die "emake failed"; * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/temp/environment'. * * Messages for package media-tv/mythtv-0.20.2_p15634: * * ERROR: media-tv/mythtv-0.20.2_p15634 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2847: Called die * The specific snippet of code: * emake || die "emake failed"; * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-tv/mythtv-0.20.2_p15634/temp/environment'.
(In reply to comment #7) > libdts plays no role in this issue. man emerge would tell you how to use a > binary package. emerge -gav libdts > And to add ... mythtv-0.20.2_p15634 is dependent on libdca. When I replace libdts with libdca trancoding and commercial flagging ceases to work. Hence the need to keep libdts around (in my case).
(In reply to comment #8) > (In reply to comment #7) > > libdts plays no role in this issue. man emerge would tell you how to use a > > binary package. emerge -gav libdts > > > > The issue persists ... see below ... > > collect2: ld returned 1 exit status > make[2]: *** [mythtv] Error 1 > make[2]: Leaving directory <snip> The actual error is above this.
(In reply to comment #9) > (In reply to comment #7) > > libdts plays no role in this issue. man emerge would tell you how to use a > > binary package. emerge -gav libdts > > > > And to add ... > mythtv-0.20.2_p15634 is dependent on libdca. When I replace libdts with libdca > trancoding and commercial flagging ceases to work. Hence the need to keep > libdts around (in my case). > Correct. libdts was renamed to libdca due to DTS complaining of a trademark violations. All projects have switched to linking to libdca. In newer revisions of MythTV, which you're trying to compile, it requires libdca.
libdca and libdts have NOTHING to do with this issue as I've been stating. Here's the original error you pasted... g++ -o mythtv main.o -L/usr/qt/3/lib -L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil -L../../libs/libavcodec -L../../libs/libavformat -L../../libs/libmythfreemheg -L../../libs/libmythui -L../../libs/libmythupnp -L../../libs/libmythlivemedia -lmythtv-0.20.2 -lmythavformat-0.20.2 -lmythavutil-0.20.2 -lmythavcodec-0.20.2 -lmythfreemheg-0.20.2 -lmythupnp-0.20.2 -lmythlivemedia-0.20.2 -lmyth-0.20.2 -lmythui-0.20.2 -lfreetype -lmp3lame -lasound -lraw1394 -liec61883 -lavc1394 -L/usr/X11R6/lib -lXinerama -lXv -lXxf86vm -lXrandr -lqt-mt -lGLU -lGL -lXmu -lXext -lX11 -lm -lpthread ../../libs/libmythtv/libmythtv-0.20.2.so: undefined reference to `glXGetProcAddress' The above error just states that -lmythtv-0.20.2 requires the symbol glXGetProcAddress (which is a function) for it to link. However, that's not being satisfied. glXGetProcAddress() is always found in libGL.so, it provides a way to call various OpenGL extensions since it get the address of the function which provides the extension. $ strings /usr/lib/libGL.so | grep glXGetProcAddress Should show that. libGL.so is tied to specific cards and specific manufactures. Which is why on Gentoo, we provided "eselect opengl". Verify that "eselect opengl" is configured properly and recompile (I can guarantee it's not)
$ eselect opengl list Available OpenGL implementations: [1] nvidia * [2] xorg-x11 For example.. I have an NVIDIA card..
(In reply to comment #13) > $ eselect opengl list > Available OpenGL implementations: > [1] nvidia * > [2] xorg-x11 > > For example.. I have an NVIDIA card.. > Output from ... strings /usr/lib/libGL.so | grep glXGetProcAddress glXGetProcAddressARB glXGetProcAddressARB Is the above the expected output? And from ... eselect opengl list Available OpenGL implementations: [1] nvidia * [2] xorg-x11 I do indeed have an nvidia card.
(In reply to comment #14) > (In reply to comment #13) > > $ eselect opengl list > > Available OpenGL implementations: > > [1] nvidia * > > [2] xorg-x11 > > > > For example.. I have an NVIDIA card.. > > > > Output from ... > strings /usr/lib/libGL.so | grep glXGetProcAddress > glXGetProcAddressARB > glXGetProcAddressARB > > Is the above the expected output? no. glXGetProcAddress != glXGetProcAddressARB > > And from ... > eselect opengl list > Available OpenGL implementations: > [1] nvidia * > [2] xorg-x11 > > I do indeed have an nvidia card. > Which version of the nvidia drivers? Which card do you have?
(In reply to comment #15) > (In reply to comment #14) > > (In reply to comment #13) > > > $ eselect opengl list > > > Available OpenGL implementations: > > > [1] nvidia * > > > [2] xorg-x11 > > > > > > For example.. I have an NVIDIA card.. > > > > > > > Output from ... > > strings /usr/lib/libGL.so | grep glXGetProcAddress > > glXGetProcAddressARB > > glXGetProcAddressARB > > > > Is the above the expected output? > > no. glXGetProcAddress != glXGetProcAddressARB > > > > > And from ... > > eselect opengl list > > Available OpenGL implementations: > > [1] nvidia * > > [2] xorg-x11 > > > > I do indeed have an nvidia card. > > > > Which version of the nvidia drivers? Which card do you have? > The card is a 01:00.0 VGA compatible controller: nVidia Corporation NV15 [GeForce2 GTS/Pro] (rev a4) The drivers are * x11-drivers/nvidia-drivers Latest version installed: 1.0.7185 Homepage: http://www.nvidia.com/ Description: NVIDIA X11 driver and GLX libraries License: NVIDIA I am stuck with these drivers because of the age of the card.
Remove the current version masks you have on nvidia-drivers. You should be using 71.86.04.
(In reply to comment #17) > Remove the current version masks you have on nvidia-drivers. You should be > using 71.86.04. > I updated to x11-drivers/nvidia-drivers-71.86.01 (x11-drivers/nvidia-drivers-71.86.04 is ~x86 masked) eselect opengl list Available OpenGL implementations: [1] nvidia * [2] xorg-x11 Running this results in the same output ... strings /usr/lib/libGL.so | grep glXGetProcAddress glXGetProcAddressARB glXGetProcAddressARB And emerge mythtv failed again. Same results.
Well here's your answer... http://svn.mythtv.org/trac/ticket/4064 Appears nvidia-drivers-1.0.7185 and nvidia-drivers-71.x.y install a GLX 1.4 compatible header but the actual driver itself doesn't implement GLX 1.4. That's just... broken... Use the latest 0.21 version and it'll be fixed for you.