#
+# TODO:
+# - use external lrmi and few other libs:
+# http://www.gocyberlink.com/english/products/powercinema/pcm-linux/license/mplayer-10_copyright.htm
+#
# Conditional build:
%bcond_with directfb # with DirectFB video output
-%bcond_with divx4linux # with divx4linux a/v support (binaries, instead
- # of included OpenDivx)
-
+%bcond_with divx4linux # with divx4linux a/v support (binaries, instead of included OpenDivx)
%bcond_with dxr3 # enable use of DXR3/H+ hardware MPEG decoder
%bcond_with ggi # with ggi video output
-%bcond_with live # enable use of live.com libraries
%bcond_with nas # with NAS audio output
%bcond_with svga # with svgalib video output
%bcond_with osd # with osd menu support
-
-%bcond_with altivec # with altivec support (won't run w/o altivec
- # due to instruction used in CPU detection(?))
-
+%bcond_with altivec # with altivec support (altivec code brakes image in mpeg4, and may segfault on others)
%bcond_with xmms # with XMMS inputplugin support
-
%bcond_without aalib # without aalib video output
%bcond_without jack # without JACKD support
%bcond_without alsa # without ALSA audio output
%bcond_without arts # without arts audio output
%bcond_without caca # without libcaca video output
+%bcond_without cdparanoia # without cdparanoia support
%bcond_without dshow # disable DirectShow support
+%bcond_without enca # disable using ENCA charset oracle library
+%bcond_without esd # disable EsounD sound support
+%bcond_without faad # disable FAAD2 (AAC) support
+%bcond_without gif # disable GIF support
%bcond_without gui # without GTK+ GUI
%bcond_without joystick # disable joystick support
+%bcond_without libdts # disable libdts support
%bcond_without libdv # disable libdv en/decoding support
%bcond_without lirc # without lirc support
+%bcond_without live # without live.com libraries
%bcond_without mad # without mad (audio MPEG) support
%bcond_without polyp # without polyp audio output
%bcond_without quicktime # without binary quicktime dll support
%bcond_without real # without Real* 8/9 codecs support
%bcond_without runtime # disable runtime cpu detection, just detect CPU
- # in compile time (advertised by mplayer
- # authors as working faster); in this case
- # mplayer may not work on machine other then
- # where it was compiled
-%bcond_without select # disable audio select() support (for example
- # required this option ALSA or Vortex2 driver)
+ # in compile time (advertised by mplayer authors as working faster); in this case
+ # mplayer may not work on machine other then where it was compiled
+%bcond_without select # disable audio select() support (for example required this option ALSA or Vortex2 driver)
%bcond_without smb # disable Samba (SMB) input support
%bcond_without theora # without theora support
%bcond_without win32 # without win32 codecs support
%bcond_without vorbis # without Ogg-Vorbis audio support
+%bcond_without xvid # disable XviD codec
%bcond_without mencoder # disable mencoder (a/v encoder) compilation
-
+%bcond_without sdl # disable SDL
+%bcond_without doc # don't build docs (slow)
%bcond_with gtk2 # EXPERIMENTAL support for GTK+ version 2
-%bcond_with xlibs
+%bcond_with shared # experimental libmplayer.so support
%ifnarch %{ix86}
%undefine with_win32
%undefine with_quicktime
%endif
+%ifarch %{x8664}
+%undefine with_runtime
+%endif
+
+%if %{_lib} == "lib64"
+%define _suf 64
+%else
+%define _suf 32
+%endif
+
# set it to 0, or 1
%define snapshot 0
%define sname MPlayer
%define snap %{nil}
-%define pre pre6a
+%define pre pre7try2
-Summary: Yet another movie player
+Summary: MPlayer - THE Movie Player for UN*X
+Summary(de): MPlayer ist ein unter der freien GPL-Lizenz stehender Media-Player
Summary(es): Otro reproductor de películas
Summary(ko): ¸®´ª½º¿ë ¹Ìµð¾îÇ÷¹À̾î
-Summary(pl): Jeszcze jeden odtwarzacz filmów
+Summary(pl): Odtwarzacz filmów dla systemów uniksowych
Summary(pt_BR): Reprodutor de filmes
Name: mplayer
Version: 1.0
-Release: 1.%{pre}.1
-Epoch: 2
+%define _rel 2.1
+#Release: 2.%{pre}.%{_rel}
+Release: 2.pre7try3.%{_rel}
+# DO NOT increase epoch unless it's really neccessary!
+# especially such changes like pre7->pre7try2, increase Release instead!
+# PS: $ rpmvercmp pre7try2 pre7
+# pre7try2 > pre7
+Epoch: 3
License: GPL
-Group: X11/Applications/Multimedia
+Group: Applications/Multimedia
%if %{snapshot}
-#Source0: ftp://ftp1.mplayerhq.hu/%{sname}/cvs/%{sname}-%{snap}.tar.bz2
+#Source0: ftp://ftp1.mplayerhq.hu/MPlayer/cvs/%{sname}-%{snap}.tar.bz2
#Source0: %{name}-%{snap}.tar.bz2
#Source1: libavcodec-%{snap}.tar.bz2
%else
-Source0: ftp://ftp1.mplayerhq.hu/%{sname}/releases/%{sname}-%{version}%{pre}.tar.bz2
-# Source0-md5: a812d945b884c2e2fa7f90c57cd76bff
+Source0: ftp://ftp2.mplayerhq.hu/MPlayer/releases/%{sname}-%{version}%{pre}.tar.bz2
+# Source0-md5: aaca4fd327176c1afb463f0f047ef6f4
%endif
-Source3: ftp://ftp1.mplayerhq.hu/%{sname}/releases/fonts/font-arial-iso-8859-2.tar.bz2
+Source3: ftp://ftp1.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-2.tar.bz2
# Source3-md5: 7b47904a925cf58ea546ca15f3df160c
-Source4: ftp://ftp1.mplayerhq.hu/%{sname}/Skin/default-1.8.tar.bz2
-# Source4-md5: 9b2cae8ad3fa63db3cd0ee201759d708
Source5: g%{name}.desktop
-Source6: ftp://ftp1.mplayerhq.hu/%{sname}/releases/fonts/font-arial-iso-8859-1.tar.bz2
+Source6: ftp://ftp2.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2
# Source6-md5: 1ecd31d17b51f16332b1fcc7da36b312
Source7: %{name}.png
+Source8: %{name}.desktop
Patch0: %{name}-no_libnsl.patch
Patch1: %{name}-cp1250-fontdesc.patch
Patch2: %{name}-codec.patch
Patch9: %{name}-assembly.patch
Patch10: %{name}-pcmsplit.patch
Patch11: %{name}-bio2jack.patch
+Patch12: %{name}-x86_64-detection.patch
+Patch13: %{name}-mythtv.patch
+Patch14: %{name}-shared.patch
+Patch15: %{name}-xvmc.patch
+Patch16: %{name}-kill-mabi_altivec.patch
+Patch17: %{name}-gcc4.patch
+Patch18: http://www.mplayerhq.hu/MPlayer/patches/demuxer_h_fix_20060212.diff
+Patch19: %{name}-CVE-2005-4048.patch
+#http://www.openchrome.org/snapshots/mplayer/
URL: http://www.mplayerhq.hu/
%{?with_directfb:BuildRequires: DirectFB-devel}
BuildRequires: OpenGL-devel
-BuildRequires: SDL-devel >= 1.1.7
-%if %{with xlibs}
-BuildRequires: libXv-devel
-%else
-BuildRequires: XFree86-devel >= 4.0.2
-%endif
+%{?with_sdl:BuildRequires: SDL-devel >= 1.1.7}
%{?with_aalib:BuildRequires: aalib-devel}
%{?with_alsa:BuildRequires: alsa-lib-devel}
%{?with_arts:BuildRequires: artsc-devel}
-BuildRequires: audiofile-devel
-BuildRequires: cdparanoia-III-devel
+%{?with_cdparanoia:BuildRequires: cdparanoia-III-devel}
%{?with_divx4linux:BuildRequires: divx4linux-devel >= 1:5.01.20020418}
+%{?with_doc:BuildRequires: docbook-style-xsl}
%{?with_dxr3:BuildRequires: em8300-devel}
-BuildRequires: enca-devel
-BuildRequires: esound-devel
-BuildRequires: faad2-devel >= 2.0
+%{?with_enca:BuildRequires: enca-devel}
+%{?with_esd:BuildRequires: esound-devel}
+%{?with_faad:BuildRequires: faad2-devel >= 2.0}
BuildRequires: freetype-devel
%ifarch ppc
%{?with_altivec:BuildRequires: gcc >= 5:3.3.2-3}
%endif
+%{?with_gif:BuildRequires: giflib-devel}
%if %{with gui}
BuildRequires: gtk+%{?with_gtk2:2}-devel
%endif
BuildRequires: lame-libs-devel
%{?with_jack:BuildRequires: libbio2jack-devel}
%{?with_caca:BuildRequires: libcaca-devel}
-BuildRequires: libdts-devel
+%{?with_libdts:BuildRequires: libdts-devel}
%{?with_libdv:BuildRequires: libdv-devel}
%{?with_ggi:BuildRequires: libggi-devel}
BuildRequires: libjpeg-devel
%{?with_dshow:BuildRequires: libstdc++-devel}
%{?with_theora:BuildRequires: libtheora-devel}
%{?with_vorbis:BuildRequires: libvorbis-devel}
-BuildRequires: libungif-devel
BuildRequires: libxslt-progs
%{?with_lirc:BuildRequires: lirc-devel}
%{?with_live:BuildRequires: live}
BuildRequires: lzo-devel
%{?with_nas:BuildRequires: nas-devel}
BuildRequires: ncurses-devel
+BuildRequires: pkgconfig
%{?with_polyp:BuildRequires: polypaudio-devel}
%{?with_svga:BuildRequires: svgalib-devel}
%{?with_xmms:BuildRequires: xmms-libs}
-BuildRequires: xvid-devel >= 1:0.9.0
+BuildRequires: xorg-lib-libXvMC-devel
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXinerama-devel
+BuildRequires: xorg-lib-libXv-devel
+BuildRequires: xorg-lib-libXxf86dga-devel
+BuildRequires: xorg-lib-libXxf86vm-devel
+%{?with_xvid:BuildRequires: xvid-devel >= 1:0.9.0}
BuildRequires: zlib-devel
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires(post,postun): /sbin/ldconfig
Requires: OpenGL
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _noautoreqdep libGL.so.1 libGLU.so.1
-%define specflags -fomit-frame-pointer
+%define specflags_ia32 -fomit-frame-pointer
%define specflags_alpha -mmax
%if %{with altivec}
-%define specflags_ppc -maltivec -mabi=altivec
+%define specflags_ppc -maltivec
%endif
%description
If you want to use win32 codecs install w32codec package.
+%description -l de
+MPlayer ist ein unter der freien GPL-Lizenz stehender Media-Player.
+Kennzeichnend ist die herausragende Format- und
+Plattform-Kompatibilität.
+
+Es unterstützt eine Vielzahl von Video und Audio-Codecs, darunter auch
+plattformexklusive, wodurch etwa Windows Media auch außerhalb von
+Windows wiedergegeben werden kann. Darüber hinaus unterstützt er DVB.
+Eine besondere Fehlertoleranz ermöglicht es dem mehrfach
+ausgezeichneten Player, auch defekte Dateien abzuspielen. Eine weitere
+Stärke ist dabei der Wegfall jeglicher Installation, so dass bereits
+installierte Codecs nicht mit MPlayer kollidieren können.
+
%description -l es
Reproductor video. Formatos de entrada soportados: VCD (VideoCD),
MPEG1/2, RIFF AVI, ASF 1.0, Quicktime. Codecs de audio soportados: PCM
áudio. Diferentes mecanismos de reprodução podem também ser
escolhidos, incluindo SDL, SVGALib, frame buffer, aalib, X11 e outros.
+%package -n gmplayer
+Summary: MPlayer with GTK+ GUI interface
+Summary(pl): MPlayer z graficznym interfejsem GTK+
+Group: X11/Applications/Multimedia
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-skin
+Provides: %{name} = %{epoch}:%{version}-%{release}
+
+%description -n gmplayer
+MPlayer with GUI GTK+ interface.
+
+%description -n gmplayer -l pl
+MPlayer z graficznym interfejsem GTK+.
+
+%package common
+Summary: Configuration files and documentation for MPlayer
+Summary(pl): Pliki konfiguracyjne i dokumentacja dla MPlayera
+Group: Applications/Multimedia
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description common
+Configuration files, man page and HTML documentation for MPlayer.
+
+%description common -l pl
+Pliki konfiguracyjne, strona manuala i dokumentacja HTML dla MPlayera.
+
+%package -n mencoder
+Summary: MEncoder - a movie encoder for Linux
+Summary(pl): MEncoder - koder filmów dla Linuksa
+Group: Applications/Multimedia
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+
+%description -n mencoder
+MEncoder is a movie encoder for Linux and is a part of the MPlayer
+package.
+
+%description -n mencoder -l pl
+MEncoder to koder filmów dla Linuksa bêd±cy czê¶ci± pakietu MPlayer.
+
%prep
%if %{snapshot}
%setup -q -n %{name}-%{snap} -a 1 -a 3 -a 6
%patch7 -p1
%patch8 -p1
%patch9 -p1
-%patch10 -p1
+#%%patch10 -p1
%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%if %{with shared}
+%patch14 -p1
+%endif
+%patch15 -p0
+%patch16 -p1
+%patch17 -p1
+%patch18 -p0
+%patch19 -p1
# kill evil file, hackery not needed with llh
echo > osdep/kerneltwosix.h
find . -type d -name CVS -print | xargs rm -rf
%build
+%if %{with shared}
+CFLAGS="%{rpmcflags} -fPIC"
+LDFLAGS="%{rpmldflags} -wl,--as-needed"
+%else
CFLAGS="%{rpmcflags}"
+LDFLAGS="%{rpmldflags}"
+%endif
CC="%{__cc}"
export CC CFLAGS
-./configure \
+
+build() {
+set -x
+ ./configure \
+ %{?debug:--enable-debug=3} \
--prefix=%{_prefix} \
--confdir=%{_sysconfdir}/mplayer \
- --with-x11incdir=%{_prefix}/X11R6/include \
+ --with-x11incdir=%{_includedir} \
+ --with-x11libdir=%{_libdir} \
--with-extraincdir=%{_includedir}/xvid \
-%ifnarch %{ix86}
+ --enable-menu \
+%ifnarch %{ix86} %{x8664}
--disable-mmx \
--disable-mmx2 \
--disable-3dnow \
%ifarch ppc
%{!?with_altivec:--disable-altivec} \
%endif
+%{?with_directfb:--enable-directfb} \
%{!?with_directfb:--disable-directfb} \
%{!?with_divx4linux:--disable-divx4linux} \
%{?with_divx4linux:--with-extraincdir=/usr/include/divx} \
%{!?with_dxr3:--disable-dxr3} \
%{!?with_ggi:--disable-ggi} \
-%{?with_live:--enable-live --with-livelibdir=/usr/lib/liveMedia --with-extraincdir=/usr/include/liveMedia } \
+%{?with_live:--enable-live --with-livelibdir=%{_libdir}/liveMedia --with-extraincdir=/usr/include/liveMedia} \
%{!?with_live:--disable-live} \
%{!?with_nas:--disable-nas} \
%{!?with_svga:--disable-svga} \
%{?with_alsa:--enable-alsa --disable-select} \
%{!?with_arts:--disable-arts} \
%{!?with_caca:--disable-caca} \
+%{!?with_cdparanoia:--disable-cdparanoia} \
%{!?with_dshow:--disable-dshow} \
-%{?with_gui:--enable-gui} \
+%{!?with_enca:--disable-enca} \
+%{!?with_esd:--disable-esd} \
+%{!?with_faad:--disable-external-faad --disable-internal-faad}%{?with_faad:--enable-external-faad} \
+%{!?with_gif:--disable-gif} \
%{?with_joystick:--enable-joystick} \
%{!?with_libdv:--disable-libdv} \
-%{!?with_lirc:--disable-lirc} \
+%{!?with_libdts:--disable-libdts} \
+--%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
%{!?with_mad:--disable-mad} \
%{!?with_polyp:--disable-polyp} \
%{!?with_quicktime:--disable-qtx} \
%{!?with_real:--disable-real} \
-%{!?with_runtime:--disable-runtime-cpudetection} \
-%{?with_runtime:--enable-runtime-cpudetection} \
+--%{?with_runtime:en}%{!?with_runtime:dis}able-runtime-cpudetection \
%{!?with_select:--disable-select} \
%{!?with_smb:--disable-smb} \
%{!?with_win32:--disable-win32} \
%{?with_osd:--enable-menu} \
%{!?with_theora:--disable-theora} \
%{?with_xmms:--enable-xmms --with-xmmsplugindir=%{_libdir}/xmms/Input --with-xmmslibdir=%{_libdir}} \
+%{!?with_xvid:--disable-xvid} \
%{!?with_mencoder:--disable-mencoder} \
- --enable-external-faad \
--enable-dga \
--enable-fbdev \
--enable-gl \
--enable-mga \
- --enable-sdl \
+ --%{?with_sdl:en}%{!?with_sdl:dis}able-sdl \
--enable-tdfxfb \
--enable-vm \
--enable-x11 \
--enable-xmga \
--enable-xv \
--enable-xvmc \
- --enable-xvid \
+ --enable-dynamic-plugins \
--enable-largefiles \
--language=all \
--with-codecsdir=%{_libdir}/codecs \
- --enable-dynamic-plugins
+ --with-xvmclib=XvMCW \
+ "$@"
+
+ %{__make}
+}
+
+%if %{with gui}
+# build GUI version
+build --enable-gui
+mv -f mplayer gmplayer
+%{__make} clean
+%endif
-%{__make}
+# now build regular version
+build --disable-gui
-%{__make} -C DOCS/xml
+%if %{with doc}
+%{__make} -j1 -C DOCS/xml
+%endif
%install
rm -rf $RPM_BUILD_ROOT
$RPM_BUILD_ROOT%{_desktopdir}
# default config files
-awk '/Delete this default/{a++};{if(!a){print}}' etc/example.conf > etc/mplayer.conf
+sed -e '/Delete this default/d' etc/example.conf > etc/mplayer.conf
install etc/{codecs,mplayer%{?with_osd:,menu},input}.conf $RPM_BUILD_ROOT%{_sysconfdir}/mplayer
# executables
%if %{with mencoder}
-install mencoder $RPM_BUILD_ROOT%{_bindir}
+install mencoder $RPM_BUILD_ROOT%{_bindir}/mencoder%{_suf}
+ln -sf mencoder%{_suf} $RPM_BUILD_ROOT%{_bindir}/mencoder
+%endif
+install mplayer $RPM_BUILD_ROOT%{_bindir}/mplayer%{_suf}
+ln -sf mplayer%{_suf} $RPM_BUILD_ROOT%{_bindir}/mplayer
+%if %{with gui}
+install gmplayer $RPM_BUILD_ROOT%{_bindir}/gmplayer%{_suf}
+ln -sf gmplayer%{_suf} $RPM_BUILD_ROOT%{_bindir}/gmplayer
%endif
-install mplayer $RPM_BUILD_ROOT%{_bindir}
-ln -sf mplayer $RPM_BUILD_ROOT%{_bindir}/gmplayer
# fonts
rm -f font-*/runme
cp -r font-* $RPM_BUILD_ROOT%{_datadir}/mplayer
ln -sf font-arial-iso-8859-2/font-arial-24-iso-8859-2 $RPM_BUILD_ROOT%{_datadir}/mplayer/font
-# skin
-bzip2 -dc %{SOURCE4} | tar xf - -C $RPM_BUILD_ROOT%{_datadir}/mplayer/Skin
-rm -rf $RPM_BUILD_ROOT%{_datadir}/mplayer/Skin/*/CVS
-
# libraries
%ifarch %{ix86}
install libdha/libdha.so.1.0 $RPM_BUILD_ROOT%{_libdir}
install vidix/drivers/*.so $RPM_BUILD_ROOT%{_libdir}/mplayer/vidix
%endif
+%if %{with gui}
+ln -s Blue $RPM_BUILD_ROOT%{_datadir}/%{name}/Skin/default
+%endif
+
# X-files
+%if %{with gui}
install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
+%endif
+install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}
install %{SOURCE7} $RPM_BUILD_ROOT%{_pixmapsdir}
# man pages
%files
%defattr(644,root,root,755)
-%doc DOCS/HTML/en/*.html DOCS/tech %{?with_win32:etc/codecs.win32.conf}
+%attr(755,root,root) %{_bindir}/mplayer*
+
+%if %{with gui}
+%files -n gmplayer
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/gmplayer*
+%{_desktopdir}/gmplayer.desktop
+%dir %{_datadir}/%{name}/Skin
+%ghost %{_datadir}/%{name}/Skin/default
+%endif
+
+%files -n mencoder
+%defattr(644,root,root,755)
+%doc DOCS/tech/encoding-tips.txt DOCS/tech/swscaler_filters.txt
+%doc DOCS/tech/swscaler_methods.txt DOCS/tech/colorspaces.txt
+%attr(755,root,root) %{_bindir}/mencoder*
+
+%files common
+%defattr(644,root,root,755)
+# some useful tech docs
+%doc DOCS/tech/hwac3.txt DOCS/tech/mpsub.sub DOCS/tech/slave.txt
+%doc DOCS/tech/subcp.txt
+
+# HTML and XML-generated docs
+%doc DOCS/HTML/en
+%doc DOCS/tech
+%if %{with win32}
+%doc etc/codecs.win32.conf
+%endif
%lang(de) %doc DOCS/de
%lang(es) %doc DOCS/HTML/es
%lang(fr) %doc DOCS/HTML/fr
%lang(ru) %doc DOCS/HTML/ru
%lang(zh_CN) %doc DOCS/zh
%doc README AUTHORS ChangeLog
-%attr(755,root,root) %{_bindir}/*
+
%ifarch %{ix86}
%attr(755,root,root) %{_libdir}/libdha.so.*.*
%attr(755,root,root) %{_libdir}/mplayer
%endif
-%{_datadir}/mplayer
-%dir %{_sysconfdir}/mplayer
-%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/mplayer/*.conf
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.conf
%{_mandir}/man1/*
%lang(cs) %{_mandir}/cs/man1/*
%lang(de) %{_mandir}/de/man1/*
%lang(pl) %{_mandir}/pl/man1/*
%lang(sv) %{_mandir}/sv/man1/*
%lang(zh_CN) %{_mandir}/zh_CN/man1/*
-%{_desktopdir}/*
+%{_desktopdir}/mplayer.desktop
%{_pixmapsdir}/*
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/font*