diff options
author | Sam James <sam@gentoo.org> | 2022-12-24 10:16:46 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-12-24 10:19:57 +0000 |
commit | 8cdb49a98ff943afe53695735fb3eed4b77c3b28 (patch) | |
tree | 82573361a953f4f681eb59e980c8ead58b3d9a7e /media-video/mplayer | |
parent | net-analyzer/munin: Stabilize 2.0.69-r1 x86, #887799 (diff) | |
download | gentoo-8cdb49a98ff943afe53695735fb3eed4b77c3b28.tar.gz gentoo-8cdb49a98ff943afe53695735fb3eed4b77c3b28.tar.bz2 gentoo-8cdb49a98ff943afe53695735fb3eed4b77c3b28.zip |
media-video/mplayer: add 1.5
Unclear if anything happened with security bug #858107 though.
Bug: https://bugs.gentoo.org/858107
Bug: https://bugs.gentoo.org/870406
Closes: https://bugs.gentoo.org/728640
Closes: https://bugs.gentoo.org/836428
Closes: https://bugs.gentoo.org/870649
Closes: https://bugs.gentoo.org/888073
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-video/mplayer')
-rw-r--r-- | media-video/mplayer/Manifest | 1 | ||||
-rw-r--r-- | media-video/mplayer/mplayer-1.5.ebuild | 627 | ||||
-rw-r--r-- | media-video/mplayer/mplayer-9999.ebuild | 378 |
3 files changed, 829 insertions, 177 deletions
diff --git a/media-video/mplayer/Manifest b/media-video/mplayer/Manifest index bd9910e5e79e..765a041aebe3 100644 --- a/media-video/mplayer/Manifest +++ b/media-video/mplayer/Manifest @@ -1,4 +1,5 @@ DIST MPlayer-1.4.tar.xz 15054920 BLAKE2B 4777cb31a32d62c393778c581c1913fbf355a36cbe6bcf6f426c90c2c8c70123e8aed4d01faf52ee6b1fba3c49e11fa13185f81ae8582f90c901b90955a1f42b SHA512 8ef71cad187d8c8f81c837279bd3a421b440c892d3347a667670b21c954007e35cf0d15828f0901f347b9c1b053e8da4bc7f0fb6de34382d1e463074923d7b34 +DIST MPlayer-1.5.tar.xz 15379972 BLAKE2B 33c09025a9c521e1bc09a50fabb04e89493cbc4117afb3d5769e17b7dd621e44441a8d9f5a3cce2316c781ed701131a966abb02d64976adee9e5f40b7b475e7f SHA512 05fe1edf23cec53be676333b6299df4b3f1ee746e5ccd96dc0bed550e7a1602ba7ba182c1cc23fcac67aacde849a46628b1dcab8ee3d3d4117415c11b6a6ad74 DIST font-arial-cp1250.tar.bz2 249705 BLAKE2B eb4366a110d917dc975b8add168ab43b1e8a0db7342647f69f5421fc1170719015c97ffa770e89892cbb4cee8e5b2fb74a4772c8f6cbef9606ee12c3746d78c9 SHA512 4f77ff5ceb8ec6e5d9f8f34d8950a6a6276d1fd5a947772fcbdb6554988b1ea665c12b82f45164f91fb7bd08000cb4afc26fa35beb4c760464160e22b9b8c340 DIST font-arial-iso-8859-1.tar.bz2 234242 BLAKE2B 0671854e1a257d27b502affb59de681942a93990d3ac2575bbf1a6dd9eef026969f2f9ce4e9c11a68ea3d8aed48063f826a1e153f7468437a39791672c92a5d0 SHA512 a1d03b6f09c48f48b7733f3bc0402ceab239a9abf88b860d852ea9fe69b4da690208a79d6f29d30204f5b37becf10672e8e8c0bfef201846d80ec54df617d029 DIST font-arial-iso-8859-2.tar.bz2 222208 BLAKE2B 94b1a04672bf9b4b20a0e6981591e761f751bd637deddcb801855296c525bf3b5e8feb1cb11cef282c0269f2c963ded22846089076e7e6763f258b8a932af454 SHA512 5671e628303fd816f64a51ad10e2f4dd9c3dc1b34c379a2ecf489b83931db7af668aaa4e00e96a00cacd63ed98daeae6b6a4d5925edfb06fc98d3a923f70257d diff --git a/media-video/mplayer/mplayer-1.5.ebuild b/media-video/mplayer/mplayer-1.5.ebuild new file mode 100644 index 000000000000..c938cefbf668 --- /dev/null +++ b/media-video/mplayer/mplayer-1.5.ebuild @@ -0,0 +1,627 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo toolchain-funcs flag-o-matic + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" + ESVN_REPO_URI="svn://svn.mplayerhq.hu/mplayer/trunk" + RELEASE_URI="" + + inherit subversion git-r3 +elif [[ "${PV%_rc*}" == "${PV}" && "${PV%_pre*}" == "${PV}" ]]; then + MY_P="MPlayer-${PV}" + S="${WORKDIR}/${MY_P}" + RELEASE_URI="mirror://mplayer/releases/${MY_P}.tar.xz" +else + RELEASE_URI="mirror://gentoo/${P}.tar.xz" +fi + +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 +" + +DESCRIPTION="Media Player for Linux" +HOMEPAGE="http://www.mplayerhq.hu/" +SRC_URI=" + ${RELEASE_URI} + !truetype? ( ${FONT_URI} ) +" + +IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_fma4" +IUSE+=" cpu_flags_x86_mmx cpu_flags_x86_mmxext" +IUSE+=" cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1" +IUSE+=" cpu_flags_x86_sse4_2 cpu_flags_x86_xop" +IUSE+=" cpu_flags_x86_3dnow cpu_flags_x86_3dnowext" + +IUSE+=" cpu_flags_ppc_altivec" + +IUSE+=" a52 aalib +alsa aqua bidi bl bluray" +IUSE+=" bs2b cddb +cdio cdparanoia cpudetection debug dga doc dts dv dvb +dvd +dvdnav +enca +encode faac faad fbcon" +IUSE+=" ftp ggi gsm +iconv ipv6 jack joystick jpeg ladspa +libass libcaca libmpeg2 lirc live lzo mad md5sum" +IUSE+=" mng mp3 nas +network openal opengl +osdmenu oss png pnm pulseaudio pvr" +IUSE+=" radio rar rtc rtmp samba selinux +shm sdl speex" +IUSE+=" tga theora tremor +truetype toolame twolame +unicode v4l vcd vdpau vidix" +IUSE+=" vorbis +X x264 xinerama +xscreensaver +xv xvid yuv4mpeg zoran" + +VIDEO_CARDS="mga" +for x in ${VIDEO_CARDS}; do + IUSE+=" video_cards_${x}" +done + +FONT_RDEPS=" + media-libs/fontconfig + >=media-libs/freetype-2.2.1:2 + virtual/ttf-fonts +" +X_RDEPS=" + x11-libs/libXext + x11-libs/libXxf86vm +" +# - RAR: although -gpl version is nice, it can't do most functions normal rars can +# nemesi? ( net-libs/libnemesi ) +# - mplayer relies on private APIs in giflib that have been removed: +# https://sourceforge.net/p/giflib/bugs/132/ +RDEPEND=" + app-arch/bzip2 + >=media-video/ffmpeg-4.0:=[vdpau?] + sys-libs/ncurses:= + sys-libs/zlib + a52? ( media-libs/a52dec ) + aalib? ( media-libs/aalib ) + alsa? ( media-libs/alsa-lib ) + bidi? ( dev-libs/fribidi ) + bluray? ( >=media-libs/libbluray-0.2.1:= ) + bs2b? ( media-libs/libbs2b ) + cdio? ( + dev-libs/libcdio:= + dev-libs/libcdio-paranoia + ) + cdparanoia? ( !cdio? ( media-sound/cdparanoia ) ) + dga? ( x11-libs/libXxf86dga ) + dts? ( media-libs/libdca ) + dv? ( media-libs/libdv ) + dvd? ( >=media-libs/libdvdread-4.1.3:= ) + dvdnav? ( >=media-libs/libdvdnav-4.1.3:= ) + encode? ( + !twolame? ( toolame? ( media-sound/toolame ) ) + twolame? ( media-sound/twolame ) + faac? ( media-libs/faac ) + mp3? ( media-sound/lame ) + x264? ( >=media-libs/x264-0.0.20100423:= ) + xvid? ( media-libs/xvid ) + ) + enca? ( app-i18n/enca ) + faad? ( media-libs/faad2 ) + ggi? ( media-libs/libggi media-libs/libggiwmh ) + gsm? ( media-sound/gsm ) + iconv? ( virtual/libiconv ) + jack? ( virtual/jack ) + jpeg? ( media-libs/libjpeg-turbo:= ) + ladspa? ( media-libs/ladspa-sdk ) + libass? ( >=media-libs/libass-0.9.10:= ) + libcaca? ( media-libs/libcaca ) + libmpeg2? ( media-libs/libmpeg2 ) + lirc? ( app-misc/lirc ) + live? ( media-plugins/live ) + lzo? ( >=dev-libs/lzo-2 ) + mad? ( media-libs/libmad ) + mng? ( media-libs/libmng:= ) + mp3? ( media-sound/mpg123 ) + nas? ( media-libs/nas ) + openal? ( media-libs/openal ) + opengl? ( virtual/opengl ) + png? ( media-libs/libpng:= ) + pnm? ( media-libs/netpbm ) + pulseaudio? ( media-sound/pulseaudio ) + rar? ( + || ( + app-arch/unrar + app-arch/rar + ) + ) + rtmp? ( media-video/rtmpdump ) + samba? ( net-fs/samba ) + sdl? ( media-libs/libsdl ) + speex? ( media-libs/speex ) + theora? ( media-libs/libtheora[encode?] ) + tremor? ( media-libs/tremor ) + truetype? ( ${FONT_RDEPS} ) + vdpau? ( x11-libs/libvdpau ) + vorbis? ( !tremor? ( media-libs/libvorbis ) ) + X? ( ${X_RDEPS} ) + xinerama? ( x11-libs/libXinerama ) + xscreensaver? ( x11-libs/libXScrnSaver ) + xv? ( x11-libs/libXv ) +" +DEPEND=" + ${RDEPEND} + dga? ( x11-base/xorg-proto ) + dvb? ( virtual/linuxtv-dvb-headers ) + X? ( x11-base/xorg-proto ) + xinerama? ( x11-base/xorg-proto ) + xscreensaver? ( x11-base/xorg-proto ) +" +ASM_DEP="dev-lang/yasm" +BDEPEND=" + virtual/pkgconfig + amd64? ( ${ASM_DEP} ) + doc? ( + app-text/docbook-xml-dtd + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + ) + x86? ( ${ASM_DEP} ) +" +RDEPEND+="selinux? ( sec-policy/selinux-mplayer )" + +LICENSE="GPL-2" +SLOT="0" +if [[ ${PV} != *9999* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +# faac codecs 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 +# radio requires oss or alsa backend +REQUIRED_USE=" + dga? ( X ) + dvdnav? ( dvd ) + enca? ( iconv ) + ggi? ( X ) + libass? ( truetype ) + opengl? ( X ) + osdmenu? ( X ) + truetype? ( iconv ) + vdpau? ( X ) + vidix? ( X ) + xinerama? ( X ) + xscreensaver? ( X ) + xv? ( X )" +RESTRICT="faac? ( bindist )" + +pkg_setup() { + if [[ ${PV} == *9999* ]]; then + elog + elog "This is a live ebuild which installs the latest from upstream's" + elog "subversion 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 +} + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + subversion_src_unpack + + cd "${WORKDIR}" || die + rm -rf "${WORKDIR}/${P}/ffmpeg/" || die + ( EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/ffmpeg/" git-r3_src_unpack ) + else + unpack ${A} + fi + + if [[ ${PV} == *9999* || "${PV%_rc*}" == "${PV}" ]]; then + cd "${S}" || die + cp "${FILESDIR}/dump_ffmpeg.sh" . || die + chmod +x dump_ffmpeg.sh || die + ./dump_ffmpeg.sh + 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() { + default + + local svf=snapshot_version + if [[ ${PV} == *9999* ]]; then + # Set SVN version manually + subversion_wc_info + printf "${ESVN_WC_REVISION}" > ${svf} || die + fi + + if [[ ! -f VERSION ]]; then + [[ -f "${svf}" ]] || die "Missing ${svf}. Did you generate your snapshot with prepare_mplayer.sh?" + + local sv=$(<${svf}) + printf "SVN-r${sv} (Gentoo)" > VERSION || die + fi + + # Fix path to bash executable in configure scripts + sed -i -e "1c\#!${EPREFIX}/bin/bash" configure version.sh || die + + # Use sane default for >=virtual/udev-197 + sed -i -e '/default_dvd_device/s:/dev/dvd:/dev/cdrom:' configure || die +} + +src_configure() { + local myconf=() + local uses i + + # Set LINGUAS + [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/da/dk}" + [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968 + + # 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 + # Always disable internal ass + # Disable opus and ilbc since it only controls support in internal + # ffmpeg which we do not use + myconf+=( + --disable-arts + --disable-ass-internal + --disable-directfb + --disable-kai + --disable-libilbc + --disable-libnut + --disable-libopus + --disable-svga --disable-svgalib_helper + --disable-xvmc + $(use_enable network networking) + $(use_enable joystick) + ) + + uses="bl bluray enca ftp rtc vcd" # 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 libass || myconf+=( --disable-ass ) + use rar || myconf+=( --disable-unrarexec ) + use samba || myconf+=( --disable-smb ) + use lirc || myconf+=( --disable-lirc --disable-lircc --disable-apple-ir ) + + # 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 dvd || myconf+=( --disable-dvdread ) + use dvdnav || myconf+=( --disable-dvdnav ) + + ############# + # Subtitles # + ############# + # + # SRT/ASS/SSA (subtitles) requires freetype support + # freetype support requires iconv + # iconv optionally can use unicode + use truetype || myconf+=( --disable-freetype ) + use iconv || myconf+=( --disable-iconv --charset=noconv ) + use iconv && use unicode && myconf+=( --charset=UTF-8 ) + + ##################################### + # DVB / Video4Linux / Radio support # + ##################################### + myconf+=( --disable-tv-bsdbt848 ) + # gone since linux-headers-2.6.38 + myconf+=( --disable-tv-v4l1 ) + if { use dvb || use v4l || use pvr || use radio; }; then + use dvb || myconf+=( --disable-dvb ) + use pvr || myconf+=( --disable-pvr ) + use v4l || myconf+=( --disable-tv-v4l2 ) + if use radio && { use dvb || use v4l; }; then + myconf+=( + --enable-radio + $(use_enable encode radio-capture) + ) + else + myconf+=( + --disable-radio-v4l2 + --disable-radio-bsdbt848 + ) + fi + else + myconf+=( + --disable-tv + --disable-tv-v4l2 + --disable-radio + --disable-radio-v4l2 + --disable-radio-bsdbt848 + --disable-dvb + --disable-v4l2 + --disable-pvr + ) + fi + + ########## + # Codecs # + ########## + myconf+=( --disable-musepack ) # Use internal musepack codecs for SV7 and SV8 support + myconf+=( --disable-libmpeg2-internal ) # always use system media-libs/libmpeg2 + myconf+=( --disable-gif ) # relies on to-be-removed giflib internals https://sourceforge.net/p/giflib/bugs/132/ + use dts || myconf+=( --disable-libdca ) + if ! use mp3; then + myconf+=( + --disable-mp3lame + --disable-mpg123 + ) + fi + uses="a52 bs2b dv gsm lzo rtmp vorbis" + for i in ${uses}; do + use ${i} || myconf+=( --disable-lib${i} ) + done + + uses="faad jpeg libmpeg2 live mad mng png pnm speex tga theora tremor" + for i in ${uses}; do + use ${i} || myconf+=( --disable-${i} ) + done + # Pulls an outdated libopenjpeg, ffmpeg provides better support for it + myconf+=( --disable-libopenjpeg ) + + # Encoding + uses="faac x264 xvid toolame twolame" + if use encode; then + for i in ${uses}; do + use ${i} || myconf+=( --disable-${i} ) + done + else + myconf+=( --disable-mencoder ) + for i in ${uses}; do + myconf+=( --disable-${i} ) + use ${i} && elog "Useflag \"${i}\" will only be useful for encoding, i.e., with \"encode\" useflag enabled." + done + fi + + ################# + # Binary codecs # + ################# + myconf+=( --disable-qtx --disable-real --disable-win32dll ) + + ################ + # Video Output # + ################ + uses="md5sum sdl yuv4mpeg" + for i in ${uses}; do + use ${i} || myconf+=( --disable-${i} ) + done + use aalib || myconf+=( --disable-aa ) + use fbcon || myconf+=( --disable-fbdev ) + use libcaca || myconf+=( --disable-caca ) + use zoran || myconf+=( --disable-zr ) + + if ! use kernel_linux || ! use video_cards_mga; then + myconf+=( --disable-mga --disable-xmga ) + fi + + myconf+=( + --disable-3dfx + --disable-tdfxvid + --disable-tdfxfb + ) + + # sun card, disable by default, see bug #258729 + myconf+=( --disable-xvr100 ) + + ################ + # Audio Output # + ################ + myconf+=( --disable-esd ) + uses="alsa jack ladspa nas openal" + for i in ${uses}; do + use ${i} || myconf+=( --disable-${i} ) + done + 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 ) + + uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop" + for i in ${uses}; do + myconf+=( $(use_enable cpu_flags_x86_${i} ${i}) ) + done + myconf+=( $(use_enable cpu_flags_x86_sse4_1 sse4) ) + myconf+=( $(use_enable cpu_flags_x86_sse4_2 sse42) ) + + myconf+=( + $(use_enable cpu_flags_ppc_altivec altivec) + $(use_enable shm) + ) + + use debug && myconf+=( --enable-debug=3 ) + + if use x86 && gcc-specs-pie; then + filter-flags -fPIC -fPIE + append-ldflags -nopie + fi + + ########################### + # X enabled configuration # + ########################### + myconf+=( --disable-gui ) + myconf+=( --disable-vesa ) + uses="ggi vdpau xinerama xv" + 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 vidix || myconf+=( --disable-vidix --disable-vidix-pcidb ) + use xscreensaver || myconf+=( --disable-xss ) + use X || myconf+=( --disable-x11 ) + + ############################ + # OSX (aqua) configuration # + ############################ + if use aqua; then + myconf+=( + --enable-macosx-finder + --enable-macosx-bundle + ) + fi + + # Note: --enable-gnutls only makes sense with --enable-ffmpeg_a + edo ./configure \ + --cc="$(tc-getCC)" \ + --host-cc="$(tc-getBUILD_CC)" \ + --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" \ + --disable-ffmpeg_a \ + --disable-gnutls \ + "${myconf[@]}" +} + +src_compile() { + default + + # Build only user-requested docs if they're available. + if use doc ; then + # Select available languages from ${LINGUAS} + local ALLOWED_LINGUAS="cs de en es fr hu it pl ru zh_CN" + local BUILT_DOCS=() + local i + + for i in ${LINGUAS} ; do + has ${i} ${ALLOWED_LINGUAS} && BUILT_DOCS+=( ${i} ) + done + + if [[ -z ${BUILT_DOCS[@]} ]]; then + emake -j1 html-chunked + else + for i in ${BUILT_DOCS[@]}; do + emake -j1 html-chunked-${i} + done + fi + fi +} + +src_install() { + local i + + emake \ + DESTDIR="${D}" \ + INSTALLSTRIP="" \ + install + + dodoc AUTHORS Changelog Copyright README etc/codecs.conf + + docinto tech/ + dodoc DOCS/tech/{*.txt,MAINTAINERS,mpsub.sub,playtree,TODO,wishlist} + docinto TOOLS/ + dodoc -r TOOLS/* + docinto tech/mirrors/ + dodoc DOCS/tech/mirrors/* + + if use doc; then + docinto html/ + dodoc -r "${S}"/DOCS/HTML/* + fi + + if ! use truetype; then + dodir /usr/share/mplayer/fonts + + # Do this generic, as the mplayer people like to change the structure + # of their zips ... + local i + for i in $(find "${WORKDIR}/" -type d -name 'font-arial-*'); do + cp -pPR "${i}" "${ED}/usr/share/mplayer/fonts" + done + + # Fix the font symlink ... + rm -rf "${ED}/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 + cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_ + # Config options can be section specific, global + # options should go in the default section + [default] + _EOF_ + + doins "${S}/etc/input.conf" + if use osdmenu; then + doins "${S}/etc/menu.conf" + fi + + if 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 -r /etc/mplayer/mplayer.conf /usr/share/mplayer/mplayer.conf + newbin "${S}/TOOLS/midentify.sh" midentify +} + +pkg_preinst() { + [[ -d ${EROOT}/usr/share/mplayer/Skin/default ]] && \ + rm -rf "${EROOT}/usr/share/mplayer/Skin/default" +} + +pkg_postrm() { + # Cleanup stale symlinks + [[ -L "${EROOT}/usr/share/mplayer/font" && + ! -e "${EROOT}/usr/share/mplayer/font" ]] && \ + rm -f "${EROOT}/usr/share/mplayer/font" + + [[ -L "${EROOT}/usr/share/mplayer/subfont.ttf" && + ! -e "${EROOT}/usr/share/mplayer/subfont.ttf" ]] && \ + rm -f "${EROOT}/usr/share/mplayer/subfont.ttf" +} diff --git a/media-video/mplayer/mplayer-9999.ebuild b/media-video/mplayer/mplayer-9999.ebuild index e07e9e46bd59..c938cefbf668 100644 --- a/media-video/mplayer/mplayer-9999.ebuild +++ b/media-video/mplayer/mplayer-9999.ebuild @@ -1,80 +1,92 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 -EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" -ESVN_REPO_URI="svn://svn.mplayerhq.hu/mplayer/trunk" -[[ ${PV} = *9999* ]] && SVN_ECLASS="subversion git-r3" +inherit edo toolchain-funcs flag-o-matic -inherit toolchain-funcs flag-o-matic ${SVN_ECLASS} - -IUSE="cpu_flags_ppc_altivec cpu_flags_x86_3dnow cpu_flags_x86_3dnowext a52 aalib +alsa aqua bidi bl bluray -bs2b cddb +cdio cdparanoia cpudetection debug dga -doc dts dv dvb +dvd +dvdnav +enca +encode faac faad fbcon -ftp ggi gsm +iconv ipv6 jack joystick jpeg ladspa -+libass libcaca libmpeg2 lirc live lzo mad md5sum cpu_flags_x86_mmx cpu_flags_x86_mmxext mng mp3 nas -+network openal opengl +osdmenu oss png pnm pulseaudio pvr -radio rar rtc rtmp samba selinux +shm sdl speex cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_ssse3 -tga theora tremor +truetype toolame twolame +unicode v4l vcd vdpau vidix -vorbis +X x264 xinerama +xscreensaver +xv xvid yuv4mpeg zoran" - -VIDEO_CARDS="mga" -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="https://git.ffmpeg.org/ffmpeg.git" + ESVN_REPO_URI="svn://svn.mplayerhq.hu/mplayer/trunk" RELEASE_URI="" -elif [ "${PV%_rc*}" = "${PV}" -a "${PV%_pre*}" = "${PV}" ]; then + + inherit subversion git-r3 +elif [[ "${PV%_rc*}" == "${PV}" && "${PV%_pre*}" == "${PV}" ]]; then MY_P="MPlayer-${PV}" S="${WORKDIR}/${MY_P}" RELEASE_URI="mirror://mplayer/releases/${MY_P}.tar.xz" else RELEASE_URI="mirror://gentoo/${P}.tar.xz" fi -SRC_URI="${RELEASE_URI} - !truetype? ( ${FONT_URI} )" + +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 +" DESCRIPTION="Media Player for Linux" HOMEPAGE="http://www.mplayerhq.hu/" +SRC_URI=" + ${RELEASE_URI} + !truetype? ( ${FONT_URI} ) +" + +IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_fma4" +IUSE+=" cpu_flags_x86_mmx cpu_flags_x86_mmxext" +IUSE+=" cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1" +IUSE+=" cpu_flags_x86_sse4_2 cpu_flags_x86_xop" +IUSE+=" cpu_flags_x86_3dnow cpu_flags_x86_3dnowext" + +IUSE+=" cpu_flags_ppc_altivec" + +IUSE+=" a52 aalib +alsa aqua bidi bl bluray" +IUSE+=" bs2b cddb +cdio cdparanoia cpudetection debug dga doc dts dv dvb +dvd +dvdnav +enca +encode faac faad fbcon" +IUSE+=" ftp ggi gsm +iconv ipv6 jack joystick jpeg ladspa +libass libcaca libmpeg2 lirc live lzo mad md5sum" +IUSE+=" mng mp3 nas +network openal opengl +osdmenu oss png pnm pulseaudio pvr" +IUSE+=" radio rar rtc rtmp samba selinux +shm sdl speex" +IUSE+=" tga theora tremor +truetype toolame twolame +unicode v4l vcd vdpau vidix" +IUSE+=" vorbis +X x264 xinerama +xscreensaver +xv xvid yuv4mpeg zoran" + +VIDEO_CARDS="mga" +for x in ${VIDEO_CARDS}; do + IUSE+=" video_cards_${x}" +done FONT_RDEPS=" - virtual/ttf-fonts media-libs/fontconfig >=media-libs/freetype-2.2.1:2 + virtual/ttf-fonts " X_RDEPS=" x11-libs/libXext x11-libs/libXxf86vm " -# Rar: althrought -gpl version is nice, it cant do most functions normal rars can +# - RAR: although -gpl version is nice, it can't do most functions normal rars can # nemesi? ( net-libs/libnemesi ) -# mplayer relies on private APIs in giflib that have been removed: +# - mplayer relies on private APIs in giflib that have been removed: # https://sourceforge.net/p/giflib/bugs/132/ -RDEPEND+=" - sys-libs/ncurses:0= +RDEPEND=" app-arch/bzip2 + >=media-video/ffmpeg-4.0:=[vdpau?] + sys-libs/ncurses:= sys-libs/zlib - >=media-video/ffmpeg-4.0:0=[vdpau?] a52? ( media-libs/a52dec ) aalib? ( media-libs/aalib ) alsa? ( media-libs/alsa-lib ) bidi? ( dev-libs/fribidi ) bluray? ( >=media-libs/libbluray-0.2.1:= ) bs2b? ( media-libs/libbs2b ) - cdio? ( dev-libs/libcdio:0= dev-libs/libcdio-paranoia ) + cdio? ( + dev-libs/libcdio:= + dev-libs/libcdio-paranoia + ) cdparanoia? ( !cdio? ( media-sound/cdparanoia ) ) dga? ( x11-libs/libXxf86dga ) dts? ( media-libs/libdca ) dv? ( media-libs/libdv ) - dvd? ( >=media-libs/libdvdread-4.1.3:0= ) - dvdnav? ( >=media-libs/libdvdnav-4.1.3:0= ) + dvd? ( >=media-libs/libdvdread-4.1.3:= ) + dvdnav? ( >=media-libs/libdvdnav-4.1.3:= ) encode? ( !twolame? ( toolame? ( media-sound/toolame ) ) twolame? ( media-sound/twolame ) @@ -103,7 +115,7 @@ RDEPEND+=" nas? ( media-libs/nas ) openal? ( media-libs/openal ) opengl? ( virtual/opengl ) - png? ( media-libs/libpng:0= ) + png? ( media-libs/libpng:= ) pnm? ( media-libs/netpbm ) pulseaudio? ( media-sound/pulseaudio ) rar? ( @@ -126,30 +138,31 @@ RDEPEND+=" xscreensaver? ( x11-libs/libXScrnSaver ) xv? ( x11-libs/libXv ) " - -ASM_DEP="dev-lang/yasm" -DEPEND="${RDEPEND} - virtual/pkgconfig +DEPEND=" + ${RDEPEND} dga? ( x11-base/xorg-proto ) dvb? ( virtual/linuxtv-dvb-headers ) X? ( x11-base/xorg-proto ) xinerama? ( x11-base/xorg-proto ) xscreensaver? ( x11-base/xorg-proto ) +" +ASM_DEP="dev-lang/yasm" +BDEPEND=" + virtual/pkgconfig amd64? ( ${ASM_DEP} ) doc? ( - dev-libs/libxslt app-text/docbook-xml-dtd + app-text/docbook-xml-dtd app-text/docbook-xsl-stylesheets + dev-libs/libxslt ) x86? ( ${ASM_DEP} ) " -RDEPEND+=" - selinux? ( sec-policy/selinux-mplayer ) -" +RDEPEND+="selinux? ( sec-policy/selinux-mplayer )" -SLOT="0" LICENSE="GPL-2" +SLOT="0" if [[ ${PV} != *9999* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" fi # faac codecs are nonfree @@ -197,20 +210,21 @@ pkg_setup() { } src_unpack() { - if [[ ${PV} = *9999* ]]; then + if [[ ${PV} == *9999* ]]; then subversion_src_unpack - cd "${WORKDIR}" - rm -rf "${WORKDIR}/${P}/ffmpeg/" + + cd "${WORKDIR}" || die + rm -rf "${WORKDIR}/${P}/ffmpeg/" || die ( EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/ffmpeg/" git-r3_src_unpack ) else unpack ${A} fi - if [[ ${PV} = *9999* ]] || [[ "${PV%_rc*}" = "${PV}" ]]; then - cd "${S}" + if [[ ${PV} == *9999* || "${PV%_rc*}" == "${PV}" ]]; then + cd "${S}" || die cp "${FILESDIR}/dump_ffmpeg.sh" . || die - chmod +x dump_ffmpeg.sh - ./dump_ffmpeg.sh || die + chmod +x dump_ffmpeg.sh || die + ./dump_ffmpeg.sh fi if ! use truetype; then @@ -224,20 +238,20 @@ src_prepare() { default local svf=snapshot_version - if [[ ${PV} = *9999* ]]; then + if [[ ${PV} == *9999* ]]; then # Set SVN version manually subversion_wc_info - printf "${ESVN_WC_REVISION}" > $svf - else - eapply "${FILESDIR}"/${PN}-1.3-CVE-2016-4352.patch + printf "${ESVN_WC_REVISION}" > ${svf} || die fi - if [ ! -f VERSION ] ; then - [ -f "$svf" ] || die "Missing ${svf}. Did you generate your snapshot with prepare_mplayer.sh?" - local sv=$(<$svf) - printf "SVN-r${sv} (Gentoo)" > VERSION + + if [[ ! -f VERSION ]]; then + [[ -f "${svf}" ]] || die "Missing ${svf}. Did you generate your snapshot with prepare_mplayer.sh?" + + local sv=$(<${svf}) + printf "SVN-r${sv} (Gentoo)" > VERSION || die fi - # fix path to bash executable in configure scripts + # Fix path to bash executable in configure scripts sed -i -e "1c\#!${EPREFIX}/bin/bash" configure version.sh || die # Use sane default for >=virtual/udev-197 @@ -245,27 +259,27 @@ src_prepare() { } src_configure() { - local myconf="" + local myconf=() local uses i - # set LINGUAS - [[ -n $LINGUAS ]] && LINGUAS="${LINGUAS/da/dk}" - [[ -n $LINGUAS ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968 + # Set LINGUAS + [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/da/dk}" + [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968 # 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 - # always disable internal ass - # disable opus and ilbc since it only controls support in internal - # ffmpeg which we do not use - myconf+=" + ##################### + # Optional features # + ##################### + # Disable svga since we don't want it + # Disable arts since we don't have kde3 + # Always disable internal ass + # Disable opus and ilbc since it only controls support in internal + # ffmpeg which we do not use + myconf+=( --disable-arts --disable-ass-internal --disable-directfb @@ -277,27 +291,28 @@ src_configure() { --disable-xvmc $(use_enable network networking) $(use_enable joystick) - " + ) + uses="bl bluray enca ftp rtc vcd" # nemesi <- not working with in-tree ebuild - myconf+=" --disable-nemesi" # nemesi automagic disable + myconf+=( --disable-nemesi ) # nemesi automagic disable for i in ${uses}; do - use ${i} || myconf+=" --disable-${i}" + use ${i} || myconf+=( --disable-${i} ) done - use bidi || myconf+=" --disable-fribidi" - use ipv6 || myconf+=" --disable-inet6" - use libass || myconf+=" --disable-ass" - use rar || myconf+=" --disable-unrarexec" - use samba || myconf+=" --disable-smb" - use lirc || myconf+=" --disable-lirc --disable-lircc --disable-apple-ir" + use bidi || myconf+=( --disable-fribidi ) + use ipv6 || myconf+=( --disable-inet6 ) + use libass || myconf+=( --disable-ass ) + use rar || myconf+=( --disable-unrarexec ) + use samba || myconf+=( --disable-smb ) + use lirc || myconf+=( --disable-lirc --disable-lircc --disable-apple-ir ) # libcdio support: prefer libcdio over cdparanoia # don't check for cddb w/cdio if use cdio; then - myconf+=" --disable-cdparanoia" + myconf+=( --disable-cdparanoia ) else - myconf+=" --disable-libcdio" - use cdparanoia || myconf+=" --disable-cdparanoia" - use cddb || myconf+=" --disable-cddb" + myconf+=( --disable-libcdio ) + use cdparanoia || myconf+=( --disable-cdparanoia ) + use cddb || myconf+=( --disable-cddb ) fi ################################ @@ -306,8 +321,8 @@ src_configure() { # # dvdread - accessing a DVD # dvdnav - navigation of menus - use dvd || myconf+=" --disable-dvdread" - use dvdnav || myconf+=" --disable-dvdnav" + use dvd || myconf+=( --disable-dvdread ) + use dvdnav || myconf+=( --disable-dvdnav ) ############# # Subtitles # @@ -316,35 +331,33 @@ src_configure() { # SRT/ASS/SSA (subtitles) requires freetype support # freetype support requires iconv # iconv optionally can use unicode - use truetype || myconf+=" --disable-freetype" - use iconv || myconf+=" --disable-iconv --charset=noconv" - use iconv && use unicode && myconf+=" --charset=UTF-8" + use truetype || myconf+=( --disable-freetype ) + use iconv || myconf+=( --disable-iconv --charset=noconv ) + 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" + myconf+=( --disable-tv-bsdbt848 ) # gone since linux-headers-2.6.38 - myconf+=" --disable-tv-v4l1" + myconf+=( --disable-tv-v4l1 ) if { use dvb || use v4l || use pvr || use radio; }; then - use dvb || myconf+=" --disable-dvb" - use pvr || myconf+=" --disable-pvr" - use v4l || myconf+=" --disable-tv-v4l2" + use dvb || myconf+=( --disable-dvb ) + use pvr || myconf+=( --disable-pvr ) + use v4l || myconf+=( --disable-tv-v4l2 ) if use radio && { use dvb || use v4l; }; 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-v4l2 --disable-radio @@ -352,44 +365,45 @@ src_configure() { --disable-radio-bsdbt848 --disable-dvb --disable-v4l2 - --disable-pvr" + --disable-pvr + ) fi ########## # Codecs # ########## - myconf+=" --disable-musepack" # Use internal musepack codecs for SV7 and SV8 support - myconf+=" --disable-libmpeg2-internal" # always use system media-libs/libmpeg2 - myconf+=" --disable-gif" # relies on to-be-removed giflib internals https://sourceforge.net/p/giflib/bugs/132/ - use dts || myconf+=" --disable-libdca" + myconf+=( --disable-musepack ) # Use internal musepack codecs for SV7 and SV8 support + myconf+=( --disable-libmpeg2-internal ) # always use system media-libs/libmpeg2 + myconf+=( --disable-gif ) # relies on to-be-removed giflib internals https://sourceforge.net/p/giflib/bugs/132/ + use dts || myconf+=( --disable-libdca ) if ! use mp3; then - myconf+=" + myconf+=( --disable-mp3lame --disable-mpg123 - " + ) fi uses="a52 bs2b dv gsm lzo rtmp vorbis" for i in ${uses}; do - use ${i} || myconf+=" --disable-lib${i}" + use ${i} || myconf+=( --disable-lib${i} ) done uses="faad jpeg libmpeg2 live mad mng png pnm speex tga theora tremor" for i in ${uses}; do - use ${i} || myconf+=" --disable-${i}" + use ${i} || myconf+=( --disable-${i} ) done # Pulls an outdated libopenjpeg, ffmpeg provides better support for it - myconf+=" --disable-libopenjpeg" + myconf+=( --disable-libopenjpeg ) # Encoding uses="faac x264 xvid toolame twolame" if use encode; then for i in ${uses}; do - use ${i} || myconf+=" --disable-${i}" + use ${i} || myconf+=( --disable-${i} ) done else - myconf+=" --disable-mencoder" + myconf+=( --disable-mencoder ) for i in ${uses}; do - myconf+=" --disable-${i}" + myconf+=( --disable-${i} ) use ${i} && elog "Useflag \"${i}\" will only be useful for encoding, i.e., with \"encode\" useflag enabled." done fi @@ -397,62 +411,65 @@ src_configure() { ################# # Binary codecs # ################# - myconf+=" --disable-qtx --disable-real --disable-win32dll" + myconf+=( --disable-qtx --disable-real --disable-win32dll ) ################ # Video Output # ################ uses="md5sum sdl yuv4mpeg" for i in ${uses}; do - use ${i} || myconf+=" --disable-${i}" + use ${i} || myconf+=( --disable-${i} ) done - use aalib || myconf+=" --disable-aa" - use fbcon || myconf+=" --disable-fbdev" - use libcaca || myconf+=" --disable-caca" - use zoran || myconf+=" --disable-zr" + use aalib || myconf+=( --disable-aa ) + use fbcon || myconf+=( --disable-fbdev ) + use libcaca || myconf+=( --disable-caca ) + use zoran || myconf+=( --disable-zr ) if ! use kernel_linux || ! use video_cards_mga; then - myconf+=" --disable-mga --disable-xmga" + myconf+=( --disable-mga --disable-xmga ) fi - myconf+=" + myconf+=( --disable-3dfx --disable-tdfxvid --disable-tdfxfb - " + ) # sun card, disable by default, see bug #258729 - myconf+=" --disable-xvr100" + myconf+=( --disable-xvr100 ) ################ # Audio Output # ################ - myconf+=" --disable-esd" + myconf+=( --disable-esd ) uses="alsa jack ladspa nas openal" for i in ${uses}; do - use ${i} || myconf+=" --disable-${i}" + use ${i} || myconf+=( --disable-${i} ) done - use pulseaudio || myconf+=" --disable-pulse" + use pulseaudio || myconf+=( --disable-pulse ) if ! use radio; then - use oss || myconf+=" --disable-ossaudio" + use oss || myconf+=( --disable-ossaudio ) fi #################### # Advanced Options # #################### # Platform specific flags, hardcoded on amd64 (see below) - use cpudetection && myconf+=" --enable-runtime-cpudetection" + use cpudetection && myconf+=( --enable-runtime-cpudetection ) - uses="3dnow 3dnowext mmx mmxext sse sse2 ssse3" + uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop" for i in ${uses}; do - myconf+=" $(use_enable cpu_flags_x86_${i} ${i})" + myconf+=( $(use_enable cpu_flags_x86_${i} ${i}) ) done + myconf+=( $(use_enable cpu_flags_x86_sse4_1 sse4) ) + myconf+=( $(use_enable cpu_flags_x86_sse4_2 sse42) ) - myconf+=" + myconf+=( $(use_enable cpu_flags_ppc_altivec altivec) - $(use_enable shm)" + $(use_enable shm) + ) - use debug && myconf+=" --enable-debug=3" + use debug && myconf+=( --enable-debug=3 ) if use x86 && gcc-specs-pie; then filter-flags -fPIC -fPIE @@ -462,31 +479,31 @@ src_configure() { ########################### # X enabled configuration # ########################### - myconf+=" --disable-gui" - myconf+=" --disable-vesa" + myconf+=( --disable-gui ) + myconf+=( --disable-vesa ) uses="ggi vdpau xinerama xv" for i in ${uses}; do - use ${i} || myconf+=" --disable-${i}" + use ${i} || myconf+=( --disable-${i} ) done - use dga || myconf+=" --disable-dga1 --disable-dga2" - use opengl || myconf+=" --disable-gl" - use osdmenu && myconf+=" --enable-menu" - use vidix || myconf+=" --disable-vidix --disable-vidix-pcidb" - use xscreensaver || myconf+=" --disable-xss" - use X || myconf+=" --disable-x11" + use dga || myconf+=( --disable-dga1 --disable-dga2 ) + use opengl || myconf+=( --disable-gl ) + use osdmenu && myconf+=( --enable-menu ) + use vidix || myconf+=( --disable-vidix --disable-vidix-pcidb ) + use xscreensaver || myconf+=( --disable-xss ) + use X || myconf+=( --disable-x11 ) ############################ # OSX (aqua) configuration # ############################ if use aqua; then - myconf+=" + myconf+=( --enable-macosx-finder --enable-macosx-bundle - " + ) fi # Note: --enable-gnutls only makes sense with --enable-ffmpeg_a - ./configure \ + edo ./configure \ --cc="$(tc-getCC)" \ --host-cc="$(tc-getBUILD_CC)" \ --prefix="${EPREFIX}/usr" \ @@ -497,7 +514,7 @@ src_configure() { --mandir="${EPREFIX}/usr/share/man" \ --disable-ffmpeg_a \ --disable-gnutls \ - ${myconf} || die + "${myconf[@]}" } src_compile() { @@ -505,16 +522,19 @@ src_compile() { # Build only user-requested docs if they're available. if use doc ; then - # select available languages from $LINGUAS + # Select available languages from ${LINGUAS} local ALLOWED_LINGUAS="cs de en es fr hu it pl ru zh_CN" - local BUILT_DOCS="" + local BUILT_DOCS=() + local i + for i in ${LINGUAS} ; do - has ${i} ${ALLOWED_LINGUAS} && BUILT_DOCS+=" ${i}" + has ${i} ${ALLOWED_LINGUAS} && BUILT_DOCS+=( ${i} ) done - if [[ -z $BUILT_DOCS ]]; then + + if [[ -z ${BUILT_DOCS[@]} ]]; then emake -j1 html-chunked else - for i in ${BUILT_DOCS}; do + for i in ${BUILT_DOCS[@]}; do emake -j1 html-chunked-${i} done fi @@ -545,11 +565,14 @@ src_install() { if ! use truetype; then dodir /usr/share/mplayer/fonts + # Do this generic, as the mplayer people like to change the structure # of their zips ... + local i for i in $(find "${WORKDIR}/" -type d -name 'font-arial-*'); do cp -pPR "${i}" "${ED}/usr/share/mplayer/fonts" done + # Fix the font symlink ... rm -rf "${ED}/usr/share/mplayer/font" dosym fonts/font-arial-14-iso-8859-1 /usr/share/mplayer/font @@ -557,32 +580,33 @@ src_install() { insinto /etc/mplayer newins "${S}/etc/example.conf" mplayer.conf - cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_ -# Config options can be section specific, global -# options should go in the default section -[default] -_EOF_ + cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_ + # Config options can be section specific, global + # options should go in the default section + [default] + _EOF_ + doins "${S}/etc/input.conf" if use osdmenu; then doins "${S}/etc/menu.conf" fi if use truetype; then - cat >> "${ED}/etc/mplayer/mplayer.conf" << _EOF_ -fontconfig=1 -subfont-osd-scale=4 -subfont-text-scale=3 -_EOF_ + 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_ + cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_ + unrarexec=${EPREFIX}/usr/bin/unrar + _EOF_ fi - dosym ../../../etc/mplayer/mplayer.conf /usr/share/mplayer/mplayer.conf + dosym -r /etc/mplayer/mplayer.conf /usr/share/mplayer/mplayer.conf newbin "${S}/TOOLS/midentify.sh" midentify } @@ -593,11 +617,11 @@ pkg_preinst() { pkg_postrm() { # Cleanup stale symlinks - [ -L "${EROOT}/usr/share/mplayer/font" -a \ - ! -e "${EROOT}/usr/share/mplayer/font" ] && \ + [[ -L "${EROOT}/usr/share/mplayer/font" && + ! -e "${EROOT}/usr/share/mplayer/font" ]] && \ rm -f "${EROOT}/usr/share/mplayer/font" - [ -L "${EROOT}/usr/share/mplayer/subfont.ttf" -a \ - ! -e "${EROOT}/usr/share/mplayer/subfont.ttf" ] && \ + [[ -L "${EROOT}/usr/share/mplayer/subfont.ttf" && + ! -e "${EROOT}/usr/share/mplayer/subfont.ttf" ]] && \ rm -f "${EROOT}/usr/share/mplayer/subfont.ttf" } |