Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Aug 2014 16:55:56 +0000 (UTC)
From:      Adam Weinberger <adamw@FreeBSD.org>
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
Message-ID:  <201408211655.s7LGtuGD068859@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <bsd.port.pre.mk>
+
+.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 <bsd.port.post.mk>

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 <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> ${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 <netinet/in.h>
++
++#include <sys/socket.h>
++#include <sys/select.h>
++#include <net/if.h>
++#include <net/route.h>
++
++// only for decoding AF_LINK addresses:
++#include <net/if_dl.h>
++
++#include <netdb.h>
++
++#include <string.h>
++
++#include <boost/asio.hpp>
++#include <boost/thread.hpp>
++
++#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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408211655.s7LGtuGD068859>