From: Bernd Kuhls Date: Tue, 23 Dec 2014 17:46:27 +0000 (+0100) Subject: package/xbmc: rename to 'kodi', the new upstream project name X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3578459748d80cd469729319543b199380a4370f;p=buildroot.git package/xbmc: rename to 'kodi', the new upstream project name Background information: http://xbmc.org/introducing-kodi-14. In a first step to bump version to 14.0-Helix, we move the xbmc package to a new directory called kodi. Appropriate Config.in.legacy variables are added. [Thomas: rename patches to the new convention.] Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- diff --git a/Config.in.legacy b/Config.in.legacy index a969662f61..a4b5ad87a4 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -102,6 +102,125 @@ endif comment "Legacy options removed in 2015.02" +config BR2_PACKAGE_XBMC + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_ALSA_LIB + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_ALSA_LIB + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_AVAHI + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_AVAHI + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_DBUS + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_DBUS + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBBLURAY + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBBLURAY + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_GOOM + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_GOOM + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_RSXS + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_RSXS + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBCEC + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBCEC + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBMICROHTTPD + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBMICROHTTPD + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBNFS + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBNFS + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_RTMPDUMP + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_RTMPDUMP + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBSHAIRPLAY + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBSHAIRPLAY + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBSMBCLIENT + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBSMBCLIENT + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBTHEORA + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBTHEORA + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBUSB + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBUSB + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_LIBVA + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_LIBVA + help + The XBMC media center project was renamed to Kodi entertainment center + +config BR2_PACKAGE_XBMC_WAVPACK + bool "xbmc options have been renamed" + select BR2_LEGACY + select BR2_PACKAGE_KODI_WAVPACK + help + The XBMC media center project was renamed to Kodi entertainment center + config BR2_PREFER_STATIC_LIB bool "static library option renamed" select BR2_LEGACY @@ -114,6 +233,7 @@ config BR2_PREFER_STATIC_LIB Take care of updating the type of libraries you want under the "Build options" menu. +############################################################################### comment "Legacy options removed in 2014.11" config BR2_x86_generic diff --git a/package/Config.in b/package/Config.in index e2b73ddf53..3b37bb26c3 100644 --- a/package/Config.in +++ b/package/Config.in @@ -14,6 +14,7 @@ menu "Audio and video applications" source "package/gstreamer/Config.in" source "package/gstreamer1/Config.in" source "package/jack2/Config.in" + source "package/kodi/Config.in" source "package/lame/Config.in" source "package/libvpx/Config.in" source "package/madplay/Config.in" @@ -34,7 +35,6 @@ menu "Audio and video applications" source "package/vlc/Config.in" source "package/vorbis-tools/Config.in" source "package/wavpack/Config.in" - source "package/xbmc/Config.in" source "package/yavta/Config.in" source "package/ympd/Config.in" endmenu diff --git a/package/kodi/0001-Fixup-include-path.patch b/package/kodi/0001-Fixup-include-path.patch new file mode 100644 index 0000000000..be99bd6d50 --- /dev/null +++ b/package/kodi/0001-Fixup-include-path.patch @@ -0,0 +1,81 @@ +From 63c255f1f5d68363f49193aceed343e602dc8bdf Mon Sep 17 00:00:00 2001 +From: Maxime Hadjinlian +Date: Thu, 26 Dec 2013 21:17:10 +0100 +Subject: [PATCH] Fixup include path + +Patch originally taken from : +http://repository.timesys.com/buildsources/x/xbmc/xbmc-11.0/xbmc-11.0-fixups.patch + +Signed-off-by: Maxime Hadjinlian +--- + lib/enca/configure | 3 --- + lib/enca/configure.ac | 3 --- + lib/libdvd/libdvdread/misc/dvdread-config.sh | 6 +++--- + lib/timidity/configure.in | 6 +++--- + 4 files changed, 6 insertions(+), 12 deletions(-) + +diff --git a/lib/enca/configure b/lib/enca/configure +index c839a51..7af5a09 100644 +--- a/lib/enca/configure ++++ b/lib/enca/configure +@@ -12011,9 +12011,6 @@ fi + if test "$prefix" = "NONE"; then + LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib" + CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include" +-else +- LDFLAGS="$LDFLAGS -L$prefix/lib" +- CPPFLAGS="$CPPFLAGS -I$prefix/include" + fi + + +diff --git a/lib/enca/configure.ac b/lib/enca/configure.ac +index 41434df..47d5367 100644 +--- a/lib/enca/configure.ac ++++ b/lib/enca/configure.ac +@@ -100,9 +100,6 @@ dnl Dirty path hack. Helps some people with badly set up search paths. + if test "$prefix" = "NONE"; then + LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib" + CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include" +-else +- LDFLAGS="$LDFLAGS -L$prefix/lib" +- CPPFLAGS="$CPPFLAGS -I$prefix/include" + fi + + dnl Checks for libraries. +diff --git a/lib/libdvd/libdvdread/misc/dvdread-config.sh b/lib/libdvd/libdvdread/misc/dvdread-config.sh +index e170c7e..25ee893 100644 +--- a/lib/libdvd/libdvdread/misc/dvdread-config.sh ++++ b/lib/libdvd/libdvdread/misc/dvdread-config.sh +@@ -48,9 +48,9 @@ if test "$echo_prefix" = "yes"; then + fi + + if test "$echo_cflags" = "yes"; then +- echo -I$prefix/include $extracflags ++ echo $extracflags + fi + + if test "$echo_libs" = "yes"; then +- echo -L$libdir $dvdreadlib +-fi ++ echo $dvdreadlib ++fi +diff --git a/lib/timidity/configure.in b/lib/timidity/configure.in +index 9f2835b..733470a 100644 +--- a/lib/timidity/configure.in ++++ b/lib/timidity/configure.in +@@ -100,9 +100,9 @@ done + + # add $prefix if specified. + if test "x$prefix" != xNONE -a "x$prefix" != "x$ac_default_prefix" -a "x$prefix" != "x/usr"; then +- LDFLAGS="-L$prefix/lib $LDFLAGS" +- SHLDFLAGS="-L$prefix/lib $SHLDFLAGS" +- CPPFLAGS="-I$prefix/include $CPPFLAGS" ++ LDFLAGS="$LDFLAGS" ++ SHLDFLAGS="$SHLDFLAGS" ++ CPPFLAGS="$CPPFLAGS" + fi + + dnl add --with-includes, --with-libraries +-- +1.8.5.2 + diff --git a/package/kodi/0002-mathutil.patch b/package/kodi/0002-mathutil.patch new file mode 100644 index 0000000000..33f91eb38a --- /dev/null +++ b/package/kodi/0002-mathutil.patch @@ -0,0 +1,213 @@ +Taken from upstream PR: https://github.com/xbmc/xbmc/pull/3760 + +Signed-off-by: Bernd Kuhls + + +From 7388e8be7cd5e78100532ebf0dba15dccb7b03f8 Mon Sep 17 00:00:00 2001 +From: Ben Avison +Date: Tue, 3 Dec 2013 15:51:39 +0000 +Subject: [PATCH] Faster and simpler portable implementation of + MathUtils::round_int(). + +Much as I like a bit of inline assembler, I have also removed the ARM versions +of MathUtils::truncate_int() and MathUtils::round_int(). The former was just +how any sane compiler should have assembled a cast from double to signed int +anyway. The latter was a much too complicated way to achieve the desired +effect, and was switched out in most ARM builds anyway in favour of the old +portable implementation that used floor(). + +Verified that MathUtils::test() still passes, and that GCC is now able to +inline MathUtils::round_int(), where it didn't previously. + +I tested on a Raspberry Pi with the default theme, displaying the front page +with the RSS ticker enabled. This saturates the CPU, so I'm measuring the +improvement using the debug window's FPS figure. This patch improves this from +~50.8 FPS to ~52.6 FPS. +--- + xbmc/utils/MathUtils.h | 129 +++++++++++++++++++++++-------------------------- + 1 file changed, 61 insertions(+), 68 deletions(-) + +diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h +index 96af9f4..0dae77d 100644 +--- a/xbmc/utils/MathUtils.h ++++ b/xbmc/utils/MathUtils.h +@@ -34,17 +34,13 @@ + + #if defined(__ppc__) || \ + defined(__powerpc__) || \ +- (defined(TARGET_DARWIN_IOS) && defined(__llvm__)) || \ +- (defined(TARGET_ANDROID) && defined(__arm__)) || \ +- defined(TARGET_RASPBERRY_PI) ++ defined(__arm__) + #define DISABLE_MATHUTILS_ASM_ROUND_INT + #endif + + #if defined(__ppc__) || \ + defined(__powerpc__) || \ +- (defined(TARGET_DARWIN) && defined(__llvm__)) || \ +- (defined(TARGET_ANDROID) && defined(__arm__)) || \ +- defined(TARGET_RASPBERRY_PI) ++ defined(__arm__) + #define DISABLE_MATHUTILS_ASM_TRUNCATE_INT + #endif + +@@ -73,60 +69,63 @@ + { + assert(x > static_cast(INT_MIN / 2) - 1.0); + assert(x < static_cast(INT_MAX / 2) + 1.0); +- const float round_to_nearest = 0.5f; +- int i; + + #if defined(DISABLE_MATHUTILS_ASM_ROUND_INT) +- i = floor(x + round_to_nearest); +- +-#elif defined(__arm__) +- // From 'ARM-v7-M Architecture Reference Manual' page A7-569: +- // "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode" +- // Because of this...we must use some less-than-straightforward logic to perform this operation without +- // changing the rounding mode flags +- +- /* The assembly below implements the following logic: +- if (x < 0) +- inc = -0.5f +- else +- inc = 0.5f +- int_val = trunc(x+inc); +- err = x - int_val; +- if (err == 0.5f) +- int_val++; +- return int_val; +- */ ++ /* This implementation warrants some further explanation. ++ * ++ * First, a couple of notes on rounding: ++ * 1) C casts from float/double to integer round towards zero. ++ * 2) Float/double additions are rounded according to the normal rules, ++ * in other words: on some architectures, it's fixed at compile-time, ++ * and on others it can be set using fesetround()). The following ++ * analysis assumes round-to-nearest with ties rounding to even. This ++ * is a fairly sensible choice, and is the default with ARM VFP. ++ * ++ * What this function wants is round-to-nearest with ties rounding to ++ * +infinity. This isn't an IEEE rounding mode, even if we could guarantee ++ * that all architectures supported fesetround(), which they don't. Instead, ++ * this adds an offset of 2147483648.5 (= 0x80000000.8p0), then casts to ++ * an unsigned int (crucially, all possible inputs are now in a range where ++ * round to zero acts the same as round to -infinity) and then subtracts ++ * 0x80000000 in the integer domain. The 0.5 component of the offset ++ * converts what is effectively a round down into a round to nearest, with ++ * ties rounding up, as desired. ++ * ++ * There is a catch, that because there is a double rounding, there is a ++ * small region where the input falls just *below* a tie, where the addition ++ * of the offset causes a round *up* to an exact integer, due to the finite ++ * level of precision available in floating point. You need to be aware of ++ * this when calling this function, although at present it is not believed ++ * that XBMC ever attempts to round numbers in this window. ++ * ++ * It is worth proving the size of the affected window. Recall that double ++ * precision employs a mantissa of 52 bits. ++ * 1) For all inputs -0.5 <= x <= INT_MAX ++ * Once the offset is applied, the most significant binary digit in the ++ * floating-point representation is +2^31. ++ * At this magnitude, the smallest step representable in double precision ++ * is 2^31 / 2^52 = 0.000000476837158203125 ++ * So the size of the range which is rounded up due to the addition is ++ * half the size of this step, or 0.0000002384185791015625 ++ * ++ * 2) For all inputs INT_MIN/2 < x < -0.5 ++ * Once the offset is applied, the most significant binary digit in the ++ * floating-point representation is +2^30. ++ * At this magnitude, the smallest step representable in double precision ++ * is 2^30 / 2^52 = 0.0000002384185791015625 ++ * So the size of the range which is rounded up due to the addition is ++ * half the size of this step, or 0.00000011920928955078125 ++ * ++ * 3) For all inputs INT_MIN <= x <= INT_MIN/2 ++ * The representation once the offset is applied has equal or greater ++ * precision than the input, so the addition does not cause rounding. ++ */ ++ return ((unsigned int) (x + 0x80000000.8p0)) - 0x80000000; + +- __asm__ __volatile__ ( +-#if defined(__ARM_PCS_VFP) +- "fconstd d1,#%G[rnd_val] \n\t" // Copy round_to_nearest into a working register (d1 = 0.5) + #else +- "vmov.F64 d1,%[rnd_val] \n\t" +-#endif +- "fcmpezd %P[value] \n\t" // Check value against zero (value == 0?) +- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags +- "it mi \n\t" +- "vnegmi.F64 d1, d1 \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1) +- "vadd.F64 d1,%P[value],d1 \n\t" // Add round_to_nearest to value, store result in working register (d1 += value) +- "vcvt.S32.F64 s3,d1 \n\t" // Truncate(round towards zero) (s3 = (int)d1) +- "vmov %[result],s3 \n\t" // Store the integer result in a general-purpose register (result = s3) +- "vcvt.F64.S32 d1,s3 \n\t" // Convert back to floating-point (d1 = (double)s3) +- "vsub.F64 d1,%P[value],d1 \n\t" // Calculate the error (d1 = value - d1) +-#if defined(__ARM_PCS_VFP) +- "fconstd d2,#%G[rnd_val] \n\t" // d2 = 0.5; +-#else +- "vmov.F64 d2,%[rnd_val] \n\t" +-#endif +- "fcmped d1, d2 \n\t" // (d1 == 0.5?) +- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags +- "it eq \n\t" +- "addeq %[result],#1 \n\t" // (if (d1 == d2) result++;) +- : [result] "=r"(i) // Outputs +- : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs +- : "d1", "d2", "s3" // Clobbers +- ); +- +-#elif defined(__SSE2__) ++ const float round_to_nearest = 0.5f; ++ int i; ++#if defined(__SSE2__) + const float round_dn_to_nearest = 0.4999999f; + i = (x > 0) ? _mm_cvttsd_si32(_mm_set_sd(x + round_to_nearest)) : _mm_cvttsd_si32(_mm_set_sd(x - round_dn_to_nearest)); + +@@ -150,8 +149,8 @@ + ); + + #endif +- + return i; ++#endif + } + + /*! \brief Truncate to nearest integer. +@@ -165,20 +164,13 @@ + { + assert(x > static_cast(INT_MIN / 2) - 1.0); + assert(x < static_cast(INT_MAX / 2) + 1.0); +- int i; + + #if defined(DISABLE_MATHUTILS_ASM_TRUNCATE_INT) +- return i = (int)x; +- +-#elif defined(__arm__) +- __asm__ __volatile__ ( +- "vcvt.S32.F64 %[result],%P[value] \n\t" // Truncate(round towards zero) and store the result +- : [result] "=w"(i) // Outputs +- : [value] "w"(x) // Inputs +- ); +- return i; ++ return x; + +-#elif defined(TARGET_WINDOWS) ++#else ++ int i; ++#if defined(TARGET_WINDOWS) + const float round_towards_m_i = -0.5f; + __asm + { +@@ -204,6 +196,7 @@ + if (x < 0) + i = -i; + return (i); ++#endif + } + + inline int64_t abs(int64_t a) +-- +1.9.1 + diff --git a/package/kodi/0003-dbus.patch b/package/kodi/0003-dbus.patch new file mode 100644 index 0000000000..3b63b23b77 --- /dev/null +++ b/package/kodi/0003-dbus.patch @@ -0,0 +1,46 @@ +build: make D-Bus configurable + +Patch accepted upstream: +https://github.com/xbmc/xbmc/commit/630f930d4c9c33230e9ff7df24f93afb3f05881f + +Signed-off-by: Bernd Kuhls + +diff -uNr xbmc-13.2-Gotham.org/configure.in xbmc-13.2-Gotham/configure.in +--- xbmc-13.2-Gotham.org/configure.in 2014-08-17 15:19:05.000000000 +0200 ++++ xbmc-13.2-Gotham/configure.in 2014-09-02 20:55:06.932442467 +0200 +@@ -129,6 +129,7 @@ + goom_enabled="== GOOM enabled. ==" + goom_disabled="== GOOM disabled. ==" + alsa_disabled="== ALSA support disabled. ==" ++dbus_disabled="== DBUS support disabled. ==" + rsxs_enabled="== RSXS enabled. ==" + rsxs_disabled="== RSXS disabled. ==" + fishbmc_enabled="== FishBMC enabled. ==" +@@ -369,6 +370,12 @@ + [use_alsa=$enableval], + [use_alsa=yes]) + ++AC_ARG_ENABLE([dbus], ++ [AS_HELP_STRING([--disable-dbus], ++ [disable DBUS support])], ++ [use_dbus=$enableval], ++ [use_dbus=yes]) ++ + AC_ARG_ENABLE([pulse], + [AS_HELP_STRING([--enable-pulse], + [enable PulseAudio support (default is auto)])], +@@ -1253,10 +1260,14 @@ + [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes], + AC_MSG_NOTICE($alsa_not_found); use_alsa=no) + fi ++if test "x$use_dbus" != "xno"; then + PKG_CHECK_MODULES([DBUS], [dbus-1], + [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \ + AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]), + AC_MSG_NOTICE($missing_library); use_dbus=no) ++else ++ AC_MSG_NOTICE($dbus_disabled) ++fi + if test "x$use_sdl" != "xno"; then + PKG_CHECK_MODULES([SDL], [sdl], + [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"], diff --git a/package/kodi/Config.in b/package/kodi/Config.in new file mode 100644 index 0000000000..1b0651213a --- /dev/null +++ b/package/kodi/Config.in @@ -0,0 +1,241 @@ +config BR2_PACKAGE_KODI_ARCH_SUPPORTS + bool + default y if BR2_arm || BR2_i386 || BR2_x86_64 + +comment "kodi needs a toolchain w/ C++, IPv6, largefile, threads, wchar" + depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS + depends on !BR2_INET_IPV6 || !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR + depends on BR2_USE_MMU + +config BR2_PACKAGE_KODI_EGL_GLES + bool + default y + depends on BR2_PACKAGE_HAS_LIBEGL + depends on BR2_PACKAGE_HAS_LIBGLES + depends on !BR2_PACKAGE_KODI_GL # prefer GL if available + +config BR2_PACKAGE_KODI_GL + bool + default y + depends on BR2_PACKAGE_HAS_LIBGL + depends on !BR2_arm # kodi needs egl/gles on arm + +comment "kodi needs an OpenGL or an openGL ES and EGL backend" + depends on BR2_i386 || BR2_x86_64 + depends on !BR2_PACKAGE_KODI_GL && !BR2_PACKAGE_KODI_EGL_GLES + +comment "kodi requires an OpenGL ES and EGL backend" + depends on BR2_arm + depends on !BR2_PACKAGE_KODI_EGL_GLES + +menuconfig BR2_PACKAGE_KODI + bool "kodi" + select BR2_NEEDS_HOST_JAVA + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_THREAD + select BR2_PACKAGE_BZIP2 + select BR2_PACKAGE_EXPAT + select BR2_PACKAGE_FLAC + select BR2_PACKAGE_FONTCONFIG + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_JASPER + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBASS + select BR2_PACKAGE_LIBCDIO + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_LIBFRIBIDI + select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_KODI_GL + select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_KODI_GL + select BR2_PACKAGE_LIBGCRYPT + select BR2_PACKAGE_LIBID3TAG + select BR2_PACKAGE_LIBMAD + select BR2_PACKAGE_LIBMODPLUG + select BR2_PACKAGE_LIBMPEG2 + select BR2_PACKAGE_LIBOGG + select BR2_PACKAGE_LIBPLIST + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_LIBSAMPLERATE + select BR2_PACKAGE_LIBUNGIF + select BR2_PACKAGE_LIBVORBIS + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_LIBXSLT + select BR2_PACKAGE_LZO + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PCRE + select BR2_PACKAGE_PCRE_UCP + select BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON_BSDDB + select BR2_PACKAGE_PYTHON_BZIP2 + select BR2_PACKAGE_PYTHON_CURSES + select BR2_PACKAGE_PYTHON_PYEXPAT + select BR2_PACKAGE_PYTHON_READLINE + select BR2_PACKAGE_PYTHON_SQLITE + select BR2_PACKAGE_PYTHON_SSL + select BR2_PACKAGE_PYTHON_UNICODEDATA + select BR2_PACKAGE_PYTHON_ZLIB + select BR2_PACKAGE_READLINE + select BR2_PACKAGE_SDL if BR2_PACKAGE_KODI_GL + select BR2_PACKAGE_SDL_X11 if BR2_PACKAGE_KODI_GL + select BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_KODI_GL + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_TAGLIB + select BR2_PACKAGE_TIFF + select BR2_PACKAGE_TINYXML + select BR2_PACKAGE_XLIB_XMU if BR2_PACKAGE_KODI_GL # needed by rsxs screensaver + select BR2_PACKAGE_XLIB_XRANDR if BR2_PACKAGE_KODI_GL + select BR2_PACKAGE_XLIB_XT if BR2_PACKAGE_KODI_GL # needed by rsxs screensaver + select BR2_PACKAGE_YAJL + select BR2_PACKAGE_ZLIB + depends on BR2_INET_IPV6 + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_LARGEFILE + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL + depends on BR2_USE_MMU # python + depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS + help + Kodi is an award-winning free and open source (GPL) software + media player and entertainment hub for digital media. + + http://kodi.tv + +if BR2_PACKAGE_KODI + +config BR2_PACKAGE_KODI_ALSA_LIB + bool "alsa" + select BR2_PACKAGE_ALSA_LIB + help + Enable alsa support. + +config BR2_PACKAGE_KODI_AVAHI + bool "avahi" + depends on !BR2_STATIC_LIBS # avahi + select BR2_PACKAGE_AVAHI + select BR2_PACKAGE_AVAHI_DAEMON + help + Enable Avahi support. + Select this if you want Kodi to support Bonjour protocol. + +config BR2_PACKAGE_KODI_DBUS + bool "dbus" + select BR2_PACKAGE_DBUS + help + Enable D-Bus support + +config BR2_PACKAGE_KODI_LIBBLURAY + bool "blu-ray" + select BR2_PACKAGE_LIBBLURAY + depends on !BR2_STATIC_LIBS + help + Enable Blu-ray input support. + Select this if you want to play back Blu-ray content. + +comment "libbluray support needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + +config BR2_PACKAGE_KODI_GOOM + bool "goom screensaver" + depends on BR2_PACKAGE_KODI_GL + help + Enable goom screensaver + +comment "goom needs an OpenGL backend" + depends on !BR2_PACKAGE_KODI_GL + +config BR2_PACKAGE_KODI_RSXS + bool "rsxs screensaver" + depends on BR2_PACKAGE_KODI_GL + help + Enable goom screensaver + +comment "rsxs needs an OpenGL backend" + depends on !BR2_PACKAGE_KODI_GL + +config BR2_PACKAGE_KODI_LIBCEC + bool "hdmi cec" + depends on !BR2_STATIC_LIBS # libcec + depends on BR2_PACKAGE_HAS_UDEV + select BR2_PACKAGE_LIBCEC + help + Enable CEC (Consumer Electronics Control) support. + Select this if you want Kodi to support HDMI CEC. + +comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS || !BR2_PACKAGE_HAS_UDEV + +config BR2_PACKAGE_KODI_LIBMICROHTTPD + bool "web server" + select BR2_PACKAGE_LIBMICROHTTPD + help + Enable webserver feature + +config BR2_PACKAGE_KODI_LIBNFS + bool "nfs" + depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_PACKAGE_LIBNFS + help + Enable NFS server support. + +comment "nfs support needs a toolchain w/ RPC support" + depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC + +config BR2_PACKAGE_KODI_RTMPDUMP + bool "rtmp" + select BR2_PACKAGE_RTMPDUMP + help + Enable RTMP input support. + Select this if you want to play back rtmp stream. + +config BR2_PACKAGE_KODI_LIBSHAIRPLAY + bool "shairport" + select BR2_PACKAGE_LIBSHAIRPLAY + help + Enable Shairport support. + Select this if you want to stream content from an Apple device. + +config BR2_PACKAGE_KODI_LIBSMBCLIENT + bool "samba" + select BR2_PACKAGE_SAMBA + select BR2_PACKAGE_SAMBA_LIBSMBCLIENT + help + Enable Samba support + +config BR2_PACKAGE_KODI_LIBTHEORA + bool "theora" + select BR2_PACKAGE_LIBTHEORA + help + Enable Theora input support. + Select this if you want to play back OGG/OGV files (Video). + +config BR2_PACKAGE_KODI_LIBUSB + bool "usb" + select BR2_PACKAGE_LIBUSB + select BR2_PACKAGE_LIBUSB_COMPAT + help + Enable libusb support. + +config BR2_PACKAGE_KODI_LIBVA + bool "va" + select BR2_PACKAGE_LIBVA + depends on !BR2_STATIC_LIBS + help + Enable libva support. + +comment "libva support needs toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + +config BR2_PACKAGE_KODI_WAVPACK + bool "wavpack" + select BR2_PACKAGE_WAVPACK + help + Enable WAV input support. + Select this if you want to play back WV files. + +comment "Kodi addons" + +source "package/xbmc-addon-xvdr/Config.in" +source "package/xbmc-pvr-addons/Config.in" + +endif # BR2_PACKAGE_KODI diff --git a/package/kodi/S50kodi b/package/kodi/S50kodi new file mode 100755 index 0000000000..3b0049f554 --- /dev/null +++ b/package/kodi/S50kodi @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Starts Kodi +# + +BIN=/usr/bin/br-kodi +KODI=/usr/lib/xbmc/xbmc.bin +KODI_ARGS="--standalone -fs -n" +PIDFILE=/var/run/kodi.pid + +start() { + echo -n "Starting Kodi: " + start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $KODI $KODI_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + echo -n "Stopping Kodi: " + start-stop-daemon -K -q -p $PIDFILE + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/package/kodi/br-kodi b/package/kodi/br-kodi new file mode 100755 index 0000000000..83d4d4e5ac --- /dev/null +++ b/package/kodi/br-kodi @@ -0,0 +1,36 @@ +#!/bin/sh + +# We're called with the real Kodi executable as +# first argument, followed by any Kodi extra args +KODI="${1}" +shift + +# In case someone asked we terminate, just kill +# the Kodi process +trap_kill() { + LOOP=0 + killall "${KODI##*/}" +} +trap trap_kill INT QUIT TERM + +LOOP=1 +while [ ${LOOP} -eq 1 ]; do + # Hack: BusyBox ash does not catch signals while a non-builtin + # is running, and only catches the signal when the non-builtin + # command ends. So, we just background the Kodi binary, and wait + # for it. But BusyBox' ash's wait builtin does not return the + # exit code even if there was only one job (which is correct + # for POSIX). So we explicitly wait for the Kodi job + "${KODI}" "${@}" & + wait %1 + ret=$? + case "${ret}" in + 0) ;; + 64) poweroff; LOOP=0;; + 66) reboot; LOOP=0;; + *) # Crash + sleep 1 + ;; + esac +done +exit ${ret} diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk new file mode 100644 index 0000000000..c462ab30da --- /dev/null +++ b/package/kodi/kodi.mk @@ -0,0 +1,260 @@ +################################################################################ +# +# kodi +# +################################################################################ + +KODI_VERSION = 13.2-Gotham +KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION)) +KODI_LICENSE = GPLv2 +KODI_LICENSE_FILES = LICENSE.GPL +# Kodi needs host-sdl_image (and therefore host-sdl) for a host tools it builds +# called TexturePacker. It is responsible to take all the images used in the +# GUI and pack them in a blob. +# http://wiki.xbmc.org/index.php?title=TexturePacker +KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo host-sdl_image host-swig +KODI_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \ + libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \ + libogg libplist libpng libsamplerate libungif libvorbis libxml2 libxslt lzo ncurses \ + openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib + +# kodi@i386 depends on nasm +KODI_DEPENDENCIES += $(if $(BR2_i386),host-nasm) + +# ffmpeg depends on yasm on MMX archs +# kodi configure passes $(BR2_ARCH) to ffmpeg configure which adds +# yasm as dependency for x86_64, even if BR2_x86_generic=y +ifneq ($(BR2_X86_CPU_HAS_MMX)$(BR2_x86_64),) +KODI_DEPENDENCIES += host-yasm +endif + +KODI_CONF_ENV = \ + PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \ + PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \ + PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)" \ + PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" \ + PYTHON_NOVERSIONCHECK="no-check" \ + use_texturepacker_native=yes \ + USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \ + TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" + +KODI_CONF_OPTS += \ + --with-arch=$(BR2_ARCH) \ + --disable-crystalhd \ + --disable-dvdcss \ + --disable-hal \ + --disable-joystick \ + --disable-mysql \ + --disable-openmax \ + --disable-optical-drive \ + --disable-projectm \ + --disable-pulse \ + --disable-ssh \ + --disable-vdpau \ + --disable-vtbdecoder \ + --enable-optimizations + +ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) +KODI_DEPENDENCIES += rpi-userland +KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer +KODI_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \ + -I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux" \ + LIBS="-lvcos -lvchostif" +endif + +ifeq ($(BR2_PACKAGE_LIBCAP),y) +KODI_CONF_OPTS += --enable-libcap +KODI_DEPENDENCIES += libcap +else +KODI_CONF_OPTS += --disable-libcap +endif + +ifeq ($(BR2_PACKAGE_KODI_DBUS),y) +KODI_DEPENDENCIES += dbus +KODI_CONF_OPTS += --enable-dbus +else +KODI_CONF_OPTS += --disable-dbus +endif + +ifeq ($(BR2_PACKAGE_KODI_ALSA_LIB),y) +KODI_DEPENDENCIES += alsa-lib +KODI_CONF_OPTS += --enable-alsa +else +KODI_CONF_OPTS += --disable-alsa +endif + +ifeq ($(BR2_PACKAGE_LAME),y) +KODI_DEPENDENCIES += lame +KODI_CONF_OPTS += --enable-libmp3lame +else +KODI_CONF_OPTS += --disable-libmp3lame +endif + +# quote from kodi/configure.in: "GLES overwrites GL if both set to yes." +# we choose the opposite because opengl offers more features, like libva support +ifeq ($(BR2_PACKAGE_KODI_GL),y) +KODI_DEPENDENCIES += libglew libglu libgl sdl_image xlib_libX11 xlib_libXext \ + xlib_libXmu xlib_libXrandr xlib_libXt +KODI_CONF_OPTS += --enable-gl --enable-sdl --enable-x11 --enable-xrandr --disable-gles +ifeq ($(BR2_PACKAGE_KODI_RSXS),y) +# fix rsxs compile +# make sure target libpng-config is used, options taken from rsxs-0.9/acinclude.m4 +KODI_CONF_ENV += \ + jm_cv_func_gettimeofday_clobber=no \ + mac_cv_pkg_png=$(STAGING_DIR)/usr/bin/libpng-config \ + mac_cv_pkg_cppflags="`$(STAGING_DIR)/usr/bin/libpng-config --I_opts --cppflags`" \ + mac_cv_pkg_cxxflags="`$(STAGING_DIR)/usr/bin/libpng-config --ccopts`" \ + mac_cv_pkg_ldflags="`$(STAGING_DIR)/usr/bin/libpng-config --L_opts --R_opts`" \ + mac_cv_pkg_libs="`$(STAGING_DIR)/usr/bin/libpng-config --libs`" +KODI_CONF_OPTS += --enable-rsxs +else +KODI_CONF_OPTS += --disable-rsxs +endif +else +KODI_CONF_OPTS += --disable-gl --disable-rsxs --disable-sdl --disable-x11 --disable-xrandr +ifeq ($(BR2_PACKAGE_KODI_EGL_GLES),y) +KODI_DEPENDENCIES += libegl libgles +KODI_CONF_OPTS += --enable-gles +else +KODI_CONF_OPTS += --disable-gles +endif +endif + +ifeq ($(BR2_PACKAGE_KODI_GOOM),y) +KODI_CONF_OPTS += --enable-goom +else +KODI_CONF_OPTS += --disable-goom +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y) +KODI_DEPENDENCIES += libusb-compat +KODI_CONF_OPTS += --enable-libusb +else +KODI_CONF_OPTS += --disable-libusb +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y) +KODI_DEPENDENCIES += libmicrohttpd +KODI_CONF_OPTS += --enable-webserver +else +KODI_CONF_OPTS += --disable-webserver +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBSMBCLIENT),y) +KODI_DEPENDENCIES += samba +KODI_CONF_OPTS += --enable-samba +else +KODI_CONF_OPTS += --disable-samba +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBNFS),y) +KODI_DEPENDENCIES += libnfs +KODI_CONF_OPTS += --enable-nfs +else +KODI_CONF_OPTS += --disable-nfs +endif + +ifeq ($(BR2_PACKAGE_KODI_RTMPDUMP),y) +KODI_DEPENDENCIES += rtmpdump +KODI_CONF_OPTS += --enable-rtmp +else +KODI_CONF_OPTS += --disable-rtmp +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBBLURAY),y) +KODI_DEPENDENCIES += libbluray +KODI_CONF_OPTS += --enable-libbluray +else +KODI_CONF_OPTS += --disable-libbluray +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBSHAIRPLAY),y) +KODI_DEPENDENCIES += libshairplay +KODI_CONF_OPTS += --enable-airplay +else +KODI_CONF_OPTS += --disable-airplay +endif + +ifeq ($(BR2_PACKAGE_KODI_AVAHI),y) +KODI_DEPENDENCIES += avahi +KODI_CONF_OPTS += --enable-avahi +else +KODI_CONF_OPTS += --disable-avahi +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBCEC),y) +KODI_DEPENDENCIES += libcec +KODI_CONF_OPTS += --enable-libcec +else +KODI_CONF_OPTS += --disable-libcec +endif + +ifeq ($(BR2_PACKAGE_KODI_WAVPACK),y) +KODI_DEPENDENCIES += wavpack +endif + +ifeq ($(BR2_PACKAGE_KODI_LIBTHEORA),y) +KODI_DEPENDENCIES += libtheora +endif + +# kodi needs libva & libva-glx +ifeq ($(BR2_PACKAGE_KODI_LIBVA)$(BR2_PACKAGE_MESA3D_DRI_DRIVER),yy) +KODI_DEPENDENCIES += mesa3d libva +KODI_CONF_OPTS += --enable-vaapi +else +KODI_CONF_OPTS += --disable-vaapi +endif + +# Add HOST_DIR to PATH for codegenerator.mk to find swig +define KODI_BOOTSTRAP + cd $(@D) && PATH=$(BR_PATH) ./bootstrap +endef +KODI_PRE_CONFIGURE_HOOKS += KODI_BOOTSTRAP + +define KODI_CLEAN_UNUSED_ADDONS + rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/screensaver.rsxs.plasma + rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.milkdrop + rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.projectm + rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.itunes +endef +KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS + +define KODI_CLEAN_CONFLUENCE_SKIN + find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.png -delete + find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.jpg -delete +endef +KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_CONFLUENCE_SKIN + +define KODI_INSTALL_BR_WRAPPER + $(INSTALL) -D -m 0755 package/kodi/br-kodi \ + $(TARGET_DIR)/usr/bin/br-kodi +endef +KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_BR_WRAPPER + +# When run from a startup script, Kodi has no $HOME where to store its +# configuration, so ends up storing it in /.xbmc (yes, at the root of +# the rootfs). This is a problem for read-only filesystems. But we can't +# easily change that, so create /.xbmc as a symlink where we want the +# config to eventually be. +define KODI_INSTALL_CONFIG_DIR + $(INSTALL) -d -m 0755 $(TARGET_DIR)/var/kodi + ln -sf /var/kodi $(TARGET_DIR)/.xbmc +endef +KODI_POST_INSTALL_TARGET_HOOKS += KODI_INSTALL_CONFIG_DIR + +define KODI_INSTALL_INIT_SYSV + $(INSTALL) -D -m 755 package/kodi/S50kodi \ + $(TARGET_DIR)/etc/init.d/S50kodi +endef + +define KODI_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/kodi/kodi.service \ + $(TARGET_DIR)/etc/systemd/system/kodi.service + + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + + ln -fs ../kodi.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/kodi.service +endef + +$(eval $(autotools-package)) diff --git a/package/kodi/kodi.service b/package/kodi/kodi.service new file mode 100644 index 0000000000..acd3b8e34b --- /dev/null +++ b/package/kodi/kodi.service @@ -0,0 +1,12 @@ +[Unit] +Description = Kodi Entertainment Center +After = network.target + +[Service] +Type = simple +ExecStart = /usr/lib/xbmc/xbmc.bin --standalone -fs -n +Restart = on-failure + +[Install] +WantedBy = multi-user.target + diff --git a/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk b/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk index a4d96247d6..16f3a0d579 100644 --- a/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk +++ b/package/xbmc-addon-xvdr/xbmc-addon-xvdr.mk @@ -21,6 +21,6 @@ XBMC_ADDON_XVDR_AUTORECONF = YES # This really is a runtime dependency, but we need XBMC to be installed # first, since we'll install files in XBMC's directories _after_ XBMC has # installed his own files -XBMC_ADDON_XVDR_DEPENDENCIES = xbmc +XBMC_ADDON_XVDR_DEPENDENCIES = kodi $(eval $(autotools-package)) diff --git a/package/xbmc-pvr-addons/xbmc-pvr-addons.mk b/package/xbmc-pvr-addons/xbmc-pvr-addons.mk index bfcb7ed296..4410153bcd 100644 --- a/package/xbmc-pvr-addons/xbmc-pvr-addons.mk +++ b/package/xbmc-pvr-addons/xbmc-pvr-addons.mk @@ -18,7 +18,7 @@ XBMC_PVR_ADDONS_DEPENDENCIES = boost zlib # This really is a runtime dependency, but we need XBMC to be installed # first, since we'll install files in XBMC's directories _after_ XBMC has # installed its own files -XBMC_PVR_ADDONS_DEPENDENCIES += xbmc +XBMC_PVR_ADDONS_DEPENDENCIES += kodi XBMC_PVR_ADDONS_CONF_OPTS = \ --enable-release \ diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in deleted file mode 100644 index 95de89d735..0000000000 --- a/package/xbmc/Config.in +++ /dev/null @@ -1,241 +0,0 @@ -config BR2_PACKAGE_XBMC_ARCH_SUPPORTS - bool - default y if BR2_arm || BR2_i386 || BR2_x86_64 - -comment "xbmc needs a toolchain w/ C++, IPv6, largefile, threads, wchar" - depends on BR2_PACKAGE_XBMC_ARCH_SUPPORTS - depends on !BR2_INET_IPV6 || !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR - depends on BR2_USE_MMU - -config BR2_PACKAGE_XBMC_EGL_GLES - bool - default y - depends on BR2_PACKAGE_HAS_LIBEGL - depends on BR2_PACKAGE_HAS_LIBGLES - depends on !BR2_PACKAGE_XBMC_GL # prefer GL if available - -config BR2_PACKAGE_XBMC_GL - bool - default y - depends on BR2_PACKAGE_HAS_LIBGL - depends on !BR2_arm # xbmc needs egl/gles on arm - -comment "xbmc needs an OpenGL or an openGL ES and EGL backend" - depends on BR2_i386 || BR2_x86_64 - depends on !BR2_PACKAGE_XBMC_GL && !BR2_PACKAGE_XBMC_EGL_GLES - -comment "xbmc requires an OpenGL ES and EGL backend" - depends on BR2_arm - depends on !BR2_PACKAGE_XBMC_EGL_GLES - -menuconfig BR2_PACKAGE_XBMC - bool "xbmc" - select BR2_NEEDS_HOST_JAVA - select BR2_PACKAGE_BOOST - select BR2_PACKAGE_BOOST_THREAD - select BR2_PACKAGE_BZIP2 - select BR2_PACKAGE_EXPAT - select BR2_PACKAGE_FLAC - select BR2_PACKAGE_FONTCONFIG - select BR2_PACKAGE_FREETYPE - select BR2_PACKAGE_JASPER - select BR2_PACKAGE_JPEG - select BR2_PACKAGE_LIBASS - select BR2_PACKAGE_LIBCDIO - select BR2_PACKAGE_LIBCURL - select BR2_PACKAGE_LIBFRIBIDI - select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_XBMC_GL - select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_XBMC_GL - select BR2_PACKAGE_LIBGCRYPT - select BR2_PACKAGE_LIBID3TAG - select BR2_PACKAGE_LIBMAD - select BR2_PACKAGE_LIBMODPLUG - select BR2_PACKAGE_LIBMPEG2 - select BR2_PACKAGE_LIBOGG - select BR2_PACKAGE_LIBPLIST - select BR2_PACKAGE_LIBPNG - select BR2_PACKAGE_LIBSAMPLERATE - select BR2_PACKAGE_LIBUNGIF - select BR2_PACKAGE_LIBVORBIS - select BR2_PACKAGE_LIBXML2 - select BR2_PACKAGE_LIBXSLT - select BR2_PACKAGE_LZO - select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_OPENSSL - select BR2_PACKAGE_PCRE - select BR2_PACKAGE_PCRE_UCP - select BR2_PACKAGE_PYTHON - select BR2_PACKAGE_PYTHON_BSDDB - select BR2_PACKAGE_PYTHON_BZIP2 - select BR2_PACKAGE_PYTHON_CURSES - select BR2_PACKAGE_PYTHON_PYEXPAT - select BR2_PACKAGE_PYTHON_READLINE - select BR2_PACKAGE_PYTHON_SQLITE - select BR2_PACKAGE_PYTHON_SSL - select BR2_PACKAGE_PYTHON_UNICODEDATA - select BR2_PACKAGE_PYTHON_ZLIB - select BR2_PACKAGE_READLINE - select BR2_PACKAGE_SDL if BR2_PACKAGE_XBMC_GL - select BR2_PACKAGE_SDL_X11 if BR2_PACKAGE_XBMC_GL - select BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_XBMC_GL - select BR2_PACKAGE_SQLITE - select BR2_PACKAGE_TAGLIB - select BR2_PACKAGE_TIFF - select BR2_PACKAGE_TINYXML - select BR2_PACKAGE_XLIB_XMU if BR2_PACKAGE_XBMC_GL # needed by rsxs screensaver - select BR2_PACKAGE_XLIB_XRANDR if BR2_PACKAGE_XBMC_GL - select BR2_PACKAGE_XLIB_XT if BR2_PACKAGE_XBMC_GL # needed by rsxs screensaver - select BR2_PACKAGE_YAJL - select BR2_PACKAGE_ZLIB - depends on BR2_INET_IPV6 - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_LARGEFILE - depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_PACKAGE_XBMC_EGL_GLES || BR2_PACKAGE_XBMC_GL - depends on BR2_USE_MMU # python - depends on BR2_USE_WCHAR - depends on BR2_PACKAGE_XBMC_ARCH_SUPPORTS - help - XBMC is an award-winning free and open source (GPL) software - media player and entertainment hub for digital media. - - http://xbmc.org - -if BR2_PACKAGE_XBMC - -config BR2_PACKAGE_XBMC_ALSA_LIB - bool "alsa" - select BR2_PACKAGE_ALSA_LIB - help - Enable alsa support. - -config BR2_PACKAGE_XBMC_AVAHI - bool "avahi" - depends on !BR2_STATIC_LIBS # avahi - select BR2_PACKAGE_AVAHI - select BR2_PACKAGE_AVAHI_DAEMON - help - Enable Avahi support. - Select this if you want XBMC to support Bonjour protocol. - -config BR2_PACKAGE_XBMC_DBUS - bool "dbus" - select BR2_PACKAGE_DBUS - help - Enable D-Bus support - -config BR2_PACKAGE_XBMC_LIBBLURAY - bool "blu-ray" - select BR2_PACKAGE_LIBBLURAY - depends on !BR2_STATIC_LIBS - help - Enable Blu-ray input support. - Select this if you want to play back Blu-ray content. - -comment "libbluray support needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - -config BR2_PACKAGE_XBMC_GOOM - bool "goom screensaver" - depends on BR2_PACKAGE_XBMC_GL - help - Enable goom screensaver - -comment "goom needs an OpenGL backend" - depends on !BR2_PACKAGE_XBMC_GL - -config BR2_PACKAGE_XBMC_RSXS - bool "rsxs screensaver" - depends on BR2_PACKAGE_XBMC_GL - help - Enable goom screensaver - -comment "rsxs needs an OpenGL backend" - depends on !BR2_PACKAGE_XBMC_GL - -config BR2_PACKAGE_XBMC_LIBCEC - bool "hdmi cec" - depends on !BR2_STATIC_LIBS # libcec - depends on BR2_PACKAGE_HAS_UDEV - select BR2_PACKAGE_LIBCEC - help - Enable CEC (Consumer Electronics Control) support. - Select this if you want XBMC to support HDMI CEC. - -comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS || !BR2_PACKAGE_HAS_UDEV - -config BR2_PACKAGE_XBMC_LIBMICROHTTPD - bool "web server" - select BR2_PACKAGE_LIBMICROHTTPD - help - Enable webserver feature - -config BR2_PACKAGE_XBMC_LIBNFS - bool "nfs" - depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC - select BR2_PACKAGE_LIBNFS - help - Enable NFS server support. - -comment "nfs support needs a toolchain w/ RPC support" - depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC - -config BR2_PACKAGE_XBMC_RTMPDUMP - bool "rtmp" - select BR2_PACKAGE_RTMPDUMP - help - Enable RTMP input support. - Select this if you want to play back rtmp stream. - -config BR2_PACKAGE_XBMC_LIBSHAIRPLAY - bool "shairport" - select BR2_PACKAGE_LIBSHAIRPLAY - help - Enable Shairport support. - Select this if you want to stream content from an Apple device. - -config BR2_PACKAGE_XBMC_LIBSMBCLIENT - bool "samba" - select BR2_PACKAGE_SAMBA - select BR2_PACKAGE_SAMBA_LIBSMBCLIENT - help - Enable Samba support - -config BR2_PACKAGE_XBMC_LIBTHEORA - bool "theora" - select BR2_PACKAGE_LIBTHEORA - help - Enable Theora input support. - Select this if you want to play back OGG/OGV files (Video). - -config BR2_PACKAGE_XBMC_LIBUSB - bool "usb" - select BR2_PACKAGE_LIBUSB - select BR2_PACKAGE_LIBUSB_COMPAT - help - Enable libusb support. - -config BR2_PACKAGE_XBMC_LIBVA - bool "va" - select BR2_PACKAGE_LIBVA - depends on !BR2_STATIC_LIBS - help - Enable libva support. - -comment "libva support needs toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - -config BR2_PACKAGE_XBMC_WAVPACK - bool "wavpack" - select BR2_PACKAGE_WAVPACK - help - Enable WAV input support. - Select this if you want to play back WV files. - -comment "XBMC addons" - -source "package/xbmc-addon-xvdr/Config.in" -source "package/xbmc-pvr-addons/Config.in" - -endif # BR2_PACKAGE_XBMC diff --git a/package/xbmc/S50xbmc b/package/xbmc/S50xbmc deleted file mode 100755 index 80cc0171a7..0000000000 --- a/package/xbmc/S50xbmc +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# Starts XBMC. -# - -BIN=/usr/bin/br-xbmc -XBMC=/usr/lib/xbmc/xbmc.bin -XBMC_ARGS="--standalone -fs -n" -PIDFILE=/var/run/xbmc.pid - -start() { - echo -n "Starting XBMC: " - start-stop-daemon -S -q -b -m -p $PIDFILE --exec $BIN -- $XBMC $XBMC_ARGS - [ $? = 0 ] && echo "OK" || echo "FAIL" -} -stop() { - echo -n "Stopping XBMC: " - start-stop-daemon -K -q -p $PIDFILE - [ $? = 0 ] && echo "OK" || echo "FAIL" -} -restart() { - stop - start -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|reload) - restart - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 -esac diff --git a/package/xbmc/br-xbmc b/package/xbmc/br-xbmc deleted file mode 100755 index fee5d51dd5..0000000000 --- a/package/xbmc/br-xbmc +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -# We're called with the real XBMC executable as -# first argument, followed by any XBMC extra args -XBMC="${1}" -shift - -# In case someone asked we terminate, just kill -# the XBMC process -trap_kill() { - LOOP=0 - killall "${XBMC##*/}" -} -trap trap_kill INT QUIT TERM - -LOOP=1 -while [ ${LOOP} -eq 1 ]; do - # Hack: BusyBox ash does not catch signals while a non-builtin - # is running, and only catches the signal when the non-builtin - # command ends. So, we just background the XBMC binary, and wait - # for it. But BusyBox' ash's wait builtin does not return the - # exit code even if there was only one job (which is correct - # for POSIX). So we explicitly wait for the XBMC job - "${XBMC}" "${@}" & - wait %1 - ret=$? - case "${ret}" in - 0) ;; - 64) poweroff; LOOP=0;; - 66) reboot; LOOP=0;; - *) # Crash - sleep 1 - ;; - esac -done -exit ${ret} diff --git a/package/xbmc/xbmc-0001-Fixup-include-path.patch b/package/xbmc/xbmc-0001-Fixup-include-path.patch deleted file mode 100644 index be99bd6d50..0000000000 --- a/package/xbmc/xbmc-0001-Fixup-include-path.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 63c255f1f5d68363f49193aceed343e602dc8bdf Mon Sep 17 00:00:00 2001 -From: Maxime Hadjinlian -Date: Thu, 26 Dec 2013 21:17:10 +0100 -Subject: [PATCH] Fixup include path - -Patch originally taken from : -http://repository.timesys.com/buildsources/x/xbmc/xbmc-11.0/xbmc-11.0-fixups.patch - -Signed-off-by: Maxime Hadjinlian ---- - lib/enca/configure | 3 --- - lib/enca/configure.ac | 3 --- - lib/libdvd/libdvdread/misc/dvdread-config.sh | 6 +++--- - lib/timidity/configure.in | 6 +++--- - 4 files changed, 6 insertions(+), 12 deletions(-) - -diff --git a/lib/enca/configure b/lib/enca/configure -index c839a51..7af5a09 100644 ---- a/lib/enca/configure -+++ b/lib/enca/configure -@@ -12011,9 +12011,6 @@ fi - if test "$prefix" = "NONE"; then - LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib" - CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include" --else -- LDFLAGS="$LDFLAGS -L$prefix/lib" -- CPPFLAGS="$CPPFLAGS -I$prefix/include" - fi - - -diff --git a/lib/enca/configure.ac b/lib/enca/configure.ac -index 41434df..47d5367 100644 ---- a/lib/enca/configure.ac -+++ b/lib/enca/configure.ac -@@ -100,9 +100,6 @@ dnl Dirty path hack. Helps some people with badly set up search paths. - if test "$prefix" = "NONE"; then - LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib" - CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include" --else -- LDFLAGS="$LDFLAGS -L$prefix/lib" -- CPPFLAGS="$CPPFLAGS -I$prefix/include" - fi - - dnl Checks for libraries. -diff --git a/lib/libdvd/libdvdread/misc/dvdread-config.sh b/lib/libdvd/libdvdread/misc/dvdread-config.sh -index e170c7e..25ee893 100644 ---- a/lib/libdvd/libdvdread/misc/dvdread-config.sh -+++ b/lib/libdvd/libdvdread/misc/dvdread-config.sh -@@ -48,9 +48,9 @@ if test "$echo_prefix" = "yes"; then - fi - - if test "$echo_cflags" = "yes"; then -- echo -I$prefix/include $extracflags -+ echo $extracflags - fi - - if test "$echo_libs" = "yes"; then -- echo -L$libdir $dvdreadlib --fi -+ echo $dvdreadlib -+fi -diff --git a/lib/timidity/configure.in b/lib/timidity/configure.in -index 9f2835b..733470a 100644 ---- a/lib/timidity/configure.in -+++ b/lib/timidity/configure.in -@@ -100,9 +100,9 @@ done - - # add $prefix if specified. - if test "x$prefix" != xNONE -a "x$prefix" != "x$ac_default_prefix" -a "x$prefix" != "x/usr"; then -- LDFLAGS="-L$prefix/lib $LDFLAGS" -- SHLDFLAGS="-L$prefix/lib $SHLDFLAGS" -- CPPFLAGS="-I$prefix/include $CPPFLAGS" -+ LDFLAGS="$LDFLAGS" -+ SHLDFLAGS="$SHLDFLAGS" -+ CPPFLAGS="$CPPFLAGS" - fi - - dnl add --with-includes, --with-libraries --- -1.8.5.2 - diff --git a/package/xbmc/xbmc-0002-mathutil.patch b/package/xbmc/xbmc-0002-mathutil.patch deleted file mode 100644 index 33f91eb38a..0000000000 --- a/package/xbmc/xbmc-0002-mathutil.patch +++ /dev/null @@ -1,213 +0,0 @@ -Taken from upstream PR: https://github.com/xbmc/xbmc/pull/3760 - -Signed-off-by: Bernd Kuhls - - -From 7388e8be7cd5e78100532ebf0dba15dccb7b03f8 Mon Sep 17 00:00:00 2001 -From: Ben Avison -Date: Tue, 3 Dec 2013 15:51:39 +0000 -Subject: [PATCH] Faster and simpler portable implementation of - MathUtils::round_int(). - -Much as I like a bit of inline assembler, I have also removed the ARM versions -of MathUtils::truncate_int() and MathUtils::round_int(). The former was just -how any sane compiler should have assembled a cast from double to signed int -anyway. The latter was a much too complicated way to achieve the desired -effect, and was switched out in most ARM builds anyway in favour of the old -portable implementation that used floor(). - -Verified that MathUtils::test() still passes, and that GCC is now able to -inline MathUtils::round_int(), where it didn't previously. - -I tested on a Raspberry Pi with the default theme, displaying the front page -with the RSS ticker enabled. This saturates the CPU, so I'm measuring the -improvement using the debug window's FPS figure. This patch improves this from -~50.8 FPS to ~52.6 FPS. ---- - xbmc/utils/MathUtils.h | 129 +++++++++++++++++++++++-------------------------- - 1 file changed, 61 insertions(+), 68 deletions(-) - -diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h -index 96af9f4..0dae77d 100644 ---- a/xbmc/utils/MathUtils.h -+++ b/xbmc/utils/MathUtils.h -@@ -34,17 +34,13 @@ - - #if defined(__ppc__) || \ - defined(__powerpc__) || \ -- (defined(TARGET_DARWIN_IOS) && defined(__llvm__)) || \ -- (defined(TARGET_ANDROID) && defined(__arm__)) || \ -- defined(TARGET_RASPBERRY_PI) -+ defined(__arm__) - #define DISABLE_MATHUTILS_ASM_ROUND_INT - #endif - - #if defined(__ppc__) || \ - defined(__powerpc__) || \ -- (defined(TARGET_DARWIN) && defined(__llvm__)) || \ -- (defined(TARGET_ANDROID) && defined(__arm__)) || \ -- defined(TARGET_RASPBERRY_PI) -+ defined(__arm__) - #define DISABLE_MATHUTILS_ASM_TRUNCATE_INT - #endif - -@@ -73,60 +69,63 @@ - { - assert(x > static_cast(INT_MIN / 2) - 1.0); - assert(x < static_cast(INT_MAX / 2) + 1.0); -- const float round_to_nearest = 0.5f; -- int i; - - #if defined(DISABLE_MATHUTILS_ASM_ROUND_INT) -- i = floor(x + round_to_nearest); -- --#elif defined(__arm__) -- // From 'ARM-v7-M Architecture Reference Manual' page A7-569: -- // "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode" -- // Because of this...we must use some less-than-straightforward logic to perform this operation without -- // changing the rounding mode flags -- -- /* The assembly below implements the following logic: -- if (x < 0) -- inc = -0.5f -- else -- inc = 0.5f -- int_val = trunc(x+inc); -- err = x - int_val; -- if (err == 0.5f) -- int_val++; -- return int_val; -- */ -+ /* This implementation warrants some further explanation. -+ * -+ * First, a couple of notes on rounding: -+ * 1) C casts from float/double to integer round towards zero. -+ * 2) Float/double additions are rounded according to the normal rules, -+ * in other words: on some architectures, it's fixed at compile-time, -+ * and on others it can be set using fesetround()). The following -+ * analysis assumes round-to-nearest with ties rounding to even. This -+ * is a fairly sensible choice, and is the default with ARM VFP. -+ * -+ * What this function wants is round-to-nearest with ties rounding to -+ * +infinity. This isn't an IEEE rounding mode, even if we could guarantee -+ * that all architectures supported fesetround(), which they don't. Instead, -+ * this adds an offset of 2147483648.5 (= 0x80000000.8p0), then casts to -+ * an unsigned int (crucially, all possible inputs are now in a range where -+ * round to zero acts the same as round to -infinity) and then subtracts -+ * 0x80000000 in the integer domain. The 0.5 component of the offset -+ * converts what is effectively a round down into a round to nearest, with -+ * ties rounding up, as desired. -+ * -+ * There is a catch, that because there is a double rounding, there is a -+ * small region where the input falls just *below* a tie, where the addition -+ * of the offset causes a round *up* to an exact integer, due to the finite -+ * level of precision available in floating point. You need to be aware of -+ * this when calling this function, although at present it is not believed -+ * that XBMC ever attempts to round numbers in this window. -+ * -+ * It is worth proving the size of the affected window. Recall that double -+ * precision employs a mantissa of 52 bits. -+ * 1) For all inputs -0.5 <= x <= INT_MAX -+ * Once the offset is applied, the most significant binary digit in the -+ * floating-point representation is +2^31. -+ * At this magnitude, the smallest step representable in double precision -+ * is 2^31 / 2^52 = 0.000000476837158203125 -+ * So the size of the range which is rounded up due to the addition is -+ * half the size of this step, or 0.0000002384185791015625 -+ * -+ * 2) For all inputs INT_MIN/2 < x < -0.5 -+ * Once the offset is applied, the most significant binary digit in the -+ * floating-point representation is +2^30. -+ * At this magnitude, the smallest step representable in double precision -+ * is 2^30 / 2^52 = 0.0000002384185791015625 -+ * So the size of the range which is rounded up due to the addition is -+ * half the size of this step, or 0.00000011920928955078125 -+ * -+ * 3) For all inputs INT_MIN <= x <= INT_MIN/2 -+ * The representation once the offset is applied has equal or greater -+ * precision than the input, so the addition does not cause rounding. -+ */ -+ return ((unsigned int) (x + 0x80000000.8p0)) - 0x80000000; - -- __asm__ __volatile__ ( --#if defined(__ARM_PCS_VFP) -- "fconstd d1,#%G[rnd_val] \n\t" // Copy round_to_nearest into a working register (d1 = 0.5) - #else -- "vmov.F64 d1,%[rnd_val] \n\t" --#endif -- "fcmpezd %P[value] \n\t" // Check value against zero (value == 0?) -- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags -- "it mi \n\t" -- "vnegmi.F64 d1, d1 \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1) -- "vadd.F64 d1,%P[value],d1 \n\t" // Add round_to_nearest to value, store result in working register (d1 += value) -- "vcvt.S32.F64 s3,d1 \n\t" // Truncate(round towards zero) (s3 = (int)d1) -- "vmov %[result],s3 \n\t" // Store the integer result in a general-purpose register (result = s3) -- "vcvt.F64.S32 d1,s3 \n\t" // Convert back to floating-point (d1 = (double)s3) -- "vsub.F64 d1,%P[value],d1 \n\t" // Calculate the error (d1 = value - d1) --#if defined(__ARM_PCS_VFP) -- "fconstd d2,#%G[rnd_val] \n\t" // d2 = 0.5; --#else -- "vmov.F64 d2,%[rnd_val] \n\t" --#endif -- "fcmped d1, d2 \n\t" // (d1 == 0.5?) -- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags -- "it eq \n\t" -- "addeq %[result],#1 \n\t" // (if (d1 == d2) result++;) -- : [result] "=r"(i) // Outputs -- : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs -- : "d1", "d2", "s3" // Clobbers -- ); -- --#elif defined(__SSE2__) -+ const float round_to_nearest = 0.5f; -+ int i; -+#if defined(__SSE2__) - const float round_dn_to_nearest = 0.4999999f; - i = (x > 0) ? _mm_cvttsd_si32(_mm_set_sd(x + round_to_nearest)) : _mm_cvttsd_si32(_mm_set_sd(x - round_dn_to_nearest)); - -@@ -150,8 +149,8 @@ - ); - - #endif -- - return i; -+#endif - } - - /*! \brief Truncate to nearest integer. -@@ -165,20 +164,13 @@ - { - assert(x > static_cast(INT_MIN / 2) - 1.0); - assert(x < static_cast(INT_MAX / 2) + 1.0); -- int i; - - #if defined(DISABLE_MATHUTILS_ASM_TRUNCATE_INT) -- return i = (int)x; -- --#elif defined(__arm__) -- __asm__ __volatile__ ( -- "vcvt.S32.F64 %[result],%P[value] \n\t" // Truncate(round towards zero) and store the result -- : [result] "=w"(i) // Outputs -- : [value] "w"(x) // Inputs -- ); -- return i; -+ return x; - --#elif defined(TARGET_WINDOWS) -+#else -+ int i; -+#if defined(TARGET_WINDOWS) - const float round_towards_m_i = -0.5f; - __asm - { -@@ -204,6 +196,7 @@ - if (x < 0) - i = -i; - return (i); -+#endif - } - - inline int64_t abs(int64_t a) --- -1.9.1 - diff --git a/package/xbmc/xbmc-0003-dbus.patch b/package/xbmc/xbmc-0003-dbus.patch deleted file mode 100644 index 3b63b23b77..0000000000 --- a/package/xbmc/xbmc-0003-dbus.patch +++ /dev/null @@ -1,46 +0,0 @@ -build: make D-Bus configurable - -Patch accepted upstream: -https://github.com/xbmc/xbmc/commit/630f930d4c9c33230e9ff7df24f93afb3f05881f - -Signed-off-by: Bernd Kuhls - -diff -uNr xbmc-13.2-Gotham.org/configure.in xbmc-13.2-Gotham/configure.in ---- xbmc-13.2-Gotham.org/configure.in 2014-08-17 15:19:05.000000000 +0200 -+++ xbmc-13.2-Gotham/configure.in 2014-09-02 20:55:06.932442467 +0200 -@@ -129,6 +129,7 @@ - goom_enabled="== GOOM enabled. ==" - goom_disabled="== GOOM disabled. ==" - alsa_disabled="== ALSA support disabled. ==" -+dbus_disabled="== DBUS support disabled. ==" - rsxs_enabled="== RSXS enabled. ==" - rsxs_disabled="== RSXS disabled. ==" - fishbmc_enabled="== FishBMC enabled. ==" -@@ -369,6 +370,12 @@ - [use_alsa=$enableval], - [use_alsa=yes]) - -+AC_ARG_ENABLE([dbus], -+ [AS_HELP_STRING([--disable-dbus], -+ [disable DBUS support])], -+ [use_dbus=$enableval], -+ [use_dbus=yes]) -+ - AC_ARG_ENABLE([pulse], - [AS_HELP_STRING([--enable-pulse], - [enable PulseAudio support (default is auto)])], -@@ -1253,10 +1260,14 @@ - [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes], - AC_MSG_NOTICE($alsa_not_found); use_alsa=no) - fi -+if test "x$use_dbus" != "xno"; then - PKG_CHECK_MODULES([DBUS], [dbus-1], - [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \ - AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]), - AC_MSG_NOTICE($missing_library); use_dbus=no) -+else -+ AC_MSG_NOTICE($dbus_disabled) -+fi - if test "x$use_sdl" != "xno"; then - PKG_CHECK_MODULES([SDL], [sdl], - [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"], diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk deleted file mode 100644 index 91d6bef541..0000000000 --- a/package/xbmc/xbmc.mk +++ /dev/null @@ -1,260 +0,0 @@ -################################################################################ -# -# xbmc -# -################################################################################ - -XBMC_VERSION = 13.2-Gotham -XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION)) -XBMC_LICENSE = GPLv2 -XBMC_LICENSE_FILES = LICENSE.GPL -# XBMC needs host-sdl_image (and therefore host-sdl) for a host tools it builds -# called TexturePacker. It is responsible to take all the images used in the -# GUI and pack them in a blob. -# http://wiki.xbmc.org/index.php?title=TexturePacker -XBMC_DEPENDENCIES = host-gawk host-gettext host-gperf host-infozip host-lzo host-sdl_image host-swig -XBMC_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \ - libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \ - libogg libplist libpng libsamplerate libungif libvorbis libxml2 libxslt lzo ncurses \ - openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib - -# xbmc@i386 depends on nasm -XBMC_DEPENDENCIES += $(if $(BR2_i386),host-nasm) - -# ffmpeg depends on yasm on MMX archs -# xbmc configure passes $(BR2_ARCH) to ffmpeg configure which adds -# yasm as dependency for x86_64, even if BR2_x86_generic=y -ifneq ($(BR2_X86_CPU_HAS_MMX)$(BR2_x86_64),) -XBMC_DEPENDENCIES += host-yasm -endif - -XBMC_CONF_ENV = \ - PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \ - PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \ - PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)" \ - PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" \ - PYTHON_NOVERSIONCHECK="no-check" \ - use_texturepacker_native=yes \ - USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \ - TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" - -XBMC_CONF_OPTS += \ - --with-arch=$(BR2_ARCH) \ - --disable-crystalhd \ - --disable-dvdcss \ - --disable-hal \ - --disable-joystick \ - --disable-mysql \ - --disable-openmax \ - --disable-optical-drive \ - --disable-projectm \ - --disable-pulse \ - --disable-ssh \ - --disable-vdpau \ - --disable-vtbdecoder \ - --enable-optimizations - -ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) -XBMC_DEPENDENCIES += rpi-userland -XBMC_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer -XBMC_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \ - -I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux" \ - LIBS="-lvcos -lvchostif" -endif - -ifeq ($(BR2_PACKAGE_LIBCAP),y) -XBMC_CONF_OPTS += --enable-libcap -XBMC_DEPENDENCIES += libcap -else -XBMC_CONF_OPTS += --disable-libcap -endif - -ifeq ($(BR2_PACKAGE_XBMC_DBUS),y) -XBMC_DEPENDENCIES += dbus -XBMC_CONF_OPTS += --enable-dbus -else -XBMC_CONF_OPTS += --disable-dbus -endif - -ifeq ($(BR2_PACKAGE_XBMC_ALSA_LIB),y) -XBMC_DEPENDENCIES += alsa-lib -XBMC_CONF_OPTS += --enable-alsa -else -XBMC_CONF_OPTS += --disable-alsa -endif - -ifeq ($(BR2_PACKAGE_LAME),y) -XBMC_DEPENDENCIES += lame -XBMC_CONF_OPTS += --enable-libmp3lame -else -XBMC_CONF_OPTS += --disable-libmp3lame -endif - -# quote from xbmc/configure.in: "GLES overwrites GL if both set to yes." -# we choose the opposite because opengl offers more features, like libva support -ifeq ($(BR2_PACKAGE_XBMC_GL),y) -XBMC_DEPENDENCIES += libglew libglu libgl sdl_image xlib_libX11 xlib_libXext \ - xlib_libXmu xlib_libXrandr xlib_libXt -XBMC_CONF_OPTS += --enable-gl --enable-sdl --enable-x11 --enable-xrandr --disable-gles -ifeq ($(BR2_PACKAGE_XBMC_RSXS),y) -# fix rsxs compile -# make sure target libpng-config is used, options taken from rsxs-0.9/acinclude.m4 -XBMC_CONF_ENV += \ - jm_cv_func_gettimeofday_clobber=no \ - mac_cv_pkg_png=$(STAGING_DIR)/usr/bin/libpng-config \ - mac_cv_pkg_cppflags="`$(STAGING_DIR)/usr/bin/libpng-config --I_opts --cppflags`" \ - mac_cv_pkg_cxxflags="`$(STAGING_DIR)/usr/bin/libpng-config --ccopts`" \ - mac_cv_pkg_ldflags="`$(STAGING_DIR)/usr/bin/libpng-config --L_opts --R_opts`" \ - mac_cv_pkg_libs="`$(STAGING_DIR)/usr/bin/libpng-config --libs`" -XBMC_CONF_OPTS += --enable-rsxs -else -XBMC_CONF_OPTS += --disable-rsxs -endif -else -XBMC_CONF_OPTS += --disable-gl --disable-rsxs --disable-sdl --disable-x11 --disable-xrandr -ifeq ($(BR2_PACKAGE_XBMC_EGL_GLES),y) -XBMC_DEPENDENCIES += libegl libgles -XBMC_CONF_OPTS += --enable-gles -else -XBMC_CONF_OPTS += --disable-gles -endif -endif - -ifeq ($(BR2_PACKAGE_XBMC_GOOM),y) -XBMC_CONF_OPTS += --enable-goom -else -XBMC_CONF_OPTS += --disable-goom -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBUSB),y) -XBMC_DEPENDENCIES += libusb-compat -XBMC_CONF_OPTS += --enable-libusb -else -XBMC_CONF_OPTS += --disable-libusb -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBMICROHTTPD),y) -XBMC_DEPENDENCIES += libmicrohttpd -XBMC_CONF_OPTS += --enable-webserver -else -XBMC_CONF_OPTS += --disable-webserver -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBSMBCLIENT),y) -XBMC_DEPENDENCIES += samba -XBMC_CONF_OPTS += --enable-samba -else -XBMC_CONF_OPTS += --disable-samba -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBNFS),y) -XBMC_DEPENDENCIES += libnfs -XBMC_CONF_OPTS += --enable-nfs -else -XBMC_CONF_OPTS += --disable-nfs -endif - -ifeq ($(BR2_PACKAGE_XBMC_RTMPDUMP),y) -XBMC_DEPENDENCIES += rtmpdump -XBMC_CONF_OPTS += --enable-rtmp -else -XBMC_CONF_OPTS += --disable-rtmp -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBBLURAY),y) -XBMC_DEPENDENCIES += libbluray -XBMC_CONF_OPTS += --enable-libbluray -else -XBMC_CONF_OPTS += --disable-libbluray -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBSHAIRPLAY),y) -XBMC_DEPENDENCIES += libshairplay -XBMC_CONF_OPTS += --enable-airplay -else -XBMC_CONF_OPTS += --disable-airplay -endif - -ifeq ($(BR2_PACKAGE_XBMC_AVAHI),y) -XBMC_DEPENDENCIES += avahi -XBMC_CONF_OPTS += --enable-avahi -else -XBMC_CONF_OPTS += --disable-avahi -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBCEC),y) -XBMC_DEPENDENCIES += libcec -XBMC_CONF_OPTS += --enable-libcec -else -XBMC_CONF_OPTS += --disable-libcec -endif - -ifeq ($(BR2_PACKAGE_XBMC_WAVPACK),y) -XBMC_DEPENDENCIES += wavpack -endif - -ifeq ($(BR2_PACKAGE_XBMC_LIBTHEORA),y) -XBMC_DEPENDENCIES += libtheora -endif - -# xbmc needs libva & libva-glx -ifeq ($(BR2_PACKAGE_XBMC_LIBVA)$(BR2_PACKAGE_MESA3D_DRI_DRIVER),yy) -XBMC_DEPENDENCIES += mesa3d libva -XBMC_CONF_OPTS += --enable-vaapi -else -XBMC_CONF_OPTS += --disable-vaapi -endif - -# Add HOST_DIR to PATH for codegenerator.mk to find swig -define XBMC_BOOTSTRAP - cd $(@D) && PATH=$(BR_PATH) ./bootstrap -endef -XBMC_PRE_CONFIGURE_HOOKS += XBMC_BOOTSTRAP - -define XBMC_CLEAN_UNUSED_ADDONS - rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/screensaver.rsxs.plasma - rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.milkdrop - rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.projectm - rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.itunes -endef -XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_UNUSED_ADDONS - -define XBMC_CLEAN_CONFLUENCE_SKIN - find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.png -delete - find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.jpg -delete -endef -XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_CONFLUENCE_SKIN - -define XBMC_INSTALL_BR_WRAPPER - $(INSTALL) -D -m 0755 package/xbmc/br-xbmc \ - $(TARGET_DIR)/usr/bin/br-xbmc -endef -XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_BR_WRAPPER - -# When run from a startup script, XBMC has no $HOME where to store its -# configuration, so ends up storing it in /.xbmc (yes, at the root of -# the rootfs). This is a problem for read-only filesystems. But we can't -# easily change that, so create /.xbmc as a symlink where we want the -# config to eventually be. -define XBMC_INSTALL_CONFIG_DIR - $(INSTALL) -d -m 0755 $(TARGET_DIR)/var/xbmc - ln -sf /var/xbmc $(TARGET_DIR)/.xbmc -endef -XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_CONFIG_DIR - -define XBMC_INSTALL_INIT_SYSV - $(INSTALL) -D -m 755 package/xbmc/S50xbmc \ - $(TARGET_DIR)/etc/init.d/S50xbmc -endef - -define XBMC_INSTALL_INIT_SYSTEMD - $(INSTALL) -D -m 644 package/xbmc/xbmc.service \ - $(TARGET_DIR)/etc/systemd/system/xbmc.service - - mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - - ln -fs ../xbmc.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/xbmc.service -endef - -$(eval $(autotools-package)) diff --git a/package/xbmc/xbmc.service b/package/xbmc/xbmc.service deleted file mode 100644 index 3fe5895de8..0000000000 --- a/package/xbmc/xbmc.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description = XBMC media center -After = network.target - -[Service] -Type = simple -ExecStart = /usr/lib/xbmc/xbmc.bin --standalone -fs -n -Restart = on-failure - -[Install] -WantedBy = multi-user.target -