ports/163762: [PATCH] multimedia/mythtv still thinks it's 0.24.0

Anthony Chavez acc at hexadecagram.org
Mon Jan 2 05:20:11 UTC 2012


>Number:         163762
>Category:       ports
>Synopsis:       [PATCH] multimedia/mythtv still thinks it's 0.24.0
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 02 05:20:10 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Anthony Chavez
>Release:        FreeBSD 8.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD metis.hexadecagram.org 8.2-STABLE FreeBSD 8.2-STABLE #0: Thu Nov 10 16:13:27 MST 2011 root at metis.hexadecagram.org:/usr/obj/usr/src/sys/METIS i386


	
>Description:
Attempting to upgrade multimedia/mythtv from 0.24_1 to 0.24.1_1 results in the following error:

ccache distcc g++ -Wl,-O1 -pthread -Wl,-rpath,/usr/local/lib/qt4 -o mythcommflag CommDetectorFactory.o CommDetectorBase.o ClassicLogoDetector.o ClassicSceneChangeDetector.o ClassicCommDetector.o Histogram.o quickselect.o CommDetector2.o pgm.o EdgeDetector.o CannyEdgeDetector.o PGMConverter.o BorderDetector.o FrameAnalyzer.o TemplateFinder.o TemplateMatcher.o HistogramAnalyzer.o BlankFrameDetector.o SceneChangeDetector.o PrePostRollFlagger.o main.o moc_CommDetectorBase.o moc_ClassicCommDetector.o moc_LogoDetectorBase.o moc_SceneChangeDetectorBase.o moc_SlotRelayer.o moc_CustomEventRelayer.o    -L/usr/local/lib/qt4 -L/usr/local/lib -L../../libs/libmyth -L../../libs/libmythtv -L../../external/FFmpeg/libavutil -L../../external/FFmpeg/libavcodec -L../../external/FFmpeg/libavcore -L../../external/FFmpeg/libavformat -L../../external/FFmpeg/libswscale -L../../libs/libmythdb -L../../libs/libmythui -L../../libs/libmythupnp -lmythtv-0.24 -lmythswscale -lmythavformat -lmythavcodec -lmyth
 avcore -lmythavutil -lmythupnp-0.24 -lmythdb-0.24 -lmythui-0.24 -lmyth-0.24 -L../../libs/libmythlivemedia -lmythlivemedia-0.24 -L../../libs/libmythfreemheg -lmythfreemheg-0.24 -L../../libs/libmythhdhomerun -lmythhdhomerun-0.24 -lchromeXvMCPro -lXvMC -lXext -lXinerama -lXxf86vm -lXv -lXrandr -lX11 -lmp3lame -lpulse -ljack -lasound -L/usr/local/lib -lm -pthread -lfreetype -lz -lbz2 -L/usr/local/lib/qt4 -lGLU -lGL -lQtSql -lQtXml -lQtGui -lQtCore 
ClassicLogoDetector.o(.text+0x203c): In function `ClassicLogoDetector::searchForLogo(MythPlayer*)':
/usr/ports/multimedia/mythtv/work/mythtv-0.24.1/programs/mythcommflag/ClassicLogoDetector.cpp:115: undefined reference to `MythPlayer::GetEof()'
ClassicCommDetector.o(.text+0x22964): In function `ClassicCommDetector::go()':
/usr/ports/multimedia/mythtv/work/mythtv-0.24.1/programs/mythcommflag/ClassicCommDetector.cpp:400: undefined reference to `MythPlayer::GetEof()'
CommDetector2.o(.text+0x5f56): In function `CommDetector2::go()':
/usr/ports/multimedia/mythtv/work/mythtv-0.24.1/programs/mythcommflag/CommDetector2.cpp:600: undefined reference to `MythPlayer::GetEof()'
PrePostRollFlagger.o(.text+0xfe2): In function `PrePostRollFlagger::findBreakInrange(long long, long long, long long, long long&, QTime&, bool)':
/usr/ports/multimedia/mythtv/work/mythtv-0.24.1/programs/mythcommflag/PrePostRollFlagger.cpp:242: undefined reference to `MythPlayer::GetEof()'
gmake[2]: *** [mythcommflag] Error 1
gmake[2]: Leaving directory `/usr/ports/multimedia/mythtv/work/mythtv-0.24.1/programs/mythcommflag'
gmake[1]: *** [sub-mythcommflag-make_default] Error 2
gmake[1]: Leaving directory `/usr/ports/multimedia/mythtv/work/mythtv-0.24.1/programs'
gmake: *** [programs] Error 2
*** Error code 1

Stop in /usr/ports/multimedia/mythtv.
*** Error code 1

Stop in /usr/ports/multimedia/mythtv.

The reason for this is that despite having the same filename and apparent version, $PREFIX/lib/libmythtv-0.24.so.0.24.0 and $WRKSRC/libs/mythtv/libmythtv-0.24.so.0.24.0 are not in fact the same file:

% diff -q /usr/local/lib/libmyth-0.24.so.0.24.0 /usr/ports/multimedia/mythtv/work/mythtv-0.24.1/libs/libmythtv/libmythtv-0.24.so.0.24.0
Files /usr/local/lib/libmyth-0.24.so.0.24.0 and /usr/ports/multimedia/mythtv/work/mythtv-0.24.1/libs/libmythtv/libmythtv-0.24.so.0.24.0 differ

and because MythPlayer::GetEof() is only defined in the newer library:

% nm /usr/ports/multimedia/mythtv/work/mythtv-0.24.1/libs/libmythtv/libmythtv-0.24.so | grep GetEof
004b8a70 T _ZN10MythPlayer6GetEofEv
% nm /usr/local/lib/libmythtv-0.24.so | grep GetEof
%

and because -L/usr/local/lib appears before -L../../libs/libmythtv in the command line.

>How-To-Repeat:
sudo portmaster multimedia/mythtv
>Fix:

After some brief experimentation with qmake and the .pro files in $WRKSRC, I have been unsusccessful in making -L/usr/local/lib appear later in the command line, and the attached patches do *not* result in a successful build, even though the newer shared libraries get suffixed with .so.0.24.1.  However I thought they were worth submitting for the sake of consistency.

The following workaround produces a successful build, and should be mentioned in UPDATING.  Note that this is liable to be a recurring theme with upgrades until a real solution is worked out.

% sudo pkg_delete mythtv-0.24.0

Just to be sure (should display nothing and exit with $? == 1):
% ldconfig -r | grep libmyth && sudo ldconfig

% sudo portmaster multimedia/mythtv
-OR-
% sudo portinstall multimedia/mythtv
-OR-
% cd /usr/ports/multimedia/mythtv; sudo make install

--- patch-settings.pro begins here ---
--- settings.pro.orig	2011-05-15 14:57:52.000000000 -0600
+++ settings.pro	2012-01-01 21:08:19.000000000 -0700
@@ -39,7 +39,7 @@
 }
 
 LIBVERSION = 0.24
-VERSION = 0.24.0
+VERSION = 0.24.1
 
 isEmpty(TARGET_OS) : win32 {
     CONFIG += mingw
--- patch-settings.pro ends here ---

--- patch-bindings__python__setup.py begins here ---
--- bindings/python/setup.py.orig	2011-05-15 14:57:52.000000000 -0600
+++ bindings/python/setup.py	2012-01-01 21:09:02.000000000 -0700
@@ -33,7 +33,7 @@
 
 setup(
         name='MythTV',
-        version='0.24.0',
+        version='0.24.1',
         description='MythTV Python bindings.',
         long_description='Provides canned database and protocol access to the MythTV database, mythproto, mythxml, and frontend remote control.',
         packages=['MythTV', 'MythTV/tmdb', 'MythTV/ttvdb', 'MythTV/wikiscripts'],
--- patch-bindings__python__setup.py ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list