From 711db51aaf9e84ce5f5370fbe2e6799d5b914cc4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 27 Oct 2011 09:12:16 +0200 Subject: [PATCH 01/69] avahi: build and install python bindings Signed-off-by: Stephan Raue --- packages/network/avahi/build | 4 ++-- packages/network/avahi/install | 6 +++++- packages/network/avahi/meta | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) 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" From 7a32aac8004a47e9debf6505980f44c294ad4184 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 27 Oct 2011 10:32:01 +0200 Subject: [PATCH 02/69] xbmc: move PS3 remote helper ta a own addon, add PS3 sixaxis support Signed-off-by: Stephan Raue --- packages/addons/driver/xbmc-ps3d/addon | 34 +++++++++++++++ .../addons/driver/xbmc-ps3d/changelog.txt | 2 + .../addons/driver/xbmc-ps3d/icon/icon.png | Bin 0 -> 28904 bytes .../driver/xbmc-ps3d/meta} | 34 ++++++++------- .../driver/xbmc-ps3d/source/bin/ps3d.service | 41 ++++++++++++++++++ .../driver/xbmc-ps3d/source/default.py} | 8 +--- packages/mediacenter/xbmc/install | 11 ----- packages/mediacenter/xbmc/meta | 4 -- ...a05-453-ps3_remote_be_more_quiet-0.1.patch | 29 ------------- projects/ATV/options | 3 -- projects/Fusion/options | 3 -- projects/Generic/options | 3 -- projects/Generic_OSS/options | 3 -- projects/ION/options | 3 -- projects/Intel/options | 3 -- projects/Ultra/options | 3 -- 16 files changed, 98 insertions(+), 86 deletions(-) create mode 100755 packages/addons/driver/xbmc-ps3d/addon create mode 100644 packages/addons/driver/xbmc-ps3d/changelog.txt create mode 100644 packages/addons/driver/xbmc-ps3d/icon/icon.png rename packages/{mediacenter/xbmc/scripts/ps3remote_helper => addons/driver/xbmc-ps3d/meta} (55%) mode change 100755 => 100644 create mode 100755 packages/addons/driver/xbmc-ps3d/source/bin/ps3d.service rename packages/{mediacenter/xbmc/udev.d/98-ps3remote.rules => addons/driver/xbmc-ps3d/source/default.py} (82%) delete mode 100644 packages/mediacenter/xbmc/patches/xbmc-cfa1a05-453-ps3_remote_be_more_quiet-0.1.patch 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..d5e0de95af --- /dev/null +++ b/packages/addons/driver/xbmc-ps3d/changelog.txt @@ -0,0 +1,2 @@ +1.0.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 0000000000000000000000000000000000000000..6da0cbd829faeadc51a4687502af25e1e22ce735 GIT binary patch literal 28904 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 $ADDON_DIR/pylib/xbmc/defs.py + fi + +################################################################################ +# start ps3d +################################################################################ + python $ADDON_DIR/pylib/xbmc/ps3d.py localhost & diff --git a/packages/mediacenter/xbmc/udev.d/98-ps3remote.rules b/packages/addons/driver/xbmc-ps3d/source/default.py similarity index 82% rename from packages/mediacenter/xbmc/udev.d/98-ps3remote.rules rename to packages/addons/driver/xbmc-ps3d/source/default.py index 913d47f406..f9b76c9cba 100644 --- a/packages/mediacenter/xbmc/udev.d/98-ps3remote.rules +++ b/packages/addons/driver/xbmc-ps3d/source/default.py @@ -18,10 +18,6 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -# only does something with "bluetooth" subsystem devices. -SUBSYSTEM!="bluetooth", GOTO="end" +import xbmc, time, os, subprocess -# Start PS3 Remote support if bluetooth is starting -ACTION=="add|remove", RUN+="/lib/udev/ps3remote_helper" - -LABEL="end" +os.system("ps3d.service") diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index a5a2669182..8faf221ae7 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -106,14 +106,3 @@ if [ "$WIIMOTE_SUPPORT" = yes ]; then 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 bfa8f035bb..51a1c97830 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -122,10 +122,6 @@ if [ "$WIIMOTE_SUPPORT" = yes ]; then 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-cfa1a05-453-ps3_remote_be_more_quiet-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-453-ps3_remote_be_more_quiet-0.1.patch deleted file mode 100644 index 6b2f879e1c..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-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/projects/ATV/options b/projects/ATV/options index 356c0d0a15..387fa3a69c 100644 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -226,9 +226,6 @@ # 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 index 50213e6851..7198c4c410 100644 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -226,9 +226,6 @@ # 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 index ac6706b759..b5be8a50b8 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -226,9 +226,6 @@ # 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/options b/projects/Generic_OSS/options index 0c6729e199..02c87b30f2 100644 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -226,9 +226,6 @@ # 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 index 9fccc22ce9..7cbcf5ca88 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -226,9 +226,6 @@ # 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 index 39e9968305..b9d7391c72 100644 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -226,9 +226,6 @@ # 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/options b/projects/Ultra/options index cda0647908..3d8a84726c 100644 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -226,9 +226,6 @@ # 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" From 294cb33869bbee468c2b8147e6118689d195871f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 27 Oct 2011 11:16:14 +0200 Subject: [PATCH 03/69] network: install bluez support from here, make it optional Signed-off-by: Stephan Raue --- packages/network/install | 4 ++++ projects/ATV/options | 3 +++ projects/Fusion/options | 3 +++ projects/Generic/options | 3 +++ projects/Generic_OSS/options | 3 +++ projects/ION/options | 3 +++ projects/Intel/options | 3 +++ projects/Ultra/options | 3 +++ 8 files changed, 25 insertions(+) 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/projects/ATV/options b/projects/ATV/options index 387fa3a69c..ee319b7e77 100644 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -155,6 +155,9 @@ # 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" diff --git a/projects/Fusion/options b/projects/Fusion/options index 7198c4c410..ea117cf6fa 100644 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -155,6 +155,9 @@ # 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" diff --git a/projects/Generic/options b/projects/Generic/options index b5be8a50b8..d913d2be93 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -155,6 +155,9 @@ # 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" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index 02c87b30f2..3a1dd24019 100644 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -155,6 +155,9 @@ # 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" diff --git a/projects/ION/options b/projects/ION/options index 7cbcf5ca88..29636393f5 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -155,6 +155,9 @@ # 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" diff --git a/projects/Intel/options b/projects/Intel/options index b9d7391c72..f6370eb80c 100644 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -155,6 +155,9 @@ # 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" diff --git a/projects/Ultra/options b/projects/Ultra/options index 3d8a84726c..839c969c21 100644 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -155,6 +155,9 @@ # 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" From 02d2a9af66927f615c0739f5375e19051bfdeb74 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 27 Oct 2011 13:07:37 +0200 Subject: [PATCH 04/69] xbmc: move WiiMote daemon to a own addon Signed-off-by: Stephan Raue --- packages/addons/driver/xbmc-wiimote/addon | 29 +++++++++++++ .../driver/xbmc-wiimote/build} | 11 ++--- .../addons/driver/xbmc-wiimote/changelog.txt | 2 + .../addons/driver/xbmc-wiimote/icon/icon.png | Bin 0 -> 28904 bytes packages/addons/driver/xbmc-wiimote/meta | 38 ++++++++++++++++++ .../xbmc-wiimote/source/bin/wiimote.service | 33 +++++++++++++++ .../driver/xbmc-wiimote/source/default.py} | 19 ++------- packages/mediacenter/xbmc/build | 6 --- packages/mediacenter/xbmc/install | 7 ---- packages/mediacenter/xbmc/meta | 5 --- projects/ATV/options | 3 -- projects/Fusion/options | 3 -- projects/Generic/options | 3 -- projects/Generic_OSS/options | 3 -- projects/ION/options | 3 -- projects/Intel/options | 3 -- projects/Ultra/options | 3 -- 17 files changed, 112 insertions(+), 59 deletions(-) create mode 100755 packages/addons/driver/xbmc-wiimote/addon rename packages/{mediacenter/xbmc/udev.d/98-wiiremote.rules => addons/driver/xbmc-wiimote/build} (82%) mode change 100644 => 100755 create mode 100644 packages/addons/driver/xbmc-wiimote/changelog.txt create mode 100644 packages/addons/driver/xbmc-wiimote/icon/icon.png create mode 100644 packages/addons/driver/xbmc-wiimote/meta create mode 100755 packages/addons/driver/xbmc-wiimote/source/bin/wiimote.service rename packages/{mediacenter/xbmc/scripts/wiiremote_helper => addons/driver/xbmc-wiimote/source/default.py} (75%) mode change 100755 => 100644 diff --git a/packages/addons/driver/xbmc-wiimote/addon b/packages/addons/driver/xbmc-wiimote/addon new file mode 100755 index 0000000000..452bc7e5f5 --- /dev/null +++ b/packages/addons/driver/xbmc-wiimote/addon @@ -0,0 +1,29 @@ +#!/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/bin + cp $BUILD/xbmc-*/tools/EventClients/Clients/WiiRemote/WiiUse_WiiRemote $ADDON_BUILD/$PKG_ADDON_ID/bin/wiimote + +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-wiiremote.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-wiiremote.rules rename to packages/addons/driver/xbmc-wiimote/build index b12c683a39..3a6aa3ca4b --- a/packages/mediacenter/xbmc/udev.d/98-wiiremote.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 Wii Remote support if bluetooth is starting -ACTION=="add|remove", RUN+="/lib/udev/wiiremote_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..860783318a --- /dev/null +++ b/packages/addons/driver/xbmc-wiimote/changelog.txt @@ -0,0 +1,2 @@ +1.0.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 0000000000000000000000000000000000000000..6da0cbd829faeadc51a4687502af25e1e22ce735 GIT binary patch literal 28904 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 Date: Thu, 27 Oct 2011 13:13:08 +0200 Subject: [PATCH 05/69] config/options: set OpenELEC OS version to version 1.90 (alpha) Signed-off-by: Stephan Raue --- config/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 "."` From 52d94bec5784e9f4c8fe6301cf7d2a1ae4e7c19a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 28 Oct 2011 14:39:12 +0200 Subject: [PATCH 06/69] projects/Ultra/linux: add support for more Aetheros Chipsets Signed-off-by: Stephan Raue --- projects/Ultra/linux/linux.x86_64.conf | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 From 5af4ff2e44a443dd430ee602496c28b351adcb4a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 09:44:55 +0200 Subject: [PATCH 07/69] xbmc: upadte to xbmc-4c32cde Signed-off-by: Stephan Raue --- packages/mediacenter/xbmc-theme-Confluence/meta | 2 +- packages/mediacenter/xbmc/meta | 2 +- ...> xbmc-4c32cde-001-add_support_to_specify_GIT_REV-0.1.patch} | 0 ... => xbmc-4c32cde-013-reenable_lcd_config_settings-0.1.patch} | 0 ...S-0.1.patch => xbmc-4c32cde-303-fix_libdvd_xFLAGS-0.1.patch} | 0 ...uild-0.1.patch => xbmc-4c32cde-311-fix_rsxs_build-0.1.patch} | 0 ...1.patch => xbmc-4c32cde-351-increase_YV12_buffers-0.1.patch} | 0 ...32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch} | 0 ...-vaapi_increase_number_of_video_surface_allocated-0.1.patch} | 0 ...1.patch => xbmc-4c32cde-402-enable_yasm_in_ffmpeg-0.1.patch} | 0 ...heck-0.6.patch => xbmc-4c32cde-404-add_lame_check-0.6.patch} | 0 ...de-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch} | 0 ...-0.1.patch => xbmc-4c32cde-452-change_lcd_content-0.1.patch} | 0 ...atch => xbmc-4c32cde-453-add_openelec.tv_RSS_news-0.1.patch} | 0 ...h-0.1.patch => xbmc-4c32cde-454-disable_backslash-0.1.patch} | 0 ....1.patch => xbmc-4c32cde-457-fix_connection_check-0.1.patch} | 0 ...> xbmc-4c32cde-462-add_remote_irtrans_mediacenter-0.1.patch} | 0 ...0.1.patch => xbmc-4c32cde-463-add_remote_devinput-0.1.patch} | 0 ...=> xbmc-4c32cde-464-add_eject_keymapping_for_lirc-0.1.patch} | 0 19 files changed, 2 insertions(+), 2 deletions(-) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-001-add_support_to_specify_GIT_REV-0.1.patch => xbmc-4c32cde-001-add_support_to_specify_GIT_REV-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-013-reenable_lcd_config_settings-0.1.patch => xbmc-4c32cde-013-reenable_lcd_config_settings-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-303-fix_libdvd_xFLAGS-0.1.patch => xbmc-4c32cde-303-fix_libdvd_xFLAGS-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-311-fix_rsxs_build-0.1.patch => xbmc-4c32cde-311-fix_rsxs_build-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-351-increase_YV12_buffers-0.1.patch => xbmc-4c32cde-351-increase_YV12_buffers-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch => xbmc-4c32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-354-vaapi_increase_number_of_video_surface_allocated-0.1.patch => xbmc-4c32cde-354-vaapi_increase_number_of_video_surface_allocated-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-402-enable_yasm_in_ffmpeg-0.1.patch => xbmc-4c32cde-402-enable_yasm_in_ffmpeg-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-404-add_lame_check-0.6.patch => xbmc-4c32cde-404-add_lame_check-0.6.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch => xbmc-4c32cde-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-452-change_lcd_content-0.1.patch => xbmc-4c32cde-452-change_lcd_content-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-453-add_openelec.tv_RSS_news-0.1.patch => xbmc-4c32cde-453-add_openelec.tv_RSS_news-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-454-disable_backslash-0.1.patch => xbmc-4c32cde-454-disable_backslash-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-457-fix_connection_check-0.1.patch => xbmc-4c32cde-457-fix_connection_check-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-462-add_remote_irtrans_mediacenter-0.1.patch => xbmc-4c32cde-462-add_remote_irtrans_mediacenter-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-463-add_remote_devinput-0.1.patch => xbmc-4c32cde-463-add_remote_devinput-0.1.patch} (100%) rename packages/mediacenter/xbmc/patches/{xbmc-cfa1a05-464-add_eject_keymapping_for_lirc-0.1.patch => xbmc-4c32cde-464-add_eject_keymapping_for_lirc-0.1.patch} (100%) diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index 1011bf08e8..1cc36a46eb 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/meta +++ b/packages/mediacenter/xbmc-theme-Confluence/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc-theme-Confluence" -PKG_VERSION="cfa1a05" +PKG_VERSION="4c32cde" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index c732828a98..2acbdc6f42 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="cfa1a05" +PKG_VERSION="4c32cde" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-001-add_support_to_specify_GIT_REV-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-001-add_support_to_specify_GIT_REV-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-001-add_support_to_specify_GIT_REV-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-001-add_support_to_specify_GIT_REV-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-013-reenable_lcd_config_settings-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-013-reenable_lcd_config_settings-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-013-reenable_lcd_config_settings-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-013-reenable_lcd_config_settings-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-303-fix_libdvd_xFLAGS-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-303-fix_libdvd_xFLAGS-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-303-fix_libdvd_xFLAGS-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-303-fix_libdvd_xFLAGS-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-311-fix_rsxs_build-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-311-fix_rsxs_build-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-311-fix_rsxs_build-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-311-fix_rsxs_build-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-351-increase_YV12_buffers-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-351-increase_YV12_buffers-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-351-increase_YV12_buffers-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-351-increase_YV12_buffers-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-354-vaapi_increase_number_of_video_surface_allocated-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-354-vaapi_increase_number_of_video_surface_allocated-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-354-vaapi_increase_number_of_video_surface_allocated-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-354-vaapi_increase_number_of_video_surface_allocated-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-402-enable_yasm_in_ffmpeg-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-402-enable_yasm_in_ffmpeg-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-402-enable_yasm_in_ffmpeg-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-402-enable_yasm_in_ffmpeg-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-404-add_lame_check-0.6.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-404-add_lame_check-0.6.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-404-add_lame_check-0.6.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-404-add_lame_check-0.6.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-452-change_lcd_content-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-452-change_lcd_content-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-452-change_lcd_content-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-452-change_lcd_content-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-453-add_openelec.tv_RSS_news-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-453-add_openelec.tv_RSS_news-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-453-add_openelec.tv_RSS_news-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-453-add_openelec.tv_RSS_news-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-454-disable_backslash-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-454-disable_backslash-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-454-disable_backslash-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-454-disable_backslash-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-457-fix_connection_check-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-457-fix_connection_check-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-457-fix_connection_check-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-457-fix_connection_check-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-462-add_remote_irtrans_mediacenter-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-462-add_remote_irtrans_mediacenter-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-462-add_remote_irtrans_mediacenter-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-462-add_remote_irtrans_mediacenter-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-463-add_remote_devinput-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-463-add_remote_devinput-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-463-add_remote_devinput-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-463-add_remote_devinput-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-cfa1a05-464-add_eject_keymapping_for_lirc-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-464-add_eject_keymapping_for_lirc-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/xbmc-cfa1a05-464-add_eject_keymapping_for_lirc-0.1.patch rename to packages/mediacenter/xbmc/patches/xbmc-4c32cde-464-add_eject_keymapping_for_lirc-0.1.patch From e9f9947b7a135b07ea833de7f0ade9eda355263a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 09:47:28 +0200 Subject: [PATCH 08/69] dbus: add patch to speedup dbus (http://lists.freedesktop.org/archives/dbus/2007-October/008822.html) Signed-off-by: Stephan Raue --- .../dbus/patches/dbus-1.4.16-speedup-0.1.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 packages/sysutils/dbus/patches/dbus-1.4.16-speedup-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; + From fa320de4eb416867d6f148f9ec191609043c9378 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 10:39:01 +0200 Subject: [PATCH 09/69] projects/Generic*/options: fix Skin options Signed-off-by: Stephan Raue --- projects/Generic/options | 6 +++--- projects/Generic_OSS/options | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/Generic/options b/projects/Generic/options index eae46cea25..a8b0946d91 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -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" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index dd53a6864f..2dcfdbef84 100644 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -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" From 805aebdb171a49c7767071bf80725d2464bc536a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:30:11 +0200 Subject: [PATCH 10/69] evtest: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/debugging/tools/evtest/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From 41c2fbfd78ff5f18a2350dd40e732e2d722f2ef7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:30:25 +0200 Subject: [PATCH 11/69] htop: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/debugging/tools/htop/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From d915dda17e0098684b8a22ee44c71437180df8b1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:30:42 +0200 Subject: [PATCH 12/69] xbmc-ps3d: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/driver/xbmc-ps3d/changelog.txt | 2 +- packages/addons/driver/xbmc-ps3d/meta | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/addons/driver/xbmc-ps3d/changelog.txt b/packages/addons/driver/xbmc-ps3d/changelog.txt index d5e0de95af..3ee5b5324f 100644 --- a/packages/addons/driver/xbmc-ps3d/changelog.txt +++ b/packages/addons/driver/xbmc-ps3d/changelog.txt @@ -1,2 +1,2 @@ -1.0.0 +1.90.0 - initial version xbmc-ps3d diff --git a/packages/addons/driver/xbmc-ps3d/meta b/packages/addons/driver/xbmc-ps3d/meta index eaca409e4e..e6255592e6 100644 --- a/packages/addons/driver/xbmc-ps3d/meta +++ b/packages/addons/driver/xbmc-ps3d/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc-ps3d" -PKG_VERSION="1.0" +PKG_VERSION="1.90" PKG_REV="0" PKG_ARCH="any" PKG_LICENSE="OSS" From 446d4b85df8b4e1c52918b92f22e1a70b1b1d584 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:33:56 +0200 Subject: [PATCH 13/69] xbmc-wiimote: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/driver/xbmc-wiimote/changelog.txt | 2 +- packages/addons/driver/xbmc-wiimote/meta | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/addons/driver/xbmc-wiimote/changelog.txt b/packages/addons/driver/xbmc-wiimote/changelog.txt index 860783318a..7403cb4412 100644 --- a/packages/addons/driver/xbmc-wiimote/changelog.txt +++ b/packages/addons/driver/xbmc-wiimote/changelog.txt @@ -1,2 +1,2 @@ -1.0.0 +1.90.0 - initial version xbmc-wiimote diff --git a/packages/addons/driver/xbmc-wiimote/meta b/packages/addons/driver/xbmc-wiimote/meta index 1559f5a0a4..d178991dd1 100644 --- a/packages/addons/driver/xbmc-wiimote/meta +++ b/packages/addons/driver/xbmc-wiimote/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc-wiimote" -PKG_VERSION="1.0" +PKG_VERSION="1.90" PKG_REV="0" PKG_ARCH="any" PKG_LICENSE="OSS" From 7b2dde58638b09401b27ff3ae14e8b7cef798c77 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:34:10 +0200 Subject: [PATCH 14/69] libav: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/multimedia/libav/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From a4cd124742102ef1f431c13232a7f5eb344096ba Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:34:22 +0200 Subject: [PATCH 15/69] makemkv: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/multimedia/makemkv/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From 795701d23325a3efa7620d8193f92d01f466be70 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:34:49 +0200 Subject: [PATCH 16/69] rsync: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/networking/backup/rsync/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From eea03055b4101788d0432c86e19bc382065912cf Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:37:43 +0200 Subject: [PATCH 17/69] SABnzbd-Suite: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- .../addons/service/downloadmanager/SABnzbd-Suite/changelog.txt | 3 +++ packages/addons/service/downloadmanager/SABnzbd-Suite/meta | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) 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" From 458329b99dccb3b85fd31fd1e355b4984bdc52fe Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:37:58 +0200 Subject: [PATCH 18/69] transmission: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- .../addons/service/downloadmanager/transmission/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From b586a851652defa96bdf9b2ab9438af907785b9a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:38:19 +0200 Subject: [PATCH 19/69] hts-tvheadend: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/service/multimedia/hts-tvheadend/changelog.txt | 3 ++- packages/addons/service/multimedia/hts-tvheadend/meta | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) 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" From a86704610cc714c26cedd6d3c9f246f475efb112 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 13:38:38 +0200 Subject: [PATCH 20/69] nano: prepare for OpenELEC-1.90 release Signed-off-by: Stephan Raue --- packages/addons/shell/texteditor/nano/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) 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 From d3bcfd86b75c69bd8fe6cd716a900bb1af1f369a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 14:15:05 +0200 Subject: [PATCH 21/69] bluez: install own configfile with disabled input support Signed-off-by: Stephan Raue --- packages/network/bluez/config/main.conf | 66 +++++++++++++++++++++++++ packages/network/bluez/install | 3 +- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 packages/network/bluez/config/main.conf 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 From decda71c0e625307652e90af04151539ae70bebb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 15:12:36 +0200 Subject: [PATCH 22/69] xbmc: add vdpau fixes patch (PR468) Signed-off-by: Stephan Raue --- .../xbmc-4c32cde-341-xbmc-PR468-0.1.patch | 1769 +++++++++++++++++ ...lxSwapBuffers_going_to_far_ahead-0.1.patch | 27 +- 2 files changed, 1776 insertions(+), 20 deletions(-) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-4c32cde-341-xbmc-PR468-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-4c32cde-341-xbmc-PR468-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-341-xbmc-PR468-0.1.patch new file mode 100644 index 0000000000..9f2150ea86 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-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-4c32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch index e42432f2df..b7c38d53f1 100644 --- a/packages/mediacenter/xbmc/patches/xbmc-4c32cde-353-limit_glxSwapBuffers_going_to_far_ahead-0.1.patch +++ b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-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 - From 3453dd1a420f7858c537eef7fb27c4ef45907273 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 15:38:42 +0200 Subject: [PATCH 23/69] xbmc: revert ffmpeg-00d1e96bf4fc0467744f840fbc85d1a65cbb6f08 Signed-off-by: Stephan Raue --- ...e96bf4fc0467744f840fbc85d1a65cbb6f08.patch | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-4c32cde-342-revert_ffmpeg_00d1e96bf4fc0467744f840fbc85d1a65cbb6f08.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-4c32cde-342-revert_ffmpeg_00d1e96bf4fc0467744f840fbc85d1a65cbb6f08.patch b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-342-revert_ffmpeg_00d1e96bf4fc0467744f840fbc85d1a65cbb6f08.patch new file mode 100644 index 0000000000..641471f691 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-4c32cde-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: From c4d593e548e85099cb3a39ea0cd65049ef47af95 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 17:36:52 +0200 Subject: [PATCH 24/69] dvb-firmware: update to dvb-firmware-0.0.16 Signed-off-by: Stephan Raue --- packages/linux-firmware/dvb-firmware/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From 6d183f4e4f680bb7932257332e03fb9e8c7d892a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 29 Oct 2011 18:19:15 +0200 Subject: [PATCH 25/69] CHANGELOG: update changelog Signed-off-by: Stephan Raue --- CHANGELOG | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index e5957e3c65..6a3b1ad19a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,4 +14,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 From 3b4fd1d46a153d26858fc34e1c8d5c9ac1f09019 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 30 Oct 2011 09:47:39 +0100 Subject: [PATCH 26/69] busybox: update to busybox-1.19.3 Signed-off-by: Stephan Raue --- packages/sysutils/busybox/meta | 2 +- .../patches/busybox-1.19.2-android.patch | 11 ---- .../patches/busybox-1.19.2-buildsys.patch | 19 ------- .../patches/busybox-1.19.2-chpasswd.patch | 55 ------------------- .../patches/busybox-1.19.2-crond.patch | 12 ---- .../patches/busybox-1.19.2-inetd.patch | 47 ---------------- .../patches/busybox-1.19.2-syslogd.patch | 20 ------- .../busybox/patches/busybox-1.19.2-tail.patch | 43 --------------- ...h => busybox-1.19.3-00_halt_no_init.patch} | 0 ...patch => busybox-1.19.3-01_check_cc.patch} | 0 ...x-1.19.3-02_user_modprobe.d_dir-0.1.patch} | 0 11 files changed, 1 insertion(+), 208 deletions(-) delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-android.patch delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-buildsys.patch delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-syslogd.patch delete mode 100644 packages/sysutils/busybox/patches/busybox-1.19.2-tail.patch rename packages/sysutils/busybox/patches/{busybox-1.19.2-00_halt_no_init.patch => busybox-1.19.3-00_halt_no_init.patch} (100%) rename packages/sysutils/busybox/patches/{busybox-1.19.2-01_check_cc.patch => busybox-1.19.3-01_check_cc.patch} (100%) rename packages/sysutils/busybox/patches/{busybox-1.19.2-02_user_modprobe.d_dir-0.1.patch => busybox-1.19.3-02_user_modprobe.d_dir-0.1.patch} (100%) 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 From 5c184ffa2b2fa5b5c72a590cf88b62028222ead7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 30 Oct 2011 09:48:05 +0100 Subject: [PATCH 27/69] libdrm: updat to libdrm-2.4.27 Signed-off-by: Stephan Raue --- packages/graphics/libdrm/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From df447916e2be6c5b163e26c61d1c433671e490b3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 30 Oct 2011 09:48:50 +0100 Subject: [PATCH 28/69] pixman: updat to pixman-0.23.8 Signed-off-by: Stephan Raue --- packages/x11/lib/pixman/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From f36743f3f483478adbde923fb68df3e0689f6da4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 30 Oct 2011 16:28:26 +0100 Subject: [PATCH 29/69] mpfr: update to mpfr-3.1.0 Signed-off-by: Stephan Raue --- packages/toolchain/math/mpfr/meta | 2 +- .../mpfr-3.0.1-allpatches_20110917.patch | 367 ------------------ .../mpfr-3.1.0-allpatches_20111005.patch | 50 +++ 3 files changed, 51 insertions(+), 368 deletions(-) delete mode 100644 packages/toolchain/math/mpfr/patches/mpfr-3.0.1-allpatches_20110917.patch create mode 100644 packages/toolchain/math/mpfr/patches/mpfr-3.1.0-allpatches_20111005.patch 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"; + } From f8bcf6d5f606cc560a236c210ba9153cd08068d9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 30 Oct 2011 16:29:11 +0100 Subject: [PATCH 30/69] Python: add patch to dont build pyc and pyo bytecode Signed-off-by: Stephan Raue --- ..._dont_generate_pyo_and_pyc_files-0.1.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/lang/Python/patches/Python-2.7.2-005_dont_generate_pyo_and_pyc_files-0.1.patch 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()" + From 959004d94cb954fd5875e4fd66170b84988aaba1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 30 Oct 2011 16:29:36 +0100 Subject: [PATCH 31/69] Python: cleanup and simlyfing install script Signed-off-by: Stephan Raue --- packages/lang/Python/install | 83 +++++------------------------------- 1 file changed, 10 insertions(+), 73 deletions(-) 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 From cb3e23902f584401114b8ad0adc934054fc88af8 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 30 Oct 2011 18:51:43 +0100 Subject: [PATCH 32/69] linux: driver a867_drv for AVerMedia A867 DVB-T Recevier, fixed driver AF9035 which allows loading at boot time --- packages/linux-drivers/AF9035/build | 15 ++++ packages/linux-drivers/a867_drv/build | 42 +++++++++++ packages/linux-drivers/a867_drv/install | 33 ++++++++ packages/linux-drivers/a867_drv/meta | 35 +++++++++ .../a867_drv-v1.0.28-100-BKL_removal.patch | 75 +++++++++++++++++++ ...a867_drv-v1.0.28-100-BKL_removal.patch.txt | 2 + projects/ATV/options | 2 +- projects/Fusion/options | 2 +- projects/Generic/options | 2 +- projects/Generic_OSS/options | 2 +- projects/ION/options | 2 +- projects/Intel/options | 2 +- projects/Ultra/options | 2 +- 13 files changed, 209 insertions(+), 7 deletions(-) create mode 100755 packages/linux-drivers/a867_drv/build create mode 100755 packages/linux-drivers/a867_drv/install create mode 100755 packages/linux-drivers/a867_drv/meta create mode 100644 packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch create mode 100755 packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch.txt mode change 100644 => 100755 projects/ATV/options mode change 100644 => 100755 projects/Fusion/options mode change 100644 => 100755 projects/Generic/options mode change 100644 => 100755 projects/Generic_OSS/options mode change 100644 => 100755 projects/ION/options mode change 100644 => 100755 projects/Intel/options mode change 100644 => 100755 projects/Ultra/options 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/linux-drivers/a867_drv/install b/packages/linux-drivers/a867_drv/install new file mode 100755 index 0000000000..238f6a8dc2 --- /dev/null +++ b/packages/linux-drivers/a867_drv/install @@ -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 +################################################################################ + +. config/options $1 + +VER=`ls $BUILD/linux*/modules/lib/modules` + +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 100755 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 100755 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/projects/ATV/options b/projects/ATV/options old mode 100644 new mode 100755 index 22d08d354a..0159591fc1 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -150,7 +150,7 @@ # 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" diff --git a/projects/Fusion/options b/projects/Fusion/options old mode 100644 new mode 100755 index a8001ca3c1..258dee8e98 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -150,7 +150,7 @@ # 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" diff --git a/projects/Generic/options b/projects/Generic/options old mode 100644 new mode 100755 index a8b0946d91..ea5b4079ac --- a/projects/Generic/options +++ b/projects/Generic/options @@ -150,7 +150,7 @@ # 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" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options old mode 100644 new mode 100755 index 2dcfdbef84..a74b4566fc --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -150,7 +150,7 @@ # 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" diff --git a/projects/ION/options b/projects/ION/options old mode 100644 new mode 100755 index 700677dc97..630969f7e8 --- a/projects/ION/options +++ b/projects/ION/options @@ -150,7 +150,7 @@ # 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" diff --git a/projects/Intel/options b/projects/Intel/options old mode 100644 new mode 100755 index 5562865a95..ad338a2237 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -150,7 +150,7 @@ # 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" diff --git a/projects/Ultra/options b/projects/Ultra/options old mode 100644 new mode 100755 index 534aef2e73..1e6db948b0 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -150,7 +150,7 @@ # 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" From 8b9d9789a40685d18c22fdd348740512b6aa6492 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:50:47 +0100 Subject: [PATCH 33/69] gcc: update to gcc-4.6.2 Signed-off-by: Stephan Raue --- packages/toolchain/lang/gcc-core/build | 4 +- packages/toolchain/lang/gcc-final/build | 9 +- packages/toolchain/lang/gcc/meta | 2 +- ...ix_undefined_references_with_lto-0.1.patch | 126 ------- ...old.patch => gcc-4.6.2-bfd_and_gold.patch} | 330 ++++-------------- ...4.6.2-disable_multilib_i386_linux64.patch} | 6 +- ...r.patch => gcc-4.6.2-dynamic_linker.patch} | 72 ++-- ...ch => gcc-4.6.2-libstdc++-v3_config.patch} | 14 +- 8 files changed, 128 insertions(+), 435 deletions(-) delete mode 100644 packages/toolchain/lang/gcc/patches/gcc-4.5.3-fix_undefined_references_with_lto-0.1.patch rename packages/toolchain/lang/gcc/patches/{gcc-4.5.3-bfd_and_gold.patch => gcc-4.6.2-bfd_and_gold.patch} (60%) rename packages/toolchain/lang/gcc/patches/{gcc-4.5.3-disable_multilib_i386_linux64.patch => gcc-4.6.2-disable_multilib_i386_linux64.patch} (76%) rename packages/toolchain/lang/gcc/patches/{gcc-4.5.3-dynamic_linker.patch => gcc-4.6.2-dynamic_linker.patch} (68%) rename packages/toolchain/lang/gcc/patches/{gcc-4.5.3-libstdc++-v3_config.patch => gcc-4.6.2-libstdc++-v3_config.patch} (86%) 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.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. */ From 9fb445e53ba1876d0c9f87f411988bd9b5fe1a7b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:51:48 +0100 Subject: [PATCH 34/69] alsa-lib: fails to build with gcc-4.6's LTO support Signed-off-by: Stephan Raue --- packages/audio/alsa-lib/build | 3 +++ 1 file changed, 3 insertions(+) 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 From 97a83bfff7468587173acc79455433c533522de0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:52:03 +0100 Subject: [PATCH 35/69] pcre: fails to build with gcc-4.6's LTO support Signed-off-by: Stephan Raue --- packages/devel/pcre/build | 3 +++ 1 file changed, 3 insertions(+) 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 From fdc9d282682a3bf444bb3c26a26f0e438481eb73 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:52:28 +0100 Subject: [PATCH 36/69] busybox-initramfs: fails to build with gcc-4.6's LTO support Signed-off-by: Stephan Raue --- packages/initramfs/sysutils/busybox-initramfs/build | 3 +++ 1 file changed, 3 insertions(+) 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|"` From b81afbcab4c6734030344d7f2288b17728179e14 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:52:47 +0100 Subject: [PATCH 37/69] busybox: fails to build with gcc-4.6's LTO support Signed-off-by: Stephan Raue --- packages/sysutils/busybox/build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/sysutils/busybox/build b/packages/sysutils/busybox/build index 79dc1e30ae..4f648edaac 100755 --- a/packages/sysutils/busybox/build +++ b/packages/sysutils/busybox/build @@ -28,6 +28,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|"` From 145c78f7019dd4b318499a53826bb939ed81f2bf Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:53:23 +0100 Subject: [PATCH 38/69] pciutils: fails to build with gcc-4.6's LTO support Signed-off-by: Stephan Raue --- packages/sysutils/pciutils/build | 3 +++ 1 file changed, 3 insertions(+) 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" \ From abad3d114acfb07ed8372fcc7e1d83596d57789c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:54:06 +0100 Subject: [PATCH 39/69] kexec-tools: add patch to build with gcc-4.6 Signed-off-by: Stephan Raue --- .../patches/kexec-tools-2.0.2-gcc-4.6.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 packages/sysutils/kexec-tools/patches/kexec-tools-2.0.2-gcc-4.6.patch 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) From f028b4492b47be70b91bf938b80ae7562bee8977 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:55:35 +0100 Subject: [PATCH 40/69] linux: fix build of 'cpupower' Signed-off-by: Stephan Raue --- packages/linux/build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 \ From 39e28c9d8a6807f57f1ca9200914ebc441102fcc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:56:17 +0100 Subject: [PATCH 41/69] xbmc: remove not more needed build fixes Signed-off-by: Stephan Raue --- packages/mediacenter/xbmc/build | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index a4d570c64f..5cb9c795e6 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`" From 45438718b5d5fd9ace66dd46d751f76e0164820f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 09:59:04 +0100 Subject: [PATCH 42/69] projects/*/options: (temporary) disable gold and lto support Signed-off-by: Stephan Raue --- projects/ATV/options | 4 ++-- projects/Fusion/options | 4 ++-- projects/Generic/options | 4 ++-- projects/Generic_OSS/options | 4 ++-- projects/ION/options | 4 ++-- projects/Intel/options | 4 ++-- projects/Ultra/options | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/projects/ATV/options b/projects/ATV/options index 22d08d354a..dc3774ab8e 100644 --- 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" diff --git a/projects/Fusion/options b/projects/Fusion/options index a8001ca3c1..deec81c57a 100644 --- 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" diff --git a/projects/Generic/options b/projects/Generic/options index a8b0946d91..a9be35fadf 100644 --- 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" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index 2dcfdbef84..d37b1496eb 100644 --- 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" diff --git a/projects/ION/options b/projects/ION/options index 700677dc97..c733229e8b 100644 --- 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" diff --git a/projects/Intel/options b/projects/Intel/options index 5562865a95..e38b715bf4 100644 --- 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" diff --git a/projects/Ultra/options b/projects/Ultra/options index 534aef2e73..b449b026b1 100644 --- 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" From 6f7fee9e8ba19543722048acd64073fca4cfc2fc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 10:20:08 +0100 Subject: [PATCH 43/69] a867_drv: fix permissions Signed-off-by: Stephan Raue --- packages/linux-drivers/a867_drv/meta | 0 .../a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 packages/linux-drivers/a867_drv/meta mode change 100755 => 100644 packages/linux-drivers/a867_drv/patches/a867_drv-v1.0.28-100-BKL_removal.patch.txt diff --git a/packages/linux-drivers/a867_drv/meta b/packages/linux-drivers/a867_drv/meta old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 From f1fae3212851bcc4726005d9df60892e4bc80d85 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 13:13:14 +0100 Subject: [PATCH 44/69] busybox: fials to build with loop and graphite optimizations under gcc-4.6 Signed-off-by: Stephan Raue --- packages/sysutils/busybox/build | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/sysutils/busybox/build b/packages/sysutils/busybox/build index 4f648edaac..810c205363 100755 --- a/packages/sysutils/busybox/build +++ b/packages/sysutils/busybox/build @@ -31,6 +31,13 @@ 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|"` From 8040edfd91f4e37aa9af276c2182005f34162fbd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 13:16:41 +0100 Subject: [PATCH 45/69] CHANGELOG: update changelog Signed-off-by: Stephan Raue --- CHANGELOG | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 6a3b1ad19a..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 From e31438a86bebc29c9cfa3c495ad8a4189a06d81f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 15:39:53 +0100 Subject: [PATCH 46/69] gcc: add patch to fix PR48805 Signed-off-by: Stephan Raue --- ...R48805_Do_not_instantiate_ADDR_EXPRs.patch | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 packages/toolchain/lang/gcc/patches/gcc-4.6.2-PR48805_Do_not_instantiate_ADDR_EXPRs.patch 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 + From 9810170049dbed6678eff658073643c75358ecf3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 31 Oct 2011 18:29:35 +0100 Subject: [PATCH 47/69] new addon: add addon to support MCE remotes via the imon driver Signed-off-by: Stephan Raue --- packages/addons/driver/imon-mce/addon | 23 +++++++++++ packages/addons/driver/imon-mce/changelog.txt | 2 + packages/addons/driver/imon-mce/icon/icon.png | Bin 0 -> 30561 bytes packages/addons/driver/imon-mce/meta | 38 ++++++++++++++++++ .../imon-mce/source/bin/imon-mce.service | 24 +++++++++++ .../addons/driver/imon-mce/source/default.py | 23 +++++++++++ 6 files changed, 110 insertions(+) create mode 100755 packages/addons/driver/imon-mce/addon create mode 100644 packages/addons/driver/imon-mce/changelog.txt create mode 100644 packages/addons/driver/imon-mce/icon/icon.png create mode 100644 packages/addons/driver/imon-mce/meta create mode 100755 packages/addons/driver/imon-mce/source/bin/imon-mce.service create mode 100644 packages/addons/driver/imon-mce/source/default.py diff --git a/packages/addons/driver/imon-mce/addon b/packages/addons/driver/imon-mce/addon new file mode 100755 index 0000000000..e0fc3c5a63 --- /dev/null +++ b/packages/addons/driver/imon-mce/addon @@ -0,0 +1,23 @@ +#!/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 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 0000000000000000000000000000000000000000..ee39e2a0790c9fab84afff689fdb4f8829212098 GIT binary patch literal 30561 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
>)EK?4 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 P;NLyf`znP>=7IkY!E@JK literal 0 HcmV?d00001 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/addons/driver/imon-mce/source/bin/imon-mce.service b/packages/addons/driver/imon-mce/source/bin/imon-mce.service new file mode 100755 index 0000000000..d2edce0088 --- /dev/null +++ b/packages/addons/driver/imon-mce/source/bin/imon-mce.service @@ -0,0 +1,24 @@ +#!/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 +################################################################################ + +sleep 1 && \ +ir-keytable -p rc6 -w /etc/rc_keymaps/imon_mce & \ No newline at end of file diff --git a/packages/addons/driver/imon-mce/source/default.py b/packages/addons/driver/imon-mce/source/default.py new file mode 100644 index 0000000000..5f07121ad5 --- /dev/null +++ b/packages/addons/driver/imon-mce/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("imon-mce.service") From 2578296e35a319eabcfd6f5bfa5c251a3e70034d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 14:10:19 +0100 Subject: [PATCH 48/69] xbmc-addon-settings: remove options to run library scan on wakeup (supported already by xbmc), cleanup Signed-off-by: Stephan Raue --- .../config/default_settings.xml | 9 ----- .../xbmc-addon-settings/source/addon.xml | 2 +- .../xbmc-addon-settings/source/default.py | 2 +- .../resources/language/Dutch/strings.xml | 3 -- .../resources/language/English/strings.xml | 3 -- .../resources/language/French/strings.xml | 3 -- .../resources/language/German/strings.xml | 3 -- .../resources/language/Norwegian/strings.xml | 5 +-- .../source/resources/settings.xml | 4 -- .../xbmc/sleep.d/01_update_videodb | 40 ------------------- .../xbmc/sleep.d/02_update_musicdb | 40 ------------------- 11 files changed, 3 insertions(+), 111 deletions(-) delete mode 100755 packages/mediacenter/xbmc/sleep.d/01_update_videodb delete mode 100755 packages/mediacenter/xbmc/sleep.d/02_update_musicdb 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/sleep.d/01_update_videodb b/packages/mediacenter/xbmc/sleep.d/01_update_videodb deleted file mode 100755 index 7b509b0c12..0000000000 --- a/packages/mediacenter/xbmc/sleep.d/01_update_videodb +++ /dev/null @@ -1,40 +0,0 @@ -#!/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 -################################################################################ - -. /etc/profile - -case "$1" in - thaw|resume) - ( - if [ -f /var/config/settings.conf ]; then - . /var/config/settings.conf - - if [ "$WAKEUP_VIDEODBUPDATE" = "true" ]; then - usleep 5000000 - xbmc-send --host=127.0.0.1 -a "UpdateLibrary(video)" - fi - fi - )& - ;; - *) exit $NA - ;; -esac diff --git a/packages/mediacenter/xbmc/sleep.d/02_update_musicdb b/packages/mediacenter/xbmc/sleep.d/02_update_musicdb deleted file mode 100755 index 22ab151a7b..0000000000 --- a/packages/mediacenter/xbmc/sleep.d/02_update_musicdb +++ /dev/null @@ -1,40 +0,0 @@ -#!/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 -################################################################################ - -. /etc/profile - -case "$1" in - thaw|resume) - ( - if [ -f /var/config/settings.conf ]; then - . /var/config/settings.conf - - if [ "$WAKEUP_MUSICDBUPDATE" = "true" ]; then - usleep 5000000 - xbmc-send --host=127.0.0.1 -a "UpdateLibrary(music)" - fi - fi - )& - ;; - *) exit $NA - ;; -esac From 55bdeb50065b1cc1a554b4ffd2925da15378b817 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 14:48:08 +0100 Subject: [PATCH 49/69] xf86-video-ati: update to xf86-video-ati-d3d6a5d Signed-off-by: Stephan Raue --- packages/x11/driver/xf86-video-ati/meta | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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" From 469bed96e10a3c1d0163ab833eda52ab60bd0c4c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 18:50:47 +0100 Subject: [PATCH 50/69] projects/Generic_OSS/linux: disable backlight support, add nouveau drm I2C drivers Signed-off-by: Stephan Raue --- projects/Generic_OSS/linux/linux.i386.conf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 From c4f9a12446b534657bc91df9d969e77fa935dcd7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:09:08 +0100 Subject: [PATCH 51/69] new package: add package 'mesa', this is the actual 7.12 master branch of Mesa Signed-off-by: Stephan Raue --- config/graphic | 24 +++++ packages/graphics/mesa/build | 97 +++++++++++++++++++ packages/graphics/mesa/install | 42 ++++++++ packages/graphics/mesa/meta | 53 ++++++++++ ...ec1d967255f4f87b5208a857c87f-llvm_so.patch | 12 +++ 5 files changed, 228 insertions(+) create mode 100755 packages/graphics/mesa/build create mode 100755 packages/graphics/mesa/install create mode 100644 packages/graphics/mesa/meta create mode 100644 packages/graphics/mesa/patches/mesa-a1b737d72f1fec1d967255f4f87b5208a857c87f-llvm_so.patch 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/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..816978ebec --- /dev/null +++ b/packages/graphics/mesa/install @@ -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 + +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/vdpau + cp -P $PKG_BUILD/lib/gallium/libvdpau_*.so* $INSTALL/usr/lib/vdpau + +mkdir -p $INSTALL/usr/lib/xorg/modules/drivers + cp -P $PKG_BUILD/lib/gallium/*_drv.so $INSTALL/usr/lib/xorg/modules/drivers || true 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" From d8696b4e6ca3a579fc7b09f7821da686486da2a7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:11:35 +0100 Subject: [PATCH 52/69] projects/*/options: add option to let select Mesa version Signed-off-by: Stephan Raue --- projects/ATV/options | 3 +++ projects/Fusion/options | 3 +++ projects/Generic/options | 3 +++ projects/Generic_OSS/options | 3 +++ projects/ION/options | 3 +++ projects/Intel/options | 3 +++ projects/Ultra/options | 3 +++ 7 files changed, 21 insertions(+) diff --git a/projects/ATV/options b/projects/ATV/options index 9607209c40..4543d2cdad 100755 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -213,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" diff --git a/projects/Fusion/options b/projects/Fusion/options index 4d00aba18a..866fd589b8 100755 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -213,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" diff --git a/projects/Generic/options b/projects/Generic/options index 0dd689633c..98d89832a1 100755 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -213,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" diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index ef7a6dc4f9..a6240b4c6f 100755 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -213,6 +213,9 @@ # 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" diff --git a/projects/ION/options b/projects/ION/options index c3574d6891..9162623451 100755 --- a/projects/ION/options +++ b/projects/ION/options @@ -213,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" diff --git a/projects/Intel/options b/projects/Intel/options index 1e40348bb1..f6c24db492 100755 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -213,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" diff --git a/projects/Ultra/options b/projects/Ultra/options index b52768bd65..24f4c4467b 100755 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -213,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" From db4ddd1d22a43d8aa1a0170554a339030dcc640d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:13:45 +0100 Subject: [PATCH 53/69] megaglest-source: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/addons/games/megaglest-source/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From f19a755aacb05497889a5fa96efa7994282e643d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:14:00 +0100 Subject: [PATCH 54/69] sauerbraten: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/addons/games/sauerbraten/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 3b30bc4f2dfb442ad86e960520317eedd01b9f96 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:14:17 +0100 Subject: [PATCH 55/69] mesa-demos: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/debug/mesa-demos/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 824ebbf93d8723a5568b6809adb7cc4a499d7fda Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:14:30 +0100 Subject: [PATCH 56/69] cairo: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/graphics/cairo/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From a3bf103f14b7d3334bfd822cb2cf7e123acc48ff Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:14:43 +0100 Subject: [PATCH 57/69] glew: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/graphics/glew/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From e788d8c7c803cb015d497339c1f7b1a61c24d576 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:15:07 +0100 Subject: [PATCH 58/69] xorg-server: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/x11/xserver/xorg-server/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 2a2535e1208a08a3573602c58f230bd1078b7813 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:15:56 +0100 Subject: [PATCH 59/69] xvba-video: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/multimedia/xvba-video/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 5082f20a104cfcc031f7f256c0966ebc1aae287d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:16:10 +0100 Subject: [PATCH 60/69] SDL: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/multimedia/SDL/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 81a1ec8c2b874ace26249d9355a56ea65f3ca7ce Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:16:21 +0100 Subject: [PATCH 61/69] SDL_ttf: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/multimedia/SDL_ttf/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 110ef57ba654055c75d709804ffe7b932c68522f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:16:39 +0100 Subject: [PATCH 62/69] xbmc: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/mediacenter/xbmc/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index 2acbdc6f42..90cc7efef6 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -25,8 +25,8 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.xbmc.org" PKG_URL="$DISTRO_SRC/$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" From 1c2ec53c5e7c2fc03e8522d603366a169ee17fc5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:17:18 +0100 Subject: [PATCH 63/69] libva: add support for different Mesa versions Signed-off-by: Stephan Raue --- packages/multimedia/libva/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)." From 57b57419bf0e14da0e57b099a6a22d4bdb35eed1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:18:04 +0100 Subject: [PATCH 64/69] xf86-video-nouveau: add support for different Mesa versions, update to xf86-video-nvidia-d575a28a5020ff083836d3d1cf50018a99f49c9f Signed-off-by: Stephan Raue --- packages/x11/driver/xf86-video-nouveau/meta | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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)" From 56ac1c95b8e2bf2cfd2f29e8633ecb9ce3eda3b1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:19:46 +0100 Subject: [PATCH 65/69] libvdpau: set vdpau module dir, enable dri2 support Signed-off-by: Stephan Raue --- packages/multimedia/libvdpau/build | 2 ++ 1 file changed, 2 insertions(+) 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 From a0f68d7a8199f5290c6eaa9e728a81de2470757e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 1 Nov 2011 22:20:15 +0100 Subject: [PATCH 66/69] xf86-video-nvidia: install vdpau driver to vdpau module dir Signed-off-by: Stephan Raue --- packages/x11/driver/xf86-video-nvidia/install | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 From 7cb71222e521f8eff6e5e8b44cb98006cc1551aa Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 2 Nov 2011 09:04:51 +0100 Subject: [PATCH 67/69] mesa: fix install of vdpau drivers Signed-off-by: Stephan Raue --- packages/graphics/mesa/install | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/graphics/mesa/install b/packages/graphics/mesa/install index 816978ebec..8c4faba861 100755 --- a/packages/graphics/mesa/install +++ b/packages/graphics/mesa/install @@ -35,8 +35,10 @@ mkdir -p $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/vdpau - cp -P $PKG_BUILD/lib/gallium/libvdpau_*.so* $INSTALL/usr/lib/vdpau - 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 From b25266c58a4e3eb82baf8444181119573483734f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 2 Nov 2011 09:19:53 +0100 Subject: [PATCH 68/69] xf86-video-nouveau: disable GLXVblank option for now Signed-off-by: Stephan Raue --- packages/x11/driver/xf86-video-nouveau/config/xorg-nouveau.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From 88ec015843f07bebdcbfd4769130dd79c9456c87 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 2 Nov 2011 10:36:28 +0100 Subject: [PATCH 69/69] projects/Generic_OSS/options: disable VDPAU support Signed-off-by: Stephan Raue --- projects/Generic_OSS/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Generic_OSS/options b/projects/Generic_OSS/options index a6240b4c6f..9903a82c34 100755 --- a/projects/Generic_OSS/options +++ b/projects/Generic_OSS/options @@ -217,7 +217,7 @@ 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"