diff options
Diffstat (limited to 'media-video/mplayer/mplayer-1.0.20070622-r3.ebuild')
-rw-r--r-- | media-video/mplayer/mplayer-1.0.20070622-r3.ebuild | 556 |
1 files changed, 556 insertions, 0 deletions
diff --git a/media-video/mplayer/mplayer-1.0.20070622-r3.ebuild b/media-video/mplayer/mplayer-1.0.20070622-r3.ebuild new file mode 100644 index 0000000..09abcd0 --- /dev/null +++ b/media-video/mplayer/mplayer-1.0.20070622-r3.ebuild @@ -0,0 +1,556 @@ +# 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.20070622-r3.ebuild,v 1.1 2007/07/28 15:25:18 beandog Exp $ + +inherit eutils flag-o-matic multilib + +RESTRICT="strip" +IUSE="3dnow 3dnowext a52 aac aalib alsa altivec amrnb amrwb arts bidi bl bindist +cddb cpudetection custom-cflags dga doc dts dvb cdparanoia directfb dvd +dvdnav dv enca encode esd fbcon ftp gif ggi gtk iconv ipv6 ivtv jack joystick +jpeg libcaca lirc live livecd lzo mad md5sum mmx mmxext mp2 mp3 musepack nas +unicode vorbis opengl openal oss png pnm quicktime radio rar real rtc samba sdl speex srt sse sse2 ssse3 svga tga theora tivo truetype v4l v4l2 vidix win32codecs X x264 xanim xinerama xv xvid xvmc zoran" + +VIDEO_CARDS="s3virge mga tdfx vesa" + +for X in ${VIDEO_CARDS}; do + IUSE="${IUSE} video_cards_${X}" +done + +BLUV=1.7 +SVGV=1.9.17 +MY_PV="20070622" +S="${WORKDIR}/${PN}-${MY_PV}" +AMR_URI="http://www.3gpp.org/ftp/Specs/archive" +SRC_URI="mirror://gentoo/${PN}-${MY_PV}.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 ) + gtk? ( mirror://mplayer/Skin/Blue-${BLUV}.tar.bz2 ) + svga? ( http://mplayerhq.hu/~alex/svgalib_helper-${SVGV}-mplayer.tar.bz2 )" + +DESCRIPTION="Media Player for Linux " +HOMEPAGE="http://www.mplayerhq.hu/" + +RDEPEND="sys-libs/ncurses + !livecd? ( + !bindist? ( + x86? ( + win32codecs? ( media-libs/win32codecs ) + real? ( media-libs/win32codecs + media-video/realplayer ) + ) + amd64? ( real? ( media-libs/amd64codecs ) ) + ) + ) + aalib? ( media-libs/aalib ) + alsa? ( media-libs/alsa-lib ) + amrnb? ( media-libs/amrnb ) + amrwb? ( media-libs/amrwb ) + arts? ( kde-base/arts ) + openal? ( media-libs/openal ) + bidi? ( dev-libs/fribidi ) + cdparanoia? ( media-sound/cdparanoia ) + directfb? ( dev-libs/DirectFB ) + dts? ( media-libs/libdts ) + dv? ( media-libs/libdv ) + dvb? ( media-tv/linuxtv-dvb-headers ) + dvd? ( dvdnav? ( media-libs/libdvdnav ) ) + encode? ( + aac? ( media-libs/faac ) + mp2? ( media-sound/twolame ) + mp3? ( media-sound/lame ) + ) + 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* ) + jpeg? ( media-libs/jpeg ) + libcaca? ( media-libs/libcaca ) + lirc? ( app-misc/lirc ) + lzo? ( >=dev-libs/lzo-2 ) + mad? ( media-libs/libmad ) + musepack? ( >=media-libs/libmpcdec-1.2.2 ) + nas? ( media-libs/nas ) + opengl? ( virtual/opengl ) + png? ( media-libs/libpng ) + pnm? ( media-libs/netpbm ) + samba? ( net-fs/samba ) + sdl? ( media-libs/libsdl ) + speex? ( >=media-libs/speex-1.1.7 ) + srt? ( >=media-libs/freetype-2.1 + media-libs/fontconfig ) + svga? ( media-libs/svgalib ) + theora? ( media-libs/libtheora ) + live? ( >=media-plugins/live-2007.02.20 ) + truetype? ( >=media-libs/freetype-2.1 + media-libs/fontconfig ) + vidix? ( x11-libs/libXxf86vm + x11-libs/libXext ) + x264? ( media-libs/x264-svn ) + xanim? ( media-video/xanim ) + xinerama? ( x11-libs/libXinerama + x11-libs/libXxf86vm + x11-libs/libXext ) + xv? ( x11-libs/libXv + x11-libs/libXxf86vm + x11-libs/libXext + xvmc? ( x11-libs/libXvMC ) ) + xvid? ( media-libs/xvid ) + X? ( x11-libs/libXxf86vm + x11-libs/libXext + )" +# video_cards_vesa? ( sys-apps/vbetool ) restrict on x86 first + +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 )" +# Make sure the assembler USE flags are unmasked on amd64 +# Remove this once default-linux/amd64/2006.1 is deprecated +DEPEND="${DEPEND} amd64? ( >=sys-apps/portage-2.1.2 ) + mp2? ( >=sys-apps/portage-2.1.2 ) + ivtv? ( !x86-fbsd? ( <sys-kernel/linux-headers-2.6.20 + media-tv/ivtv + >=sys-apps/portage-2.1.2 ) )" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" + +pkg_setup() { + + if [[ -n ${LINGUAS} ]]; then + elog "For MPlayer's language support, the configuration will" + elog "use your LINGUAS variable from /etc/make.conf. If you have more" + elog "than one language enabled, then the first one in the list will" + elog "be used to output the messages, if a translation is available." + elog "man pages will be created for all languages where translations" + elog "are also available." + fi + +} + +src_unpack() { + + unpack ${PN}-${MY_PV}.tar.bz2 + + if ! use truetype ; then + unpack font-arial-iso-8859-1.tar.bz2 \ + font-arial-iso-8859-2.tar.bz2 \ + font-arial-cp1250.tar.bz2 + fi + + use gtk && unpack Blue-${BLUV}.tar.bz2 + + use svga && unpack svgalib_helper-${SVGV}-mplayer.tar.bz2 + + cd ${S} + + # Fix hppa compilation + use 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 + + # Fix XShape detection + epatch ${FILESDIR}/${PN}-xshape.patch + epatch ${FILESDIR}/${PN}-loongson.patch + +} + +src_compile() { + + local myconf=" --disable-tv-bsdbt848 \ + --disable-faad-external \ + --disable-libcdio" + + # MPlayer reads in the LINGUAS variable from make.conf, and sets + # the languages accordingly. Some will have to be altered to match + # upstream's naming scheme. + [[ -n $LINGUAS ]] && LINGUAS=${LINGUAS/da/dk} + + ################ + #Optional features# + ############### + use bidi || myconf="${myconf} --disable-fribidi" + use bl && myconf="${myconf} --enable-bl" + use cddb || myconf="${myconf} --disable-cddb" + use cdparanoia || myconf="${myconf} --disable-cdparanoia" + use enca || myconf="${myconf} --disable-enca" + use ftp || myconf="${myconf} --disable-ftp" + use tivo || myconf="${myconf} --disable-vstream" + + # DVD support + # dvdread and libdvdcss are internal libs + # http://www.mplayerhq.hu/DOCS/HTML/en/dvd.html + # You can optionally use external dvdread support, but against + # upstream's suggestion. We don't. + # dvdnav support is known to be buggy, but it is the only option + # for accessing some DVDs. + if use dvd; then + use dvdnav || myconf="${myconf} --disable-dvdnav" + else + myconf="${myconf} --disable-dvdnav --disable-dvdread" + + # Don't disable a52 support since it's native to libavcodec, and is + # going to be needed on most DVDs. + use a52 || myconf="${myconf} --disable-liba52" + fi + + if use encode; then + use aac || myconf="${myconf} --disable-faac" + use dv || myconf="${myconf} --disable-libdv" + use x264 || myconf="${myconf} --disable-x264" + else + myconf="${myconf} --disable-mencoder --disable-libdv --disable-x264 \ + --disable-faac" + fi + + # SRT (subtitles) requires freetype support + # freetype support requires iconv + # iconv optionally can use unicode + if ! use srt; then + myconf="${myconf} --disable-ass" + if ! use truetype; then + myconf="${myconf} --disable-freetype" + if ! use iconv; then + myconf="${myconf} --disable-iconv --charset=noconv" + fi + fi + fi + use iconv && use unicode && myconf="${myconf} --charset=UTF-8" + + use lirc || myconf="${myconf} --disable-lirc --disable-lircc" + myconf="${myconf} $(use_enable joystick)" + use ipv6 || myconf="${myconf} --disable-inet6" + use rar || myconf="${myconf} --disable-unrarlib" + use rtc || myconf="${myconf} --disable-rtc" + use samba || myconf="${myconf} --disable-smb" + + # DVB / Video4Linux / Radio support + if ( use dvb || use v4l || use v4l2 || use radio ); then + use dvb || myconf="${myconf} --disable-dvb --disable-dvbhead" + use v4l || myconf="${myconf} --disable-tv-v4l1" + use v4l2 || myconf="${myconf} --disable-tv-v4l2" + if ( use dvb || use v4l || use v4l2 ) && use radio; then + myconf="${myconf} --enable-radio $(use_enable encode radio-capture)" + else + myconf="${myconf} --disable-radio-v4l2 --disable-radio-bsdbt848" + fi + else + myconf="${myconf} --disable-tv --disable-tv-v4l1 --disable-tv-v4l2 \ + --disable-radio --disable-radio-v4l2 --disable-radio-bsdbt848 \ + --disable-dvb --disable-dvbhead" + 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 + # See also, bug 164748 + myconf="${myconf} --disable-pvr" + + ######### + # Codecs # + ######## + for x in gif jpeg live mad musepack pnm speex tga theora xanim xvid; do + use ${x} || myconf="${myconf} --disable-${x}" + done + use aac || myconf="${myconf} --disable-faad-internal" + use amrnb || myconf="${myconf} --disable-libamr_nb" + use amrwb || myconf="${myconf} --disable-libamr_wb" + ! use png && ! use gtk && myconf="${myconf} --disable-png" + use lzo || myconf="${myconf} --disable-liblzo" + use encode && use mp2 || myconf="${myconf} --disable-twolame \ + --disable-toolame" + use mp3 || myconf="${myconf} --disable-mp3lib" + use quicktime || myconf="${myconf} --disable-qtx" + use vorbis || myconf="${myconf} --disable-libvorbis" + use xanim && myconf="${myconf} --xanimcodecsdir=/usr/lib/xanim/mods" + if use x86 || use amd64; then + # Real codec support, only available on x86, amd64 + if use real && use x86; then + myconf="${myconf} --realcodecsdir=/opt/RealPlayer/codecs" + elif use real && use amd64; then + myconf="${myconf} --realcodecsdir=/usr/$(get_libdir)/codecs" + else + myconf="${myconf} --disable-real" + fi + if ! use livecd && ! use bindist && ! use real; then + myconf="${myconf} $(use_enable win32codecs win32dll)" + fi + fi + + ############# + # Video Output # + ############# + + for x in directfb ivtv ggi md5sum sdl xinerama; do + use ${x} || myconf="${myconf} --disable-${x}" + done + use aalib || myconf="${myconf} --disable-aa" + use fbcon || myconf="${myconf} --disable-fbdev" + use fbcon && use video_cards_s3virge && myconf="${myconf} --enable-s3fb" + use libcaca || myconf="${myconf} --disable-caca" + use opengl || myconf="${myconf} --disable-gl" + use video_cards_mga || myconf="${myconf} --disable-mga" + ( use X && use video_cards_mga ) || myconf="${myconf} --disable-xmga" + use video_cards_vesa || myconf="${myconf} --disable-vesa" + use vidix || myconf="${myconf} --disable-vidix-internal \ + --disable-vidix-external" + use zoran || myconf="${myconf} --disable-zr" + + # GTK gmplayer gui + myconf="${myconf} $(use_enable gtk gui)" + + if use xv; then + if use xvmc; then + myconf="${myconf} --enable-xvmc --with-xvmclib=XvMCW" + else + myconf="${myconf} --disable-xvmc" + fi + else + myconf="${myconf} --disable-xv --disable-xvmc" + fi + + if use video_cards_tdfx; then + myconf="${myconf} $(use_enable video_cards_tdfx tdfxvid) \ + $(use_enable fbcon tdfxfb)" + else + myconf="${myconf} --disable-3dfx --disable-tdfxvid --disable-tdfxfb" + fi + + ############# + # Audio Output # + ############# + for x in alsa arts esd jack nas openal; do + use ${x} || myconf="${myconf} --disable-${x}" + done + if ! use radio; then + use oss || myconf="${myconf} --disable-ossaudio" + fi + ################# + # Advanced Options # + ################# + # Platform specific flags, hardcoded on amd64 (see below) + if use x86 || use amd64 || use ppc; then + if use cpudetection || use livecd || use bindist; then + myconf="${myconf} --enable-runtime-cpudetection" + fi + fi + if use mmx; then + for x in 3dnow 3dnowext mmxext sse sse2 ssse3; do + use ${x} || myconf="${myconf} --disable-${x}" + done + else + myconf="${myconf} --disable-mmx --disable-mmxext --disable-sse \ + --disable-sse2 --disable-ssse3 --disable-3dnow \ + --disable-3dnowext" + fi + + # debug broken in this release + # use debug && myconf="${myconf} --enable-debug=3" + + if use altivec; then + myconf="${myconf} --enable-altivec" + else + myconf="${myconf} --disable-altivec" + fi + + if [ -e /dev/.devfsd ]; then + myconf="${myconf} --enable-linux-devfs" + fi + + #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 + + # debug broken in this release + # use debug || append-flags -fomit-frame-pointer + append-flags -fomit-frame-pointer + fi + append-flags -D__STDC_LIMIT_MACROS + else + unset CFLAGS CXXFLAGS + fi + + myconf="--cc=$(tc-getCC) \ + --host-cc=$(tc-getBUILD_CC) \ + --prefix=/usr \ + --confdir=/etc/mplayer \ + --datadir=/usr/share/mplayer \ + --libdir=/usr/$(get_libdir) \ + --enable-largefiles \ + --enable-menu \ + --enable-network \ + ${myconf}" + einfo "Running ./configure" + echo "CFLAGS=\"${CFLAGS}\" ./configure ${myconf}" + CFLAGS="${CFLAGS}" ./configure ${myconf} || die + + # we run into problems if -jN > -j1 + # see #86245 + # This should have long ago been fixed, commenting out + #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}/etc/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 + fi + + if ! use srt && ! use truetype; 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/mplayer + newins ${S}/etc/example.conf mplayer.conf + + if use srt || use truetype; then + cat >> ${D}/etc/mplayer/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 + dobin ${D}/usr/share/doc/${PF}/TOOLS/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 video_cards_mga; then + depmod -a &>/dev/null || : + fi + + if use dvdnav && use dvd; then + ewarn "'dvdnav' support in MPlayer is known to be buggy, and will" + ewarn "break if you are using it in GUI mode. It is only" + ewarn "included because some DVDs will only play with this feature." + ewarn "If using it for playback only (and not menu navigation)," + ewarn "specify the track # with your options." + ewarn "mplayer dvdnav://1" + 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 +} |