diff --git a/CHANGELOG b/CHANGELOG index e5957e3c65..9f0f5d6ed8 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,8 @@ Changelog OpenELEC-1.0 to OpenELEC-2.0 Package updates: - update XBMC to XBMC-11.0 (Eden) - update eglibc to eglibc-2.14 + - update Python to Python-2.7.2 + - update gcc to gcc-4.6.2 Added functions: - PXE netboot support @@ -14,4 +16,5 @@ Added functions: Removed functions: - remove netmount.conf (XBMC includes native NFS/AFP/CIFS/SSH support) - + - move PS3 controller support in a own addon + - move Wii controller support in a own addon diff --git a/config/graphic b/config/graphic index 13931f004f..fc23d9ecbb 100644 --- a/config/graphic +++ b/config/graphic @@ -32,6 +32,14 @@ get_graphicdrivers() { GALLIUM_DRIVERS="$GALLIUM_DRIVERS,nouveau" XORG_DRIVERS="$XORG_DRIVERS nouveau" # LLVM_SUPPORT="yes" + if [ "$VDPAU" = yes ]; then + MESA_VDPAU_SUPPORT=yes + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast" + fi +# if [ "$VAAPI" = yes ]; then +# MESA_VAAPI_SUPPORT=yes +# GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast" +# fi fi if [ "$drv" = "nvidia" ]; then @@ -61,6 +69,14 @@ get_graphicdrivers() { GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r300" XORG_DRIVERS="$XORG_DRIVERS ati" LLVM_SUPPORT="yes" + if [ "$VDPAU" = yes ]; then + MESA_VDPAU_SUPPORT=yes + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast" + fi +# if [ "$VAAPI" = yes ]; then +# MESA_VAAPI_SUPPORT=yes +# GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast" +# fi fi if [ "$drv" = "r600" ]; then @@ -68,6 +84,14 @@ get_graphicdrivers() { GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r600" XORG_DRIVERS="$XORG_DRIVERS ati" LLVM_SUPPORT="yes" + if [ "$VDPAU" = yes ]; then + MESA_VDPAU_SUPPORT=yes + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast" + fi +# if [ "$VAAPI" = yes ]; then +# MESA_VAAPI_SUPPORT=yes +# GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast" +# fi fi if [ "$drv" = "vmware" ]; then diff --git a/config/options b/config/options index 0a916b75b4..a50ca719a6 100644 --- a/config/options +++ b/config/options @@ -20,7 +20,7 @@ PROJECT_DIR="$ROOT/projects" OPENELEC_VERSION=`cat VERSION` if [ "$OPENELEC_VERSION" = "devel" ]; then - OS_VERSION="1.0" + OS_VERSION="1.90" else OS_MAJOR_VERSION=`echo "$OPENELEC_VERSION" | cut -f1 -d "."` OS_MINOR_VERSION=`echo "$OPENELEC_VERSION" | cut -f2 -d "."` diff --git a/packages/addons/debugging/tools/evtest/changelog.txt b/packages/addons/debugging/tools/evtest/changelog.txt index 2efafae05f..b10517af30 100644 --- a/packages/addons/debugging/tools/evtest/changelog.txt +++ b/packages/addons/debugging/tools/evtest/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - update to evtest-1.29 - prepare for OpenELEC-1.0 release diff --git a/packages/addons/debugging/tools/htop/changelog.txt b/packages/addons/debugging/tools/htop/changelog.txt index 7595cef8a7..27bc5bb0a0 100644 --- a/packages/addons/debugging/tools/htop/changelog.txt +++ b/packages/addons/debugging/tools/htop/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - prepare for OpenELEC-1.0 release diff --git a/packages/mediacenter/xbmc/udev.d/98-wiiremote.rules b/packages/addons/driver/imon-mce/addon old mode 100644 new mode 100755 similarity index 82% rename from packages/mediacenter/xbmc/udev.d/98-wiiremote.rules rename to packages/addons/driver/imon-mce/addon index b12c683a39..e0fc3c5a63 --- a/packages/mediacenter/xbmc/udev.d/98-wiiremote.rules +++ b/packages/addons/driver/imon-mce/addon @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) @@ -18,10 +20,4 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -# only does something with "bluetooth" subsystem devices. -SUBSYSTEM!="bluetooth", GOTO="end" - -# Start Wii Remote support if bluetooth is starting -ACTION=="add|remove", RUN+="/lib/udev/wiiremote_helper" - -LABEL="end" +. config/options $1 diff --git a/packages/addons/driver/imon-mce/changelog.txt b/packages/addons/driver/imon-mce/changelog.txt new file mode 100644 index 0000000000..1a19c051a8 --- /dev/null +++ b/packages/addons/driver/imon-mce/changelog.txt @@ -0,0 +1,2 @@ +1.90.0 +- initial version imon-mce diff --git a/packages/addons/driver/imon-mce/icon/icon.png b/packages/addons/driver/imon-mce/icon/icon.png new file mode 100644 index 0000000000..ee39e2a079 Binary files /dev/null and b/packages/addons/driver/imon-mce/icon/icon.png differ diff --git a/packages/addons/driver/imon-mce/meta b/packages/addons/driver/imon-mce/meta new file mode 100644 index 0000000000..ca57b6d975 --- /dev/null +++ b/packages/addons/driver/imon-mce/meta @@ -0,0 +1,38 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +PKG_NAME="imon-mce" +PKG_VERSION="1.90" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.openelec.tv" +PKG_URL="" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="driver/remote" +PKG_SHORTDESC="imon-mce: a driver to add support for MCE remotes to the imon driver" +PKG_LONGDESC="imon-mce is a driver to add support for MCE remotes to the imon driver. To readd imon remote support uninstall or disable this addon again." + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" + +PKG_AUTORECONF="no" diff --git a/packages/mediacenter/xbmc/scripts/wiiremote_helper b/packages/addons/driver/imon-mce/source/bin/imon-mce.service similarity index 76% rename from packages/mediacenter/xbmc/scripts/wiiremote_helper rename to packages/addons/driver/imon-mce/source/bin/imon-mce.service index 5f8d87556f..d2edce0088 100755 --- a/packages/mediacenter/xbmc/scripts/wiiremote_helper +++ b/packages/addons/driver/imon-mce/source/bin/imon-mce.service @@ -1,8 +1,8 @@ #!/bin/sh ################################################################################ -# Copyright (C) 2009-2010 OpenELEC.tv -# http://www.openelec.tv +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) # # 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 @@ -20,15 +20,5 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -case "${ACTION}" in - add) - if [ -f /usr/bin/xbmc-wiiremote ]; then - /usr/bin/xbmc-wiiremote & - fi - ;; - remove) - killall xbmc-wiiremote - ;; -esac - -exit 0 +sleep 1 && \ +ir-keytable -p rc6 -w /etc/rc_keymaps/imon_mce & \ No newline at end of file diff --git a/packages/mediacenter/xbmc/scripts/ps3remote_helper b/packages/addons/driver/imon-mce/source/default.py old mode 100755 new mode 100644 similarity index 75% rename from packages/mediacenter/xbmc/scripts/ps3remote_helper rename to packages/addons/driver/imon-mce/source/default.py index 84d8db2806..5f07121ad5 --- a/packages/mediacenter/xbmc/scripts/ps3remote_helper +++ b/packages/addons/driver/imon-mce/source/default.py @@ -1,8 +1,6 @@ -#!/bin/sh - ################################################################################ -# Copyright (C) 2009-2010 OpenELEC.tv -# http://www.openelec.tv +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) # # 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 @@ -20,15 +18,6 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -case "${ACTION}" in - add) - if [ -f /usr/bin/xbmc-ps3remote ]; then - /usr/bin/xbmc-ps3remote localhost 9777 & - fi - ;; - remove) - killall xbmc-ps3remote - ;; -esac +import xbmc, time, os, subprocess -exit 0 +os.system("imon-mce.service") diff --git a/packages/addons/driver/xbmc-ps3d/addon b/packages/addons/driver/xbmc-ps3d/addon new file mode 100755 index 0000000000..5eb9caf3b8 --- /dev/null +++ b/packages/addons/driver/xbmc-ps3d/addon @@ -0,0 +1,34 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +. config/options $1 + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pixmaps + cp $BUILD/xbmc-*/tools/EventClients/icons/bluetooth.png $ADDON_BUILD/$PKG_ADDON_ID/pixmaps + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib + cp -R $BUILD/PyBluez-*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib/xbmc + cp $BUILD/xbmc-*/tools/EventClients/Clients/PS3\ Sixaxis\ Controller/ps3d.py $ADDON_BUILD/$PKG_ADDON_ID/pylib/xbmc + cp $BUILD/xbmc-*/tools/EventClients/Clients/PS3\ BD\ Remote/ps3_remote.py $ADDON_BUILD/$PKG_ADDON_ID/pylib/xbmc + cp -R $BUILD/xbmc-*/tools/EventClients/lib/python/* $ADDON_BUILD/$PKG_ADDON_ID/pylib/xbmc diff --git a/packages/addons/driver/xbmc-ps3d/changelog.txt b/packages/addons/driver/xbmc-ps3d/changelog.txt new file mode 100644 index 0000000000..3ee5b5324f --- /dev/null +++ b/packages/addons/driver/xbmc-ps3d/changelog.txt @@ -0,0 +1,2 @@ +1.90.0 +- initial version xbmc-ps3d diff --git a/packages/addons/driver/xbmc-ps3d/icon/icon.png b/packages/addons/driver/xbmc-ps3d/icon/icon.png new file mode 100644 index 0000000000..6da0cbd829 Binary files /dev/null and b/packages/addons/driver/xbmc-ps3d/icon/icon.png differ diff --git a/packages/addons/driver/xbmc-ps3d/meta b/packages/addons/driver/xbmc-ps3d/meta new file mode 100644 index 0000000000..e6255592e6 --- /dev/null +++ b/packages/addons/driver/xbmc-ps3d/meta @@ -0,0 +1,38 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +PKG_NAME="xbmc-ps3d" +PKG_VERSION="1.90" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.xbmc.org" +PKG_URL="" +PKG_DEPENDS="PyBluez" +PKG_BUILD_DEPENDS="toolchain xbmc PyBluez" +PKG_PRIORITY="optional" +PKG_SECTION="driver/remote" +PKG_SHORTDESC="xbmc-ps3d: a quick port of brandonj's PS3 remote script to use the event server for sending input events." +PKG_LONGDESC="xbmc-ps3d is a quick port of brandonj's PS3 remote script to use the event server for sending input events. This addon also supports the PS3 sixaxis controller." + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" + +PKG_AUTORECONF="no" diff --git a/packages/addons/driver/xbmc-ps3d/source/bin/ps3d.service b/packages/addons/driver/xbmc-ps3d/source/bin/ps3d.service new file mode 100755 index 0000000000..f22ce3314c --- /dev/null +++ b/packages/addons/driver/xbmc-ps3d/source/bin/ps3d.service @@ -0,0 +1,41 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +# Addon settings + ADDON_DIR="$HOME/.xbmc/addons/driver.remote.xbmc-ps3d" + ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.remote.xbmc-ps3d" + PIXMAPS_DIR="$ADDON_DIR/pixmaps" + + export PYTHONPATH="$PYTHONPATH:$ADDON_DIR/pylib" + +################################################################################ +# setup ps3d +################################################################################ + + if [ ! -f $ADDON_DIR/pylib/xbmc/defs.py ]; then + echo "ICON_PATH=\"$PIXMAPS_DIR\"" > $ADDON_DIR/pylib/xbmc/defs.py + fi + +################################################################################ +# start ps3d +################################################################################ + python $ADDON_DIR/pylib/xbmc/ps3d.py localhost & diff --git a/packages/addons/driver/xbmc-ps3d/source/default.py b/packages/addons/driver/xbmc-ps3d/source/default.py new file mode 100644 index 0000000000..f9b76c9cba --- /dev/null +++ b/packages/addons/driver/xbmc-ps3d/source/default.py @@ -0,0 +1,23 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +import xbmc, time, os, subprocess + +os.system("ps3d.service") diff --git a/packages/mediacenter/xbmc/sleep.d/02_update_musicdb b/packages/addons/driver/xbmc-wiimote/addon similarity index 75% rename from packages/mediacenter/xbmc/sleep.d/02_update_musicdb rename to packages/addons/driver/xbmc-wiimote/addon index 22ab151a7b..452bc7e5f5 100755 --- a/packages/mediacenter/xbmc/sleep.d/02_update_musicdb +++ b/packages/addons/driver/xbmc-wiimote/addon @@ -20,21 +20,10 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -. /etc/profile +. config/options $1 -case "$1" in - thaw|resume) - ( - if [ -f /var/config/settings.conf ]; then - . /var/config/settings.conf +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $BUILD/xbmc-*/tools/EventClients/Clients/WiiRemote/WiiUse_WiiRemote $ADDON_BUILD/$PKG_ADDON_ID/bin/wiimote - if [ "$WAKEUP_MUSICDBUPDATE" = "true" ]; then - usleep 5000000 - xbmc-send --host=127.0.0.1 -a "UpdateLibrary(music)" - fi - fi - )& - ;; - *) exit $NA - ;; -esac +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -P $BUILD/wiiuse_v[0-9]*/src/release*/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib diff --git a/packages/mediacenter/xbmc/udev.d/98-ps3remote.rules b/packages/addons/driver/xbmc-wiimote/build old mode 100644 new mode 100755 similarity index 82% rename from packages/mediacenter/xbmc/udev.d/98-ps3remote.rules rename to packages/addons/driver/xbmc-wiimote/build index 913d47f406..3a6aa3ca4b --- a/packages/mediacenter/xbmc/udev.d/98-ps3remote.rules +++ b/packages/addons/driver/xbmc-wiimote/build @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) @@ -18,10 +20,9 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -# only does something with "bluetooth" subsystem devices. -SUBSYSTEM!="bluetooth", GOTO="end" +. config/options $1 -# Start PS3 Remote support if bluetooth is starting -ACTION=="add|remove", RUN+="/lib/udev/ps3remote_helper" +$SCRIPTS/unpack xbmc -LABEL="end" +cd $BUILD/xbmc-*/tools/EventClients/Clients/WiiRemote + $CXX $CFLAGS -lwiiuse WiiUse_WiiRemote.cpp -o WiiUse_WiiRemote diff --git a/packages/addons/driver/xbmc-wiimote/changelog.txt b/packages/addons/driver/xbmc-wiimote/changelog.txt new file mode 100644 index 0000000000..7403cb4412 --- /dev/null +++ b/packages/addons/driver/xbmc-wiimote/changelog.txt @@ -0,0 +1,2 @@ +1.90.0 +- initial version xbmc-wiimote diff --git a/packages/addons/driver/xbmc-wiimote/icon/icon.png b/packages/addons/driver/xbmc-wiimote/icon/icon.png new file mode 100644 index 0000000000..6da0cbd829 Binary files /dev/null and b/packages/addons/driver/xbmc-wiimote/icon/icon.png differ diff --git a/packages/addons/driver/xbmc-wiimote/meta b/packages/addons/driver/xbmc-wiimote/meta new file mode 100644 index 0000000000..d178991dd1 --- /dev/null +++ b/packages/addons/driver/xbmc-wiimote/meta @@ -0,0 +1,38 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +PKG_NAME="xbmc-wiimote" +PKG_VERSION="1.90" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.xbmc.org" +PKG_URL="" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="toolchain wiiuse" +PKG_PRIORITY="optional" +PKG_SECTION="driver/remote" +PKG_SHORTDESC="xbmc-wiimote: a driver to support WiiMote Controllers." +PKG_LONGDESC="xbmc-wiimote is a driver to support WiiMote Controllers." + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" + +PKG_AUTORECONF="no" diff --git a/packages/addons/driver/xbmc-wiimote/source/bin/wiimote.service b/packages/addons/driver/xbmc-wiimote/source/bin/wiimote.service new file mode 100755 index 0000000000..9a47b482ca --- /dev/null +++ b/packages/addons/driver/xbmc-wiimote/source/bin/wiimote.service @@ -0,0 +1,33 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +# Addon settings + ADDON_DIR="$HOME/.xbmc/addons/driver.remote.xbmc-wiimote" + ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.remote.xbmc-wiimote" + + +################################################################################ +# start ps3d +################################################################################ + chmod +x $ADDON_DIR/lib/* + + LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" wiimote & diff --git a/packages/addons/driver/xbmc-wiimote/source/default.py b/packages/addons/driver/xbmc-wiimote/source/default.py new file mode 100644 index 0000000000..18c9e9113c --- /dev/null +++ b/packages/addons/driver/xbmc-wiimote/source/default.py @@ -0,0 +1,23 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +import xbmc, time, os, subprocess + +os.system("wiimote.service") diff --git a/packages/addons/games/megaglest-source/meta b/packages/addons/games/megaglest-source/meta index 1f06c9b03d..5bc2793e79 100644 --- a/packages/addons/games/megaglest-source/meta +++ b/packages/addons/games/megaglest-source/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.glest.org" PKG_URL="$SOURCEFORGE_SRC/megaglest/current_release/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS="curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 Mesa" -PKG_BUILD_DEPENDS="toolchain lua curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 Mesa" +PKG_DEPENDS="curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 $MESA" +PKG_BUILD_DEPENDS="toolchain lua curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 $MESA" PKG_PRIORITY="optional" PKG_SECTION="games" PKG_SHORTDESC="(Game) MegaGlest: a free 3D real-time strategy game" diff --git a/packages/addons/games/sauerbraten/meta b/packages/addons/games/sauerbraten/meta index 1a8d50f79a..a9a1f475ef 100644 --- a/packages/addons/games/sauerbraten/meta +++ b/packages/addons/games/sauerbraten/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://sauerbraten.org/" PKG_URL="$SOURCEFORGE_SRC/sauerbraten/sauerbraten/2010_07_19/${PKG_NAME}_${PKG_VERSION}_justice_edition_linux.tar.bz2" -PKG_DEPENDS="zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer Mesa" -PKG_BUILD_DEPENDS="toolchain zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer Mesa" +PKG_DEPENDS="zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer $MESA" +PKG_BUILD_DEPENDS="toolchain zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer $MESA" PKG_PRIORITY="optional" PKG_SECTION="games" PKG_SHORTDESC="(Game) Cube 2: Sauerbraten" diff --git a/packages/addons/multimedia/libav/changelog.txt b/packages/addons/multimedia/libav/changelog.txt index da5fc454c5..d8c830054b 100644 --- a/packages/addons/multimedia/libav/changelog.txt +++ b/packages/addons/multimedia/libav/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - update to libav-0.7.2 - prepare for OpenELEC-1.0 release diff --git a/packages/addons/multimedia/makemkv/changelog.txt b/packages/addons/multimedia/makemkv/changelog.txt index f1a7f2103f..d75afa10ac 100644 --- a/packages/addons/multimedia/makemkv/changelog.txt +++ b/packages/addons/multimedia/makemkv/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - prepare for OpenELEC-1.0 release diff --git a/packages/addons/networking/backup/rsync/changelog.txt b/packages/addons/networking/backup/rsync/changelog.txt index 5bfc285858..ecdb245d11 100644 --- a/packages/addons/networking/backup/rsync/changelog.txt +++ b/packages/addons/networking/backup/rsync/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - update to rsync-3.0.9 - prepare for OpenELEC-1.0 release diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt index 39a3873e82..02012ef083 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - update to unrar-4.0.7 - update to CouchPotato-4eec8e0 diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/meta b/packages/addons/service/downloadmanager/SABnzbd-Suite/meta index 92fe0a87d8..eb3c7eca8f 100644 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/meta +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="SABnzbd-Suite" -PKG_VERSION="1.0" +PKG_VERSION="1.90" PKG_REV="0" PKG_ARCH="any" PKG_LICENSE="OSS" diff --git a/packages/addons/service/downloadmanager/transmission/changelog.txt b/packages/addons/service/downloadmanager/transmission/changelog.txt index c090896e08..85f94fefdc 100644 --- a/packages/addons/service/downloadmanager/transmission/changelog.txt +++ b/packages/addons/service/downloadmanager/transmission/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - update to transmission-2.41 - prepare for OpenELEC-1.0 release diff --git a/packages/addons/service/multimedia/hts-tvheadend/changelog.txt b/packages/addons/service/multimedia/hts-tvheadend/changelog.txt index 644d301c42..6acfabf6b1 100644 --- a/packages/addons/service/multimedia/hts-tvheadend/changelog.txt +++ b/packages/addons/service/multimedia/hts-tvheadend/changelog.txt @@ -1,5 +1,6 @@ -1.0.2 +1.90.0 - add (CH) GA Weissenstein default muxes +- prepare for OpenELEC-1.90 release 1.0.1 - add XMLTV tv_file_grab support diff --git a/packages/addons/service/multimedia/hts-tvheadend/meta b/packages/addons/service/multimedia/hts-tvheadend/meta index 1499c51199..869e5f621f 100644 --- a/packages/addons/service/multimedia/hts-tvheadend/meta +++ b/packages/addons/service/multimedia/hts-tvheadend/meta @@ -20,7 +20,7 @@ PKG_NAME="hts-tvheadend" PKG_VERSION="c88a646" -PKG_REV="2" +PKG_REV="0" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html" diff --git a/packages/addons/shell/texteditor/nano/changelog.txt b/packages/addons/shell/texteditor/nano/changelog.txt index 417b7aa987..585c1182dc 100644 --- a/packages/addons/shell/texteditor/nano/changelog.txt +++ b/packages/addons/shell/texteditor/nano/changelog.txt @@ -1,3 +1,6 @@ +1.90.0 +- prepare for OpenELEC-1.90 release + 1.0.0 - update to nano-2.3.1 - prepare for OpenELEC-1.0 release diff --git a/packages/audio/alsa-lib/build b/packages/audio/alsa-lib/build index da3f8e495a..8d9fca8644 100755 --- a/packages/audio/alsa-lib/build +++ b/packages/audio/alsa-lib/build @@ -22,6 +22,9 @@ . config/options $1 +# alsa-lib fails building with LTO support on gcc-4.6 + strip_lto + CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=32 -fPIC -DPIC" cd $PKG_BUILD diff --git a/packages/debug/mesa-demos/meta b/packages/debug/mesa-demos/meta index da88c4217a..ee98876b45 100644 --- a/packages/debug/mesa-demos/meta +++ b/packages/debug/mesa-demos/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.mesa3d.org/" PKG_URL="ftp://ftp.freedesktop.org/pub/mesa/demos/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS="libX11 Mesa glew" -PKG_BUILD_DEPENDS="toolchain libX11 Mesa glew" +PKG_DEPENDS="libX11 $MESA glew" +PKG_BUILD_DEPENDS="toolchain libX11 $MESA glew" PKG_PRIORITY="optional" PKG_SECTION="debug" PKG_SHORTDESC="mesa-demos: Mesa 3D demos" diff --git a/packages/devel/pcre/build b/packages/devel/pcre/build index 29456feb4c..a5d4560466 100755 --- a/packages/devel/pcre/build +++ b/packages/devel/pcre/build @@ -22,6 +22,9 @@ . config/options $1 +# pcre fails building with LTO support on gcc-4.6 + strip_lto + cd $PKG_BUILD mkdir -p m4 && do_autoreconf diff --git a/packages/graphics/cairo/meta b/packages/graphics/cairo/meta index 9dd9fa2ecd..00fd0bc6ba 100644 --- a/packages/graphics/cairo/meta +++ b/packages/graphics/cairo/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="LGPL" PKG_SITE="http://cairographics.org/" PKG_URL="http://cairographics.org/releases/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="zlib freetype fontconfig libpng pixman libXrender libX11 Mesa" -PKG_BUILD_DEPENDS="toolchain zlib freetype fontconfig libpng pixman libXrender libX11 Mesa" +PKG_DEPENDS="zlib freetype fontconfig libpng pixman libXrender libX11 $MESA" +PKG_BUILD_DEPENDS="toolchain zlib freetype fontconfig libpng pixman libXrender libX11 $MESA" PKG_PRIORITY="optional" PKG_SECTION="graphics" PKG_SHORTDESC="cairo: Multi-platform 2D graphics library" diff --git a/packages/graphics/glew/meta b/packages/graphics/glew/meta index aef2335097..fb4eb79e72 100644 --- a/packages/graphics/glew/meta +++ b/packages/graphics/glew/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="BSD" PKG_SITE="http://glew.sourceforge.net/" PKG_URL="$SOURCEFORGE_SRC/glew/glew/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tgz" -PKG_DEPENDS="libX11 libXext libXi libXmu Mesa" -PKG_BUILD_DEPENDS="toolchain libX11 libXext libXi libXmu Mesa" +PKG_DEPENDS="libX11 libXext libXi libXmu $MESA" +PKG_BUILD_DEPENDS="toolchain libX11 libXext libXi libXmu $MESA" PKG_PRIORITY="optional" PKG_SECTION="graphics" PKG_SHORTDESC="glew: The OpenGL Extension Wrangler Library" diff --git a/packages/graphics/libdrm/meta b/packages/graphics/libdrm/meta index 10e34c1e1e..e840b32fd6 100644 --- a/packages/graphics/libdrm/meta +++ b/packages/graphics/libdrm/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="libdrm" -PKG_VERSION="2.4.26" +PKG_VERSION="2.4.27" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/graphics/mesa/build b/packages/graphics/mesa/build new file mode 100755 index 0000000000..c7ea0358bf --- /dev/null +++ b/packages/graphics/mesa/build @@ -0,0 +1,97 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +. config/options $1 + +get_graphicdrivers + +# dont use gold linker because of compiling issues + strip_gold + +# Mesa fails to build with LTO optimization + strip_lto + +if [ "$LLVM_SUPPORT" = "yes" ]; then + export LLVM_CONFIG="$SYSROOT_PREFIX/usr/bin/llvm-config" + MESA_GALLIUM_LLVM="--enable-gallium-llvm" +else + MESA_GALLIUM_LLVM="--disable-gallium-llvm" +fi + +if [ "$MESA_VDPAU_SUPPORT" = "yes" ]; then + MESA_VDPAU="--enable-vdpau" +else + MESA_VDPAU="--disable-vdpau" +fi + +if [ "$MESA_VAAPI_SUPPORT" = "yes" ]; then + MESA_VAAPI="--enable-va" +else + MESA_VAAPI="--disable-va" +fi + +cd $PKG_BUILD + +HOST_CC="$HOST_CC" \ +HOST_OPT_FLAGS="$HOST_CFLAGS" \ +X11_INCLUDES= \ +DRI_DRIVER_INSTALL_DIR="$XORG_PATH_DRI" \ +DRI_DRIVER_SEARCH_DIR="$XORG_PATH_DRI" \ +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-shared \ + --disable-debug \ + --enable-texture-float \ + --disable-selinux \ + --enable-opengl \ + --enable-glx-tls \ + --enable-driglx-direct \ + --disable-gles1 \ + --disable-gles2 \ + --disable-openvg \ + --disable-xorg \ + --enable-glu \ + --disable-osmesa \ + --disable-d3d1x \ + --disable-egl \ + --disable-gbm \ + --disable-xvmc \ + $MESA_VDPAU \ + $MESA_VAAPI \ + --disable-gallium-egl \ + --disable-gallium-gbm \ + --enable-shared-glapi \ + --enable-xcb \ + --enable-shared-dricore \ + --disable-egl \ + $MESA_GALLIUM_LLVM \ + --with-gallium-drivers="$GALLIUM_DRIVERS" \ + --with-dri-drivers="$DRI_DRIVERS" \ + --with-x \ + +make + +$MAKEINSTALL diff --git a/packages/graphics/mesa/install b/packages/graphics/mesa/install new file mode 100755 index 0000000000..8c4faba861 --- /dev/null +++ b/packages/graphics/mesa/install @@ -0,0 +1,44 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +. config/options $1 + +mkdir -p $INSTALL/usr/lib + cp -P $PKG_BUILD/lib/libGL.so.1.2 $INSTALL/usr/lib/libGL_mesa.so.1 # rename for cooperate with nvidia drivers + ln -sf libGL.so.1 $INSTALL/usr/lib/libGL.so + ln -sf /var/lib/libGL.so $INSTALL/usr/lib/libGL.so.1 + cp -P $PKG_BUILD/lib/libGLU.so* $INSTALL/usr/lib + cp -P $PKG_BUILD/lib/libglapi.so* $INSTALL/usr/lib + +mkdir -p $INSTALL/usr/lib/dri + cp -P $PKG_BUILD/lib/libdricore.so $INSTALL/usr/lib/dri + cp -P $PKG_BUILD/lib/libglsl.so $INSTALL/usr/lib/dri + cp -P $PKG_BUILD/lib/*_dri.so $INSTALL/usr/lib/dri || true + cp -P $PKG_BUILD/lib/gallium/*_dri.so $INSTALL/usr/lib/dri || true + +mkdir -p $INSTALL/usr/lib/xorg/modules/drivers + cp -P $PKG_BUILD/lib/gallium/*_drv.so $INSTALL/usr/lib/xorg/modules/drivers || true + +if [ "$MESA_VDPAU_SUPPORT" = "yes" ]; then + mkdir -p $INSTALL/usr/lib/vdpau + cp -P $PKG_BUILD/lib/gallium/libvdpau_*.so* $INSTALL/usr/lib/vdpau +fi diff --git a/packages/graphics/mesa/meta b/packages/graphics/mesa/meta new file mode 100644 index 0000000000..3379941796 --- /dev/null +++ b/packages/graphics/mesa/meta @@ -0,0 +1,53 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +PKG_NAME="mesa" +PKG_VERSION="a1b737d72f1fec1d967255f4f87b5208a857c87f" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.mesa3d.org/" +PKG_URL="http://cgit.freedesktop.org/mesa/mesa/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS="libXdamage libdrm expat libXext libXfixes libXxf86vm libxcb libX11" +PKG_BUILD_DEPENDS="toolchain Python makedepend libxml2-host expat glproto dri2proto libdrm libXext libXdamage libXfixes libXxf86vm libxcb libX11" +PKG_PRIORITY="optional" +PKG_SECTION="graphics" +PKG_SHORTDESC="mesa: 3-D graphics library with OpenGL API" +PKG_LONGDESC="Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL*. To the extent that Mesa utilizes the OpenGL command syntax or state machine, it is being used with authorization from Silicon Graphics, Inc. However, the author makes no claim that Mesa is in any way a compatible replacement for OpenGL or associated with Silicon Graphics, Inc. Those who want a licensed implementation of OpenGL should contact a licensed vendor. While Mesa is not a licensed OpenGL implementation, it is currently being tested with the OpenGL conformance tests. For the current conformance status see the CONFORM file included in the Mesa distribution." +PKG_IS_ADDON="no" + +PKG_AUTORECONF="yes" + +get_graphicdrivers + +if [ "$LLVM_SUPPORT" = "yes" ]; then + PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS llvm" + PKG_DEPENDS="$PKG_DEPENDS llvm" +fi + +if [ "$MESA_VDPAU_SUPPORT" = "yes" ]; then + PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS libvdpau" + PKG_DEPENDS="$PKG_DEPENDS libvdpau" +fi + +if [ "$MESA_VAAPI_SUPPORT" = "yes" ]; then + PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS libva" + PKG_DEPENDS="$PKG_DEPENDS libva" +fi diff --git a/packages/graphics/mesa/patches/mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f-llvm_so.patch b/packages/graphics/mesa/patches/mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f-llvm_so.patch new file mode 100644 index 0000000000..a04d1c3f12 --- /dev/null +++ b/packages/graphics/mesa/patches/mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f-llvm_so.patch @@ -0,0 +1,12 @@ +diff -Naur mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f/configure.ac mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f.patch/configure.ac +--- mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f/configure.ac 2011-11-01 13:28:47.000000000 +0100 ++++ mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f.patch/configure.ac 2011-11-01 15:56:10.046619433 +0100 +@@ -1738,7 +1738,7 @@ + if test "x$LLVM_CONFIG" != xno; then + LLVM_VERSION=`$LLVM_CONFIG --version` + LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'` +- LLVM_LIBS="`$LLVM_CONFIG --libs`" ++ LLVM_LIBS="-lLLVM-$LLVM_VERSION" + + LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` + DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS" diff --git a/packages/initramfs/sysutils/busybox-initramfs/build b/packages/initramfs/sysutils/busybox-initramfs/build index 3de593bdd7..734cf9e977 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/build +++ b/packages/initramfs/sysutils/busybox-initramfs/build @@ -30,6 +30,9 @@ else BUSYBOX_CFG_FILE=$ROOT/$PKG_DIR/config/$1.conf fi +# busybox fails building with LTO support on gcc-4.6 + strip_lto + # optimize for size CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-Os|"` CFLAGS=`echo $CFLAGS | sed -e "s|-O.|-Os|"` diff --git a/packages/lang/Python/install b/packages/lang/Python/install index 8bf17b62bf..f843f23446 100755 --- a/packages/lang/Python/install +++ b/packages/lang/Python/install @@ -25,6 +25,12 @@ PYTHON_VERSION=2.7 PYTHON_LIB_DIR=$INSTALL/usr/lib/python$PYTHON_VERSION +EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib wsgiref" +INCLUDE_DIRS="compiler ctypes ctypes/macholib distutils distutils/command email" +INCLUDE_DIRS="$INCLUDE_DIRS email/mime encodings hotshot importlib json logging" +INCLUDE_DIRS="$INCLUDE_DIRS multiprocessing sqlite3 xml xml/dom xml/etree" +INCLUDE_DIRS="$INCLUDE_DIRS xml/parsers xml/sax" + mkdir -p $INSTALL/usr/bin cp $PKG_BUILD/.objdir-target/python $INSTALL/usr/bin/ @@ -44,80 +50,11 @@ mkdir -p $PYTHON_LIB_DIR/lib-dynload mkdir -p $PYTHON_LIB_DIR/plat-linux2 cp $PKG_BUILD/Lib/plat-linux2/* $PYTHON_LIB_DIR/plat-linux2 -mkdir -p $PYTHON_LIB_DIR/json - cp $PKG_BUILD/Lib/json/*.py $PYTHON_LIB_DIR/json - -mkdir -p $PYTHON_LIB_DIR/xml - cp $PKG_BUILD/Lib/xml/*.py $PYTHON_LIB_DIR/xml - -mkdir -p $PYTHON_LIB_DIR/xml/dom - cp $PKG_BUILD/Lib/xml/dom/*.py $PYTHON_LIB_DIR/xml/dom - -mkdir -p $PYTHON_LIB_DIR/xml/parsers - cp $PKG_BUILD/Lib/xml/parsers/*.py $PYTHON_LIB_DIR/xml/parsers - -mkdir -p $PYTHON_LIB_DIR/xml/sax - cp $PKG_BUILD/Lib/xml/sax/*.py $PYTHON_LIB_DIR/xml/sax - -mkdir -p $PYTHON_LIB_DIR/encodings - cp $PKG_BUILD/Lib/encodings/*.py $PYTHON_LIB_DIR/encodings - -mkdir -p $PYTHON_LIB_DIR/logging - cp $PKG_BUILD/Lib/logging/*.py $PYTHON_LIB_DIR/logging - -mkdir -p $PYTHON_LIB_DIR/distutils - cp $PKG_BUILD/Lib/distutils/*.py $PYTHON_LIB_DIR/distutils - -mkdir -p $PYTHON_LIB_DIR/distutils/command - cp $PKG_BUILD/Lib/distutils/command/*.py $PYTHON_LIB_DIR/distutils/command +for dirs in $INCLUDE_DIRS; do + mkdir -p $PYTHON_LIB_DIR/$dirs + cp $PKG_BUILD/Lib/$dirs/*.py $PYTHON_LIB_DIR/$dirs +done # For future 3rd-parties Python modules mkdir -p $PYTHON_LIB_DIR/site-packages -### for test ### - -#mkdir -p $PYTHON_LIB_DIR/bsddb -# cp $PKG_BUILD/Lib/bsddb/*.py $PYTHON_LIB_DIR/bsddb - -mkdir -p $PYTHON_LIB_DIR/compiler - cp $PKG_BUILD/Lib/compiler/*.py $PYTHON_LIB_DIR/compiler - -mkdir -p $PYTHON_LIB_DIR/ctypes - cp $PKG_BUILD/Lib/ctypes/*.py $PYTHON_LIB_DIR/ctypes - -mkdir -p $PYTHON_LIB_DIR/ctypes/macholib - cp $PKG_BUILD/Lib/ctypes/macholib/*.py $PYTHON_LIB_DIR/ctypes/macholib - -#mkdir -p $PYTHON_LIB_DIR/curses -# cp $PKG_BUILD/Lib/curses/*.py $PYTHON_LIB_DIR/curses - -mkdir -p $PYTHON_LIB_DIR/email - cp $PKG_BUILD/Lib/email/*.py $PYTHON_LIB_DIR/email - -mkdir -p $PYTHON_LIB_DIR/email/mime - cp $PKG_BUILD/Lib/email/mime/*.py $PYTHON_LIB_DIR/email/mime - -mkdir -p $PYTHON_LIB_DIR/hotshot - cp $PKG_BUILD/Lib/hotshot/*.py $PYTHON_LIB_DIR/hotshot - -mkdir -p $PYTHON_LIB_DIR/idlelib - cp $PKG_BUILD/Lib/idlelib/*.py $PYTHON_LIB_DIR/idlelib - -#mkdir -p $PYTHON_LIB_DIR/lib-tk -# cp $PKG_BUILD/Lib/lib-tk/*.py $PYTHON_LIB_DIR/lib-tk - -#mkdir -p $PYTHON_LIB_DIR/msilib -# cp $PKG_BUILD/Lib/msilib/*.py $PYTHON_LIB_DIR/msilib - -mkdir -p $PYTHON_LIB_DIR/multiprocessing - cp $PKG_BUILD/Lib/multiprocessing/*.py $PYTHON_LIB_DIR/multiprocessing - -# not needed, we have pysqlite2 -mkdir -p $PYTHON_LIB_DIR/sqlite3 - cp $PKG_BUILD/Lib/sqlite3/*.py $PYTHON_LIB_DIR/sqlite3 - -#mkdir -p $PYTHON_LIB_DIR/wsgiref -# cp $PKG_BUILD/Lib/wsgiref/*.py $PYTHON_LIB_DIR/wsgiref - -mkdir -p $PYTHON_LIB_DIR/xml/etree - cp $PKG_BUILD/Lib/xml/etree/*.py $PYTHON_LIB_DIR/xml/etree diff --git a/packages/lang/Python/patches/Python-2.7.2-005_dont_generate_pyo_and_pyc_files-0.1.patch b/packages/lang/Python/patches/Python-2.7.2-005_dont_generate_pyo_and_pyc_files-0.1.patch new file mode 100644 index 0000000000..8dc36012c5 --- /dev/null +++ b/packages/lang/Python/patches/Python-2.7.2-005_dont_generate_pyo_and_pyc_files-0.1.patch @@ -0,0 +1,28 @@ +diff -Naur Python-2.7.2/Makefile.pre.in Python-2.7.2.patch/Makefile.pre.in +--- Python-2.7.2/Makefile.pre.in 2011-10-30 11:41:31.642572564 +0100 ++++ Python-2.7.2.patch/Makefile.pre.in 2011-10-30 11:44:08.289571802 +0100 +@@ -928,24 +928,6 @@ + done; \ + done + $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST) -f \ +- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ +- $(DESTDIR)$(LIBDEST) +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST) -f \ +- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ +- $(DESTDIR)$(LIBDEST) +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST)/site-packages -f \ +- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST)/site-packages -f \ +- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" + diff --git a/packages/linux-drivers/AF9035/build b/packages/linux-drivers/AF9035/build index 9eb2940283..adedea01d5 100755 --- a/packages/linux-drivers/AF9035/build +++ b/packages/linux-drivers/AF9035/build @@ -24,9 +24,24 @@ cd $PKG_BUILD +[ -z "$OBJDUMP" ] && OBJDUMP=${TARGET_PREFIX}objdump +[ -z "$ECHO" ] && ECHO=/bin/echo + # fix some directives after unpacking sed -i "s|KDIR = .*|KDIR = $(kernel_path)|" Makefile sed -i "s|KSRC = .*|KSRC = \$KDIR|" Makefile sed -i "s|KINS = .*|KINS = \./modules|" Makefile make CC=$CC + +# ultraman: Original build module doesn't depends on dvb-usb module +# How to fix that? For now let's just modify .modinfo section in kernel module +# and depmod will pick up appropriate dependend modules +cp dvb-usb-af9035.ko dvb-usb-af9035.ko_orig +$OBJDUMP -s -j .modinfo dvb-usb-af9035.ko_orig | awk 'BEGIN{v=0;} /Contents/ {v=1; next;} {if (v==1) print $0;}' >new.modinfo1 +cat new.modinfo1 | cut -c7-41 | awk '{printf($0);}' | sed 's/ //g;s/../\\\x&/g;' >new.modinfo2 +$ECHO -ne `cat new.modinfo2` >new.modinfo3 +cat new.modinfo3 | tr '\000' '\n' | awk '/^depends=/ {next;} {print $0;}' | tr '\n' '\000' >new.modinfo4 +$ECHO -ne "depends=dvb-usb\0" >>new.modinfo4 +$OBJCOPY --remove-section=.modinfo --add-section=.modinfo=new.modinfo4 --set-section-flags .modinfo=contents,alloc,load,readonly,data dvb-usb-af9035.ko_orig dvb-usb-af9035.ko +rm new.modinfo* diff --git a/packages/linux-drivers/a867_drv/build b/packages/linux-drivers/a867_drv/build new file mode 100755 index 0000000000..80cc7aa923 --- /dev/null +++ b/packages/linux-drivers/a867_drv/build @@ -0,0 +1,42 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +. config/options $1 + +cd $PKG_BUILD + +[ -z "$OBJDUMP" ] && OBJDUMP=${TARGET_PREFIX}objdump +[ -z "$ECHO" ] && ECHO=/bin/echo + +make CC=$CC KSRC=$(kernel_path) KOBJ=$(kernel_path) + +# ultraman: Original build module doesn't depends on dvb-usb module +# How to fix that? For now let's just modify .modinfo section in kernel module +# and depmod will pick up appropriate dependend modules +cp a867.ko a867.ko_orig +$OBJDUMP -s -j .modinfo a867.ko_orig | awk 'BEGIN{v=0;} /Contents/ {v=1; next;} {if (v==1) print $0;}' >new.modinfo1 +cat new.modinfo1 | cut -c7-41 | awk '{printf($0);}' | sed 's/ //g;s/../\\\x&/g;' >new.modinfo2 +$ECHO -ne `cat new.modinfo2` >new.modinfo3 +cat new.modinfo3 | tr '\000' '\n' | awk '/^depends=/ {next;} {print $0;}' | tr '\n' '\000' >new.modinfo4 +$ECHO -ne "depends=dvb-usb\0" >>new.modinfo4 +$OBJCOPY --remove-section=.modinfo --add-section=.modinfo=new.modinfo4 --set-section-flags .modinfo=contents,alloc,load,readonly,data a867.ko_orig a867.ko +rm new.modinfo* diff --git a/packages/mediacenter/xbmc/sleep.d/01_update_videodb b/packages/linux-drivers/a867_drv/install similarity index 74% rename from packages/mediacenter/xbmc/sleep.d/01_update_videodb rename to packages/linux-drivers/a867_drv/install index 7b509b0c12..238f6a8dc2 100755 --- a/packages/mediacenter/xbmc/sleep.d/01_update_videodb +++ b/packages/linux-drivers/a867_drv/install @@ -20,21 +20,14 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -. /etc/profile +. config/options $1 -case "$1" in - thaw|resume) - ( - if [ -f /var/config/settings.conf ]; then - . /var/config/settings.conf +VER=`ls $BUILD/linux*/modules/lib/modules` - if [ "$WAKEUP_VIDEODBUPDATE" = "true" ]; then - usleep 5000000 - xbmc-send --host=127.0.0.1 -a "UpdateLibrary(video)" - fi - fi - )& - ;; - *) exit $NA - ;; -esac +mkdir -p $INSTALL/lib/modules/$VER/a867 +cp $PKG_BUILD/a867.ko $INSTALL/lib/modules/$VER/a867/ + +$ROOT/$TOOLCHAIN/sbin/depmod -b $INSTALL $VER > /dev/null +for i in `ls $INSTALL/lib/modules/*/modules.* | grep -v modules.dep | grep -v modules.alias | grep -v modules.symbols`; do + rm -f $i +done diff --git a/packages/linux-drivers/a867_drv/meta b/packages/linux-drivers/a867_drv/meta new file mode 100644 index 0000000000..7178a7209e --- /dev/null +++ b/packages/linux-drivers/a867_drv/meta @@ -0,0 +1,35 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# +# 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 OpenELEC.tv; 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 +################################################################################ + +PKG_NAME="a867_drv" +PKG_VERSION="v1.0.28" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.avermedia.com/Product/ProductDetail.aspx?Id=516&tab=APDriver" +PKG_URL="http://www.avermedia.com/avertv/Upload/Download/${PKG_NAME}_${PKG_VERSION}.tar.bz2" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="toolchain linux busybox-hosttools" +PKG_PRIORITY="optional" +PKG_SECTION="driver" +PKG_SHORTDESC="AVerTV Volar HD Nano A867R driver" +PKG_LONGDESC="AVerTV Volar HD Nano A867R driver" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" diff --git a/packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch b/packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch new file mode 100644 index 0000000000..a21f9df225 --- /dev/null +++ b/packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch @@ -0,0 +1,75 @@ +diff -Nur a867_drv_v1.0.28/af903x-drv.c a867_drv_v1.0.28_modif//af903x-drv.c +--- a867_drv_v1.0.28/af903x-drv.c 2010-11-10 04:46:22.000000000 +0100 ++++ a867_drv_v1.0.28_modif//af903x-drv.c 2011-07-24 11:41:45.162923006 +0200 +@@ -1103,8 +1103,8 @@ + PDC->StreamType = StreamType_DVBT_DATAGRAM; + PDC->UsbCtrlTimeOut = 1; + +- init_MUTEX(&PDC->powerLock); +- init_MUTEX(&PDC->tunerLock); ++ sema_init(&PDC->powerLock,1); ++ sema_init(&PDC->tunerLock,1); + PDC->power_use_count = 0; + + PDC->idVendor = udev->descriptor.idVendor; +@@ -1116,7 +1116,7 @@ + PDC->fc[0].AVerFlags = 0x00; + PDC->fc[1].AVerFlags = 0x00; + +- init_MUTEX(&PDC->regLock); ++ sema_init(&PDC->regLock,1); + } + else { + PDC->UsbCtrlTimeOut = 5; +diff -Nur a867_drv_v1.0.28/af903x-fe.c a867_drv_v1.0.28_modif//af903x-fe.c +--- a867_drv_v1.0.28/af903x-fe.c 2010-11-10 04:46:22.000000000 +0100 ++++ a867_drv_v1.0.28_modif//af903x-fe.c 2011-07-24 11:43:58.543584444 +0200 +@@ -1,5 +1,5 @@ + #include +-#include ++//#include + #include + #include + #include +@@ -678,7 +678,7 @@ + deb_data("- Enter %s Function -\n",__FUNCTION__); + if( !state ) return -1; + +- lock_kernel(); ++ //lock_kernel(); + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,61) + daemonize(); + sigfillset(¤t->blocked); +@@ -689,7 +689,7 @@ + #endif + siginitsetinv(¤t->blocked, sigmask(SIGKILL)|sigmask(SIGINT)|\ + sigmask(SIGTERM)); +- unlock_kernel(); ++ //unlock_kernel(); + + while(!state->thread_should_stop && !signal_pending(current)) { + +diff -Nur a867_drv_v1.0.28/af903x.h a867_drv_v1.0.28_modif//af903x.h +--- a867_drv_v1.0.28/af903x.h 2010-11-10 04:46:22.000000000 +0100 ++++ a867_drv_v1.0.28_modif//af903x.h 2011-07-24 11:42:54.563267143 +0200 +@@ -9,7 +9,7 @@ + #include + #include + #include +-#include ++//#include + #include + #include + #include +diff -Nur a867_drv_v1.0.28/usb2impl.c a867_drv_v1.0.28_modif//usb2impl.c +--- a867_drv_v1.0.28/usb2impl.c 2010-11-10 10:27:27.000000000 +0100 ++++ a867_drv_v1.0.28_modif//usb2impl.c 2011-07-24 11:43:09.915343276 +0200 +@@ -10,7 +10,7 @@ + #include + #include + #include +-#include ++//#include + #include + #include + #include diff --git a/packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch.txt b/packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch.txt new file mode 100644 index 0000000000..e87806c416 --- /dev/null +++ b/packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch.txt @@ -0,0 +1,2 @@ +http://www.aviolat-chauffage.ch/~xens/wordpress/?p=229 +http://www.aviolat-chauffage.ch/~xens/files/a867_drv_v1.0.28_BKL_removal.patch.tar.gz \ No newline at end of file diff --git a/packages/linux-firmware/dvb-firmware/meta b/packages/linux-firmware/dvb-firmware/meta index 36cbafba0b..992ef37e5e 100644 --- a/packages/linux-firmware/dvb-firmware/meta +++ b/packages/linux-firmware/dvb-firmware/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="dvb-firmware" -PKG_VERSION="0.0.15" +PKG_VERSION="0.0.16" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Free-to-use" diff --git a/packages/linux/build b/packages/linux/build index 064c354d09..31a52a050a 100755 --- a/packages/linux/build +++ b/packages/linux/build @@ -54,8 +54,8 @@ make $KERNEL_IMAGE ( cd tools/power/cpupower - export CFLAGS="$TARGET_CFLAGS -I$SYSROOT_PREFIX/usr/include" - export LDFLAGS="$TARGET_LDFLAGS -L$SYSROOT_PREFIX/lib -L$SYSROOT_PREFIX/usr/lib" + export CFLAGS="-I$SYSROOT_PREFIX/usr/include" + export LDFLAGS="-L$SYSROOT_PREFIX/lib -L$SYSROOT_PREFIX/usr/lib" make CROSS="$TARGET_PREFIX" \ V=1 \ diff --git a/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml b/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml index 83873b2a97..60181b8f53 100644 --- a/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml +++ b/packages/mediacenter/xbmc-addon-settings/config/default_settings.xml @@ -25,17 +25,8 @@ - - - - - - - - - diff --git a/packages/mediacenter/xbmc-addon-settings/source/addon.xml b/packages/mediacenter/xbmc-addon-settings/source/addon.xml index 8125c70016..61c756f1ba 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/addon.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/addon.xml @@ -1,7 +1,7 @@ diff --git a/packages/mediacenter/xbmc-addon-settings/source/default.py b/packages/mediacenter/xbmc-addon-settings/source/default.py index ae4715017a..dfcb2215f9 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/default.py +++ b/packages/mediacenter/xbmc-addon-settings/source/default.py @@ -27,7 +27,7 @@ __author__ = "OpenELEC" __url__ = "http://www.openelec.tv" __svn_url__ = "" __credits__ = "" -__version__ = "0.0.9" +__version__ = "0.0.13" __XBMC_Revision__ = "22240" __settings__ = xbmcaddon.Addon(id='os.openelec.settings') diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/language/Dutch/strings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/language/Dutch/strings.xml index ba2c174e5b..86b553b2f8 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/language/Dutch/strings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/language/Dutch/strings.xml @@ -10,9 +10,6 @@ Systeem update LCD/VFD Driver Te gebruiken LCD Driver - Services na slaapstand - Update video database na slaapstand - Update music database na slaapstand Netwerk diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml index 0ffa78fb2e..72c9edc799 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/language/English/strings.xml @@ -10,9 +10,6 @@ System Update LCD/VFD LCD Driver to use - Wakeup - Update Video Database on Wakeup - Update Music Database on Wakeup Network diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/language/French/strings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/language/French/strings.xml index af3ac4da7d..a874d30608 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/language/French/strings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/language/French/strings.xml @@ -10,9 +10,6 @@ Mise à jour du système LCD/VFD Pilote LCD - Retour de veille - Mettre à jour la base Vidéo au retour de veille - Mettre à jour la base Musique au retour de veille Réseau diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/language/German/strings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/language/German/strings.xml index 3c8d466e51..af74752d99 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/language/German/strings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/language/German/strings.xml @@ -10,9 +10,6 @@ System Aktualisierung LCD/VFD LCD Treiber -Beim Aufwachen -Video-Datenbank automatisch aktualisieren -Musik-Datenbank automatisch aktualisieren Netzwerk diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/language/Norwegian/strings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/language/Norwegian/strings.xml index 6c8c118f44..9d34d8da62 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/language/Norwegian/strings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/language/Norwegian/strings.xml @@ -5,14 +5,11 @@ System Tastatur Språklayout - Språklayout #2 + Språklayout #2 Systemoppdateringer Systemoppdateringer LCD/VFD LCD Driver - Vekke - Oppdater Video Database på vekking - Oppdater Musikk Database på vekking Nettverk diff --git a/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml b/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml index c53f57a16e..ae06f3d34a 100644 --- a/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml +++ b/packages/mediacenter/xbmc-addon-settings/source/resources/settings.xml @@ -13,10 +13,6 @@ - - - - diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index b56f0707c7..319ee97904 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -133,7 +133,6 @@ fi # xbmc (ffmpeg) fails to build with LTO optimization strip_lto strip_gold - strip_linker_plugin # dont use some optimizations because of problems # this fixes problems with faac implementation of ffmpeg @@ -145,19 +144,6 @@ fi export PYTHON_SITE_PKG="$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION/site-packages" export ac_python_version="$PYTHON_VERSION" -# this fixes the "stretching picture bug" - CFLAGS=`echo $CFLAGS | sed -e "s|-ftree-loop-distribution||"` - CFLAGS=`echo $CFLAGS | sed -e "s|-floop-interchange||"` - CFLAGS=`echo $CFLAGS | sed -e "s|-floop-strip-mine||"` - CFLAGS=`echo $CFLAGS | sed -e "s|-floop-block||"` - CFLAGS=`echo $CFLAGS | sed -e "s|-fgraphite-identity||"` - - CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-ftree-loop-distribution||"` - CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-floop-interchange||"` - CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-floop-strip-mine||"` - CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-floop-block||"` - CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-fgraphite-identity||"` - # setup skin dir from default skin SKIN_DIR="skin.`tolower $SKIN_DEFAULT`" @@ -241,9 +227,3 @@ cd $PKG_BUILD make externals make xbmc.bin make xbmc-xrandr - -if [ "$WIIMOTE_SUPPORT" = yes ]; then - (cd tools/EventClients/Clients/WiiRemote; - $CXX $CFLAGS -lwiiuse WiiUse_WiiRemote.cpp -o WiiUse_WiiRemote; - ) -fi diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index a5a2669182..dd85f76fee 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -99,21 +99,3 @@ if [ "$XBMC_EXTRA_FONTS" = yes ]; then mkdir -p $INSTALL/usr/share/xbmc/media/Fonts cp $PKG_DIR/fonts/*.ttf $INSTALL/usr/share/xbmc/media/Fonts fi - -if [ "$WIIMOTE_SUPPORT" = yes ]; then - mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/tools/EventClients/Clients/WiiRemote/WiiUse_WiiRemote $INSTALL/usr/bin/xbmc-wiiremote - mkdir -p $INSTALL/lib/udev - cp $PKG_DIR/scripts/wiiremote_helper $INSTALL/lib/udev -fi - -if [ "$PS3REMOTE_SUPPORT" = yes ]; then - mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/tools/EventClients/Clients/PS3\ BD\ Remote/ps3_remote.py $INSTALL/usr/bin/xbmc-ps3remote - mkdir -p $INSTALL/usr/share/pixmaps/xbmc - cp $PKG_BUILD/tools/EventClients/icons/bluetooth.png $INSTALL/usr/share/pixmaps/xbmc - mkdir -p $PYTHON_LIBDIR/site-packages/xbmc - echo 'ICON_PATH="/usr/share/pixmaps/xbmc/"' > $PYTHON_LIBDIR/site-packages/xbmc/defs.py - mkdir -p $INSTALL/lib/udev - cp $PKG_DIR/scripts/ps3remote_helper $INSTALL/lib/udev -fi diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index 38af3420da..52529ac9ff 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -26,8 +26,8 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.xbmc.org" #PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_URL="http://gujs.openelec.tv/sources/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS="boost Python zlib bzip2 lzo pcre alsa-lib libass enca curl libssh rtmpdump Mesa glew fontconfig fribidi $LIBJPEG libpng tiff freetype jasper libmad libsamplerate libogg libvorbis libcdio libmodplug faad2 flac lame libmpeg2 SDL SDL_mixer SDL_image yajl sqlite mysql alsa bc xbmc-addon-settings" -PKG_BUILD_DEPENDS="toolchain boost Python zlib bzip2 lzo pcre alsa-lib libass enca curl libssh rtmpdump Mesa glew fontconfig fribidi $LIBJPEG libpng tiff freetype jasper libmad libsamplerate libogg libvorbis libcdio libmodplug faad2 flac lame libmpeg2 SDL SDL_mixer SDL_image yajl sqlite mysql" +PKG_DEPENDS="boost Python zlib bzip2 lzo pcre alsa-lib libass enca curl libssh rtmpdump $MESA glew fontconfig fribidi $LIBJPEG libpng tiff freetype jasper libmad libsamplerate libogg libvorbis libcdio libmodplug faad2 flac lame libmpeg2 SDL SDL_mixer SDL_image yajl sqlite mysql alsa bc xbmc-addon-settings" +PKG_BUILD_DEPENDS="toolchain boost Python zlib bzip2 lzo pcre alsa-lib libass enca curl libssh rtmpdump $MESA glew fontconfig fribidi $LIBJPEG libpng tiff freetype jasper libmad libsamplerate libogg libvorbis libcdio libmodplug faad2 flac lame libmpeg2 SDL SDL_mixer SDL_image yajl sqlite mysql" PKG_PRIORITY="optional" PKG_SECTION="mediacenter" PKG_SHORTDESC="xbmc: XBMC Mediacenter" @@ -118,15 +118,6 @@ if [ "$CRYSTALHD" = yes ]; then PKG_DEPENDS="$PKG_DEPENDS crystalhd" fi -if [ "$WIIMOTE_SUPPORT" = yes ]; then - PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS wiiuse" - PKG_DEPENDS="$PKG_DEPENDS wiiuse" -fi - -if [ "$PS3REMOTE_SUPPORT" = yes ]; then - PKG_DEPENDS="$PKG_DEPENDS PyBluez" -fi - # some python stuff needed for various addons PKG_DEPENDS="$PKG_DEPENDS Imaging" PKG_DEPENDS="$PKG_DEPENDS simplejson" diff --git a/packages/mediacenter/xbmc/patches/xbmc-99c0b41-341-xbmc-PR468-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-341-xbmc-PR468-0.1.patch new file mode 100644 index 0000000000..9f2150ea86 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-341-xbmc-PR468-0.1.patch @@ -0,0 +1,1769 @@ +From 23d2cd19f9f867637bb0e72e57bba56ded85f60c Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sat, 8 Oct 2011 10:44:23 +0200 +Subject: [PATCH 1/6] vdpau: notify decoder when refresh rate is going to + change and flush renderer + +--- + xbmc/ApplicationMessenger.cpp | 5 ++ + xbmc/ApplicationMessenger.h | 1 + + xbmc/cores/VideoRenderers/BaseRenderer.h | 1 + + xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 14 ++++ + xbmc/cores/VideoRenderers/LinuxRendererGL.h | 1 + + xbmc/cores/VideoRenderers/RenderManager.cpp | 29 ++++++++ + xbmc/cores/VideoRenderers/RenderManager.h | 2 + + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 79 ++++++++++++++++++--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 22 ++++-- + xbmc/guilib/DispResource.h | 33 +++++++++ + xbmc/windowing/X11/WinSystemX11.cpp | 90 ++++++++++++++++++++++++ + xbmc/windowing/X11/WinSystemX11.h | 11 +++ + xbmc/windowing/X11/WinSystemX11GL.cpp | 2 + + 13 files changed, 274 insertions(+), 16 deletions(-) + create mode 100644 xbmc/guilib/DispResource.h + +diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp +index 9cd3723..5e7bcfa 100644 +--- a/xbmc/ApplicationMessenger.cpp ++++ b/xbmc/ApplicationMessenger.cpp +@@ -42,6 +42,7 @@ + #include "guilib/GUIDialog.h" + #include "windowing/WindowingFactory.h" + #include "GUIInfoManager.h" ++#include "cores/VideoRenderers/RenderManager.h" + + #include "powermanagement/PowerManager.h" + +@@ -231,6 +232,10 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg) + case POWERSTATE_MINIMIZE: + Minimize(); + break; ++ ++ case TMSG_RENDERER_FLUSH: ++ g_renderManager.Flush(); ++ break; + } + } + break; +diff --git a/xbmc/ApplicationMessenger.h b/xbmc/ApplicationMessenger.h +index b0b4687..31b4ffb 100644 +--- a/xbmc/ApplicationMessenger.h ++++ b/xbmc/ApplicationMessenger.h +@@ -76,6 +76,7 @@ class CGUIWindow; + #define TMSG_MINIMIZE 309 + #define TMSG_TOGGLEFULLSCREEN 310 + #define TMSG_SETLANGUAGE 311 ++#define TMSG_RENDERER_FLUSH 312 + + #define TMSG_HTTPAPI 400 + +diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.h b/xbmc/cores/VideoRenderers/BaseRenderer.h +index faef87c..af51852 100644 +--- a/xbmc/cores/VideoRenderers/BaseRenderer.h ++++ b/xbmc/cores/VideoRenderers/BaseRenderer.h +@@ -64,6 +64,7 @@ public: + float GetAspectRatio() const; + + virtual bool AddVideoPicture(DVDVideoPicture* picture) { return false; } ++ virtual void Flush() {}; + + virtual unsigned int GetProcessorSize() { return 0; } + +diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +index 02d317e..0e247aa 100644 +--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp ++++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +@@ -554,6 +554,20 @@ void CLinuxRendererGL::Reset() + } + } + ++void CLinuxRendererGL::Flush() ++{ ++ if (!m_bValidated) ++ return; ++ ++ glFinish(); ++ ++ for (int i = 0 ; i < m_NumYV12Buffers ; i++) ++ (this->*m_textureDelete)(i); ++ ++ glFinish(); ++ m_bValidated = false; ++} ++ + void CLinuxRendererGL::Update(bool bPauseDrawing) + { + if (!m_bConfigured) return; +diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.h b/xbmc/cores/VideoRenderers/LinuxRendererGL.h +index 8f1664a..38c84aa 100644 +--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.h ++++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.h +@@ -140,6 +140,7 @@ public: + virtual unsigned int PreInit(); + virtual void UnInit(); + virtual void Reset(); /* resets renderer after seek for example */ ++ virtual void Flush(); + + #ifdef HAVE_LIBVDPAU + virtual void AddProcessor(CVDPAU* vdpau); +diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp +index 50c465c..31bb49a 100644 +--- a/xbmc/cores/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoRenderers/RenderManager.cpp +@@ -337,6 +337,35 @@ void CXBMCRenderManager::UnInit() + m_pRenderer->UnInit(); + } + ++bool CXBMCRenderManager::Flush() ++{ ++ if (!m_pRenderer) ++ return true; ++ ++ if (g_application.IsCurrentThread()) ++ { ++ CLog::Log(LOGDEBUG, "%s - flushing renderer", __FUNCTION__); ++ ++ CRetakeLock lock(m_sharedSection); ++ m_pRenderer->Flush(); ++ m_flushEvent.Set(); ++ } ++ else ++ { ++ ThreadMessage msg = {TMSG_RENDERER_FLUSH}; ++ m_flushEvent.Reset(); ++ g_application.getApplicationMessenger().SendMessage(msg, false); ++ if (!m_flushEvent.WaitMSec(1000)) ++ { ++ CLog::Log(LOGERROR, "%s - timed out waiting for renderer to flush", __FUNCTION__); ++ return false; ++ } ++ else ++ return true; ++ } ++ return true; ++} ++ + void CXBMCRenderManager::SetupScreenshot() + { + CSharedLock lock(m_sharedSection); +diff --git a/xbmc/cores/VideoRenderers/RenderManager.h b/xbmc/cores/VideoRenderers/RenderManager.h +index f8f68ab..b81bced 100644 +--- a/xbmc/cores/VideoRenderers/RenderManager.h ++++ b/xbmc/cores/VideoRenderers/RenderManager.h +@@ -76,6 +76,7 @@ public: + void FlipPage(volatile bool& bStop, double timestamp = 0.0, int source = -1, EFIELDSYNC sync = FS_NONE); + unsigned int PreInit(); + void UnInit(); ++ bool Flush(); + + void AddOverlay(CDVDOverlay* o, double pts) + { +@@ -227,6 +228,7 @@ protected: + EPRESENTSTEP m_presentstep; + int m_presentsource; + CEvent m_presentevent; ++ CEvent m_flushEvent; + + + OVERLAY::CRenderer m_overlays; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 0ad0451..06629df 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -95,6 +95,7 @@ CVDPAU::CVDPAU() + recover = false; + m_mixerfield = VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME; + m_mixerstep = 0; ++ m_DisplayState = VDPAU_OPEN; + + m_glPixmap = 0; + m_Pixmap = 0; +@@ -191,6 +192,8 @@ bool CVDPAU::Open(AVCodecContext* avctx, const enum PixelFormat, unsigned int su + avctx->release_buffer = CVDPAU::FFReleaseBuffer; + avctx->draw_horiz_band = CVDPAU::FFDrawSlice; + avctx->slice_flags=SLICE_FLAG_CODED_ORDER|SLICE_FLAG_ALLOW_FIELD; ++ ++ g_Windowing.Register(this); + return true; + } + return false; +@@ -208,6 +211,8 @@ void CVDPAU::Close() + FiniVDPAUOutput(); + FiniVDPAUProcs(); + ++ g_Windowing.Unregister(this); ++ + if (m_glPixmap) + { + CLog::Log(LOGINFO, "GLX: Destroying glPixmap"); +@@ -363,6 +368,11 @@ bool CVDPAU::MakePixmap(int width, int height) + + void CVDPAU::BindPixmap() + { ++ { CSingleLock lock(m_DisplaySection); ++ if (m_DisplayState != VDPAU_OPEN) ++ return; ++ } ++ + if (m_glPixmap) + { + if(presentSurface != VDP_INVALID_HANDLE) +@@ -389,6 +399,11 @@ void CVDPAU::BindPixmap() + + void CVDPAU::ReleasePixmap() + { ++ { CSingleLock lock(m_DisplaySection); ++ if (m_DisplayState != VDPAU_OPEN) ++ return; ++ } ++ + if (m_glPixmap) + { + glXReleaseTexImageEXT(m_Display, m_glPixmap, GLX_FRONT_LEFT_EXT); +@@ -396,22 +411,53 @@ void CVDPAU::ReleasePixmap() + else CLog::Log(LOGERROR,"(VDPAU) ReleasePixmap called without valid pixmap"); + } + +-bool CVDPAU::CheckRecover(bool force) ++void CVDPAU::OnLostDevice() ++{ ++ CSingleLock lock(m_DisplaySection); ++ m_DisplayState = VDPAU_LOST; ++ m_DisplayEvent.Reset(); ++} ++ ++void CVDPAU::OnResetDevice() ++{ ++ CSingleLock lock(m_DisplaySection); ++ ++ if (m_DisplayState == VDPAU_LOST) ++ { ++ m_DisplayState = VDPAU_RESET; ++ m_DisplayEvent.Set(); ++ } ++} ++ ++int CVDPAU::Check(AVCodecContext* avctx) + { +- if (recover || force) ++ CSingleLock lock(m_DisplaySection); ++ ++ if (m_DisplayState == VDPAU_LOST) ++ { ++ lock.Leave(); ++ if (!m_DisplayEvent.WaitMSec(2000)) ++ { ++ CLog::Log(LOGERROR, "CVDPAU::Check - device didn't reset in reasonable time"); ++ return VC_ERROR; ++ } ++ lock.Enter(); ++ } ++ if (recover || m_DisplayState == VDPAU_RESET) + { + CLog::Log(LOGNOTICE,"Attempting recovery"); + + FiniVDPAUOutput(); + FiniVDPAUProcs(); + +- recover = false; +- + InitVDPAUProcs(); + +- return true; ++ recover = false; ++ m_DisplayState = VDPAU_OPEN; ++ ++ return VC_FLUSHED; + } +- return false; ++ return 0; + } + + bool CVDPAU::IsVDPAUFormat(PixelFormat format) +@@ -750,6 +796,9 @@ void CVDPAU::InitVDPAUProcs() + &VDPPreemptionCallbackFunction, + (void*)this); + CheckStatus(vdp_st, __LINE__); ++ ++ CSingleLock lock(m_DisplaySection); ++ m_DisplayState = VDPAU_OPEN; + } + + void CVDPAU::FiniVDPAUProcs() +@@ -1132,8 +1181,9 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) + VdpStatus vdp_st; + VdpTime time; + +- if (CheckRecover(false)) +- return VC_FLUSHED; ++ int result = Check(avctx); ++ if (result) ++ return result; + + if (!vdpauConfigured) + return VC_ERROR; +@@ -1318,6 +1368,11 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) + + bool CVDPAU::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) + { ++ { CSingleLock lock(m_DisplaySection); ++ if (m_DisplayState != VDPAU_OPEN) ++ return false; ++ } ++ + *picture = m_DVDVideoPics.front(); + // if this is the first field of an interlaced frame, we'll need + // this same picture for the second field later +@@ -1358,6 +1413,12 @@ void CVDPAU::Present() + { + //CLog::Log(LOGNOTICE,"%s",__FUNCTION__); + VdpStatus vdp_st; ++ ++ { CSingleLock lock(m_DisplaySection); ++ if (m_DisplayState != VDPAU_OPEN) ++ return; ++ } ++ + presentSurface = outputSurface; + + vdp_st = vdp_presentation_queue_display(vdp_flip_queue, +@@ -1370,7 +1431,7 @@ void CVDPAU::Present() + + void CVDPAU::VDPPreemptionCallbackFunction(VdpDevice device, void* context) + { +- CLog::Log(LOGERROR,"VDPAU Device Preempted - attempting recovery"); ++ CLog::Log(LOGDEBUG,"VDPAU Device Preempted - attempting recovery"); + CVDPAU* pCtx = (CVDPAU*)context; + pCtx->recover = true; + } +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +index 2056de1..6eab3fc 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -33,6 +33,8 @@ + #include + #include "threads/CriticalSection.h" + #include "settings/VideoSettings.h" ++#include "guilib/DispResource.h" ++#include "threads/Event.h" + namespace Surface { class CSurface; } + + #define NUM_OUTPUT_SURFACES 4 +@@ -44,6 +46,7 @@ namespace Surface { class CSurface; } + + class CVDPAU + : public CDVDVideoCodecFFmpeg::IHardwareDecoder ++ , public IDispResource + { + public: + +@@ -69,13 +72,8 @@ public: + virtual void Reset(); + virtual void Close(); + +- virtual int Check(AVCodecContext* avctx) +- { +- if(CheckRecover(false)) +- return VC_FLUSHED; +- else +- return 0; +- } ++ virtual int Check(AVCodecContext* avctx); ++ + virtual const std::string Name() { return "vdpau"; } + + bool MakePixmap(int width, int height); +@@ -227,4 +225,14 @@ public: + , VdpChromaType &chroma_type); + + std::vector m_videoSurfaces; ++ ++ enum EDisplayState ++ { VDPAU_OPEN ++ , VDPAU_RESET ++ , VDPAU_LOST ++ } m_DisplayState; ++ CCriticalSection m_DisplaySection; ++ CEvent m_DisplayEvent; ++ virtual void OnLostDevice(); ++ virtual void OnResetDevice(); + }; +diff --git a/xbmc/guilib/DispResource.h b/xbmc/guilib/DispResource.h +new file mode 100644 +index 0000000..d2833cb +--- /dev/null ++++ b/xbmc/guilib/DispResource.h +@@ -0,0 +1,33 @@ ++/* ++* Copyright (C) 2005-2008 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 ++* ++*/ ++ ++#pragma once ++ ++#ifdef HAS_GLX ++class IDispResource ++{ ++public: ++ virtual ~IDispResource() {}; ++ virtual void OnLostDevice() {}; ++ virtual void OnResetDevice() {}; ++}; ++ ++#endif +diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp +index 4287a04..ea20c0e 100644 +--- a/xbmc/windowing/X11/WinSystemX11.cpp ++++ b/xbmc/windowing/X11/WinSystemX11.cpp +@@ -27,9 +27,18 @@ + #include "WinSystemX11.h" + #include "settings/Settings.h" + #include "guilib/Texture.h" ++#include "guilib/DispResource.h" + #include "utils/log.h" + #include "XRandR.h" + #include ++#include "threads/SingleLock.h" ++#include ++#include "cores/VideoRenderers/RenderManager.h" ++#include "utils/TimeUtils.h" ++ ++#if defined(HAS_XRANDR) ++#include ++#endif + + using namespace std; + +@@ -42,6 +51,7 @@ CWinSystemX11::CWinSystemX11() : CWinSystemBase() + m_glWindow = 0; + m_wmWindow = 0; + m_bWasFullScreenBeforeMinimize = false; ++ m_dpyLostTime = 0; + } + + CWinSystemX11::~CWinSystemX11() +@@ -126,6 +136,13 @@ bool CWinSystemX11::CreateNewWindow(const CStdString& name, bool fullScreen, RES + SDL_WM_SetIcon(SDL_CreateRGBSurfaceFrom(iconTexture.GetPixels(), iconTexture.GetWidth(), iconTexture.GetHeight(), 32, iconTexture.GetPitch(), 0xff0000, 0x00ff00, 0x0000ff, 0xff000000L), NULL); + SDL_WM_SetCaption("XBMC Media Center", NULL); + ++ // register XRandR Events ++#if defined(HAS_XRANDR) ++ int iReturn; ++ XRRQueryExtension(m_dpy, &m_RREventBase, &iReturn); ++ XRRSelectInput(m_dpy, m_wmWindow, RRScreenChangeNotifyMask); ++#endif ++ + m_bWindowCreated = true; + return true; + } +@@ -175,7 +192,10 @@ bool CWinSystemX11::SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool bl + mode.id = res.strId; + + if(m_bFullScreen) ++ { ++ OnLostDevice(); + g_xrandr.SetMode(out, mode); ++ } + else + g_xrandr.RestoreState(); + #endif +@@ -444,4 +464,74 @@ bool CWinSystemX11::Show(bool raise) + XSync(m_dpy, False); + return true; + } ++ ++void CWinSystemX11::CheckDisplayEvents() ++{ ++#if defined(HAS_XRANDR) ++ bool bGotEvent(false); ++ bool bTimeout(false); ++ XEvent Event; ++ while (XCheckTypedEvent(m_dpy, m_RREventBase + RRScreenChangeNotify, &Event)) ++ { ++ if (Event.type == m_RREventBase + RRScreenChangeNotify) ++ { ++ CLog::Log(LOGDEBUG, "%s: Received RandR event %i", __FUNCTION__, Event.type); ++ bGotEvent = true; ++ } ++ XRRUpdateConfiguration(&Event); ++ } ++ ++ // check fail safe timer ++ if (m_dpyLostTime && CurrentHostCounter() - m_dpyLostTime > (uint64_t)3 * CurrentHostFrequency()) ++ { ++ CLog::Log(LOGERROR, "%s - no display event after 3 seconds", __FUNCTION__); ++ bTimeout = true; ++ } ++ ++ if (bGotEvent || bTimeout) ++ { ++ CLog::Log(LOGDEBUG, "%s - notify display reset event", __FUNCTION__); ++ ++ CSingleLock lock(m_resourceSection); ++ ++ // tell any shared resources ++ for (vector::iterator i = m_resources.begin(); i != m_resources.end(); i++) ++ (*i)->OnResetDevice(); ++ ++ // reset fail safe timer ++ m_dpyLostTime = 0; ++ } ++#endif ++} ++ ++void CWinSystemX11::OnLostDevice() ++{ ++ CLog::Log(LOGDEBUG, "%s - notify display change event", __FUNCTION__); ++ ++ { CSingleLock lock(m_resourceSection); ++ for (vector::iterator i = m_resources.begin(); i != m_resources.end(); i++) ++ (*i)->OnLostDevice(); ++ } ++ ++ // make sure renderer has no invalid references ++ g_renderManager.Flush(); ++ ++ // fail safe timer ++ m_dpyLostTime = CurrentHostCounter(); ++} ++ ++void CWinSystemX11::Register(IDispResource *resource) ++{ ++ CSingleLock lock(m_resourceSection); ++ m_resources.push_back(resource); ++} ++ ++void CWinSystemX11::Unregister(IDispResource* resource) ++{ ++ CSingleLock lock(m_resourceSection); ++ vector::iterator i = find(m_resources.begin(), m_resources.end(), resource); ++ if (i != m_resources.end()) ++ m_resources.erase(i); ++} ++ + #endif +diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h +index da6accf..5b941be 100644 +--- a/xbmc/windowing/X11/WinSystemX11.h ++++ b/xbmc/windowing/X11/WinSystemX11.h +@@ -26,6 +26,9 @@ + #include "windowing/WinSystem.h" + #include "utils/Stopwatch.h" + #include ++#include "threads/CriticalSection.h" ++ ++class IDispResource; + + class CWinSystemX11 : public CWinSystemBase + { +@@ -51,6 +54,8 @@ public: + virtual bool Restore() ; + virtual bool Hide(); + virtual bool Show(bool raise = true); ++ virtual void Register(IDispResource *resource); ++ virtual void Unregister(IDispResource *resource); + + // Local to WinSystemX11 only + Display* GetDisplay() { return m_dpy; } +@@ -58,6 +63,8 @@ public: + + protected: + bool RefreshGlxContext(); ++ void CheckDisplayEvents(); ++ void OnLostDevice(); + + SDL_Surface* m_SDLSurface; + GLXContext m_glContext; +@@ -65,6 +72,10 @@ protected: + Window m_wmWindow; + Display* m_dpy; + bool m_bWasFullScreenBeforeMinimize; ++ int m_RREventBase; ++ CCriticalSection m_resourceSection; ++ std::vector m_resources; ++ uint64_t m_dpyLostTime; + + private: + bool IsSuitableVisual(XVisualInfo *vInfo); +diff --git a/xbmc/windowing/X11/WinSystemX11GL.cpp b/xbmc/windowing/X11/WinSystemX11GL.cpp +index 94f369e..ed9ed6d 100644 +--- a/xbmc/windowing/X11/WinSystemX11GL.cpp ++++ b/xbmc/windowing/X11/WinSystemX11GL.cpp +@@ -43,6 +43,8 @@ CWinSystemX11GL::~CWinSystemX11GL() + + bool CWinSystemX11GL::PresentRenderImpl(const CDirtyRegionList& dirty) + { ++ CheckDisplayEvents(); ++ + if(m_iVSyncMode == 3) + { + glFinish(); +-- +1.7.5.4 + + +From e29ca1112c976afd9a78c7cdfbda7e26efb8880a Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sat, 15 Oct 2011 22:28:24 +0200 +Subject: [PATCH 2/6] vdpau: remove recover variable and use diplay state + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 39 +++++++++++++++-------- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 5 ++- + 2 files changed, 28 insertions(+), 16 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 06629df..8debcb6 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -92,7 +92,7 @@ CVDPAU::CVDPAU() + surfaceNum = presentSurfaceNum = 0; + picAge.b_age = picAge.ip_age[0] = picAge.ip_age[1] = 256*256*256*64; + vdpauConfigured = false; +- recover = false; ++ m_DisplayState = VDPAU_OPEN; + m_mixerfield = VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME; + m_mixerstep = 0; + m_DisplayState = VDPAU_OPEN; +@@ -443,7 +443,7 @@ int CVDPAU::Check(AVCodecContext* avctx) + } + lock.Enter(); + } +- if (recover || m_DisplayState == VDPAU_RESET) ++ if (m_DisplayState == VDPAU_RESET) + { + CLog::Log(LOGNOTICE,"Attempting recovery"); + +@@ -452,7 +452,6 @@ int CVDPAU::Check(AVCodecContext* avctx) + + InitVDPAUProcs(); + +- recover = false; + m_DisplayState = VDPAU_OPEN; + + return VC_FLUSHED; +@@ -1038,10 +1037,12 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) + struct pictureAge* pA = &vdp->picAge; + + // while we are waiting to recover we can't do anything +- if(vdp->recover) +- { +- CLog::Log(LOGWARNING, "CVDPAU::FFGetBuffer - returning due to awaiting recovery"); +- return -1; ++ { CSingleLock lock(vdp->m_DisplaySection); ++ if(vdp->m_DisplayState != VDPAU_OPEN) ++ { ++ CLog::Log(LOGWARNING, "CVDPAU::FFGetBuffer - returning due to awaiting recovery"); ++ return -1; ++ } + } + + vdpau_render_state * render = NULL; +@@ -1134,9 +1135,11 @@ void CVDPAU::FFDrawSlice(struct AVCodecContext *s, + CDVDVideoCodecFFmpeg* ctx = (CDVDVideoCodecFFmpeg*)s->opaque; + CVDPAU* vdp = (CVDPAU*)ctx->GetHardware(); + +- /* while we are waiting to recover we can't do anything */ +- if(vdp->recover) +- return; ++ // while we are waiting to recover we can't do anything ++ { CSingleLock lock(vdp->m_DisplaySection); ++ if(vdp->m_DisplayState != VDPAU_OPEN) ++ return; ++ } + + if(src->linesize[0] || src->linesize[1] || src->linesize[2] + || offset[0] || offset[1] || offset[2]) +@@ -1433,23 +1436,31 @@ void CVDPAU::VDPPreemptionCallbackFunction(VdpDevice device, void* context) + { + CLog::Log(LOGDEBUG,"VDPAU Device Preempted - attempting recovery"); + CVDPAU* pCtx = (CVDPAU*)context; +- pCtx->recover = true; ++ ++ { CSingleLock lock(pCtx->m_DisplaySection); ++ if(pCtx->m_DisplayState == VDPAU_OPEN) ++ pCtx->m_DisplayState = VDPAU_RESET; ++ } + } + + bool CVDPAU::CheckStatus(VdpStatus vdp_st, int line) + { ++ CSingleLock lock(m_DisplaySection); ++ + if (vdp_st == VDP_STATUS_HANDLE_DEVICE_MISMATCH + || vdp_st == VDP_STATUS_DISPLAY_PREEMPTED) +- recover = true; ++ if(m_DisplayState == VDPAU_OPEN) ++ m_DisplayState = VDPAU_RESET; + + // no need to log errors about this case, as it will happen on cleanup +- if (vdp_st == VDP_STATUS_INVALID_HANDLE && recover && vdpauConfigured) ++ if (vdp_st == VDP_STATUS_INVALID_HANDLE && (m_DisplayState != VDPAU_OPEN) && vdpauConfigured) + return false; + + if (vdp_st != VDP_STATUS_OK) + { + CLog::Log(LOGERROR, " (VDPAU) Error: %s(%d) at %s:%d\n", vdp_get_error_string(vdp_st), vdp_st, __FILE__, line); +- recover = true; ++ if(m_DisplayState == VDPAU_OPEN) ++ m_DisplayState = VDPAU_RESET; + return true; + } + return false; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +index 6eab3fc..31cb653 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -102,7 +102,6 @@ public: + void InitCSCMatrix(int Height); + bool CheckStatus(VdpStatus vdp_st, int line); + +- bool CheckRecover(bool force = false); + void CheckFeatures(); + void SetColor(); + void SetNoiseReduction(); +@@ -111,7 +110,6 @@ public: + void SetHWUpscaling(); + + pictureAge picAge; +- bool recover; + vdpau_render_state *past[2], *current, *future; + int tmpDeintMode, tmpDeintGUI, tmpDeint; + float tmpNoiseReduction, tmpSharpness; +@@ -226,6 +224,9 @@ public: + + std::vector m_videoSurfaces; + ++ // OnLostDevice triggers transition from all states to LOST ++ // internal errors trigger transition from OPEN to RESET ++ // OnResetDevice triggers transition from LOST to RESET + enum EDisplayState + { VDPAU_OPEN + , VDPAU_RESET +-- +1.7.5.4 + + +From 27662f3b3212db24c5691514a7159f801a02e4d2 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Wed, 19 Oct 2011 16:20:15 +0200 +Subject: [PATCH 3/6] vdpau: fix memory leak and access violation in + vdpau_render_state structure + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 54 +++++++++++++++++++----- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 2 + + 2 files changed, 45 insertions(+), 11 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 8debcb6..cb2aaac 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -151,6 +151,9 @@ bool CVDPAU::Open(AVCodecContext* avctx, const enum PixelFormat, unsigned int su + } + } + ++ if (!m_dllAvUtil.Load()) ++ return false; ++ + InitVDPAUProcs(); + + if (vdp_device != VDP_INVALID_HANDLE) +@@ -212,6 +215,7 @@ void CVDPAU::Close() + FiniVDPAUProcs(); + + g_Windowing.Unregister(this); ++ m_dllAvUtil.Unload(); + + if (m_glPixmap) + { +@@ -431,19 +435,24 @@ void CVDPAU::OnResetDevice() + + int CVDPAU::Check(AVCodecContext* avctx) + { +- CSingleLock lock(m_DisplaySection); ++ EDisplayState state; + +- if (m_DisplayState == VDPAU_LOST) ++ { CSingleLock lock(m_DisplaySection); ++ state = m_DisplayState; ++ } ++ ++ if (state == VDPAU_LOST) + { +- lock.Leave(); + if (!m_DisplayEvent.WaitMSec(2000)) + { + CLog::Log(LOGERROR, "CVDPAU::Check - device didn't reset in reasonable time"); + return VC_ERROR; + } +- lock.Enter(); ++ { CSingleLock lock(m_DisplaySection); ++ state = m_DisplayState; ++ } + } +- if (m_DisplayState == VDPAU_RESET) ++ if (state == VDPAU_RESET) + { + CLog::Log(LOGNOTICE,"Attempting recovery"); + +@@ -452,8 +461,6 @@ int CVDPAU::Check(AVCodecContext* avctx) + + InitVDPAUProcs(); + +- m_DisplayState = VDPAU_OPEN; +- + return VC_FLUSHED; + } + return 0; +@@ -863,6 +870,7 @@ void CVDPAU::FiniVDPAUOutput() + vdp_st = vdp_video_surface_destroy(m_videoSurfaces[i]->surface); + CheckStatus(vdp_st, __LINE__); + m_videoSurfaces[i]->surface = VDP_INVALID_HANDLE; ++ m_dllAvUtil.av_freep(&m_videoSurfaces[i]->bitstream_buffers); + free(m_videoSurfaces[i]); + } + m_videoSurfaces.clear(); +@@ -1065,6 +1073,11 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) + VdpDecoderProfile profile; + ReadFormatOf(avctx->pix_fmt, profile, vdp->vdp_chroma_type); + render = (vdpau_render_state*)calloc(sizeof(vdpau_render_state), 1); ++ if (render == NULL) ++ { ++ CLog::Log(LOGWARNING, "CVDPAU::FFGetBuffer - calloc failed"); ++ return -1; ++ } + vdp_st = vdp->vdp_video_surface_create(vdp->vdp_device, + vdp->vdp_chroma_type, + avctx->width, +@@ -1112,19 +1125,38 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) + void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) + { + //CLog::Log(LOGNOTICE,"%s",__FUNCTION__); +- vdpau_render_state * render; +- int i; ++ CDVDVideoCodecFFmpeg* ctx = (CDVDVideoCodecFFmpeg*)avctx->opaque; ++ CVDPAU* vdp = (CVDPAU*)ctx->GetHardware(); ++ vdpau_render_state * render; ++ unsigned int i; + + render=(vdpau_render_state*)pic->data[0]; + if(!render) + { +- CLog::Log(LOGERROR, "CVDPAU::FFDrawSlice - invalid context handle provided"); ++ CLog::Log(LOGERROR, "CVDPAU::FFReleaseBuffer - invalid context handle provided"); + return; + } + +- render->state &= ~FF_VDPAU_STATE_USED_FOR_REFERENCE; + for(i=0; i<4; i++) + pic->data[i]= NULL; ++ ++ // find render state in queue ++ bool found(false); ++ for(i = 0; i < vdp->m_videoSurfaces.size(); ++i) ++ { ++ if(vdp->m_videoSurfaces[i] == render) ++ { ++ found = true; ++ break; ++ } ++ } ++ if (!found) ++ { ++ CLog::Log(LOGDEBUG, "CVDPAU::FFReleaseBuffer - buffer not found"); ++ return; ++ } ++ ++ render->state &= ~FF_VDPAU_STATE_USED_FOR_REFERENCE; + } + + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +index 31cb653..d10d845 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -21,6 +21,7 @@ + * + */ + ++#include "DllAvUtil.h" + #include "DVDVideoCodec.h" + #include "DVDVideoCodecFFmpeg.h" + #include "libavcodec/vdpau.h" +@@ -223,6 +224,7 @@ public: + , VdpChromaType &chroma_type); + + std::vector m_videoSurfaces; ++ DllAvUtil m_dllAvUtil; + + // OnLostDevice triggers transition from all states to LOST + // internal errors trigger transition from OPEN to RESET +-- +1.7.5.4 + + +From dcfe717dd680598f09fd3fbe34e77bd75d390660 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Fri, 21 Oct 2011 09:06:06 +0200 +Subject: [PATCH 4/6] vdpau: revamp error recovery, verify picture buffers + from ffmpeg because some decoders like vc-1 dont flush + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 168 ++++++++++++------------ + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 3 - + 2 files changed, 84 insertions(+), 87 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index cb2aaac..814c05c 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -73,12 +73,6 @@ static struct SInterlaceMapping + , {VS_INTERLACEMETHOD_NONE , (VdpVideoMixerFeature)-1} + }; + +-#define CHECK_VDPAU_RETURN(vdp, value) \ +- do { \ +- if(CheckStatus(vdp, __LINE__)) \ +- return value; \ +- } while(0); +- + //since libvdpau 0.4, vdp_device_create_x11() installs a callback on the Display*, + //if we unload libvdpau with dlclose(), we segfault on XCloseDisplay, + //so we just keep a static handle to libvdpau around +@@ -99,7 +93,6 @@ CVDPAU::CVDPAU() + + m_glPixmap = 0; + m_Pixmap = 0; +- m_glContext = 0; + if (!glXBindTexImageEXT) + glXBindTexImageEXT = (PFNGLXBINDTEXIMAGEEXTPROC)glXGetProcAddress((GLubyte *) "glXBindTexImageEXT"); + if (!glXReleaseTexImageEXT) +@@ -230,13 +223,6 @@ void CVDPAU::Close() + XFreePixmap(m_Display, m_Pixmap); + m_Pixmap = NULL; + } +- +- if (m_glContext) +- { +- CLog::Log(LOGINFO, "GLX: Destroying glContext"); +- glXDestroyContext(m_Display, m_glContext); +- m_glContext = NULL; +- } + } + + bool CVDPAU::MakePixmapGL() +@@ -284,36 +270,9 @@ bool CVDPAU::MakePixmapGL() + XFree(fbConfigs); + return false; + } +- +- /* to make the pixmap usable, it needs to have any context associated with it */ +- GLXContext lastctx = glXGetCurrentContext(); +- GLXDrawable lastdrw = glXGetCurrentDrawable(); +- +- XVisualInfo *visInfo; +- visInfo = glXGetVisualFromFBConfig(m_Display, fbConfigs[fbConfigIndex]); +- if (!visInfo) +- { +- CLog::Log(LOGINFO, "GLX Error: Could not obtain X Visual Info for pixmap"); +- XFree(fbConfigs); +- return false; +- } + XFree(fbConfigs); + +- CLog::Log(LOGINFO, "GLX: Creating Pixmap context"); +- m_glContext = glXCreateContext(m_Display, visInfo, NULL, True); +- XFree(visInfo); +- +- if (!glXMakeCurrent(m_Display, m_glPixmap, m_glContext)) +- { +- CLog::Log(LOGINFO, "GLX Error: Could not make Pixmap current"); +- return false; +- } +- +- /* restore what thread had before */ +- glXMakeCurrent(m_Display, lastdrw, lastctx); +- + return true; +- + } + + bool CVDPAU::MakePixmap(int width, int height) +@@ -798,17 +757,26 @@ void CVDPAU::InitVDPAUProcs() + + #undef VDP_PROC + +- vdp_st = vdp_preemption_callback_register(vdp_device, +- &VDPPreemptionCallbackFunction, +- (void*)this); +- CheckStatus(vdp_st, __LINE__); +- + CSingleLock lock(m_DisplaySection); + m_DisplayState = VDPAU_OPEN; ++ vdpauConfigured = false; + } + + void CVDPAU::FiniVDPAUProcs() + { ++ while (!m_videoSurfaces.empty()) ++ { ++ vdpau_render_state *render = m_videoSurfaces.back(); ++ m_videoSurfaces.pop_back(); ++ if (render->bitstream_buffers_allocated) ++ m_dllAvUtil.av_freep(&render->bitstream_buffers); ++ render->bitstream_buffers_allocated = 0; ++ free(render); ++ } ++ ++ while (!m_DVDVideoPics.empty()) ++ m_DVDVideoPics.pop(); ++ + if (vdp_device == VDP_INVALID_HANDLE) return; + + VdpStatus vdp_st; +@@ -841,15 +809,18 @@ void CVDPAU::FiniVDPAUOutput() + VdpStatus vdp_st; + + vdp_st = vdp_decoder_destroy(decoder); +- CheckStatus(vdp_st, __LINE__); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return; + decoder = VDP_INVALID_HANDLE; + + vdp_st = vdp_presentation_queue_destroy(vdp_flip_queue); +- CheckStatus(vdp_st, __LINE__); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return; + vdp_flip_queue = VDP_INVALID_HANDLE; + + vdp_st = vdp_presentation_queue_target_destroy(vdp_flip_target); +- CheckStatus(vdp_st, __LINE__); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return; + vdp_flip_target = VDP_INVALID_HANDLE; + + outputSurface = presentSurface = VDP_INVALID_HANDLE; +@@ -857,23 +828,30 @@ void CVDPAU::FiniVDPAUOutput() + for (int i = 0; i < totalAvailableOutputSurfaces; i++) + { + vdp_st = vdp_output_surface_destroy(outputSurfaces[i]); +- CheckStatus(vdp_st, __LINE__); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return; + outputSurfaces[i] = VDP_INVALID_HANDLE; + } + + vdp_st = vdp_video_mixer_destroy(videoMixer); +- CheckStatus(vdp_st, __LINE__); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return; + videoMixer = VDP_INVALID_HANDLE; + +- for(unsigned int i = 0; i < m_videoSurfaces.size(); i++) ++ while (!m_videoSurfaces.empty()) + { +- vdp_st = vdp_video_surface_destroy(m_videoSurfaces[i]->surface); +- CheckStatus(vdp_st, __LINE__); +- m_videoSurfaces[i]->surface = VDP_INVALID_HANDLE; +- m_dllAvUtil.av_freep(&m_videoSurfaces[i]->bitstream_buffers); +- free(m_videoSurfaces[i]); ++ vdpau_render_state *render = m_videoSurfaces.back(); ++ m_videoSurfaces.pop_back(); ++ if (render->bitstream_buffers_allocated) ++ m_dllAvUtil.av_freep(&render->bitstream_buffers); ++ render->bitstream_buffers_allocated = 0; ++ vdp_st = vdp_video_surface_destroy(render->surface); ++ render->surface = VDP_INVALID_HANDLE; ++ free(render); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return; + } +- m_videoSurfaces.clear(); ++ + while (!m_DVDVideoPics.empty()) + m_DVDVideoPics.pop(); + } +@@ -947,17 +925,20 @@ bool CVDPAU::ConfigVDPAU(AVCodecContext* avctx, int ref_frames) + vid_height, + max_references, + &decoder); +- CHECK_VDPAU_RETURN(vdp_st, false); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return false; + + vdp_st = vdp_presentation_queue_target_create_x11(vdp_device, + m_Pixmap, //x_window, + &vdp_flip_target); +- CHECK_VDPAU_RETURN(vdp_st, false); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return false; + + vdp_st = vdp_presentation_queue_create(vdp_device, + vdp_flip_target, + &vdp_flip_queue); +- CHECK_VDPAU_RETURN(vdp_st, false); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return false; + + totalAvailableOutputSurfaces = 0; + +@@ -973,7 +954,8 @@ bool CVDPAU::ConfigVDPAU(AVCodecContext* avctx, int ref_frames) + OutWidth, + OutHeight, + &outputSurfaces[i]); +- CHECK_VDPAU_RETURN(vdp_st, false); ++ if (CheckStatus(vdp_st, __LINE__)) ++ return false; + totalAvailableOutputSurfaces++; + } + CLog::Log(LOGNOTICE, " (VDPAU) Total Output Surfaces Available: %i of a max (tmp: %i const: %i)", +@@ -983,8 +965,10 @@ bool CVDPAU::ConfigVDPAU(AVCodecContext* avctx, int ref_frames) + + surfaceNum = presentSurfaceNum = 0; + outputSurface = outputSurfaces[surfaceNum]; ++ outputSurface = presentSurface = VDP_INVALID_HANDLE; ++ videoMixer = VDP_INVALID_HANDLE; + +-vdpauConfigured = true; ++ vdpauConfigured = true; + return true; + } + +@@ -1152,7 +1136,7 @@ void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) + } + if (!found) + { +- CLog::Log(LOGDEBUG, "CVDPAU::FFReleaseBuffer - buffer not found"); ++ CLog::Log(LOGDEBUG, "CVDPAU::FFReleaseBuffer - ignoring invalid buffer"); + return; + } + +@@ -1190,6 +1174,22 @@ void CVDPAU::FFDrawSlice(struct AVCodecContext *s, + return; + } + ++ // ffmpeg vc-1 decoder does not flush, make sure the data buffer is still valid ++ bool found(false); ++ for(unsigned int i = 0; i < vdp->m_videoSurfaces.size(); ++i) ++ { ++ if(vdp->m_videoSurfaces[i] == render) ++ { ++ found = true; ++ break; ++ } ++ } ++ if (!found) ++ { ++ CLog::Log(LOGWARNING, "CVDPAU::FFDrawSlice - ignoring invalid buffer"); ++ return; ++ } ++ + uint32_t max_refs = 0; + if(s->pix_fmt == PIX_FMT_VDPAU_H264) + max_refs = render->info.h264.num_ref_frames; +@@ -1250,6 +1250,22 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) + if(!render) + return VC_ERROR; + ++ // ffmpeg vc-1 decoder does not flush, make sure the data buffer is still valid ++ bool found(false); ++ for(unsigned int i = 0; i < m_videoSurfaces.size(); ++i) ++ { ++ if(m_videoSurfaces[i] == render) ++ { ++ found = true; ++ break; ++ } ++ } ++ if (!found) ++ { ++ CLog::Log(LOGWARNING, "CVDPAU::Decode - ignoring invalid buffer"); ++ return VC_BUFFER; ++ } ++ + render->state |= FF_VDPAU_STATE_USED_FOR_RENDER; + + ClearUsedForRender(&past[0]); +@@ -1464,35 +1480,19 @@ void CVDPAU::Present() + CheckStatus(vdp_st, __LINE__); + } + +-void CVDPAU::VDPPreemptionCallbackFunction(VdpDevice device, void* context) +-{ +- CLog::Log(LOGDEBUG,"VDPAU Device Preempted - attempting recovery"); +- CVDPAU* pCtx = (CVDPAU*)context; +- +- { CSingleLock lock(pCtx->m_DisplaySection); +- if(pCtx->m_DisplayState == VDPAU_OPEN) +- pCtx->m_DisplayState = VDPAU_RESET; +- } +-} +- + bool CVDPAU::CheckStatus(VdpStatus vdp_st, int line) + { + CSingleLock lock(m_DisplaySection); + +- if (vdp_st == VDP_STATUS_HANDLE_DEVICE_MISMATCH +- || vdp_st == VDP_STATUS_DISPLAY_PREEMPTED) +- if(m_DisplayState == VDPAU_OPEN) +- m_DisplayState = VDPAU_RESET; +- +- // no need to log errors about this case, as it will happen on cleanup +- if (vdp_st == VDP_STATUS_INVALID_HANDLE && (m_DisplayState != VDPAU_OPEN) && vdpauConfigured) +- return false; +- + if (vdp_st != VDP_STATUS_OK) + { + CLog::Log(LOGERROR, " (VDPAU) Error: %s(%d) at %s:%d\n", vdp_get_error_string(vdp_st), vdp_st, __FILE__, line); ++ ++ vdp_device = VDP_INVALID_HANDLE; ++ + if(m_DisplayState == VDPAU_OPEN) + m_DisplayState = VDPAU_RESET; ++ + return true; + } + return false; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +index d10d845..868ca60 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -87,7 +87,6 @@ public: + PFNGLXRELEASETEXIMAGEEXTPROC glXReleaseTexImageEXT; + GLXPixmap m_glPixmap; + Pixmap m_Pixmap; +- GLXContext m_glContext; + + static void FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic); + static void FFDrawSlice(struct AVCodecContext *s, +@@ -95,8 +94,6 @@ public: + int y, int type, int height); + static int FFGetBuffer(AVCodecContext *avctx, AVFrame *pic); + +- static void VDPPreemptionCallbackFunction(VdpDevice device, void* context); +- + void Present(); + bool ConfigVDPAU(AVCodecContext *avctx, int ref_frames); + void SpewHardwareAvailable(); +-- +1.7.5.4 + + +From ad1dfc3aefe71075185cd8aaec5639b4af4de390 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sat, 22 Oct 2011 10:31:47 +0200 +Subject: [PATCH 5/6] LinuxRendererGL: call glFinish in uninit + +--- + xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +index 0e247aa..4c736bf 100644 +--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp ++++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +@@ -1049,6 +1049,8 @@ void CLinuxRendererGL::UnInit() + CLog::Log(LOGDEBUG, "LinuxRendererGL: Cleaning up GL resources"); + CSingleLock lock(g_graphicsContext); + ++ glFinish(); ++ + if (m_rgbPbo) + { + glDeleteBuffersARB(1, &m_rgbPbo); +-- +1.7.5.4 + + +From e80b167c14fd96065ce40ac588772582788d8e93 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sat, 22 Oct 2011 14:49:40 +0200 +Subject: [PATCH 6/6] vdpau: change order of creation/clear down of pixmap and + presentation queue + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 197 ++++++++++++++++-------- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 17 ++- + xbmc/windowing/X11/WinSystemX11.cpp | 6 +- + 3 files changed, 152 insertions(+), 68 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 814c05c..c10c5b8 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -89,7 +89,6 @@ CVDPAU::CVDPAU() + m_DisplayState = VDPAU_OPEN; + m_mixerfield = VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME; + m_mixerstep = 0; +- m_DisplayState = VDPAU_OPEN; + + m_glPixmap = 0; + m_Pixmap = 0; +@@ -181,7 +180,6 @@ bool CVDPAU::Open(AVCodecContext* avctx, const enum PixelFormat, unsigned int su + } + + InitCSCMatrix(avctx->height); +- MakePixmap(avctx->width,avctx->height); + + /* finally setup ffmpeg */ + avctx->get_buffer = CVDPAU::FFGetBuffer; +@@ -209,20 +207,6 @@ void CVDPAU::Close() + + g_Windowing.Unregister(this); + m_dllAvUtil.Unload(); +- +- if (m_glPixmap) +- { +- CLog::Log(LOGINFO, "GLX: Destroying glPixmap"); +- glXReleaseTexImageEXT(m_Display, m_glPixmap, GLX_FRONT_LEFT_EXT); +- glXDestroyPixmap(m_Display, m_glPixmap); +- m_glPixmap = NULL; +- } +- if (m_Pixmap) +- { +- CLog::Log(LOGINFO, "GLX: Destroying XPixmap"); +- XFreePixmap(m_Display, m_Pixmap); +- m_Pixmap = NULL; +- } + } + + bool CVDPAU::MakePixmapGL() +@@ -331,7 +315,9 @@ bool CVDPAU::MakePixmap(int width, int height) + + void CVDPAU::BindPixmap() + { +- { CSingleLock lock(m_DisplaySection); ++ CSharedLock lock(m_DecoderSection); ++ ++ { CSharedLock dLock(m_DisplaySection); + if (m_DisplayState != VDPAU_OPEN) + return; + } +@@ -362,7 +348,9 @@ void CVDPAU::BindPixmap() + + void CVDPAU::ReleasePixmap() + { +- { CSingleLock lock(m_DisplaySection); ++ CSharedLock lock(m_DecoderSection); ++ ++ { CSharedLock dLock(m_DisplaySection); + if (m_DisplayState != VDPAU_OPEN) + return; + } +@@ -376,15 +364,23 @@ void CVDPAU::ReleasePixmap() + + void CVDPAU::OnLostDevice() + { +- CSingleLock lock(m_DisplaySection); ++ CLog::Log(LOGNOTICE,"CVDPAU::OnLostDevice event"); ++ ++ { CExclusiveLock lock(m_DecoderSection); ++ FiniVDPAUOutput(); ++ FiniVDPAUProcs(); ++ } ++ ++ CExclusiveLock lock(m_DisplaySection); + m_DisplayState = VDPAU_LOST; + m_DisplayEvent.Reset(); + } + + void CVDPAU::OnResetDevice() + { +- CSingleLock lock(m_DisplaySection); ++ CLog::Log(LOGNOTICE,"CVDPAU::OnResetDevice event"); + ++ CExclusiveLock lock(m_DisplaySection); + if (m_DisplayState == VDPAU_LOST) + { + m_DisplayState = VDPAU_RESET; +@@ -396,18 +392,19 @@ int CVDPAU::Check(AVCodecContext* avctx) + { + EDisplayState state; + +- { CSingleLock lock(m_DisplaySection); ++ { CSharedLock lock(m_DisplaySection); + state = m_DisplayState; + } + + if (state == VDPAU_LOST) + { ++ CLog::Log(LOGNOTICE,"CVDPAU::Check waiting for display reset event"); + if (!m_DisplayEvent.WaitMSec(2000)) + { + CLog::Log(LOGERROR, "CVDPAU::Check - device didn't reset in reasonable time"); + return VC_ERROR; + } +- { CSingleLock lock(m_DisplaySection); ++ { CSharedLock lock(m_DisplaySection); + state = m_DisplayState; + } + } +@@ -415,6 +412,9 @@ int CVDPAU::Check(AVCodecContext* avctx) + { + CLog::Log(LOGNOTICE,"Attempting recovery"); + ++ CSingleLock gLock(g_graphicsContext); ++ CExclusiveLock lock(m_DecoderSection); ++ + FiniVDPAUOutput(); + FiniVDPAUProcs(); + +@@ -757,7 +757,19 @@ void CVDPAU::InitVDPAUProcs() + + #undef VDP_PROC + +- CSingleLock lock(m_DisplaySection); ++ // set all vdpau resources to invalid ++ vdp_flip_target = VDP_INVALID_HANDLE; ++ vdp_flip_queue = VDP_INVALID_HANDLE; ++ videoMixer = VDP_INVALID_HANDLE; ++ totalAvailableOutputSurfaces = 0; ++ presentSurface = VDP_INVALID_HANDLE; ++ outputSurface = VDP_INVALID_HANDLE; ++ for (int i = 0; i < NUM_OUTPUT_SURFACES; i++) ++ outputSurfaces[i] = VDP_INVALID_HANDLE; ++ ++ m_vdpauOutputMethod = OUTPUT_NONE; ++ ++ CExclusiveLock lock(m_DisplaySection); + m_DisplayState = VDPAU_OPEN; + vdpauConfigured = false; + } +@@ -774,9 +786,6 @@ void CVDPAU::FiniVDPAUProcs() + free(render); + } + +- while (!m_DVDVideoPics.empty()) +- m_DVDVideoPics.pop(); +- + if (vdp_device == VDP_INVALID_HANDLE) return; + + VdpStatus vdp_st; +@@ -802,6 +811,8 @@ void CVDPAU::InitCSCMatrix(int Height) + + void CVDPAU::FiniVDPAUOutput() + { ++ FiniOutputMethod(); ++ + if (vdp_device == VDP_INVALID_HANDLE || !vdpauConfigured) return; + + CLog::Log(LOGNOTICE, " (VDPAU) %s", __FUNCTION__); +@@ -813,31 +824,6 @@ void CVDPAU::FiniVDPAUOutput() + return; + decoder = VDP_INVALID_HANDLE; + +- vdp_st = vdp_presentation_queue_destroy(vdp_flip_queue); +- if (CheckStatus(vdp_st, __LINE__)) +- return; +- vdp_flip_queue = VDP_INVALID_HANDLE; +- +- vdp_st = vdp_presentation_queue_target_destroy(vdp_flip_target); +- if (CheckStatus(vdp_st, __LINE__)) +- return; +- vdp_flip_target = VDP_INVALID_HANDLE; +- +- outputSurface = presentSurface = VDP_INVALID_HANDLE; +- +- for (int i = 0; i < totalAvailableOutputSurfaces; i++) +- { +- vdp_st = vdp_output_surface_destroy(outputSurfaces[i]); +- if (CheckStatus(vdp_st, __LINE__)) +- return; +- outputSurfaces[i] = VDP_INVALID_HANDLE; +- } +- +- vdp_st = vdp_video_mixer_destroy(videoMixer); +- if (CheckStatus(vdp_st, __LINE__)) +- return; +- videoMixer = VDP_INVALID_HANDLE; +- + while (!m_videoSurfaces.empty()) + { + vdpau_render_state *render = m_videoSurfaces.back(); +@@ -851,9 +837,6 @@ void CVDPAU::FiniVDPAUOutput() + if (CheckStatus(vdp_st, __LINE__)) + return; + } +- +- while (!m_DVDVideoPics.empty()) +- m_DVDVideoPics.pop(); + } + + +@@ -928,6 +911,23 @@ bool CVDPAU::ConfigVDPAU(AVCodecContext* avctx, int ref_frames) + if (CheckStatus(vdp_st, __LINE__)) + return false; + ++ m_vdpauOutputMethod = OUTPUT_NONE; ++ ++ vdpauConfigured = true; ++ return true; ++} ++ ++bool CVDPAU::ConfigOutputMethod(AVCodecContext *avctx, AVFrame *pFrame) ++{ ++ VdpStatus vdp_st; ++ ++ if (m_vdpauOutputMethod == OUTPUT_PIXMAP) ++ return true; ++ ++ FiniOutputMethod(); ++ ++ MakePixmap(avctx->width,avctx->height); ++ + vdp_st = vdp_presentation_queue_target_create_x11(vdp_device, + m_Pixmap, //x_window, + &vdp_flip_target); +@@ -964,11 +964,67 @@ bool CVDPAU::ConfigVDPAU(AVCodecContext* avctx, int ref_frames) + NUM_OUTPUT_SURFACES); + + surfaceNum = presentSurfaceNum = 0; +- outputSurface = outputSurfaces[surfaceNum]; + outputSurface = presentSurface = VDP_INVALID_HANDLE; + videoMixer = VDP_INVALID_HANDLE; + +- vdpauConfigured = true; ++ m_vdpauOutputMethod = OUTPUT_PIXMAP; ++ ++ return true; ++} ++ ++bool CVDPAU::FiniOutputMethod() ++{ ++ VdpStatus vdp_st; ++ ++ if (vdp_flip_queue != VDP_INVALID_HANDLE) ++ { ++ vdp_st = vdp_presentation_queue_destroy(vdp_flip_queue); ++ vdp_flip_queue = VDP_INVALID_HANDLE; ++ CheckStatus(vdp_st, __LINE__); ++ } ++ ++ if (vdp_flip_target != VDP_INVALID_HANDLE) ++ { ++ vdp_st = vdp_presentation_queue_target_destroy(vdp_flip_target); ++ vdp_flip_target = VDP_INVALID_HANDLE; ++ CheckStatus(vdp_st, __LINE__); ++ } ++ ++ if (m_glPixmap) ++ { ++ CLog::Log(LOGDEBUG, "GLX: Destroying glPixmap"); ++ glXDestroyPixmap(m_Display, m_glPixmap); ++ m_glPixmap = NULL; ++ } ++ ++ if (m_Pixmap) ++ { ++ CLog::Log(LOGDEBUG, "GLX: Destroying XPixmap"); ++ XFreePixmap(m_Display, m_Pixmap); ++ m_Pixmap = NULL; ++ } ++ ++ outputSurface = presentSurface = VDP_INVALID_HANDLE; ++ ++ for (int i = 0; i < totalAvailableOutputSurfaces; i++) ++ { ++ if (outputSurfaces[i] == VDP_INVALID_HANDLE) ++ continue; ++ vdp_st = vdp_output_surface_destroy(outputSurfaces[i]); ++ outputSurfaces[i] = VDP_INVALID_HANDLE; ++ CheckStatus(vdp_st, __LINE__); ++ } ++ ++ if (videoMixer != VDP_INVALID_HANDLE) ++ { ++ vdp_st = vdp_video_mixer_destroy(videoMixer); ++ videoMixer = VDP_INVALID_HANDLE; ++ if (CheckStatus(vdp_st, __LINE__)); ++ } ++ ++ while (!m_DVDVideoPics.empty()) ++ m_DVDVideoPics.pop(); ++ + return true; + } + +@@ -1029,7 +1085,9 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) + struct pictureAge* pA = &vdp->picAge; + + // while we are waiting to recover we can't do anything +- { CSingleLock lock(vdp->m_DisplaySection); ++ CSharedLock lock(vdp->m_DecoderSection); ++ ++ { CSharedLock dLock(vdp->m_DisplaySection); + if(vdp->m_DisplayState != VDPAU_OPEN) + { + CLog::Log(LOGWARNING, "CVDPAU::FFGetBuffer - returning due to awaiting recovery"); +@@ -1114,6 +1172,8 @@ void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) + vdpau_render_state * render; + unsigned int i; + ++ CSharedLock lock(vdp->m_DecoderSection); ++ + render=(vdpau_render_state*)pic->data[0]; + if(!render) + { +@@ -1152,11 +1212,14 @@ void CVDPAU::FFDrawSlice(struct AVCodecContext *s, + CVDPAU* vdp = (CVDPAU*)ctx->GetHardware(); + + // while we are waiting to recover we can't do anything +- { CSingleLock lock(vdp->m_DisplaySection); ++ CSharedLock lock(vdp->m_DecoderSection); ++ ++ { CSharedLock dLock(vdp->m_DisplaySection); + if(vdp->m_DisplayState != VDPAU_OPEN) + return; + } + ++ + if(src->linesize[0] || src->linesize[1] || src->linesize[2] + || offset[0] || offset[1] || offset[2]) + { +@@ -1216,6 +1279,8 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) + VdpStatus vdp_st; + VdpTime time; + ++ CSharedLock lock(m_DecoderSection); ++ + int result = Check(avctx); + if (result) + return result; +@@ -1223,6 +1288,10 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) + if (!vdpauConfigured) + return VC_ERROR; + ++ // configure vdpau output ++ if (!ConfigOutputMethod(avctx, pFrame)) ++ return VC_FLUSHED; ++ + outputSurface = outputSurfaces[surfaceNum]; + + CheckFeatures(); +@@ -1419,7 +1488,9 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) + + bool CVDPAU::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) + { +- { CSingleLock lock(m_DisplaySection); ++ CSharedLock lock(m_DecoderSection); ++ ++ { CSharedLock dLock(m_DisplaySection); + if (m_DisplayState != VDPAU_OPEN) + return false; + } +@@ -1465,7 +1536,9 @@ void CVDPAU::Present() + //CLog::Log(LOGNOTICE,"%s",__FUNCTION__); + VdpStatus vdp_st; + +- { CSingleLock lock(m_DisplaySection); ++ CSharedLock lock(m_DecoderSection); ++ ++ { CSharedLock dLock(m_DisplaySection); + if (m_DisplayState != VDPAU_OPEN) + return; + } +@@ -1482,13 +1555,11 @@ void CVDPAU::Present() + + bool CVDPAU::CheckStatus(VdpStatus vdp_st, int line) + { +- CSingleLock lock(m_DisplaySection); +- + if (vdp_st != VDP_STATUS_OK) + { + CLog::Log(LOGERROR, " (VDPAU) Error: %s(%d) at %s:%d\n", vdp_get_error_string(vdp_st), vdp_st, __FILE__, line); + +- vdp_device = VDP_INVALID_HANDLE; ++ CExclusiveLock lock(m_DisplaySection); + + if(m_DisplayState == VDPAU_OPEN) + m_DisplayState = VDPAU_RESET; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +index 868ca60..0686d98 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -33,6 +33,7 @@ + #include + #include + #include "threads/CriticalSection.h" ++#include "threads/SharedSection.h" + #include "settings/VideoSettings.h" + #include "guilib/DispResource.h" + #include "threads/Event.h" +@@ -134,6 +135,8 @@ public: + void InitVDPAUProcs(); + void FiniVDPAUProcs(); + void FiniVDPAUOutput(); ++ bool ConfigOutputMethod(AVCodecContext *avctx, AVFrame *pFrame); ++ bool FiniOutputMethod(); + + VdpDevice vdp_device; + VdpGetProcAddress * vdp_get_proc_address; +@@ -223,6 +226,15 @@ public: + std::vector m_videoSurfaces; + DllAvUtil m_dllAvUtil; + ++ enum VDPAUOutputMethod ++ { ++ OUTPUT_NONE, ++ OUTPUT_PIXMAP, ++ OUTPUT_GL_INTEROP_RGB, ++ OUTPUT_GL_INTEROP_YUV ++ }; ++ VDPAUOutputMethod m_vdpauOutputMethod; ++ + // OnLostDevice triggers transition from all states to LOST + // internal errors trigger transition from OPEN to RESET + // OnResetDevice triggers transition from LOST to RESET +@@ -231,8 +243,9 @@ public: + , VDPAU_RESET + , VDPAU_LOST + } m_DisplayState; +- CCriticalSection m_DisplaySection; +- CEvent m_DisplayEvent; ++ CSharedSection m_DecoderSection; ++ CSharedSection m_DisplaySection; ++ CEvent m_DisplayEvent; + virtual void OnLostDevice(); + virtual void OnResetDevice(); + }; +diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp +index ea20c0e..62cf554 100644 +--- a/xbmc/windowing/X11/WinSystemX11.cpp ++++ b/xbmc/windowing/X11/WinSystemX11.cpp +@@ -508,14 +508,14 @@ void CWinSystemX11::OnLostDevice() + { + CLog::Log(LOGDEBUG, "%s - notify display change event", __FUNCTION__); + ++ // make sure renderer has no invalid references ++ g_renderManager.Flush(); ++ + { CSingleLock lock(m_resourceSection); + for (vector::iterator i = m_resources.begin(); i != m_resources.end(); i++) + (*i)->OnLostDevice(); + } + +- // make sure renderer has no invalid references +- g_renderManager.Flush(); +- + // fail safe timer + m_dpyLostTime = CurrentHostCounter(); + } +-- +1.7.5.4 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-99c0b41-342-revert_ffmpeg_00d1e96bf4fc0467744f840fbc85d1a65cbb6f08.patch b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-342-revert_ffmpeg_00d1e96bf4fc0467744f840fbc85d1a65cbb6f08.patch new file mode 100644 index 0000000000..641471f691 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-342-revert_ffmpeg_00d1e96bf4fc0467744f840fbc85d1a65cbb6f08.patch @@ -0,0 +1,48 @@ +diff -Naur xbmc-4c32cde/lib/ffmpeg/libavcodec/h264.c xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/h264.c +--- xbmc-4c32cde/lib/ffmpeg/libavcodec/h264.c 2011-10-28 15:29:40.000000000 +0200 ++++ xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/h264.c 2011-10-29 15:18:16.716609657 +0200 +@@ -1802,7 +1802,7 @@ + if(h->sps.frame_mbs_only_flag) + s->height= 16*s->mb_height - 2*FFMIN(h->sps.crop_bottom, 7); + else +- s->height= 16*s->mb_height - 4*FFMIN(h->sps.crop_bottom, 7); ++ s->height= 16*s->mb_height - 4*FFMIN(h->sps.crop_bottom, 3); + + if (s->context_initialized + && ( s->width != s->avctx->width || s->height != s->avctx->height +diff -Naur xbmc-4c32cde/lib/ffmpeg/libavcodec/h264_ps.c xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/h264_ps.c +--- xbmc-4c32cde/lib/ffmpeg/libavcodec/h264_ps.c 2011-10-28 15:29:39.000000000 +0200 ++++ xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/h264_ps.c 2011-10-29 15:18:16.718609683 +0200 +@@ -374,7 +374,7 @@ + if(sps->crop_left || sps->crop_top){ + av_log(h->s.avctx, AV_LOG_ERROR, "insane cropping not completely supported, this could look slightly wrong ...\n"); + } +- if(sps->crop_right >= 8 || sps->crop_bottom >= 8){ ++ if(sps->crop_right >= 8 || sps->crop_bottom >= (8>> !sps->frame_mbs_only_flag)){ + av_log(h->s.avctx, AV_LOG_ERROR, "brainfart cropping not supported, this could look slightly wrong ...\n"); + } + }else{ +diff -Naur xbmc-4c32cde/lib/ffmpeg/libavcodec/mpegvideo.c xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/mpegvideo.c +--- xbmc-4c32cde/lib/ffmpeg/libavcodec/mpegvideo.c 2011-10-28 15:29:40.000000000 +0200 ++++ xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/mpegvideo.c 2011-10-29 15:18:16.719609696 +0200 +@@ -498,7 +498,7 @@ + + if(s->codec_id == CODEC_ID_MPEG2VIDEO && !s->progressive_sequence) + s->mb_height = (s->height + 31) / 32 * 2; +- else if (s->codec_id != CODEC_ID_H264) ++ else + s->mb_height = (s->height + 15) / 16; + + if(s->avctx->pix_fmt == PIX_FMT_NONE){ +diff -Naur xbmc-4c32cde/lib/ffmpeg/libavcodec/utils.c xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/utils.c +--- xbmc-4c32cde/lib/ffmpeg/libavcodec/utils.c 2011-10-28 15:29:41.000000000 +0200 ++++ xbmc-4c32cde.patch/lib/ffmpeg/libavcodec/utils.c 2011-10-29 15:18:16.721609720 +0200 +@@ -145,7 +145,7 @@ + case PIX_FMT_YUVA420P: + w_align= 16; //FIXME check for non mpeg style codecs and use less alignment + h_align= 16; +- if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP || s->codec_id == CODEC_ID_H264) ++ if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP) + h_align= 32; // interlaced is rounded up to 2 MBs + break; + case PIX_FMT_YUV411P: diff --git a/packages/mediacenter/xbmc/patches/xbmc-99c0b41-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch index e42432f2df..b7c38d53f1 100644 --- a/packages/mediacenter/xbmc/patches/xbmc-99c0b41-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch +++ b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch @@ -1,20 +1,10 @@ -From f46d7a99bc2f3bc70f274422ec8d16257e2a97aa Mon Sep 17 00:00:00 2001 -From: FernetMenta -Date: Sat, 13 Aug 2011 16:07:08 +0200 -Subject: [PATCH] ati: limit glxSwapBuffers going to far ahead - ---- - xbmc/windowing/X11/WinSystemX11GL.cpp | 23 +++++++++++++++++++++-- - 1 files changed, 21 insertions(+), 2 deletions(-) - -diff --git a/xbmc/windowing/X11/WinSystemX11GL.cpp b/xbmc/windowing/X11/WinSystemX11GL.cpp -index 94f369e..870999e 100644 ---- a/xbmc/windowing/X11/WinSystemX11GL.cpp -+++ b/xbmc/windowing/X11/WinSystemX11GL.cpp -@@ -43,7 +43,27 @@ CWinSystemX11GL::~CWinSystemX11GL() - - bool CWinSystemX11GL::PresentRenderImpl(const CDirtyRegionList& dirty) +diff -Naur xbmc-4c32cde/xbmc/windowing/X11/WinSystemX11GL.cpp xbmc-4c32cde.patch/xbmc/windowing/X11/WinSystemX11GL.cpp +--- xbmc-4c32cde/xbmc/windowing/X11/WinSystemX11GL.cpp 2011-10-29 14:43:48.634117918 +0200 ++++ xbmc-4c32cde.patch/xbmc/windowing/X11/WinSystemX11GL.cpp 2011-10-29 14:45:56.207774711 +0200 +@@ -45,7 +45,27 @@ { + CheckDisplayEvents(); + - if(m_iVSyncMode == 3) + if(m_iVSyncMode == 2) + { @@ -40,7 +30,7 @@ index 94f369e..870999e 100644 { glFinish(); unsigned int before = 0, after = 0; -@@ -236,7 +256,6 @@ bool CWinSystemX11GL::CreateNewWindow(const CStdString& name, bool fullScreen, R +@@ -238,7 +258,6 @@ else m_glXSwapIntervalMESA = NULL; @@ -48,6 +38,3 @@ index 94f369e..870999e 100644 return true; } --- -1.7.5.4 - diff --git a/packages/mediacenter/xbmc/patches/xbmc-99c0b41-453-ps3_remote_be_more_quiet-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-99c0b41-453-ps3_remote_be_more_quiet-0.1.patch deleted file mode 100644 index 6b2f879e1c..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-99c0b41-453-ps3_remote_be_more_quiet-0.1.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -Naur xbmc-pvr-3513480/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py xbmc-pvr-3513480.patch/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py ---- xbmc-pvr-3513480/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py 2011-04-25 02:36:33.000000000 +0200 -+++ xbmc-pvr-3513480.patch/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py 2011-04-25 05:30:03.870260596 +0200 -@@ -59,9 +59,6 @@ - target_connected = False - target_address = None - while target_connected is False: -- xbmc.send_notification("Action Required!", -- "Hold Start+Enter on your remote.", -- bticon) - print "Searching for %s" % target_name - print "(Hold Start + Enter on remote to make it discoverable)" - time.sleep(2) -@@ -72,7 +69,6 @@ - except Exception, e: - print "Error performing bluetooth discovery" - print str(e) -- xbmc.send_notification("Error", "Unable to find devices.", bticon) - time.sleep(5) - continue - -@@ -109,7 +105,6 @@ - print "ERROR - Could Not Connect. Trying again..." - time.sleep(2) - else: -- xbmc.send_notification("Error", "No remotes were found.", bticon) - print "Could not find BD Remote Control. Trying again..." - time.sleep(2) - return (remote,target_address) diff --git a/packages/multimedia/SDL/meta b/packages/multimedia/SDL/meta index b6adedb2c8..a05d37f93c 100644 --- a/packages/multimedia/SDL/meta +++ b/packages/multimedia/SDL/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.libsdl.org/" PKG_URL="http://www.libsdl.org/release/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="alsa-lib libX11 libXrandr Mesa" -PKG_BUILD_DEPENDS="toolchain yasm alsa-lib libX11 libXrandr Mesa" +PKG_DEPENDS="alsa-lib libX11 libXrandr $MESA" +PKG_BUILD_DEPENDS="toolchain yasm alsa-lib libX11 libXrandr $MESA" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="libsdl: A cross-platform Graphic API" diff --git a/packages/multimedia/SDL_ttf/meta b/packages/multimedia/SDL_ttf/meta index b79b3b6ce5..5fd71fa7f9 100644 --- a/packages/multimedia/SDL_ttf/meta +++ b/packages/multimedia/SDL_ttf/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.libsdl.org/" PKG_URL="http://www.libsdl.org/projects/SDL_ttf/release/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="SDL libICE libX11 freetype Mesa" -PKG_BUILD_DEPENDS="toolchain SDL libICE libX11 freetype Mesa" +PKG_DEPENDS="SDL libICE libX11 freetype $MESA" +PKG_BUILD_DEPENDS="toolchain SDL libICE libX11 freetype $MESA" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="libsdl_ttf: A library to use TrueType fonts in SDL applications" diff --git a/packages/multimedia/libva/meta b/packages/multimedia/libva/meta index 2834f38239..f3ee74b113 100644 --- a/packages/multimedia/libva/meta +++ b/packages/multimedia/libva/meta @@ -25,8 +25,8 @@ PKG_ARCH="i386 x86_64" PKG_LICENSE="GPL" PKG_SITE="http://freedesktop.org/wiki/Software/vaapi" PKG_URL="http://cgit.freedesktop.org/libva/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="libX11 libXext libXfixes libdrm Mesa" -PKG_BUILD_DEPENDS="toolchain libX11 libXext libXfixes libdrm Mesa" +PKG_DEPENDS="libX11 libXext libXfixes libdrm $MESA" +PKG_BUILD_DEPENDS="toolchain libX11 libXext libXfixes libdrm $MESA" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="libva: The main motivation for VAAPI (Video Acceleration API) is to enable hardware accelerated video decode/encode at various entry-points (VLD, IDCT, Motion Compensation etc.) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3)." diff --git a/packages/multimedia/libvdpau/build b/packages/multimedia/libvdpau/build index 2d71e27c9d..058362b831 100755 --- a/packages/multimedia/libvdpau/build +++ b/packages/multimedia/libvdpau/build @@ -28,7 +28,9 @@ cd $PKG_BUILD --prefix=/usr \ --enable-shared \ --disable-static \ + --enable-dri2 \ --disable-documentation \ + --with-module-dir=/usr/lib/vdpau make diff --git a/packages/multimedia/xvba-video/meta b/packages/multimedia/xvba-video/meta index bdffa9ec4a..77dfec649a 100644 --- a/packages/multimedia/xvba-video/meta +++ b/packages/multimedia/xvba-video/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="nonfree" PKG_SITE="http://www.splitted-desktop.com/~gbeauchesne/" PKG_URL="http://www.splitted-desktop.com/~gbeauchesne/xvba-video/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="libX11 libXext Mesa libva" -PKG_BUILD_DEPENDS="toolchain libX11 libXext Mesa libva xf86-video-fglrx" +PKG_DEPENDS="libX11 libXext $MESA libva" +PKG_BUILD_DEPENDS="toolchain libX11 libXext $MESA libva xf86-video-fglrx" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="xvba-video: XvBA backend for VA API" diff --git a/packages/network/avahi/build b/packages/network/avahi/build index 70277a398e..7c35834b9e 100755 --- a/packages/network/avahi/build +++ b/packages/network/avahi/build @@ -44,9 +44,9 @@ ac_cv_func_chroot=no \ --disable-dbm \ --disable-gdbm \ --enable-libdaemon \ - --disable-python \ + --enable-python \ --disable-pygtk \ - --disable-python-dbus \ + --enable-python-dbus \ --disable-mono \ --disable-monodoc \ --enable-autoipd \ diff --git a/packages/network/avahi/install b/packages/network/avahi/install index 48216d6aa1..1f83083247 100755 --- a/packages/network/avahi/install +++ b/packages/network/avahi/install @@ -22,6 +22,8 @@ . config/options $1 +PYTHON_LIB_DIR=`ls -d $INSTALL/usr/lib/python*` + add_user avahi x 495 495 "avahi-daemon" "/var/run/avahi-daemon" "/bin/sh" add_group avahi 495 @@ -43,7 +45,6 @@ mkdir -p $INSTALL/etc/avahi/services cp $PKG_BUILD/avahi-daemon/sftp-ssh.service $INSTALL/etc/avahi/services fi - mkdir -p $INSTALL/etc/dbus-1/system.d cp $PKG_BUILD/avahi-daemon/avahi-dbus.conf $INSTALL/etc/dbus-1/system.d @@ -69,6 +70,9 @@ mkdir -p $INSTALL/usr/lib cp -P $PKG_BUILD/avahi-client/.libs/*.so*[.0-9] $INSTALL/usr/lib/ cp -P $PKG_BUILD/avahi-compat-libdns_sd/.libs/*.so*[.0-9] $INSTALL/usr/lib/ +mkdir -p $PYTHON_LIB_DIR/site-packages/avahi + cp -P $PKG_BUILD/avahi-python/avahi/*.py $PYTHON_LIB_DIR/site-packages/avahi + mkdir -p $INSTALL/usr/share/avahi cp $PKG_BUILD/service-type-database/service-types $INSTALL/usr/share/avahi cp $PKG_BUILD/avahi-daemon/avahi-service.dtd $INSTALL/usr/share/avahi diff --git a/packages/network/avahi/meta b/packages/network/avahi/meta index e3644f222a..e8a3004684 100644 --- a/packages/network/avahi/meta +++ b/packages/network/avahi/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://avahi.org/" PKG_URL="http://www.avahi.org/download/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="expat libdaemon dbus connman" -PKG_BUILD_DEPENDS="toolchain expat libdaemon dbus" +PKG_DEPENDS="Python expat libdaemon dbus connman dbus-python" +PKG_BUILD_DEPENDS="toolchain Python expat libdaemon dbus dbus-python" PKG_PRIORITY="optional" PKG_SECTION="network" PKG_SHORTDESC="avahi: A Zeroconf mDNS/DNS-SD responder" diff --git a/packages/network/bluez/config/main.conf b/packages/network/bluez/config/main.conf new file mode 100644 index 0000000000..0ff6b0b921 --- /dev/null +++ b/packages/network/bluez/config/main.conf @@ -0,0 +1,66 @@ +[General] + +# List of plugins that should not be loaded on bluetoothd startup +DisablePlugins = input + +# Default adaper name +# %h - substituted for hostname +# %d - substituted for adapter id +Name = %h-%d + +# Default device class. Only the major and minor device class bits are +# considered. +Class = 0x000100 + +# How long to stay in discoverable mode before going back to non-discoverable +# The value is in seconds. Default is 180, i.e. 3 minutes. +# 0 = disable timer, i.e. stay discoverable forever +DiscoverableTimeout = 0 + +# How long to stay in pairable mode before going back to non-discoverable +# The value is in seconds. Default is 0. +# 0 = disable timer, i.e. stay pairable forever +PairableTimeout = 0 + +# Use some other page timeout than the controller default one +# which is 16384 (10 seconds). +PageTimeout = 8192 + +# Discover scheduler interval used in Adapter.DiscoverDevices +# The value is in seconds. Defaults is 30. +DiscoverSchedulerInterval = 30 + +# What value should be assumed for the adapter Powered property when +# SetProperty(Powered, ...) hasn't been called yet. Defaults to true +InitiallyPowered = true + +# Remember the previously stored Powered state when initializing adapters +RememberPowered = true + +# Use vendor, product and version information for DID profile support. +# The values are separated by ":" and VID, PID and version. +#DeviceID = 1234:5678:abcd + +# Do reverse service discovery for previously unknown devices that connect to +# us. This option is really only needed for qualification since the BITE tester +# doesn't like us doing reverse SDP for some test cases (though there could in +# theory be other useful purposes for this too). Defaults to true. +ReverseServiceDiscovery = true + +# Enable name resolving after inquiry. Set it to 'false' if you don't need +# remote devices name and want shorter discovery cycle. Defaults to 'true'. +NameResolving = true + +# Enable runtime persistency of debug link keys. Default is false which +# makes debug link keys valid only for the duration of the connection +# that they were created for. +DebugKeys = false + +# Enable Low Energy support if the dongle supports. Default is false. +# Enable/Disable interleave discovery and attribute server over LE. +EnableLE = false + +# Enable the GATT Attribute Server. Default is false, because it is only +# useful for testing. Attribute server is not enabled over LE if EnableLE +# is false. +AttributeServer = false diff --git a/packages/network/bluez/install b/packages/network/bluez/install index a63afb0b5c..19e4d5c3c0 100755 --- a/packages/network/bluez/install +++ b/packages/network/bluez/install @@ -25,7 +25,8 @@ PKG_DIR=`find $PACKAGES -type d -name $1` mkdir -p $INSTALL/etc/bluetooth - cp $PKG_BUILD/src/main.conf $INSTALL/etc/bluetooth +# cp $PKG_BUILD/src/main.conf $INSTALL/etc/bluetooth + cp $PKG_DIR/config/main.conf $INSTALL/etc/bluetooth cp $PKG_BUILD/tools/rfcomm.conf $INSTALL/etc/bluetooth cp $PKG_BUILD/audio/audio.conf $INSTALL/etc/bluetooth cp $PKG_BUILD/input/input.conf $INSTALL/etc/bluetooth diff --git a/packages/network/install b/packages/network/install index 09c85ca17b..fdbec1607a 100755 --- a/packages/network/install +++ b/packages/network/install @@ -25,3 +25,7 @@ $SCRIPTS/install connman $SCRIPTS/install ethtool $SCRIPTS/install openssh + +if [ "$BLUETOOTH_SUPPORT" = "yes" ]; then + $SCRIPTS/install bluez +fi diff --git a/packages/sysutils/busybox/build b/packages/sysutils/busybox/build index 79dc1e30ae..810c205363 100755 --- a/packages/sysutils/busybox/build +++ b/packages/sysutils/busybox/build @@ -28,6 +28,16 @@ else BUSYBOX_CFG_FILE=$ROOT/$PKG_DIR/config/$1.conf fi +# busybox fails building with LTO support on gcc-4.6 + strip_lto + +# fails to build with gcc-4.6.1 (ggc bug #49716 + CFLAGS=`echo $CFLAGS | sed -e "s|-ftree-loop-distribution||"` + CFLAGS=`echo $CFLAGS | sed -e "s|-floop-interchange||"` + CFLAGS=`echo $CFLAGS | sed -e "s|-floop-strip-mine||"` + CFLAGS=`echo $CFLAGS | sed -e "s|-floop-block||"` + CFLAGS=`echo $CFLAGS | sed -e "s|-fgraphite-identity||"` + # optimize for size CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-Os|"` CFLAGS=`echo $CFLAGS | sed -e "s|-O.|-Os|"` diff --git a/packages/sysutils/busybox/meta b/packages/sysutils/busybox/meta index b8c795466b..c8e62c34ac 100644 --- a/packages/sysutils/busybox/meta +++ b/packages/sysutils/busybox/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="busybox" -PKG_VERSION="1.19.2" +PKG_VERSION="1.19.3" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-android.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-android.patch deleted file mode 100644 index e2e6528a2f..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-android.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- busybox-1.19.2/include/platform.h -+++ busybox-1.19.2-android/include/platform.h -@@ -433,7 +433,7 @@ typedef unsigned smalluint; - # undef HAVE_STPCPY - #endif - --#if defined(ANDROID) -+#if defined(ANDROID) || defined(__ANDROID__) - # undef HAVE_DPRINTF - # undef HAVE_GETLINE - # undef HAVE_STPCPY diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-buildsys.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-buildsys.patch deleted file mode 100644 index 8e0c4c33ee..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-buildsys.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- busybox-1.19.2/applets/applet_tables.c -+++ busybox-1.19.2-buildsys/applets/applet_tables.c -@@ -80,8 +80,15 @@ int main(int argc, char **argv) - - printf("#define NUM_APPLETS %u\n", NUM_APPLETS); - if (NUM_APPLETS == 1) { -+ char *dash_to_underscore, *p; - printf("#define SINGLE_APPLET_STR \"%s\"\n", applets[0].name); -- printf("#define SINGLE_APPLET_MAIN %s_main\n", applets[0].name); -+ /* Example: "ether-wake" -> "ether_wake" */ -+ p = dash_to_underscore = strdup(applets[0].name); -+ p--; -+ while (*++p) -+ if (*p == '-') -+ *p = '_'; -+ printf("#define SINGLE_APPLET_MAIN %s_main\n", dash_to_underscore); - } - printf("\n"); - diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch deleted file mode 100644 index 0cba0e219a..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- busybox-1.19.2/loginutils/chpasswd.c -+++ busybox-1.19.2-chpasswd/loginutils/chpasswd.c -@@ -33,9 +33,8 @@ static const char chpasswd_longopts[] AL - int chpasswd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; - int chpasswd_main(int argc UNUSED_PARAM, char **argv) - { -- char *name, *pass; -- char salt[sizeof("$N$XXXXXXXX")]; -- int opt, rc; -+ char *name; -+ int opt; - - if (getuid() != 0) - bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); -@@ -45,6 +44,10 @@ int chpasswd_main(int argc UNUSED_PARAM, - opt = getopt32(argv, "em"); - - while ((name = xmalloc_fgetline(stdin)) != NULL) { -+ char *free_me; -+ char *pass; -+ int rc; -+ - pass = strchr(name, ':'); - if (!pass) - bb_error_msg_and_die("missing new password"); -@@ -52,7 +55,10 @@ int chpasswd_main(int argc UNUSED_PARAM, - - xuname2uid(name); /* dies if there is no such user */ - -+ free_me = NULL; - if (!(opt & OPT_ENC)) { -+ char salt[sizeof("$N$XXXXXXXX")]; -+ - crypt_make_salt(salt, 1); - if (opt & OPT_MD5) { - salt[0] = '$'; -@@ -60,7 +66,7 @@ int chpasswd_main(int argc UNUSED_PARAM, - salt[2] = '$'; - crypt_make_salt(salt + 3, 4); - } -- pass = pw_encrypt(pass, salt, 0); -+ free_me = pass = pw_encrypt(pass, salt, 0); - } - - /* This is rather complex: if user is not found in /etc/shadow, -@@ -81,8 +87,7 @@ int chpasswd_main(int argc UNUSED_PARAM, - bb_info_msg("Password for '%s' changed", name); - logmode = LOGMODE_STDIO; - free(name); -- if (!(opt & OPT_ENC)) -- free(pass); -+ free(free_me); - } - return EXIT_SUCCESS; - } diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch deleted file mode 100644 index 043a846ca4..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- busybox-1.19.2/miscutils/crond.c -+++ busybox-1.19.2-crond/miscutils/crond.c -@@ -861,7 +861,8 @@ int crond_main(int argc UNUSED_PARAM, ch - - /* "-b after -f is ignored", and so on for every pair a-b */ - opt_complementary = "f-b:b-f:S-L:L-S" IF_FEATURE_CROND_D(":d-l") -- ":l+:d+"; /* -l and -d have numeric param */ -+ /* -l and -d have numeric param */ -+ ":l+" IF_FEATURE_CROND_D(":d+"); - opts = getopt32(argv, "l:L:fbSc:" IF_FEATURE_CROND_D("d:"), - &G.log_level, &G.log_filename, &G.crontab_dir_name - IF_FEATURE_CROND_D(,&G.log_level)); diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch deleted file mode 100644 index e1395a6b3b..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- busybox-1.19.2/networking/inetd.c -+++ busybox-1.19.2-inetd/networking/inetd.c -@@ -1278,6 +1278,7 @@ int inetd_main(int argc UNUSED_PARAM, ch - sep->se_count = 0; - rearm_alarm(); /* will revive it in RETRYTIME sec */ - restore_sigmask(&omask); -+ maybe_close(new_udp_fd); - maybe_close(accepted_fd); - continue; /* -> check next fd in fd set */ - } -@@ -1298,17 +1299,18 @@ int inetd_main(int argc UNUSED_PARAM, ch - bb_perror_msg("vfork"+1); - sleep(1); - restore_sigmask(&omask); -+ maybe_close(new_udp_fd); - maybe_close(accepted_fd); - continue; /* -> check next fd in fd set */ - } - if (pid == 0) - pid--; /* -1: "we did fork and we are child" */ - } -- /* if pid == 0 here, we never forked */ -+ /* if pid == 0 here, we didn't fork */ - - if (pid > 0) { /* parent */ - if (sep->se_wait) { -- /* tcp wait: we passed listening socket to child, -+ /* wait: we passed socket to child, - * will wait for child to terminate */ - sep->se_wait = pid; - remove_fd_from_set(sep->se_fd); -@@ -1345,9 +1347,13 @@ int inetd_main(int argc UNUSED_PARAM, ch - setsid(); - /* "nowait" udp */ - if (new_udp_fd >= 0) { -- len_and_sockaddr *lsa = xzalloc_lsa(sep->se_family); -+ len_and_sockaddr *lsa; -+ int r; -+ -+ close(new_udp_fd); -+ lsa = xzalloc_lsa(sep->se_family); - /* peek at the packet and remember peer addr */ -- int r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT, -+ r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT, - &lsa->u.sa, &lsa->len); - if (r < 0) - goto do_exit1; diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-syslogd.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-syslogd.patch deleted file mode 100644 index d54f5d4307..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-syslogd.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- busybox-1.19.2/sysklogd/syslogd.c -+++ busybox-1.19.2-syslogd/sysklogd/syslogd.c -@@ -278,7 +278,7 @@ static void parse_syslogdcfg(const char - parser_t *parser; - - parser = config_open2(file ? file : "/etc/syslog.conf", -- file ? xfopen_for_read : fopen_or_warn_stdin); -+ file ? xfopen_for_read : fopen_for_read); - if (!parser) - /* didn't find default /etc/syslog.conf */ - /* proceed as if we built busybox without config support */ -@@ -678,7 +678,7 @@ static void timestamp_and_log(int pri, c - if (LOG_PRI(pri) < G.logLevel) { - #if ENABLE_FEATURE_IPC_SYSLOG - if ((option_mask32 & OPT_circularlog) && G.shbuf) { -- log_to_shmem(msg); -+ log_to_shmem(G.printbuf); - return; - } - #endif diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-tail.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-tail.patch deleted file mode 100644 index f3cc79814e..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.19.2-tail.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- busybox-1.19.2/coreutils/tail.c -+++ busybox-1.19.2-tail/coreutils/tail.c -@@ -203,7 +203,7 @@ int tail_main(int argc, char **argv) - int fd = fds[i]; - - if (ENABLE_FEATURE_FANCY_TAIL && fd < 0) -- continue; /* may happen with -E */ -+ continue; /* may happen with -F */ - - if (nfiles > header_threshhold) { - tail_xprint_header(fmt, argv[i]); -@@ -252,14 +252,14 @@ int tail_main(int argc, char **argv) - * Used only by +N code ("start from Nth", 1-based): */ - seen = 1; - newlines_seen = 0; -- while ((nread = tail_read(fd, buf, tailbufsize-taillen)) > 0) { -+ while ((nread = tail_read(fd, buf, tailbufsize - taillen)) > 0) { - if (G.from_top) { - int nwrite = nread; - if (seen < count) { - /* We need to skip a few more bytes/lines */ - if (COUNT_BYTES) { - nwrite -= (count - seen); -- seen = count; -+ seen += nread; - } else { - char *s = buf; - do { ---- busybox-1.19.2/testsuite/tail.tests -+++ busybox-1.19.2-tail/testsuite/tail.tests -@@ -14,4 +14,12 @@ testing "tail: +N with N > file length" - "0\n" \ - "" "qw" - -+testing "tail: -c +N with largish N" \ -+ " -+ dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8200 | wc -c; -+ dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8208 | wc -c; -+ " \ -+ "8185\n8177\n" \ -+ "" "" -+ - exit $FAILCOUNT diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-00_halt_no_init.patch b/packages/sysutils/busybox/patches/busybox-1.19.3-00_halt_no_init.patch similarity index 100% rename from packages/sysutils/busybox/patches/busybox-1.19.2-00_halt_no_init.patch rename to packages/sysutils/busybox/patches/busybox-1.19.3-00_halt_no_init.patch diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-01_check_cc.patch b/packages/sysutils/busybox/patches/busybox-1.19.3-01_check_cc.patch similarity index 100% rename from packages/sysutils/busybox/patches/busybox-1.19.2-01_check_cc.patch rename to packages/sysutils/busybox/patches/busybox-1.19.3-01_check_cc.patch diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-02_user_modprobe.d_dir-0.1.patch b/packages/sysutils/busybox/patches/busybox-1.19.3-02_user_modprobe.d_dir-0.1.patch similarity index 100% rename from packages/sysutils/busybox/patches/busybox-1.19.2-02_user_modprobe.d_dir-0.1.patch rename to packages/sysutils/busybox/patches/busybox-1.19.3-02_user_modprobe.d_dir-0.1.patch diff --git a/packages/sysutils/dbus/patches/dbus-1.4.16-speedup-0.1.patch b/packages/sysutils/dbus/patches/dbus-1.4.16-speedup-0.1.patch new file mode 100644 index 0000000000..81e3deb37f --- /dev/null +++ b/packages/sysutils/dbus/patches/dbus-1.4.16-speedup-0.1.patch @@ -0,0 +1,12 @@ +diff -Naur dbus-1.4.16/dbus/dbus-message.c dbus-1.4.16.patch/dbus/dbus-message.c +--- dbus-1.4.16/dbus/dbus-message.c 2011-09-21 13:16:16.000000000 +0200 ++++ dbus-1.4.16.patch/dbus/dbus-message.c 2011-10-29 02:09:16.927338774 +0200 +@@ -3963,7 +3963,7 @@ + DBusValidationMode mode; + dbus_uint32_t n_unix_fds = 0; + +- mode = DBUS_VALIDATION_MODE_DATA_IS_UNTRUSTED; ++ mode = DBUS_VALIDATION_MODE_WE_TRUST_THIS_DATA_ABSOLUTELY; + + oom = FALSE; + diff --git a/packages/sysutils/kexec-tools/patches/kexec-tools-2.0.2-gcc-4.6.patch b/packages/sysutils/kexec-tools/patches/kexec-tools-2.0.2-gcc-4.6.patch new file mode 100644 index 0000000000..c66d069a91 --- /dev/null +++ b/packages/sysutils/kexec-tools/patches/kexec-tools-2.0.2-gcc-4.6.patch @@ -0,0 +1,12 @@ +diff -Naur kexec-tools-2.0.2/purgatory/Makefile kexec-tools-2.0.2.patch/purgatory/Makefile +--- kexec-tools-2.0.2/purgatory/Makefile 2010-07-29 06:19:59.000000000 +0200 ++++ kexec-tools-2.0.2.patch/purgatory/Makefile 2011-10-30 18:38:31.462335639 +0100 +@@ -56,7 +56,7 @@ + -I$(srcdir)/include \ + -I$(shell $(CC) -print-file-name=include) + $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\ +- --no-undefined -nostartfiles -nostdlib -nodefaultlibs \ ++ -nostartfiles -nostdlib -nodefaultlibs \ + -e purgatory_start -r + + $(PURGATORY): $(PURGATORY_OBJS) diff --git a/packages/sysutils/pciutils/build b/packages/sysutils/pciutils/build index 4420ffafc6..18f387d845 100755 --- a/packages/sysutils/pciutils/build +++ b/packages/sysutils/pciutils/build @@ -22,6 +22,9 @@ . config/options $1 +# pciutils fails building with LTO support on gcc-4.6 + strip_lto + cd $PKG_BUILD make OPT="$CFLAGS" \ diff --git a/packages/toolchain/lang/gcc-core/build b/packages/toolchain/lang/gcc-core/build index 6ef5ebf8a4..722120eeaa 100755 --- a/packages/toolchain/lang/gcc-core/build +++ b/packages/toolchain/lang/gcc-core/build @@ -49,9 +49,11 @@ mkdir -p objdir-$1 && cd objdir-$1 --disable-__cxa_atexit \ --disable-libada \ --disable-libmudflap \ - --enable-gold=both/ld \ + --enable-gold=yes \ + --enable-ld=default \ --enable-plugin \ --enable-lto \ + --disable-libquadmath \ --disable-libssp \ --disable-libgomp \ --disable-shared \ diff --git a/packages/toolchain/lang/gcc-final/build b/packages/toolchain/lang/gcc-final/build index ee262fbc0c..8dc04c038b 100755 --- a/packages/toolchain/lang/gcc-final/build +++ b/packages/toolchain/lang/gcc-final/build @@ -49,9 +49,11 @@ mkdir -p objdir-$1 && cd objdir-$1 --disable-libmudflap \ --disable-libssp \ --disable-multilib \ - --enable-gold=both/ld \ + --enable-gold=yes \ + --enable-ld=default \ --enable-plugin \ --enable-lto \ + --disable-libquadmath \ --enable-tls \ --enable-shared \ --enable-c99 \ @@ -61,11 +63,6 @@ mkdir -p objdir-$1 && cd objdir-$1 make -if [ ! "$DEBUG" = yes ]; then - $STRIP `find . -name "*.so"` - $STRIP `find . -name "*.so.[0-9]*"` -fi - make install cp -PR $TARGET_NAME/libstdc++-v3/src/.libs/libstdc++.so* $SYSROOT_PREFIX/usr/lib diff --git a/packages/toolchain/lang/gcc/meta b/packages/toolchain/lang/gcc/meta index 5fef08c778..71baf2d74d 100644 --- a/packages/toolchain/lang/gcc/meta +++ b/packages/toolchain/lang/gcc/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="gcc" -PKG_VERSION="4.5.3" +PKG_VERSION="4.6.2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-fix_undefined_references_with_lto-0.1.patch b/packages/toolchain/lang/gcc/patches/gcc-4.5.3-fix_undefined_references_with_lto-0.1.patch deleted file mode 100644 index 62f5b8ae52..0000000000 --- a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-fix_undefined_references_with_lto-0.1.patch +++ /dev/null @@ -1,126 +0,0 @@ -diff -Naur gcc-4.5-20101118/gcc/ChangeLog gcc-4.5-20101118.patch/gcc/ChangeLog -diff -Naur gcc-4.5-20101118/gcc/doc/invoke.texi gcc-4.5-20101118.patch/gcc/doc/invoke.texi ---- gcc-4.5-20101118/gcc/doc/invoke.texi 2010-09-08 19:36:40.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/doc/invoke.texi 2010-11-26 03:05:14.029157093 +0100 -@@ -9382,6 +9382,18 @@ - %@{fgnu-runtime:%:replace-outfile(-lobjc -lobjc-gnu)@} - @end smallexample - -+@item @code{pass-through-libs} -+The @code{pass-through-libs} spec function takes any number of arguments. It -+finds any @option{-l} options and any non-options ending in ".a" (which it -+assumes are the names of linker input library archive files) and returns a -+result containing all the found arguments each prepended by -+@option{-plugin-opt=-pass-through=} and joined by spaces. This list is -+intended to be passed to the LTO linker plugin. -+ -+@smallexample -+%:pass-through-libs(%G %L %G) -+@end smallexample -+ - @item @code{print-asm-header} - The @code{print-asm-header} function takes no arguments and simply - prints a banner like: -diff -Naur gcc-4.5-20101118/gcc/gcc.c gcc-4.5-20101118.patch/gcc/gcc.c ---- gcc-4.5-20101118/gcc/gcc.c 2010-04-18 19:46:08.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/gcc.c 2010-11-26 03:03:47.120008881 +0100 -@@ -407,6 +407,7 @@ - static const char *compare_debug_dump_opt_spec_function (int, const char **); - static const char *compare_debug_self_opt_spec_function (int, const char **); - static const char *compare_debug_auxbase_opt_spec_function (int, const char **); -+static const char *pass_through_libs_spec_func (int, const char **); - - /* The Specs Language - -@@ -781,8 +782,7 @@ - -plugin %(linker_plugin_file) \ - -plugin-opt=%(lto_wrapper) \ - -plugin-opt=%(lto_gcc) \ -- %{static|static-libgcc:-plugin-opt=-pass-through=%(lto_libgcc)} \ -- %{static:-plugin-opt=-pass-through=-lc} \ -+ %{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}} \ - %{O*:-plugin-opt=-O%*} \ - %{w:-plugin-opt=-w} \ - %{f*:-plugin-opt=-f%*} \ -@@ -841,7 +841,6 @@ - static const char *linker_plugin_file_spec = ""; - static const char *lto_wrapper_spec = ""; - static const char *lto_gcc_spec = ""; --static const char *lto_libgcc_spec = ""; - static const char *link_command_spec = LINK_COMMAND_SPEC; - static const char *link_libgcc_spec = LINK_LIBGCC_SPEC; - static const char *startfile_prefix_spec = STARTFILE_PREFIX_SPEC; -@@ -1688,7 +1687,6 @@ - INIT_STATIC_SPEC ("linker_plugin_file", &linker_plugin_file_spec), - INIT_STATIC_SPEC ("lto_wrapper", <o_wrapper_spec), - INIT_STATIC_SPEC ("lto_gcc", <o_gcc_spec), -- INIT_STATIC_SPEC ("lto_libgcc", <o_libgcc_spec), - INIT_STATIC_SPEC ("link_libgcc", &link_libgcc_spec), - INIT_STATIC_SPEC ("md_exec_prefix", &md_exec_prefix), - INIT_STATIC_SPEC ("md_startfile_prefix", &md_startfile_prefix), -@@ -1730,6 +1728,7 @@ - { "compare-debug-dump-opt", compare_debug_dump_opt_spec_function }, - { "compare-debug-self-opt", compare_debug_self_opt_spec_function }, - { "compare-debug-auxbase-opt", compare_debug_auxbase_opt_spec_function }, -+ { "pass-through-libs", pass_through_libs_spec_func }, - #ifdef EXTRA_SPEC_FUNCTIONS - EXTRA_SPEC_FUNCTIONS - #endif -@@ -7580,10 +7579,6 @@ - if (!linker_plugin_file_spec) - fatal ("-fuse-linker-plugin, but liblto_plugin.so not found"); - -- lto_libgcc_spec = find_a_file (&startfile_prefixes, "libgcc.a", -- R_OK, true); -- if (!lto_libgcc_spec) -- fatal ("could not find libgcc.a"); - } - lto_gcc_spec = argv[0]; - -@@ -8977,3 +8972,46 @@ - - return name; - } -+ -+/* %:pass-through-libs spec function. Finds all -l options and input -+ file names in the lib spec passed to it, and makes a list of them -+ prepended with the plugin option to cause them to be passed through -+ to the final link after all the new object files have been added. */ -+ -+const char * -+pass_through_libs_spec_func (int argc, const char **argv) -+{ -+ char *prepended = xstrdup (" "); -+ int n; -+ /* Shlemiel the painter's algorithm. Innately horrible, but at least -+ we know that there will never be more than a handful of strings to -+ concat, and it's only once per run, so it's not worth optimising. */ -+ for (n = 0; n < argc; n++) -+ { -+ char *old = prepended; -+ /* Anything that isn't an option is a full path to an output -+ file; pass it through if it ends in '.a'. Among options, -+ pass only -l. */ -+ if (argv[n][0] == '-' && argv[n][1] == 'l') -+ { -+ const char *lopt = argv[n] + 2; -+ /* Handle both joined and non-joined -l options. If for any -+ reason there's a trailing -l with no joined or following -+ arg just discard it. */ -+ if (!*lopt && ++n >= argc) -+ break; -+ else if (!*lopt) -+ lopt = argv[n]; -+ prepended = concat (prepended, "-plugin-opt=-pass-through=-l", -+ lopt, " ", NULL); -+ } -+ else if (!strcmp (".a", argv[n] + strlen (argv[n]) - 2)) -+ { -+ prepended = concat (prepended, "-plugin-opt=-pass-through=", -+ argv[n], " ", NULL); -+ } -+ if (prepended != old) -+ free (old); -+ } -+ return prepended; -+} diff --git a/packages/toolchain/lang/gcc/patches/gcc-4.6.2-PR48805_Do_not_instantiate_ADDR_EXPRs.patch b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-PR48805_Do_not_instantiate_ADDR_EXPRs.patch new file mode 100644 index 0000000000..e68001ca3a --- /dev/null +++ b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-PR48805_Do_not_instantiate_ADDR_EXPRs.patch @@ -0,0 +1,89 @@ +From gcc-patches-return-297783-listarch-gcc-patches=gcc dot gnu dot org at gcc dot gnu dot org Sat Jul 23 14:36:33 2011 +Return-Path: +Delivered-To: listarch-gcc-patches at gcc dot gnu dot org +Received: (qmail 13569 invoked by alias); 23 Jul 2011 14:36:33 -0000 +Received: (qmail 13561 invoked by uid 22791); 23 Jul 2011 14:36:32 -0000 +X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_TO_NO_BRKTS_FREEMAIL +X-Spam-Check-By: sourceware.org +Received: from mail-gy0-f175.google.com (HELO mail-gy0-f175.google.com) (209.85.160.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 23 Jul 2011 14:36:10 +0000 +Received: by gyd12 with SMTP id 12so1979920gyd.20 for ; Sat, 23 Jul 2011 07:36:10 -0700 (PDT) +Received: by 10.236.76.197 with SMTP id b45mr3893810yhe.147.1311431770250; Sat, 23 Jul 2011 07:36:10 -0700 (PDT) +Received: from napoca (adsl-99-184-92-236.dsl.austtx.sbcglobal.net [99.184.92.236]) by mx.google.com with ESMTPS id j9sm565418yhn.81.2011.07.23.07.36.08 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 23 Jul 2011 07:36:09 -0700 (PDT) +Received: by napoca (sSMTP sendmail emulation); Sat, 23 Jul 2011 09:36:01 -0500 +From: Sebastian Pop +To: gcc-patches at gcc dot gnu dot org +Cc: rguenther at suse dot de, Sebastian Pop +Subject: [PATCH] Fix PR48805: Do not instantiate ADDR_EXPRs +Date: Sat, 23 Jul 2011 09:35:56 -0500 +Message-Id: <1311431756-16262-1-git-send-email-sebpop@gmail.com> +X-IsSubscribed: yes +Mailing-List: contact gcc-patches-help at gcc dot gnu dot org; run by ezmlm +Precedence: bulk +List-Id: +List-Archive: +List-Post: +List-Help: +Sender: gcc-patches-owner at gcc dot gnu dot org +Delivered-To: mailing list gcc-patches at gcc dot gnu dot org + +With this patch we avoid instantiating ADDR_EXPR: it makes no sense +to translate b[i] into b[{0, +, 1}_1]. + +Bootstrapped and tested on amd64-linux. + +2011-07-22 Sebastian Pop + + PR middle-end/48805 + * tree-scalar-evolution.c (instantiate_scev_r): Return + chrec_dont_know for ADDR_EXPR. + + * gcc.dg/graphite/id-pr48805.c: New. +--- + gcc/ChangeLog | 6 ++++++ + gcc/testsuite/ChangeLog | 5 +++++ + gcc/testsuite/gcc.dg/graphite/id-pr48805.c | 20 ++++++++++++++++++++ + gcc/tree-scalar-evolution.c | 1 + + 4 files changed, 32 insertions(+), 0 deletions(-) + create mode 100644 gcc/testsuite/gcc.dg/graphite/id-pr48805.c + +diff --git a/gcc/testsuite/gcc.dg/graphite/id-pr48805.c b/gcc/testsuite/gcc.dg/graphite/id-pr48805.c +new file mode 100644 +index 0000000..f13a828 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/graphite/id-pr48805.c +@@ -0,0 +1,20 @@ ++void *A(const void *a); ++void C(void); ++ ++static void B(unsigned short a[]) ++{ ++ long i, j, tmp; ++ ++ for(i = 0; i < 3; i++) { ++ for(j = 1; j <= 3; j++) ++ tmp -= a[i - j]; ++ ++ a[i] = (unsigned short)(tmp >> 1); ++ } ++} ++void C(void) ++{ ++ unsigned short a[3], b[3]; ++ B(b + 1); ++ A(a); ++} +diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c +index bfa8c93..00fcd3f 100644 +--- a/gcc/tree-scalar-evolution.c ++++ b/gcc/tree-scalar-evolution.c +@@ -2645,6 +2645,7 @@ instantiate_scev_r (basic_block instantiate_below, + TREE_OPERAND (chrec, 0), + fold_conversions, cache, size_expr); + ++ case ADDR_EXPR: + case SCEV_NOT_KNOWN: + return chrec_dont_know; + +-- +1.7.4.1 + diff --git a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-bfd_and_gold.patch b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-bfd_and_gold.patch similarity index 60% rename from packages/toolchain/lang/gcc/patches/gcc-4.5.3-bfd_and_gold.patch rename to packages/toolchain/lang/gcc/patches/gcc-4.6.2-bfd_and_gold.patch index a3b33273d3..61f397ae40 100644 --- a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-bfd_and_gold.patch +++ b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-bfd_and_gold.patch @@ -1,99 +1,7 @@ -diff -Naur gcc-4.5-20101118/configure.ac gcc-4.5-20101118.patch/configure.ac ---- gcc-4.5-20101118/configure.ac 2010-10-06 12:29:55.000000000 +0200 -+++ gcc-4.5-20101118.patch/configure.ac 2010-11-26 03:48:17.007444557 +0100 -@@ -174,7 +174,7 @@ - # know that we are building the simulator. - # binutils, gas and ld appear in that order because it makes sense to run - # "make check" in that particular order. --# If --enable-gold is used, "gold" will replace "ld". -+# If --enable-gold is used, "gold" may replace "ld". - host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc cgen sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" - - # libgcj represents the runtime libraries only used by gcj. -@@ -315,37 +315,57 @@ - esac - - # Handle --enable-gold. -+# --enable-gold Build only gold -+# --disable-gold [default] Build only ld -+# --enable-gold=both Build both gold and ld, ld is default -+# --enable-gold=both/ld Same -+# --enable-gold=both/gold Build both gold and ld, gold is default, ld is renamed ld.bfd - - AC_ARG_ENABLE(gold, --[ --enable-gold use gold instead of ld], -+[ --enable-gold[[=ARG]] build gold [[ARG={both}[[/{gold,ld}]]]]], - ENABLE_GOLD=$enableval, - ENABLE_GOLD=no) --if test "${ENABLE_GOLD}" = "yes"; then -- # Check for ELF target. -- is_elf=no -- case "${target}" in -- *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ -- | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ -- | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2* | *-*-nto*) -+ case "${ENABLE_GOLD}" in -+ yes|both|both/gold|both/ld) -+ # Check for ELF target. -+ is_elf=no -+ case "${target}" in -+ *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \ -+ | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \ -+ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2* | *-*-nto*) -+ case "${target}" in -+ *-*-linux*aout* | *-*-linux*oldld*) -+ ;; -+ *) -+ is_elf=yes -+ ;; -+ esac -+ esac -+ -+ if test "$is_elf" = "yes"; then -+ # Check for target supported by gold. - case "${target}" in -- *-*-linux*aout* | *-*-linux*oldld*) -- ;; -- *) -- is_elf=yes -+ i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*) -+ case "${ENABLE_GOLD}" in -+ both*) -+ configdirs="$configdirs gold" -+ ;; -+ *) -+ configdirs="`echo " ${configdirs} " | sed -e 's/ ld / gold /'`" -+ ;; -+ esac -+ ENABLE_GOLD=yes - ;; - esac -+ fi -+ ;; -+ no) -+ ;; -+ *) -+ AC_MSG_ERROR([invalid --enable-gold argument]) -+ ;; - esac - -- if test "$is_elf" = "yes"; then -- # Check for target supported by gold. -- case "${target}" in -- i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*) -- configdirs=`echo " ${configdirs} " | sed -e 's/ ld / gold /'` -- ;; -- esac -- fi --fi -- - # Configure extra directories which are host specific - - case "${host}" in -diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c ---- gcc-4.5-20101118/gcc/collect2.c 2010-06-24 23:06:37.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/collect2.c 2010-11-26 03:42:31.162881405 +0100 -@@ -1114,17 +1114,19 @@ +diff -Naur gcc-4.6.0-old/gcc/collect2.c gcc-4.6.0-new/gcc/collect2.c +--- gcc-4.6.0-old/gcc/collect2.c 2011-01-06 10:50:20.000000000 -0800 ++++ gcc-4.6.0-new/gcc/collect2.c 2011-03-28 21:52:29.000000000 -0700 +@@ -1075,17 +1075,19 @@ int main (int argc, char **argv) { @@ -121,7 +29,7 @@ diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c #ifdef CROSS_DIRECTORY_STRUCTURE /* If we look for a program in the compiler directories, we just use -@@ -1134,6 +1136,10 @@ +@@ -1095,6 +1097,10 @@ const char *const full_ld_suffix = concat(target_machine, "-", ld_suffix, NULL); @@ -132,7 +40,7 @@ diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c const char *const full_plugin_ld_suffix = concat(target_machine, "-", plugin_ld_suffix, NULL); const char *const full_nm_suffix = -@@ -1149,15 +1155,17 @@ +@@ -1110,15 +1116,17 @@ const char *const full_gstrip_suffix = concat (target_machine, "-", gstrip_suffix, NULL); #else @@ -156,7 +64,7 @@ diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c #endif /* CROSS_DIRECTORY_STRUCTURE */ const char *arg; -@@ -1171,7 +1179,13 @@ +@@ -1132,7 +1140,13 @@ const char **c_ptr; char **ld1_argv; const char **ld1; @@ -171,37 +79,20 @@ diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c /* The kinds of symbols we will have to consider when scanning the outcome of a first pass link. This is ALL to start with, then might -@@ -1188,7 +1202,6 @@ - int first_file; - int num_c_args; - char **old_argv; -- - bool use_verbose = false; - - old_argv = argv; -@@ -1244,22 +1257,29 @@ - { - if (! strcmp (argv[i], "-debug")) - debug = 1; -- else if (! strcmp (argv[i], "-flto") && ! use_plugin) -+ else if (! strcmp (argv[i], "-flto") +@@ -1209,15 +1223,21 @@ + else if (! strcmp (argv[i], "-flto-partition=none")) + no_partition = true; + else if ((! strncmp (argv[i], "-flto=", 6) +- || ! strcmp (argv[i], "-flto")) && ! use_plugin) ++ || ! strcmp (argv[i], "-flto")) + && selected_linker != PLUGIN_LINKER) - { - use_verbose = true; - lto_mode = LTO_MODE_LTO; - } -- else if (! strcmp (argv[i], "-fwhopr") && ! use_plugin) -+ else if (! strcmp (argv[i], "-fwhopr") -+ && selected_linker != PLUGIN_LINKER) - { - use_verbose = true; - lto_mode = LTO_MODE_WHOPR; - } + lto_mode = LTO_MODE_WHOPR; + else if (!strncmp (argv[i], "-fno-lto", 8)) + lto_mode = LTO_MODE_NONE; else if (! strcmp (argv[i], "-plugin")) { - use_plugin = true; + selected_linker = PLUGIN_LINKER; - use_verbose = true; lto_mode = LTO_MODE_NONE; } + else if (! strcmp (argv[i], "-use-gold")) @@ -212,7 +103,7 @@ diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c #ifdef COLLECT_EXPORT_LIST /* since -brtl, -bexport, -b64 are not position dependent also check for them here */ -@@ -1339,35 +1359,108 @@ +@@ -1299,35 +1319,108 @@ /* Try to discover a valid linker/nm/strip to use. */ /* Maybe we know the right file to use (if not cross). */ @@ -335,10 +226,10 @@ diff -Naur gcc-4.5-20101118/gcc/collect2.c gcc-4.5-20101118.patch/gcc/collect2.c #ifdef REAL_NM_FILE_NAME nm_file_name = find_a_file (&path, REAL_NM_FILE_NAME); -diff -Naur gcc-4.5-20101118/gcc/common.opt gcc-4.5-20101118.patch/gcc/common.opt ---- gcc-4.5-20101118/gcc/common.opt 2010-03-18 04:01:09.000000000 +0100 -+++ gcc-4.5-20101118.patch/gcc/common.opt 2010-11-26 03:42:31.164881431 +0100 -@@ -1401,6 +1401,9 @@ +diff -Naur gcc-4.6.0-old/gcc/common.opt gcc-4.6.0-new/gcc/common.opt +--- gcc-4.6.0-old/gcc/common.opt 2011-03-05 16:38:13.000000000 -0800 ++++ gcc-4.6.0-new/gcc/common.opt 2011-03-28 21:52:29.000000000 -0700 +@@ -2019,6 +2019,9 @@ Common Report Var(flag_unwind_tables) Optimization Just generate unwind tables for exception handling @@ -348,71 +239,10 @@ diff -Naur gcc-4.5-20101118/gcc/common.opt gcc-4.5-20101118.patch/gcc/common.opt fuse-linker-plugin Common Undocumented -diff -Naur gcc-4.5-20101118/gcc/configure gcc-4.5-20101118.patch/gcc/configure ---- gcc-4.5-20101118/gcc/configure 2010-10-06 21:09:10.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/configure 2010-11-26 03:42:31.184881696 +0100 -@@ -684,6 +684,7 @@ - gcc_cv_objdump - ORIGINAL_NM_FOR_TARGET - gcc_cv_nm -+ORIGINAL_GOLD_FOR_TARGET - ORIGINAL_LD_FOR_TARGET - ORIGINAL_PLUGIN_LD_FOR_TARGET - gcc_cv_ld -@@ -17108,7 +17109,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17111 "configure" -+#line 17112 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -17214,7 +17215,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17217 "configure" -+#line 17218 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -20662,6 +20663,21 @@ - fi - fi - -+gcc_cv_ld_gold_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gold -+ -+if test "${gcc_cv_gold+set}" = set; then : -+ -+else -+ -+if test -f $gcc_cv_ld_gold_srcdir/configure.ac \ -+ && test -f ../gold/Makefile \ -+ && test x$build = x$host; then -+ gcc_cv_gold=../gold/ld-new$build_exeext -+else -+ gcc_cv_gold='' -+fi -+fi -+ - ORIGINAL_PLUGIN_LD_FOR_TARGET=$gcc_cv_ld - PLUGIN_LD=`basename $gcc_cv_ld` - -@@ -20688,6 +20704,9 @@ - ;; - esac - -+ORIGINAL_GOLD_FOR_TARGET=$gcc_cv_gold -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what linker to use" >&5 - $as_echo_n "checking what linker to use... " >&6; } - if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then -diff -Naur gcc-4.5-20101118/gcc/configure.ac gcc-4.5-20101118.patch/gcc/configure.ac ---- gcc-4.5-20101118/gcc/configure.ac 2010-10-06 21:09:10.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/configure.ac 2010-11-26 03:42:31.201881922 +0100 -@@ -1947,6 +1947,17 @@ +diff -Naur gcc-4.6.0-old/gcc/configure.ac gcc-4.6.0-new/gcc/configure.ac +--- gcc-4.6.0-old/gcc/configure.ac 2011-02-28 07:36:37.000000000 -0800 ++++ gcc-4.6.0-new/gcc/configure.ac 2011-03-28 21:58:18.000000000 -0700 +@@ -1937,6 +1937,17 @@ AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET) fi]) @@ -430,7 +260,7 @@ diff -Naur gcc-4.5-20101118/gcc/configure.ac gcc-4.5-20101118.patch/gcc/configur ORIGINAL_PLUGIN_LD_FOR_TARGET=$gcc_cv_ld PLUGIN_LD=`basename $gcc_cv_ld` AC_ARG_WITH(plugin-ld, -@@ -1965,6 +1976,9 @@ +@@ -1966,6 +1977,9 @@ *) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;; esac @@ -440,44 +270,43 @@ diff -Naur gcc-4.5-20101118/gcc/configure.ac gcc-4.5-20101118.patch/gcc/configur AC_MSG_CHECKING(what linker to use) if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then # Single tree build which includes ld. We want to prefer it -diff -Naur gcc-4.5-20101118/gcc/doc/invoke.texi gcc-4.5-20101118.patch/gcc/doc/invoke.texi ---- gcc-4.5-20101118/gcc/doc/invoke.texi 2010-09-08 19:36:40.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/doc/invoke.texi 2010-11-26 03:42:31.218882146 +0100 -@@ -390,7 +390,7 @@ +diff -Naur gcc-4.6.0-old/gcc/doc/invoke.texi gcc-4.6.0-new/gcc/doc/invoke.texi +--- gcc-4.6.0-old/gcc/doc/invoke.texi 2011-03-18 07:34:52.000000000 -0700 ++++ gcc-4.6.0-new/gcc/doc/invoke.texi 2011-03-28 21:52:29.000000000 -0700 +@@ -401,7 +401,7 @@ -funit-at-a-time -funroll-all-loops -funroll-loops @gol -funsafe-loop-optimizations -funsafe-math-optimizations -funswitch-loops @gol -fvariable-expansion-in-unroller -fvect-cost-model -fvpt -fweb @gol ---fwhole-program -fwhopr -fwpa -fuse-linker-plugin @gol -+-fwhole-program -fwhopr -fwpa -fuse-linker-plugin -fuse-ld @gol +--fwhole-program -fwpa -fuse-linker-plugin @gol ++-fwhole-program -fwpa -fuse-ld -fuse-linker-plugin @gol --param @var{name}=@var{value} - -O -O0 -O1 -O2 -O3 -Os} + -O -O0 -O1 -O2 -O3 -Os -Ofast} -@@ -7416,6 +7416,16 @@ +@@ -7743,6 +7743,16 @@ - Disabled by default. + Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}. +@item -fuse-ld=gold +Use the @command{gold} linker instead of the default linker. +This option is only necessary if GCC has been configured with -+@option{--enable-gold=both} or @option{--enable-gold=both/ld}. ++@option{--enable-gold} and @option{--enable-ld=default}. + +@item -fuse-ld=bfd +Use the @command{ld.bfd} linker instead of the default linker. +This option is only necessary if GCC has been configured with -+@option{--enable-gold=both/gold}. ++@option{--enable-gold} and @option{--enable-ld}. + @item -fcprop-registers @opindex fcprop-registers After register allocation and post-register allocation instruction splitting, -diff -Naur gcc-4.5-20101118/gcc/doc/invoke.texi.orig gcc-4.5-20101118.patch/gcc/doc/invoke.texi.orig -diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-tool.in ---- gcc-4.5-20101118/gcc/exec-tool.in 2009-11-08 23:36:51.000000000 +0100 -+++ gcc-4.5-20101118.patch/gcc/exec-tool.in 2010-11-26 03:42:31.226882250 +0100 +diff -Naur gcc-4.6.0-old/gcc/exec-tool.in gcc-4.6.0-new/gcc/exec-tool.in +--- gcc-4.6.0-old/gcc/exec-tool.in 2011-01-03 12:52:22.000000000 -0800 ++++ gcc-4.6.0-new/gcc/exec-tool.in 2011-03-28 21:52:29.000000000 -0700 @@ -1,6 +1,6 @@ #! /bin/sh --# Copyright (C) 2007, 2008 Free Software Foundation, Inc. -+# Copyright (C) 2007, 2008, 2010 Free Software Foundation, Inc. +-# Copyright (C) 2007, 2008, 2010 Free Software Foundation, Inc. ++# Copyright (C) 2007, 2008, 2010, 2011 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify @@ -494,29 +323,20 @@ diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-too +version="1.1" invoked=`basename "$0"` - case "$invoked" in -@@ -34,54 +36,110 @@ - prog=as-new$exeext + id=$invoked +@@ -36,15 +38,44 @@ dir=gas ;; -- collect-ld) + collect-ld) - # when using a linker plugin, gcc will always pass '-plugin' as the -- # first option to the linker. -- if test x"$1" = "x-plugin"; then +- # first or second option to the linker. +- if test x"$1" = "x-plugin" || test x"$2" = "x-plugin"; then - original=$ORIGINAL_PLUGIN_LD_FOR_TARGET - else - original=$ORIGINAL_LD_FOR_TARGET - fi -- prog=ld-new$exeext + prog=ld-new$exeext - dir=ld -- ;; - nm) - original=$ORIGINAL_NM_FOR_TARGET - prog=nm-new$exeext - dir=binutils - ;; -+ collect-ld) -+ prog=ld-new$exeext + # Look for the a command line option + # specifying the linker to be used. + case " $* " in @@ -554,14 +374,10 @@ diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-too + # will issue an error message for us. + fi + fi -+ ;; - esac - - case "$original" in - ../*) -- # compute absolute path of the location of this script -+ # Compute absolute path to the location of this script. - tdir=`dirname "$0"` + id=ld + ;; + nm) +@@ -61,29 +92,58 @@ scriptdir=`cd "$tdir" && pwd` if test -x $scriptdir/../$dir/$prog; then @@ -574,9 +390,11 @@ diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-too - # libtool has not relinked ld-new yet, but we cannot just use the - # previous stage (because then the relinking would just never happen!). - # So we take extra care to use prev-ld/ld-new *on recursive calls*. +- eval LT_RCU="\${LT_RCU_$id}" - test x"$LT_RCU" = x"1" && exec $scriptdir/../prev-$dir/$prog ${1+"$@"} - -- LT_RCU=1; export LT_RCU +- eval LT_RCU_$id=1 +- export LT_RCU_$id - $scriptdir/../$dir/$prog ${1+"$@"} - result=$? - exit $result @@ -591,10 +409,12 @@ diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-too + # Libtool has not relinked ld-new yet, but we cannot just use the + # previous stage (because then the relinking would just never happen!). + # So we take extra care to use prev-ld/ld-new *on recursive calls*. ++ eval LT_RCU="\${LT_RCU_$id}" + if test x"$LT_RCU" = x"1"; then + original=$scriptdir/../prev-$dir/$prog + else -+ LT_RCU=1; export LT_RCU ++ eval LT_RCU_$id=1 ++ export LT_RCU_$id + case " $* " in + *\ -v\ *) + echo "$invoked $version" @@ -615,13 +435,13 @@ diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-too fi ;; - *) -- exec "$original" ${1+"$@"} +- exec $original ${1+"$@"} + "") + echo "$invoked: executable not configured" + exit 1 ;; esac - ++ +# If -v has been used then display our version number +# and then echo the command we are about to invoke. +case " $* " in @@ -630,31 +450,31 @@ diff -Naur gcc-4.5-20101118/gcc/exec-tool.in gcc-4.5-20101118.patch/gcc/exec-too + echo $original $* + ;; +esac - ++ +if test -x $original; then + exec "$original" ${1+"$@"} +else + echo "$invoked: unable to locate executable: $original" + exit 1 +fi -diff -Naur gcc-4.5-20101118/gcc/gcc.c gcc-4.5-20101118.patch/gcc/gcc.c ---- gcc-4.5-20101118/gcc/gcc.c 2010-04-18 19:46:08.000000000 +0200 -+++ gcc-4.5-20101118.patch/gcc/gcc.c 2010-11-26 03:42:31.230882305 +0100 -@@ -790,6 +790,9 @@ - %{v:-plugin-opt=-v} \ - } \ - %{flto} %{fwhopr} %l " LINK_PIE_SPEC \ +diff -Naur gcc-4.6.0-old/gcc/gcc.c gcc-4.6.0-new/gcc/gcc.c +--- gcc-4.6.0-old/gcc/gcc.c 2011-02-22 18:04:43.000000000 -0800 ++++ gcc-4.6.0-new/gcc/gcc.c 2011-03-28 21:52:29.000000000 -0700 +@@ -657,6 +657,9 @@ + }"PLUGIN_COND_CLOSE" \ + %{flto|flto=*:%max_errors = value; break; + case OPT_fuse_ld_: diff --git a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-disable_multilib_i386_linux64.patch b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-disable_multilib_i386_linux64.patch similarity index 76% rename from packages/toolchain/lang/gcc/patches/gcc-4.5.3-disable_multilib_i386_linux64.patch rename to packages/toolchain/lang/gcc/patches/gcc-4.6.2-disable_multilib_i386_linux64.patch index a616fa3ec2..b293a951be 100644 --- a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-disable_multilib_i386_linux64.patch +++ b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-disable_multilib_i386_linux64.patch @@ -1,6 +1,6 @@ -diff -Naur gcc-4.5-20100610-old/gcc/config/i386/t-linux64 gcc-4.5-20100610-new/gcc/config/i386/t-linux64 ---- gcc-4.5-20100610-old/gcc/config/i386/t-linux64 2010-06-11 09:31:52.000000000 -0700 -+++ gcc-4.5-20100610-new/gcc/config/i386/t-linux64 2010-06-11 09:39:52.000000000 -0700 +diff -Naur gcc-4.6.0-old/gcc/config/i386/t-linux64 gcc-4.6.0-new/gcc/config/i386/t-linux64 +--- gcc-4.6.0-old/gcc/config/i386/t-linux64 2009-04-21 12:03:23.000000000 -0700 ++++ gcc-4.6.0-new/gcc/config/i386/t-linux64 2011-03-28 21:12:19.000000000 -0700 @@ -23,13 +23,13 @@ # it doesn't tell anything about the 32bit libraries on those systems. Set # MULTILIB_OSDIRNAMES according to what is found on the target. diff --git a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-dynamic_linker.patch b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-dynamic_linker.patch similarity index 68% rename from packages/toolchain/lang/gcc/patches/gcc-4.5.3-dynamic_linker.patch rename to packages/toolchain/lang/gcc/patches/gcc-4.6.2-dynamic_linker.patch index 05925a915a..bf0dc1e4e3 100644 --- a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-dynamic_linker.patch +++ b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-dynamic_linker.patch @@ -1,7 +1,7 @@ -diff -Naur gcc-4.5-20100610-old/gcc/config/i386/linux64.h gcc-4.5-20100610-new/gcc/config/i386/linux64.h ---- gcc-4.5-20100610-old/gcc/config/i386/linux64.h 2010-06-11 09:40:14.000000000 -0700 -+++ gcc-4.5-20100610-new/gcc/config/i386/linux64.h 2010-06-11 09:41:13.000000000 -0700 -@@ -59,7 +59,7 @@ +diff -Naur gcc-4.6.0-old/gcc/config/i386/linux64.h gcc-4.6.0-new/gcc/config/i386/linux64.h +--- gcc-4.6.0-old/gcc/config/i386/linux64.h 2011-03-28 21:06:17.000000000 -0700 ++++ gcc-4.6.0-new/gcc/config/i386/linux64.h 2011-03-28 21:07:35.000000000 -0700 +@@ -63,7 +63,7 @@ done. */ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" @@ -10,12 +10,12 @@ diff -Naur gcc-4.5-20100610-old/gcc/config/i386/linux64.h gcc-4.5-20100610-new/g #if TARGET_64BIT_DEFAULT #define SPEC_32 "m32" -diff -Naur gcc-4.5-20100610-old/gcc/config/mips/iris6.h gcc-4.5-20100610-new/gcc/config/mips/iris6.h ---- gcc-4.5-20100610-old/gcc/config/mips/iris6.h 2010-06-11 09:40:14.000000000 -0700 -+++ gcc-4.5-20100610-new/gcc/config/mips/iris6.h 2010-06-11 09:41:13.000000000 -0700 -@@ -88,27 +88,27 @@ - %{mabi=32:%{pg:gcrt1.o%s} \ - %{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}} \ +diff -Naur gcc-4.6.0-old/gcc/config/mips/iris6.h gcc-4.6.0-new/gcc/config/mips/iris6.h +--- gcc-4.6.0-old/gcc/config/mips/iris6.h 2011-03-28 21:06:17.000000000 -0700 ++++ gcc-4.6.0-new/gcc/config/mips/iris6.h 2011-03-28 21:08:12.000000000 -0700 +@@ -226,27 +226,27 @@ + #define STARTFILE_SPEC \ + "%{!shared: \ %{mabi=n32: \ - %{mips4:%{pg:/usr/lib32/mips4/gcrt1.o%s} \ - %{!pg:%{p:/usr/lib32/mips4/mcrt1.o%s /usr/lib32/mips4/libprof1.a%s} \ @@ -57,10 +57,10 @@ diff -Naur gcc-4.5-20100610-old/gcc/config/mips/iris6.h gcc-4.5-20100610-new/gcc %{!shared:" \ SUBTARGET_DONT_WARN_UNUSED_SPEC \ " %{pthread:-lpthread} %{p:libprof1.a%s}%{pg:libprof1.a%s} -lc " \ -@@ -125,10 +125,10 @@ +@@ -262,10 +262,10 @@ + #define ENDFILE_SPEC \ "crtend.o%s irix-crtn.o%s \ %{!shared: \ - %{mabi=32:crtn.o%s}\ - %{mabi=n32:%{mips4:/usr/lib32/mips4/crtn.o%s}\ - %{!mips4:/usr/lib32/mips3/crtn.o%s}}\ - %{mabi=64:%{mips4:/usr/lib64/mips4/crtn.o%s}\ @@ -70,11 +70,11 @@ diff -Naur gcc-4.5-20100610-old/gcc/config/mips/iris6.h gcc-4.5-20100610-new/gcc + %{mabi=64:%{mips4:/usr/lib/mips4/crtn.o%s}\ + %{!mips4:/usr/lib/mips3/crtn.o%s}}}" - #define MIPS_TFMODE_FORMAT mips_extended_format - -diff -Naur gcc-4.5-20100610-old/gcc/config/mips/linux64.h gcc-4.5-20100610-new/gcc/config/mips/linux64.h ---- gcc-4.5-20100610-old/gcc/config/mips/linux64.h 2010-06-11 09:40:14.000000000 -0700 -+++ gcc-4.5-20100610-new/gcc/config/mips/linux64.h 2010-06-11 09:41:13.000000000 -0700 + /* Generic part of the LINK_SPEC. */ + #undef LINK_SPEC +diff -Naur gcc-4.6.0-old/gcc/config/mips/linux64.h gcc-4.6.0-new/gcc/config/mips/linux64.h +--- gcc-4.6.0-old/gcc/config/mips/linux64.h 2011-03-28 21:06:17.000000000 -0700 ++++ gcc-4.6.0-new/gcc/config/mips/linux64.h 2011-03-28 21:08:52.000000000 -0700 @@ -36,9 +36,9 @@ %{profile:-lc_p} %{!profile:-lc}}" @@ -85,13 +85,13 @@ diff -Naur gcc-4.5-20100610-old/gcc/config/mips/linux64.h gcc-4.5-20100610-new/g +#define GLIBC_DYNAMIC_LINKER64 "/lib/ld.so.1" +#define GLIBC_DYNAMIC_LINKERN32 "/lib/ld.so.1" +#define UCLIBC_DYNAMIC_LINKERN32 "/lib/ld-uClibc.so.0" + #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" #define LINUX_DYNAMIC_LINKERN32 \ - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) - -diff -Naur gcc-4.5-20100610-old/gcc/config/rs6000/linux64.h gcc-4.5-20100610-new/gcc/config/rs6000/linux64.h ---- gcc-4.5-20100610-old/gcc/config/rs6000/linux64.h 2010-06-11 09:40:14.000000000 -0700 -+++ gcc-4.5-20100610-new/gcc/config/rs6000/linux64.h 2010-06-11 09:41:13.000000000 -0700 -@@ -349,7 +349,7 @@ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \ +diff -Naur gcc-4.6.0-old/gcc/config/rs6000/linux64.h gcc-4.6.0-new/gcc/config/rs6000/linux64.h +--- gcc-4.6.0-old/gcc/config/rs6000/linux64.h 2011-03-28 21:06:17.000000000 -0700 ++++ gcc-4.6.0-new/gcc/config/rs6000/linux64.h 2011-03-28 21:07:35.000000000 -0700 +@@ -373,7 +373,7 @@ #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" @@ -99,12 +99,12 @@ diff -Naur gcc-4.5-20100610-old/gcc/config/rs6000/linux64.h gcc-4.5-20100610-new +#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" - #if UCLIBC_DEFAULT -diff -Naur gcc-4.5-20100610-old/gcc/config/sparc/linux64.h gcc-4.5-20100610-new/gcc/config/sparc/linux64.h ---- gcc-4.5-20100610-old/gcc/config/sparc/linux64.h 2010-06-11 09:40:14.000000000 -0700 -+++ gcc-4.5-20100610-new/gcc/config/sparc/linux64.h 2010-06-11 09:41:13.000000000 -0700 -@@ -110,7 +110,7 @@ - /* If ELF is the default format, we should not use /lib/elf. */ + #if DEFAULT_LIBC == LIBC_UCLIBC +diff -Naur gcc-4.6.0-old/gcc/config/sparc/linux64.h gcc-4.6.0-new/gcc/config/sparc/linux64.h +--- gcc-4.6.0-old/gcc/config/sparc/linux64.h 2011-03-28 21:06:17.000000000 -0700 ++++ gcc-4.6.0-new/gcc/config/sparc/linux64.h 2011-03-28 21:07:35.000000000 -0700 +@@ -102,7 +102,7 @@ + done. */ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" -#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" @@ -112,21 +112,21 @@ diff -Naur gcc-4.5-20100610-old/gcc/config/sparc/linux64.h gcc-4.5-20100610-new/ #ifdef SPARC_BI_ARCH -@@ -130,7 +130,7 @@ - %{static:-static}}} \ +@@ -121,7 +121,7 @@ + %{static:-static}} \ " -#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ +#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib %{shared:-shared} \ %{!shared: \ - %{!ibcs: \ - %{!static: \ -@@ -211,7 +211,7 @@ + %{!static: \ + %{rdynamic:-export-dynamic} \ +@@ -193,7 +193,7 @@ #else /* !SPARC_BI_ARCH */ #undef LINK_SPEC -#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ +#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib %{shared:-shared} \ %{!shared: \ - %{!ibcs: \ - %{!static: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ diff --git a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-libstdc++-v3_config.patch b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-libstdc++-v3_config.patch similarity index 86% rename from packages/toolchain/lang/gcc/patches/gcc-4.5.3-libstdc++-v3_config.patch rename to packages/toolchain/lang/gcc/patches/gcc-4.6.2-libstdc++-v3_config.patch index b7c6a701e1..e35dd2cc0b 100644 --- a/packages/toolchain/lang/gcc/patches/gcc-4.5.3-libstdc++-v3_config.patch +++ b/packages/toolchain/lang/gcc/patches/gcc-4.6.2-libstdc++-v3_config.patch @@ -1,6 +1,6 @@ -diff -Naur gcc-4.5-20100610-old/libstdc++-v3/config.h.in gcc-4.5-20100610-new/libstdc++-v3/config.h.in ---- gcc-4.5-20100610-old/libstdc++-v3/config.h.in 2010-06-11 09:40:55.000000000 -0700 -+++ gcc-4.5-20100610-new/libstdc++-v3/config.h.in 2010-06-11 09:41:44.000000000 -0700 +diff -Naur gcc-4.6.0-old/libstdc++-v3/config.h.in gcc-4.6.0-new/libstdc++-v3/config.h.in +--- gcc-4.6.0-old/libstdc++-v3/config.h.in 2011-03-28 21:07:18.000000000 -0700 ++++ gcc-4.6.0-new/libstdc++-v3/config.h.in 2011-03-28 21:10:03.000000000 -0700 @@ -115,7 +115,7 @@ #undef HAVE_FABSL @@ -46,7 +46,7 @@ diff -Naur gcc-4.5-20100610-old/libstdc++-v3/config.h.in gcc-4.5-20100610-new/li /* Define if strerror_r is available in . */ #undef HAVE_STRERROR_R -@@ -356,7 +356,7 @@ +@@ -360,7 +360,7 @@ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ @@ -55,7 +55,7 @@ diff -Naur gcc-4.5-20100610-old/libstdc++-v3/config.h.in gcc-4.5-20100610-new/li /* Define to 1 if you have the header file. */ #undef HAVE_SYS_ISA_DEFS_H -@@ -368,16 +368,16 @@ +@@ -372,16 +372,16 @@ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ @@ -75,7 +75,7 @@ diff -Naur gcc-4.5-20100610-old/libstdc++-v3/config.h.in gcc-4.5-20100610-new/li /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H -@@ -407,7 +407,7 @@ +@@ -411,7 +411,7 @@ #undef HAVE_TGMATH_H /* Define to 1 if the target supports thread-local storage. */ @@ -84,7 +84,7 @@ diff -Naur gcc-4.5-20100610-old/libstdc++-v3/config.h.in gcc-4.5-20100610-new/li /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -@@ -620,7 +620,7 @@ +@@ -624,7 +624,7 @@ #undef HAVE__TANL /* Define as const if the declaration of iconv() needs const. */ diff --git a/packages/toolchain/math/mpfr/meta b/packages/toolchain/math/mpfr/meta index 5477f083f0..50bfa5c47a 100644 --- a/packages/toolchain/math/mpfr/meta +++ b/packages/toolchain/math/mpfr/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="mpfr" -PKG_VERSION="3.0.1" +PKG_VERSION="3.1.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" diff --git a/packages/toolchain/math/mpfr/patches/mpfr-3.0.1-allpatches_20110917.patch b/packages/toolchain/math/mpfr/patches/mpfr-3.0.1-allpatches_20110917.patch deleted file mode 100644 index 9604635a28..0000000000 --- a/packages/toolchain/math/mpfr/patches/mpfr-3.0.1-allpatches_20110917.patch +++ /dev/null @@ -1,367 +0,0 @@ -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-04-12 10:50:02.000000000 +0000 -@@ -0,0 +1 @@ -+asin_exprange -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-04-12 10:50:02.000000000 +0000 -@@ -1 +1 @@ --3.0.1 -+3.0.1-p1 -diff -Naurd mpfr-3.0.1-a/asin.c mpfr-3.0.1-b/asin.c ---- mpfr-3.0.1-a/asin.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/asin.c 2011-04-12 10:50:02.000000000 +0000 -@@ -63,11 +63,14 @@ - - compared = mpfr_cmp_ui (xp, 1); - -+ MPFR_SAVE_EXPO_MARK (expo); -+ - if (MPFR_UNLIKELY (compared >= 0)) - { - mpfr_clear (xp); - if (compared > 0) /* asin(x) = NaN for |x| > 1 */ - { -+ MPFR_SAVE_EXPO_FREE (expo); - MPFR_SET_NAN (asin); - MPFR_RET_NAN; - } -@@ -80,13 +83,11 @@ - inexact = -mpfr_const_pi (asin, MPFR_INVERT_RND(rnd_mode)); - MPFR_CHANGE_SIGN (asin); - } -- mpfr_div_2ui (asin, asin, 1, rnd_mode); /* May underflow */ -- return inexact; -+ mpfr_div_2ui (asin, asin, 1, rnd_mode); - } - } -- -- MPFR_SAVE_EXPO_MARK (expo); -- -+ else -+ { - /* Compute exponent of 1 - ABS(x) */ - mpfr_ui_sub (xp, 1, xp, MPFR_RNDD); - MPFR_ASSERTD (MPFR_GET_EXP (xp) <= 0); -@@ -115,6 +116,7 @@ - inexact = mpfr_set (asin, xp, rnd_mode); - - mpfr_clear (xp); -+ } - - MPFR_SAVE_EXPO_FREE (expo); - return mpfr_check_range (asin, inexact, rnd_mode); -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-04-12 10:50:02.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1" -+#define MPFR_VERSION_STRING "3.0.1-p1" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/tests/tasin.c mpfr-3.0.1-b/tests/tasin.c ---- mpfr-3.0.1-a/tests/tasin.c 2011-04-04 10:19:17.000000000 +0000 -+++ mpfr-3.0.1-b/tests/tasin.c 2011-04-12 10:50:02.000000000 +0000 -@@ -219,6 +219,49 @@ - mpfr_clear (y); - } - -+static void -+reduced_expo_range (void) -+{ -+ mpfr_exp_t emin, emax; -+ mpfr_t x, y, ex_y; -+ int inex, ex_inex; -+ unsigned int flags, ex_flags; -+ -+ emin = mpfr_get_emin (); -+ emax = mpfr_get_emax (); -+ -+ mpfr_inits2 (4, x, y, ex_y, (mpfr_ptr) 0); -+ mpfr_set_str (x, "-0.1e1", 2, MPFR_RNDN); -+ -+ mpfr_set_emin (1); -+ mpfr_set_emax (1); -+ mpfr_clear_flags (); -+ inex = mpfr_asin (y, x, MPFR_RNDA); -+ flags = __gmpfr_flags; -+ mpfr_set_emin (emin); -+ mpfr_set_emax (emax); -+ -+ mpfr_set_str (ex_y, "-0.1101e1", 2, MPFR_RNDN); -+ ex_inex = -1; -+ ex_flags = MPFR_FLAGS_INEXACT; -+ -+ if (SIGN (inex) != ex_inex || flags != ex_flags || -+ ! mpfr_equal_p (y, ex_y)) -+ { -+ printf ("Error in reduced_expo_range\non x = "); -+ mpfr_dump (x); -+ printf ("Expected y = "); -+ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags); -+ printf ("Got y = "); -+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags); -+ exit (1); -+ } -+ -+ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0); -+} -+ - int - main (void) - { -@@ -226,6 +269,7 @@ - - special (); - special_overflow (); -+ reduced_expo_range (); - - test_generic (2, 100, 15); - -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-04-12 10:50:02.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1"; -+ return "3.0.1-p1"; - } -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-05-04 11:18:33.000000000 +0000 -@@ -0,0 +1 @@ -+rec_sqrt-carry -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-05-04 11:18:33.000000000 +0000 -@@ -1 +1 @@ --3.0.1-p1 -+3.0.1-p2 -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-05-04 11:18:33.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1-p1" -+#define MPFR_VERSION_STRING "3.0.1-p2" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/rec_sqrt.c mpfr-3.0.1-b/rec_sqrt.c ---- mpfr-3.0.1-a/rec_sqrt.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/rec_sqrt.c 2011-05-04 11:18:33.000000000 +0000 -@@ -375,20 +375,37 @@ - MPFR_ASSERTD(un == ln + 1 || un == ln + 2); - /* the high un-ln limbs of u will overlap the low part of {x+ln,xn}, - we need to add or subtract the overlapping part {u + ln, un - ln} */ -+ /* Warning! th may be 0, in which case the mpn_add_1 and mpn_sub_1 -+ below (with size = th) mustn't be used. In such a case, the limb -+ (carry) will be 0, so that this is semantically a no-op, but if -+ mpn_add_1 and mpn_sub_1 are used, GMP (currently) still does a -+ non-atomic read/write in a place that is not always allocated, -+ with the possible consequences: a crash if the corresponding -+ address is not mapped, or (rather unlikely) memory corruption -+ if another process/thread writes at the same place; things may -+ be worse with future GMP versions. Hence the tests carry != 0. */ - if (neg == 0) - { - if (ln > 0) - MPN_COPY (x, u, ln); - cy = mpn_add (x + ln, x + ln, xn, u + ln, un - ln); - /* add cu at x+un */ -- cy += mpn_add_1 (x + un, x + un, th, cu); -+ if (cu != 0) -+ { -+ MPFR_ASSERTD (th != 0); -+ cy += mpn_add_1 (x + un, x + un, th, cu); -+ } - } - else /* negative case */ - { - /* subtract {u+ln, un-ln} from {x+ln,un} */ - cy = mpn_sub (x + ln, x + ln, xn, u + ln, un - ln); - /* carry cy is at x+un, like cu */ -- cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */ -+ if (cy + cu != 0) -+ { -+ MPFR_ASSERTD (th != 0); -+ cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */ -+ } - /* cy cannot be zero, since the most significant bit of Xh is 1, - and the correction is bounded by 2^{-h+3} */ - MPFR_ASSERTD(cy == 0); -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-05-04 11:18:33.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1-p1"; -+ return "3.0.1-p2"; - } -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-05-05 00:00:35.000000000 +0000 -@@ -0,0 +1 @@ -+atan-expo-range -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-05-05 00:00:35.000000000 +0000 -@@ -1 +1 @@ --3.0.1-p2 -+3.0.1-p3 -diff -Naurd mpfr-3.0.1-a/atan.c mpfr-3.0.1-b/atan.c ---- mpfr-3.0.1-a/atan.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/atan.c 2011-05-05 00:00:35.000000000 +0000 -@@ -431,5 +431,5 @@ - MPFR_GROUP_CLEAR (group); - - MPFR_SAVE_EXPO_FREE (expo); -- return mpfr_check_range (arctgt, inexact, rnd_mode); -+ return mpfr_check_range (atan, inexact, rnd_mode); - } -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-05-05 00:00:35.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1-p2" -+#define MPFR_VERSION_STRING "3.0.1-p3" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/tests/tatan.c mpfr-3.0.1-b/tests/tatan.c ---- mpfr-3.0.1-a/tests/tatan.c 2011-04-04 10:19:17.000000000 +0000 -+++ mpfr-3.0.1-b/tests/tatan.c 2011-05-05 00:00:35.000000000 +0000 -@@ -535,6 +535,52 @@ - mpfr_clears (a, x, y, (mpfr_ptr) 0); - } - -+/* http://websympa.loria.fr/wwsympa/arc/mpfr/2011-05/msg00008.html -+ * Incorrect flags (in debug mode on a 32-bit machine, assertion failure). -+ */ -+static void -+reduced_expo_range (void) -+{ -+ mpfr_exp_t emin, emax; -+ mpfr_t x, y, ex_y; -+ int inex, ex_inex; -+ unsigned int flags, ex_flags; -+ -+ emin = mpfr_get_emin (); -+ emax = mpfr_get_emax (); -+ -+ mpfr_inits2 (12, x, y, ex_y, (mpfr_ptr) 0); -+ mpfr_set_str (x, "0.1e-5", 2, MPFR_RNDN); -+ -+ mpfr_set_emin (-5); -+ mpfr_set_emax (-5); -+ mpfr_clear_flags (); -+ inex = mpfr_atan (y, x, MPFR_RNDN); -+ flags = __gmpfr_flags; -+ mpfr_set_emin (emin); -+ mpfr_set_emax (emax); -+ -+ mpfr_set_str (ex_y, "0.1e-5", 2, MPFR_RNDN); -+ ex_inex = 1; -+ ex_flags = MPFR_FLAGS_INEXACT; -+ -+ if (SIGN (inex) != ex_inex || flags != ex_flags || -+ ! mpfr_equal_p (y, ex_y)) -+ { -+ printf ("Error in reduced_expo_range\non x = "); -+ mpfr_dump (x); -+ printf ("Expected y = "); -+ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags); -+ printf ("Got y = "); -+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags); -+ exit (1); -+ } -+ -+ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -546,6 +592,7 @@ - smallvals_atan2 (); - atan2_bug_20071003 (); - atan2_different_prec (); -+ reduced_expo_range (); - - test_generic_atan (2, 200, 17); - test_generic_atan2 (2, 200, 17); -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-05-05 00:00:35.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1-p2"; -+ return "3.0.1-p3"; - } -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-05-09 14:48:24.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-05-09 14:48:24.000000000 +0000 -@@ -0,0 +1 @@ -+texp-zero -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-05-09 14:48:24.000000000 +0000 -@@ -1 +1 @@ --3.0.1-p3 -+3.0.1-p4 -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-05-09 14:48:24.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1-p3" -+#define MPFR_VERSION_STRING "3.0.1-p4" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/tests/texp.c mpfr-3.0.1-b/tests/texp.c ---- mpfr-3.0.1-a/tests/texp.c 2011-04-04 10:19:17.000000000 +0000 -+++ mpfr-3.0.1-b/tests/texp.c 2011-05-09 14:48:24.000000000 +0000 -@@ -170,7 +170,9 @@ - mpfr_set_prec (x, prec); - mpfr_set_prec (y, prec); - mpfr_set_prec (z, prec); -- mpfr_urandomb (x, RANDS); -+ do -+ mpfr_urandomb (x, RANDS); -+ while (MPFR_IS_ZERO (x)); /* 0 is handled by mpfr_exp only */ - rnd = RND_RAND (); - mpfr_exp_2 (y, x, rnd); - mpfr_exp_3 (z, x, rnd); -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-05-09 14:48:24.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1-p3"; -+ return "3.0.1-p4"; - } diff --git a/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111005.patch b/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111005.patch new file mode 100644 index 0000000000..437b1a278a --- /dev/null +++ b/packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111005.patch @@ -0,0 +1,50 @@ +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2011-10-05 21:39:57.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2011-10-05 21:39:57.000000000 +0000 +@@ -0,0 +1 @@ ++mpfr_unlikely +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-10-03 08:17:15.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2011-10-05 21:39:57.000000000 +0000 +@@ -1 +1 @@ +-3.1.0 ++3.1.0-p1 +diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h +--- mpfr-3.1.0-a/src/mpfr-impl.h 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr-impl.h 2011-10-05 21:39:57.000000000 +0000 +@@ -988,10 +988,11 @@ + ******************************************************/ + + /* Theses macros help the compiler to determine if a test is +- * likely or unlikely. */ ++ likely or unlikely. The !! is necessary in case x is larger ++ than a long. */ + #if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0) + # define MPFR_LIKELY(x) (__builtin_expect(!!(x),1)) +-# define MPFR_UNLIKELY(x) (__builtin_expect((x),0)) ++# define MPFR_UNLIKELY(x) (__builtin_expect(!!(x),0)) + #else + # define MPFR_LIKELY(x) (x) + # define MPFR_UNLIKELY(x) (x) +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0" ++#define MPFR_VERSION_STRING "3.1.0-p1" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2011-10-05 21:39:57.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0"; ++ return "3.1.0-p1"; + } diff --git a/packages/x11/driver/xf86-video-ati/meta b/packages/x11/driver/xf86-video-ati/meta index 727ff44e24..25735a0ef3 100644 --- a/packages/x11/driver/xf86-video-ati/meta +++ b/packages/x11/driver/xf86-video-ati/meta @@ -19,12 +19,14 @@ ################################################################################ PKG_NAME="xf86-video-ati" -PKG_VERSION="6.14.2" +# PKG_VERSION="6.14.2" +PKG_VERSION="d3d6a5da07aaec5961e51c9a8f90c1490ee101b6" PKG_REV="1" PKG_ARCH="i386 x86_64" PKG_LICENSE="OSS" PKG_SITE="http://www.x.org/" -PKG_URL="http://xorg.freedesktop.org/archive/individual/driver/$PKG_NAME-$PKG_VERSION.tar.bz2" +# PKG_URL="http://xorg.freedesktop.org/archive/individual/driver/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_URL="http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="" PKG_BUILD_DEPENDS="toolchain" PKG_PRIORITY="optional" diff --git a/packages/x11/driver/xf86-video-nouveau/config/xorg-nouveau.conf b/packages/x11/driver/xf86-video-nouveau/config/xorg-nouveau.conf index e72d77d690..68083104b9 100644 --- a/packages/x11/driver/xf86-video-nouveau/config/xorg-nouveau.conf +++ b/packages/x11/driver/xf86-video-nouveau/config/xorg-nouveau.conf @@ -3,7 +3,7 @@ Section "Device" Driver "nouveau" VendorName "Nouveau" Option "HWCursor" "on" - Option "GLXVBlank" "on" +# Option "GLXVBlank" "on" EndSection Section "Extensions" diff --git a/packages/x11/driver/xf86-video-nouveau/meta b/packages/x11/driver/xf86-video-nouveau/meta index 30352ba32a..fbfc3ef42d 100644 --- a/packages/x11/driver/xf86-video-nouveau/meta +++ b/packages/x11/driver/xf86-video-nouveau/meta @@ -19,14 +19,14 @@ ################################################################################ PKG_NAME="xf86-video-nouveau" -PKG_VERSION="b806e3f" +PKG_VERSION="d575a28a5020ff083836d3d1cf50018a99f49c9f" PKG_REV="1" PKG_ARCH="i386 x86_64" PKG_LICENSE="OSS" PKG_SITE="http://www.x.org/" -PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS="libXrandr libXrender libdrm libXext libpciaccess udev Mesa" -PKG_BUILD_DEPENDS="toolchain util-macros libXrandr libXrender libdrm libXext libpciaccess udev Mesa xorg-server" +PKG_URL="http://cgit.freedesktop.org/nouveau/xf86-video-nouveau/snapshot/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS="libXrandr libXrender libdrm libXext libpciaccess udev $MESA" +PKG_BUILD_DEPENDS="toolchain util-macros libXrandr libXrender libdrm libXext libpciaccess udev $MESA xorg-server" PKG_PRIORITY="optional" PKG_SECTION="x11/driver" PKG_SHORTDESC="xf86-video-nouveau: Nouveau display driver (experimental)" diff --git a/packages/x11/driver/xf86-video-nvidia/install b/packages/x11/driver/xf86-video-nvidia/install index 3b221c7bbb..c2ef9a73d2 100755 --- a/packages/x11/driver/xf86-video-nvidia/install +++ b/packages/x11/driver/xf86-video-nvidia/install @@ -57,6 +57,7 @@ mkdir -p $INSTALL/usr/bin if [ "$VDPAU" = yes ]; then $SCRIPTS/install libvdpau - cp $PKG_BUILD/libvdpau_nvidia.so* $INSTALL/usr/lib/libvdpau_nvidia.so.1 - ln -sf libvdpau_nvidia.so.1 $INSTALL/usr/lib/libvdpau_nvidia.so + mkdir -p $INSTALL/usr/lib/vdpau + cp $PKG_BUILD/libvdpau_nvidia.so* $INSTALL/usr/lib/vdpau/libvdpau_nvidia.so.1 + ln -sf libvdpau_nvidia.so.1 $INSTALL/usr/lib/vdpau/libvdpau_nvidia.so fi diff --git a/packages/x11/lib/pixman/meta b/packages/x11/lib/pixman/meta index 220e2ecf2c..5fa5c66500 100644 --- a/packages/x11/lib/pixman/meta +++ b/packages/x11/lib/pixman/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="pixman" -PKG_VERSION="0.22.2" +PKG_VERSION="0.23.8" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" diff --git a/packages/x11/xserver/xorg-server/meta b/packages/x11/xserver/xorg-server/meta index 0974534002..5f6b1fe7eb 100644 --- a/packages/x11/xserver/xorg-server/meta +++ b/packages/x11/xserver/xorg-server/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.X.org" PKG_URL="http://xorg.freedesktop.org/archive/individual/xserver/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS="libpciaccess freetype libX11 libXfont libdrm Mesa openssl pixman udev" -PKG_BUILD_DEPENDS="toolchain util-macros font-util fontsproto randrproto recordproto renderproto scrnsaverproto videoproto inputproto xf86dgaproto xf86driproto xf86miscproto glproto libpciaccess libX11 libXfont libxkbfile libdrm Mesa openssl freetype pixman fontsproto udev" +PKG_DEPENDS="libpciaccess freetype libX11 libXfont libdrm $MESA openssl pixman udev" +PKG_BUILD_DEPENDS="toolchain util-macros font-util fontsproto randrproto recordproto renderproto scrnsaverproto videoproto inputproto xf86dgaproto xf86driproto xf86miscproto glproto libpciaccess libX11 libXfont libxkbfile libdrm $MESA openssl freetype pixman fontsproto udev" PKG_PRIORITY="optional" PKG_SECTION="x11/xserver" PKG_SHORTDESC="xorg-server: The Xorg X server" diff --git a/projects/ATV/options b/projects/ATV/options old mode 100644 new mode 100755 index 7c40b1ae17..993462274e --- a/projects/ATV/options +++ b/projects/ATV/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="" # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035 bcm_sta" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 bcm_sta a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,6 +213,9 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau" GRAPHIC_DRIVERS="nouveau" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="no" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="no" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="no" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="yes" diff --git a/projects/Fusion/options b/projects/Fusion/options old mode 100644 new mode 100755 index fca0f472ad..ee5eb0951b --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="-mfpmath=sse -msse2" # -mssse3 removed for Llano compatibility # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,6 +213,9 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon fglrx nvidia nouveau" GRAPHIC_DRIVERS="fglrx" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="no" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="yes" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="yes" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="no" diff --git a/projects/Generic/options b/projects/Generic/options old mode 100644 new mode 100755 index e26c87cfd0..942902e694 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="-mmmx -msse -msse2 -mfpmath=sse" # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -106,14 +106,14 @@ # Mediacenter to use (xbmc / no) MEDIACENTER="xbmc" -# Skins to install (Confluence) - SKINS="Confluence" - # Skins to install (Confluence) # Space separated list is supported, # e.g. SKINS="Confluence" SKINS="Confluence" +# Default Skin (Confluence) + SKIN_DEFAULT="Confluence" + # install extra subtitle Fonts for XBMC (yes / no) XBMC_EXTRA_FONTS="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,6 +213,9 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 nvidia nouveau" GRAPHIC_DRIVERS="fglrx i915 i965 nvidia vmware" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="yes" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="yes" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="yes" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="yes" diff --git a/projects/Generic_OSS/linux/linux.i386.conf b/projects/Generic_OSS/linux/linux.i386.conf index 0b0dd06490..c10b77147f 100644 --- a/projects/Generic_OSS/linux/linux.i386.conf +++ b/projects/Generic_OSS/linux/linux.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.1.0-rc9 Kernel Configuration +# Linux/i386 3.1.0 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -2176,7 +2176,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set @@ -2796,13 +2796,13 @@ CONFIG_R8712_AP=y # CONFIG_LINE6_USB is not set CONFIG_DRM_VMWGFX=y CONFIG_DRM_NOUVEAU=y -CONFIG_DRM_NOUVEAU_BACKLIGHT=y +# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set # # I2C encoder or helper chips # -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set +CONFIG_DRM_I2C_CH7006=y +CONFIG_DRM_I2C_SIL164=y # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options old mode 100644 new mode 100755 index ba847775da..cf700db743 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="-mmmx -msse -msse2 -mfpmath=sse" # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -106,14 +106,14 @@ # Mediacenter to use (xbmc / no) MEDIACENTER="xbmc" -# Skins to install (Confluence) - SKINS="Confluence" - # Skins to install (Confluence) # Space separated list is supported, # e.g. SKINS="Confluence" SKINS="Confluence" +# Default Skin (Confluence) + SKIN_DEFAULT="Confluence" + # install extra subtitle Fonts for XBMC (yes / no) XBMC_EXTRA_FONTS="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,8 +213,11 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 nvidia nouveau" GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 nouveau vmware" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) - VDPAU="yes" + VDPAU="no" # Use VAAPI video acceleration (needs intel i965 driver and a supported card) VAAPI="yes" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="yes" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="yes" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="yes" diff --git a/projects/ION/options b/projects/ION/options old mode 100644 new mode 100755 index 1f9f8b7352..f5ccc4a47d --- a/projects/ION/options +++ b/projects/ION/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="-mfpmath=sse -msse2 -mssse3 -mmovbe" # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,6 +213,9 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau" GRAPHIC_DRIVERS="nvidia" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="yes" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="yes" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="yes" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="no" diff --git a/projects/Intel/options b/projects/Intel/options old mode 100644 new mode 100755 index b93dccdf91..f2cf0f6020 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="-mfpmath=sse -msse2 -mssse3" # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,6 +213,9 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau" GRAPHIC_DRIVERS="i915 i965" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="no" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="yes" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="yes" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="no" diff --git a/projects/Ultra/linux/linux.x86_64.conf b/projects/Ultra/linux/linux.x86_64.conf index 95ccbe7cc8..3b6c962153 100644 --- a/projects/Ultra/linux/linux.x86_64.conf +++ b/projects/Ultra/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 3.1.0-rc9 Kernel Configuration +# Linux/x86_64 3.1.0 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -986,8 +986,13 @@ CONFIG_ATH_COMMON=m # CONFIG_ATH_DEBUG is not set # CONFIG_ATH5K is not set # CONFIG_ATH5K_PCI is not set -# CONFIG_ATH9K is not set -# CONFIG_ATH9K_HTC is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +CONFIG_ATH9K_RATE_CONTROL=y +CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y diff --git a/projects/Ultra/options b/projects/Ultra/options old mode 100644 new mode 100755 index fd121f25ca..1a2b125e42 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -78,10 +78,10 @@ PROJECT_CFLAGS="-mfpmath=sse -msse2 -mssse3 -mmovbe" # LTO (Link Time Optimazion) support - LTO_SUPPORT="yes" + LTO_SUPPORT="no" # GOLD (Google Linker) support - GOLD_SUPPORT="yes" + GOLD_SUPPORT="no" # Graphite Support GRAPHITE_SUPPORT="yes" @@ -150,11 +150,14 @@ # asix-ax887xx: Asix AX887xx USB LAN Driver # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="asix-ax887xx AF9035" - ADDITIONAL_DRIVERS="asix-ax887xx AF9035" + ADDITIONAL_DRIVERS="asix-ax887xx AF9035 a867_drv" # build with network support (yes / no) NETWORK="yes" +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + # build and install with XBMC webfrontend (yes / no) WEBSERVER="yes" @@ -210,6 +213,9 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau" GRAPHIC_DRIVERS="nvidia" +# Mesa to use (Mesa / mesa) + MESA="mesa" + # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="yes" @@ -223,12 +229,6 @@ # build and install remote support (yes / no) REMOTE_SUPPORT="yes" -# build and install WiiMote support (yes / no) - WIIMOTE_SUPPORT="yes" - -# build and install PS3 Remote support (yes / no) - PS3REMOTE_SUPPORT="yes" - # build and install ATV IR remote support (yes / no) ATVCLIENT_SUPPORT="no"