diff --git a/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff b/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff deleted file mode 100644 index 57772d9445..0000000000 --- a/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur xbmc-29428/configure.in xbmc-29428.patch/configure.in ---- xbmc-29428/configure.in 2010-04-22 00:56:44.000000000 +0200 -+++ xbmc-29428.patch/configure.in 2010-04-22 19:06:31.906738563 +0200 -@@ -478,7 +478,7 @@ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -- if [ -z "$LIBCURL_BASENAME" ]; then -+ if [[ -z "$LIBCURL_BASENAME" ]]; then - echo "Unable to determine basename of libcurl library" - fi - diff --git a/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff b/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff index e6d31030d5..7ea8b5abbd 100644 --- a/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff +++ b/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff @@ -1,6 +1,6 @@ -diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in ---- xbmc-28910/configure.in 2010-03-28 18:55:35.040753605 +0200 -+++ xbmc-28910.patch/configure.in 2010-03-28 18:58:11.605628523 +0200 +diff -Naur xbmc-29740/configure.in xbmc-29740.patch/configure.in +--- xbmc-29740/configure.in 2010-05-03 03:25:29.000000000 +0200 ++++ xbmc-29740.patch/configure.in 2010-05-03 04:05:13.412131036 +0200 @@ -23,6 +23,8 @@ xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. ==" goom_enabled="== GOOM enabled. ==" @@ -10,7 +10,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in pulse_not_found="== Could not find libpulse. PulseAudio support disabled. ==" pulse_disabled="== PulseAudio support manually disabled. ==" faac_not_found="== Could not find libfaac. FAAC support disabled. ==" -@@ -152,6 +154,12 @@ +@@ -168,6 +170,12 @@ [use_goom=$enableval], [use_goom=no]) @@ -23,7 +23,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in AC_PATH_PROG(CCACHE,ccache,none) AC_ARG_ENABLE([ccache], [AS_HELP_STRING([--enable-ccache], -@@ -531,6 +539,15 @@ +@@ -579,6 +587,15 @@ fi fi @@ -37,9 +37,9 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in +fi + ### External libraries checks - if test "$use_external_libraries" = "yes"; then - AC_MSG_NOTICE($external_libraries_enabled) -@@ -862,6 +879,12 @@ + # External FFmpeg + if test "$use_external_ffmpeg" = "yes"; then +@@ -943,6 +960,12 @@ final_message="$final_message\n GOOM:\t\tNo" fi @@ -52,15 +52,15 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in if test "$use_pcre" = "yes"; then final_message="$final_message\n PCRE Support:\tYes" else -@@ -1106,6 +1129,7 @@ +@@ -1181,6 +1204,7 @@ AC_SUBST(SDL_DEFINES) AC_SUBST(BUILD_DVDCSS) AC_SUBST(BUILD_GOOM) +AC_SUBST(BUILD_XBMCPROJECTM) - AC_SUBST(USE_EXTERNAL_LIBRARIES) AC_SUBST(USE_EXTERNAL_FFMPEG) AC_SUBST(USE_EXTERNAL_LIBA52) -@@ -1451,7 +1475,7 @@ + AC_SUBST(USE_EXTERNAL_LIBDTS) +@@ -1535,7 +1559,7 @@ -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . set +x fi @@ -69,10 +69,10 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[ if test "$host_vendor" != "apple" ; then -diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ---- xbmc-28910/Makefile.in 2010-03-28 17:12:32.000000000 +0200 -+++ xbmc-28910.patch/Makefile.in 2010-03-28 18:58:11.636752616 +0200 -@@ -105,8 +105,10 @@ +diff -Naur xbmc-29740/Makefile.in xbmc-29740.patch/Makefile.in +--- xbmc-29740/Makefile.in 2010-05-03 03:25:29.000000000 +0200 ++++ xbmc-29740.patch/Makefile.in 2010-05-03 04:04:11.589130864 +0200 +@@ -106,8 +106,10 @@ VIS_DIRS=\ xbmc/visualizations/OpenGLSpectrum \ @@ -85,7 +85,7 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ifeq ($(findstring osx,$(ARCH)), osx) VIS_DIRS+=xbmc/visualizations/iTunes endif -@@ -303,7 +305,9 @@ +@@ -306,7 +308,9 @@ visualizations: exports $(MAKE) -C xbmc/visualizations/OpenGLSpectrum $(MAKE) -C xbmc/visualizations/WaveForm diff --git a/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff b/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff index caa0a141ee..612ee758bd 100644 --- a/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff +++ b/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff @@ -1,6 +1,6 @@ -diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in ---- xbmc-28910/configure.in 2010-03-28 19:01:27.995753591 +0200 -+++ xbmc-28910.patch/configure.in 2010-03-28 19:02:17.307753519 +0200 +diff -Naur xbmc-29740/configure.in xbmc-29740.patch/configure.in +--- xbmc-29740/configure.in 2010-05-03 04:06:14.609255790 +0200 ++++ xbmc-29740.patch/configure.in 2010-05-03 04:07:44.163129774 +0200 @@ -25,6 +25,8 @@ goom_disabled="== GOOM disabled. ==" xbmcprojectm_enabled="== XBMCProjectM enabled. ==" @@ -10,7 +10,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in pulse_not_found="== Could not find libpulse. PulseAudio support disabled. ==" pulse_disabled="== PulseAudio support manually disabled. ==" faac_not_found="== Could not find libfaac. FAAC support disabled. ==" -@@ -160,6 +162,12 @@ +@@ -176,6 +178,12 @@ [use_xbmcprojectm=$enableval], [use_xbmcprojectm=yes]) @@ -23,7 +23,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in AC_PATH_PROG(CCACHE,ccache,none) AC_ARG_ENABLE([ccache], [AS_HELP_STRING([--enable-ccache], -@@ -548,6 +556,15 @@ +@@ -596,6 +604,15 @@ BUILD_XBMCPROJECTM=1 fi @@ -37,9 +37,9 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in +fi + ### External libraries checks - if test "$use_external_libraries" = "yes"; then - AC_MSG_NOTICE($external_libraries_enabled) -@@ -885,6 +902,12 @@ + # External FFmpeg + if test "$use_external_ffmpeg" = "yes"; then +@@ -966,6 +983,12 @@ final_message="$final_message\n XBMCProjectM:\tNo" fi @@ -52,15 +52,15 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in if test "$use_pcre" = "yes"; then final_message="$final_message\n PCRE Support:\tYes" else -@@ -1130,6 +1153,7 @@ +@@ -1205,6 +1228,7 @@ AC_SUBST(BUILD_DVDCSS) AC_SUBST(BUILD_GOOM) AC_SUBST(BUILD_XBMCPROJECTM) +AC_SUBST(BUILD_RSXS) - AC_SUBST(USE_EXTERNAL_LIBRARIES) AC_SUBST(USE_EXTERNAL_FFMPEG) AC_SUBST(USE_EXTERNAL_LIBA52) -@@ -1529,7 +1553,7 @@ + AC_SUBST(USE_EXTERNAL_LIBDTS) +@@ -1613,7 +1637,7 @@ --disable-lattice \ --disable-skyrocket fi @@ -69,10 +69,10 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libbdnav/], [ if test "$host_vendor" = "apple" ; then -diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ---- xbmc-28910/Makefile.in 2010-03-28 19:01:27.997753604 +0200 -+++ xbmc-28910.patch/Makefile.in 2010-03-28 19:02:17.308751221 +0200 -@@ -100,8 +100,10 @@ +diff -Naur xbmc-29740/Makefile.in xbmc-29740.patch/Makefile.in +--- xbmc-29740/Makefile.in 2010-05-03 04:06:14.610256210 +0200 ++++ xbmc-29740.patch/Makefile.in 2010-05-03 04:07:08.523256011 +0200 +@@ -101,8 +101,10 @@ lib/xbmc-dll-symbols \ lib/jsoncpp/jsoncpp/src/lib_json @@ -85,7 +85,7 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in VIS_DIRS=\ xbmc/visualizations/OpenGLSpectrum \ -@@ -317,7 +319,9 @@ +@@ -320,7 +322,9 @@ endif endif screensavers: exports diff --git a/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff b/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff index 182c72f5ed..fed04421e0 100644 --- a/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff +++ b/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff @@ -1,84 +1,12 @@ -diff -Naur xbmc-29428/configure.in xbmc-29428.patch/configure.in ---- xbmc-29428/configure.in 2010-04-22 00:56:44.000000000 +0200 -+++ xbmc-29428.patch/configure.in 2010-04-22 02:22:21.771774020 +0200 -@@ -474,7 +474,7 @@ - # check for library basenames - if test "$host_vendor" != "apple"; then - # libcurl -- LIBCURL_BASENAME=$(gcc $CFLAGS -print-file-name=libcurl.so | \ -+ LIBCURL_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libcurl.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -483,7 +483,7 @@ - fi - - # libFLAC -- LIBFLAC_BASENAME=$(gcc $CFLAGS -print-file-name=libFLAC.so | \ -+ LIBFLAC_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libFLAC.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -492,7 +492,7 @@ - fi - - # libvorbisfile -- LIBVORBISFILE_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbisfile.so | \ -+ LIBVORBISFILE_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbisfile.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -501,7 +501,7 @@ - fi - - # libmodplug -- LIBMODPLUG_BASENAME=$(gcc $CFLAGS -print-file-name=libmodplug.so | \ -+ LIBMODPLUG_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libmodplug.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -510,7 +510,7 @@ - fi - - # libfaad -- LIBFAAD_BASENAME=$(gcc $CFLAGS -print-file-name=libfaad.so | \ -+ LIBFAAD_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libfaad.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -519,7 +519,7 @@ - fi - - # libmad -- LIBMAD_BASENAME=$(gcc $CFLAGS -print-file-name=libmad.so | \ -+ LIBMAD_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libmad.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -528,7 +528,7 @@ - fi - - # libogg -- LIBOGG_BASENAME=$(gcc $CFLAGS -print-file-name=libogg.so | \ -+ LIBOGG_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libogg.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -537,7 +537,7 @@ - fi - - # libvorbisenc -- LIBVORBISENC_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbisenc.so | \ -+ LIBVORBISENC_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbisenc.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -546,7 +546,7 @@ - fi - - # libvorbis -- LIBVORBIS_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbis.so | \ -+ LIBVORBIS_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbis.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) +diff -Naur xbmc-29740/configure.in xbmc-29740.patch/configure.in +--- xbmc-29740/configure.in 2010-05-03 04:08:41.115131030 +0200 ++++ xbmc-29740.patch/configure.in 2010-05-03 04:12:20.116129219 +0200 +@@ -499,7 +499,7 @@ + AC_DEFUN([XB_FIND_SONAME], + [ + AC_MSG_CHECKING([for lib$2 soname]) +- $1_SONAME=$( gcc -print-file-name=lib$2.so | \ ++ $1_SONAME=$( $CC -print-file-name=lib$2.so | \ + while read output; do objdump -p $output | \ + grep "SONAME" | \ + sed -e 's/ \+SONAME \+//'; done 2> /dev/null ) diff --git a/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff b/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff index aecb77d0bd..509472b745 100644 --- a/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff +++ b/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff @@ -1,7 +1,7 @@ -diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ---- xbmc-28910/Makefile.in 2010-03-28 19:09:49.356628842 +0200 -+++ xbmc-28910.patch/Makefile.in 2010-03-28 19:28:17.265753408 +0200 -@@ -495,7 +495,7 @@ +diff -Naur xbmc-29740/Makefile.in xbmc-29740.patch/Makefile.in +--- xbmc-29740/Makefile.in 2010-05-03 04:08:41.116131093 +0200 ++++ xbmc-29740.patch/Makefile.in 2010-05-03 04:16:42.386130163 +0200 +@@ -497,7 +497,7 @@ $(MAKE) -C tools/TexturePacker/ install-bin: xbmc.bin # developement convenience target @@ -10,7 +10,7 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ifeq ($(findstring osx,$(ARCH)), osx) # TODO: add osx install -@@ -503,55 +503,55 @@ +@@ -505,53 +505,53 @@ install: install-binaries install-arch install-datas install-web install-binaries: install-scripts @@ -25,8 +25,8 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in install-arch: @# Arch dependent files -- @find system screensavers visualisations -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" -+ @find system screensavers visualisations -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(DESTDIR)/$(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" +- @find system addons -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" ++ @find system addons -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(DESTDIR)/$(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" install-scripts: - @install -D tools/Linux/xbmc.sh $(prefix)/bin/xbmc @@ -49,9 +49,6 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in @# Arch independent files - @find addons language media scripts sounds userdata system -regextype posix-extended -type f -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python/.*\.zlib" -exec install -D -m 0644 "{}" $(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" + @find addons language media scripts sounds userdata system -regextype posix-extended -type f -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python/.*\.zlib" -exec install -D -m 0644 "{}" $(DESTDIR)/$(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" - @# Skins -- @find skin -regextype posix-extended -type f -not -iregex '.*/\.svn/.*|^skin/[^/]*/media/.*[^x][^b][^t]' -exec install -D -m 0644 '{}' $(prefix)/share/xbmc/'{}' \; -printf " -- %-75.75f\r" -+ @find skin -regextype posix-extended -type f -not -iregex '.*/\.svn/.*|^skin/[^/]*/media/.*[^x][^b][^t]' -exec install -D -m 0644 '{}' $(DESTDIR)/$(prefix)/share/xbmc/'{}' \; -printf " -- %-75.75f\r" @# Icons and links - @mkdir -p $(prefix)/share/applications $(prefix)/share/pixmaps - @cp -a tools/Linux/xbmc.png $(prefix)/share/pixmaps/ diff --git a/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff b/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff deleted file mode 100644 index b13b23d56d..0000000000 --- a/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff +++ /dev/null @@ -1,734 +0,0 @@ -diff -Naur xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.cpp xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.cpp ---- xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.cpp 2010-04-25 23:12:52.124485047 +0200 -@@ -0,0 +1,143 @@ -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+ -+#include "system.h" -+#include "ConsoleUPowerSyscall.h" -+#include "utils/log.h" -+ -+#ifdef HAS_DBUS -+#include "Application.h" -+#include "LocalizeStrings.h" -+#include "DBusUtil.h" -+ -+CConsoleUPowerSyscall::CConsoleUPowerSyscall() -+{ -+ m_CanPowerdown = ConsoleKitMethodCall("CanStop"); -+ -+ // If "the name org.freedesktop.UPower was not provided by any .service files", -+ // GetVariant() would return NULL, and asBoolean() would crash. -+ CVariant canSuspend = CDBusUtil::GetVariant("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "can_suspend"); -+ -+ if ( !canSuspend.isNull() ) -+ m_CanSuspend = canSuspend.asBoolean(); -+ else -+ m_CanSuspend = false; -+ -+ CVariant canHibernate = CDBusUtil::GetVariant("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "can_hibernate"); -+ -+ if ( !canHibernate.isNull() ) -+ m_CanHibernate = canHibernate.asBoolean(); -+ else -+ m_CanHibernate = false; -+ -+ m_CanReboot = ConsoleKitMethodCall("CanRestart"); -+} -+ -+bool CConsoleUPowerSyscall::Powerdown() -+{ -+ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "Stop"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::Suspend() -+{ -+ CDBusMessage message("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Suspend"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::Hibernate() -+{ -+ CDBusMessage message("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Hibernate"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::Reboot() -+{ -+ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "Restart"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::CanPowerdown() -+{ -+ return m_CanPowerdown; -+} -+bool CConsoleUPowerSyscall::CanSuspend() -+{ -+ return m_CanSuspend; -+} -+bool CConsoleUPowerSyscall::CanHibernate() -+{ -+ return m_CanHibernate; -+} -+bool CConsoleUPowerSyscall::CanReboot() -+{ -+ return m_CanReboot; -+} -+ -+bool CConsoleUPowerSyscall::HasDeviceConsoleKit() -+{ -+ bool hasConsoleKitManager = false; -+ CDBusMessage consoleKitMessage("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "CanStop"); -+ -+ DBusError error; -+ dbus_error_init (&error); -+ DBusConnection *con = dbus_bus_get(DBUS_BUS_SYSTEM, &error); -+ -+ consoleKitMessage.Send(con, &error); -+ -+ if (!dbus_error_is_set(&error)) -+ hasConsoleKitManager = true; -+ else -+ CLog::Log(LOGDEBUG, "ConsoleKit.Manager: %s - %s", error.name, error.message); -+ -+ dbus_error_free (&error); -+ -+ bool hasUPower = false; -+ CDBusMessage deviceKitMessage("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); -+ -+ deviceKitMessage.Send(con, &error); -+ -+ if (!dbus_error_is_set(&error)) -+ hasUPower = true; -+ else -+ CLog::Log(LOGDEBUG, "UPower: %s - %s", error.name, error.message); -+ -+ dbus_error_free (&error); -+ dbus_connection_unref(con); -+ -+ return hasUPower && hasConsoleKitManager; -+} -+ -+bool CConsoleUPowerSyscall::ConsoleKitMethodCall(const char *method) -+{ -+ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", method); -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ { -+ dbus_bool_t boolean = FALSE; -+ -+ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_BOOLEAN, &boolean, DBUS_TYPE_INVALID)) -+ return boolean; -+ } -+ -+ return false; -+} -+#endif -diff -Naur xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.h xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.h ---- xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.h 2010-04-25 23:12:52.125484748 +0200 -@@ -0,0 +1,50 @@ -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+ -+#ifdef HAS_DBUS -+#include "IPowerSyscall.h" -+ -+class CConsoleUPowerSyscall : public IPowerSyscall -+{ -+public: -+ CConsoleUPowerSyscall(); -+ virtual ~CConsoleUPowerSyscall() { } -+ -+ virtual bool Powerdown(); -+ virtual bool Suspend(); -+ virtual bool Hibernate(); -+ virtual bool Reboot(); -+ -+ virtual bool CanPowerdown(); -+ virtual bool CanSuspend(); -+ virtual bool CanHibernate(); -+ virtual bool CanReboot(); -+ -+ static bool HasDeviceConsoleKit(); -+private: -+ static bool ConsoleKitMethodCall(const char *method); -+ -+ bool m_CanPowerdown; -+ bool m_CanSuspend; -+ bool m_CanHibernate; -+ bool m_CanReboot; -+}; -+#endif -diff -Naur xbmc-29490/xbmc/linux/LinuxStorageProvider.h xbmc-29490.patch/xbmc/linux/LinuxStorageProvider.h ---- xbmc-29490/xbmc/linux/LinuxStorageProvider.h 2010-04-24 22:43:12.000000000 +0200 -+++ xbmc-29490.patch/xbmc/linux/LinuxStorageProvider.h 2010-04-25 23:12:52.126484868 +0200 -@@ -22,6 +22,7 @@ - #include "IStorageProvider.h" - #include "HALProvider.h" - #include "DeviceKitDisksProvider.h" -+#include "UDisksProvider.h" - #include "PosixMountProvider.h" - - class CLinuxStorageProvider : public IStorageProvider -@@ -32,7 +33,9 @@ - m_instance = NULL; - - #ifdef HAS_DBUS -- if (CDeviceKitDisksProvider::HasDeviceKitDisks()) -+ if (CUDisksProvider::HasUDisks() ) { -+ m_instance = new CUDisksProvider(); -+ } else if (CDeviceKitDisksProvider::HasDeviceKitDisks()) - m_instance = new CDeviceKitDisksProvider(); - #endif - #ifdef HAS_HAL -diff -Naur xbmc-29490/xbmc/linux/Makefile.in xbmc-29490.patch/xbmc/linux/Makefile.in ---- xbmc-29490/xbmc/linux/Makefile.in 2010-04-24 22:43:12.000000000 +0200 -+++ xbmc-29490.patch/xbmc/linux/Makefile.in 2010-04-25 23:12:52.127484639 +0200 -@@ -7,7 +7,7 @@ - - CXXFLAGS+=-fPIC #-DHAS_SDL - --SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp -+SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp UDisksProvider.cpp ConsoleUPowerSyscall.cpp - - LIB=linux.a - -diff -Naur xbmc-29490/xbmc/linux/UDisksProvider.cpp xbmc-29490.patch/xbmc/linux/UDisksProvider.cpp ---- xbmc-29490/xbmc/linux/UDisksProvider.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/UDisksProvider.cpp 2010-04-25 23:12:52.129484321 +0200 -@@ -0,0 +1,385 @@ -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+#include "UDisksProvider.h" -+#ifdef HAS_DBUS -+#include "Util.h" -+#include "AdvancedSettings.h" -+#include "LocalizeStrings.h" -+#include "log.h" -+ -+CUDiskDevice::CUDiskDevice(const char *DeviceKitUDI) -+{ -+ m_DeviceKitUDI = DeviceKitUDI; -+ m_UDI = ""; -+ m_MountPath = ""; -+ m_FileSystem = ""; -+ m_isMounted = false; -+ m_isMountedByUs = false; -+ m_isRemovable = false; -+ m_isPartition = false; -+ m_isFileSystem = false; -+ m_isSystemInternal = false; -+ m_PartitionSizeGiB = 0.0f; -+ Update(); -+} -+ -+void CUDiskDevice::Update() -+{ -+ CStdString str = CDBusUtil::GetVariant("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "IdUsage").asString(); -+ m_isFileSystem = str.Equals("filesystem"); -+ if (m_isFileSystem) -+ { -+ CVariant properties = CDBusUtil::GetAll("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device"); -+ -+ m_UDI = properties["IdUuid"].asString(); -+ m_Label = properties["IdLabel"].asString(); -+ m_FileSystem = properties["IdType"].asString(); -+ if (properties["DeviceMountPaths"].size() > 0) -+ m_MountPath = properties["DeviceMountPaths"][0].asString(); -+ m_isMounted = properties["DeviceIsMounted"].asBoolean(); -+ -+ m_PartitionSizeGiB = properties["PartitionSize"].asUnsignedInteger() / 1024.0 / 1024.0 / 1024.0; -+ m_isPartition = properties["DeviceIsPartition"].asBoolean(); -+ m_isSystemInternal = properties["DeviceIsSystemInternal"].asBoolean(); -+ if (m_isPartition) -+ { -+ CVariant isRemovable = CDBusUtil::GetVariant("org.freedesktop.UDisks", properties["PartitionSlave"].asString(), "org.freedesktop.UDisks.Device", "DeviceIsRemovable"); -+ -+ if ( !isRemovable.isNull() ) -+ m_isRemovable = isRemovable.asBoolean(); -+ else -+ m_isRemovable = false; -+ } -+ else -+ m_isRemovable = properties["DeviceIsRemovable"].asBoolean(); -+ } -+} -+ -+bool CUDiskDevice::Mount() -+{ -+ if (!m_isMounted && !m_isSystemInternal && m_isFileSystem) -+ { -+ CLog::Log(LOGDEBUG, "UDisks: Mounting %s", m_DeviceKitUDI.c_str()); -+ CDBusMessage message("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "FilesystemMount"); -+ message.AppendArgument(""); -+ const char *array[] = {}; -+ message.AppendArgument(array, 0); -+ -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ { -+ char *mountPoint; -+ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_STRING, &mountPoint, DBUS_TYPE_INVALID)) -+ { -+ m_MountPath = mountPoint; -+ CLog::Log(LOGDEBUG, "UDisks: Sucessfully mounted %s on %s", m_DeviceKitUDI.c_str(), mountPoint); -+ m_isMountedByUs = m_isMounted = true; -+ } -+ } -+ -+ return m_isMounted; -+ } -+ else -+ CLog::Log(LOGDEBUG, "UDisks: Is not able to mount %s", toString().c_str()); -+ -+ return false; -+} -+ -+bool CUDiskDevice::UnMount() -+{ -+ if (m_isMounted && !m_isSystemInternal && m_isFileSystem) -+ { -+ CDBusMessage message("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "FilesystemUnmount"); -+ -+ const char *array[1]; -+ message.AppendArgument(array, 0); -+ -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ m_isMountedByUs = m_isMounted = false; -+ -+ return !m_isMounted; -+ } -+ else -+ CLog::Log(LOGDEBUG, "UDisks: Is not able to unmount %s", toString().c_str()); -+ -+ return false; -+} -+ -+CMediaSource CUDiskDevice::ToMediaShare() -+{ -+ CMediaSource source; -+ source.strPath = m_MountPath; -+ if (m_Label.empty()) -+ source.strName.Format("%.1f GB %s", m_PartitionSizeGiB, g_localizeStrings.Get(155).c_str()); -+ else -+ source.strName = m_Label; -+ source.m_iDriveType = !m_isSystemInternal ? CMediaSource::SOURCE_TYPE_REMOVABLE : CMediaSource::SOURCE_TYPE_LOCAL; -+ source.m_ignore = true; -+ return source; -+} -+ -+bool CUDiskDevice::IsApproved() -+{ -+ return (m_isFileSystem && m_isMounted && m_UDI.length() > 0 && (m_FileSystem.length() > 0 && !m_FileSystem.Equals("swap")) && !m_MountPath.Equals("/")); -+} -+ -+#define BOOL2SZ(b) ((b) ? "true" : "false") -+ -+CStdString CUDiskDevice::toString() -+{ -+ CStdString str; -+ str.Format("DeviceUDI %s: IsFileSystem %s HasFileSystem %s " -+ "IsSystemInternal %s IsMounted %s IsRemovable %s IsPartition %s", -+ m_DeviceKitUDI.c_str(), BOOL2SZ(m_isFileSystem), m_FileSystem, -+ BOOL2SZ(m_isSystemInternal), BOOL2SZ(m_isMounted), -+ BOOL2SZ(m_isRemovable), BOOL2SZ(m_isPartition)); -+ -+ return str; -+} -+ -+CUDisksProvider::CUDisksProvider() -+{ -+ dbus_error_init (&m_error); -+ m_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &m_error); -+ -+ dbus_bus_add_match(m_connection, "type='signal',interface='org.freedesktop.UDisks'", &m_error); -+ dbus_connection_flush(m_connection); -+ if (dbus_error_is_set(&m_error)) -+ { -+ CLog::Log(LOGERROR, "UDisks: Failed to attach to signal %s", m_error.message); -+ dbus_connection_unref(m_connection); -+ m_connection = NULL; -+ } -+} -+ -+CUDisksProvider::~CUDisksProvider() -+{ -+ DeviceMap::iterator itr; -+ -+ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ delete m_AvailableDevices[itr->first]; -+ -+ m_AvailableDevices.clear(); -+ -+ if (m_connection) -+ { -+ dbus_connection_unref(m_connection); -+ m_connection = NULL; -+ } -+ -+ dbus_error_free (&m_error); -+} -+ -+void CUDisksProvider::Initialize() -+{ -+ CLog::Log(LOGDEBUG, "Selected UDisks as storage provider"); -+ m_DaemonVersion = atoi(CDBusUtil::GetVariant("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "DaemonVersion").asString()); -+ CLog::Log(LOGDEBUG, "UDisks: DaemonVersion %i", m_DaemonVersion); -+ -+ CLog::Log(LOGDEBUG, "UDisks: Querying available devices"); -+ std::vector devices = EnumerateDisks(); -+ for (unsigned int i = 0; i < devices.size(); i++) -+ DeviceAdded(devices[i].c_str(), NULL); -+} -+ -+bool CUDisksProvider::Eject(CStdString mountpath) -+{ -+ DeviceMap::iterator itr; -+ CStdString path(mountpath); -+ CUtil::RemoveSlashAtEnd(path); -+ -+ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ { -+ CUDiskDevice *device = itr->second; -+ if (device->m_MountPath.Equals(path)) -+ return device->UnMount(); -+ } -+ -+ return false; -+} -+ -+std::vector CUDisksProvider::GetDiskUsage() -+{ -+ std::vector devices; -+ DeviceMap::iterator itr; -+ -+ for(itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ { -+ CUDiskDevice *device = itr->second; -+ if (device->IsApproved()) -+ { -+ CStdString str; -+ str.Format("%s %.1f GiB", device->m_MountPath.c_str(), device->m_PartitionSizeGiB); -+ devices.push_back(str); -+ } -+ } -+ -+ return devices; -+} -+ -+bool CUDisksProvider::PumpDriveChangeEvents(IStorageEventsCallback *callback) -+{ -+ bool result = false; -+ if (m_connection) -+ { -+ dbus_connection_read_write(m_connection, 0); -+ DBusMessage *msg = dbus_connection_pop_message(m_connection); -+ -+ if (msg) -+ { -+ char *object; -+ if (dbus_message_get_args (msg, NULL, DBUS_TYPE_OBJECT_PATH, &object, DBUS_TYPE_INVALID)) -+ { -+ result = true; -+ if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceAdded")) -+ DeviceAdded(object, callback); -+ else if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceRemoved")) -+ DeviceRemoved(object, callback); -+ else if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceChanged")) -+ DeviceChanged(object, callback); -+ } -+ dbus_message_unref(msg); -+ } -+ } -+ return result; -+} -+ -+bool CUDisksProvider::HasUDisks() -+{ -+ bool hasUDisks = false; -+ CDBusMessage message("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); -+ -+ DBusError error; -+ dbus_error_init (&error); -+ DBusConnection *con = dbus_bus_get(DBUS_BUS_SYSTEM, &error); -+ -+ message.Send(con, &error); -+ -+ if (!dbus_error_is_set(&error)) -+ hasUDisks = true; -+ else -+ CLog::Log(LOGDEBUG, "UDisks: %s - %s", error.name, error.message); -+ -+ dbus_error_free (&error); -+ dbus_connection_unref(con); -+ -+ return hasUDisks; -+} -+ -+void CUDisksProvider::DeviceAdded(const char *object, IStorageEventsCallback *callback) -+{ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceAdded (%s)", object); -+ -+ if (m_AvailableDevices[object]) -+ { -+ CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceAdded on an indexed disk"); -+ delete m_AvailableDevices[object]; -+ } -+ -+ CUDiskDevice *device = NULL; -+ device = new CUDiskDevice(object); -+ m_AvailableDevices[object] = device; -+ -+ if (g_advancedSettings.m_handleMounting) -+ device->Mount(); -+ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceAdded - %s", device->toString().c_str()); -+ if (device->m_isMounted && device->IsApproved()) -+ { -+ CLog::Log(LOGNOTICE, "UDisks: Added %s", device->m_MountPath.c_str()); -+ if (callback) -+ callback->OnStorageAdded(device->m_Label, device->m_MountPath); -+ } -+} -+ -+void CUDisksProvider::DeviceRemoved(const char *object, IStorageEventsCallback *callback) -+{ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceRemoved (%s)", object); -+ -+ CUDiskDevice *device = m_AvailableDevices[object]; -+ if (device) -+ { -+ if (device->m_isMounted && callback) -+ callback->OnStorageUnsafelyRemoved(device->m_Label); -+ -+ delete m_AvailableDevices[object]; -+ m_AvailableDevices.erase(object); -+ } -+} -+ -+void CUDisksProvider::DeviceChanged(const char *object, IStorageEventsCallback *callback) -+{ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceChanged (%s)", object); -+ -+ CUDiskDevice *device = m_AvailableDevices[object]; -+ if (device == NULL) -+ { -+ CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceChanged on an unindexed disk"); -+ DeviceAdded(object, callback); -+ } -+ else -+ { -+ bool mounted = device->m_isMounted; -+ device->Update(); -+ if (!mounted && device->m_isMounted && callback) -+ callback->OnStorageAdded(device->m_MountPath, device->m_Label); -+ else if (mounted && !device->m_isMounted && callback) -+ callback->OnStorageSafelyRemoved(device->m_Label); -+ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceChanged - %s", device->toString().c_str()); -+ } -+} -+ -+std::vector CUDisksProvider::EnumerateDisks() -+{ -+ std::vector devices; -+ CDBusMessage message("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ { -+ char** disks = NULL; -+ int length = 0; -+ -+ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &disks, &length, DBUS_TYPE_INVALID)) -+ { -+ for (int i = 0; i < length; i++) -+ devices.push_back(disks[i]); -+ -+ dbus_free_string_array(disks); -+ } -+ } -+ -+ return devices; -+} -+ -+void CUDisksProvider::GetDisks(VECSOURCES& devices, bool EnumerateRemovable) -+{ -+ DeviceMap::iterator itr; -+ -+ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ { -+ CUDiskDevice *device = itr->second; -+ if (device && device->IsApproved() && device->m_isSystemInternal != EnumerateRemovable) -+ devices.push_back(device->ToMediaShare()); -+ } -+} -+#endif -diff -Naur xbmc-29490/xbmc/linux/UDisksProvider.h xbmc-29490.patch/xbmc/linux/UDisksProvider.h ---- xbmc-29490/xbmc/linux/UDisksProvider.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/UDisksProvider.h 2010-04-25 23:12:52.130485628 +0200 -@@ -0,0 +1,86 @@ -+#pragma once -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+#include "IStorageProvider.h" -+#ifdef HAS_DBUS -+#include "DBusUtil.h" -+ -+class CUDiskDevice -+{ -+public: -+ CUDiskDevice(const char *DeviceKitUDI); -+ ~CUDiskDevice() { } -+ -+ void Update(); -+ -+ bool Mount(); -+ bool UnMount(); -+ -+ bool IsApproved(); -+ -+ CStdString toString(); -+ -+ CMediaSource ToMediaShare(); -+ -+ CStdString m_UDI, m_DeviceKitUDI, m_MountPath, m_FileSystem, m_Label; -+ bool m_isMounted, m_isMountedByUs, m_isRemovable, m_isPartition, m_isFileSystem, m_isSystemInternal; -+ float m_PartitionSizeGiB; -+}; -+ -+class CUDisksProvider : public IStorageProvider -+{ -+public: -+ CUDisksProvider(); -+ virtual ~CUDisksProvider(); -+ -+ virtual void Initialize(); -+ virtual void Stop() { } -+ -+ virtual void GetLocalDrives(VECSOURCES &localDrives) { GetDisks(localDrives, false); } -+ virtual void GetRemovableDrives(VECSOURCES &removableDrives) { GetDisks(removableDrives, true); } -+ -+ virtual bool Eject(CStdString mountpath); -+ -+ virtual std::vector GetDiskUsage(); -+ -+ virtual bool PumpDriveChangeEvents(IStorageEventsCallback *callback); -+ -+ static bool HasUDisks(); -+private: -+ typedef std::map DeviceMap; -+ typedef std::pair DevicePair; -+ -+ void DeviceAdded(const char *object, IStorageEventsCallback *callback); -+ void DeviceRemoved(const char *object, IStorageEventsCallback *callback); -+ void DeviceChanged(const char *object, IStorageEventsCallback *callback); -+ -+ std::vector EnumerateDisks(); -+ -+ void GetDisks(VECSOURCES& devices, bool EnumerateRemovable); -+ -+ int m_DaemonVersion; -+ -+ DeviceMap m_AvailableDevices; -+ -+ DBusConnection *m_connection; -+ DBusError m_error; -+}; -+#endif -diff -Naur xbmc-29490/xbmc/PowerManager.cpp xbmc-29490.patch/xbmc/PowerManager.cpp ---- xbmc-29490/xbmc/PowerManager.cpp 2010-04-24 22:43:14.000000000 +0200 -+++ xbmc-29490.patch/xbmc/PowerManager.cpp 2010-04-25 23:12:52.132484681 +0200 -@@ -35,6 +35,7 @@ - #ifdef __APPLE__ - #include "osx/CocoaPowerSyscall.h" - #elif defined(_LINUX) && defined(HAS_DBUS) -+#include "linux/ConsoleUPowerSyscall.h" - #include "linux/ConsoleDeviceKitPowerSyscall.h" - #ifdef HAS_HAL - #include "linux/HALPowerSyscall.h" -@@ -74,6 +75,8 @@ - #elif defined(_LINUX) && defined(HAS_DBUS) - if (CConsoleDeviceKitPowerSyscall::HasDeviceConsoleKit()) - m_instance = new CConsoleDeviceKitPowerSyscall(); -+ else if (CConsoleUPowerSyscall::HasDeviceConsoleKit()) -+ m_instance = new CConsoleUPowerSyscall(); - #ifdef HAS_HAL - else - m_instance = new CHALPowerSyscall(); diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index a97051b150..0aac1ae6ab 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29605.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29740.tar.bz2