From b58eea40ac1bcb49c6f7299ec63ffd10d9ab4ece Mon Sep 17 00:00:00 2001 From: Joost Ruis Date: Wed, 13 Apr 2011 09:57:40 +0000 Subject: [PATCH] [media-tv/boxee] Add boxee ebuild for testing. Taken from gentoo bug 258082 --- media-tv/boxee/Manifest | 13 + media-tv/boxee/boxee-0.9.23_beta15885.ebuild | 353 ++++++++++++++++++ media-tv/boxee/files/12563_fix.patch | 45 +++ media-tv/boxee/files/anish.patch | 20 + .../boxee-0.9.21.11497-fix_Para_py.patch | 68 ++++ ...63-fix_python_a-include_ThreadPolicy.patch | 10 + media-tv/boxee/files/boxee.desktop | 10 + media-tv/boxee/files/boxee64.patch | 54 +++ media-tv/boxee/files/ffmpeg64.patch | 130 +++++++ media-tv/boxee/files/flashlib-Makefile.patch | 14 + media-tv/boxee/files/fribidi.patch | 16 + media-tv/boxee/files/libmms.patch | 10 + media-tv/boxee/files/libpng.patch | 86 +++++ 13 files changed, 829 insertions(+) create mode 100644 media-tv/boxee/Manifest create mode 100644 media-tv/boxee/boxee-0.9.23_beta15885.ebuild create mode 100644 media-tv/boxee/files/12563_fix.patch create mode 100644 media-tv/boxee/files/anish.patch create mode 100644 media-tv/boxee/files/boxee-0.9.21.11497-fix_Para_py.patch create mode 100644 media-tv/boxee/files/boxee-0.9.21.12563-fix_python_a-include_ThreadPolicy.patch create mode 100644 media-tv/boxee/files/boxee.desktop create mode 100644 media-tv/boxee/files/boxee64.patch create mode 100644 media-tv/boxee/files/ffmpeg64.patch create mode 100644 media-tv/boxee/files/flashlib-Makefile.patch create mode 100644 media-tv/boxee/files/fribidi.patch create mode 100644 media-tv/boxee/files/libmms.patch create mode 100644 media-tv/boxee/files/libpng.patch diff --git a/media-tv/boxee/Manifest b/media-tv/boxee/Manifest new file mode 100644 index 000000000..469049e4d --- /dev/null +++ b/media-tv/boxee/Manifest @@ -0,0 +1,13 @@ +AUX 12563_fix.patch 1182 RMD160 14a71e3c771ba62a0b19f958f7b6151be186c536 SHA1 8f318ff074c0fff24a3005b89402b1a2a5bdb3a8 SHA256 0b0c469112a8664552cd76353b4f12aa384b1a568d444c729ad8e3ac515d647b +AUX anish.patch 786 RMD160 3c14f7b749e093deea8e4f61572c456e30dc063c SHA1 98b12aba9e1a73e8f02837a0ca5be70e18b88e9e SHA256 3522e2be90b5f6ab94a4eb2951b00a327f0ea2d5187671050205d46d3c957950 +AUX boxee-0.9.21.11497-fix_Para_py.patch 2943 RMD160 355fbff89120a8c1dd074ea9c7efddaa1cc19e63 SHA1 a5b94cd9db15dd903c5f6ebe91d2ae2a553bc461 SHA256 0df9d7bb7b06ed00ac9ba85719a35f98d253722d58e8c65f96c0c0b430ed643a +AUX boxee-0.9.21.12563-fix_python_a-include_ThreadPolicy.patch 629 RMD160 9866d840b0987fe92c041ef4e61bf91073ec93d9 SHA1 f1ca0d507eb33bfffe53351088bde69d67bf56ef SHA256 9a53b3254bf8a730dd9dd0b0ba6435354e96cd794737549b7a44e25465fc8b23 +AUX boxee.desktop 228 RMD160 fa9b54d5b1dd565144f77ab3934e31c23c33b2ef SHA1 edd1fbaf4d9ea3e8d2fa8deaf7902159c46a3ebd SHA256 573f370a0e2e73ce71ccb5b90cc9fa53c60b1c9b934af8242b1eee9a834cf434 +AUX boxee64.patch 2046 RMD160 9b541ced179839f15bacc28362db7176a53e9806 SHA1 24c46671f1ef3e9d1b2343bef6982d91d0d73ca0 SHA256 03c8557dcf687452660148488c3ef8b9e931261770b63b7c4c2fe8f6ab8d1bdf +AUX ffmpeg64.patch 6766 RMD160 95ad61da45dc8f88262f46092beb3dc954c7d9fa SHA1 4c2ec03145a9859c0a71a9494bf6110a1117efbd SHA256 c318f914f4b5452e0bd088d17688d3cd6255e7580d866ddd78174954bbf242e1 +AUX flashlib-Makefile.patch 420 RMD160 a67436973bf769ad0a169493bcb6ce835f08497f SHA1 97ce1deb24c34498d81441a2f784cb747f6357f2 SHA256 ef36d254a78160fa7153ff588c32e1fef256f23f1aab16a174c4fdb0c61334ea +AUX fribidi.patch 319 RMD160 dc0e2e5df43072415b66e0ec54f6cbff2e2b581a SHA1 e8943019b7bb5ace5aeae6b86fcd24e8d8c63c69 SHA256 41c54e149779d757ef0151b2ec48022e1221b91ffdca372ea39999bc29995ee8 +AUX libmms.patch 399 RMD160 520af1fc937c9330b6f7efd17b6396fbbf55a2b7 SHA1 0f9430bc6d7cc4b5acee1f11acbfbf1052e20cb4 SHA256 445e98764888d146a34bc9d2ae77b416290f51fbe30ce8306b6fd2d19ee09bd9 +AUX libpng.patch 3733 RMD160 fd7f6a1bbedbd8008e2e05965476858a8402ea65 SHA1 4ffb7e0a0b0c6559164220a211b2520b67972fb3 SHA256 f0d366deee7d31d7ad9102c86f9a926fca567845e3bb1cac8020b1ad74f07171 +DIST boxee-sources-0.9.23.15885.tar.bz2 164663013 RMD160 bfd4aafdda3ec27f70971ee0bac417fadbb74466 SHA1 057856eb1e902111f7c7c97736542ed798edc6f0 SHA256 16e31c52db193fcfad1f6c65ca68fb53574892acd8b5fdb6db9f8189ce99b194 +EBUILD boxee-0.9.23_beta15885.ebuild 11452 RMD160 6648e855d0af8fd5fa5a405f5afd9628b2a1c1c1 SHA1 e080f1612a2b62f5074b76f2b2d2c46dee2202e4 SHA256 028832990b3bef3db62f339a64fac2fc5697fa1b2f091a21fc88e9e954d1a453 diff --git a/media-tv/boxee/boxee-0.9.23_beta15885.ebuild b/media-tv/boxee/boxee-0.9.23_beta15885.ebuild new file mode 100644 index 000000000..149386c66 --- /dev/null +++ b/media-tv/boxee/boxee-0.9.23_beta15885.ebuild @@ -0,0 +1,353 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" +inherit autotools eutils + +PKGVER="0.9.23.15885" + +SRC_URI="http://dl.boxee.tv/${PN}-sources-${PKGVER}.tar.bz2" +DESCRIPTION="Boxee is a fork of XBMC with a focus on social media" +HOMEPAGE="http://www.boxee.tv/" + +LICENSE="GPL-2 BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug mid xrandr opengl" +RESTRICT="mirror bindist strict" + +RDEPEND="opengl? ( virtual/opengl ) + app-arch/bzip2 + app-arch/unrar + app-arch/unzip + app-i18n/enca + >=dev-lang/python-2.6 + dev-libs/boost + dev-libs/fribidi + dev-libs/libpcre + dev-libs/lzo + dev-libs/tre + >=dev-python/pysqlite-2 + media-libs/alsa-lib + media-libs/faac + media-libs/fontconfig + media-libs/freetype + media-libs/glew + media-libs/jasper + media-libs/libmad + media-libs/libmms + media-libs/libsamplerate + media-libs/libogg + media-libs/libvorbis + media-libs/libsdl[alsa,X] + media-libs/sdl-gfx + media-libs/sdl-image[gif,jpeg,png] + media-libs/sdl-mixer + media-libs/sdl-sound + net-libs/xulrunner + www-plugins/adobe-flash + net-misc/curl + sys-apps/dbus + sys-apps/hal + sys-apps/pmount + virtual/mysql + x11-libs/libvdpau + x11-libs/libXinerama + x11-libs/libXrandr + x11-libs/libXrender" +DEPEND="${RDEPEND} + x11-proto/xineramaproto + dev-util/cmake + app-misc/screen + x86? ( dev-lang/nasm + virtual/krb5 )" + +RESTRICT="strip" + +S=${WORKDIR}/${PN}-sources-${PKGVER} + +src_unpack() { + local pic + + if [ $(uname -m) = "x86_64" ]; then + my_arch=x86_64 + else + my_arch=i486 + fi || die "Set arch failed" + + my_prefix=/opt/${PN} + pic="-fPIC" + + unpack ${A} + cd "${S}" + + # this section contains changes required for x86_64 and thus is only loaded if your arch is x86_64 + + if [ $(uname -m) = "x86_64" ]; then + + # boxee64.patch allows boxee to compile on 64bit systems + epatch "${FILESDIR}/boxee64.patch" || die "Patch failed" + + # ffmpeg needs to be patched for 64bit systems + epatch "${FILESDIR}/ffmpeg64.patch" || die "Patch failed" + + # two symlinks added by paulingham that work with boxee64.patch to allow boxee to compile on x86_64 + dosym /usr/lib/libtalloc.so.2 ${S}/xbmc/lib/libsmb/libtalloc-x86_64-linux.a + dosym /usr/lib/libwbclient.so.0 ${S}/xbmc/lib/libsmb/libwbclient-x86_64-linux.a + + _xulrunner=xulrunner-x86_64-linux + else + _xulrunner=xulrunner-i486-linux + fi || return 1 + + # anish.patch adds some minor tweaks anish figured out to get the latest sources running + epatch "${FILESDIR}/anish.patch" || die "Patch failed" + + # fribidi.patch fixes the compile issue related to fribidi + epatch "${FILESDIR}/fribidi.patch" || die "Patch failed" + + # patch to compile against libpng14, thanks to wonder for providing the original patch + epatch "${FILESDIR}/libpng.patch" || die "Patch failed" + + # patch to compilet release 0.9.21.12563, remove extraneous function calls that cause linkage failure + epatch "${FILESDIR}/12563_fix.patch" || die "Patch failed" + + # patch to fix libmms + epatch "${FILESDIR}/libmms.patch" || die "Patch failed" + + # fix the old Para.py syntax errors + epatch "${FILESDIR}/boxee-0.9.21.11497-fix_Para_py.patch" || die "Patch failed" + + # fix python include thread policy + cp /usr/include/python2.6/pyconfig.h ${S}/xbmc/lib/libPython/Python/Include + cp ${S}/xbmc/{ThreadPolicy.cpp,ThreadPolicy.h} ${S}/xbmc/lib/libPython + epatch "${FILESDIR}/boxee-0.9.21.12563-fix_python_a-include_ThreadPolicy.patch" || die "Patch failed" + + cd "${S}"/xbmc/lib/libass + ./autogen.sh || die "libass failed" + autoreconf --install || die "libass failed" + + cd "${S}"/xbmc/lib/libBoxee/tinyxpath + autoreconf -vif || die "tinyxpath failed" + ./configure || die "tinyxpath failed" + + cd "${S}"/xbmc/visualizations/Goom/goom2k4-0 + aclocal || die "goom2k4-0 failed" + libtoolize --copy --force || die "goom2k4-0 failed" + ./autogen.sh --enable-static --with-pic || die "goom2k4-0 failed" + +} + +src_configure() { + aclocal || die "aclocal failed!" + autoheader || die "autoheader failed!" + autoconf || die "autoconf failed!" + + econf \ + --disable-ccache \ + --prefix=${my_prefix} \ + $(use_enable debug) \ + $(use_enable mid) \ + $(use_enable xrandr) \ + || die "Configure failed!" + + cd "${S}" + + #this is another hack to fix an issue with gcc44 + + if [ $(uname -m) = "x86_64" ]; then + sed -r 's/\(MAKE\)\ -C\ xbmc\/screensavers$/\(MAKE\)\ CFLAGS=\"-march=k8\ -02\ -pipe\"\ -C\ xbmc\/screensavers/g' Makefile > Makefile.sed || die "sed failed" + else + sed -r 's/\(MAKE\)\ -C\ xbmc\/screensavers$/\(MAKE\)\ CFLAGS=\"-march=i486\ -02\ -pipe\"\ -C\ xbmc\/screensavers/g' Makefile > Makefile.sed || die "sed failed" + fi + cat Makefile.sed > Makefile || die "cat failed" + +} + +src_compile() { + cd "${S}" + emake -j1 || die "Make boxee failed!" +} + +src_install() { + + cd "${S}" + + # language + + install -d ${my_prefix}/language || return 1 + pushd ${S}/language/ || return 1 + find . | sed -e 's/\.\///g' | while read file; do + if [ -d "$file" ]; then + install -d ${my_prefix}/language/"$file" || return 1 + else + install -D "$file" ${my_prefix}/language/"$file" || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + # media + + install -d ${my_prefix}/media || return 1 + pushd ${S}/media/ || return 1 + find . | sed -e 's/\.\///g' | while read file; do + if [ $(echo "$file" | grep "icon.png" -i -c) = 0 -a $(echo "$file" | grep "icon32x32.png" -i -c) = 0 -a $(echo "$file" | grep "xbmc.icns" -i -c) = 0 -a $(echo "$file" | grep "Boxee.ico" -i -c) = 0 -a $(echo "$file" | grep "Splash.png" -i -c) = 0 -a $(echo "$file" | grep "Splash_old.png" -i -c) = 0 -a $(echo "$file" | grep "Fonts/arial.ttf" -i -c) = 0 ]; then + if [ -d "$file" ]; then + install -d ${my_prefix}/media/"$file" || return 1 + else + install -D "$file" ${my_prefix}/media/"$file" || return 1 + fi || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + # scripts + + install -d ${my_prefix}/scripts || return 1 + pushd ${S}/scripts || return 1 + find . | sed -e 's/\.\///g' | while read file; do + if [ $(echo "$file" | grep "scripts.zip" -i -c) = 0 -a $(echo "$file" | grep "user_submitted.zip" -i -c) = 0 -a $(echo "$file" | grep "autoexec.py" -i -c) = 0 ]; then + if [ -d "$file" ]; then + install -d ${my_prefix}/scripts/"$file" || return 1 + else + install -D "$file" ${my_prefix}/scripts/"$file" || return 1 + fi || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + # skin + + install -d ${my_prefix}/skin/boxee || return 1 + pushd ${S}/skin/boxee || return 1 + find . | sed -e 's/\.\///g' | while read file; do + + if [ -d "$file" ]; then + install -d ${my_prefix}/skin/boxee/"$file" || return 1 + else + install -D "$file" ${my_prefix}/skin/boxee/"$file" || return 1 + fi || return 1 + done || return 1 + install -d ${my_prefix}/skin/boxee/media || return 1 + popd || return 1 + + # system + + pushd ${S}/system/python/local || return 1 + popd || return 1 + + install -d ${my_prefix}/system || return 1 + pushd ${S}/system/ || return 1 + find . -path "./python/Lib" -prune -o -print | sed -e 's/\.\///g' | while read file; do + if [ $(echo "$file" | grep "win32" -i -c) = 0 -a $(echo "$file" | grep "spyce" -i -c) = 0 -a $(echo "$file" | grep "DLLs" -i -c) = 0 -a $(echo "$file" | grep "osx" -i -c) = 0 -a $(echo "$file" | grep -e "\.dll$" -i -c) = 0 -a $(echo "$file" | grep -e "\.pyc$" -i -c) = 0 -a $(echo "$file" | grep "xulrunner" -i -c) = 0 -a $(echo "$file" | grep "etc" -i -c) = 0 -a $(echo "$file" | grep "python24.zlib" -i -c) = 0 -a $(echo "$file" | grep "upnpserver.xml" -i -c) = 0 -a $(echo "$file" | grep "IRSSmap.xml" -i -c) = 0 -a $(echo "$file" | grep "X10-Lola-IRSSmap.xml" -i -c) = 0 -a $(echo "$file" | grep "fontconfig_readme" -i -c) = 0 -a $(echo "$file" | grep "libmpeg2-i486-linux.so" -i -c) = 0 -a $(echo "$file" | grep "bxoverride.so" -i -c) = 0 -a $(echo "$file" | grep "readme.txt" -i -c) = 0 -a $(echo "$file" | grep "simplejson/_speedups.so" -i -c) = 0 ]; then + if [ -d "$file" ]; then + install -d ${my_prefix}/system/"$file" || return 1 + else + install -D "$file" ${my_prefix}/system/"$file" || return 1 + fi || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + install -d ${my_prefix}/system/players/flashplayer/${_xulrunner} || return 1 + pushd ${S}/system/players/flashplayer/${_xulrunner} || return 1 + find . | sed -e 's/\.\///g' | while read file; do + if [ -d "$file" ]; then + install -d ${my_prefix}/system/players/flashplayer/${_xulrunner}/"$file" || return 1 + else + install -D "$file" ${my_prefix}/system/players/flashplayer/${_xulrunner}/"$file" || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + install -d ${my_prefix}/system/python/lib || return 1 + pushd ${S}/system/python/Lib || return 1 + + find . | sed -e 's/\.\///g' | while read file; do + if [ $(echo "$file" | grep -e "darwin$" -e "mac$" -i -c) = 0 ]; then + if [ -d "$file" ]; then + install -d ${my_prefix}/system/python/lib/"$file" || return 1 + elif [ ! $(echo "$file" | grep -e "\.pyo$" -i -c) = 0 ]; then + install -D "$file" ${my_prefix}/system/python/lib/"$file" || return 1 + elif [ ! $(echo "$file" | grep -e "\.so$" -i -c) = 0 ]; then + install -D "$file" ${my_prefix}/system/python/lib/"$file" || return 1 + fi || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + rm -rf ${my_prefix}/system/python/lib/plat-darwin || return 1 + rm -rf ${my_prefix}/system/python/lib/plat-mac || return 1 + rmdir ${my_prefix}/system/python/lib/idlelib/Icons || return 1 + rmdir ${my_prefix}/system/python/lib/site-packages || return 1 + + # userdata + + cd ${S}/UserData + mv sources.xml.in.diff.linux sources.xml || die "moving userdata failed!" + mv advancedsettings.xml.in advancedsettings.xml || die "moving userdata failed!" + cd ${S} + insinto ${my_prefix}/UserData + doins -r UserData/{*linux*,advancedsettings.xml,sources.xml} + dosym UserData ${my_prefix}/userdata + + # plugins + + dodir ${my_prefix}/plugins/music + dodir ${my_prefix}/plugins/pictures + dodir ${my_prefix}/plugins/video + + # visualisations + + install -d ${my_prefix}/visualisations/ + pushd ${S}/visualisations/ || return 1 + for i in *; do + if [ -d "$i" ]; then + install -d ${my_prefix}/visualisations/"$i" || return 1 + if [ $(ls "$i" | wc -l) != "0" ]; then + install -D "$i"/* ${my_prefix}/visualisations/"$i"/ || return 1 + fi || return 1 + else + if [ $(echo "$i" | grep "osx" -c) = "0" -a $(echo "$i" | grep "win32" -c) = "0" -a $(echo "$i" | grep "Goom.vis" -c) = "0" -a $(echo "$i" | grep "xbmc_vis.h" -c) = "0" ]; then + install -D "$i" ${my_prefix}/visualisations/ || return 1 + fi || return 1 + fi || return 1 + done || return 1 + popd || return 1 + + # screensavers + insinto ${my_prefix}/screensavers + dodir ${my_prefix}/screensavers + doins -r screensavers/*.xbs + + # rtorrent + dodir ${my_prefix}/bin + exeinto ${my_prefix}/bin + doexe bin-linux/boxee-rtorrent + + # boxee binary + mv run-boxee-desktop.in run-boxee-desktop + exeinto ${my_prefix}/ + doexe Boxee + doexe run-boxee-desktop + + # give_me_my_mouse_back + gcc ${S}/give_me_my_mouse_back.c -o ${S}/give_me_my_mouse_back -lSDL || die "gcc compiling failed!" + insinto ${my_prefix}/ + doexe give_me_my_mouse_back + + # xbmc-xrandr + insinto ${my_prefix}/ + doexe xbmc-xrandr + + # flash plugins + dosym /opt/Adobe/flash-player/libflashplayer.so ${my_prefix}/system/players/flashplayer/${_xulrunner}/bin/plugins/libflashplayer.so + + # freedesktop + insinto /usr/share/applications + doins debian/boxee.desktop + insinto /usr/share/pixmaps + doins debian/boxee.png + +} diff --git a/media-tv/boxee/files/12563_fix.patch b/media-tv/boxee/files/12563_fix.patch new file mode 100644 index 000000000..1f1959ac1 --- /dev/null +++ b/media-tv/boxee/files/12563_fix.patch @@ -0,0 +1,45 @@ +--- ./xbmc/lib/libPython/XBPyPersistentThread.cpp.orig 2010-07-11 03:20:51.000000000 -0700 ++++ ./xbmc/lib/libPython/XBPyPersistentThread.cpp 2010-07-11 03:23:40.000000000 -0700 +@@ -390,42 +390,10 @@ + + void XBPyPersistentThread::CreatePolicy(const ThreadIdentifier threadId) + { +- if (PyEval_ThreadsInitialized()) +- { +- +- // +- // File System policy - read only +- // +- ThreadPolicy *fsPolicy = TPAllocPolicy(threadId, FILE_SYSTEM); +- +- TPAddPolicy(threadId, fsPolicy); +- +- // +- // Shared library policy +- // +- ThreadPolicy *slPolicy = TPAllocPolicy(threadId,SHARED_LIBRARY); +- FileRule rule; +- +- rule.fileName = _P("special://xbmc/system/python"); +- rule.accessMode = FILE_ACCESS_READ; +- +- TPAddRuleToPolicy(threadId, slPolicy, &rule); +- +- TPAddPolicy(threadId, slPolicy); +- +- // +- // ProcessExec policy +- // +- ThreadPolicy *pePolicy = TPAllocPolicy(threadId,PROCESS_EXEC); +- +- TPAddPolicy(threadId, pePolicy); +- +- } + } + + void XBPyPersistentThread::DeletePolicy(const ThreadIdentifier threadId) + { +- TPDeletePolicy(threadId, NULL); + } + + void XBPyPersistentThread::SetSecurityLevel(const CStdString& securityLevel) diff --git a/media-tv/boxee/files/anish.patch b/media-tv/boxee/files/anish.patch new file mode 100644 index 000000000..7bcc1e7fc --- /dev/null +++ b/media-tv/boxee/files/anish.patch @@ -0,0 +1,20 @@ +--- tools/XBMCTex/XFileUtils.cpp.orig 2009-06-24 06:01:25.000000000 -0400 ++++ tools/XBMCTex/XFileUtils.cpp 2009-06-24 06:01:42.000000000 -0400 +@@ -20,6 +20,7 @@ + */ + + #include "system.h" ++#include "XHandle.h" + #include "PlatformInclude.h" + #include "XFileUtils.h" + #include "XTimeUtils.h" +--- configure.in.orig 2010-01-09 13:50:10.000000000 -0800 ++++ configure.in 2010-01-09 13:51:42.000000000 -0800 +@@ -985,7 +985,6 @@ + xbmc/visualizations/OpenGLSpectrum/Makefile \ + xbmc/visualizations/WaveForm/Makefile \ + xbmc/visualizations/iTunes/Makefile \ +- tools/Linux/xbmc.sh \ + tools/TexturePacker/Makefile \ + tools/EventClients/Clients/OSXRemote/Makefile \ + xbmc/cores/paplayer/FLACCodec/Makefile \ diff --git a/media-tv/boxee/files/boxee-0.9.21.11497-fix_Para_py.patch b/media-tv/boxee/files/boxee-0.9.21.11497-fix_Para_py.patch new file mode 100644 index 000000000..fdf040ac6 --- /dev/null +++ b/media-tv/boxee/files/boxee-0.9.21.11497-fix_Para_py.patch @@ -0,0 +1,68 @@ +diff -up boxee-0.9.21.11497-sources/xbmc/lib/libPython/Python/Lib/lib-old/Para.py.fix boxee-0.9.21.11497-sources/system/python/Lib/lib-old/Para.py +--- boxee-0.9.21.11497-sources/xbmc/lib/libPython/Python/Lib/lib-old/Para.py.fix 2010-06-24 20:19:35.116993564 -0400 ++++ boxee-0.9.21.11497-sources/xbmc/lib/libPython/Python/Lib/lib-old/Para.py 2010-06-24 20:21:27.058041001 -0400 +@@ -60,15 +60,15 @@ class Para: + # don't add any new space (but still remove the stretch) + def tabto(self, tab): + total = 0 +- as, de = 1, 0 ++ as_, de = 1, 0 + for i in range(len(self.words)): + word = self.words[i] + if type(word) is Int: continue +- (fo, te, wi, sp, st, as, de) = word +- self.words[i] = (fo, te, wi, sp, 0, as, de) ++ (fo, te, wi, sp, st, as_, de) = word ++ self.words[i] = (fo, te, wi, sp, 0, as_, de) + total = total + wi + sp + if total < tab: +- self.words.append((None, '', 0, tab-total, 0, as, de)) ++ self.words.append((None, '', 0, tab-total, 0, as_, de)) + # + # Make a hanging tag: tab to hang, increment indent_left by hang, + # and reset indent_hang to -hang +@@ -104,7 +104,7 @@ class Para: + break + i = i+1 + continue +- fo, te, wi, sp, st, as, de = word ++ fo, te, wi, sp, st, as_, de = word + if width + wi > avail and width > 0 and wi > 0: + break + if fo is not None: +@@ -116,7 +116,7 @@ class Para: + lsp = sp + stretch = stretch + st + lst = st +- ascent = max(ascent, as) ++ ascent = max(ascent, as_) + descent = max(descent, de) + i = i+1 + while i > j and type(words[i-1]) is Int and \ +@@ -157,7 +157,7 @@ class Para: + h, v) + if ok is not None: return ok + continue +- fo, te, wi, sp, st, as, de = word ++ fo, te, wi, sp, st, as_, de = word + if extra > 0 and stretch > 0: + ex = extra * st / stretch + extra = extra - ex +@@ -253,7 +253,7 @@ class Para: + self.d = None + # + def _whereisword(self, tuple, word, h1, v1, h2, v2, isfirst, islast): +- fo, te, wi, sp, st, as, de = word ++ fo, te, wi, sp, st, as_, de = word + if fo is not None: self.lastfont = fo + h = h1 + if isfirst: h1 = 0 +@@ -302,7 +302,7 @@ class Para: + return ok + # + def _screenposword(self, tuple, word, h1, v1, h2, v2, isfirst, islast): +- fo, te, wi, sp, st, as, de = word ++ fo, te, wi, sp, st, as_, de = word + if fo is not None: self.lastfont = fo + cc = len(te) + (sp > 0) + if self.pos > cc: diff --git a/media-tv/boxee/files/boxee-0.9.21.12563-fix_python_a-include_ThreadPolicy.patch b/media-tv/boxee/files/boxee-0.9.21.12563-fix_python_a-include_ThreadPolicy.patch new file mode 100644 index 000000000..16b62e40f --- /dev/null +++ b/media-tv/boxee/files/boxee-0.9.21.12563-fix_python_a-include_ThreadPolicy.patch @@ -0,0 +1,10 @@ +diff -up boxee-0.9.21.12563-sources/xbmc/lib/libPython/Makefile.fix boxee-0.9.21.12563-sources/xbmc/lib/libPython/Makefile +--- boxee-0.9.21.12563-sources/xbmc/lib/libPython/Makefile.fix 2010-07-11 12:04:10.593024394 -0400 ++++ boxee-0.9.21.12563-sources/xbmc/lib/libPython/Makefile 2010-07-11 12:04:37.264028289 -0400 +@@ -1,5 +1,5 @@ + INCLUDES=-I. -I../../ -I../../linux -I../../../guilib -I../../utils -I. +-SRCS=XBPython.cpp XBPythonDll.cpp XBPyThread.cpp XBPythonDllFuncs.S XBPyPersistentThread.cpp ++SRCS=XBPython.cpp XBPythonDll.cpp XBPyThread.cpp XBPythonDllFuncs.S XBPyPersistentThread.cpp ThreadPolicy.cpp + + LIB=python.a + diff --git a/media-tv/boxee/files/boxee.desktop b/media-tv/boxee/files/boxee.desktop new file mode 100644 index 000000000..9ce909f56 --- /dev/null +++ b/media-tv/boxee/files/boxee.desktop @@ -0,0 +1,10 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Boxee +Comment=Next generation social media player +Exec=/opt/boxee/run-boxee-desktop +Icon=boxee +Terminal=false +Type=Application +Categories=AudioVideo;Video;Player; +StartupNotify=false diff --git a/media-tv/boxee/files/boxee64.patch b/media-tv/boxee/files/boxee64.patch new file mode 100644 index 000000000..3d4986594 --- /dev/null +++ b/media-tv/boxee/files/boxee64.patch @@ -0,0 +1,54 @@ +--- xbmc/FileSystem/FileCurl.cpp.orig 2009-11-23 01:12:07.000000000 -0800 ++++ xbmc/FileSystem/FileCurl.cpp 2010-01-21 13:42:25.000000000 -0800 +@@ -82,14 +82,6 @@ + } + + /* curl calls this routine to get more data */ +-extern "C" size_t dummy_callback(char *buffer, +- size_t size, +- size_t nitems, +- void *userp) +-{ +- return 0; +-} +- + extern "C" size_t write_callback(char *buffer, + size_t size, + size_t nitems, +@@ -281,10 +273,6 @@ + m_fileSize = m_filePos + (int64_t)length; + } + +- char *url = NULL; +- if (CURLE_OK == g_curlInterface.easy_getinfo(m_easyHandle, CURLINFO_EFFECTIVE_URL, (char*)&url)) +- m_strEffectiveUrl = url; +- + long response; + if (CURLE_OK == g_curlInterface.easy_getinfo(m_easyHandle, CURLINFO_RESPONSE_CODE, &response)) + return response; +@@ -959,8 +947,6 @@ + throw new CRedirectException(new CFileShoutcast); + } + +- m_url = m_state->m_strEffectiveUrl; +- + m_multisession = false; + if(m_url.Left(5).Equals("http:") || m_url.Left(6).Equals("https:")) + { +@@ -1137,7 +1123,6 @@ + SetRequestHeaders(m_state); + g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_TIMEOUT, 5); + g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_NOBODY, 0); +- g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_WRITEFUNCTION, (void*)dummy_callback); + g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_FOLLOWLOCATION, 1); + g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_WRITEDATA, (void *)NULL); /* will cause write failure*/ + +@@ -1260,7 +1245,7 @@ + + // only attempt to fill buffer if transactions still running and buffer + // doesnt exceed required size already +- while ((unsigned int)m_buffer.GetMaxReadSize() < want && m_buffer.GetMaxWriteSize() > 0 && !g_application.m_bStop) ++ while ((unsigned int)m_buffer.GetMaxReadSize() < want && m_buffer.GetMaxWriteSize() > 0 ) + { + if (m_cancelled) + return false; diff --git a/media-tv/boxee/files/ffmpeg64.patch b/media-tv/boxee/files/ffmpeg64.patch new file mode 100644 index 000000000..7dfadbf18 --- /dev/null +++ b/media-tv/boxee/files/ffmpeg64.patch @@ -0,0 +1,130 @@ +--- xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/x86/dsputil_mmx.h.orig 2010-02-17 22:37:17.000000000 -0800 ++++ xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/x86/dsputil_mmx.h 2010-02-17 22:41:27.000000000 -0800 +@@ -27,37 +27,37 @@ + + typedef struct { uint64_t a, b; } xmm_reg; + +-extern const uint64_t ff_bone; +-extern const uint64_t ff_wtwo; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_bone; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_wtwo; + +-extern const uint64_t ff_pdw_80000000[2]; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pdw_80000000[2]; + +-extern const uint64_t ff_pw_3; +-extern const uint64_t ff_pw_4; +-extern const xmm_reg ff_pw_5; +-extern const xmm_reg ff_pw_8; +-extern const uint64_t ff_pw_15; +-extern const xmm_reg ff_pw_16; +-extern const uint64_t ff_pw_20; +-extern const xmm_reg ff_pw_28; +-extern const xmm_reg ff_pw_32; +-extern const uint64_t ff_pw_42; +-extern const xmm_reg ff_pw_64; +-extern const uint64_t ff_pw_96; +-extern const uint64_t ff_pw_128; +-extern const uint64_t ff_pw_255; +- +-extern const uint64_t ff_pb_1; +-extern const uint64_t ff_pb_3; +-extern const uint64_t ff_pb_7; +-extern const uint64_t ff_pb_1F; +-extern const uint64_t ff_pb_3F; +-extern const uint64_t ff_pb_81; +-extern const uint64_t ff_pb_A1; +-extern const uint64_t ff_pb_FC; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_3; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_4; ++extern const xmm_reg __attribute__((visibility("hidden"))) ff_pw_5; ++extern const xmm_reg __attribute__((visibility("hidden"))) ff_pw_8; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_15; ++extern const xmm_reg __attribute__((visibility("hidden"))) ff_pw_16; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_20; ++extern const xmm_reg __attribute__((visibility("hidden"))) ff_pw_28; ++extern const xmm_reg __attribute__((visibility("hidden"))) ff_pw_32; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_42; ++extern const xmm_reg __attribute__((visibility("hidden"))) ff_pw_64; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_96; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_128; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pw_255; ++ ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_1; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_3; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_7; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_1F; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_3F; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_81; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_A1; ++extern const uint64_t __attribute__((visibility("hidden"))) ff_pb_FC; + +-extern const double ff_pd_1[2]; +-extern const double ff_pd_2[2]; ++extern const double __attribute__((visibility("hidden"))) ff_pd_1[2]; ++extern const double __attribute__((visibility("hidden"))) ff_pd_2[2]; + + #define LOAD4(stride,in,a,b,c,d)\ + "movq 0*"#stride"+"#in", "#a"\n\t"\ +--- xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/x86/vc1dsp_mmx.c.orig 2010-02-17 22:44:34.000000000 -0800 ++++ xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/x86/vc1dsp_mmx.c 2010-02-17 22:45:31.000000000 -0800 +@@ -73,7 +73,10 @@ + "movq %%mm"#R1", "#OFF"(%1) \n\t" \ + "add %2, %0 \n\t" + +-DECLARE_ALIGNED_16(const uint64_t, ff_pw_9) = 0x0009000900090009ULL; ++#ifndef _ATTR_HIDDEN ++#define _ATTR_HIDDEN __attribute__((visibility("hidden"))) ++#endif ++DECLARE_ALIGNED_16(const uint64_t, _ATTR_HIDDEN ff_pw_9) = 0x0009000900090009ULL; + + /** Sacrifying mm6 allows to pipeline loads from src */ + static void vc1_put_ver_16b_shift2_mmx(int16_t *dst, +--- xbmc/cores/dvdplayer/Codecs/ffmpeg/libswscale/swscale.c.orig 2010-02-17 22:51:41.000000000 -0800 ++++ xbmc/cores/dvdplayer/Codecs/ffmpeg/libswscale/swscale.c 2010-02-17 22:56:00.000000000 -0800 +@@ -221,6 +221,10 @@ + write special BGR->BGR scaler + */ + ++#ifndef _ATTR_HIDDEN ++#define _ATTR_HIDDEN __attribute__((visibility("hidden"))) ++#endif ++ + #if ARCH_X86 && CONFIG_GPL + DECLARE_ASM_CONST(8, uint64_t, bF8)= 0xF8F8F8F8F8F8F8F8LL; + DECLARE_ASM_CONST(8, uint64_t, bFC)= 0xFCFCFCFCFCFCFCFCLL; +@@ -246,22 +250,22 @@ + DECLARE_ASM_CONST(8, uint64_t, g15Mask)= 0x03E003E003E003E0LL; + DECLARE_ASM_CONST(8, uint64_t, r15Mask)= 0x7C007C007C007C00LL; + +-DECLARE_ALIGNED(8, const uint64_t, ff_M24A) = 0x00FF0000FF0000FFLL; +-DECLARE_ALIGNED(8, const uint64_t, ff_M24B) = 0xFF0000FF0000FF00LL; +-DECLARE_ALIGNED(8, const uint64_t, ff_M24C) = 0x0000FF0000FF0000LL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_M24A) = 0x00FF0000FF0000FFLL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_M24B) = 0xFF0000FF0000FF00LL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_M24C) = 0x0000FF0000FF0000LL; + + #ifdef FAST_BGR2YV12 +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2YCoeff) = 0x000000210041000DULL; +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2UCoeff) = 0x0000FFEEFFDC0038ULL; +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2VCoeff) = 0x00000038FFD2FFF8ULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2YCoeff) = 0x000000210041000DULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2UCoeff) = 0x0000FFEEFFDC0038ULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2VCoeff) = 0x00000038FFD2FFF8ULL; + #else +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2YCoeff) = 0x000020E540830C8BULL; +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2UCoeff) = 0x0000ED0FDAC23831ULL; +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2VCoeff) = 0x00003831D0E6F6EAULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2YCoeff) = 0x000020E540830C8BULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2UCoeff) = 0x0000ED0FDAC23831ULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2VCoeff) = 0x00003831D0E6F6EAULL; + #endif /* FAST_BGR2YV12 */ +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2YOffset) = 0x1010101010101010ULL; +-DECLARE_ALIGNED(8, const uint64_t, ff_bgr2UVOffset) = 0x8080808080808080ULL; +-DECLARE_ALIGNED(8, const uint64_t, ff_w1111) = 0x0001000100010001ULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2YOffset) = 0x1010101010101010ULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_bgr2UVOffset) = 0x8080808080808080ULL; ++DECLARE_ALIGNED(8, const uint64_t, _ATTR_HIDDEN ff_w1111) = 0x0001000100010001ULL; + + DECLARE_ASM_CONST(8, uint64_t, ff_bgr24toY1Coeff) = 0x0C88000040870C88ULL; + DECLARE_ASM_CONST(8, uint64_t, ff_bgr24toY2Coeff) = 0x20DE4087000020DEULL; diff --git a/media-tv/boxee/files/flashlib-Makefile.patch b/media-tv/boxee/files/flashlib-Makefile.patch new file mode 100644 index 000000000..66ab9b6fc --- /dev/null +++ b/media-tv/boxee/files/flashlib-Makefile.patch @@ -0,0 +1,14 @@ +diff -uNr Makefile flashlib-shared/Makefile +--- Makefile 1970-01-01 10:00:00.000000000 +1000 ++++ Makefile 2009-04-10 13:26:42.259623543 +1000 +@@ -0,0 +1,10 @@ ++CXXFLAGS= -O2 -D_LINUX @PIC@ ++ ++all: FlashLib-@ARCH@-linux.so ++ ++FlashLib-@ARCH@-linux.so: FlashLib.o FlashClient.o ++ gcc -shared -o FlashLib-@ARCH@-linux.so -Wl,--no-whole-archive FlashLib.o FlashClient.o -Wl ++ ++clean: ++ rm -f *.o FlashLib-@ARCH@-linux.so ++ diff --git a/media-tv/boxee/files/fribidi.patch b/media-tv/boxee/files/fribidi.patch new file mode 100644 index 000000000..0f2c4eb96 --- /dev/null +++ b/media-tv/boxee/files/fribidi.patch @@ -0,0 +1,16 @@ +--- xbmc/utils/ArabicShaping.h.orig 2009-05-03 10:58:25.000000000 -0400 ++++ xbmc/utils/ArabicShaping.h 2009-06-24 00:20:17.000000000 -0400 +@@ -25,11 +25,7 @@ + * + */ + +-#ifndef _LINUX + #include "lib/libfribidi/fribidi.h" +-#else +-#include +-#endif + + /** + * Shapes an Arabic text chunk + + diff --git a/media-tv/boxee/files/libmms.patch b/media-tv/boxee/files/libmms.patch new file mode 100644 index 000000000..1c915c4f7 --- /dev/null +++ b/media-tv/boxee/files/libmms.patch @@ -0,0 +1,10 @@ +--- Makefile.in.orig 2010-11-11 11:50:05.000000000 -0800 ++++ Makefile.in 2010-11-11 11:50:23.000000000 -0800 +@@ -144,6 +144,7 @@ + LIBS += xbmc/lib/libmms/libmms-@ARCH@.a xbmc/lib/libmms/libintl-@ARCH@.a xbmc/lib/libmms/libglib-2.0-@ARCH@.a + else + LIBS += xbmc/lib/libsmb/libsmbclient-@ARCH@.a ++LIBS += -lmms + endif + + .PHONY : dllloader exports visualizations screensavers eventclients papcodecs \ diff --git a/media-tv/boxee/files/libpng.patch b/media-tv/boxee/files/libpng.patch new file mode 100644 index 000000000..c60741c89 --- /dev/null +++ b/media-tv/boxee/files/libpng.patch @@ -0,0 +1,86 @@ +--- xbmc/visualizations/Goom/goom2k4-0/src/pngload.c.orig 2010-02-04 16:58:05.000000000 -0800 ++++ xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2010-02-04 17:09:11.000000000 -0800 +@@ -94,7 +94,7 @@ + png_set_palette_to_rgb (png_ptr); + + if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) +- png_set_gray_1_2_4_to_8 (png_ptr); ++ png_set_expand_gray_1_2_4_to_8 (png_ptr); + else if (color_type == PNG_COLOR_TYPE_GRAY || + color_type == PNG_COLOR_TYPE_GRAY_ALPHA) + png_set_gray_to_rgb (png_ptr); +--- xbmc/screensavers/rsxs-0.9/src/pngimage.cc.orig 2010-02-04 16:56:46.000000000 -0800 ++++ xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2010-02-04 17:09:11.000000000 -0800 +@@ -65,7 +65,7 @@ + (png_get_color_type(png, pngInfo) == PNG_COLOR_TYPE_GRAY) && + png_get_bit_depth(png, pngInfo) < 8 + ) +- png_set_gray_1_2_4_to_8(png); ++ png_set_expand_gray_1_2_4_to_8(png); + if (png_get_valid(png, pngInfo, PNG_INFO_tRNS)) + png_set_tRNS_to_alpha(png); + if (fullColor) +--- xbmc/lib/cximage-6.0/CxImage/ximapng.cpp.orig 2010-02-04 16:52:27.000000000 -0800 ++++ xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2010-02-04 17:27:34.000000000 -0800 +@@ -144,9 +144,9 @@ + if (info_ptr->num_trans!=0){ //palette transparency + if (info_ptr->num_trans==1){ + if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE){ +- info.nBkgndIndex = info_ptr->trans_values.index; ++ info.nBkgndIndex = info_ptr->trans_color.index; + } else{ +- info.nBkgndIndex = info_ptr->trans_values.gray>>nshift; ++ info.nBkgndIndex = info_ptr->trans_color.gray>>nshift; + } + } + if (info_ptr->num_trans>1){ +@@ -154,7 +154,7 @@ + if (pal){ + DWORD ip; + for (ip=0;ipnum_trans);ip++) +- pal[ip].rgbReserved=info_ptr->trans[ip]; ++ pal[ip].rgbReserved=info_ptr->trans_alpha[ip]; + for (ip=info_ptr->num_trans;iptrans_values.red>>nshift); +- info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_values.green>>nshift); +- info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_values.blue>>nshift); ++ info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_color.red>>nshift); ++ info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_color.green>>nshift); ++ info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_color.blue>>nshift); + info.nBkgndColor.rgbReserved = 0; + info.nBkgndIndex = 0; + } +@@ -421,12 +421,12 @@ + if (info.nBkgndIndex >= 0){ + info_ptr->num_trans = 1; + info_ptr->valid |= PNG_INFO_tRNS; +- info_ptr->trans = trans; +- info_ptr->trans_values.index = (BYTE)info.nBkgndIndex; +- info_ptr->trans_values.red = tc.rgbRed; +- info_ptr->trans_values.green = tc.rgbGreen; +- info_ptr->trans_values.blue = tc.rgbBlue; +- info_ptr->trans_values.gray = info_ptr->trans_values.index; ++ info_ptr->trans_alpha = trans; ++ info_ptr->trans_color.index = (BYTE)info.nBkgndIndex; ++ info_ptr->trans_color.red = tc.rgbRed; ++ info_ptr->trans_color.green = tc.rgbGreen; ++ info_ptr->trans_color.blue = tc.rgbBlue; ++ info_ptr->trans_color.gray = info_ptr->trans_color.index; + + // the transparency indexes start from 0 for non grayscale palette + if (!bGrayScale && head.biClrUsed && info.nBkgndIndex) +@@ -447,7 +447,7 @@ + trans[ip]=GetPaletteColor((BYTE)ip).rgbReserved; + info_ptr->num_trans = (WORD)nc; + info_ptr->valid |= PNG_INFO_tRNS; +- info_ptr->trans = trans; ++ info_ptr->trans_alpha = trans; + } + + // copy the palette colors