diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2011-03-28 22:59:02 +0000 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2011-03-28 22:59:02 +0000 |
commit | 450938dc3585c23a6b80bb411082ad9a862b7c1d (patch) | |
tree | e7364f52c9916e172c1ea7991104f90f18903a0a /media-video/mplayer2 | |
parent | Moved to media-libs (diff) | |
download | historical-450938dc3585c23a6b80bb411082ad9a862b7c1d.tar.gz historical-450938dc3585c23a6b80bb411082ad9a862b7c1d.tar.bz2 historical-450938dc3585c23a6b80bb411082ad9a862b7c1d.zip |
Import to the main portage from the multimedia overlay
Package-Manager: portage-2.1.9.44/cvs/Linux x86_64
Diffstat (limited to 'media-video/mplayer2')
-rw-r--r-- | media-video/mplayer2/ChangeLog | 113 | ||||
-rw-r--r-- | media-video/mplayer2/Manifest | 8 | ||||
-rw-r--r-- | media-video/mplayer2/metadata.xml | 64 | ||||
-rw-r--r-- | media-video/mplayer2/mplayer2-2.0.ebuild | 851 | ||||
-rw-r--r-- | media-video/mplayer2/mplayer2-9999.ebuild | 857 |
5 files changed, 1893 insertions, 0 deletions
diff --git a/media-video/mplayer2/ChangeLog b/media-video/mplayer2/ChangeLog new file mode 100644 index 000000000000..bf0a365be82e --- /dev/null +++ b/media-video/mplayer2/ChangeLog @@ -0,0 +1,113 @@ +# ChangeLog for media-video/mplayer2 +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer2/ChangeLog,v 1.1 2011/03/28 22:59:02 lu_zero Exp $ + + 28 Mar 2011; Luca Barbato <lu_zero@gentoo.org> +metadata.xml, + +mplayer2-2.0.ebuild, +mplayer2-9999.ebuild: + Import to the main portage from the multimedia overlay + +*mplayer2-2.0 (28 Mar 2011) + + 28 Mar 2011; Nikoli <nikoli@lavabit.com> +mplayer2-2.0.ebuild, + mplayer2-9999.ebuild: + version bump, license is GPL-3 + +*mplayer2-2.0_rc2-r2 (24 Mar 2011) + + 24 Mar 2011; Nikoli <nikoli@lavabit.com> +mplayer2-2.0_rc2-r2.ebuild, + mplayer2-9999.ebuild: + migrate to EAPI4, sync with portage + +*mplayer2-9999 (16 Mar 2011) +*mplayer2-2.0_rc2-r1 (16 Mar 2011) + + 16 Mar 2011; Nikoli <nikoli@lavabit.com> +mplayer2-2.0_rc2-r1.ebuild, + +mplayer2-9999.ebuild, +metadata.xml: + mplayer-uau -> mplayer2 rename + +*mplayer-uau-2.0_rc2 (09 Mar 2011) + + 09 Mar 2011; Nikoli <nikoli@lavabit.com> +mplayer-uau-2.0_rc2.ebuild, + mplayer-uau-9999.ebuild: + internal libdvdcss was removed, version bump + +*mplayer-uau-2.0_rc1 (27 Feb 2011) + + 27 Feb 2011; Nikoli <nikoli@lavabit.com> +mplayer-uau-2.0_rc1.ebuild: + version bump + + 16 Feb 2011; Nikoli <nikoli@lavabit.com> mplayer-uau-2.0_beta1.ebuild, + mplayer-uau-9999.ebuild: + fix libass dep, cosmetics + +*mplayer-uau-2.0_beta1 (15 Feb 2011) + + 15 Feb 2011; Nikoli <nikoli@lavabit.com> +mplayer-uau-2.0_beta1.ebuild, + mplayer-uau-9999.ebuild, metadata.xml: + add beta1, update live + + 01 Feb 2011; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + upstream removed bz2 and lzo deps + + 01 Feb 2011; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + upstream removed internal tremor and libmpeg2 + + 01 Feb 2011; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + upstream removed vidix, zoran, some docs and internal libfaad2 + + 30 Jan 2011; Nikoli <nikoli@lavabit.com> + mplayer-uau-1.0_rc4_p20110126.ebuild, mplayer-uau-9999.ebuild: + sync with portage + +*mplayer-uau-1.0_rc4_p20110126 (30 Jan 2011) + + 30 Jan 2011; Nikoli <nikoli@lavabit.com> + +mplayer-uau-1.0_rc4_p20110126.ebuild: + new snapshot + + 25 Jan 2011; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + fix build, sync with portage + +*mplayer-uau-1.0_rc4_p20101220 (25 Dec 2010) + + 25 Dec 2010; Nikoli <nikoli@lavabit.com> + +mplayer-uau-1.0_rc4_p20101220.ebuild: + new snapshot + + 25 Dec 2010; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + set version in archive + +*mplayer-uau-1.0_rc4_p20101126 (06 Dec 2010) + + 06 Dec 2010; Nikoli <nikoli@lavabit.com> + +mplayer-uau-1.0_rc4_p20101126.ebuild: + add snapshot + + 15 Nov 2010; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild, + metadata.xml: + update, sync with mplayer from portage + +*mplayer-uau-1.0_rc4_p20100822 (26 Aug 2010) + + 26 Aug 2010; Nikoli <nikoli@lavabit.com> + +mplayer-uau-1.0_rc4_p20100822.ebuild: + add snapshot + + 22 Aug 2010; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + fix src_unpack, remove USE svga, sync with mplayer-9999 + + 17 Jun 2010; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + fixed src_unpack, configure; added USE threads, cosmetics + + 16 Jun 2010; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + USE="external-ffmpeg" now builds with >=ffmpeg-0.6 + + 13 Jun 2010; Nikoli <nikoli@lavabit.com> mplayer-uau-9999.ebuild: + fix use symlink && use !encode + +*mplayer-uau-9999 (10 Jun 2010) + + 10 Jun 2010; Nikoli <nikoli@lavabit.com> +mplayer-uau-9999.ebuild, + +metadata.xml: + Initial ebuild + diff --git a/media-video/mplayer2/Manifest b/media-video/mplayer2/Manifest new file mode 100644 index 000000000000..86b90d43e18a --- /dev/null +++ b/media-video/mplayer2/Manifest @@ -0,0 +1,8 @@ +DIST font-arial-cp1250.tar.bz2 249705 RMD160 a2fc7ae07b0d80936ea58e168e1047efccb9eb91 SHA1 ccf11dce5d0fb72fd3af97f788b7471cd0cd0b68 SHA256 423a07e780bb130cd8e4730715545c5d919c248dda595aab7a0a01de3c83fd12 +DIST font-arial-iso-8859-1.tar.bz2 234242 RMD160 666697cd5efd9387057a898c714175e7c2aacbcd SHA1 152c40bf20de34aa8802d7f80d34d673b0b67212 SHA256 9730f481764f367c9089d0166fb6ccf9148808ffbbfeca635cf0e6db75765d29 +DIST font-arial-iso-8859-2.tar.bz2 222208 RMD160 562d4d92c4f5f3d537340fde3ad8d1495ac41acb SHA1 7b99bbe0e9ba89a57eccbea8f93c453c4f268181 SHA256 71debfc960007c2f6242dfc91e8b1c005b30a99e129aeb00ab8c03f4371b41c1 +DIST mplayer2-build-2.0.tar.xz 7424672 RMD160 48193cf6a48e16cce7f74d8f0915e64dc4b7d1cd SHA1 951bc88cdaa486044a32e66293bdcb5bfd17f759 SHA256 e0a4dba087ba8c6a916d8bc9c7063bd2fd86d36bb08e31a2bd2d82e56b3c4058 +EBUILD mplayer2-2.0.ebuild 22585 RMD160 d5fdee8779939f28e538070404fec5a3974ea612 SHA1 ceff39455d7c640bebc00079a5c42c2653728b93 SHA256 4b2884a4ba5a38ee460c79ce2cc95d8139379d5f240e76ffc41be386fda674e2 +EBUILD mplayer2-9999.ebuild 22604 RMD160 24039c85968f3b9f0342f13a6a4b4ced08cf7074 SHA1 6ba5f540a354f4b6a97551fd631844e4e81675ce SHA256 8d41e13bb030cbd44bc3bb8a85b4a45b82d0d0818ec21a4db44b457c0d370d2f +MISC ChangeLog 3538 RMD160 d172fb5cc9a97608a09aa0fd0de6283cbe3ccfa5 SHA1 dc7c6959b2477ff99a829db924b2f3a03a2f17a7 SHA256 6a4756b2265c0185167a1456d0365257bd73d6236f42beff3d87a5be964850de +MISC metadata.xml 4274 RMD160 d6a87a6d3a184a696416ce544f95dfcb11496be7 SHA1 882fbce847d4c50b26622c951a367c2ea34c759f SHA256 143c9701860144ec5198d059c6355a5bbe405a08ca4383b40d68f5c6899c3508 diff --git a/media-video/mplayer2/metadata.xml b/media-video/mplayer2/metadata.xml new file mode 100644 index 000000000000..dc83a656f8bb --- /dev/null +++ b/media-video/mplayer2/metadata.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>video</herd> +<maintainer> + <email>media-video@gentoo.org</email> +</maintainer> +<longdescription lang="en"> + This fork has several usefull features: + 1) Uses ffmpeg-mt out of box. + 2) Ability to change many settings staying paused. + 3) Matroska external chapters support. + 4) Ability to cleanly build with shared libav libraries. +</longdescription> +<longdescription lang="ru"> + Этот форк обладает рядом полезных возможностей: + 1) Многопоточный ffmpeg. + 2) Возможность изменить настройки без продолжения воспроизведения. + 3) Поддержка внешних глав матрёшки. + 4) Возможность сборки с разделяемыми библиотеками ffmpeg. +</longdescription> +<use> + <flag name="3dnowext">Enable 3dnowext cpu instructions</flag> + <flag name="amr">Enables Adaptive Multi-Rate format support</flag> + <flag name="ass">SRT/SSA/ASS (SubRip / SubStation Alpha) subtitle support</flag> + <flag name="bl">Blinkenlights video output</flag> + <flag name="bluray">Enable playback of Blu-ray filesystems</flag> + <flag name="bs2b">Enable Bauer stereophonic-to-binaural headphone filter</flag> + <flag name="cdio">Use libcdio for CD support (instead of cdparanoia)</flag> + <flag name="cpudetection">Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)</flag> + <flag name="custom-cpuopts">Fine-tune custom CPU optimizations (UNSUPPORTED)</flag> + <flag name="dirac">Enable Dirac video support (an advanced royalty-free video compression format) via the reference library: dirac.</flag> + <flag name="dvdnav">Use forked libdvdnav, navigate menus in GUIs</flag> + <flag name="dxr3">Enable DXR3/H+ video output</flag> + <flag name="enca">Enables support for charset discovery and conversion</flag> + <flag name="faad">Use external faad library for AAC decoding</flag> + <flag name="ffmpeg-mt">Enable multithreaded ffmpeg</flag> + <flag name="hardcoded-tables">Use pre-calculated tables rather than calculating them on the fly.</flag> + <flag name="live">Enables live.com streaming media support</flag> + <flag name="md5sum">Enables md5sum video output</flag> + <flag name="mmxext">Enables mmx2 support</flag> + <flag name="mng">MNG input support</flag> + <flag name="mpg123">Enable support for mp3 decoding over media-sound/mpg123.</flag> + <flag name="network">Enables network streaming support</flag> + <flag name="nut">Enables support for the NUT container format</flag> + <flag name="osdmenu">Enables support for on-screen display (OSD) menus</flag> + <flag name="pnm">Add PNM video output option, to create PPM/PGM/PGMYUV images</flag> + <flag name="pvr">Enable Video4Linux2 MPEG PVR</flag> + <flag name="radio">Enable V4L2 radio interface and support</flag> + <flag name="rar">Enable Unique RAR File Library</flag> + <flag name="real">Adds real audo/video support</flag> + <flag name="rtc">Enables usage of the linux real time clock. The alternative is software emulation of rtc</flag> + <flag name="rtmp">Enables RTMPDump Streaming Media support</flag> + <flag name="schroedinger">Enable Dirac video support (an advanced royalty-free video compression format) via libschroedinger (high-speed implementation in C of the Dirac codec).</flag> + <flag name="shm">Enable support for shm</flag> + <flag name="ssse3">faster floating point optimization for SSSE3 capable chips (Intel Core 2 and later chips)</flag> + <flag name="system-ffmpeg">Use shared FFmpeg libraries instead of static bundled ones. May not have ffmpeg-mt.</flag> + <flag name="tga">Enables Targa video output</flag> + <flag name="vdpau">Enables experimental VDPAU support (requires nVidia video cards) to offload MPEG2/MPEG4/VC1/WMV CPU processing to video card</flag> + <flag name="vpx">Enables vp8 codec support using libvpx: Decoding vp8 does not require this to be enabled but libvpx can also be used for decoding; encoding vp8 requires this useflag to be enabled though.</flag> + <flag name="xanim">Enables support for xanim based codecs</flag> + <flag name="xvmc">Enables X-Video Motion Compensation support</flag> +</use> +</pkgmetadata> diff --git a/media-video/mplayer2/mplayer2-2.0.ebuild b/media-video/mplayer2/mplayer2-2.0.ebuild new file mode 100644 index 000000000000..522ae5254689 --- /dev/null +++ b/media-video/mplayer2/mplayer2-2.0.ebuild @@ -0,0 +1,851 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer2/mplayer2-2.0.ebuild,v 1.1 2011/03/28 22:59:02 lu_zero Exp $ + +EAPI=4 + +[[ ${PV} = *9999* ]] && VCS_ECLASS="git" || VCS_ECLASS="" + +inherit toolchain-funcs eutils flag-o-matic multilib base ${VCS_ECLASS} + +namesuf="${PN/mplayer/}" + +IUSE="3dnow 3dnowext +a52 aalib +alsa altivec aqua +ass bidi bindist bl bluray +bs2b +bzip2 cddb +cdio cdparanoia cpudetection custom-cpuopts custom-cflags debug dga +dirac +directfb doc +dts +dv dvb +dvd +dvdnav dxr3 +enca esd +faad fbcon +ftp gif ggi gsm +iconv ipv6 jack joystick jpeg jpeg2k kernel_linux ladspa +libcaca lirc +live mad md5sum +mmx mmxext mng +mp3 mpg123 nas ++network nut amr +opengl +osdmenu oss png pnm pulseaudio pvr +quicktime +radio +rar +real +rtc rtmp samba +shm +schroedinger +hardcoded-tables sdl +speex sse sse2 ssse3 +tga +theora threads +truetype +unicode v4l v4l2 vdpau ++vorbis vpx win32codecs +X xanim xinerama +xscreensaver +xv xvmc +" +IUSE+=" system-ffmpeg symlink" + +VIDEO_CARDS="s3virge mga tdfx vesa" +for x in ${VIDEO_CARDS}; do + IUSE+=" video_cards_${x}" +done + +FONT_URI=" + 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 +" +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://repo.or.cz/mplayer-build.git" + EGIT_PROJECT="${PN}-build" + RELEASE_URI="" +else + RELEASE_URI="http://ftp.mplayer2.org/pub/release/${PN}-build-${PV/_/-}.tar.xz" +fi +SRC_URI="${RELEASE_URI} + !truetype? ( ${FONT_URI} ) +" + +DESCRIPTION="Media Player for Linux" +HOMEPAGE="http://www.mplayer2.org/" + +FONT_RDEPS=" + virtual/ttf-fonts + media-libs/fontconfig + >=media-libs/freetype-2.2.1:2 +" +X_RDEPS=" + x11-libs/libXext + x11-libs/libXxf86vm +" +# Rar: althrought -gpl version is nice, it cant do most functions normal rars can +# nemesi? ( net-libs/libnemesi ) +RDEPEND+=" + sys-libs/ncurses + sys-libs/zlib + !bindist? ( + x86? ( + win32codecs? ( media-libs/win32codecs ) + ) + ) + X? ( + ${X_RDEPS} + dga? ( x11-libs/libXxf86dga ) + ggi? ( + media-libs/libggi + media-libs/libggiwmh + ) + opengl? ( virtual/opengl ) + vdpau? ( x11-libs/libvdpau ) + xinerama? ( x11-libs/libXinerama ) + xscreensaver? ( x11-libs/libXScrnSaver ) + xv? ( + x11-libs/libXv + xvmc? ( x11-libs/libXvMC ) + ) + ) + a52? ( media-libs/a52dec ) + aalib? ( media-libs/aalib ) + alsa? ( media-libs/alsa-lib ) + ass? ( ${FONT_RDEPS} >=media-libs/libass-0.9.10[enca?,fontconfig] ) + bidi? ( dev-libs/fribidi ) + bluray? ( media-libs/libbluray ) + bs2b? ( media-libs/libbs2b ) + cdio? ( dev-libs/libcdio ) + cdparanoia? ( !cdio? ( media-sound/cdparanoia ) ) + directfb? ( dev-libs/DirectFB ) + dts? ( media-libs/libdca ) + dv? ( media-libs/libdv ) + dvb? ( media-tv/linuxtv-dvb-headers ) + dvd? ( + >=media-libs/libdvdread-4.1.3 + dvdnav? ( >=media-libs/libdvdnav-4.1.3 ) + ) + esd? ( media-sound/esound ) + enca? ( app-i18n/enca ) + faad? ( media-libs/faad2 ) + gif? ( media-libs/giflib ) + iconv? ( virtual/libiconv ) + jack? ( media-sound/jack-audio-connection-kit ) + jpeg? ( virtual/jpeg ) + ladspa? ( media-libs/ladspa-sdk ) + libcaca? ( media-libs/libcaca ) + lirc? ( app-misc/lirc ) + live? ( media-plugins/live ) + mad? ( media-libs/libmad ) + mng? ( media-libs/libmng ) + mpg123? ( media-sound/mpg123 ) + nas? ( media-libs/nas ) + nut? ( >=media-libs/libnut-661 ) + png? ( media-libs/libpng ) + pnm? ( media-libs/netpbm ) + pulseaudio? ( media-sound/pulseaudio ) + rar? ( + || ( + app-arch/unrar + app-arch/rar + ) + ) + samba? ( net-fs/samba ) + sdl? ( media-libs/libsdl ) + speex? ( media-libs/speex ) + theora? ( media-libs/libtheora ) + truetype? ( ${FONT_RDEPS} ) + vorbis? ( media-libs/libvorbis ) + xanim? ( media-video/xanim ) + system-ffmpeg? ( + >=media-video/ffmpeg-0.6_p25423[amr?,bzip2?,dirac?,gsm?,hardcoded-tables?,jpeg2k?,rtmp?,schroedinger?,threads?,vpx?] + ) + !system-ffmpeg? ( + amr? ( media-libs/opencore-amr ) + bzip2? ( app-arch/bzip2 ) + dirac? ( media-video/dirac ) + gsm? ( >=media-sound/gsm-1.0.12-r1 ) + jpeg2k? ( >=media-libs/openjpeg-1.3-r2 ) + rtmp? ( media-video/rtmpdump ) + schroedinger? ( media-libs/schroedinger ) + vpx? ( media-libs/libvpx ) + ) + symlink? ( !media-video/mplayer ) +" + +X_DEPS=" + x11-proto/videoproto + x11-proto/xf86vidmodeproto +" +ASM_DEP="dev-lang/yasm" +DEPEND="${RDEPEND} + dev-util/pkgconfig + dev-lang/python + sys-devel/gettext + X? ( + ${X_DEPS} + dga? ( x11-proto/xf86dgaproto ) + dxr3? ( media-video/em8300-libraries ) + xinerama? ( x11-proto/xineramaproto ) + xscreensaver? ( x11-proto/scrnsaverproto ) + ) + amd64? ( ${ASM_DEP} ) + doc? ( + dev-libs/libxslt app-text/docbook-xml-dtd + app-text/docbook-xsl-stylesheets + ) + x86? ( ${ASM_DEP} ) + x86-fbsd? ( ${ASM_DEP} ) +" + +SLOT="0" +LICENSE="GPL-3" +if [[ ${PV} != *9999* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris" + S="${WORKDIR}/${PN}-build-${PV}" +else + KEYWORDS="" +fi + +# bindist does not cope with amr codecs (#299405#c6), win32codecs are nonfree +# libcdio support: prefer libcdio over cdparanoia and don't check for cddb w/cdio +# dvd navigation requires dvd read support +# ass and freetype font require iconv and ass requires freetype fonts +# unicode transformations are usefull only with iconv +# libvorbis require external tremor to work +# radio requires oss or alsa backend +# xvmc requires xvideo support +REQUIRED_USE="bindist? ( !win32codecs )" + +PATCHES=( +) + +pkg_setup() { + if [[ ${PV} == *9999* ]]; then + elog + elog "This is a live ebuild which installs the latest from upstream's" + elog "${VCS_ECLASS} repository, and is unsupported by Gentoo." + elog "Everything but bugs in the ebuild itself will be ignored." + elog + fi + + if use cpudetection; then + ewarn + ewarn "You've enabled the cpudetection flag. This feature is" + ewarn "included mainly for people who want to use the same" + ewarn "binary on another system with a different CPU architecture." + ewarn "MPlayer will already detect your CPU settings by default at" + ewarn "buildtime; this flag is used for runtime detection." + ewarn "You won't need this turned on if you are only building" + ewarn "mplayer for this system. Also, if your compile fails, try" + ewarn "disabling this use flag." + fi + + if use custom-cpuopts; then + ewarn + ewarn "You are using the custom-cpuopts flag which will" + ewarn "specifically allow you to enable / disable certain" + ewarn "CPU optimizations." + ewarn + ewarn "Most desktop users won't need this functionality, but it" + ewarn "is included for corner cases like cross-compiling and" + ewarn "certain profiles. If unsure, disable this flag and MPlayer" + ewarn "will automatically detect and use your available CPU" + ewarn "optimizations." + ewarn + ewarn "Using this flag means your build is unsupported, so" + ewarn "please make sure your CPU optimization use flags (3dnow" + ewarn "3dnowext mmx mmxext sse sse2 ssse3) are properly set." + fi + + if use system-ffmpeg; then + ewarn "System ffmpeg will be used. If you want ffmpeg-mt, disable" + ewarn "\"system-ffmpeg\" or use ffmpeg package with \"ffmpeg-mt\" enabled." + else + ewarn "Internal ffmpeg-mt will be used. If you don't want it, enable \"system-ffmpeg\"." + fi +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git_src_unpack + + EGIT_REPO_URI="git://repo.or.cz/mplayer.git" + EGIT_PROJECT="${PN}" + S+="/mplayer" + git_fetch + S="${WORKDIR}/${P}" + + if ! use system-ffmpeg; then + EGIT_BRANCH="mt" + EGIT_COMMIT="mt" + S+="/ffmpeg-mt" + EGIT_REPO_URI="git://repo.or.cz/FFMpeg-mirror/mplayer-patches.git" + EGIT_PROJECT="${PN}-ffmpeg" + git_fetch + EGIT_BRANCH="master" + unset EGIT_COMMIT + + cd "${S}" + EGIT_REPO_URI="git://git.mplayerhq.hu/libswscale" + EGIT_PROJECT="libswscale" + EGIT_COMMIT="$(git submodule status -- libswscale|sed -e 's/^-\(.*\) .*/\1/')" + S+="/${EGIT_PROJECT}" + git_fetch + + S="${WORKDIR}/${P}" + fi + + cd "${WORKDIR}" + else + unpack ${A} + fi + + 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 +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + git_src_prepare + # Set GIT version manually + pushd mplayer + echo "GIT-r$(git rev-list HEAD|wc -l)-$(git describe --always)" \ + > VERSION || die + popd + fi + + # remove internal libs and use system: + sed -e '/^mplayer: /s/libass//' \ + -i Makefile || die + rm -rf \ + libass \ + || die + + if use system-ffmpeg; then + sed -e '/^mplayer: /s/ffmpeg//' \ + -i Makefile || die + rm -rf ffmpeg-mt || die + else + sed -i \ + -e "/'--cpu=host',/d" \ + -e "/'--disable-debug',/d" \ + -e "/'--enable-pthreads',/d" \ + script/ffmpeg-config || die + fi + + # fix path to bash executable in configure scripts + local bash_scripts="mplayer/configure mplayer/version.sh" + use system-ffmpeg || bash_scripts+=" ffmpeg*/configure ffmpeg*/version.sh" + sed -i -e "1c\#!${EPREFIX}/bin/bash" \ + ${bash_scripts} || die + + # We want mplayer${namesuf} + if [[ "${namesuf}" != "" ]]; then + pushd mplayer + sed -e "/elif linux ; then/a\ _exesuf=\"${namesuf}\"" \ + -i configure || die + sed -e "/ -m 644 DOCS\/man\/en\/mplayer/i\ mv DOCS\/man\/en\/mplayer.1 DOCS\/man\/en\/mplayer${namesuf}.1" \ + -e "/ -m 644 DOCS\/man\/\$(lang)\/mplayer/i\ mv DOCS\/man\/\$(lang)\/mplayer.1 DOCS\/man\/\$(lang)\/mplayer${namesuf}.1" \ + -e "s/er.1/er${namesuf}.1/g" \ + -i Makefile || die + sed -e "s/mplayer/mplayer${namesuf}/" \ + -i TOOLS/midentify.sh || die + popd + fi + + base_src_prepare +} + +src_configure() { + local myconf="" + local uses i + + # set LINGUAS + [[ -n $LINGUAS ]] && LINGUAS="${LINGUAS/da/dk}" + + # mplayer ebuild uses "use foo || --disable-foo" to forcibly disable + # compilation in almost every situation. The reason for this is + # because if --enable is used, it will force the build of that option, + # regardless of whether the dependency is available or not. + + ################### + #Optional features# + ################### + # disable svga since we don't want it + # disable arts since we don't have kde3 + # disable tremor, it needs libvorbisidec and is for FPU-less systems only + myconf+=" + --disable-svga + --disable-arts + --disable-kai + --disable-tremor + $(use_enable network networking) + $(use_enable joystick) + " + uses="ass bl bluray enca ftp rtc" # nemesi <- not working with in-tree ebuild + myconf+=" --disable-nemesi" # nemesi automagic disable + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + use bidi || myconf+=" --disable-fribidi" + use ipv6 || myconf+=" --disable-inet6" + use nut || myconf+=" --disable-libnut" + use rar || myconf+=" --disable-unrarexec" + use samba || myconf+=" --disable-smb" + if ! use lirc; then + myconf+=" + --disable-lirc + --disable-lircc + --disable-apple-ir + " + fi + + # libcdio support: prefer libcdio over cdparanoia + # don't check for cddb w/cdio + if use cdio; then + myconf+=" --disable-cdparanoia" + else + myconf+=" --disable-libcdio" + use cdparanoia || myconf+=" --disable-cdparanoia" + use cddb || myconf+=" --disable-cddb" + fi + + ################################ + # DVD read, navigation support # + ################################ + # + # dvdread - accessing a DVD + # dvdnav - navigation of menus + # + # use external libdvdcss, dvdread and dvdnav + myconf+=" --disable-dvdread-internal --disable-libdvdcss-internal" + if use dvd; then + use dvdnav || myconf+=" --disable-dvdnav" + else + myconf+=" + --disable-dvdnav + --disable-dvdread + " + fi + + ############# + # Subtitles # + ############# + # + # SRT/ASS/SSA (subtitles) requires freetype support + # freetype support requires iconv + # iconv optionally can use unicode + if ! use ass && ! use truetype; then + myconf+=" --disable-freetype" + if ! use iconv; then + myconf+=" + --disable-iconv + --charset=noconv + " + fi + fi + use iconv && use unicode && myconf+=" --charset=UTF-8" + + ##################################### + # DVB / Video4Linux / Radio support # + ##################################### + myconf+=" --disable-tv-bsdbt848" + # broken upstream, won't work with recent kernels + myconf+=" --disable-ivtv" + if { use dvb || use v4l || use v4l2 || use pvr || use radio; }; then + use dvb || myconf+=" --disable-dvb" + use pvr || myconf+=" --disable-pvr" + use v4l || myconf+=" --disable-tv-v4l1" + use v4l2 || myconf+=" --disable-tv-v4l2" + if use radio && { use dvb || use v4l || use v4l2; }; then + myconf+=" + --enable-radio + --disable-radio-capture + " + else + myconf+=" + --disable-radio-v4l2 + --disable-radio-bsdbt848 + " + fi + else + myconf+=" + --disable-tv + --disable-tv-v4l1 + --disable-tv-v4l2 + --disable-radio + --disable-radio-v4l2 + --disable-radio-bsdbt848 + --disable-dvb + --disable-v4l2 + --disable-pvr" + fi + + ########## + # Codecs # + ########## + myconf+=" --disable-musepack" # deprecated, libavcodec Musepack decoder is preferred + use dts || myconf+=" --disable-libdca" + if ! use mp3; then + myconf+=" + --disable-mp3lib + " + fi + uses="a52 bs2b dv vorbis" + for i in ${uses}; do + use ${i} || myconf+=" --disable-lib${i}" + done + uses="faad gif jpeg live mad mng mpg123 png pnm speex tga theora xanim" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + + # Encoding + uses="xvid" + for i in ${uses}; do + myconf+=" --disable-${i}" + done + + ################# + # Binary codecs # + ################# + # bug 213836 + if ! use x86 || ! use win32codecs; then + use quicktime || myconf+=" --disable-qtx" + fi + + ###################### + # RealPlayer support # + ###################### + # Realplayer support shows up in four places: + # - libavcodec (internal) + # - win32codecs + # - realcodecs (win32codecs libs) + # - realcodecs (realplayer libs) + + # internal + use real || myconf+=" --disable-real" + + # Real binary codec support only available on x86, amd64 + if use real; then + use x86 && myconf+=" --codecsdir=/opt/RealPlayer/codecs" + use amd64 && myconf+=" --codecsdir=/usr/$(get_libdir)/codecs" + fi + myconf+=" $(use_enable win32codecs win32dll)" + + ################ + # Video Output # + ################ + uses="directfb md5sum sdl" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + use aalib || myconf+=" --disable-aa" + use fbcon || myconf+=" --disable-fbdev" + use fbcon && use video_cards_s3virge && myconf+=" --enable-s3fb" + use libcaca || myconf+=" --disable-caca" + + if ! use kernel_linux || ! use video_cards_mga; then + myconf+=" --disable-mga --disable-xmga" + fi + + if use video_cards_tdfx; then + myconf+=" + $(use_enable video_cards_tdfx tdfxvid) + $(use_enable fbcon tdfxfb) + " + else + myconf+=" + --disable-3dfx + --disable-tdfxvid + --disable-tdfxfb + " + fi + + # sun card, disable by default, see bug #258729 + myconf+=" --disable-xvr100" + + ################ + # Audio Output # + ################ + uses="alsa esd jack ladspa nas" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + #use openal && myconf+=" --enable-openal" # build fails + use pulseaudio || myconf+=" --disable-pulse" + if ! use radio; then + use oss || myconf+=" --disable-ossaudio" + fi + + #################### + # Advanced Options # + #################### + # Platform specific flags, hardcoded on amd64 (see below) + use cpudetection && myconf+=" --enable-runtime-cpudetection" + + # Turning off CPU optimizations usually will break the build. + # However, this use flag, if enabled, will allow users to completely + # specify which ones to use. If disabled, mplayer will automatically + # enable all CPU optimizations that the host build supports. + if use custom-cpuopts; then + uses="3dnow 3dnowext altivec mmx mmxext shm sse sse2 ssse3" + for i in ${uses}; do + myconf+=" $(use_enable ${i})" + done + fi + + use debug && myconf+=" --enable-debug=3" + + if use x86 && gcc-specs-pie; then + filter-flags -fPIC -fPIE + append-ldflags -nopie + fi + + is-flag -O? || append-flags -O2 + + # workaround bug, x86 just has too few registers, see c.f. + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=402950#44 + # and 32-bits OSX, bug 329861 + if [[ ${CHOST} == i?86-* ]] ; then + use debug || append-flags -fomit-frame-pointer + fi + + ########################### + # X enabled configuration # + ########################### + if use X; then + uses="dxr3 ggi xinerama" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + use dga || myconf+=" --disable-dga1 --disable-dga2" + use opengl || myconf+=" --disable-gl" + use osdmenu && myconf+=" --enable-menu" + use vdpau || myconf+=" --disable-vdpau" + use video_cards_vesa || myconf+=" --disable-vesa" + use xscreensaver || myconf+=" --disable-xss" + + if use xv; then + if use xvmc; then + myconf+=" --enable-xvmc --with-xvmclib=XvMCW" + else + myconf+=" --disable-xvmc" + fi + else + myconf+=" + --disable-xv + --disable-xvmc + " + use xvmc && elog "Disabling xvmc because it requires \"xv\" useflag enabled." + fi + else + myconf+=" + --disable-dga1 + --disable-dga2 + --disable-dxr3 + --disable-ggi + --disable-gl + --disable-vdpau + --disable-xinerama + --disable-xss + --disable-xv + --disable-xvmc + --disable-x11 + " + uses="dga dxr3 ggi opengl osdmenu vdpau xinerama xscreensaver xv" + for i in ${uses}; do + use ${i} && elog "Useflag \"${i}\" require \"X\" useflag enabled to work." + done + fi + + ############################ + # OSX (aqua) configuration # + ############################ + if use aqua; then + myconf+=" + --enable-macosx-finder + --enable-macosx-bundle + " + fi + + common_options=" + --cc=$(tc-getCC) + --host-cc=$(tc-getBUILD_CC) + " + myconf+=" + --prefix="${EPREFIX}"/usr + --bindir="${EPREFIX}"/usr/bin + --libdir="${EPREFIX}"/usr/$(get_libdir) + --confdir="${EPREFIX}"/etc/mplayer + --datadir="${EPREFIX}"/usr/share/mplayer${namesuf} + --mandir="${EPREFIX}"/usr/share/man + --localedir="${EPREFIX}"/usr/share/locale + --enable-translation + " + + echo "${common_options}" > common_options + echo "${myconf}" > mplayer_options + + if ! use system-ffmpeg; then + local ffconf=" + --enable-gpl + --enable-version3 + --enable-postproc + --disable-stripping + " + + # enabled by default + use debug || ffconf+=" --disable-debug" + use network || ffconf+=" --disable-network" + use bzip2 || ffconf+=" --disable-bzlib" + + use custom-cflags && ffconf+=" --disable-optimizations" + use cpudetection && ffconf+=" --enable-runtime-cpudetect" + + # Threads; we only support pthread for now but ffmpeg supports more + use threads || ffconf+=" --disable-pthreads" + + # ffmpeg encoders + for i in faac mp3lame theora vorbis x264 xvid; do + ffconf+=" --disable-lib${i}" + done + + # ffmpeg decoders + use amr && ffconf+=" --enable-libopencore-amrwb --enable-libopencore-amrnb" + for i in gsm dirac rtmp schroedinger speex vpx; do + use ${i} && ffconf+=" --enable-lib${i}" + done + use jpeg2k && ffconf+=" --enable-libopenjpeg" + + # CPU features + for i in mmx ssse3 altivec ; do + use ${i} || ffconf+=" --disable-${i}" + done + use mmxext || ffconf+=" --disable-mmx2" + use 3dnow || ffconf+=" --disable-amd3dnow" + use 3dnowext || ffconf+=" --disable-amd3dnowext" + # disable mmx accelerated code if PIC is required + # as the provided asm decidedly is not PIC. + if gcc-specs-pie ; then + ffconf+=" --disable-mmx --disable-mmx2" + fi + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do + [ "${i}" = "native" ] && i="host" # bug #273421 + [[ ${i} = *-sse3 ]] && i="${i%-sse3}" # bug 283968 + ffconf+=" --cpu=${i}" + break + done + + # cross compile support + if tc-is-cross-compiler ; then + ffconf+=" --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}-" + case ${CHOST} in + *freebsd*) + ffconf+=" --target-os=freebsd" + ;; + mingw32*) + ffconf+=" --target-os=mingw32" + ;; + *linux*) + ffconf+=" --target-os=linux" + ;; + esac + fi + + # Misc stuff + use hardcoded-tables && ffconf+=" --enable-hardcoded-tables" + + echo "${ffconf}" > ffmpeg_options + fi + + sed -i \ + -e 's/\t//g' \ + -e 's/ --/\n--/g' \ + -e '/^$/d' \ + *_options || die +} + +src_compile() { + base_src_compile + # Build only user-requested docs if they're available. + if use doc ; then + pushd mplayer + # select available languages from $LINGUAS + LINGUAS=${LINGUAS/zh/zh_CN} + local ALLOWED_LINGUAS="cs de en es fr hu it pl ru zh_CN" + local BUILT_DOCS="" + for i in ${LINGUAS} ; do + hasq ${i} ${ALLOWED_LINGUAS} && BUILT_DOCS+=" ${i}" + done + if [[ -z $BUILT_DOCS ]]; then + emake -j1 -C DOCS/xml html-chunked + else + for i in ${BUILT_DOCS}; do + emake -j1 -C DOCS/xml html-chunked-${i} + done + fi + fi +} + +src_install() { + local i + + emake \ + DESTDIR="${D}" \ + INSTALLSTRIP="" \ + install + + S+="/mplayer" + cd "${S}" + dodoc AUTHORS Copyright README etc/codecs.conf + + docinto tech/ + dodoc DOCS/tech/{*.txt,mpsub.sub,playtree} + docinto TOOLS/ + dodoc -r TOOLS + if use real; then + docinto tech/realcodecs/ + dodoc DOCS/tech/realcodecs/* + fi + + if use doc; then + docinto html/ + dohtml -r "${S}"/DOCS/HTML/* + fi + + if ! use ass && ! use truetype; then + dodir /usr/share/mplayer${namesuf}/fonts + # Do this generic, as the mplayer people like to change the structure + # of their zips ... + for i in $(find "${WORKDIR}/" -type d -name 'font-arial-*'); do + cp -pPR "${i}" "${ED}/usr/share/mplayer${namesuf}/fonts" + done + # Fix the font symlink ... + rm -rf "${ED}/usr/share/mplayer${namesuf}/font" + dosym fonts/font-arial-14-iso-8859-1 /usr/share/mplayer${namesuf}/font + fi + + if use symlink; then + insinto /etc/mplayer + newins "${S}/etc/example.conf" mplayer.conf + doins "${S}/etc/input.conf" + if use osdmenu; then + doins "${S}/etc/menu.conf" + fi + + if use ass || use truetype; then + cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_ +fontconfig=1 +subfont-osd-scale=4 +subfont-text-scale=3 +_EOF_ + fi + + # bug 256203 + if use rar; then + cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_ +unrarexec=${EPREFIX}/usr/bin/unrar +_EOF_ + fi + + dosym ../../../etc/mplayer/mplayer.conf /usr/share/mplayer${namesuf}/mplayer.conf + fi + + newbin "${S}/TOOLS/midentify.sh" midentify${namesuf} + + if [[ "${namesuf}" != "" ]] && use symlink; then + dosym "mplayer${namesuf}" /usr/bin/mplayer + dosym "midentify${namesuf}" /usr/bin/midentify + fi +} + +pkg_postrm() { + # Cleanup stale symlinks + [ -L "${EROOT}/usr/share/mplayer${namesuf}/font" -a \ + ! -e "${EROOT}/usr/share/mplayer${namesuf}/font" ] && \ + rm -f "${EROOT}/usr/share/mplayer${namesuf}/font" +} diff --git a/media-video/mplayer2/mplayer2-9999.ebuild b/media-video/mplayer2/mplayer2-9999.ebuild new file mode 100644 index 000000000000..91844d506168 --- /dev/null +++ b/media-video/mplayer2/mplayer2-9999.ebuild @@ -0,0 +1,857 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer2/mplayer2-9999.ebuild,v 1.1 2011/03/28 22:59:02 lu_zero Exp $ + +EAPI=4 + +[[ ${PV} = *9999* ]] && VCS_ECLASS="git" || VCS_ECLASS="" + +inherit toolchain-funcs eutils flag-o-matic multilib base ${VCS_ECLASS} + +namesuf="${PN/mplayer/}" + +IUSE="3dnow 3dnowext +a52 aalib +alsa altivec aqua +ass bidi bindist bl bluray +bs2b +bzip2 cddb +cdio cdparanoia cpudetection custom-cpuopts custom-cflags debug dga +dirac +directfb doc +dts +dv dvb +dvd +dvdnav dxr3 +enca esd +faad fbcon +ftp gif ggi gsm +iconv ipv6 jack joystick jpeg jpeg2k kernel_linux ladspa +libcaca lirc +live mad md5sum +mmx mmxext mng +mp3 mpg123 nas ++network nut amr +opengl +osdmenu oss png pnm pulseaudio pvr +quicktime +radio +rar +real +rtc rtmp samba +shm +schroedinger +hardcoded-tables sdl +speex sse sse2 ssse3 +tga +theora threads +truetype +unicode v4l v4l2 vdpau ++vorbis vpx win32codecs +X xanim xinerama +xscreensaver +xv xvmc +" +IUSE+=" +ffmpeg-mt -system-ffmpeg symlink" + +VIDEO_CARDS="s3virge mga tdfx vesa" +for x in ${VIDEO_CARDS}; do + IUSE+=" video_cards_${x}" +done + +FONT_URI=" + 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 +" +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://repo.or.cz/mplayer-build.git" + EGIT_PROJECT="${PN}-build" + RELEASE_URI="" +else + RELEASE_URI="mirror://gentoo/${P}.tar.xz" +fi +SRC_URI="${RELEASE_URI} + !truetype? ( ${FONT_URI} ) +" + +DESCRIPTION="Media Player for Linux" +HOMEPAGE="http://www.mplayer2.org/" + +FONT_RDEPS=" + virtual/ttf-fonts + media-libs/fontconfig + >=media-libs/freetype-2.2.1:2 +" +X_RDEPS=" + x11-libs/libXext + x11-libs/libXxf86vm +" +# Rar: althrought -gpl version is nice, it cant do most functions normal rars can +# nemesi? ( net-libs/libnemesi ) +RDEPEND+=" + sys-libs/ncurses + sys-libs/zlib + !bindist? ( + x86? ( + win32codecs? ( media-libs/win32codecs ) + ) + ) + X? ( + ${X_RDEPS} + dga? ( x11-libs/libXxf86dga ) + ggi? ( + media-libs/libggi + media-libs/libggiwmh + ) + opengl? ( virtual/opengl ) + vdpau? ( x11-libs/libvdpau ) + xinerama? ( x11-libs/libXinerama ) + xscreensaver? ( x11-libs/libXScrnSaver ) + xv? ( + x11-libs/libXv + xvmc? ( x11-libs/libXvMC ) + ) + ) + a52? ( media-libs/a52dec ) + aalib? ( media-libs/aalib ) + alsa? ( media-libs/alsa-lib ) + ass? ( ${FONT_RDEPS} >=media-libs/libass-0.9.10[enca?,fontconfig] ) + bidi? ( dev-libs/fribidi ) + bluray? ( media-libs/libbluray ) + bs2b? ( media-libs/libbs2b ) + cdio? ( dev-libs/libcdio ) + cdparanoia? ( !cdio? ( media-sound/cdparanoia ) ) + directfb? ( dev-libs/DirectFB ) + dts? ( media-libs/libdca ) + dv? ( media-libs/libdv ) + dvb? ( media-tv/linuxtv-dvb-headers ) + dvd? ( + >=media-libs/libdvdread-4.1.3 + dvdnav? ( >=media-libs/libdvdnav-4.1.3 ) + ) + esd? ( media-sound/esound ) + enca? ( app-i18n/enca ) + faad? ( media-libs/faad2 ) + gif? ( media-libs/giflib ) + iconv? ( virtual/libiconv ) + jack? ( media-sound/jack-audio-connection-kit ) + jpeg? ( virtual/jpeg ) + ladspa? ( media-libs/ladspa-sdk ) + libcaca? ( media-libs/libcaca ) + lirc? ( app-misc/lirc ) + live? ( media-plugins/live ) + mad? ( media-libs/libmad ) + mng? ( media-libs/libmng ) + mpg123? ( media-sound/mpg123 ) + nas? ( media-libs/nas ) + nut? ( >=media-libs/libnut-661 ) + png? ( media-libs/libpng ) + pnm? ( media-libs/netpbm ) + pulseaudio? ( media-sound/pulseaudio ) + rar? ( + || ( + app-arch/unrar + app-arch/rar + ) + ) + samba? ( net-fs/samba ) + sdl? ( media-libs/libsdl ) + speex? ( media-libs/speex ) + theora? ( media-libs/libtheora ) + truetype? ( ${FONT_RDEPS} ) + vorbis? ( media-libs/libvorbis ) + xanim? ( media-video/xanim ) + system-ffmpeg? ( + >=media-video/ffmpeg-0.6_p25423[amr?,bzip2?,dirac?,gsm?,hardcoded-tables?,jpeg2k?,rtmp?,schroedinger?,threads?,vpx?] + ) + !system-ffmpeg? ( + amr? ( media-libs/opencore-amr ) + bzip2? ( app-arch/bzip2 ) + dirac? ( media-video/dirac ) + gsm? ( >=media-sound/gsm-1.0.12-r1 ) + jpeg2k? ( >=media-libs/openjpeg-1.3-r2 ) + rtmp? ( media-video/rtmpdump ) + schroedinger? ( media-libs/schroedinger ) + vpx? ( media-libs/libvpx ) + ) + symlink? ( !media-video/mplayer ) +" + +X_DEPS=" + x11-proto/videoproto + x11-proto/xf86vidmodeproto +" +ASM_DEP="dev-lang/yasm" +DEPEND="${RDEPEND} + dev-util/pkgconfig + dev-lang/python + sys-devel/gettext + X? ( + ${X_DEPS} + dga? ( x11-proto/xf86dgaproto ) + dxr3? ( media-video/em8300-libraries ) + xinerama? ( x11-proto/xineramaproto ) + xscreensaver? ( x11-proto/scrnsaverproto ) + ) + amd64? ( ${ASM_DEP} ) + doc? ( + dev-libs/libxslt app-text/docbook-xml-dtd + app-text/docbook-xsl-stylesheets + ) + x86? ( ${ASM_DEP} ) + x86-fbsd? ( ${ASM_DEP} ) +" + +SLOT="0" +LICENSE="GPL-3" +if [[ ${PV} != *9999* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris" +else + KEYWORDS="" +fi + +# bindist does not cope with amr codecs (#299405#c6), win32codecs are nonfree +# libcdio support: prefer libcdio over cdparanoia and don't check for cddb w/cdio +# dvd navigation requires dvd read support +# ass and freetype font require iconv and ass requires freetype fonts +# unicode transformations are usefull only with iconv +# libvorbis require external tremor to work +# radio requires oss or alsa backend +# xvmc requires xvideo support +REQUIRED_USE="bindist? ( !win32codecs )" + +PATCHES=( +) + +pkg_setup() { + if [[ ${PV} == *9999* ]]; then + elog + elog "This is a live ebuild which installs the latest from upstream's" + elog "${VCS_ECLASS} repository, and is unsupported by Gentoo." + elog "Everything but bugs in the ebuild itself will be ignored." + elog + fi + + if use cpudetection; then + ewarn + ewarn "You've enabled the cpudetection flag. This feature is" + ewarn "included mainly for people who want to use the same" + ewarn "binary on another system with a different CPU architecture." + ewarn "MPlayer will already detect your CPU settings by default at" + ewarn "buildtime; this flag is used for runtime detection." + ewarn "You won't need this turned on if you are only building" + ewarn "mplayer for this system. Also, if your compile fails, try" + ewarn "disabling this use flag." + fi + + if use custom-cpuopts; then + ewarn + ewarn "You are using the custom-cpuopts flag which will" + ewarn "specifically allow you to enable / disable certain" + ewarn "CPU optimizations." + ewarn + ewarn "Most desktop users won't need this functionality, but it" + ewarn "is included for corner cases like cross-compiling and" + ewarn "certain profiles. If unsure, disable this flag and MPlayer" + ewarn "will automatically detect and use your available CPU" + ewarn "optimizations." + ewarn + ewarn "Using this flag means your build is unsupported, so" + ewarn "please make sure your CPU optimization use flags (3dnow" + ewarn "3dnowext mmx mmxext sse sse2 ssse3) are properly set." + fi + + if use ffmpeg-mt && use system-ffmpeg; then + ewarn "USE flags ffmpeg-mt and system-ffmpeg are not compatible, system-ffmpeg will be used." + fi +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git_src_unpack + + EGIT_REPO_URI="git://repo.or.cz/mplayer.git" + EGIT_PROJECT="${PN}" + S+="/mplayer" + git_fetch + S="${WORKDIR}/${P}" + + if ! use system-ffmpeg; then + if use ffmpeg-mt; then + EGIT_BRANCH="mt" + EGIT_COMMIT="mt" + S+="/ffmpeg-mt" + else + S+="/ffmpeg" + fi + EGIT_REPO_URI="git://repo.or.cz/FFMpeg-mirror/mplayer-patches.git" + EGIT_PROJECT="${PN}-ffmpeg" + git_fetch + EGIT_BRANCH="master" + unset EGIT_COMMIT + + cd "${S}" + EGIT_REPO_URI="git://git.mplayerhq.hu/libswscale" + EGIT_PROJECT="libswscale" + EGIT_COMMIT="$(git submodule status -- libswscale|sed -e 's/^-\(.*\) .*/\1/')" + S+="/${EGIT_PROJECT}" + git_fetch + + S="${WORKDIR}/${P}" + fi + + cd "${WORKDIR}" + else + unpack ${A} + fi + + 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 +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + git_src_prepare + # Set GIT version manually + pushd mplayer + echo "GIT-r$(git rev-list HEAD|wc -l)-$(git describe --always)" \ + > VERSION || die + popd + fi + + # remove internal libs and use system: + sed -e '/^mplayer: /s/libass//' \ + -i Makefile || die + rm -rf \ + libass \ + || die + + if use system-ffmpeg; then + sed -e '/^mplayer: /s/ffmpeg//' \ + -i Makefile || die + rm -rf ffmpeg ffmpeg-mt || die + else + if use ffmpeg-mt; then + touch ffmpeg-mt-enabled || die "enable-mt failed" + rm -rf ffmpeg || die + else + rm -rf ffmpeg-mt || die + fi + sed -i \ + -e "/'--cpu=host',/d" \ + -e "/'--disable-debug',/d" \ + -e "/'--enable-pthreads',/d" \ + script/ffmpeg-config || die + fi + + # fix path to bash executable in configure scripts + local bash_scripts="mplayer/configure mplayer/version.sh" + use system-ffmpeg || bash_scripts+=" ffmpeg*/configure ffmpeg*/version.sh" + sed -i -e "1c\#!${EPREFIX}/bin/bash" \ + ${bash_scripts} || die + + # We want mplayer${namesuf} + if [[ "${namesuf}" != "" ]]; then + pushd mplayer + sed -e "/elif linux ; then/a\ _exesuf=\"${namesuf}\"" \ + -i configure || die + sed -e "/ -m 644 DOCS\/man\/en\/mplayer/i\ mv DOCS\/man\/en\/mplayer.1 DOCS\/man\/en\/mplayer${namesuf}.1" \ + -e "/ -m 644 DOCS\/man\/\$(lang)\/mplayer/i\ mv DOCS\/man\/\$(lang)\/mplayer.1 DOCS\/man\/\$(lang)\/mplayer${namesuf}.1" \ + -e "s/er.1/er${namesuf}.1/g" \ + -i Makefile || die + sed -e "s/mplayer/mplayer${namesuf}/" \ + -i TOOLS/midentify.sh || die + popd + fi + + base_src_prepare +} + +src_configure() { + local myconf="" + local uses i + + # set LINGUAS + [[ -n $LINGUAS ]] && LINGUAS="${LINGUAS/da/dk}" + + # mplayer ebuild uses "use foo || --disable-foo" to forcibly disable + # compilation in almost every situation. The reason for this is + # because if --enable is used, it will force the build of that option, + # regardless of whether the dependency is available or not. + + ################### + #Optional features# + ################### + # disable svga since we don't want it + # disable arts since we don't have kde3 + # disable tremor, it needs libvorbisidec and is for FPU-less systems only + myconf+=" + --disable-svga + --disable-arts + --disable-kai + --disable-tremor + $(use_enable network networking) + $(use_enable joystick) + " + uses="ass bl bluray enca ftp rtc" # nemesi <- not working with in-tree ebuild + myconf+=" --disable-nemesi" # nemesi automagic disable + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + use bidi || myconf+=" --disable-fribidi" + use ipv6 || myconf+=" --disable-inet6" + use nut || myconf+=" --disable-libnut" + use rar || myconf+=" --disable-unrarexec" + use samba || myconf+=" --disable-smb" + if ! use lirc; then + myconf+=" + --disable-lirc + --disable-lircc + --disable-apple-ir + " + fi + + # libcdio support: prefer libcdio over cdparanoia + # don't check for cddb w/cdio + if use cdio; then + myconf+=" --disable-cdparanoia" + else + myconf+=" --disable-libcdio" + use cdparanoia || myconf+=" --disable-cdparanoia" + use cddb || myconf+=" --disable-cddb" + fi + + ################################ + # DVD read, navigation support # + ################################ + # + # dvdread - accessing a DVD + # dvdnav - navigation of menus + # + # use external libdvdcss, dvdread and dvdnav + myconf+=" --disable-dvdread-internal --disable-libdvdcss-internal" + if use dvd; then + use dvdnav || myconf+=" --disable-dvdnav" + else + myconf+=" + --disable-dvdnav + --disable-dvdread + " + fi + + ############# + # Subtitles # + ############# + # + # SRT/ASS/SSA (subtitles) requires freetype support + # freetype support requires iconv + # iconv optionally can use unicode + if ! use ass && ! use truetype; then + myconf+=" --disable-freetype" + if ! use iconv; then + myconf+=" + --disable-iconv + --charset=noconv + " + fi + fi + use iconv && use unicode && myconf+=" --charset=UTF-8" + + ##################################### + # DVB / Video4Linux / Radio support # + ##################################### + myconf+=" --disable-tv-bsdbt848" + # broken upstream, won't work with recent kernels + myconf+=" --disable-ivtv" + if { use dvb || use v4l || use v4l2 || use pvr || use radio; }; then + use dvb || myconf+=" --disable-dvb" + use pvr || myconf+=" --disable-pvr" + use v4l || myconf+=" --disable-tv-v4l1" + use v4l2 || myconf+=" --disable-tv-v4l2" + if use radio && { use dvb || use v4l || use v4l2; }; then + myconf+=" + --enable-radio + --disable-radio-capture + " + else + myconf+=" + --disable-radio-v4l2 + --disable-radio-bsdbt848 + " + fi + else + myconf+=" + --disable-tv + --disable-tv-v4l1 + --disable-tv-v4l2 + --disable-radio + --disable-radio-v4l2 + --disable-radio-bsdbt848 + --disable-dvb + --disable-v4l2 + --disable-pvr" + fi + + ########## + # Codecs # + ########## + myconf+=" --disable-musepack" # deprecated, libavcodec Musepack decoder is preferred + use dts || myconf+=" --disable-libdca" + if ! use mp3; then + myconf+=" + --disable-mp3lib + " + fi + uses="a52 bs2b dv vorbis" + for i in ${uses}; do + use ${i} || myconf+=" --disable-lib${i}" + done + uses="faad gif jpeg live mad mng mpg123 png pnm speex tga theora xanim" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + + # Encoding + uses="xvid" + for i in ${uses}; do + myconf+=" --disable-${i}" + done + + ################# + # Binary codecs # + ################# + # bug 213836 + if ! use x86 || ! use win32codecs; then + use quicktime || myconf+=" --disable-qtx" + fi + + ###################### + # RealPlayer support # + ###################### + # Realplayer support shows up in four places: + # - libavcodec (internal) + # - win32codecs + # - realcodecs (win32codecs libs) + # - realcodecs (realplayer libs) + + # internal + use real || myconf+=" --disable-real" + + # Real binary codec support only available on x86, amd64 + if use real; then + use x86 && myconf+=" --codecsdir=/opt/RealPlayer/codecs" + use amd64 && myconf+=" --codecsdir=/usr/$(get_libdir)/codecs" + fi + myconf+=" $(use_enable win32codecs win32dll)" + + ################ + # Video Output # + ################ + uses="directfb md5sum sdl" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + use aalib || myconf+=" --disable-aa" + use fbcon || myconf+=" --disable-fbdev" + use fbcon && use video_cards_s3virge && myconf+=" --enable-s3fb" + use libcaca || myconf+=" --disable-caca" + + if ! use kernel_linux || ! use video_cards_mga; then + myconf+=" --disable-mga --disable-xmga" + fi + + if use video_cards_tdfx; then + myconf+=" + $(use_enable video_cards_tdfx tdfxvid) + $(use_enable fbcon tdfxfb) + " + else + myconf+=" + --disable-3dfx + --disable-tdfxvid + --disable-tdfxfb + " + fi + + # sun card, disable by default, see bug #258729 + myconf+=" --disable-xvr100" + + ################ + # Audio Output # + ################ + uses="alsa esd jack ladspa nas" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + #use openal && myconf+=" --enable-openal" # build fails + use pulseaudio || myconf+=" --disable-pulse" + if ! use radio; then + use oss || myconf+=" --disable-ossaudio" + fi + + #################### + # Advanced Options # + #################### + # Platform specific flags, hardcoded on amd64 (see below) + use cpudetection && myconf+=" --enable-runtime-cpudetection" + + # Turning off CPU optimizations usually will break the build. + # However, this use flag, if enabled, will allow users to completely + # specify which ones to use. If disabled, mplayer will automatically + # enable all CPU optimizations that the host build supports. + if use custom-cpuopts; then + uses="3dnow 3dnowext altivec mmx mmxext shm sse sse2 ssse3" + for i in ${uses}; do + myconf+=" $(use_enable ${i})" + done + fi + + use debug && myconf+=" --enable-debug=3" + + if use x86 && gcc-specs-pie; then + filter-flags -fPIC -fPIE + append-ldflags -nopie + fi + + is-flag -O? || append-flags -O2 + + # workaround bug, x86 just has too few registers, see c.f. + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=402950#44 + # and 32-bits OSX, bug 329861 + if [[ ${CHOST} == i?86-* ]] ; then + use debug || append-flags -fomit-frame-pointer + fi + + ########################### + # X enabled configuration # + ########################### + if use X; then + uses="dxr3 ggi xinerama" + for i in ${uses}; do + use ${i} || myconf+=" --disable-${i}" + done + use dga || myconf+=" --disable-dga1 --disable-dga2" + use opengl || myconf+=" --disable-gl" + use osdmenu && myconf+=" --enable-menu" + use vdpau || myconf+=" --disable-vdpau" + use video_cards_vesa || myconf+=" --disable-vesa" + use xscreensaver || myconf+=" --disable-xss" + + if use xv; then + if use xvmc; then + myconf+=" --enable-xvmc --with-xvmclib=XvMCW" + else + myconf+=" --disable-xvmc" + fi + else + myconf+=" + --disable-xv + --disable-xvmc + " + use xvmc && elog "Disabling xvmc because it requires \"xv\" useflag enabled." + fi + else + myconf+=" + --disable-dga1 + --disable-dga2 + --disable-dxr3 + --disable-ggi + --disable-gl + --disable-vdpau + --disable-xinerama + --disable-xss + --disable-xv + --disable-xvmc + --disable-x11 + " + uses="dga dxr3 ggi opengl osdmenu vdpau xinerama xscreensaver xv" + for i in ${uses}; do + use ${i} && elog "Useflag \"${i}\" require \"X\" useflag enabled to work." + done + fi + + ############################ + # OSX (aqua) configuration # + ############################ + if use aqua; then + myconf+=" + --enable-macosx-finder + --enable-macosx-bundle + " + fi + + common_options=" + --cc=$(tc-getCC) + --host-cc=$(tc-getBUILD_CC) + " + myconf+=" + --prefix="${EPREFIX}"/usr + --bindir="${EPREFIX}"/usr/bin + --libdir="${EPREFIX}"/usr/$(get_libdir) + --confdir="${EPREFIX}"/etc/mplayer + --datadir="${EPREFIX}"/usr/share/mplayer${namesuf} + --mandir="${EPREFIX}"/usr/share/man + --localedir="${EPREFIX}"/usr/share/locale + --enable-translation + " + + echo "${common_options}" > common_options + echo "${myconf}" > mplayer_options + + if ! use system-ffmpeg; then + local ffconf=" + --enable-gpl + --enable-version3 + --enable-postproc + --disable-stripping + " + + # enabled by default + use debug || ffconf+=" --disable-debug" + use network || ffconf+=" --disable-network" + use bzip2 || ffconf+=" --disable-bzlib" + + use custom-cflags && ffconf+=" --disable-optimizations" + use cpudetection && ffconf+=" --enable-runtime-cpudetect" + + # Threads; we only support pthread for now but ffmpeg supports more + use threads || ffconf+=" --disable-pthreads" + + # ffmpeg encoders + for i in faac mp3lame theora vorbis x264 xvid; do + ffconf+=" --disable-lib${i}" + done + + # ffmpeg decoders + use amr && ffconf+=" --enable-libopencore-amrwb --enable-libopencore-amrnb" + for i in gsm dirac rtmp schroedinger speex vpx; do + use ${i} && ffconf+=" --enable-lib${i}" + done + use jpeg2k && ffconf+=" --enable-libopenjpeg" + + # CPU features + for i in mmx ssse3 altivec ; do + use ${i} || ffconf+=" --disable-${i}" + done + use mmxext || ffconf+=" --disable-mmx2" + use 3dnow || ffconf+=" --disable-amd3dnow" + use 3dnowext || ffconf+=" --disable-amd3dnowext" + # disable mmx accelerated code if PIC is required + # as the provided asm decidedly is not PIC. + if gcc-specs-pie ; then + ffconf+=" --disable-mmx --disable-mmx2" + fi + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do + [ "${i}" = "native" ] && i="host" # bug #273421 + [[ ${i} = *-sse3 ]] && i="${i%-sse3}" # bug 283968 + ffconf+=" --cpu=${i}" + break + done + + # cross compile support + if tc-is-cross-compiler ; then + ffconf+=" --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}-" + case ${CHOST} in + *freebsd*) + ffconf+=" --target-os=freebsd" + ;; + mingw32*) + ffconf+=" --target-os=mingw32" + ;; + *linux*) + ffconf+=" --target-os=linux" + ;; + esac + fi + + # Misc stuff + use hardcoded-tables && ffconf+=" --enable-hardcoded-tables" + + echo "${ffconf}" > ffmpeg_options + fi + + sed -i \ + -e 's/\t//g' \ + -e 's/ --/\n--/g' \ + -e '/^$/d' \ + *_options || die +} + +src_compile() { + base_src_compile + # Build only user-requested docs if they're available. + if use doc ; then + pushd mplayer + # select available languages from $LINGUAS + LINGUAS=${LINGUAS/zh/zh_CN} + local ALLOWED_LINGUAS="cs de en es fr hu it pl ru zh_CN" + local BUILT_DOCS="" + for i in ${LINGUAS} ; do + hasq ${i} ${ALLOWED_LINGUAS} && BUILT_DOCS+=" ${i}" + done + if [[ -z $BUILT_DOCS ]]; then + emake -j1 -C DOCS/xml html-chunked + else + for i in ${BUILT_DOCS}; do + emake -j1 -C DOCS/xml html-chunked-${i} + done + fi + fi +} + +src_install() { + local i + + emake \ + DESTDIR="${D}" \ + INSTALLSTRIP="" \ + install + + S+="/mplayer" + cd "${S}" + dodoc AUTHORS Copyright README etc/codecs.conf + + docinto tech/ + dodoc DOCS/tech/{*.txt,mpsub.sub,playtree} + docinto TOOLS/ + dodoc -r TOOLS + if use real; then + docinto tech/realcodecs/ + dodoc DOCS/tech/realcodecs/* + fi + + if use doc; then + docinto html/ + dohtml -r "${S}"/DOCS/HTML/* + fi + + if ! use ass && ! use truetype; then + dodir /usr/share/mplayer${namesuf}/fonts + # Do this generic, as the mplayer people like to change the structure + # of their zips ... + for i in $(find "${WORKDIR}/" -type d -name 'font-arial-*'); do + cp -pPR "${i}" "${ED}/usr/share/mplayer${namesuf}/fonts" + done + # Fix the font symlink ... + rm -rf "${ED}/usr/share/mplayer${namesuf}/font" + dosym fonts/font-arial-14-iso-8859-1 /usr/share/mplayer${namesuf}/font + fi + + if use symlink; then + insinto /etc/mplayer + newins "${S}/etc/example.conf" mplayer.conf + doins "${S}/etc/input.conf" + if use osdmenu; then + doins "${S}/etc/menu.conf" + fi + + if use ass || use truetype; then + cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_ +fontconfig=1 +subfont-osd-scale=4 +subfont-text-scale=3 +_EOF_ + fi + + # bug 256203 + if use rar; then + cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_ +unrarexec=${EPREFIX}/usr/bin/unrar +_EOF_ + fi + + dosym ../../../etc/mplayer/mplayer.conf /usr/share/mplayer${namesuf}/mplayer.conf + fi + + newbin "${S}/TOOLS/midentify.sh" midentify${namesuf} + + if [[ "${namesuf}" != "" ]] && use symlink; then + dosym "mplayer${namesuf}" /usr/bin/mplayer + dosym "midentify${namesuf}" /usr/bin/midentify + fi +} + +pkg_postrm() { + # Cleanup stale symlinks + [ -L "${EROOT}/usr/share/mplayer${namesuf}/font" -a \ + ! -e "${EROOT}/usr/share/mplayer${namesuf}/font" ] && \ + rm -f "${EROOT}/usr/share/mplayer${namesuf}/font" +} |