[mythtv] OSX build issues and patches
David Abrahams
dave at boost-consulting.com
Tue Dec 13 11:39:47 EST 2005
Thanks to Geoff Kruse I found the osx-packager.pl script and have been
using that to try to build mythtv for OSX (Tiger). It's been quite an
adventure, despite the script! I've made some progress, which I'll
report here, and I think I need some help, too.
I've enclosed my current patch for the script.
* I'm trying to build a backend, so that's been enabled in the script.
* Many of the SourceForge download addresses in there wouldn't work
for me. I changed the script to use a different mirror
* FreeType is now at 2.1.10 and you can't get 2.1.9 anymore; updated
* I had some major issues because I had installed ccache with Fink
Commander, but somehow the cache directory was set to /dev/null and
I didn't know how to reconfigure it. Since g++ becomes a symbolic
link to ccache when it's installed, the QT test program that looks
for the Mac version was failing mysteriously, and I could never get
that #define set up. From there on it looked as though gcc's
preprocessor was broken. I had to add -v to QT's configure options
and watch messages carefully to even get a clue about this one.
* As part of one flawed attack at the problem above, I tried it with
QT 4. Its configure options are completely different. I left those
lines in the script, commented out, in case it becomes useful to
someone.
* After I got the QT mac version test program to compile, it wouldn't
link. Based on
http://lists.trolltech.com/qt-interest/2005-05/thread00265-0.html I
added -lobjc to the link line. Since it seemed to have the answers
I also added '-platform macx-g++' to the configure options. I don't
remember offhand whether that addressed a specific obstacle or if I
just went on faith based on that article. I know it was necessary
when I was trying to work with QT4, so it may well have been needed.
* In libexif-0.6.12/libexif/exif-utils.c, line 86, exif_get_sshort is
defined as static after being already declared without; I had to
comment out the 'static' in order to make the compiler happy
* In qt-mac-free-3.3.4/mkspecs/macx-g++/qplatformdefs.h,
#define QT_SOCKLEN_T int
needs to be
#define QT_SOCKLEN_T socklen_t
in order to work with the latest system headers.
* Some QT things were failing to find -lXext at link time, and after
mucking about with fink for *way* too long trying to find it (and I
hope I didn't mess up my configuration), I realized it was already
installed. So I added -L/usr/X11R6/lib to qmake_opts and QT got
happier.
* mythtv seems to hardcode the use of distcc into its Makefiles, and
OSX doesn't have a distcc binary available, at least, not from the
usual places. I had to download and build distcc from source.
* I'm now getting some link errors when building libmyth; I'm not sure
how to address these. Can anyone help?
-------------- next part --------------
cd ~/buildmyth/
~/src/mythtv/contrib/osx-packager.pl -verbose
[osx-pkg] Forcing -usehdimage due to case-insensitive filesystem
[osx-pkg] Creating a case-sensitive device for the build
[osx-pkg] Including components: mythtv myththemes mythplugins
[osx-pkg] Using previously downloaded freetype
[osx-pkg] Using previously unpacked freetype
[osx-pkg] Using previously configured freetype
[osx-pkg] Using previously built freetype
[osx-pkg] Using previously downloaded lame
[osx-pkg] Using previously unpacked lame
[osx-pkg] Using previously configured lame
[osx-pkg] Using previously built lame
[osx-pkg] Using previously downloaded mysqlclient
[osx-pkg] Using previously unpacked mysqlclient
[osx-pkg] Using previously configured mysqlclient
[osx-pkg] Using previously built mysqlclient
[osx-pkg] Using previously downloaded qt-mt
[osx-pkg] Using previously unpacked qt-mt
[osx-pkg] Using previously configured qt-mt
[osx-pkg] Using previously built qt-mt
[osx-pkg] Using previously downloaded dvdnav
[osx-pkg] Using previously unpacked dvdnav
[osx-pkg] Using previously configured dvdnav
[osx-pkg] Using previously built dvdnav
[osx-pkg] Using previously downloaded tiff
[osx-pkg] Using previously unpacked tiff
[osx-pkg] Using previously configured tiff
[osx-pkg] Using previously built tiff
[osx-pkg] Using previously downloaded exif
[osx-pkg] Using previously unpacked exif
[osx-pkg] Using previously configured exif
[osx-pkg] Using previously built exif
[osx-pkg] Using previously downloaded dvdcss
[osx-pkg] Using previously unpacked dvdcss
[osx-pkg] Using previously configured dvdcss
[osx-pkg] Using previously built dvdcss
[osx-pkg] Using previously downloaded dvdread
[osx-pkg] Using previously unpacked dvdread
[osx-pkg] Using previously configured dvdread
[osx-pkg] Using previously built dvdread
[osx-pkg] Cleaning previous installs of MythTV
[osx-pkg] rm -fr /Users/dave/buildmyth/.osx-packager/src/myth-svnmythtv/config
[osx-pkg] Checking out source code
[osx-pkg] /sw/bin/svn co --revision 8252 http://svn.mythtv.org/svn/trunk/mythtv http://svn.mythtv.org/svn/trunk/myththemes http://svn.mythtv.org/svn/trunk/mythplugins /Users/dave/buildmyth/.osx-packager/src/myth-svn
Restored '/Users/dave/buildmyth/.osx-packager/src/myth-svn/mythtv/docs/Makefile'
Restored '/Users/dave/buildmyth/.osx-packager/src/myth-svn/mythtv/programs/mythtranscode/replex/Makefile'
Restored '/Users/dave/buildmyth/.osx-packager/src/myth-svn/mythtv/contrib/dct-channel/Makefile'
Restored '/Users/dave/buildmyth/.osx-packager/src/myth-svn/mythtv/contrib/mythnotify/mythudprelay/Makefile'
Restored '/Users/dave/buildmyth/.osx-packager/src/myth-svn/mythtv/contrib/mythnotify/cidbcast/Makefile'
Checked out revision 8252.
Checked out revision 8252.
Checked out revision 8252.
[osx-pkg] Cleaning MythTV makefiles
[osx-pkg] /bin/rm ./docs/Makefile ./libs/libmythmpeg2/Makefile ./libs/libmythsoundtouch/Makefile ./libs/libavformat/Makefile ./libs/libmythsamplerate/Makefile ./libs/libmyth/Makefile ./libs/libavcodec/Makefile ./libs/libavutil/Makefile ./libs/Makefile ./programs/mythtranscode/replex/Makefile ./contrib/dct-channel/Makefile ./contrib/mythnotify/mythudprelay/Makefile ./contrib/mythnotify/cidbcast/Makefile ./config/Makefile ./Makefile
[osx-pkg] Configuring mythtv
[osx-pkg] ./configure --prefix=/Users/dave/buildmyth/.osx-packager/build --enable-backend
# Basic Settings
Compile type release
Compiler cache no
DistCC yes
Install prefix /Users/dave/buildmyth/.osx-packager/build
CPU powerpc (powerpc)
Big Endian yes
AltiVec enabled yes
# Input Support
Joystick menu no
lirc support no
Video4Linux sup. no
ivtv support no
FireWire support no
DVB support no [/usr/include]
DBox2 support yes
# Sound Output Support
OSS support no
ALSA support no
aRts support no
JACK support no
# Video Output Support
x11 support no
xrandr support no
xv support no
XvMC support no
XvMC VLD support no
XvMC pro support no
XvMC libs
OpenGL vsync no
DirectFB no
# Misc Features
DVD playback yes
Frontend yes
Backend yes
Creating libs/libmyth/mythconfig.h and libs/libmyth/mythconfig.mak
libs/libmyth/mythconfig.h is unchanged
[osx-pkg] Running qmake for mythtv
[osx-pkg] /Users/dave/buildmyth/.osx-packager/build/bin/qmake PREFIX=../Resources QMAKE_LFLAGS+=-Wl,-search_paths_first INCLUDEPATH+="/Users/dave/buildmyth/.osx-packager/build/include" LIBS+=-L/usr/lib -L"/Users/dave/buildmyth/.osx-packager/build/lib" -L/usr/X11R6/lib mythtv.pro
[osx-pkg] touch config/config.pro
[osx-pkg] Making mythtv
[osx-pkg] /usr/bin/make
cd libs && qmake libs.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+="/Users/dave/buildmyth/.osx-packager/build/include"" "LIBS+=-L/usr/lib -L"/Users/dave/buildmyth/.osx-packager/build/lib" -L/usr/X11R6/lib" -o Makefile
cd libs && /usr/bin/make -f Makefile
cd libavutil && qmake libavutil.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libavutil && /usr/bin/make -f Makefile
make[2]: Nothing to be done for `first'.
cd libavcodec && qmake libavcodec.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libavcodec && /usr/bin/make -f Makefile
make[2]: Nothing to be done for `first'.
cd libavformat && qmake libavformat.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libavformat && /usr/bin/make -f Makefile
make[2]: Nothing to be done for `first'.
cd libmythsamplerate && qmake libmythsamplerate.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libmythsamplerate && /usr/bin/make -f Makefile
make[2]: Nothing to be done for `first'.
cd libmythsoundtouch && qmake libmythsoundtouch.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libmythsoundtouch && /usr/bin/make -f Makefile
make[2]: Nothing to be done for `first'.
cd libmythmpeg2 && qmake libmythmpeg2.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libmythmpeg2 && /usr/bin/make -f Makefile
make[2]: Nothing to be done for `first'.
cd libmyth && qmake libmyth.pro "PREFIX=../Resources" "QMAKE_LFLAGS+=-Wl,-search_paths_first" "INCLUDEPATH+=/Users/dave/buildmyth/.osx-packager/build/include" "LIBS+=-L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib" -o Makefile
cd libmyth && /usr/bin/make -f Makefile
/bin/rm -f libmyth-0.19.0.19.0.dylib libmyth-0.19.dylib libmyth-0.19.0.dylib libmyth-0.19.0.19.dylib
distcc g++ -Wl,-search_paths_first -prebind -dynamiclib -single_module -headerpad_max_install_names -install_name /sw/lib/libmyth-0.19.0.dylib -seg1addr 0xC6000000 -compatibility_version 0.19 -current_version 0.19.0 -o libmyth-0.19.0.19.0.dylib dialogbox.o lcddevice.o mythcontext.o mythwidgets.o oldsettings.o remotefile.o settings.o themedmenu.o util.o mythwizard.o uitypes.o xmlparse.o mythplugin.o mythdialogs.o audiooutput.o httpcomms.o mythmedia.o uilistbtntype.o generictree.o managedlist.o DisplayRes.o volumecontrol.o volumebase.o audiooutputbase.o dbsettings.o screensaver.o screensaver-null.o output.o langsettings.o mythdbcon.o audiooutputnull.o DisplayResScreen.o util-x11.o qmdcodec.o virtualkeyboard.o mythobservable.o mythcdrom.o mythmediamonitor.o audiooutputca.o screensaver-osx.o DisplayResOSX.o util-osx.o moc_dialogbox.o moc_lcddevice.o moc_mythcontext.o moc_mythwidgets.o moc_settings.o moc_themedmenu.o moc_mythwizard.o moc_uitypes.o moc_mythdialogs.o moc_httpcomms.o moc_mythmedia.o moc_uilistbtntype.o moc_managedlist.o moc_virtualkeyboard.o moc_mythcdrom.o moc_mythmediamonitor.o -L/sw/lib -L/sw/lib -L/usr/lib -L/Users/dave/buildmyth/.osx-packager/build/lib -L/usr/X11R6/lib -L../libmythsamplerate -lmythsamplerate-0.19 -L../libmythsoundtouch -lmythsoundtouch-0.19 -framework ApplicationServices -framework AudioUnit -framework Carbon -framework CoreAudio -framework IOKit -lqt-mt -lXext -lX11 -lm
ld: warning prebinding disabled because dependent library: /sw/lib/libqt-mt.3.dylib is not prebound
ld: Undefined symbols:
__ZTI14QPtrCollection
__ZTI6QEvent
__ZTI7QGArray
__ZTI12QButtonGroup
__ZTI6QTable
__ZTI7QPixmap
__ZTI6QGDict
__ZTI8QLibrary
__ZTI7QDialog
__ZTI7QWidget
__ZN14ScreenSaverX11C1Ev
__ZTI9QSqlQuery
_XineramaIsActive
_XineramaQueryExtension
_XineramaQueryScreens
__ZTI7QThread
__ZTI7QObject
__ZTI11QPushButton
__ZTI12QRadioButton
__ZTI7QSlider
__ZTI8QListBox
__ZTI8QSpinBox
__ZTI9QCheckBox
__ZTI9QComboBox
__ZTI9QLineEdit
__ZTI9QListView
__ZTI9QTextEdit
__ZTI11QScrollView
__ZTI6QFrame
/usr/bin/libtool: internal link edit command failed
distcc[6763] ERROR: compile (null) on localhost failed
make[2]: *** [libmyth-0.19.0.19.0.dylib] Error 1
make[1]: *** [sub-libmyth] Error 2
make: *** [sub-libs] Error 2
[osx-pkg] Failed system call: " /usr/bin/make " with error code 2
Died at /Users/dave/src/mythtv/contrib/osx-packager.pl line 698.
Compilation exited abnormally with code 17 at Tue Dec 13 10:27:24
-------------- next part --------------
A non-text attachment was scrubbed...
Name: osx-packager.pl.patch
Type: text/x-patch
Size: 3366 bytes
Desc: not available
Url : http://mythtv.org/pipermail/mythtv-dev/attachments/20051213/dee7ac14/osx-packager.pl.bin
-------------- next part --------------
Thanks for your attention,
--
Dave Abrahams
Boost Consulting
www.boost-consulting.com
More information about the mythtv-dev
mailing list