From owner-svn-ports-all@FreeBSD.ORG Thu Aug 21 16:56:01 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7719C7C6; Thu, 21 Aug 2014 16:56:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 603863C69; Thu, 21 Aug 2014 16:56:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id s7LGu1wh068910; Thu, 21 Aug 2014 16:56:01 GMT (envelope-from adamw@FreeBSD.org) Received: (from adamw@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id s7LGtuGD068859; Thu, 21 Aug 2014 16:55:56 GMT (envelope-from adamw@FreeBSD.org) Message-Id: <201408211655.s7LGtuGD068859@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: adamw set sender to adamw@FreeBSD.org using -f From: Adam Weinberger Date: Thu, 21 Aug 2014 16:55:56 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r365568 - in head/multimedia: . plexhometheater plexhometheater/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Aug 2014 16:56:01 -0000 Author: adamw Date: Thu Aug 21 16:55:55 2014 New Revision: 365568 URL: http://svnweb.freebsd.org/changeset/ports/365568 QAT: https://qat.redports.org/buildarchive/r365568/ Log: Add multimedia/plexhometheater, the frontend to the powerful Plex media system. PR: 191413 Submitted by: woodsb02@gmail.com Added: head/multimedia/plexhometheater/ head/multimedia/plexhometheater/Makefile (contents, props changed) head/multimedia/plexhometheater/distinfo (contents, props changed) head/multimedia/plexhometheater/files/ head/multimedia/plexhometheater/files/patch-CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-clang (contents, props changed) head/multimedia/plexhometheater/files/patch-lib__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-lib__cpluff__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-lib__cximage-6.0__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-lib__ffmpeg__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-lib__libdvd__libdvdcss__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-lib__libdvd__libdvdnav__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__CMakeModules__CMakeConfig.cmake (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__CMakeModules__CPackConfig.cmake (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__CMakeModules__FindExecinfo.cmake (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__CMakeModules__PlatformConfigFREEBSD.cmake (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__CMakeModules__PlatformConfigPOSIX.cmake (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__Network__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__Network__NetworkInterfaceBSD.cpp (contents, props changed) head/multimedia/plexhometheater/files/patch-plex__config.h.in (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__cdrip__EncoderFFmpeg.cpp (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__cores__AudioEngine__Engines__SoftAE__SoftAE.cpp (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__cores__AudioEngine__Sinks__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__cores__DllLoader__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__VAAPI.cpp (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__freebsd__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__input__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__linux__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__storage__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__threads__platform__pthreads__ThreadImpl.cpp (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__visualizations__XBMCProjectM__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__visualizations__XBMCProjectM__libprojectM__PresetLoader.hpp (contents, props changed) head/multimedia/plexhometheater/files/patch-xbmc__windowing__CMakeLists.txt (contents, props changed) head/multimedia/plexhometheater/files/plexhometheater.sh.in (contents, props changed) head/multimedia/plexhometheater/pkg-descr (contents, props changed) head/multimedia/plexhometheater/pkg-plist (contents, props changed) Modified: head/multimedia/Makefile Modified: head/multimedia/Makefile ============================================================================== --- head/multimedia/Makefile Thu Aug 21 16:08:30 2014 (r365567) +++ head/multimedia/Makefile Thu Aug 21 16:55:55 2014 (r365568) @@ -274,6 +274,7 @@ SUBDIR += photofilmstrip SUBDIR += pitivi SUBDIR += playd + SUBDIR += plexhometheater SUBDIR += plexmediaserver SUBDIR += plexmediaserver-plexpass SUBDIR += podcastdl Added: head/multimedia/plexhometheater/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/Makefile Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,122 @@ +# $FreeBSD$ + +PORTNAME= plexhometheater +PORTVERSION= 1.2.1 +CATEGORIES= multimedia + +MAINTAINER= woodsb02@gmail.com +COMMENT= Media center frontend to multimedia/plexmediaserver + +LICENSE= GPLv2 + +BUILD_DEPENDS= enca:${PORTSDIR}/converters/enca \ + gawk:${PORTSDIR}/lang/gawk \ + gperf:${PORTSDIR}/devel/gperf \ + cmake:${PORTSDIR}/devel/cmake \ + gmake:${PORTSDIR}/devel/gmake \ + zip:${PORTSDIR}/archivers/zip \ + unzip:${PORTSDIR}/archivers/unzip \ + nasm:${PORTSDIR}/devel/nasm \ + gtk-update-icon-cache:${PORTSDIR}/x11-toolkits/gtk20 \ + swig2.0:${PORTSDIR}/devel/swig20 + +LIB_DEPENDS= libass.so:${PORTSDIR}/multimedia/libass \ + libavahi-client.so:${PORTSDIR}/net/avahi-app \ + libboost_thread.so:${PORTSDIR}/devel/boost-libs \ + libcdio.so:${PORTSDIR}/sysutils/libcdio \ + libcurl.so:${PORTSDIR}/ftp/curl \ + libdbus-1.so:${PORTSDIR}/devel/dbus \ + libenca.so:${PORTSDIR}/converters/enca \ + libFLAC.so:${PORTSDIR}/audio/flac \ + libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig \ + libfreetype.so:${PORTSDIR}/print/freetype2 \ + libfribidi.so:${PORTSDIR}/converters/fribidi \ + libGLEW.so:${PORTSDIR}/graphics/glew \ + libhal.so:${PORTSDIR}/sysutils/hal \ + libjasper.so:${PORTSDIR}/graphics/jasper \ + libjpeg.so:${PORTSDIR}/graphics/jpeg \ + liblzo2.so:${PORTSDIR}/archivers/lzo2 \ + libmad.so:${PORTSDIR}/audio/libmad \ + libmicrohttpd.so:${PORTSDIR}/www/libmicrohttpd \ + libmodplug.so:${PORTSDIR}/audio/libmodplug \ + libmp3lame.so:${PORTSDIR}/audio/lame \ + libmpeg2.so:${PORTSDIR}/multimedia/libmpeg2 \ + libpcre.so:${PORTSDIR}/devel/pcre \ + libplist.so:${PORTSDIR}/devel/libplist \ + libpng15.so:${PORTSDIR}/graphics/png \ + librtmp.so:${PORTSDIR}/multimedia/librtmp \ + libsamplerate.so:${PORTSDIR}/audio/libsamplerate \ + libshairport.so:${PORTSDIR}/audio/libshairport \ + libsqlite3.so:${PORTSDIR}/databases/sqlite3 \ + libtag.so:${PORTSDIR}/audio/taglib \ + libtiff.so:${PORTSDIR}/graphics/tiff \ + libtinyxml.so:${PORTSDIR}/textproc/tinyxml \ + libva.so:${PORTSDIR}/multimedia/libva \ + libvdpau.so:${PORTSDIR}/multimedia/libvdpau \ + libvorbis.so:${PORTSDIR}/audio/libvorbis \ + libxslt.so:${PORTSDIR}/textproc/libxslt \ + libyajl.so:${PORTSDIR}/devel/yajl \ + libexecinfo.so:${PORTSDIR}/devel/libexecinfo + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ + glxinfo:${PORTSDIR}/graphics/mesa-demos \ + ${PYTHON_PKGNAMEPREFIX}imaging>0:${PORTSDIR}/graphics/py-imaging \ + xdpyinfo:${PORTSDIR}/x11/xdpyinfo + +USE_GITHUB= yes +GH_ACCOUNT= plexinc +GH_PROJECT= plex-home-theater-public +GH_COMMIT= bdd03dd +GH_TAGNAME= pht-v1.2.1 + +USES= cmake:outsource iconv pkgconfig python:2 +CMAKE_ARGS+= -DENABLE_AUTOUPDATE:BOOL=false +CMAKE_ARGS+= -DENABLE_DUMP_SYMBOLS:BOOL=false +CMAKE_ARGS+= -DENABLE_PYTHON:BOOL=false +CMAKE_ARGS+= -DUSE_INTERNAL_FFMPEG:BOOL=true +CMAKE_ARGS+= -DCREATE_BUNDLE:BOOL=false +CMAKE_ARGS+= -DCMAKE_PREFIX_PATH=${LOCALBASE} +LDFLAGS+= -L${LOCALBASE}/lib +USE_XORG= xt xmu xtst xrandr +USE_GL= glu +USE_SDL= image sdl mixer +USE_JAVA= yes +JAVA_BUILD= jre +INSTALLS_ICONS= yes +ONLY_FOR_ARCHS= i386 amd64 + +SUB_FILES= ${PORTNAME}.sh + +DESKTOP_ENTRIES="Plex Home Theater" \ + "${COMMENT}" \ + "${DATADIR}/media/plex-icon-120.png" \ + "plexhometheater.sh" \ + "AudioVideo;Video;" \ + true + +OPTIONS_SUB= yes +OPTIONS_DEFINE= CEC LIRC PULSEAUDIO +CEC_DESC= Control plexhometheater over HDMI with TV remote + +OPTIONS_DEFAULT= CEC LIRC + +CEC_LIB_DEPENDS= libcec.so:${PORTSDIR}/multimedia/libcec +CEC_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_CEC:BOOL=true + +LIRC_RUN_DEPENDS= lircd:${PORTSDIR}/comms/lirc + +PULSEAUDIO_LIB_DEPENDS= libpulse.so:${PORTSDIR}/audio/pulseaudio +PULSEAUDIO_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_PulseAudio:BOOL=true + +.include + +.if ${ARCH} == i386 +PLIST_SUB+= ARCH="x86" +.else +PLIST_SUB+= ARCH="x86_64" +.endif + +post-install: + ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}.sh ${STAGEDIR}${PREFIX}/bin + +.include Added: head/multimedia/plexhometheater/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/distinfo Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,2 @@ +SHA256 (plexhometheater-1.2.1.tar.gz) = d880f9dc2c893036cab0c21dfbd855c91751f97b06437c7d6e23726b089715d0 +SIZE (plexhometheater-1.2.1.tar.gz) = 91374075 Added: head/multimedia/plexhometheater/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,20 @@ +--- ./CMakeLists.txt.orig 2014-06-02 09:52:10.024707343 +0800 ++++ ./CMakeLists.txt 2014-06-02 09:54:01.569705023 +0800 +@@ -120,7 +120,7 @@ + + if(ENABLE_PYTHON) + if(EXTERNAL_PYTHON_HOME) +- if(TARGET_LINUX OR TARGET_OSX OR TARGET_RPI) ++ if(TARGET_LINUX OR TARGET_OSX OR TARGET_RPI OR TARGET_FREEBSD) + install(DIRECTORY ${EXTERNAL_PYTHON_HOME}/lib/python${PYTHON_VERSION} DESTINATION ${LIBPATH}/lib/ COMPONENT RUNTIME + PATTERN python${PYTHON_VERSION}/test EXCLUDE + REGEX .*\\.pyc$ EXCLUDE +@@ -129,7 +129,7 @@ + install(FILES ${PYTHON_INCLUDE_DIRS}/pyconfig.h DESTINATION "${LIBPATH}/include/python${PYTHON_VERSION}" COMPONENT RUNTIME) + endif() + elseif() +- if(TARGET_LINUX OR TARGET_OSX) ++ if(TARGET_LINUX OR TARGET_OSX OR TARGET_FREEBSD) + install(DIRECTORY /usr/lib/python${PYTHON_VERSION} DESTINATION ${LIBPATH}/lib/ COMPONENT RUNTIME + PATTERN python${PYTHON_VERSION}/test EXCLUDE + REGEX .*\\.pyc$ EXCLUDE Added: head/multimedia/plexhometheater/files/patch-clang ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-clang Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,131 @@ +diff --git xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h +index e045a72..ff4f575 100644 +--- xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h ++++ xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h +@@ -198,8 +198,12 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount); + #endif + + #ifndef ARGP_FS_EI ++#ifdef __clang__ ++#define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__)) ++#else + #define ARGP_FS_EI extern inline + #endif ++#endif + + ARGP_FS_EI size_t + __argp_fmtstream_write (argp_fmtstream_t __fs, + +diff --git lib/cpluff/libcpluff/cpluff.c lib/cpluff/libcpluff/cpluff.c +index a7e8725..0f5bb90 100644 +--- lib/cpluff/libcpluff/cpluff.c ++++ lib/cpluff/libcpluff/cpluff.c +@@ -77,6 +77,7 @@ CP_C_API const char *cp_get_host_type(void) { + return CP_HOST; + } + ++#if defined(CP_THREADS) || !defined(NDEBUG) + CP_HIDDEN void cpi_lock_framework(void) { + #if defined(CP_THREADS) + cpi_lock_mutex(framework_mutex); +@@ -93,6 +94,7 @@ CP_HIDDEN void cpi_unlock_framework(void) { + framework_locked--; + #endif + } ++#endif + + static void reset(void) { + #ifdef CP_THREADS +diff --git lib/cpluff/libcpluff/logging.c lib/cpluff/libcpluff/logging.c +index 928f0b4..f0f873d 100644 +--- lib/cpluff/libcpluff/logging.c ++++ lib/cpluff/libcpluff/logging.c +@@ -129,10 +129,12 @@ CP_C_API cp_status_t cp_register_logger(cp_context_t *context, cp_logger_func_t + // Report error + if (status == CP_ERR_RESOURCE) { + cpi_error(context, N_("Logger could not be registered due to insufficient memory.")); ++#if defined(CP_THREADS) || !defined(NDEBUG) + } else if (cpi_is_logged(context, CP_LOG_DEBUG)) { + char owner[64]; + /* TRANSLATORS: %s is the context owner */ + cpi_debugf(context, N_("%s registered a logger."), cpi_context_owner(context, owner, sizeof(owner))); ++#endif + } + cpi_unlock_context(context); + +@@ -166,11 +168,13 @@ CP_C_API void cp_unregister_logger(cp_context_t *context, cp_logger_func_t logge + free(lh); + update_logging_limits(context); + } ++#if defined(CP_THREADS) || !defined(NDEBUG) + if (cpi_is_logged(context, CP_LOG_DEBUG)) { + char owner[64]; + /* TRANSLATORS: %s is the context owner */ + cpi_debugf(context, N_("%s unregistered a logger."), cpi_context_owner(context, owner, sizeof(owner))); + } ++#endif + cpi_unlock_context(context); + } + +diff --git lib/cpluff/libcpluff/pinfo.c lib/cpluff/libcpluff/pinfo.c +index cfbf049..f7b4a4b 100644 +--- lib/cpluff/libcpluff/pinfo.c ++++ lib/cpluff/libcpluff/pinfo.c +@@ -569,10 +569,12 @@ CP_C_API cp_status_t cp_register_plistener(cp_context_t *context, cp_plugin_list + // Report error or success + if (status != CP_OK) { + cpi_error(context, _("A plug-in listener could not be registered due to insufficient memory.")); ++#if defined(CP_THREADS) || !defined(NDEBUG) + } else if (cpi_is_logged(context, CP_LOG_DEBUG)) { + char owner[64]; + /* TRANSLATORS: %s is the context owner */ + cpi_debugf(context, N_("%s registered a plug-in listener."), cpi_context_owner(context, owner, sizeof(owner))); ++#endif + } + cpi_unlock_context(context); + +@@ -591,10 +593,12 @@ CP_C_API void cp_unregister_plistener(cp_context_t *context, cp_plugin_listener_ + if (node != NULL) { + process_unregister_plistener(context->env->plugin_listeners, node, NULL); + } ++#if defined(CP_THREADS) || !defined(NDEBUG) + if (cpi_is_logged(context, CP_LOG_DEBUG)) { + char owner[64]; + /* TRANSLATORS: %s is the context owner */ + cpi_debugf(context, N_("%s unregistered a plug-in listener."), cpi_context_owner(context, owner, sizeof(owner))); + } ++#endif + cpi_unlock_context(context); + } +diff --git lib/cpluff/libcpluff/psymbol.c lib/cpluff/libcpluff/psymbol.c +index 632b087..fdc15af 100644 +--- lib/cpluff/libcpluff/psymbol.c ++++ lib/cpluff/libcpluff/psymbol.c +@@ -248,11 +248,13 @@ CP_C_API void * cp_resolve_symbol(cp_context_t *context, const char *id, const c + symbol_info->usage_count++; + provider_info->usage_count++; + ++#if defined(CP_THREADS) || !defined(NDEBUG) + if (cpi_is_logged(context, CP_LOG_DEBUG)) { + char owner[64]; + /* TRANSLATORS: First %s is the context owner */ + cpi_debugf(context, "%s resolved symbol %s defined by plug-in %s.", cpi_context_owner(context, owner, sizeof(owner)), name, id); + } ++#endif + } while (0); + + // Clean up +@@ -314,11 +316,13 @@ CP_C_API void cp_release_symbol(cp_context_t *context, const void *ptr) { + if (symbol_info->usage_count == 0) { + hash_delete_free(context->resolved_symbols, node); + free(symbol_info); ++#if defined(CP_THREADS) || !defined(NDEBUG) + if (cpi_is_logged(context, CP_LOG_DEBUG)) { + char owner[64]; + /* TRANSLATORS: First %s is the context owner */ + cpi_debugf(context, _("%s released the symbol at address %p defined by plug-in %s."), cpi_context_owner(context, owner, sizeof(owner)), ptr, provider_info->plugin->plugin->identifier); + } ++#endif + } + + // Check if the symbol providing plug-in is not being used anymore Added: head/multimedia/plexhometheater/files/patch-lib__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-lib__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,11 @@ +--- lib/CMakeLists.txt.orig 2014-08-03 10:18:46.000000000 +0800 ++++ lib/CMakeLists.txt 2014-08-03 10:19:05.000000000 +0800 +@@ -6,7 +6,7 @@ + add_subdirectory(libdvd) + endif() + +-if(TARGET_COMMON_LINUX) ++if(TARGET_COMMON_LINUX OR TARGET_FREEBSD) + add_subdirectory(xbmc-dll-symbols) + endif() + Added: head/multimedia/plexhometheater/files/patch-lib__cpluff__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-lib__cpluff__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,12 @@ +--- lib/cpluff/CMakeLists.txt.orig 2014-08-09 08:23:29.709738677 +0800 ++++ lib/cpluff/CMakeLists.txt 2014-08-09 08:24:08.439733715 +0800 +@@ -92,6 +92,9 @@ + if(TARGET_COMMON_DARWIN) + add_library(cpluff-${ARCH} MODULE ${libcpluff_srcs}) + install(TARGETS cpluff-${ARCH} DESTINATION ${RESOURCEPATH}/system COMPONENT RUNTIME) ++ elseif(TARGET_FREEBSD) ++ add_library(cpluff-${ARCH} SHARED ${libcpluff_srcs}) ++ install(TARGETS cpluff-${ARCH} DESTINATION ${LIBPATH}/system COMPONENT RUNTIME) + elseif(TARGET_POSIX) + add_library(cpluff-${ARCH} SHARED ${libcpluff_srcs}) + install(TARGETS cpluff-${ARCH} DESTINATION ${BINPATH}/system COMPONENT RUNTIME) Added: head/multimedia/plexhometheater/files/patch-lib__cximage-6.0__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-lib__cximage-6.0__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,11 @@ +--- lib/cximage-6.0/CMakeLists.txt.orig 2014-08-07 20:04:16.149525420 +0800 ++++ lib/cximage-6.0/CMakeLists.txt 2014-08-07 20:04:55.041525414 +0800 +@@ -106,6 +106,8 @@ + install(TARGETS ImageLib-${ARCH} DESTINATION ${RESOURCEPATH}/system COMPONENT RUNTIME) + elseif(TARGET_COMMON_LINUX) + install(TARGETS ImageLib-${ARCH} DESTINATION ${BINPATH}/system COMPONENT RUNTIME) ++elseif(TARGET_FREEBSD) ++ install(TARGETS ImageLib-${ARCH} DESTINATION ${LIBPATH}/system COMPONENT RUNTIME) + elseif(TARGET_WIN32) + install(TARGETS ImageLib RUNTIME DESTINATION ${RESOURCEPATH}/system LIBRARY DESTINATION ${RESOURCEPATH}/system COMPONENT RUNTIME) + endif(TARGET_COMMON_DARWIN) Added: head/multimedia/plexhometheater/files/patch-lib__ffmpeg__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-lib__ffmpeg__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,61 @@ +--- lib/ffmpeg/CMakeLists.txt.orig 2014-07-31 22:37:29.000000000 +0800 ++++ lib/ffmpeg/CMakeLists.txt 2014-08-19 07:23:32.639850332 +0800 +@@ -4,10 +4,14 @@ + set(OS linux) + elseif(TARGET_DARWIN) + set(OS darwin) ++elseif(TARGET_FREEBSD) ++ set(OS freebsd) + endif() + + +-if(NOT TARGET_RPI) ++if(TARGET_FREEBSD) ++ set(CONFIG_FLAGS --target-os=${OS} --cc=clang --cxx=clang++ --extra-cflags=-I${CMAKE_PREFIX_PATH}/include --extra-ldflags=-L${CMAKE_PREFIX_PATH}/lib --disable-altivec --disable-amd3dnow --disable-avisynth --disable-crystalhd --disable-debug --disable-decoder=mpeg_xvmc --disable-devices --disable-doc --disable-dxva2 --disable-encoders --disable-extra-warnings --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-frei0r --disable-gray --disable-hardcoded-tables --disable-indevs --disable-iwmmxt --disable-libdc1394 --disable-libdirac --disable-libfaac --disable-libfreetype --disable-libgsm --disable-libmp3lame --disable-libnut --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libopencv --disable-libopenjpeg --disable-librtmp --disable-libschroedinger --disable-libspeex --disable-libtheora --disable-libvo-aacenc --disable-libvo-amrwbenc --disable-libvorbis --disable-libvpx --disable-libx264 --disable-libxavs --disable-libxvid --disable-memal ign-hack --disable-mlib --disable-mmi --disable-muxers --disable-nonfree --disable-outdevs --disable-small --disable-sram --disable-static --disable-symver --disable-vda --disable-version3 --disable-vis --disable-w32threads --disable-x11grab --enable-aandct --enable-asm --enable-avcodec --enable-avdevice --enable-avfilter --enable-avformat --enable-bsfs --enable-bzlib --enable-dct --enable-demuxers --enable-fastdiv --enable-fft --enable-filters --enable-golomb --enable-gpl --enable-huffman --enable-hwaccels --enable-libvorbis --enable-logging --enable-lpc --enable-mdct --enable-muxer=adts --enable-muxer=ogg --enable-muxer=spdif --enable-network --enable-optimizations --enable-parsers --enable-pic --enable-postproc --enable-protocol=http --enable-pthreads --enable-rdft --enable-runtime-cpudetect --enable-shared --enable-stripping --enable-swscale --enable-swscale-alpha --enable-vaapi --enable-vdpau --enable-yasm --enable-zlib --host-libs=-lm) ++elseif(NOT TARGET_RPI) + set(CONFIG_FLAGS --target-os=${OS} --sysroot="${CMAKE_PREFIX_PATH}" --sysinclude="${CMAKE_PREFIX_PATH}/usr/include" --disable-altivec --disable-amd3dnow --disable-avisynth --disable-crystalhd --disable-debug --disable-decoder=mpeg_xvmc --disable-devices --disable-doc --disable-dxva2 --disable-encoders --disable-extra-warnings --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-frei0r --disable-gray --disable-hardcoded-tables --disable-indevs --disable-iwmmxt --disable-libdc1394 --disable-libdirac --disable-libfaac --disable-libfreetype --disable-libgsm --disable-libmp3lame --disable-libnut --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libopencv --disable-libopenjpeg --disable-librtmp --disable-libschroedinger --disable-libspeex --disable-libtheora --disable-libvo-aacenc --disable-libvo-amrwbenc --disable-libvorbis --disable-libvpx --disable-libx264 --disable-libxavs --disable-libxvid --disable-memalign-hack --disable-mlib --disable -mmi --disable-muxers --disable-nonfree --disable-outdevs --disable-small --disable-sram --disable-static --disable-symver --disable-vda --disable-version3 --disable-vis --disable-w32threads --disable-x11grab --enable-aandct --enable-asm --enable-avcodec --enable-avdevice --enable-avfilter --enable-avformat --enable-bsfs --enable-bzlib --enable-dct --enable-demuxers --enable-fastdiv --enable-fft --enable-filters --enable-golomb --enable-gpl --enable-huffman --enable-hwaccels --enable-libvorbis --enable-logging --enable-lpc --enable-mdct --enable-muxer=adts --enable-muxer=ogg --enable-muxer=spdif --enable-network --enable-optimizations --enable-parsers --enable-pic --enable-postproc --enable-protocol=http --enable-pthreads --enable-rdft --enable-runtime-cpudetect --enable-shared --enable-stripping --enable-swscale --enable-swscale-alpha --enable-vaapi --enable-vdpau --enable-yasm --enable-zlib --host-libs=-lm) + else() + set(CONFIG_FLAGS --target-os=${OS} --disable-muxers --disable-encoders --disable-devices --disable-doc --disable-ffplay --disable-ffmpeg --disable-ffprobe --disable-ffserver --disable-vda --disable-crystalhd --disable-decoder=mpeg_xvmc --disable-debug --disable-amd3dnow --disable-libvorbis --enable-gpl --enable-postproc --enable-shared --disable-static --enable-pthreads --enable-muxer=spdif --enable-muxer=adts --enable-encoder=ac3 --enable-encoder=aac --enable-protocol=http --enable-runtime-cpudetect) +@@ -24,18 +28,19 @@ + URL . + PREFIX ffmpeg + CONFIGURE_COMMAND /configure --prefix= ${CONFIG_FLAGS} +- BUILD_COMMAND make -j 4 +- INSTALL_COMMAND make install ++ BUILD_COMMAND gmake -j 4 ++ INSTALL_COMMAND gmake install + ) + +-#define DLL_PATH_LIBAVCODEC "special://xbmcbin/system/players/dvdplayer/avcodec-53-x86_64-linux.so" +-#define DLL_PATH_LIBAVFORMAT "special://xbmcbin/system/players/dvdplayer/avformat-53-x86_64-linux.so" +-#define DLL_PATH_LIBAVUTIL "special://xbmcbin/system/players/dvdplayer/avutil-51-x86_64-linux.so" +-#define DLL_PATH_LIBPOSTPROC "special://xbmcbin/system/players/dvdplayer/postproc-52-x86_64-linux.so" +-#define DLL_PATH_LIBSWSCALE "special://xbmcbin/system/players/dvdplayer/swscale-2-x86_64-linux.so" +-#define DLL_PATH_LIBAVFILTER "special://xbmcbin/system/players/dvdplayer/avfilter-2-x86_64-linux.so" +-#define DLL_PATH_LIBSWRESAMPLE "special://xbmcbin/system/players/dvdplayer/swresample-0-x86_64-linux.so" ++#define DLL_PATH_LIBAVCODEC "special://xbmcbin/system/players/dvdplayer/avcodec-53-${ARCH}.so" ++#define DLL_PATH_LIBAVFORMAT "special://xbmcbin/system/players/dvdplayer/avformat-53-${ARCH}.so" ++#define DLL_PATH_LIBAVUTIL "special://xbmcbin/system/players/dvdplayer/avutil-51-${ARCH}.so" ++#define DLL_PATH_LIBPOSTPROC "special://xbmcbin/system/players/dvdplayer/postproc-52-${ARCH}.so" ++#define DLL_PATH_LIBSWSCALE "special://xbmcbin/system/players/dvdplayer/swscale-2-${ARCH}.so" ++#define DLL_PATH_LIBAVFILTER "special://xbmcbin/system/players/dvdplayer/avfilter-2-${ARCH}.so" ++#define DLL_PATH_LIBSWRESAMPLE "special://xbmcbin/system/players/dvdplayer/swresample-0-${ARCH}.so" + ++if(TARGET_COMMON_LINUX) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavcodec.so.53.61.100 DESTINATION ${BINPATH}/system/players/dvdplayer RENAME avcodec-53-${ARCH}.so) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavformat.so.53.32.100 DESTINATION ${BINPATH}/system/players/dvdplayer RENAME avformat-53-${ARCH}.so) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavutil.so.51.35.100 DESTINATION ${BINPATH}/system/players/dvdplayer RENAME avutil-51-${ARCH}.so) +@@ -43,4 +48,12 @@ + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libswscale.so.2.1.100 DESTINATION ${BINPATH}/system/players/dvdplayer RENAME swscale-2-${ARCH}.so) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavfilter.so.2.61.100 DESTINATION ${BINPATH}/system/players/dvdplayer RENAME avfilter-2-${ARCH}.so) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libswresample.so.0.6.100 DESTINATION ${BINPATH}/system/players/dvdplayer RENAME swresample-0-${ARCH}.so) +- ++elseif(TARGET_FREEBSD) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavcodec.so.53.61.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME avcodec-53-${ARCH}.so) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavformat.so.53.32.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME avformat-53-${ARCH}.so) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavutil.so.51.35.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME avutil-51-${ARCH}.so) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libpostproc.so.52.0.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME postproc-52-${ARCH}.so) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libswscale.so.2.1.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME swscale-2-${ARCH}.so) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libavfilter.so.2.61.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME avfilter-2-${ARCH}.so) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ffmpeg/lib/libswresample.so.0.6.100 DESTINATION ${LIBPATH}/system/players/dvdplayer RENAME swresample-0-${ARCH}.so) ++endif() Added: head/multimedia/plexhometheater/files/patch-lib__libdvd__libdvdcss__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-lib__libdvd__libdvdcss__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,11 @@ +--- lib/libdvd/libdvdcss/CMakeLists.txt.orig 2014-08-07 20:16:17.879526000 +0800 ++++ lib/libdvd/libdvdcss/CMakeLists.txt 2014-08-07 20:17:08.252521581 +0800 +@@ -35,6 +35,8 @@ + install(TARGETS dvdcss-${ARCH} DESTINATION ${RESOURCEPATH}/system/players/dvdplayer COMPONENT RUNTIME) + elseif(TARGET_COMMON_LINUX) + install(TARGETS dvdcss-${ARCH} DESTINATION ${BINPATH}/system/players/dvdplayer COMPONENT RUNTIME) ++ elseif(TARGET_FREEBSD) ++ install(TARGETS dvdcss-${ARCH} DESTINATION ${LIBPATH}/system/players/dvdplayer COMPONENT RUNTIME) + elseif(TARGET_WIN32) + install(TARGETS dvdcss RUNTIME DESTINATION ${RESOURCEPATH}/system/players/dvdplayer LIBRARY DESTINATION ${RESOURCEPATH}/system COMPONENT RUNTIME) + endif(TARGET_COMMON_DARWIN) Added: head/multimedia/plexhometheater/files/patch-lib__libdvd__libdvdnav__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-lib__libdvd__libdvdnav__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,11 @@ +--- lib/libdvd/libdvdnav/CMakeLists.txt.orig 2014-08-07 20:17:15.005520678 +0800 ++++ lib/libdvd/libdvdnav/CMakeLists.txt 2014-08-07 20:17:42.827523919 +0800 +@@ -23,6 +23,8 @@ + install(TARGETS dvdnav-${ARCH} DESTINATION ${RESOURCEPATH}/system/players/dvdplayer COMPONENT RUNTIME) + elseif(TARGET_COMMON_LINUX) + install(TARGETS dvdnav-${ARCH} DESTINATION ${BINPATH}/system/players/dvdplayer COMPONENT RUNTIME) ++elseif(TARGET_FREEBSD) ++ install(TARGETS dvdnav-${ARCH} DESTINATION ${LIBPATH}/system/players/dvdplayer COMPONENT RUNTIME) + elseif(TARGET_WIN32) + install(TARGETS dvdnav RUNTIME DESTINATION ${RESOURCEPATH}/system/players/dvdplayer LIBRARY DESTINATION ${RESOURCEPATH}/system COMPONENT RUNTIME) + endif(TARGET_COMMON_DARWIN) Added: head/multimedia/plexhometheater/files/patch-plex__CMakeModules__CMakeConfig.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__CMakeModules__CMakeConfig.cmake Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,30 @@ +--- ./plex/CMakeModules/CMakeConfig.cmake.orig 2014-06-02 09:15:38.258729436 +0800 ++++ ./plex/CMakeModules/CMakeConfig.cmake 2014-06-02 09:38:39.849710021 +0800 +@@ -31,7 +31,7 @@ + elseif(WIN32) + set(TARGET_PLATFORM "WIN32") + elseif(UNIX) +- set(TARGET_PLATFORM "LINUX") ++ set(TARGET_PLATFORM ${CMAKE_SYSTEM_NAME}) + endif() + endif() + +@@ -47,6 +47,9 @@ + set(TARGET_COMMON_LINUX 1 CACHE BOOL "Common Linux platforms") + set(TARGET_LINUX 1 CACHE BOOL "Target is Linux") + set(TARGET_POSIX 1 CACHE BOOL "POSIX platform") ++elseif(${TARGET_PLATFORM} STREQUAL "FREEBSD") ++ set(TARGET_FREEBSD 1 CACHE BOOL "Target is FreeBSD") ++ set(TARGET_POSIX 1 CACHE BOOL "POSIX platform") + elseif(${TARGET_PLATFORM} STREQUAL "RPI") + set(TARGET_RPI 1 CACHE BOOL "Target in RaspberryPI") + set(TARGET_COMMON_LINUX 1 CACHE BOOL "Common Linux platforms") +@@ -76,6 +79,8 @@ + set(BUILD_TAG "macosx-${OSX_ARCH}") + elseif(TARGET_WIN32) + set(BUILD_TAG "windows-x86") ++elseif(TARGET_FREEBSD) ++ set(BUILD_TAG "freebsd-${ARCH}") + elseif(TARGET_LINUX) + if(DEFINED ENV{ARCH} AND DEFINED ENV{PROJECT}) + set(BUILD_TAG "$ENV{PROJECT}-$ENV{ARCH}") Added: head/multimedia/plexhometheater/files/patch-plex__CMakeModules__CPackConfig.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__CMakeModules__CPackConfig.cmake Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,11 @@ +--- ./plex/CMakeModules/CPackConfig.cmake.orig 2014-06-02 12:09:53.558706631 +0800 ++++ ./plex/CMakeModules/CPackConfig.cmake 2014-05-23 21:04:41.000000000 +0800 +@@ -45,7 +45,7 @@ + if(TARGET_OSX) + set(CPACK_GENERATOR "ZIP") + set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) +-elseif(TARGET_COMMON_LINUX) ++elseif(TARGET_COMMON_LINUX OR TARGET_FREEBSD) + set(CPACK_GENERATOR "TBZ2") + elseif(TARGET_WIN32) + set(CPACK_GENERATOR "NSIS;ZIP") Added: head/multimedia/plexhometheater/files/patch-plex__CMakeModules__FindExecinfo.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__CMakeModules__FindExecinfo.cmake Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,40 @@ +--- plex/CMakeModules/FindExecinfo.cmake.orig 2014-06-18 13:48:49.013626678 +0000 ++++ plex/CMakeModules/FindExecinfo.cmake 2014-06-18 13:53:45.058602542 +0000 +@@ -0,0 +1,37 @@ ++# -*- cmake -*- ++ ++# - Find execinfo ++# Find the execinfo includes and library ++# The problem with this library is that it is built-in in the Linux glib, ++# while on systems like FreeBSD, it is installed separately and thus needs to be linked to. ++# Therefore, we search for the header to see if the it's available in the first place. ++# If it is available, we try to locate the library to figure out whether it is built-in or not. ++ ++if(EXECINFO_INCLUDE_DIR) ++ # Already in cache, be silent ++ set(EXECINFO_FIND_QUIETLY TRUE) ++endif(EXECINFO_INCLUDE_DIR) ++ ++find_package(PkgConfig) ++if (PKG_CONFIG_FOUND) ++ pkg_check_modules(_EXECINFO libexecinfo) ++endif (PKG_CONFIG_FOUND) ++ ++Find_Path(EXECINFO_INCLUDE_DIR ++ NAMES execinfo.h ++ PATHS /usr/include usr/local/include ++ HINTS ${_EXECINFO_INCLUDEDIR} ++) ++ ++Find_Library(EXECINFO_LIBRARY ++ NAMES execinfo ++ PATHS /usr/lib usr/local/lib ++ HINTS ${_EXECINFO_LIBDIR} ++) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(EXECINFO DEFAULT_MSG EXECINFO_LIBRARY EXECINFO_INCLUDE_DIR) ++ ++IF(EXECINFO_LIBRARY AND EXECINFO_INCLUDE_DIR) ++ plex_get_soname(EXECINFO_SONAME ${EXECINFO_LIBRARY}) ++ENDIF() Added: head/multimedia/plexhometheater/files/patch-plex__CMakeModules__PlatformConfigFREEBSD.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__CMakeModules__PlatformConfigFREEBSD.cmake Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,147 @@ +--- plex/CMakeModules/PlatformConfigFREEBSD.cmake.orig 2014-06-18 10:24:35.922455079 +0000 ++++ plex/CMakeModules/PlatformConfigFREEBSD.cmake 2014-06-18 13:58:08.739586540 +0000 +@@ -0,0 +1,144 @@ ++# vim: setlocal syntax=cmake: ++ ++######################### Compiler CFLAGS ++set(EXTRA_CFLAGS "-fPIC -DPIC") ++ ++######################### CHECK LIBRARIES / FRAMEWORKS ++option(USE_INTERNAL_FFMPEG "" ON) ++ ++set(LINK_PKG ++ Freetype ++ SDL ++ SDL_image ++ SDL_mixer ++ OpenGL ++ ZLIB ++ JPEG ++ X11 ++ SQLite3 ++ PCRE ++ Lzo2 ++ FriBiDi ++ Fontconfig ++ Samplerate ++ YAJL ++ microhttpd ++ Crypto ++ TinyXML ++ GLEW ++ Iconv ++ Avahi ++ Xrandr ++ LibRt ++ FLAC ++ DBUS ++ Execinfo ++) ++ ++if(NOT USE_INTERNAL_FFMPEG) ++ list(APPEND LINK_PKG FFmpeg) ++else() ++ set(FFMPEG_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/lib/ffmpeg ${CMAKE_BINARY_DIR}/lib/ffmpeg/ffmpeg/src/ffmpeg-build) ++endif() ++ ++if(ENABLE_PYTHON) ++ list(APPEND LINK_PKG Python) ++endif(ENABLE_PYTHON) ++ ++foreach(l ${LINK_PKG}) ++ plex_find_package(${l} 1 1) ++endforeach() ++ ++find_package(Boost COMPONENTS thread system REQUIRED) ++if(Boost_FOUND) ++ include_directories(${Boost_INCLUDE_DIRS}) ++ list(APPEND CONFIG_PLEX_LINK_LIBRARIES ${Boost_LIBRARIES}) ++ set(HAVE_BOOST 1) ++endif() ++ ++### install libs ++set(INSTALL_LIB ++ CURL ++ PNG ++ TIFF ++ Vorbis ++ LibMad ++ Mpeg2 ++ Ass ++ RTMP ++ PLIST ++ ShairPort ++ VAAPI ++ VDPAU ++) ++ ++foreach(l ${INSTALL_LIB}) ++ plex_find_package(${l} 1 0) ++endforeach() ++ ++plex_find_package(CEC 0 0) ++ ++plex_find_package(Threads 1 0) ++if(CMAKE_USE_PTHREADS_INIT) ++ message(STATUS "Using pthreads: ${CMAKE_THREAD_LIBS_INIT}") ++ list(APPEND CONFIG_PLEX_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) ++ set(HAVE_LIBPTHREAD 1) ++endif() ++ ++plex_find_package(PulseAudio 0 1) ++if(HAVE_LIBPULSEAUDIO) ++ set(HAVE_LIBPULSE 1) ++endif() ++ ++plex_find_package(LibUSB 0 1) ++ ++if(ENABLE_DVD_DRIVE) ++ plex_find_package(CDIO 1 1) ++endif(ENABLE_DVD_DRIVE) ++ ++if(NOT LIBUSB_FOUND) ++ message(WARNING "No USB support") ++endif() ++ ++if(VAAPI_FOUND) ++ list(APPEND CONFIG_PLEX_LINK_LIBRARIES ${VAAPI_LIBRARIES}) ++ include_directories(${VAAPI_INCLUDE_DIR}) ++ set(HAVE_LIBVA 1) ++endif() ++ ++plex_get_soname(CURL_SONAME ${CURL_LIBRARY}) ++ ++list(APPEND CONFIG_INTERNAL_LIBS lib_dllsymbols) ++ ++#### ++if(DEFINED X11_FOUND) ++ set(HAVE_X11 1) ++endif() ++ ++if(DEFINED OPENGL_FOUND) ++ set(HAVE_LIBGL 1) ++endif() ++ ++#### default lircdevice ++set(LIRC_DEVICE "/dev/lircd") ++ ++#### on freebsd we want to use a "easy" name ++set(EXECUTABLE_NAME "plexhometheater") ++ ++if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "amd64") ++ set(ARCH "x86_64-freebsd") ++else() ++ set(ARCH "x86-freebsd") ++endif() ++ ++set(LIBPATH lib/plexhometheater) ++set(BINPATH bin) ++set(RESOURCEPATH share/plexhometheater) ++ ++set(PLEX_LINK_WRAPPED "-Wl,--unresolved-symbols=ignore-all -Wl,-wrap,_IO_getc -Wl,-wrap,_IO_getc_unlocked -Wl,-wrap,_IO_putc -Wl,-wrap,__fgets_chk -Wl,-wrap,__fprintf_chk -Wl,-wrap,__fread_chk -Wl,-wrap,__fxstat64 -Wl,-wrap,__lxstat64 -Wl,-wrap,__printf_chk -Wl,-wrap,__read_chk -Wl,-wrap,__vfprintf_chk -Wl,-wrap,__xstat64 -Wl,-wrap,_stat -Wl,-wrap,calloc -Wl,-wrap,clearerr -Wl,-wrap,close -Wl,-wrap,closedir -Wl,-wrap,dlopen -Wl,-wrap,fclose -Wl,-wrap,fdopen -Wl,-wrap,feof -Wl,-wrap,ferror -Wl,-wrap,fflush -Wl,-wrap,fgetc -Wl,-wrap,fgetpos -Wl,-wrap,fgetpos64 -Wl,-wrap,fgets -Wl,-wrap,fileno -Wl,-wrap,flockfile -Wl,-wrap,fopen -Wl,-wrap,fopen64 -Wl,-wrap,fprintf -Wl,-wrap,fputc -Wl,-wrap,fputs -Wl,-wrap,fread -Wl,-wrap,free -Wl,-wrap,freopen -Wl,-wrap,fseek -Wl,-wrap,fseeko64 -Wl,-wrap,fsetpos -Wl,-wrap,fsetpos64 -Wl,-wrap,fstat -Wl,-wrap,ftell -Wl,-wrap,ftello64 -Wl,-wrap,ftrylockfile -Wl,-wrap,funlockfile -Wl,-wrap,fwrite -Wl,-wrap,getc -Wl,-wrap,getc_unlocked -Wl,-wrap,getmntent -Wl,-wrap,ioctl -Wl,-wrap,lseek -Wl,-wrap,lseek64 -Wl,-wrap,malloc -Wl,-wrap,open -Wl,-wrap,open64 -Wl,-wrap,opendir -Wl,-wrap,popen -Wl,-wrap,printf -Wl,-wrap,read -Wl,-wrap,readdir -Wl,-wrap,readdir64 -Wl,-wrap,realloc -Wl,-wrap,rewind -Wl,-wrap,rewinddir -Wl,-wrap,setvbuf -Wl,-wrap,ungetc -Wl,-wrap,vfprintf -Wl,-wrap,write") ++ ++set(PLEX_LINK_WHOLEARCHIVE -Wl,--whole-archive) ++set(PLEX_LINK_NOWHOLEARCHIVE -Wl,--no-whole-archive) ++ ++############ Add our definitions ++add_definitions(-DTARGET_FREEBSD) Added: head/multimedia/plexhometheater/files/patch-plex__CMakeModules__PlatformConfigPOSIX.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__CMakeModules__PlatformConfigPOSIX.cmake Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,16 @@ +--- plex/CMakeModules/PlatformConfigPOSIX.cmake.orig 2014-05-23 21:04:41.000000000 +0800 ++++ plex/CMakeModules/PlatformConfigPOSIX.cmake 2014-06-02 15:53:40.122706444 +0800 +@@ -38,7 +38,12 @@ + endif(TARGET_RPI) + + ############ Check for pthread_setname -> HAVE_PTHREAD_SETNAME_NP +-set(HAVE_PTHREAD_SETNAME_NP 1) ++if(TARGET_FREEBSD) ++ set(HAVE_PTHREAD_SET_NAME_NP 1) ++else() ++ set(HAVE_PTHREAD_SETNAME_NP 1) ++endif() ++ + if(NOT TARGET_RPI) + set(HAS_SDL_JOYSTICK 1) + endif() Added: head/multimedia/plexhometheater/files/patch-plex__Network__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__Network__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,11 @@ +--- plex/Network/CMakeLists.txt.orig 2014-05-23 21:04:41.000000000 +0800 ++++ plex/Network/CMakeLists.txt 2014-06-03 21:55:44.441297028 +0800 +@@ -1,6 +1,8 @@ + set(net_SRCS NetworkInterface.cpp NetworkInterface.h NetworkServiceAdvertiser.h NetworkServiceAdvertiserPMS.h NetworkServiceBase.h NetworkServiceBrowser.h NetworkService.h PlexNetworkServiceAdvertiser.h) + if(TARGET_COMMON_LINUX) + list(APPEND net_SRCS NetworkInterfaceLinux.cpp) ++elseif(TARGET_FREEBSD) ++ list(APPEND net_SRCS NetworkInterfaceBSD.cpp) + else(TARGET_COMMON_LINUX) + list(APPEND net_SRCS NetworkInterfaceWin32.cpp) + endif(TARGET_COMMON_LINUX) Added: head/multimedia/plexhometheater/files/patch-plex__Network__NetworkInterfaceBSD.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__Network__NetworkInterfaceBSD.cpp Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,174 @@ +--- plex/Network/NetworkInterfaceBSD.cpp.orig 2014-06-03 21:57:00.010307063 +0800 ++++ plex/Network/NetworkInterfaceBSD.cpp 2014-06-11 17:21:16.027299183 +0800 +@@ -0,0 +1,171 @@ ++/* ++ * Written and (c) 2014 by Ben Woods ++ * Licensed under the two-clause (new) BSD license. ++ * Some code copied from Matthias Andree's try-rtsock.c: ++ * http://people.freebsd.org/~mandree/try-rtsock.c ++ */ ++ ++#ifdef __FreeBSD__ ++#include ++ ++#include ++#include ++#include ++#include ++ ++// only for decoding AF_LINK addresses: ++#include ++ ++#include ++ ++#include ++ ++#include ++#include ++ ++#include "NetworkInterface.h" ++ ++using namespace boost; ++ ++/////////////////////////////////////////////////////////////////////////////////////////////////// ++// Message agnostic receive buffer ++union u { ++ char buf[1024]; ++ struct if_msghdr ifm; ++ struct ifa_msghdr ifam; ++ struct if_announcemsghdr ifann; ++}; ++ ++/////////////////////////////////////////////////////////////////////////////////////////////////// ++static void PrintRouteMsg(const union u *buff, size_t len) ++{ ++ dprintf("NetworkInterface: PF_ROUTE socket received message. Version %d, Type %#x, Len %d.", buff->ifm.ifm_version, buff->ifm.ifm_type, buff->ifm.ifm_msglen); ++ ++ switch (buff->ifm.ifm_type) ++ { ++ case RTM_NEWADDR: ++ case RTM_DELADDR: ++ dprintf("NetworkInterface: ##%s## - Addrmask %#x, Flags %#x, Index %hu, Metric %d", ++ buff->ifm.ifm_type == RTM_NEWADDR ? " NEW ADDRESS " : " DELETE ADDR ", ++ buff->ifam.ifam_addrs, ++ buff->ifam.ifam_flags, ++ buff->ifam.ifam_index, ++ buff->ifam.ifam_metric); ++ break; ++ ++ case RTM_IFINFO: ++ dprintf(" INFO - Addrmask %#x, Index %hu, Flags %#x:", ++ buff->ifm.ifm_addrs, buff->ifm.ifm_index, buff->ifm.ifm_flags); ++ switch (buff->ifm.ifm_flags) ++ { ++ case IFF_UP: dprintf("UP"); break; ++ case IFF_BROADCAST: dprintf("bcast_valid"); break; ++ case IFF_LOOPBACK: dprintf("loopback"); break; ++ case IFF_POINTOPOINT: dprintf("P2P"); break; ++ case IFF_DRV_RUNNING: dprintf("running"); break; ++ case IFF_NOARP: dprintf("noARP"); break; ++ case IFF_PROMISC: dprintf("promisc"); break; ++ case IFF_DYING: dprintf("dying"); break; ++ case IFF_RENAMING: dprintf("renaming"); break; ++ } ++ ++ case RTM_IFANNOUNCE: ++ dprintf(" ANNOUNCE iface %.*s index %hu", ++ IFNAMSIZ, buff->ifann.ifan_name, buff->ifann.ifan_index); ++ switch(buff->ifann.ifan_what) ++ { ++ case IFAN_ARRIVAL: dprintf(" ARRIVED"); break; ++ case IFAN_DEPARTURE: dprintf(" DEPARTED"); break; ++ default: dprintf("Unknown action %hu", buff->ifann.ifan_what); ++ } ++ break; ++ } ++} ++ ++/////////////////////////////////////////////////////////////////////////////////////////////////// ++void NetworkChanged() ++{ ++ dprintf("Network change."); ++ NetworkInterface::NotifyOfNetworkChange(); ++} ++ ++/////////////////////////////////////////////////////////////////////////////////////////////////// ++void RunWatchingForChanges() ++{ ++ dprintf("NetworkInterface: Watching for changes on the interfaces."); ++ ++ // Create the socket that's going to watch for interface changes, and make it non-blocking. ++ int sock = socket(PF_ROUTE, SOCK_RAW, AF_UNSPEC); /* AF_UNSPEC: all addr families */ ++ if (sock == -1) ++ eprintf("Error creating PF_ROUTE socket: %d", errno); ++ ++ // Add socket to null initialised file descriptor set ++ fd_set fds; ++ FD_ZERO(&fds); ++ FD_SET(sock, &fds); ++ ++ // Now sit in a loop waiting for messages. ++ int ret1; ++ while ((ret1 = select(sock+1, &fds, 0, 0, 0)), 1) ++ { ++ if (ret1 == -1) ++ { ++ eprintf("NetworkInterface: PF_ROUTE socket select error (%d).", errno); ++ continue; ++ } ++ ++ // Message waiting ++ if (ret1 > 0 && FD_ISSET(sock, &fds)) ++ { ++ // Setup message agnostic receive buffer ++ union u buff; ++ buff.ifm.ifm_msglen = 4; ++ ++ // Receive messages into buffer ++ int ret2 = recv(sock, &buff, sizeof(buff), 0); ++ if (ret2 == -1) ++ { ++ eprintf("NetworkInterface: PF_ROUTE socket receive error (%d).", errno); ++ continue; ++ } ++ ++ // Read through messages and determine if any indicate that any interface records should be rebuilt. ++ if (ret2 < 4 || ret2 < buff.ifm.ifm_msglen) ++ { ++ eprintf("NetworkInterface: PF_ROUTE socket short read (have %d want %hu), skipping.", ret2, buff.ifm.ifm_msglen); ++ continue; ++ } ++ ++ if (buff.ifm.ifm_version != RTM_VERSION) ++ { ++ eprintf("NetworkInterface: PF_ROUTE socket unknown message version %d, skipping.", buff.ifm.ifm_version); ++ continue; ++ } ++ ++ // Dump the message. ++ PrintRouteMsg(&buff, ret2); ++ ++ // See if something notable changed. ++ if (buff.ifm.ifm_type == RTM_IFINFO || buff.ifm.ifm_type == RTM_IFANNOUNCE || ++ buff.ifm.ifm_type == RTM_DELADDR || buff.ifm.ifm_type == RTM_NEWADDR) ++ { ++ // Notify about it. ++ NetworkChanged(); ++ } ++ } ++ } ++} ++ ++/////////////////////////////////////////////////////////////////////////////////////////////////// ++void NetworkInterface::WatchForChanges() ++{ ++ // Start the thread. ++ dprintf("NetworkInterface: Starting watch thread."); ++ thread t = thread(boost::bind(&RunWatchingForChanges)); ++ t.detach(); ++ ++ // Start with a change, because otherwise we're in steady state. ++ NetworkChanged(); ++} ++ ++#endif Added: head/multimedia/plexhometheater/files/patch-plex__config.h.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-plex__config.h.in Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,10 @@ +--- plex/config.h.in.orig 2014-05-23 13:04:41.000000000 +0000 ++++ plex/config.h.in 2014-06-18 14:26:03.855461867 +0000 +@@ -173,6 +173,7 @@ + #cmakedefine HAVE_LIBPYTHON2_6 @HAVE_LIBPYTHON2_6@ + #cmakedefine HAS_PYTHON @HAS_PYTHON@ + #cmakedefine HAVE_PTHREAD_SETNAME_NP @HAVE_PTHREAD_SETNAME_NP@ ++#cmakedefine HAVE_PTHREAD_SET_NAME_NP @HAVE_PTHREAD_SET_NAME_NP@ + + /* LIBSHAIRPORT */ + #cmakedefine HAVE_STRUCT_AUDIOOUTPUT_AO_SET_METADATA @HAVE_STRUCT_AUDIOOUTPUT_AO_SET_METADATA@ Added: head/multimedia/plexhometheater/files/patch-xbmc__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-xbmc__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,13 @@ +--- xbmc/CMakeLists.txt.orig 2014-08-05 20:17:14.627532749 +0800 ++++ xbmc/CMakeLists.txt 2014-08-05 20:17:45.319521746 +0800 +@@ -10,6 +10,10 @@ + list(APPEND subdirs linux) + endif(TARGET_POSIX) + ++if(TARGET_FREEBSD) ++ list(APPEND subdirs freebsd) ++endif(TARGET_FREEBSD) ++ + if(TARGET_WIN32) + list(APPEND subdirs win32) + endif(TARGET_WIN32) Added: head/multimedia/plexhometheater/files/patch-xbmc__cdrip__EncoderFFmpeg.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-xbmc__cdrip__EncoderFFmpeg.cpp Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,16 @@ +--- xbmc/cdrip/EncoderFFmpeg.cpp.orig 2013-02-06 19:11:19.000000000 +0100 ++++ xbmc/cdrip/EncoderFFmpeg.cpp 2013-02-06 19:11:45.000000000 +0100 +@@ -77,7 +77,13 @@ + } + + m_Format = m_dllAvFormat.avformat_alloc_context(); ++#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,1,0) + m_Format->pb = m_dllAvFormat.avio_alloc_context(m_BCBuffer, sizeof(m_BCBuffer), AVIO_FLAG_READ, this, NULL, MuxerReadPacket, NULL); ++#elif LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,0,0) ++ m_Format->pb = m_dllAvFormat.avio_alloc_context(m_BCBuffer, sizeof(m_BCBuffer), AVIO_RDONLY, this, NULL, MuxerReadPacket, NULL); ++#else ++ m_Format->pb = m_dllAvFormat.avio_alloc_context(m_BCBuffer, sizeof(m_BCBuffer), URL_RDONLY, this, NULL, MuxerReadPacket, NULL); ++#endif + if (!m_Format->pb) + { + m_dllAvUtil.av_freep(&m_Format); Added: head/multimedia/plexhometheater/files/patch-xbmc__cores__AudioEngine__Engines__SoftAE__SoftAE.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-xbmc__cores__AudioEngine__Engines__SoftAE__SoftAE.cpp Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,13 @@ +diff --git xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp +index bd01a67..49edfee 100644 +--- xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp ++++ xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp +@@ -303,7 +303,7 @@ void CSoftAE::InternalOpenSink() + + /* perform basic sanity checks on the format returned by the sink */ + ASSERT(newFormat.m_channelLayout.Count() > 0); +- ASSERT(newFormat.m_dataFormat <= AE_FMT_FLOAT); ++ ASSERT(newFormat.m_dataFormat <= AE_FMT_MAX); + ASSERT(newFormat.m_frames > 0); + ASSERT(newFormat.m_frameSamples > 0); + ASSERT(newFormat.m_frameSize == (CAEUtil::DataFormatToBits(newFormat.m_dataFormat) >> 3) * newFormat.m_channelLayout.Count()); Added: head/multimedia/plexhometheater/files/patch-xbmc__cores__AudioEngine__Sinks__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-xbmc__cores__AudioEngine__Sinks__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,13 @@ +--- ./xbmc/cores/AudioEngine/Sinks/CMakeLists.txt.orig 2014-06-02 10:54:42.814711159 +0800 ++++ ./xbmc/cores/AudioEngine/Sinks/CMakeLists.txt 2014-06-02 10:55:26.844707184 +0800 +@@ -8,8 +8,8 @@ + set(ae_SRCS ${ae_SRCS} AESinkWASAPI.cpp AESinkWASAPI.h AESinkDirectSound.cpp AESinkDirectSound.h) + endif(TARGET_WIN32) + +-if(TARGET_COMMON_LINUX) ++if(TARGET_COMMON_LINUX OR TARGET_FREEBSD) + set(ae_SRCS ${ae_SRCS} AESinkOSS.cpp AESinkOSS.h) +-endif(TARGET_COMMON_LINUX) ++endif(TARGET_COMMON_LINUX OR TARGET_FREEBSD) + + add_sources(${ae_SRCS}) Added: head/multimedia/plexhometheater/files/patch-xbmc__cores__DllLoader__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-xbmc__cores__DllLoader__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,18 @@ +--- xbmc/cores/DllLoader/CMakeLists.txt.orig 2014-07-31 22:37:29.000000000 +0800 ++++ xbmc/cores/DllLoader/CMakeLists.txt 2014-08-05 19:51:50.258522209 +0800 +@@ -4,10 +4,15 @@ + list(REMOVE_ITEM dllloader_SRCS ./DllLoader-linux.cpp) + if(UNIX) + list(REMOVE_ITEM dllloader_SRCS ./Win32DllLoader.cpp) ++ list(REMOVE_ITEM dllloader_SRCS ./Win32DllLoader.h) + else() + list(REMOVE_ITEM dllloader_SRCS ./DllLoader-linux.cpp) + list(REMOVE_ITEM dllloader_SRCS ./ldt_keeper.c) + list(REMOVE_ITEM dllloader_SRCS ./mmap_anon.c) + list(REMOVE_ITEM dllloader_SRCS ./SoLoader.cpp) + endif() ++if(TARGET_FREEBSD) ++ list(REMOVE_ITEM dllloader_SRCS ./ldt_keeper.c) ++ list(REMOVE_ITEM dllloader_SRCS ./ldt_keeper.h) ++endif() + add_sources(${dllloader_SRCS}) Added: head/multimedia/plexhometheater/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/plexhometheater/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__CMakeLists.txt Thu Aug 21 16:55:55 2014 (r365568) @@ -0,0 +1,15 @@ +--- ./xbmc/cores/dvdplayer/DVDCodecs/Video/CMakeLists.txt.orig 2014-06-02 09:54:40.766706418 +0800 ++++ ./xbmc/cores/dvdplayer/DVDCodecs/Video/CMakeLists.txt 2014-06-02 09:59:13.577706588 +0800 +@@ -8,9 +8,9 @@ + list(REMOVE_ITEM video_SRCS ./DXVA.cpp) + endif() + +-if (NOT TARGET_LINUX) ++if (NOT TARGET_LINUX AND NOT TARGET_FREEBSD) + list(REMOVE_ITEM video_SRCS ./VDPAU.cpp) + list(REMOVE_ITEM video_SRCS ./VAAPI.cpp) + endif() + +-add_sources(${video_SRCS}) +\ No newline at end of file *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***