From: Steve Dibb Date: Tue, 30 Jan 2007 15:26:30 +0000 (+0000) Subject: Add asmrules security patch from upstream, bug 159727 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=adf96b1e87ea0006a2311e52fd3cccb22f507f4a;p=gentoo.git Add asmrules security patch from upstream, bug 159727 Package-Manager: portage-2.1.1-r2 --- diff --git a/media-video/mplayer/ChangeLog b/media-video/mplayer/ChangeLog index 4d2cc1185399..153685a94b3a 100644 --- a/media-video/mplayer/ChangeLog +++ b/media-video/mplayer/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for media-video/mplayer # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/ChangeLog,v 1.449 2007/01/30 15:22:24 beandog Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/ChangeLog,v 1.450 2007/01/30 15:26:30 beandog Exp $ + +*mplayer-1.0_rc1-r2 (30 Jan 2007) + + 30 Jan 2007; Steve Dibb + +files/mplayer-1.0_rc1-asmrules.patch, +mplayer-1.0_rc1-r2.ebuild: + Add asmrules security patch from upstream, bug 159727 30 Jan 2007; Steve Dibb mplayer-1.0_rc1.ebuild, mplayer-1.0_rc1-r1.ebuild: diff --git a/media-video/mplayer/Manifest b/media-video/mplayer/Manifest index 9b1920e6ef10..bf41276071e0 100644 --- a/media-video/mplayer/Manifest +++ b/media-video/mplayer/Manifest @@ -2,6 +2,10 @@ AUX mplayer-1.0_pre8-amr-64bit.patch 1438 RMD160 c0848ae29590b5cc011d252798115cc MD5 7c7e0313f90c399e78c4496b07bb5f82 files/mplayer-1.0_pre8-amr-64bit.patch 1438 RMD160 c0848ae29590b5cc011d252798115cc66af37335 files/mplayer-1.0_pre8-amr-64bit.patch 1438 SHA256 7bcc9351707571a80c6a8c52381ad8f3f980e2e570091196df61880d019c9d51 files/mplayer-1.0_pre8-amr-64bit.patch 1438 +AUX mplayer-1.0_rc1-asmrules.patch 1450 RMD160 370877b45b314c9deb2d89739f8067a4a77c0844 SHA1 84412f4bd85d64a92586ca4db7e8585d16cd1acd SHA256 3f71e6f4e07940d4d55084d0df12404371bc4e534a3a6b0756ca73e44ddbc3c4 +MD5 f0b71c38b1207c1d604be091876ac051 files/mplayer-1.0_rc1-asmrules.patch 1450 +RMD160 370877b45b314c9deb2d89739f8067a4a77c0844 files/mplayer-1.0_rc1-asmrules.patch 1450 +SHA256 3f71e6f4e07940d4d55084d0df12404371bc4e534a3a6b0756ca73e44ddbc3c4 files/mplayer-1.0_rc1-asmrules.patch 1450 AUX mplayer-undefined-reference-fix.patch 316 RMD160 cbbcc1df4e0011f12baffdbae3ec6037123e628e SHA1 63a8b250a9e3e929549f10786000daf5fab9bc3a SHA256 1b7004af914727c1710602dfef3dd2828896f5d4f309c1742ee0dcbd1989b346 MD5 04bb7e15784fc0b9898526d873bc1ba9 files/mplayer-undefined-reference-fix.patch 316 RMD160 cbbcc1df4e0011f12baffdbae3ec6037123e628e files/mplayer-undefined-reference-fix.patch 316 @@ -32,14 +36,18 @@ EBUILD mplayer-1.0_rc1-r1.ebuild 16332 RMD160 99da3d3b626543cd23139faf14b780bc2a MD5 2f4cf5ba1c04096a4921859b68751d7c mplayer-1.0_rc1-r1.ebuild 16332 RMD160 99da3d3b626543cd23139faf14b780bc2af1059d mplayer-1.0_rc1-r1.ebuild 16332 SHA256 c38f64c84941009f1f7f554cd41af1890cff0c9766f4ac38c19b10d50f9545ea mplayer-1.0_rc1-r1.ebuild 16332 +EBUILD mplayer-1.0_rc1-r2.ebuild 16389 RMD160 91f9750675c495a415d3c3dc776ffba5cba894a0 SHA1 218efab757dfec82af48710143c92c23f9a7a072 SHA256 04c9f2a5c6a72097d1abbe4660eb0ce12923133e0916b33bd14acbef4ff37c89 +MD5 d149f738a98768473a0154692a5a5585 mplayer-1.0_rc1-r2.ebuild 16389 +RMD160 91f9750675c495a415d3c3dc776ffba5cba894a0 mplayer-1.0_rc1-r2.ebuild 16389 +SHA256 04c9f2a5c6a72097d1abbe4660eb0ce12923133e0916b33bd14acbef4ff37c89 mplayer-1.0_rc1-r2.ebuild 16389 EBUILD mplayer-1.0_rc1.ebuild 16213 RMD160 08007c60a53f8795dcd5b640c89c9984ba7a658a SHA1 434154dca4ed96fd77fa66f9c0980fe10d285d12 SHA256 24dbfab9f02f2cd47dae7bc66a96c5c2594766a9c557b3f0ac10ae1cd6709e63 MD5 81ec348dcd18d9fc78f3993272cf2f97 mplayer-1.0_rc1.ebuild 16213 RMD160 08007c60a53f8795dcd5b640c89c9984ba7a658a mplayer-1.0_rc1.ebuild 16213 SHA256 24dbfab9f02f2cd47dae7bc66a96c5c2594766a9c557b3f0ac10ae1cd6709e63 mplayer-1.0_rc1.ebuild 16213 -MISC ChangeLog 80412 RMD160 f4191481e971874823cb86bbed74130cb6991b3f SHA1 3b8caed8b7cf1087dd6bb568b18c24a465844073 SHA256 0b316e584596b60c43d46342a78b437a47f4e4d5a12b193fb99b2c9f86cac15b -MD5 523133eeed6a85ec040d4f07e4540638 ChangeLog 80412 -RMD160 f4191481e971874823cb86bbed74130cb6991b3f ChangeLog 80412 -SHA256 0b316e584596b60c43d46342a78b437a47f4e4d5a12b193fb99b2c9f86cac15b ChangeLog 80412 +MISC ChangeLog 80620 RMD160 b7f33a5db1e82b912d958aaf40f0d4b1fe91ad1d SHA1 d0dde9ce1ace003d5612555cb4e36e927a89f5ef SHA256 98045b69ba26ab21cbeb4c75172f9bd7d14be3ea96d60de5705d8456025d596d +MD5 efe359b502f02b50fc073e02ab34c0d4 ChangeLog 80620 +RMD160 b7f33a5db1e82b912d958aaf40f0d4b1fe91ad1d ChangeLog 80620 +SHA256 98045b69ba26ab21cbeb4c75172f9bd7d14be3ea96d60de5705d8456025d596d ChangeLog 80620 MISC metadata.xml 223 RMD160 86b42c49b694db39ddb3fdc60b98a3ad1a0c3392 SHA1 ea8c387229caaf4b0d3c9fbef9143b70dcae0b0d SHA256 dd48e823ec9a151bc3611121402ed26ee24eb3304aa62870b1e875a8fa0ac812 MD5 0338bfb24d7bfb6450aac4dd025c0096 metadata.xml 223 RMD160 86b42c49b694db39ddb3fdc60b98a3ad1a0c3392 metadata.xml 223 @@ -56,3 +64,6 @@ SHA256 b0f6ba62381548cffb2eb17179cdb5927605e273c5d5b834b225cff495e9136a files/di MD5 d7bbbcb7a88505edca78e82546995d4f files/digest-mplayer-1.0_rc1-r1 1997 RMD160 95a72a90b4c19fc9063c6fab3bdb9647c6c5686f files/digest-mplayer-1.0_rc1-r1 1997 SHA256 b0f6ba62381548cffb2eb17179cdb5927605e273c5d5b834b225cff495e9136a files/digest-mplayer-1.0_rc1-r1 1997 +MD5 d7bbbcb7a88505edca78e82546995d4f files/digest-mplayer-1.0_rc1-r2 1997 +RMD160 95a72a90b4c19fc9063c6fab3bdb9647c6c5686f files/digest-mplayer-1.0_rc1-r2 1997 +SHA256 b0f6ba62381548cffb2eb17179cdb5927605e273c5d5b834b225cff495e9136a files/digest-mplayer-1.0_rc1-r2 1997 diff --git a/media-video/mplayer/files/digest-mplayer-1.0_rc1-r2 b/media-video/mplayer/files/digest-mplayer-1.0_rc1-r2 new file mode 100644 index 000000000000..d6cc6192bc71 --- /dev/null +++ b/media-video/mplayer/files/digest-mplayer-1.0_rc1-r2 @@ -0,0 +1,24 @@ +MD5 9b575d01f94f50dd4dcf570cd8a14dda 26104-510.zip 291836 +RMD160 0ff97a27fe5d08dd43571fd1982ce0f07bce3bca 26104-510.zip 291836 +SHA256 75fdf6416950c155ccbfd7fae4ffd6529f162ad6b427ab242c3e00685e303f46 26104-510.zip 291836 +MD5 607a14d090898ffb0f72c1aa6aa6ce31 26204-510.zip 246663 +RMD160 1b68232bc40d84298b134c57697e29a842e63ffd 26204-510.zip 246663 +SHA256 069ebd6ed8ef846d99bdd13d6c47fdb99fe5583b0ed5f405e1392a1a21a1b991 26204-510.zip 246663 +MD5 e4e2020d11b681aac898103b3ba723c4 Blue-1.7.tar.bz2 222567 +RMD160 1f8c539ccadc54eea5e6678839bcc8ae1e16e6eb Blue-1.7.tar.bz2 222567 +SHA256 8bcd39a5755c44df778ebca3119c922347abfdadb101dcef011ce2566c1fb1d8 Blue-1.7.tar.bz2 222567 +MD5 18c05d88e22c3b815a43ca8d7152ccdc MPlayer-1.0rc1.tar.bz2 8414213 +RMD160 8cea02e832aec5d9e090829d61d0f131dcc177a2 MPlayer-1.0rc1.tar.bz2 8414213 +SHA256 8dd9dd61a0fe56904f5b76ddedb99bd359abaaf486e0b83b45e3357fecc81063 MPlayer-1.0rc1.tar.bz2 8414213 +MD5 d0afd83cd04c29a714a62b427aace5c5 font-arial-cp1250.tar.bz2 249705 +RMD160 a2fc7ae07b0d80936ea58e168e1047efccb9eb91 font-arial-cp1250.tar.bz2 249705 +SHA256 423a07e780bb130cd8e4730715545c5d919c248dda595aab7a0a01de3c83fd12 font-arial-cp1250.tar.bz2 249705 +MD5 1ecd31d17b51f16332b1fcc7da36b312 font-arial-iso-8859-1.tar.bz2 234242 +RMD160 666697cd5efd9387057a898c714175e7c2aacbcd font-arial-iso-8859-1.tar.bz2 234242 +SHA256 9730f481764f367c9089d0166fb6ccf9148808ffbbfeca635cf0e6db75765d29 font-arial-iso-8859-1.tar.bz2 234242 +MD5 7b47904a925cf58ea546ca15f3df160c font-arial-iso-8859-2.tar.bz2 222208 +RMD160 562d4d92c4f5f3d537340fde3ad8d1495ac41acb font-arial-iso-8859-2.tar.bz2 222208 +SHA256 71debfc960007c2f6242dfc91e8b1c005b30a99e129aeb00ab8c03f4371b41c1 font-arial-iso-8859-2.tar.bz2 222208 +MD5 3f1b9eb2ba639bf42c61f7b9189f6524 svgalib_helper-1.9.17-mplayer.tar.bz2 7234 +RMD160 e0c4ae039478732404dd743e250e1061cc9cf0a4 svgalib_helper-1.9.17-mplayer.tar.bz2 7234 +SHA256 016edd27d74b5c66481ddb4563c961fbb579e3a95dd846cc857a639df09999e5 svgalib_helper-1.9.17-mplayer.tar.bz2 7234 diff --git a/media-video/mplayer/files/mplayer-1.0_rc1-asmrules.patch b/media-video/mplayer/files/mplayer-1.0_rc1-asmrules.patch new file mode 100644 index 000000000000..87bab25ce131 --- /dev/null +++ b/media-video/mplayer/files/mplayer-1.0_rc1-asmrules.patch @@ -0,0 +1,51 @@ +Index: stream/realrtsp/asmrp.c +=================================================================== +--- stream/realrtsp/asmrp.c (revision 20381) ++++ stream/realrtsp/asmrp.c (working copy) +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include "asmrp.h" + + /* + #define LOG +@@ -645,8 +646,10 @@ + #ifdef LOG + printf ("rule #%d is true\n", rule_num); + #endif +- matches[num_matches] = rule_num; +- num_matches++; ++ if(num_matches < MAX_RULEMATCHES - 1) ++ matches[num_matches++] = rule_num; ++ else ++ printf("Ignoring matched asm rule %d, too many matched rules.\n", rule_num); + } + + rule_num++; +Index: stream/realrtsp/real.c +=================================================================== +--- stream/realrtsp/real.c (revision 20381) ++++ stream/realrtsp/real.c (working copy) +@@ -271,7 +271,7 @@ + int j=0; + int n; + char b[64]; +- int rulematches[16]; ++ int rulematches[MAX_RULEMATCHES]; + + #ifdef LOG + printf("calling asmrp_match with:\n%s\n%u\n", desc->stream[i]->asm_rule_book, bandwidth); +Index: stream/realrtsp/asmrp.h +=================================================================== +--- stream/realrtsp/asmrp.h (revision 20381) ++++ stream/realrtsp/asmrp.h (working copy) +@@ -40,6 +40,8 @@ + #ifndef HAVE_ASMRP_H + #define HAVE_ASMRP_H + ++#define MAX_RULEMATCHES 16 ++ + int asmrp_match (const char *rules, int bandwidth, int *matches) ; + + #endif diff --git a/media-video/mplayer/mplayer-1.0_rc1-r2.ebuild b/media-video/mplayer/mplayer-1.0_rc1-r2.ebuild new file mode 100644 index 000000000000..8cc42d687d44 --- /dev/null +++ b/media-video/mplayer/mplayer-1.0_rc1-r2.ebuild @@ -0,0 +1,576 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/mplayer-1.0_rc1-r2.ebuild,v 1.1 2007/01/30 15:26:30 beandog Exp $ + +inherit eutils flag-o-matic + +RESTRICT="nostrip" +IUSE="3dfx 3dnow 3dnowext aac aalib alsa altivec amr arts bidi bl bindist +cpudetection custom-cflags debug dga doc dts dvb cdparanoia directfb dvd +dv dvdread enca encode esd fbcon gif ggi gtk iconv ipv6 jack joystick jpeg +libcaca lirc live livecd lzo mad matrox mmx mmxext musepack nas unicode +vorbis opengl openal oss png real rtc samba sdl speex sse sse2 svga tga +theora truetype v4l v4l2 win32codecs X x264 xanim xinerama xv xvid xvmc" + +LANGS="bg cs de da el en es fr hu ja ko mk nl no pl pt_BR ro ru sk tr uk zh_CN +zh_TW" + +for X in ${LANGS} ; do + IUSE="${IUSE} linguas_${X}" +done + +BLUV=1.7 +SVGV=1.9.17 + +# Handle PREversions as wel +MY_P="MPlayer-${PV/_/}" +S="${WORKDIR}/${MY_P}" +AMR_URI="http://www.3gpp.org/ftp/Specs/archive" +SRC_URI="mirror://mplayer/releases/${MY_P}.tar.bz2 + !truetype? ( mirror://mplayer/releases/fonts/font-arial-iso-8859-1.tar.bz2 + mirror://mplayer/releases/fonts/font-arial-iso-8859-2.tar.bz2 + mirror://mplayer/releases/fonts/font-arial-cp1250.tar.bz2 ) + !iconv? ( mirror://mplayer/releases/fonts/font-arial-iso-8859-1.tar.bz2 + mirror://mplayer/releases/fonts/font-arial-iso-8859-2.tar.bz2 + mirror://mplayer/releases/fonts/font-arial-cp1250.tar.bz2 ) + svga? ( http://mplayerhq.hu/~alex/svgalib_helper-${SVGV}-mplayer.tar.bz2 ) + gtk? ( mirror://mplayer/Skin/Blue-${BLUV}.tar.bz2 ) + amr? ( ${AMR_URI}/26_series/26.104/26104-510.zip + ${AMR_URI}/26_series/26.204/26204-510.zip )" + +# Only install Skin if GUI should be build (gtk as USE flag) +DESCRIPTION="Media Player for Linux " +HOMEPAGE="http://www.mplayerhq.hu/" + +# 'encode' in USE for MEncoder. +RDEPEND="xvid? ( >=media-libs/xvid-0.9.0 ) + win32codecs? ( + !livecd? ( + !bindist? ( >=media-libs/win32codecs-20040916 ) ) ) + x86? ( real? ( >=media-video/realplayer-10.0.3 ) ) + amd64? ( real? ( media-libs/amd64codecs ) ) + aalib? ( media-libs/aalib ) + alsa? ( media-libs/alsa-lib ) + arts? ( kde-base/arts ) + openal? ( media-libs/openal ) + bidi? ( dev-libs/fribidi ) + cdparanoia? ( media-sound/cdparanoia ) + dga? ( x11-libs/libXxf86dga ) + directfb? ( dev-libs/DirectFB ) + dts? ( media-libs/libdts ) + dvb? ( media-tv/linuxtv-dvb-headers ) + dvd? ( dvdread? ( media-libs/libdvdread ) ) + encode? ( + media-sound/lame + dv? ( >=media-libs/libdv-0.9.5 ) + x264? ( >=media-libs/x264-svn-20061014 ) + aac? ( media-libs/faac ) + ) + esd? ( media-sound/esound ) + enca? ( app-i18n/enca ) + gif? ( media-libs/giflib ) + ggi? ( media-libs/libggi ) + gtk? ( media-libs/libpng + x11-libs/libXxf86vm + x11-libs/libXext + x11-libs/libXi + =x11-libs/gtk+-2* + =dev-libs/glib-2* ) + jpeg? ( media-libs/jpeg ) + libcaca? ( media-libs/libcaca ) + lirc? ( app-misc/lirc ) + lzo? ( =dev-libs/lzo-1* ) + mad? ( media-libs/libmad ) + musepack? ( >=media-libs/libmpcdec-1.2.2 ) + nas? ( media-libs/nas ) + opengl? ( virtual/opengl ) + png? ( media-libs/libpng ) + samba? ( >=net-fs/samba-2.2.8a ) + sdl? ( media-libs/libsdl ) + speex? ( media-libs/speex ) + svga? ( media-libs/svgalib ) + theora? ( media-libs/libtheora ) + live? ( >=media-plugins/live-2004.07.20 ) + truetype? ( >=media-libs/freetype-2.1 + media-libs/fontconfig ) + xinerama? ( x11-libs/libXinerama + x11-libs/libXxf86vm + x11-libs/libXext ) + xanim? ( >=media-video/xanim-2.80.1-r4 ) + sys-libs/ncurses + xv? ( x11-libs/libXv + x11-libs/libXxf86vm + x11-libs/libXext + xvmc? ( x11-libs/libXvMC ) ) + X? ( x11-libs/libXxf86vm + x11-libs/libXext ) + " + +DEPEND="${RDEPEND} + app-arch/unzip + doc? ( >=app-text/docbook-sgml-dtd-4.1.2 + app-text/docbook-xml-dtd + >=app-text/docbook-xml-simple-dtd-1.50.0 + dev-libs/libxslt + ) + dga? ( x11-proto/xf86dgaproto ) + xinerama? ( x11-proto/xineramaproto ) + xv? ( x11-proto/videoproto + x11-proto/xf86vidmodeproto ) + gtk? ( x11-proto/xextproto + x11-proto/xf86vidmodeproto ) + X? ( x11-proto/xextproto + x11-proto/xf86vidmodeproto ) + iconv? ( virtual/libiconv )" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" + +pkg_setup() { + if use real && use x86; then + REALLIBDIR="/opt/RealPlayer/codecs" + elif use real && use amd64; then + REALLIBDIR="/usr/lib64/codecs" + fi + + if use truetype && ! use iconv ; then + ewarn "You enabled the 'truetype' USE flag, but support will be" + ewarn "disabled unless you also use 'iconv'." + fi +} + +src_unpack() { + + unpack ${MY_P}.tar.bz2 + + if ! use truetype || ! use iconv ; then + unpack font-arial-iso-8859-1.tar.bz2 \ + font-arial-iso-8859-2.tar.bz2 \ + font-arial-cp1250.tar.bz2 + fi + + use svga && unpack svgalib_helper-${SVGV}-mplayer.tar.bz2 + + use gtk && unpack Blue-${BLUV}.tar.bz2 + + use amr && unpack 26104-510.zip && unpack 26204-510.zip + + # amr (float) support + if use amr; then + einfo "Including amr wide and narrow band (float) support ... " + + # narrow band codec + mkdir ${S}/libavcodec/amr_float + cd ${S}/libavcodec/amr_float + unzip -q ${WORKDIR}/26104-510_ANSI_C_source_code.zip + # wide band codec + mkdir ${S}/libavcodec/amrwb_float + cd ${S}/libavcodec/amrwb_float + unzip -q ${WORKDIR}/26204-510_ANSI-C_source_code.zip + fi + + cd ${S} + + epatch "${FILESDIR}/mplayer-undefined-reference-fix.patch" + + # DSA 1244-1 + epatch "${FILESDIR}/${P}-asmrules.patch" + + # Fix hppa compilation + [ "${ARCH}" = "hppa" ] && sed -i -e "s/-O4/-O1/" "${S}/configure" + + if use svga + then + echo + einfo "Enabling vidix non-root mode." + einfo "(You need a proper svgalib_helper.o module for your kernel" + einfo " to actually use this)" + echo + + mv ${WORKDIR}/svgalib_helper ${S}/libdha + fi + + # Remove kernel-2.6 workaround as the problem it works around is + # fixed, and the workaround breaks sparc + use sparc && sed -i 's:#define __KERNEL__::' osdep/kerneltwosix.h + + # minor fix + sed -i -e "s:-O4:-O4 -D__STDC_LIMIT_MACROS:" configure + +} + +src_compile() { + + # have fun with LINGUAS variable + [[ -n $LINGUAS ]] && LINGUAS=${LINGUAS//da/dk} + + local myconf=" --disable-tv-bsdbt848 --disable-dvdnav" + myconf="${myconf} --disable-vidix-external" + ################ + #Optional features# + ############### + if use cpudetection || use livecd || use bindist + then + myconf="${myconf} --enable-runtime-cpudetection" + fi + + myconf="${myconf} $(use_enable bidi fribidi)" + + if use iconv + then + use unicode && myconf="${myconf} --charset=UTF-8" + else + myconf="${myconf} --disable-iconv" + myconf="${myconf} --charset=noconv" + fi + + use enca || myconf="${myconf} --disable-enca" + + use cdparanoia || myconf="${myconf} --disable-cdparanoia" + + if use dvd + then + use dvdread && myconf="${myconf} --disable-mpdvdkit" + use dvdread || myconf="${myconf} --disable-dvdread" + else + myconf="${myconf} --disable-dvdread --disable-mpdvdkit" + fi + + if use encode + then + myconf="${myconf} --enable-mencoder" + use dv || myconf="${myconf} --disable-libdv" + use x264 || myconf="${myconf} --disable-x264" + use aac || myconf="${myconf} --disable-faac" + else + myconf="${myconf} --disable-mencoder --disable-libdv --disable-x264 + --disable-faac" + fi + + myconf="${myconf} $(use_enable gtk gui)" + + if use !gtk && use !X && use !xv && use !xinerama + then + myconf="${myconf} --disable-gui --disable-x11 --disable-xv --disable-xmga --disable-xinerama --disable-vm --disable-xvmc" + else + #note we ain't touching --enable-vm. That should be locked down in the future. + myconf="${myconf} --enable-x11 $(use_enable xinerama) $(use_enable xv) $(use_enable gtk gui)" + fi + + # this looks like a hack, but the + # --enable-dga needs a paramter, but there's no surefire + # way to tell what it is.. so I'm letting MPlayer decide + # the enable part + if ! use dga && ! use 3dfx + then + myconf="${myconf} --disable-dga" + fi + # disable png *only* if gtk && png aren't on + if use png || use gtk + then + myconf="${myconf} --enable-png" + else + myconf="${myconf} --disable-png" + fi + + # disable PVR support + # The build will break if you have media-tv/ivtv installed and + # linux-headers != 2.6.18, which is currently not keyworded + myconf="${myconf} --disable-pvr" + + myconf="${myconf} $(use_enable ipv6 inet6)" + myconf="${myconf} $(use_enable joystick)" + myconf="${myconf} $(use_enable lirc)" + myconf="${myconf} $(use_enable rtc)" + myconf="${myconf} $(use_enable samba smb)" + myconf="${myconf} $(use_enable truetype freetype)" + use live || myconf="${myconf} --disable-live" + use v4l || myconf="${myconf} --disable-tv-v4l1" + use v4l2 || myconf="${myconf} --disable-tv-v4l2" + use jack || myconf="${myconf} --disable-jack" + + ######### + # Codecs # + ######## + myconf="${myconf} $(use_enable gif)" + myconf="${myconf} $(use_enable jpeg)" + #myconf="${myconf} $(use_enable ladspa)" + myconf="${myconf} $(use_enable dts libdts)" + myconf="${myconf} $(use_enable lzo liblzo)" + myconf="${myconf} $(use_enable musepack)" + myconf="${myconf} $(use_enable aac faad-internal)" + use vorbis || myconf="${myconf} --disable-libvorbis" + myconf="${myconf} $(use_enable theora)" + use speex || myconf="${myconf} --disable-speex" + myconf="${myconf} $(use_enable xvid)" + use x86 && myconf="${myconf} $(use_enable real)" + ! use livecd && ! use bindist && \ + myconf="${myconf} $(use_enable win32codecs win32)" + + ############# + # Video Output # + ############# + myconf="${myconf} $(use_enable 3dfx)" + if use 3dfx + then + myconf="${myconf} --enable-tdfxvid" + else + myconf="${myconf} --disable-tdfxvid" + fi + if use fbcon && use 3dfx + then + myconf="${myconf} --enable-tdfxfb" + else + myconf="${myconf} --disable-tdfxfb" + fi + + if use dvb + then + myconf="${myconf} --enable-dvbhead" + else + myconf="${myconf} --disable-dvbhead" + fi + + use aalib || myconf="${myconf} --disable-aa" + myconf="${myconf} $(use_enable directfb)" + myconf="${myconf} $(use_enable fbcon fbdev)" + myconf="${myconf} $(use_enable ggi)" + myconf="${myconf} $(use_enable libcaca caca)" + if use matrox && use X + then + myconf="${myconf} $(use_enable matrox xmga)" + fi + myconf="${myconf} $(use_enable matrox mga)" + myconf="${myconf} $(use_enable opengl gl)" + myconf="${myconf} $(use_enable sdl)" + + if use svga + then + myconf="${myconf} --enable-svga" + else + myconf="${myconf} --disable-svga --disable-vidix-internal" + fi + + myconf="${myconf} $(use_enable tga)" + + if use xv && use xvmc + then + myconf="${myconf} --enable-xvmc --with-xvmclib=XvMCW" + else + myconf="${myconf} --disable-xvmc" + fi + + ############# + # Audio Output # + ############# + use alsa || myconf="${myconf} --disable-alsa" + use arts || myconf="${myconf} --disable-arts" + use esd || myconf="${myconf} --disable-esd" + use mad || myconf="${myconf} --disable-mad" + use nas || myconf="${myconf} --disable-nas" + use openal || myconf="${myconf} --disable-openal" + use oss || myconf="${myconf} --disable-ossaudio" + + ################# + # Advanced Options # + ################# + # Platform specific flags, hardcoded on amd64 (see below) + myconf="${myconf} $(use_enable 3dnow)" + myconf="${myconf} $(use_enable 3dnowext)"; + use x86 && myconf="${myconf} $(use_enable sse)" + use x86 && myconf="${myconf} $(use_enable sse2)" + use x86 && myconf="${myconf} $(use_enable mmx)" + myconf="${myconf} $(use_enable mmxext)" + use debug && myconf="${myconf} --enable-debug=3" + + # mplayer now contains SIMD assembler code for amd64 + # AMD64 Team decided to hardenable SIMD assembler for all users + # Danny van Dyk 2005/01/11 + if use amd64; then + myconf="${myconf} --enable-sse --enable-sse2 --enable-mmx" + fi + + if use ppc64 + then + myconf="${myconf} --disable-altivec" + else + myconf="${myconf} $(use_enable altivec)" + use altivec && append-flags -maltivec -mabi=altivec + fi + + + if use xanim + then + myconf="${myconf} --with-xanimlibdir=/usr/lib/xanim/mods" + fi + + if [ -e /dev/.devfsd ] + then + myconf="${myconf} --enable-linux-devfs" + fi + + # support for blinkenlights + use bl && myconf="${myconf} --enable-bl" + + #leave this in place till the configure/compilation borkage is completely corrected back to pre4-r4 levels. + # it's intended for debugging so we can get the options we configure mplayer w/, rather then hunt about. + # it *will* be removed asap; in the meantime, doesn't hurt anything. + echo "${myconf}" > ${T}/configure-options + + if use custom-cflags + then + # let's play the filtration game! MPlayer hates on all! + strip-flags + # ugly optimizations cause MPlayer to cry on x86 systems! + if use x86 ; then + replace-flags -O* -O2 + filter-flags -fPIC -fPIE + use debug || append-flags -fomit-frame-pointer + fi + append-flags -D__STDC_LIMIT_MACROS + else + unset CFLAGS CXXFLAGS + fi + + CFLAGS="$CFLAGS" ./configure \ + "--cc=$(tc-getCC)" "--host-cc=$(tc-getBUILD_CC)" \ + --prefix=/usr \ + --confdir=/usr/share/mplayer \ + --datadir=/usr/share/mplayer \ + --enable-largefiles \ + --enable-menu \ + --enable-network --enable-ftp \ + --with-reallibdir=${REALLIBDIR} \ + --disable-faad-external \ + ${myconf} || die + + # we run into problems if -jN > -j1 + # see #86245 + MAKEOPTS="${MAKEOPTS} -j1" + + einfo "Make" + emake || die "Failed to build MPlayer!" + use doc && make -C DOCS/xml html-chunked + einfo "Make completed" +} + +src_install() { + + einfo "Make install" + make prefix=${D}/usr \ + BINDIR=${D}/usr/bin \ + LIBDIR=${D}/usr/$(get_libdir) \ + CONFDIR=${D}/usr/share/mplayer \ + DATADIR=${D}/usr/share/mplayer \ + MANDIR=${D}/usr/share/man \ + install || die "Failed to install MPlayer!" + einfo "Make install completed" + + dodoc AUTHORS ChangeLog README + # Install the documentation; DOCS is all mixed up not just html + if use doc ; then + find "${S}/DOCS" -type d | xargs -- chmod 0755 + find "${S}/DOCS" -type f | xargs -- chmod 0644 + cp -r "${S}/DOCS" "${D}/usr/share/doc/${PF}/" || die + fi + + # Copy misc tools to documentation path, as they're not installed directly + # and yes, we are nuking the +x bit. + find "${S}/TOOLS" -type d | xargs -- chmod 0755 + find "${S}/TOOLS" -type f | xargs -- chmod 0644 + cp -r "${S}/TOOLS" "${D}/usr/share/doc/${PF}/" || die + + # Install the default Skin and Gnome menu entry + if use gtk; then + dodir /usr/share/mplayer/skins + cp -r ${WORKDIR}/Blue ${D}/usr/share/mplayer/skins/default || die + + # Fix the symlink + rm -rf ${D}/usr/bin/gmplayer + dosym mplayer /usr/bin/gmplayer + + insinto /usr/share/pixmaps + newins ${S}/Gui/mplayer/pixmaps/logo.xpm mplayer.xpm + insinto /usr/share/applications + doins ${FILESDIR}/mplayer.desktop + fi + if ! use truetype || ! use iconv + then + dodir /usr/share/mplayer/fonts + local x= + # Do this generic, as the mplayer people like to change the structure + # of their zips ... + for x in $(find ${WORKDIR}/ -type d -name 'font-arial-*') + do + cp -pPR ${x} ${D}/usr/share/mplayer/fonts + done + # Fix the font symlink ... + rm -rf ${D}/usr/share/mplayer/font + dosym fonts/font-arial-14-iso-8859-1 /usr/share/mplayer/font + fi + + insinto /etc + newins ${S}/etc/example.conf mplayer.conf + dosed -e 's/include =/#include =/' /etc/mplayer.conf + dosed -e 's/fs=yes/fs=no/' /etc/mplayer.conf + if use truetype && use iconv + then + cat >> ${D}/etc/mplayer.conf << EOT +fontconfig=1 +subfont-osd-scale=4 +subfont-text-scale=3 +EOT + fi + dosym ../../../etc/mplayer.conf /usr/share/mplayer/mplayer.conf + + #mv the midentify script to /usr/bin for emovix. + cp ${D}/usr/share/doc/${PF}/TOOLS/midentify ${D}/usr/bin + chmod a+x ${D}/usr/bin/midentify + + insinto /usr/share/mplayer + doins ${S}/etc/input.conf + doins ${S}/etc/menu.conf +} + +pkg_preinst() { + + if [ -d "${ROOT}/usr/share/mplayer/Skin/default" ] + then + rm -rf ${ROOT}/usr/share/mplayer/Skin/default + fi +} + +pkg_postinst() { + + if use matrox; then + depmod -a &>/dev/null || : + fi + + if use alsa ; then + einfo "For those using alsa, please note the ao driver name is no longer" + einfo "alsa9x or alsa1x. It is now just 'alsa' (omit quotes)." + einfo "The syntax for optional drivers has also changed. For example" + einfo "if you use a dmix driver called 'dmixer,' use" + einfo "ao=alsa:device=dmixer instead of ao=alsa:dmixer" + einfo "Some users may not need to specify the extra driver with the ao=" + einfo "command." + fi +} + +pkg_postrm() { + + # Cleanup stale symlinks + if [ -L ${ROOT}/usr/share/mplayer/font -a \ + ! -e ${ROOT}/usr/share/mplayer/font ] + then + rm -f ${ROOT}/usr/share/mplayer/font + fi + + if [ -L ${ROOT}/usr/share/mplayer/subfont.ttf -a \ + ! -e ${ROOT}/usr/share/mplayer/subfont.ttf ] + then + rm -f ${ROOT}/usr/share/mplayer/subfont.ttf + fi +} +