diff -urdN -x .svn -x todo.txt xbmc.orig/Makefile xbmc/Makefile --- xbmc.orig/Makefile 2011-03-09 11:16:01.000000000 +0100 +++ xbmc/Makefile 2011-03-09 11:16:42.000000000 +0100 @@ -7,7 +7,7 @@ PORTNAME= xbmc PORTVERSION= 10.0 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= multimedia MASTER_SITES= http://mirrors.xbmc.org/releases/source/ @@ -69,7 +69,7 @@ USE_GL= glu USE_SDL= image mixer sdl USE_MYSQL= yes -USE_PYTHON= 2.5-2.6 +USE_PYTHON= 2.5-2.7 MAKE_JOBS_SAFE= yes NOPRECIOUSMAKEVARS= yes INSTALLS_ICONS= yes @@ -85,6 +85,7 @@ LIBBLURAY "Enable libbluray support" on \ FAAC "Enable FAAC support" off \ HAL "Enable HAL support" on \ + LIRC "Enable lirc support" off \ MMS "Enable mms:// & mmsh:// support" on \ NONFREE "Enable non-free components (rar, ccx, ffmpeg)" off \ PULSE "Enable PulseAudio support" off \ @@ -146,6 +147,10 @@ CONFIGURE_ARGS+= --disable-hal .endif +.if defined(WITH_LIRC) +RUN_DEPENDS+= lirc_client.2:${PORTSDIR}/comms/lirc +.endif + .if !defined(WITHOUT_MMS) CONFIGURE_ARGS+= --enable-libmms LIB_DEPENDS+= mms.0:${PORTSDIR}/net/libmms @@ -192,7 +197,6 @@ .endif post-patch: - @${REINPLACE_CMD} -e 's|#!/bin/bash|#!/bin/sh|' ${WRKSRC}/XBMC.xcodeproj/project.pbxproj @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/configure.in \ ${WRKSRC}/lib/enca/configure \ @@ -252,6 +256,47 @@ ${WRKSRC}/xbmc/screensavers/rsxs-0.9/configure \ ${WRKSRC}/xbmc/visualizations/Goom/goom2k4-0/configure \ ${WRKSRC}/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure + @${REINPLACE_CMD} -e "s;python2\.6;${PYTHON_VERSION};" \ + -e "s;HAVE_LIBPYTHON2_6;HAVE_LIB${PYTHON_VERSION:U:S/./_/g};" \ + ${WRKSRC}/xbmc/lib/libPython/XBPyThread.cpp \ + ${WRKSRC}/xbmc/lib/libPython/XBPyThread.h \ + ${WRKSRC}/xbmc/lib/libPython/XBPythonDll.cpp \ + ${WRKSRC}/xbmc/lib/libPython/XBPythonDllFuncs.S \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/GUIPythonWindow.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/PythonAddon.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/PythonPlayer.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/action.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/control.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlbutton.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlcheckmark.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlfadelabel.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlgroup.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlimage.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controllabel.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controllist.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlprogress.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlradiobutton.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlslider.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controlspin.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/controltextbox.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/dialog.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/dialog.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/infotagmusic.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/infotagvideo.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/keyboard.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/listitem.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/listitem.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/player.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/pyplaylist.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/pyplaylist.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/pyutil.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/window.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/winxml.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/winxml.h \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/winxmldialog.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/xbmcaddonmodule.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/xbmcguimodule.cpp \ + ${WRKSRC}/xbmc/lib/libPython/xbmcmodule/xbmcmodule.cpp pre-configure: cd ${WRKSRC} && ./bootstrap diff -urdN -x .svn -x todo.txt xbmc.orig/files/patch-configure.in xbmc/files/patch-configure.in --- xbmc.orig/files/patch-configure.in 2011-03-09 10:46:58.000000000 +0100 +++ xbmc/files/patch-configure.in 2011-03-08 15:12:04.000000000 +0100 @@ -1,5 +1,5 @@ --- configure.in.orig 2010-12-17 07:17:41.000000000 +0100 -+++ configure.in 2011-02-23 21:51:33.000000000 +0100 ++++ configure.in 2011-03-08 15:10:52.000000000 +0100 @@ -19,10 +19,10 @@ [ if [[ "$host_vendor" != "apple" ]]; then @@ -45,7 +45,16 @@ i386-apple-darwin*) ARCH="x86-osx" # define i386 or x86_64, cannot use $HOSTTYPE as it reports x86_64 on 10.6 regardless of kernel flavor -@@ -543,7 +561,11 @@ +@@ -507,6 +525,8 @@ + # Add top source directory for all builds so we can use config.h + INCLUDES="$INCLUDES -I\$(abs_top_srcdir)" + ++AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[""]),) ++ + # Checks for boost headers using CXX instead of CC + AC_LANG_PUSH([C++]) + AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library)) +@@ -543,7 +563,11 @@ AC_CHECK_LIB([ass], [ass_set_message_cb],,use_external_libass="no") AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage @@ -57,7 +66,7 @@ AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library)) -@@ -581,9 +603,6 @@ +@@ -581,9 +605,6 @@ PKG_CHECK_MODULES([SAMPLERATE], [samplerate], [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"], AC_MSG_ERROR($missing_library)) @@ -67,7 +76,7 @@ PKG_CHECK_MODULES([FREETYPE2], [freetype2], [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"], AC_MSG_ERROR($missing_library)) -@@ -620,6 +639,29 @@ +@@ -620,6 +641,29 @@ ] ) @@ -97,20 +106,18 @@ # platform dependent libraries if test "$host_vendor" = "apple" ; then AC_CHECK_LIB([iconv], [main],, AC_MSG_ERROR($missing_library)) -@@ -644,8 +686,10 @@ +@@ -644,8 +688,10 @@ AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([smbclient], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([SDL_mixer], [main],, AC_MSG_ERROR($missing_library)) -- AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library)) -- AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library)) + if echo "$ARCH" | grep -vq freebsd; then -+ AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library)) -+ AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library)) + fi AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([rt], [clock_gettime],, AC_MSG_ERROR($missing_library)) -@@ -740,8 +784,8 @@ +@@ -740,8 +786,8 @@ AC_MSG_RESULT($faac_disabled) else if test "$use_faac" = "yes"; then @@ -121,7 +128,32 @@ else AC_MSG_RESULT($faac_disabled) fi -@@ -1211,6 +1255,12 @@ +@@ -919,7 +965,11 @@ + + # External Python + if test "$use_external_python" = "yes"; then +- AC_CHECK_LIB([python2.6], [main], ++ AC_CHECK_LIB([python2.7], [main], ++ [AC_DEFINE([HAVE_LIBPYTHON2_7], [1], ++ [Define to 1 if you have the 'python2.7' library.]) ++ USE_PYTHON2_7=1], ++ [AC_CHECK_LIB([python2.6], [main], + [AC_DEFINE([HAVE_LIBPYTHON2_6], [1], + [Define to 1 if you have the 'python2.6' library.]) + USE_PYTHON2_6=1], +@@ -931,9 +981,10 @@ + [AC_DEFINE([HAVE_LIBPYTHON2_4], [1], + [Define to 1 if you have the 'python2.4' library.]) + USE_PYTHON2_4=1], +- [AC_MSG_ERROR($missing_library)] )] )] ) ++ [AC_MSG_ERROR($missing_library)] )] )] )] ) + + AC_MSG_NOTICE($external_python_enabled) ++ test "$USE_PYTHON2_7" && AC_MSG_NOTICE([Using Python 2.7]) + test "$USE_PYTHON2_6" && AC_MSG_NOTICE([Using Python 2.6]) + test "$USE_PYTHON2_5" && AC_MSG_NOTICE([Using Python 2.5]) + test "$USE_PYTHON2_4" && AC_MSG_NOTICE([Using Python 2.4]) +@@ -1211,6 +1262,12 @@ final_message="$final_message\n Bluray:\tNo" fi @@ -134,7 +166,7 @@ if test "$use_mid" = "yes"; then final_message="$final_message\n MID Support:\tYes" SDL_DEFINES="$SDL_DEFINES -DMID" -@@ -1418,7 +1468,6 @@ +@@ -1418,7 +1475,6 @@ xbmc/cores/paplayer/NSFCodec/Makefile \ xbmc/cores/paplayer/SIDCodec/Makefile \ xbmc/cores/paplayer/vgmstream/Makefile \ @@ -142,7 +174,15 @@ xbmc/cores/paplayer/YMCodec/StSoundLibrary/Makefile \ xbmc/cores/playercorefactory/Makefile \ xbmc/karaoke/Makefile \ -@@ -1735,7 +1784,7 @@ +@@ -1491,6 +1547,7 @@ + AC_SUBST(USE_EXTERNAL_LIBMPEG2) + AC_SUBST(USE_EXTERNAL_LIBWAVPACK) + AC_SUBST(USE_EXTERNAL_PYTHON) ++AC_SUBST(USE_PYTHON2_7) + AC_SUBST(USE_PYTHON2_6) + AC_SUBST(USE_PYTHON2_5) + AC_SUBST(USE_PYTHON2_4) +@@ -1735,7 +1792,7 @@ --enable-static \ --disable-shared \ --cc="$CC" && @@ -151,13 +191,7 @@ mkdir -p `pwd`/../includes/dvdread cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread else -@@ -1744,13 +1793,14 @@ - --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \ - --host=$host_alias \ - --build=$build_alias \ -- --target=$target_alias \ -+ --target=$target_alias \ - --enable-static \ +@@ -1749,8 +1806,9 @@ --disable-shared \ --disable-strip \ --disable-opts \ @@ -168,7 +202,7 @@ mkdir -p `pwd`/../includes/dvdread cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread fi -@@ -1766,6 +1816,17 @@ +@@ -1766,6 +1824,17 @@ --enable-static \ --disable-shared \ --cc="$CC" diff -urdN -x .svn -x todo.txt xbmc.orig/files/patch-guilib__common__LIRC.cpp xbmc/files/patch-guilib__common__LIRC.cpp --- xbmc.orig/files/patch-guilib__common__LIRC.cpp 1970-01-01 01:00:00.000000000 +0100 +++ xbmc/files/patch-guilib__common__LIRC.cpp 2011-03-08 14:17:20.000000000 +0100 @@ -0,0 +1,67 @@ +--- guilib/common/LIRC.cpp.orig 2011-03-07 14:16:12.000000000 +0100 ++++ guilib/common/LIRC.cpp 2011-03-07 14:11:31.000000000 +0100 +@@ -19,11 +19,14 @@ + * + */ + ++#include "config.h" + #include + #include + #include + #include ++#ifdef HAVE_INOTIFY + #include ++#endif + #include + #include + #include "LIRC.h" +@@ -92,12 +95,14 @@ + close(m_fd); + m_fd = -1; + m_file = NULL; ++#ifdef HAVE_INOTIFY + if (m_inotify_wd >= 0) { + inotify_rm_watch(m_inotify_fd, m_inotify_wd); + m_inotify_wd = -1; + } + if (m_inotify_fd >= 0) + close(m_inotify_fd); ++#endif + + m_inReply = false; + m_nrSending = 0; +@@ -148,6 +153,7 @@ + { + if ((m_file = fdopen(m_fd, "r+")) != NULL) + { ++#ifdef HAVE_INOTIFY + // Setup inotify so we can disconnect if lircd is restarted + if ((m_inotify_fd = inotify_init()) >= 0) + { +@@ -168,6 +174,10 @@ + } + } + } ++#else ++ m_bInitialized = true; ++ CLog::Log(LOGINFO, "LIRC %s: sucessfully started", __FUNCTION__); ++#endif + } + else + CLog::Log(LOGERROR, "LIRC %s: fdopen failed: %s", __FUNCTION__, strerror(errno)); +@@ -206,6 +216,7 @@ + } + + bool CRemoteControl::CheckDevice() { ++#ifdef HAVE_INOTIFY + if (m_inotify_fd < 0 || m_inotify_wd < 0) + return true; // inotify wasn't setup for some reason, assume all is well + int bufsize = sizeof(struct inotify_event) + PATH_MAX; +@@ -220,6 +231,7 @@ + } + i += sizeof(struct inotify_event)+e->len; + } ++#endif + return true; + } + diff -urdN -x .svn -x todo.txt xbmc.orig/files/patch-guilib__common__Makefile.in xbmc/files/patch-guilib__common__Makefile.in --- xbmc.orig/files/patch-guilib__common__Makefile.in 2011-03-09 10:46:58.000000000 +0100 +++ xbmc/files/patch-guilib__common__Makefile.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ ---- ./guilib/common/Makefile.in.orig 2009-09-01 04:57:16.000000000 +0200 -+++ ./guilib/common/Makefile.in 2010-12-01 12:17:34.308286578 +0100 -@@ -4,6 +4,8 @@ - - ifeq ($(findstring osx,$(ARCH)), osx) - SRCS=SDLJoystick.cpp -+else ifeq ($(findstring bsd,$(ARCH)), bsd) -+SRCS=SDLJoystick.cpp - else - SRCS=SDLJoystick.cpp LIRC.cpp - endif diff -urdN -x .svn -x todo.txt xbmc.orig/files/patch-guilib__system.h xbmc/files/patch-guilib__system.h --- xbmc.orig/files/patch-guilib__system.h 2011-03-09 10:46:58.000000000 +0100 +++ xbmc/files/patch-guilib__system.h 2011-03-08 14:17:20.000000000 +0100 @@ -10,13 +10,3 @@ /********************** * Non-free Components -@@ -134,7 +136,9 @@ - #define HAS_GLX - #define HAS_LINUX_NETWORK - #define HAS_SDL_AUDIO -+#if !defined(__FreeBSD__) - #define HAS_LIRC -+#endif - #define HAS_SDL_WIN_EVENTS - #ifdef HAVE_LIBPULSE - #define HAS_PULSEAUDIO diff -urdN -x .svn -x todo.txt xbmc.orig/files/patch-xbmc__lib__libPython__XBPython.cpp xbmc/files/patch-xbmc__lib__libPython__XBPython.cpp --- xbmc.orig/files/patch-xbmc__lib__libPython__XBPython.cpp 2011-03-09 10:46:58.000000000 +0100 +++ xbmc/files/patch-xbmc__lib__libPython__XBPython.cpp 2011-03-08 14:17:20.000000000 +0100 @@ -1,12 +1,25 @@ ---- ./xbmc/lib/libPython/XBPython.cpp.orig 2010-10-09 15:00:44.000000000 +0200 -+++ ./xbmc/lib/libPython/XBPython.cpp 2010-12-01 12:17:34.246845365 +0100 -@@ -60,6 +60,24 @@ +--- xbmc/lib/libPython/XBPython.cpp.orig 2010-12-17 07:17:41.000000000 +0100 ++++ xbmc/lib/libPython/XBPython.cpp 2011-03-07 15:00:17.000000000 +0100 +@@ -24,7 +24,9 @@ + #include "config.h" + #endif + #if (defined USE_EXTERNAL_PYTHON) +- #if (defined HAVE_LIBPYTHON2_6) ++ #if (defined HAVE_LIBPYTHON2_7) ++ #include ++ #elif (defined HAVE_LIBPYTHON2_6) + #include + #elif (defined HAVE_LIBPYTHON2_5) + #include +@@ -60,6 +62,28 @@ #else #define PYTHON_DLL "special://xbmcbin/system/python/python24-x86-osx.so" #endif +#elif defined(__FreeBSD__) +#if defined(__x86_64__) -+#if defined(HAVE_LIBPYTHON2_6) ++#if defined(HAVE_LIBPYTHON2_7) ++#define PYTHON_DLL "special://xbmcbin/system/python/python27-x86_64-freebsd.so" ++#elif defined(HAVE_LIBPYTHON2_6) +#define PYTHON_DLL "special://xbmcbin/system/python/python26-x86_64-freebsd.so" +#elif defined(HAVE_LIBPYTHON2_5) +#define PYTHON_DLL "special://xbmcbin/system/python/python25-x86_64-freebsd.so" @@ -14,7 +27,9 @@ +#define PYTHON_DLL "special://xbmcbin/system/python/python24-x86_64-freebsd.so" +#endif +#else /* !__x86_64__ */ -+#if defined(HAVE_LIBPYTHON2_6) ++#if defined(HAVE_LIBPYTHON2_7) ++#define PYTHON_DLL "special://xbmcbin/system/python/python27-x86-freebsd.so" ++#elif defined(HAVE_LIBPYTHON2_6) +#define PYTHON_DLL "special://xbmcbin/system/python/python26-x86-freebsd.so" +#elif defined(HAVE_LIBPYTHON2_5) +#define PYTHON_DLL "special://xbmcbin/system/python/python25-x86-freebsd.so" @@ -25,7 +40,7 @@ #elif defined(__x86_64__) #if (defined HAVE_LIBPYTHON2_6) #define PYTHON_DLL "special://xbmcbin/system/python/python26-x86_64-linux.so" -@@ -443,7 +461,7 @@ +@@ -443,7 +467,7 @@ // first free all dlls loaded by python, after that python24.dll (this is done by UnloadPythonDlls DllLoaderContainer::UnloadPythonDlls(); diff -urdN -x .svn -x todo.txt xbmc.orig/files/patch-xbmc__lib__libPython__linux__Makefile.in xbmc/files/patch-xbmc__lib__libPython__linux__Makefile.in --- xbmc.orig/files/patch-xbmc__lib__libPython__linux__Makefile.in 2011-03-09 10:46:58.000000000 +0100 +++ xbmc/files/patch-xbmc__lib__libPython__linux__Makefile.in 2011-03-08 14:17:20.000000000 +0100 @@ -1,6 +1,6 @@ ---- ./xbmc/lib/libPython/linux/Makefile.in.orig 2010-07-11 23:22:04.000000000 +0200 -+++ ./xbmc/lib/libPython/linux/Makefile.in 2010-12-01 12:17:34.245845263 +0100 -@@ -2,7 +2,7 @@ +--- xbmc/lib/libPython/linux/Makefile.in.orig 2010-12-17 07:17:41.000000000 +0100 ++++ xbmc/lib/libPython/linux/Makefile.in 2011-03-07 14:55:55.000000000 +0100 +@@ -2,10 +2,13 @@ CC=@CC@ CFLAGS=@CFLAGS@ LDFLAGS=@LDFLAGS@ @@ -8,4 +8,11 @@ +SHELL=/bin/sh SYSDIR=../../../../system/python - ifeq (@USE_PYTHON2_6@,1) +-ifeq (@USE_PYTHON2_6@,1) ++ifeq (@USE_PYTHON2_7@,1) ++ PYVERSION=python2.7 ++ SO=python27-$(ARCH).so ++else ifeq (@USE_PYTHON2_6@,1) + PYVERSION=python2.6 + SO=python26-$(ARCH).so + else ifeq (@USE_PYTHON2_5@,1)