commit:     03edc44ac03874e3a5f3a86658a8bb8cd25a8acd
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  5 13:40:45 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec  5 13:40:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03edc44a

media-video/vlc: backport modern c fixes

Closes: https://bugs.gentoo.org/919068
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-video/vlc/files/vlc-3.0.20-c99.patch | 150 +++++++++
 media-video/vlc/vlc-3.0.20-r2.ebuild       | 518 +++++++++++++++++++++++++++++
 2 files changed, 668 insertions(+)

diff --git a/media-video/vlc/files/vlc-3.0.20-c99.patch 
b/media-video/vlc/files/vlc-3.0.20-c99.patch
new file mode 100644
index 000000000000..135e1e6b9e5b
--- /dev/null
+++ b/media-video/vlc/files/vlc-3.0.20-c99.patch
@@ -0,0 +1,150 @@
+https://bugs.gentoo.org/919068
+https://code.videolan.org/videolan/vlc/-/issues/28441
+https://code.videolan.org/videolan/vlc/-/merge_requests/4645
+
+From 1e2918115ca2f5c4ffde00dc02ad89525714f6c2 Mon Sep 17 00:00:00 2001
+From: Thomas Guillem <[email protected]>
+Date: Tue, 5 Dec 2023 09:23:35 +0100
+Subject: [PATCH 1/5] input: fix incompatible-pointer-types assignment
+
+Fixes #28441
+--- a/src/input/input_internal.h
++++ b/src/input/input_internal.h
+@@ -117,7 +117,7 @@ typedef struct input_thread_private_t
+ 
+     /* Title infos FIXME multi-input (not easy) ? */
+     int          i_title;
+-    const input_title_t **title;
++    input_title_t * const *title;
+ 
+     int i_title_offset;
+     int i_seekpoint_offset;
+-- 
+GitLab
+
+
+From adcf4e66e2ce2c382bb97957c91bfde040f4f3ca Mon Sep 17 00:00:00 2001
+From: Zhao Zhili <[email protected]>
+Date: Thu, 1 Mar 2018 14:25:59 +0800
+Subject: [PATCH 2/5] yadif: fix variable type
+
+Signed-off-by: Thomas Guillem <[email protected]>
+(cherry picked from commit 77b86f4452be4dbe0d56a9cd1b66da61b116da60)
+Signed-off-by: Thomas Guillem <[email protected]>
+--- a/modules/video_filter/deinterlace/yadif.h
++++ b/modules/video_filter/deinterlace/yadif.h
+@@ -140,10 +140,10 @@ static void yadif_filter_line_c(uint8_t *dst, uint8_t 
*prev, uint8_t *cur, uint8
+ }
+ 
+ static void yadif_filter_line_c_16bit(uint8_t *dst8, uint8_t *prev8, uint8_t 
*cur8, uint8_t *next8, int w, int prefs, int mrefs, int parity, int mode) {
+-    uint8_t *dst = (uint8_t *)dst8;
+-    uint8_t *prev = (uint8_t *)prev8;
+-    uint8_t *cur = (uint8_t *)cur8;
+-    uint8_t *next = (uint8_t *)next8;
++    uint16_t *dst = (uint16_t *)dst8;
++    uint16_t *prev = (uint16_t *)prev8;
++    uint16_t *cur = (uint16_t *)cur8;
++    uint16_t *next = (uint16_t *)next8;
+     int x;
+     uint16_t *prev2= parity ? prev : cur ;
+     uint16_t *next2= parity ? cur  : next;
+-- 
+GitLab
+
+
+From 45198e5328ff2b2f4eb2fb76add0789fec26270f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <[email protected]>
+Date: Sun, 3 Mar 2019 09:59:10 +0200
+Subject: [PATCH 3/5] swscale: avoid invalid pointer conversion
+
+(cherry picked from commit ab00e6c59d42e05ab08893091783d8b5febc0058)
+Signed-off-by: Thomas Guillem <[email protected]>
+--- a/modules/video_chroma/swscale.c
++++ b/modules/video_chroma/swscale.c
+@@ -588,8 +588,9 @@ static void Convert( filter_t *p_filter, struct SwsContext 
*ctx,
+ {
+     filter_sys_t *p_sys = p_filter->p_sys;
+     uint8_t palette[AVPALETTE_SIZE];
+-    uint8_t *src[4]; int src_stride[4];
+-    uint8_t *dst[4]; int dst_stride[4];
++    uint8_t *src[4], *dst[4];
++    const uint8_t *csrc[4];
++    int src_stride[4], dst_stride[4];
+ 
+     GetPixels( src, src_stride, p_sys->desc_in, &p_filter->fmt_in.video,
+                p_src, i_plane_count, b_swap_uvi );
+@@ -606,11 +607,14 @@ static void Convert( filter_t *p_filter, struct 
SwsContext *ctx,
+     GetPixels( dst, dst_stride, p_sys->desc_out, &p_filter->fmt_out.video,
+                p_dst, i_plane_count, b_swap_uvo );
+ 
++    for (size_t i = 0; i < ARRAY_SIZE(src); i++)
++        csrc[i] = src[i];
++
+ #if LIBSWSCALE_VERSION_INT  >= ((0<<16)+(5<<8)+0)
+-    sws_scale( ctx, src, src_stride, 0, i_height,
++    sws_scale( ctx, csrc, src_stride, 0, i_height,
+                dst, dst_stride );
+ #else
+-    sws_scale_ordered( ctx, src, src_stride, 0, i_height,
++    sws_scale_ordered( ctx, csrc, src_stride, 0, i_height,
+                        dst, dst_stride );
+ #endif
+ }
+-- 
+GitLab
+
+
+From 4431076ad4a21fdcabd3f7ef1d61c45891689b0c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <[email protected]>
+Date: Sun, 3 Mar 2019 17:20:04 +0200
+Subject: [PATCH 4/5] dynamicoverlay: fix variable shadowing
+
+(cherry picked from commit d42e05d6b2c061ae352c131d5aebf8c8d8aa6d35)
+Signed-off-by: Thomas Guillem <[email protected]>
+--- a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
++++ b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
+@@ -899,12 +899,11 @@ static const commanddesc_static_t p_commands[] =
+ void RegisterCommand( filter_t *p_filter )
+ {
+     filter_sys_t *p_sys = (filter_sys_t*) p_filter->p_sys;
+-    size_t i_index = 0;
+ 
+     p_sys->i_commands = ARRAY_SIZE(p_commands);
+     p_sys->pp_commands = (commanddesc_t **) calloc( p_sys->i_commands, 
sizeof(commanddesc_t*) );
+     if( !p_sys->pp_commands ) return;
+-    for( i_index = 0; i_index < p_sys->i_commands; i_index ++ )
++    for( size_t i_index = 0; i_index < p_sys->i_commands; i_index ++ )
+     {
+         p_sys->pp_commands[i_index] = (commanddesc_t *) malloc( 
sizeof(commanddesc_t) );
+         if( !p_sys->pp_commands[i_index] ) return;
+-- 
+GitLab
+
+
+From fda14fc7c013eb75291df10cc8b88336c51328ad Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <[email protected]>
+Date: Mon, 26 Feb 2018 20:43:03 +0200
+Subject: [PATCH 5/5] dynamicoverlay: fix memory corruption
+
+Font alpha is 8-bits, not 32-bits.
+
+(cherry picked from commit 6f14081af7325d334a53126c4eea52bc30fc08a0)
+Signed-off-by: Thomas Guillem <[email protected]>
+--- a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
++++ b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
+@@ -234,8 +234,12 @@ static int parser_SetTextAlpha( char *psz_command, char 
*psz_end,
+     skip_space( &psz_command );
+     if( isdigit( (unsigned char)*psz_command ) )
+     {
+-        if( parse_digit( &psz_command, &p_params->fontstyle.i_font_alpha ) == 
VLC_EGENERIC )
++        int32_t value;
++
++        if( parse_digit( &psz_command, &value ) == VLC_EGENERIC )
+             return VLC_EGENERIC;
++
++        p_params->fontstyle.i_font_alpha = value;
+     }
+     return VLC_SUCCESS;
+ }
+-- 
+GitLab

diff --git a/media-video/vlc/vlc-3.0.20-r2.ebuild 
b/media-video/vlc/vlc-3.0.20-r2.ebuild
new file mode 100644
index 000000000000..b514804bc99c
--- /dev/null
+++ b/media-video/vlc/vlc-3.0.20-r2.ebuild
@@ -0,0 +1,518 @@
+# Copyright 2000-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..2} )
+
+MY_PV="${PV/_/-}"
+MY_PV="${MY_PV/-beta/-test}"
+MY_P="${PN}-${MY_PV}"
+if [[ ${PV} = *9999 ]] ; then
+       if [[ ${PV%.9999} != ${PV} ]] ; then
+               EGIT_BRANCH="3.0.x"
+       fi
+       EGIT_REPO_URI="https://code.videolan.org/videolan/vlc.git";
+       inherit git-r3
+else
+       if [[ ${MY_P} = ${P} ]] ; then
+               
SRC_URI="https://download.videolan.org/pub/videolan/${PN}/${PV}/${P}.tar.xz";
+       else
+               
SRC_URI="https://download.videolan.org/pub/videolan/testing/${MY_P}/${MY_P}.tar.xz";
+       fi
+       KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv -sparc ~x86"
+fi
+inherit autotools flag-o-matic lua-single toolchain-funcs virtualx xdg
+
+DESCRIPTION="Media player and framework with support for most multimedia files 
and streaming"
+HOMEPAGE="https://www.videolan.org/vlc/";
+
+LICENSE="LGPL-2.1 GPL-2"
+SLOT="0/5-9" # vlc - vlccore
+
+IUSE="a52 alsa aom archive aribsub bidi bluray cddb chromaprint chromecast 
dav1d dbus
+       dc1394 debug directx dts +dvbpsi dvd +encode faad fdk +ffmpeg flac 
fluidsynth
+       fontconfig +gcrypt gme keyring gstreamer +gui ieee1394 jack jpeg kate
+       libass libcaca libnotify +libsamplerate libtar libtiger linsys lirc 
live lua
+       macosx-notifications mad matroska modplug mp3 mpeg mtp musepack ncurses 
nfs ogg
+       omxil optimisememory opus png projectm pulseaudio rdp run-as-root samba 
sdl-image
+       sftp shout sid skins soxr speex srt ssl svg taglib theora tremor 
truetype twolame
+       udev upnp vaapi v4l vdpau vnc vpx wayland +X x264 x265 xml zeroconf zvbi
+       cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_x86_mmx 
cpu_flags_x86_sse
+"
+REQUIRED_USE="
+       chromecast? ( encode )
+       directx? ( ffmpeg )
+       fontconfig? ( truetype )
+       libcaca? ( X )
+       libtar? ( skins )
+       libtiger? ( kate )
+       lua? ( ${LUA_REQUIRED_USE} )
+       skins? ( archive gui truetype X xml )
+       ssl? ( gcrypt )
+       vaapi? ( ffmpeg X )
+       vdpau? ( ffmpeg X )
+"
+BDEPEND="
+       >=sys-devel/gettext-0.19.8
+       virtual/pkgconfig
+       lua? ( ${LUA_DEPS} )
+       amd64? ( dev-lang/yasm )
+       wayland? ( dev-util/wayland-scanner )
+       x86? ( dev-lang/yasm )
+"
+# <ffmpeg-5 dep for USE="ffmpeg vaapi" for bug #864721
+RDEPEND="
+       media-libs/libvorbis
+       net-dns/libidn:=
+       sys-libs/zlib
+       virtual/libintl
+       virtual/opengl
+       a52? ( media-libs/a52dec )
+       alsa? ( media-libs/alsa-lib )
+       aom? ( media-libs/libaom:= )
+       archive? ( app-arch/libarchive:= )
+       aribsub? ( media-libs/aribb24 )
+       bidi? (
+               dev-libs/fribidi
+               media-libs/freetype:2[harfbuzz]
+               media-libs/harfbuzz:=
+               virtual/ttf-fonts
+       )
+       bluray? ( >=media-libs/libbluray-1.3.0:= )
+       cddb? ( media-libs/libcddb )
+       chromaprint? ( media-libs/chromaprint:= )
+       chromecast? (
+               >=dev-libs/protobuf-2.5.0:=
+               >=net-libs/libmicrodns-0.1.2:=
+       )
+       dav1d? ( media-libs/dav1d:= )
+       dbus? ( sys-apps/dbus )
+       dc1394? (
+               media-libs/libdc1394:2
+               sys-libs/libraw1394
+       )
+       dts? ( media-libs/libdca )
+       dvbpsi? ( >=media-libs/libdvbpsi-1.2.0:= )
+       dvd? (
+               >=media-libs/libdvdnav-6.1.1:=
+               >=media-libs/libdvdread-6.1.2:=
+       )
+       faad? ( media-libs/faad2 )
+       fdk? ( media-libs/fdk-aac:= )
+       ffmpeg? ( >=media-video/ffmpeg-3.1.3:=[postproc,vaapi?,vdpau?] )
+       flac? (
+               media-libs/flac:=
+               media-libs/libogg
+       )
+       fluidsynth? ( media-sound/fluidsynth:= )
+       fontconfig? ( media-libs/fontconfig:1.0 )
+       gcrypt? (
+               dev-libs/libgcrypt:=
+               dev-libs/libgpg-error
+       )
+       gme? ( media-libs/game-music-emu )
+       keyring? ( app-crypt/libsecret )
+       gstreamer? ( >=media-libs/gst-plugins-base-1.4.5:1.0 )
+       gui? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtsvg:5
+               dev-qt/qtwidgets:5
+               X? (
+                       dev-qt/qtx11extras:5
+                       x11-libs/libX11
+               )
+       )
+       ieee1394? (
+               sys-libs/libavc1394
+               sys-libs/libraw1394
+       )
+       jack? ( virtual/jack )
+       jpeg? ( media-libs/libjpeg-turbo:0 )
+       kate? ( media-libs/libkate )
+       libass? (
+               media-libs/fontconfig:1.0
+               media-libs/libass:=
+       )
+       libcaca? ( media-libs/libcaca )
+       libnotify? (
+               dev-libs/glib:2
+               x11-libs/gdk-pixbuf:2
+               x11-libs/gtk+:3
+               x11-libs/libnotify
+       )
+       libsamplerate? ( media-libs/libsamplerate )
+       libtar? ( dev-libs/libtar )
+       libtiger? ( media-libs/libtiger )
+       linsys? ( media-libs/zvbi )
+       lirc? ( app-misc/lirc )
+       live? ( media-plugins/live:= )
+       lua? ( ${LUA_DEPS} )
+       mad? ( media-libs/libmad )
+       matroska? (
+               >=dev-libs/libebml-1.4.2:=
+               media-libs/libmatroska:=
+       )
+       modplug? ( >=media-libs/libmodplug-0.8.9.0 )
+       mp3? ( media-libs/libmpg123 )
+       mpeg? ( media-libs/libmpeg2 )
+       mtp? ( media-libs/libmtp:= )
+       musepack? ( media-sound/musepack-tools )
+       ncurses? ( sys-libs/ncurses:=[unicode(+)] )
+       nfs? ( >=net-fs/libnfs-0.10.0:= )
+       ogg? ( media-libs/libogg )
+       opus? ( >=media-libs/opus-1.0.3 )
+       png? ( media-libs/libpng:0= )
+       projectm? (
+               media-fonts/dejavu
+               >=media-libs/libprojectm-3.1.12:0=
+       )
+       pulseaudio? ( media-libs/libpulse )
+       rdp? ( >=net-misc/freerdp-2.0.0_rc0:=[client(+)] )
+       samba? ( >=net-fs/samba-4.0.0:0[client,-debug(-)] )
+       sdl-image? ( media-libs/sdl-image )
+       sftp? ( net-libs/libssh2 )
+       shout? ( media-libs/libshout )
+       sid? ( media-libs/libsidplay:2 )
+       skins? (
+               x11-libs/libXext
+               x11-libs/libXinerama
+               x11-libs/libXpm
+       )
+       soxr? ( >=media-libs/soxr-0.1.2 )
+       speex? (
+               >=media-libs/speex-1.2.0
+               media-libs/speexdsp
+       )
+       srt? ( >=net-libs/srt-1.4.2:= )
+       ssl? ( net-libs/gnutls:= )
+       svg? (
+               gnome-base/librsvg:2
+               x11-libs/cairo
+       )
+       taglib? ( >=media-libs/taglib-1.9 )
+       theora? ( media-libs/libtheora )
+       tremor? ( media-libs/tremor )
+       truetype? (
+               media-libs/freetype:2
+               virtual/ttf-fonts
+               !fontconfig? ( media-fonts/dejavu )
+       )
+       twolame? ( media-sound/twolame )
+       udev? ( virtual/udev )
+       upnp? ( net-libs/libupnp:=[ipv6(+)] )
+       v4l? ( media-libs/libv4l:= )
+       vaapi? (
+               <media-video/ffmpeg-5
+               media-libs/libva:=[drm(+),wayland?,X?]
+       )
+       vdpau? ( x11-libs/libvdpau )
+       vnc? ( net-libs/libvncserver )
+       vpx? ( media-libs/libvpx:= )
+       wayland? (
+               >=dev-libs/wayland-1.15
+               dev-libs/wayland-protocols
+       )
+       X? (
+               x11-libs/libX11
+               x11-libs/libxcb
+               x11-libs/xcb-util
+               x11-libs/xcb-util-keysyms
+       )
+       x264? ( >=media-libs/x264-0.0.20190214:= )
+       x265? ( media-libs/x265:= )
+       xml? ( dev-libs/libxml2:2 )
+       zeroconf? ( net-dns/avahi[dbus] )
+       zvbi? ( media-libs/zvbi )
+"
+DEPEND="${RDEPEND}
+       X? ( x11-base/xorg-proto )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.1.0-fix-libtremor-libs.patch # build system
+       "${FILESDIR}"/${PN}-2.2.8-freerdp-2.patch # bug 590164
+       "${FILESDIR}"/${PN}-3.0.6-fdk-aac-2.0.0.patch # bug 672290
+       "${FILESDIR}"/${PN}-3.0.11.1-configure_lua_version.patch
+       "${FILESDIR}"/${PN}-3.0.18-drop-minizip-dep.patch
+       "${FILESDIR}"/${PN}-3.0.20-c99.patch
+)
+
+DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt )
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+       if use lua; then
+               lua-single_pkg_setup
+       fi
+}
+
+src_prepare() {
+       default
+
+       # bug 608256
+       xdg_environment_reset
+
+       has_version 'net-libs/libupnp:1.8' && \
+               eapply "${FILESDIR}"/${PN}-2.2.8-libupnp-slot-1.8.patch
+
+       # Bootstrap when we are on a git checkout.
+       if [[ ${PV} = *9999 ]] ; then
+               ./bootstrap
+       fi
+
+       # Make it build with libtool 1.5
+       rm m4/lt* m4/libtool.m4 || die
+
+       # We are not in a real git checkout due to the absence of a .git 
directory.
+       touch src/revision.txt || die
+
+       # Don't use --started-from-file when not using dbus.
+       if ! use dbus ; then
+               sed -i 's/ --started-from-file//' share/vlc.desktop.in || die
+       fi
+
+       # Disable running of vlc-cache-gen, we do that in pkg_postinst
+       sed -e "/test.*build.*host/s/\$(host)/nothanks/" \
+               -i Makefile.am -i bin/Makefile.am || die "Failed to disable 
vlc-cache-gen"
+
+       # Fix gettext version mismatch errors.
+       sed -i -e s/GETTEXT_VERSION/GETTEXT_REQUIRE_VERSION/ configure.ac || die
+
+       eautoreconf
+
+       # Disable automatic running of tests.
+       find . -name 'Makefile.in' -exec sed -i 's/\(..*\)check-TESTS/\1/' {} 
\; || die
+}
+
+src_configure() {
+       local -x BUILDCC="$(tc-getBUILD_CC)"
+
+       local myeconfargs=(
+               --disable-aa
+               --disable-optimizations
+               --disable-rpath
+               --disable-update-check
+               --enable-fast-install
+               --enable-screen
+               --enable-vcd
+               --enable-vlc
+               --enable-vorbis
+               $(use_enable a52)
+               $(use_enable alsa)
+               $(use_enable aom)
+               $(use_enable archive)
+               $(use_enable aribsub)
+               $(use_enable bidi fribidi)
+               $(use_enable bidi harfbuzz)
+               $(use_enable bluray)
+               $(use_enable cddb libcddb)
+               $(use_enable chromaprint)
+               $(use_enable chromecast)
+               $(use_enable chromecast microdns)
+               $(use_enable cpu_flags_arm_neon neon)
+               $(use_enable cpu_flags_ppc_altivec altivec)
+               $(use_enable cpu_flags_x86_mmx mmx)
+               $(use_enable cpu_flags_x86_sse sse)
+               $(use_enable dav1d)
+               $(use_enable dbus)
+               $(use_enable dbus kwallet)
+               $(use_enable dc1394)
+               $(use_enable debug)
+               $(use_enable directx)
+               $(use_enable directx d3d11va)
+               $(use_enable directx dxva2)
+               $(use_enable dts dca)
+               $(use_enable dvbpsi)
+               $(use_enable dvd dvdnav)
+               $(use_enable dvd dvdread)
+               $(use_enable encode sout)
+               $(use_enable encode vlm)
+               $(use_enable faad)
+               $(use_enable fdk fdkaac)
+               $(use_enable ffmpeg avcodec)
+               $(use_enable ffmpeg avformat)
+               $(use_enable ffmpeg postproc)
+               $(use_enable ffmpeg swscale)
+               $(use_enable flac)
+               $(use_enable fluidsynth)
+               $(use_enable fontconfig)
+               $(use_enable gcrypt libgcrypt)
+               $(use_enable gme)
+               $(use_enable keyring secret)
+               $(use_enable gstreamer gst-decode)
+               $(use_enable gui qt)
+               $(use_enable ieee1394 dv1394)
+               $(use_enable jack)
+               $(use_enable jpeg)
+               $(use_enable kate)
+               $(use_enable libass)
+               $(use_enable libcaca caca)
+               $(use_enable libnotify notify)
+               $(use_enable libsamplerate samplerate)
+               $(use_enable libtar)
+               $(use_enable libtiger tiger)
+               $(use_enable linsys)
+               $(use_enable lirc)
+               $(use_enable live live555)
+               $(use_enable lua)
+               $(use_enable macosx-notifications osx-notifications)
+               $(use_enable mad)
+               $(use_enable matroska)
+               $(use_enable modplug mod)
+               $(use_enable mp3 mpg123)
+               $(use_enable mpeg libmpeg2)
+               $(use_enable mtp)
+               $(use_enable musepack mpc)
+               $(use_enable ncurses)
+               $(use_enable nfs)
+               $(use_enable ogg)
+               $(use_enable omxil)
+               $(use_enable omxil omxil-vout)
+               $(use_enable optimisememory optimize-memory)
+               $(use_enable opus)
+               $(use_enable png)
+               $(use_enable projectm)
+               $(use_enable pulseaudio pulse)
+               $(use_enable rdp freerdp)
+               $(use_enable run-as-root)
+               $(use_enable samba smbclient)
+               $(use_enable sdl-image)
+               $(use_enable sftp)
+               $(use_enable shout)
+               $(use_enable sid)
+               $(use_enable skins skins2)
+               $(use_enable soxr)
+               $(use_enable speex)
+               $(use_enable srt)
+               $(use_enable ssl gnutls)
+               $(use_enable svg)
+               $(use_enable svg svgdec)
+               $(use_enable taglib)
+               $(use_enable theora)
+               $(use_enable tremor)
+               $(use_enable twolame)
+               $(use_enable udev)
+               $(use_enable upnp)
+               $(use_enable v4l v4l2)
+               $(use_enable vaapi libva)
+               $(use_enable vdpau)
+               $(use_enable vnc)
+               $(use_enable vpx)
+               $(use_enable wayland)
+               $(use_with X x)
+               $(use_enable X xcb)
+               $(use_enable X xvideo)
+               $(use_enable x264)
+               $(use_enable x264 x26410b)
+               $(use_enable x265)
+               $(use_enable xml libxml2)
+               $(use_enable zeroconf avahi)
+               $(use_enable zvbi)
+               $(use_enable !zvbi telx)
+               --with-kde-solid="${EPREFIX}"/usr/share/solid/actions
+               --disable-asdcp
+               --disable-coverage
+               --disable-cprof
+               --disable-crystalhd
+               --disable-decklink
+               --disable-gles2
+               --disable-goom
+               --disable-kai
+               --disable-kva
+               --disable-libplacebo
+               --disable-maintainer-mode
+               --disable-merge-ffmpeg
+               --disable-mfx
+               --disable-mmal
+               --disable-opencv
+               --disable-opensles
+               --disable-oss
+               --disable-rpi-omxil
+               --disable-schroedinger
+               --disable-shine
+               --disable-sndio
+               --disable-spatialaudio
+               --disable-vsxu
+               --disable-wasapi
+               --disable-wma-fixed
+       )
+       # ^ We don't have these disabled libraries in the Portage tree yet.
+
+       # https://code.videolan.org/videolan/vlc/-/issues/17626 (bug #861143)
+       append-flags -fno-strict-aliasing
+       filter-lto
+
+       # Compatibility fix for Samba 4.
+       use samba && append-cppflags "-I${ESYSROOT}/usr/include/samba-4.0"
+
+       if use x86; then
+               # We need to disable -fstack-check if use >=gcc 4.8.0. bug 
#499996
+               append-cflags $(test-flags-CC -fno-stack-check)
+               # Bug 569774
+               replace-flags -Os -O2
+       fi
+
+       # FIXME: Needs libresid-builder from libsidplay:2 which is in another 
directory...
+       append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/sidplay/builders/"
+
+       if use riscv; then
+               # bug #803473
+               append-libs -latomic
+       fi
+
+       if use truetype || use bidi; then
+               myeconfargs+=( --enable-freetype )
+       else
+               myeconfargs+=( --disable-freetype )
+       fi
+
+       if use truetype || use projectm; then
+               local dejavu="${EPREFIX}/usr/share/fonts/dejavu/"
+               myeconfargs+=(
+                       --with-default-font=${dejavu}/DejaVuSans.ttf
+                       --with-default-font-family=Sans
+                       
--with-default-monospace-font=${dejavu}/DejaVuSansMono.ttf
+                       --with-default-monospace-font-family=Monospace
+               )
+       fi
+
+       econf "${myeconfargs[@]}"
+
+       # _FORTIFY_SOURCE is set to 2 in config.h, which is also the default 
value on Gentoo.
+       # Other values may break the build (bug 523144), so definition should 
not be removed.
+       # To prevent redefinition warnings, we undefine _FORTIFY_SOURCE at the 
start of config.h
+       sed -i '1i#undef _FORTIFY_SOURCE' config.h || die
+}
+
+src_test() {
+       virtx emake check-TESTS
+}
+
+src_install() {
+       default
+       find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+       if [[ -z "${ROOT}" ]] && [[ -x 
"${EROOT}/usr/$(get_libdir)/vlc/vlc-cache-gen" ]] ; then
+               einfo "Running ${EPREFIX}/usr/$(get_libdir)/vlc/vlc-cache-gen 
on ${EROOT}/usr/$(get_libdir)/vlc/plugins/"
+               "${EPREFIX}/usr/$(get_libdir)/vlc/vlc-cache-gen" 
"${EROOT}/usr/$(get_libdir)/vlc/plugins/"
+       else
+               ewarn "We cannot run vlc-cache-gen (most likely ROOT != /)"
+               ewarn "Please run 
${EPREFIX}/usr/$(get_libdir)/vlc/vlc-cache-gen manually"
+               ewarn "If you do not do it, vlc will take a long time to load."
+       fi
+
+       xdg_pkg_postinst
+}
+
+pkg_postrm() {
+       if [[ -e "${EROOT}"/usr/$(get_libdir)/vlc/plugins/plugins.dat ]]; then
+               rm "${EROOT}"/usr/$(get_libdir)/vlc/plugins/plugins.dat || die 
"Failed to rm plugins.dat"
+       fi
+
+       xdg_pkg_postrm
+}

Reply via email to