diff --git a/SOURCES/fdk-aac2.patch b/SOURCES/fdk-aac2.patch new file mode 100644 index 0000000..a5104d1 --- /dev/null +++ b/SOURCES/fdk-aac2.patch @@ -0,0 +1,84 @@ +From 6ea9b13fe82fae2b25b7371c6c36d6296db28ccb Mon Sep 17 00:00:00 2001 +From: Antonio Larrosa +Date: Thu, 14 Feb 2019 10:09:30 +0100 +Subject: [PATCH] Fix building vlc with libfdk-aac v2 + +When flushing the encoder, we now need to provide non-null buffer +parameters for everything, even if they are unused. + +The encoderDelay parameter has been replaced by two, nDelay and +nDelayCore. + +This is based on: +https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=141c960e21d2860e354f9b90df136184dd00a9a8;hp=c8bca9fe466f810fd484e2c6db7ef7bc83b5a943 + +Signed-off-by: Jean-Baptiste Kempf +--- + modules/codec/fdkaac.c | 27 +++++++++++++++++++++------ + 1 file changed, 21 insertions(+), 6 deletions(-) + +diff --git a/modules/codec/fdkaac.c b/modules/codec/fdkaac.c +index e0b3088c4a..3ac7b756a3 100644 +--- a/modules/codec/fdkaac.c ++++ b/modules/codec/fdkaac.c +@@ -92,6 +92,11 @@ static void CloseEncoder(vlc_object_t *); + #define SIGNALING_COMPATIBLE 1 + #define SIGNALING_HIERARCHICAL 2 + ++#define FDKENC_VER_AT_LEAST(vl0, vl1) \ ++ (defined(AACENCODER_LIB_VL0) && \ ++ ((AACENCODER_LIB_VL0 > vl0) || \ ++ (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1))) ++ + static const int pi_aot_values[] = { PROFILE_AAC_LC, PROFILE_AAC_HE, PROFILE_AAC_HE_v2, PROFILE_AAC_LD, PROFILE_AAC_ELD }; + static const char *const ppsz_aot_descriptions[] = + { N_("AAC-LC"), N_("HE-AAC"), N_("HE-AAC-v2"), N_("AAC-LD"), N_("AAC-ELD") }; +@@ -288,7 +293,11 @@ static int OpenEncoder(vlc_object_t *p_this) + p_sys->i_maxoutputsize = 768*p_enc->fmt_in.audio.i_channels; + p_enc->fmt_in.audio.i_bitspersample = 16; + p_sys->i_frame_size = info.frameLength; ++#if FDKENC_VER_AT_LEAST(4, 0) ++ p_sys->i_encoderdelay = info.nDelay; ++#else + p_sys->i_encoderdelay = info.encoderDelay; ++#endif + + p_enc->fmt_out.i_extra = info.confSize; + if (p_enc->fmt_out.i_extra) { +@@ -351,21 +360,27 @@ static block_t *EncodeAudio(encoder_t *p_enc, block_t *p_aout_buf) + int out_identifier = OUT_BITSTREAM_DATA; + int out_size, out_elem_size; + void *in_ptr, *out_ptr; ++ uint8_t dummy_buf[1]; + + if (unlikely(i_samples == 0)) { + // this forces the encoder to purge whatever is left in the internal buffer ++ /* Must be a non-null pointer, even if it's a dummy. We could use ++ * the address of anything else on the stack as well. */ ++ in_ptr = dummy_buf; ++ in_size = 0; ++ + in_args.numInSamples = -1; + } else { + in_ptr = p_buffer + (i_samples - i_samples_left)*p_enc->fmt_in.audio.i_channels; + in_size = 2*p_enc->fmt_in.audio.i_channels*i_samples_left; +- in_elem_size = 2; + in_args.numInSamples = p_enc->fmt_in.audio.i_channels*i_samples_left; +- in_buf.numBufs = 1; +- in_buf.bufs = &in_ptr; +- in_buf.bufferIdentifiers = &in_identifier; +- in_buf.bufSizes = &in_size; +- in_buf.bufElSizes = &in_elem_size; + } ++ in_elem_size = 2; ++ in_buf.numBufs = 1; ++ in_buf.bufs = &in_ptr; ++ in_buf.bufferIdentifiers = &in_identifier; ++ in_buf.bufSizes = &in_size; ++ in_buf.bufElSizes = &in_elem_size; + block_t *p_block; + p_block = block_Alloc(p_sys->i_maxoutputsize); + p_block->i_buffer = p_sys->i_maxoutputsize; +-- +2.11.0 + diff --git a/SOURCES/macros.vlc b/SOURCES/macros.vlc new file mode 100644 index 0000000..6444560 --- /dev/null +++ b/SOURCES/macros.vlc @@ -0,0 +1 @@ +%vlc_plugindir %{_libdir}/vlc/plugins diff --git a/SOURCES/vaapi-without-ffmepg4.patch b/SOURCES/vaapi-without-ffmepg4.patch new file mode 100644 index 0000000..c71a399 --- /dev/null +++ b/SOURCES/vaapi-without-ffmepg4.patch @@ -0,0 +1,18 @@ +avcodec_vaapi requires ffmpeg-4, but other vaapi modules can be built + +diff --git a/configure.ac b/configure.ac +index 69beb77..c7f7142 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2454,9 +2454,9 @@ AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [ + have_avcodec_vaapi="yes" + ],[ + AS_IF([test -n "${enable_libva}"], [ +- AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing]) ++ AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing]) + ], [ +- AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ]) ++ AC_MSG_NOTICE([libva is present but libavcodec/vaapi.h is missing ]) + ]) + ]) + VLC_RESTORE_FLAGS diff --git a/SPECS/vlc.spec b/SPECS/vlc.spec index d3eb9ab..20f10cb 100644 --- a/SPECS/vlc.spec +++ b/SPECS/vlc.spec @@ -1,610 +1,970 @@ -%global commit0 c4ab31d5f0d5d0ba298706241d5b67ae49215935 -%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) -%global _with_bootstrap 1 -%global _with_faad2 1 -%global _with_ffmpeg 1 -%global _with_libdca 1 -%global _with_x264 1 -%global _with_x265 1 -%global _with_xvidcore 1 -%global _with_live555 1 -%global _with_vaapi 1 -%global _with_a52dec 1 -%global _with_libdvbpsi 1 -%global _with_libmad 1 -%global _with_libmpeg2 1 -%global _with_twolame 1 -%global _with_fluidsynth 1 -%global _with_schroedinger 1 -%global _with_freerdp 1 -%global _with_dav1d 1 -%global _with_aom 1 -%ifarch x86_64 ppc64le aarch64 -%global _with_asdcp 1 +# codecs which cannot be shipped in Fedora proper +%bcond freeworld 0 +%bcond faad2 %{with freeworld} +%bcond x264 %{with freeworld} +%bcond x265 %{with freeworld} + +# not compatible with asdcplib-2.12 +%bcond asdcp %[!(0%{?fedora} >= 38 || 0%{?rhel} >= 10)] +# not compatible with opencv 3.4 or 4.0 +# https://code.videolan.org/videolan/vlc/-/issues/22016 +%bcond opencv 0 +# not compatible with libplacebo-6 +# https://code.videolan.org/videolan/vlc/-/merge_requests/3950 +%bcond placebo %[!(0%{?fedora} >= 39 || 0%{?rhel} >= 10)] +# disabled due to various issues +%bcond projectm 0 + +%ifnarch s390x +%bcond crystalhd %[0%{?fedora} || 0%{?rhel} < 9] +%bcond ieee1394 1 %endif -%global _without_libdc1394 1 -%global _with_bluray 1 -%global _with_wayland 1 -%global _with_lirc 1 -%ifarch x86_64 i686 -%global _with_crystalhd 1 + +%ifarch x86_64 +%bcond mfx 1 %endif -%global _with_opencv 0 -%global dts_ver 8 -Summary: The cross-platform open-source multimedia framework, player and server -Epoch: 1 Name: vlc -Version: 3.0.17.4 -Release: 1%{?dist} -License: GPLv2+ +Epoch: 1 +Version: 3.0.20 +Release: 1%{dist} +Summary: The cross-platform open-source multimedia framework, player and server +License: GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND BSD-3-Clause URL: https://www.videolan.org -Source0: https://download.videolan.org/pub/videolan/%{?vlc_rc:testing/}vlc/%{version}%{?vlc_rc}/vlc-%{version}%{?vlc_rc}.tar.xz -%global vlc_setup vlc-%{version}%{?vlc_rc} -Patch0: https://github.com/RPi-Distro/vlc/raw/buster-rpt/debian/patches/mmal_20.patch -Patch1: https://github.com/RPi-Distro/vlc/raw/buster-rpt/debian/patches/mmal_chain.patch -Patch3: 0001-Use-SYSTEM-wide-ciphers-for-gnutls.patch -Patch5: Lower-libgcrypt-to-1.5.3.patch -Patch6: Restore-support-for-thread-callbacks-for-older-gcryp.patch -# lua-5.1 is used by default for vlc build -Patch7: Switch-to-Fedora-lua-5.1.patch -# Backport for 3.0 notifyd without gtk3 -Patch9: notify-don-t-depend-on-any-GTK-version.patch -Patch12: 0001-Revert-access-libdvdread-6.1.2-supports-UTF-8-paths-.patch -# https://code.videolan.org/videolan/vlc/-/issues/25473#note_256576 -Patch13: 0001-Get-addr-by-ref.-from-getConnectionEndpointAddress.patch -# https://code.videolan.org/videolan/vlc/-/merge_requests/889 -Patch14: Remove_legacy_caca.patch -# https://code.videolan.org/videolan/vlc/-/commit/2202c892c8dc1381b596c53c2ebd3ca680061f95 -# https://code.videolan.org/videolan/vlc/-/commit/d38ddd7270ffaea705981b6a48086778850d3c96 -Patch15: fix-dav1d-1.0.patch -BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: fontpackages-devel +Source: https://get.videolan.org/vlc/%{version}/vlc-%{version}.tar.xz +Source: macros.vlc +# https://fedoraproject.org/wiki/Changes/CryptoPolicy +Patch: 0001-Use-SYSTEM-wide-ciphers-for-gnutls.patch +# Fix building with fdk-aac-2.0; backport for 3.0 from flathub +Patch: fdk-aac2.patch +# separate avcodec-vaapi conditional from other vaapi modules +Patch: vaapi-without-ffmepg4.patch + +%{load:%{S:1}} +%global __provides_exclude_from ^%{vlc_plugindir}/.*$ + BuildRequires: bison BuildRequires: flex BuildRequires: gettext-devel BuildRequires: libtool BuildRequires: gcc-c++ +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib -%{?_with_a52dec:BuildRequires: a52dec-devel} -%{?_with_aom:BuildRequires: libaom-devel} +BuildRequires: a52dec-devel BuildRequires: aalib-devel -BuildRequires: alsa-lib-devel -%{?_with_asdcp:BuildRequires: asdcplib-devel} -BuildRequires: avahi-devel -BuildRequires: cdparanoia-devel -%{?_with_dav1d:BuildRequires: libdav1d-devel} -BuildRequires: pkgconfig(dbus-1) -%{?_with_faad2:BuildRequires: faad2-devel} -%if 0%{?fedora} >= 36 || 0%{?rhel} >= 9 -%{?_with_ffmpeg:BuildRequires: compat-ffmpeg4-devel} -%else -%{?_with_ffmpeg:BuildRequires: ffmpeg-devel >= 0.4.9-0} +%if %{with faad2} +BuildRequires: faad2-devel %endif -BuildRequires: flac-devel -%{?_with_fluidsynth:BuildRequires: fluidsynth-devel} -BuildRequires: fribidi-devel -BuildRequires: gnutls-devel >= 1.0.17 BuildRequires: hostname -BuildRequires: jack-audio-connection-kit-devel -BuildRequires: game-music-emu-devel -%ifarch %{arm} aarch64 -BuildRequires: pkgconfig(gstreamer-app-1.0) -BuildRequires: pkgconfig(gstreamer-video-1.0) +BuildRequires: kernel-headers +%if %{with crystalhd} +BuildRequires: libcrystalhd-devel %endif -BuildRequires: libavc1394-devel -BuildRequires: libass-devel >= 0.9.7 -%{?_with_bluray:BuildRequires: libbluray-devel >= 0.2.1} -BuildRequires: libcaca-devel -BuildRequires: libcddb-devel -BuildRequires: libcdio-devel >= 0.77-3 -BuildRequires: pkgconfig(libchromaprint) -%{?_with_crystalhd:BuildRequires: libcrystalhd-devel} +BuildRequires: libgcrypt-devel +BuildRequires: libjpeg-devel +BuildRequires: libmad-devel +BuildRequires: libmpcdec-devel +BuildRequires: libpng-devel +BuildRequires: lirc-devel +BuildRequires: live555-devel +BuildRequires: lua-devel +BuildRequires: pkgconfig(alsa) >= 1.0.24 +BuildRequires: pkgconfig(aom) +#BuildRequires: pkgconfig(aribb24) +#BuildRequires: pkgconfig(aribb25) +%if %{with asdcp} +BuildRequires: pkgconfig(asdcplib) +%endif +BuildRequires: pkgconfig(avahi-client) >= 0.6 +#BuildRequires: pkgconfig(breakpad-client) +BuildRequires: pkgconfig(caca) >= 0.99.beta14 BuildRequires: pkgconfig(daaladec) BuildRequires: pkgconfig(daalaenc) -%{!?_without_libdc1394:BuildRequires: libdc1394-devel} -%{?_with_libdca:BuildRequires: libdca-devel} -%{?_with_libdvbpsi:BuildRequires: libdvbpsi-devel} -BuildRequires: libdvdnav-devel -BuildRequires: libebml-devel -BuildRequires: libgcrypt-devel -BuildRequires: libid3tag-devel -BuildRequires: libkate-devel -%{?_with_libmad:BuildRequires: libmad-devel} -BuildRequires: libmatroska-devel >= 0.7.6 -%ifarch x86_64 i686 -BuildRequires: libmfx-devel +BuildRequires: pkgconfig(dav1d) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(dvdnav) > 4.9.0 +BuildRequires: pkgconfig(dvdread) > 4.9.0 +BuildRequires: pkgconfig(egl) +#BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(fdk-aac) +BuildRequires: pkgconfig(flac) +#BuildRequires: pkgconfig(fluidlite) +BuildRequires: pkgconfig(fluidsynth) >= 1.1.2 +BuildRequires: pkgconfig(fontconfig) >= 2.11 +#BuildRequires: pkgconfig(freerdp) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(fribidi) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(gnutls) >= 3.3.6 +BuildRequires: pkgconfig(gstreamer-app-1.0) +BuildRequires: pkgconfig(gstreamer-video-1.0) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(jack) >= 1.9.7 +BuildRequires: pkgconfig(kate) >= 0.3.0 +BuildRequires: pkgconfig(libarchive) >= 3.1.0 +BuildRequires: pkgconfig(libass) >= 0.9.8 +BuildRequires: pkgconfig(libavcodec) >= 57.37.100 +BuildRequires: pkgconfig(libavformat) >= 53.21.0 +BuildRequires: pkgconfig(libavutil) >= 52.0.0 +BuildRequires: pkgconfig(libbluray) >= 0.6.2 +BuildRequires: pkgconfig(libcddb) >= 0.9.5 +BuildRequires: pkgconfig(libchromaprint) +%if %{with ieee1394} +BuildRequires: pkgconfig(libdc1394-2) >= 2.1.0 %endif -BuildRequires: libmodplug-devel -BuildRequires: libmpcdec-devel -BuildRequires: libmpg123-devel -BuildRequires: libmtp-devel >= 1.0.0 -%{?_with_projectm:BuildRequires: libprojectM-devel} -BuildRequires: libproxy-devel -BuildRequires: librsvg2-devel >= 2.9.0 -BuildRequires: libssh2-devel -BuildRequires: libsysfs-devel -BuildRequires: libshout-devel -BuildRequires: libsmbclient-devel -BuildRequires: libtheora-devel -BuildRequires: libtiger-devel -BuildRequires: libtiff-devel +BuildRequires: pkgconfig(libdca) >= 0.0.5 +#BuildRequires: pkgconfig(libdsm) >= 0.2.0 +BuildRequires: pkgconfig(libdvbpsi) +BuildRequires: pkgconfig(libebml) >= 1.3.6 +BuildRequires: pkgconfig(libgme) +#BuildRequires: pkgconfig(libgoom2) BuildRequires: pkgconfig(libidn) -BuildRequires: pkgconfig(libjpeg) -# Not Yet in EL8 -%if 0%{?fedora} -BuildRequires: pkgconfig(libplacebo) +BuildRequires: pkgconfig(libmatroska) +%if %{with mfx} +BuildRequires: pkgconfig(libmfx) %endif -BuildRequires: pkgconfig(libudev) -BuildRequires: pkgconfig(libvncclient) -BuildRequires: pkgconfig(libnotify) -BuildRequires: libupnp-devel -BuildRequires: libv4l-devel -%{?_with_vaapi:BuildRequires: libva-devel} -BuildRequires: pkgconfig(vdpau) -BuildRequires: pkgconfig(vorbis) -BuildRequires: pkgconfig(vpx) -BuildRequires: pkgconfig(libxml-2.0) -%{?_with_lirc:BuildRequires: lirc-devel } -%{?_with_live555:BuildRequires: live555-devel >= 0-0.33} -BuildRequires: kernel-headers -BuildRequires: pkgconfig(gl) -BuildRequires: pkgconfig(glu) -BuildRequires: libsamplerate-devel -BuildRequires: libshout-devel -%if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: lua5.1-devel, lua5.1 -%else -BuildRequires: lua-devel +BuildRequires: pkgconfig(libmodplug) >= 0.8.9.0 +BuildRequires: pkgconfig(libmpeg2) >= 0.3.2 +BuildRequires: pkgconfig(libmpg123) +BuildRequires: pkgconfig(libmtp) >= 1.0.0 +BuildRequires: pkgconfig(libnfs) >= 1.10.0 +BuildRequires: pkgconfig(libnotify) pkgconfig(gtk+-3.0) +%if %{with placebo} +BuildRequires: pkgconfig(libplacebo) >= 0.2.1 %endif -%{?_with_libmpeg2:BuildRequires: libmpeg2-devel >= 0.3.2} -BuildRequires: ncurses-devel -%{?_with_opencv:BuildRequires: pkgconfig(opencv)} -BuildRequires: openslp-devel -Buildrequires: opus-devel -BuildRequires: pcre-devel -BuildRequires: pkgconfig(libarchive) >= 3.1.0 -BuildRequires: pkgconfig(libpulse) >= 0.9.8 +BuildRequires: pkgconfig(libpostproc) +%if %{with projectm} +BuildRequires: pkgconfig(libprojectM) +%endif +BuildRequires: pkgconfig(libpulse) >= 1.0 +%if %{with ieee1394} +BuildRequires: pkgconfig(libraw1394) >= 2.0.1 pkgconfig(libavc1394) >= 0.5.3 +%endif +BuildRequires: pkgconfig(librsvg-2.0) >= 2.9.0 BuildRequires: pkgconfig(libsecret-1) >= 0.18 +#BuildRequires: pkgconfig(libsidplay2) +#BuildRequires: pkgconfig(libsmb2) >= 3.0.0 +BuildRequires: pkgconfig(libssh2) +BuildRequires: pkgconfig(libswscale) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libudev) >= 142 +BuildRequires: pkgconfig(libupnp) +BuildRequires: pkgconfig(libva) >= 0.38 +BuildRequires: pkgconfig(libva-drm) +BuildRequires: pkgconfig(libva-wayland) +BuildRequires: pkgconfig(libva-x11) +BuildRequires: pkgconfig(libvncclient) >= 0.9.9 +#BuildRequires: pkgconfig(libvsxu) +BuildRequires: pkgconfig(libxml-2.0) >= 2.5 BuildRequires: pkgconfig(microdns) >= 0.1.2 -BuildRequires: pkgconfig(protobuf-lite) >= 2.5 -%if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: qt5-qtbase-private-devel +BuildRequires: pkgconfig(minizip) +BuildRequires: pkgconfig(ncursesw) +BuildRequires: pkgconfig(ogg) >= 1.0 +%if %{with opencv} +BuildRequires: pkgconfig(opencv) %endif +BuildRequires: pkgconfig(opus) >= 1.0.3 +BuildRequires: pkgconfig(protobuf-lite) >= 2.5 BuildRequires: pkgconfig(Qt5Core) >= 5.5 BuildRequires: pkgconfig(Qt5Gui) >= 5.5 BuildRequires: pkgconfig(Qt5Svg) >= 5.5 +BuildRequires: pkgconfig(Qt5Widgets) >= 5.5 BuildRequires: pkgconfig(Qt5X11Extras) >= 5.5 -BuildRequires: pkgconfig(soxr) +BuildRequires: pkgconfig(samplerate) +BuildRequires: pkgconfig(schroedinger-1.0) >= 1.0.10 +BuildRequires: pkgconfig(SDL_image) >= 1.2.10 +#BuildRequires: pkgconfig(shine) >= 3.0.0 +BuildRequires: pkgconfig(shout) >= 2.1 +BuildRequires: pkgconfig(smbclient) +BuildRequires: pkgconfig(soxr) >= 0.1.2 +BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(spatialaudio) -BuildRequires: pkgconfig(speexdsp) >= 1.0.5 -BuildRequires: pkgconfig(srt) -%{?_with_wayland: +BuildRequires: pkgconfig(speex) >= 1.0.5 +BuildRequires: pkgconfig(speexdsp) +BuildRequires: pkgconfig(srt) >= 1.3.0 +BuildRequires: pkgconfig(taglib) >= 1.9 +BuildRequires: pkgconfig(theoradec) +BuildRequires: pkgconfig(theoraenc) +BuildRequires: pkgconfig(tiger) >= 0.3.1 +BuildRequires: pkgconfig(twolame) +BuildRequires: pkgconfig(vdpau) >= 0.6 +BuildRequires: pkgconfig(vorbis) >= 1.1 +BuildRequires: pkgconfig(vorbisenc) >= 1.1 +BuildRequires: pkgconfig(vpx) >= 1.5.0 BuildRequires: pkgconfig(wayland-client) >= 1.5.91 BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-protocols) -} -%{?_with_schroedinger:BuildRequires: pkgconfig(schroedinger-1.0)} -BuildRequires: pkgconfig(sqlite3) -%{?_with_sidplay:BuildRequires: pkgconfig(libsidplay2)} -BuildRequires: pkgconfig(speex) -BuildRequires: pkgconfig(taglib) -%{?_with_twolame:BuildRequires: pkgconfig(twolame)} -%{?_with_vcdimager:BuildRequires: vcdimager-devel >= 0.7.21} -%{?_with_x264:BuildRequires: x264-devel >= 0-0.8.20061028} -%{?_with_x265:BuildRequires: x265-devel} -%{?_with_xvidcore:BuildRequires: xvidcore-devel} -BuildRequires: zlib-devel -BuildRequires: zvbi-devel - -# X-libs -BuildRequires: libXt-devel -BuildRequires: libXv-devel -BuildRequires: libXxf86vm-devel -BuildRequires: libX11-devel -BuildRequires: libXext-devel -BuildRequires: libXinerama-devel -BuildRequires: libXpm-devel -%{!?_without_xcb: -BuildRequires: libxcb-devel -BuildRequires: xcb-util-devel -BuildRequires: pkgconfig(xcb-keysyms) -} -BuildRequires: xorg-x11-proto-devel - -%{?_with_rpi: -ExclusiveArch: armv7hnl -BuildRequires: raspberrypi-vc-devel -BuildRequires: raspberrypi-vc-static -} - -%if 0%{?el7} -BuildRequires: devtoolset-%{dts_ver}-toolchain, devtoolset-%{dts_ver}-libatomic-devel +#BuildRequires: pkgconfig(x262) +%if %{with x264} +BuildRequires: pkgconfig(x264) >= 0.153 %endif - -%if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: phonon-qt5-devel -BuildRequires: phonon-qt5-backend-gstreamer -%else -# phonon is unmaintained on EL7 -Obsoletes: phonon-backend-vlc < 0.6.2-3 -Provides: phonon-backend-vlc = 0.6.2-3 -%endif - -%{?_with_wayland: -# Fedora 25 Workstation default to wayland but not all -# Boolean deps will handle this better when allowed -%if 0%{?fedora} || 0%{?rhel} >= 8 -Recommends: qt5-qtwayland%{_isa} +%if %{with x265} +BuildRequires: pkgconfig(x265) %endif -} - -#Merge back jack plugin into main -Obsoletes: vlc-plugin-jack < %{version}-%{release} -Provides: vlc-plugin-jack = %{version}-%{release} - -Provides: %{name}-xorg%{_isa} = %{epoch}:%{version}-%{release} -Requires: vlc-core%{_isa} = %{epoch}:%{version}-%{release} - -Requires: dejavu-sans-fonts -Requires: dejavu-sans-mono-fonts -Requires: dejavu-serif-fonts +BuildRequires: pkgconfig(xcb) >= 1.6 +BuildRequires: pkgconfig(xcb-composite) +BuildRequires: pkgconfig(xcb-keysyms) >= 0.3.4 +BuildRequires: pkgconfig(xcb-randr) >= 1.3 +BuildRequires: pkgconfig(xcb-shm) +BuildRequires: pkgconfig(xcb-xv) >= 1.1.90.1 +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xinerama) +BuildRequires: pkgconfig(xpm) +BuildRequires: pkgconfig(xproto) +BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28 +BuildRequires: qt5-qtbase-private-devel +BuildRequires: zlib-devel -#For xdg-sreensaver -Requires: xdg-utils +Provides: %{name}-xorg%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-gui-qt%{?_isa} = %{epoch}:%{version}-%{release} +Recommends: %{name}-gui-skins2%{?_isa} = %{epoch}:%{version}-%{release} +Recommends: %{name}-plugin-ffmpeg%{?_isa} = %{epoch}:%{version}-%{release} Requires: hicolor-icon-theme - -%if 0%{?el7:1} -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig -%endif +Requires: kf5-filesystem +# For xdg-screensaver (libxdg_screensaver_plugin) +Recommends: xdg-utils %description VLC media player is a highly portable multimedia player and multimedia framework capable of reading most audio and video formats as well as DVDs, Audio CDs VCDs, and various streaming protocols. -It can also be used as a media converter or a server to stream in uni-cast or +It can also be used as a media converter or a server to stream in uni-cast or multi-cast in IPv4 or IPv6 on networks. +%package libs +Summary: VLC media player runtime libraries +Recommends: libproxy-bin%{?_isa} +Conflicts: %{name}-core < %{epoch}:%{version}-%{release} +%description libs +VLC media player runtime libraries + +%package cli +Summary: VLC media player command line interface +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +Recommends: %{name}-plugin-lua%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-core < %{epoch}:%{version}-%{release} +Provides: %{name}-core = %{epoch}:%{version}-%{release} +Provides: %{name}-nox = %{epoch}:%{version}-%{release} +%description cli +VLC media player command line interfaces + +%package gui-ncurses +Summary: VLC media player TUI +Requires: %{name}-cli%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description gui-ncurses +VLC media player ncurses-based terminal interface + +%package gui-qt +Summary: VLC media player Qt GUI +Requires: %{name}-cli%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-video-out%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugin-lua%{?_isa} = %{epoch}:%{version}-%{release} +Requires: (qt5-qtwayland%{?_isa} if libwayland-client%{?_isa}) +Recommends: %{name}-plugin-ffmpeg%{?_isa} = %{epoch}:%{version}-%{release} +Recommends: %{name}-plugin-visualization%{?_isa} = %{epoch}:%{version}-%{release} +Recommends: (%{name}-plugin-gnome%{?_isa} = %{epoch}:%{version}-%{release} if gnome-keyring) +Recommends: (%{name}-plugin-kde%{?_isa} = %{epoch}:%{version}-%{release} if kf5-kwallet) +Recommends: (%{name}-plugin-notify%{?_isa} = %{epoch}:%{version}-%{release} if gtk3) +Recommends: (%{name}-plugin-pulseaudio%{?_isa} = %{epoch}:%{version}-%{release} or vlc-plugin-pipewire%{?_isa}) +%description gui-qt +VLC media player Qt graphical interface + +%package gui-skins2 +Summary: VLC media player Skins2 GUI +Requires: %{name}-cli%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-gui-qt%{?_isa} = %{epoch}:%{version}-%{release} +Requires: gnu-free-sans-fonts +%description gui-skins2 +VLC media player skinnable graphical interface + +%package plugins-base +Summary: VLC media player core +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: google-noto-sans-mono-vf-fonts +Requires: google-noto-serif-vf-fonts +Recommends: libv4l%{?_isa} +Conflicts: %{name}-core < %{epoch}:%{version}-%{release} +%description plugins-base +VLC media player core components -%package devel -Summary: Development files for %{name} -Requires: %{name}-core%{_isa} = %{epoch}:%{version}-%{release} - -%description devel -The %{name}-devel package contains libraries and header files for -developing applications that use %{name}. +# libcrystalhd requires crystalhd-firmware, is for specific hardware +%if %{with crystalhd} +%package plugin-crystalhd +Summary: VLC media player Crystal HD plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-extras < %{epoch}:%{version}-%{release} +Provides: %{name}-extras = %{epoch}:%{version}-%{release} +%description plugin-crystalhd +Crystal HD plugin for VLC media player +%endif +# libavcodec/libavformat etc. have many dependencies +%package plugin-ffmpeg +Summary: VLC media player FFmpeg plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-ffmpeg +FFmpeg support plugins for VLC media player + +# for MIDI playback, requires a soundfont (usually quite large) +%package plugin-fluidsynth +Summary: VLC media player MIDI playback plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +Recommends: fluid-soundfont-gm +%description plugin-fluidsynth +MIDI playback support plugin for VLC media player + +# requires libsecret, for gnome-keyring secrets storage on GNOME +%package plugin-gnome +Summary: VLC media player Gnome Keyring plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-gnome +Gnome Keyring integration for VLC media player + +# alternative codecs for specific formats, requires many of its own plugins +%package plugin-gstreamer +Summary: VLC media player GStreamer codec plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +Requires: gstreamer1-plugins-good%{?_isa} +Requires: gstreamer1-plugins-bad-free%{?_isa} +Recommends: gstreamer1-plugin-libav%{?_isa} +Recommends: gstreamer1-plugin-openh264%{?_isa} +%description plugin-gstreamer +GStreamer decoder plugins for VLC media player + +# requires libdc1394/libavc1394/libraw1394, is for specific hardware +%if %{with ieee1394} +%package plugin-ieee1394 +Summary: VLC media player IEEE 1394 plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-ieee1394 +IEEE 1394 (FireWire) plugins for VLC media player +%endif -%package core -Summary: VLC media player core -Provides: vlc-nox = %{epoch}:%{version}-%{release} -%{?live555_version:Requires: live555%{?_isa} = %{live555_version}} +# depends on j-a-c-k or pipewire-j-a-c-k, for low-latency audio +%package plugin-jack +Summary: VLC media player JACK plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +Suggests: pipewire-jack-audio-connection-kit +%description plugin-jack +PulseAudio plugins for VLC media player + +# for KWallet secrets storage on KDE Plasma +%package plugin-kde +Summary: VLC media player KWallet plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-kde +KDE KWallet integration for VLC media player + +# requires lua, used by CLI and GUI +%package plugin-lua +Summary: VLC media player lua scripting plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} %{?lua_version:Requires: lua(abi) = %{lua_version}} -Requires: libmicrodns%{?_isa} > 0.1.2-1 -%if 0%{?fc31} -Requires: srt-libs%{?_isa} > 1.4.1-3 +%description plugin-lua +Lua scripting support for VLC media player + +# requires gtk3 to render the notification icon +%package plugin-notify +Summary: VLC media player notification plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-notify +Desktop notification plugin for VLC media player + +# opencv has many dependencies +%if %{with opencv} +%package plugin-opencv +Summary: VLC media player OpenCV plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-opencv +OpenCV plugins for VLC media player %endif -%description core -VLC media player core components - -%package extras -Summary: VLC media player with extras modules -Requires: vlc-core%{_isa} = %{epoch}:%{version}-%{release} -%if 0%{?el7:1} -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig -%endif +# uses libpulse to connect to pipewire-pulseaudio +# vlc-plugin-pipewire plugin is an alternative +%package plugin-pulseaudio +Summary: VLC media player PulseAudio plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-pulseaudio +PulseAudio plugins for VLC media player + +# requires libsmbclient, for SMB protocol support +%package plugin-samba +Summary: VLC media player SMB plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-samba +Samba access plugin for VLC media player + +# requires librsvg2, for SVG decoding and screen overlay +%package plugin-svg +Summary: VLC media player SVG plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-svg +SVG plugins for VLC media player + +# requires libv4l, libva, OpenGL, X11/xcb, etc. +%package plugins-video-out +Summary: VLC media player vout plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugins-video-out +Video output plugins for VLC media player + +%package plugin-visualization +Summary: VLC media player visualization plugins +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-visualization +Visualization plugins for VLC media player + +%package plugin-vnc +Summary: VLC media player VNC plugin +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release} +%description plugin-vnc +VNC access plugin for VLC media player -%description extras -VLC media player extras modules. +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +%description devel +The %{name}-devel package contains libraries and header files for +developing applications and plugins that use %{name}. %prep -%setup -q -n %{vlc_setup} -%{?_with_rpi: -%patch0 -p1 -} -%patch3 -p1 -%if 0%{?el7} -%patch5 -p1 -%patch6 -p1 -# Lower opus requirement - rfbz#5585 -sed -i -e 's/opus >= 1.0.3/opus >= 1.0.2/' configure.ac -sed -i -e 's/opus_multistream_surround_encoder_create/opus_multistream_encoder_create/g' modules/codec/opus.c -sed -i -e 's/ header.channel_mapping,//' modules/codec/opus.c -# Lower taglib -sed -i -e 's/taglib >= 1.9/taglib >= 1.8/' configure.ac -. /opt/rh/devtoolset-%{dts_ver}/enable -%endif -%if 0%{?fedora} || 0%{?rhel} > 7 -%patch7 -p1 -sed -i -e 's/luac/luac-5.1/g' configure.ac -%endif - -%patch9 -p1 -%if 0%{?rhel} >= 7 -%patch12 -p1 -%endif -%patch13 -p1 -%if 0%{?fedora} > 35 || 0%{?rhel} >= 9 -%patch14 -p1 -%endif -%if 0%{?fedora} > 36 -%patch15 -p1 -%endif +%autosetup -p1 -%{?_with_bootstrap: -rm aclocal.m4 m4/lib*.m4 m4/lt*.m4 || : +rm -f aclocal.m4 m4/lib*.m4 m4/lt*.m4 ./bootstrap -} -touch src/revision.txt +# switch "Allow automatic icon change" to opt-in +sed -i -e 's|\("qt-icon-change",\) true|\1 false|' modules/gui/qt/qt.cpp +# sync appstream app-id with Flathub +sed -i -e 's|org\.videolan\.vlc|org.videolan.VLC|' share/vlc.appdata.xml.in.in -%build -%if 0%{?el7} -. /opt/rh/devtoolset-%{dts_ver}/enable +%if 0%{?flatpak} +# icons are renamed in order to be exported +sed -i -e '/icon_theme_load/s|"vlc"|"org.videolan.VLC"|' modules/notify/notify.c +sed -i -e '/fromTheme/s|"vlc"|"org.videolan.VLC"|' \ + modules/gui/qt/main_interface.cpp modules/gui/qt/qt.cpp %endif -%if 0%{?fedora} >= 36 || 0%{?rhel} >= 9 -export PKG_CONFIG_PATH=%{_libdir}/compat-ffmpeg4/pkgconfig -%endif +touch src/revision.txt -%configure \ - --disable-dependency-tracking \ - --disable-optimizations \ - --disable-silent-rules \ - --with-default-font=%{_fontbasedir}/dejavu/DejaVuSans.ttf \ - --with-default-font-family=DejaVuSans \ - --with-default-monospace-font=%{_fontbasedir}/dejavu/DejaVuSansMono.ttf \ - --with-default-monospace-font-family=DejaVuSansMono \ - --with-kde-solid=no \ - --with-pic \ - --disable-rpath \ - --with-binary-version=%{version} \ - --enable-lua \ -%{?_with_live555:--enable-live555} \ -%{!?_with_opencv:--disable-opencv} \ -%{!?el8:--enable-sftp} \ -%{?_with_vcdimager:--enable-vcdx} \ -%{?_with_rpi: \ - --enable-omxil \ - --enable-omxil-vout \ - --enable-rpi-omxil \ - --enable-mmal \ - --enable-mmal-avcodec \ -} \ -%{?_with_aom:--enable-aom} \ -%{!?_with_a52dec:--disable-a52} \ -%{?_with_dav1d:--enable-dav1d} \ -%{!?_with_ffmpeg:--disable-avcodec --disable-avformat \ - --disable-swscale --disable-postproc} \ -%{?_with_faad2:--enable-faad} \ -%{!?_with_libmad:--disable-mad} \ -%{?_with_twolame:--enable-twolame} \ -%{?!_without_freeworld: --enable-realrtsp} \ - --enable-flac \ - --enable-tremor \ - --enable-speex \ - --enable-theora \ - --enable-libass \ - --enable-shout \ -%{?_with_wayland: --enable-wayland} \ -%{!?_without_xcb:--enable-xcb --enable-xvideo} \ -%{?_without_xcb:--disable-xcb --disable-xvideo} \ - --enable-svg \ - --enable-aa \ - --enable-caca \ - --enable-jack \ - --enable-pulse \ - --enable-ncurses \ - --enable-lirc - - -%if 0 -# remove rpath from libtool -sed -i.rpath 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool -sed -i.rpath 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -%endif -%if 1 +%build +export LIVE555_PREFIX=%{_prefix} +%configure \ + --disable-silent-rules \ + --disable-dependency-tracking \ + --with-binary-version=%{version} \ + --disable-static \ + --with-pic \ + --disable-rpath \ + --enable-dbus \ + --disable-optimizations \ + --enable-lua \ + \ + --enable-archive \ + --enable-live555 \ + --enable-dc1394%{!?with_ieee1394:=no} \ + --enable-dv1394%{!?with_ieee1394:=no} \ + --enable-linsys \ + --enable-dvdread \ + --enable-dvdnav \ + --enable-bluray \ + --enable-opencv%{!?with_opencv:=no} \ + --enable-smbclient \ + --disable-dsm \ + --enable-sftp \ + --enable-nfs \ + --disable-smb2 \ + --enable-v4l2 \ + --disable-decklink \ + --enable-vcd \ + --enable-libcddb \ + --enable-screen \ + --enable-vnc \ + --disable-freerdp \ + --enable-realrtsp \ + --enable-asdcp%{!?with_asdcp:=no} \ + \ + --enable-dvbpsi \ + --enable-gme \ + --disable-sid \ + --enable-ogg \ + --enable-shout \ + --enable-matroska \ + --enable-mod \ + --enable-mpc \ + \ + --disable-shine \ + --disable-omxil \ + --enable-crystalhd%{!?with_crystalhd:=no} \ + --enable-mad \ + --enable-mpg123 \ + --enable-gst-decode \ + --enable-avcodec \ + --enable-libva \ + --enable-avformat \ + --enable-swscale \ + --enable-postproc \ + --enable-faad%{!?with_faad2:=no} \ + --enable-aom \ + --enable-dav1d \ + --enable-vpx \ + --enable-twolame \ + --enable-fdkaac \ + --enable-a52 \ + --enable-dca \ + --enable-flac \ + --enable-libmpeg2 \ + --enable-vorbis \ + --enable-tremor \ + --enable-speex \ + --enable-opus \ + --enable-spatialaudio \ + --enable-theora \ + --enable-oggspots \ + --enable-daala \ + --enable-schroedinger \ + --enable-png \ + --enable-jpeg \ + --disable-bpg \ + --disable-x262 \ + --enable-x265%{!?with_x265:=no} \ + --enable-x264%{!?with_x264:=no} \ + --enable-x26410b%{!?with_x264:=no} \ + --enable-mfx%{!?with_mfx:=no} \ + --enable-fluidsynth \ + --disable-fluidlite \ + --enable-zvbi \ + --disable-telx \ + --enable-libass \ + --disable-aribsub \ + --disable-aribb25 \ + --enable-kate \ + --enable-tiger \ + --enable-css \ + \ + --enable-gles2 \ + --enable-xcb \ + --enable-xvideo \ + --enable-vdpau \ + --enable-wayland \ + --enable-sdl-image \ + --enable-freetype \ + --enable-fribidi \ + --enable-harfbuzz \ + --enable-fontconfig \ + --with-default-font-family=NotoSerif \ + --with-default-monospace-font-family=NotoSansMono \ + --enable-svg \ + --enable-svgdec \ + --enable-aa \ + --enable-caca \ + --disable-mmal \ + --disable-evas \ + \ + --enable-pulse \ + --enable-alsa \ + --enable-jack \ + --enable-samplerate \ + --enable-soxr \ + --enable-chromaprint \ + --enable-chromecast \ + \ + --enable-qt \ + --enable-skins2 \ + --disable-libtar \ + --enable-lirc \ + --enable-srt \ + \ + --disable-goom \ + --enable-projectm%{!?with_projectm:=no} \ + --disable-vsxu \ + \ + --enable-avahi \ + --enable-udev \ + --enable-mtp \ + --enable-upnp \ + --enable-microdns \ + \ + --enable-libxml2 \ + --enable-libgcrypt \ + --enable-gnutls \ + --enable-taglib \ + --enable-secret \ + --enable-kwallet \ + --disable-update-check \ + --enable-notify \ + --enable-libplacebo%{!?with_placebo:=no} \ + --with-kde-solid=%{_datadir}/solid/actions \ + %{nil} + # clean unused-direct-shlib-dependencies sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool -%endif - - %make_build %install -%make_install INSTALL="install -p" CPPROG="cp -p" -find %{buildroot} -name '*.la' -exec rm -f {} ';' -find %{buildroot} -name '*.a' -exec rm -f {} ';' +%make_install CPPROG="cp -p" -desktop-file-validate %{buildroot}%{_datadir}/applications/vlc.desktop +# RPM macros for other vlc-plugin-* packages +install -D -m0644 %{S:1} %{buildroot}%{_rpmmacrodir}/macros.vlc -# Remove installed fonts for skins2 -rm -rf %{buildroot}%{_datadir}/vlc/skins2/fonts +# Ghost the plugins cache +touch %{buildroot}%{vlc_plugindir}/plugins.dat -#Fix unowned directories -rm -rf %{buildroot}%{_docdir}/vlc +# Use installed fonts for skins2; gnu-free is part of flatpak runtime +rm -f %{buildroot}%{_datadir}/vlc/skins2/fonts/FreeSans{,Bold}.ttf +ln -s %{_usr}/share/fonts/gnu-free/FreeSans{,Bold}.ttf %{buildroot}%{_datadir}/vlc/skins2/fonts/ -#Ghost the plugins cache -touch %{buildroot}%{_libdir}/vlc/plugins/plugins.dat +# Remove libtool libraries (for RHEL 9 and older) +find %{buildroot}%{_libdir} -name '*.la' -delete -#Appdata -appstream-util validate-relax --nonet \ - %{buildroot}/%{_datadir}/metainfo/*.appdata.xml || : +# unpackaged static library +rm -f %{buildroot}%{_libdir}/vlc/libcompat.* -#Fixup -rm -rf %{buildroot}/%{_datadir}/macosx +# GNOME 2 script, not compatible with GNOME 3+ +rm -f %{buildroot}%{_datadir}/vlc/utils/gnome-vlc-default.sh -#Disable KDE4 desktop files -rm -rf %{buildroot}%{_datadir}/kde4 +# The default PNG icons are used for desktop menu, notifications, and SNI; +# all other icons are compiled in as resources +find %{buildroot}%{_datadir}/icons/hicolor -type f ! -name 'vlc.png' -delete +rm -f %{buildroot}%{_datadir}/vlc/vlc.ico +# docs will be installed in %%files +rm -rf %{buildroot}%{_docdir}/vlc %find_lang %{name} -%check -%if 0%{?el7} -. /opt/rh/devtoolset-%{dts_ver}/enable -%endif -make check || : - - -%ldconfig_scriptlets core - -%post -%{?ldconfig} -if [ $1 == 1 ] ; then - %{_libdir}/vlc/vlc-cache-gen %{_libdir}/vlc/plugins &>/dev/null -fi || : - -%{_bindir}/touch --no-create %{_datadir}/icons/hicolor -if [ -x %{_bindir}/gtk-update-icon-cache ]; then - %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor -fi -%{_bindir}/update-desktop-database %{_datadir}/applications &>/dev/null || : -%postun -%{?ldconfig} -%{_libdir}/vlc/vlc-cache-gen %{_libdir}/vlc/plugins &>/dev/null -%{_bindir}/update-desktop-database %{_datadir}/applications &>/dev/null -%{_bindir}/touch --no-create %{_datadir}/icons/hicolor -if [ -x %{_bindir}/gtk-update-icon-cache ]; then - %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor -fi || : +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/vlc.desktop +appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/vlc.appdata.xml -%posttrans core -%{_libdir}/vlc/vlc-cache-gen %{_libdir}/vlc/plugins &>/dev/null || : +# chroma_copy_test fails on s390x (big endian?) +%ifnarch s390x +make check +%endif -%post extras -%{?ldconfig} -if [ $1 == 1 ] ; then - %{_libdir}/vlc/vlc-cache-gen %{_libdir}/vlc/plugins &>/dev/null || : -fi -%postun extras -%{?ldconfig} -if [ $1 == 0 ] ; then - %{_libdir}/vlc/vlc-cache-gen %{_libdir}/vlc/plugins &>/dev/null || : -fi +%transfiletriggerin libs -- %{vlc_plugindir} +%{_libdir}/vlc/vlc-cache-gen %{vlc_plugindir} &>/dev/null || : -%preun core -if [ $1 == 0 ] ; then - rm -f %{_libdir}/vlc/plugins*.dat -fi || : +%transfiletriggerpostun libs -- %{vlc_plugindir} +%{_libdir}/vlc/vlc-cache-gen %{vlc_plugindir} &>/dev/null || : %files %doc AUTHORS NEWS README THANKS -%license COPYING -%{_datadir}/metainfo/vlc.appdata.xml -%{_datadir}/applications/*%{name}.desktop -%{_datadir}/icons/hicolor/*/apps/vlc*.png -%{_datadir}/icons/hicolor/*/apps/vlc*.xpm -%{_datadir}/vlc/skins2/ -%{_bindir}/qvlc -%{_bindir}/svlc -%{_libdir}/vlc/libvlc_pulse.so* -# qt in main -%{_libdir}/vlc/plugins/gui/libqt_plugin.so -# skin2 in main -%{_libdir}/vlc/plugins/gui/libskins2_plugin.so -%{?_with_projectm: -%{_libdir}/vlc/plugins/visualization/libprojectm_plugin.so -} -#jack in main -%{_libdir}/vlc/plugins/access/libaccess_jack_plugin.so -%{_libdir}/vlc/plugins/audio_output/libjack_plugin.so -#pulseaudio in main -%{_libdir}/vlc/plugins/audio_output/libpulse_plugin.so -%{_libdir}/vlc/plugins/access/libpulsesrc_plugin.so -%{_libdir}/vlc/plugins/services_discovery/libpulselist_plugin.so -%{?_with_fluidsynth: -%{_libdir}/vlc/plugins/codec/libfluidsynth_plugin.so -} - -%files core -f %{name}.lang +%license COPYING COPYING.LIB +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_datadir}/solid/actions/%{name}-*.desktop +%{_datadir}/vlc/utils/ +%{_metainfodir}/%{name}.appdata.xml + +%files libs -f %{name}.lang +%license COPYING.LIB +# client library, used by e.g. kaffeine, phonon-backend-vlc, etc. +%{_libdir}/libvlc.so.5{,.*} +# plugin API, used by vlc-plugin(s)-* +%{_libdir}/libvlccore.so.9{,.*} +%dir %{_libdir}/vlc/ +%{_libdir}/vlc/vlc-cache-gen +%dir %{vlc_plugindir} +%ghost %{vlc_plugindir}/plugins.dat + +%files cli %{_bindir}/vlc %{_bindir}/cvlc -%{_bindir}/nvlc %{_bindir}/rvlc %{_bindir}/vlc-wrapper -%exclude %{_datadir}/vlc/skins2 -%{_datadir}/vlc/ -%{_libdir}/*.so.* -%dir %{_libdir}/vlc -%{_libdir}/vlc/lua/ -%{_libdir}/vlc/libvlc_vdpau.so* -%{_libdir}/vlc/libvlc_xcb_events.so* -%exclude %{_libdir}/vlc/plugins/access/libaccess_jack_plugin.so -%{?_with_asdcp: -%exclude %{_libdir}/vlc/plugins/access/libdcp_plugin.so -} -%{?_with_vcdimager: -%exclude %{_libdir}/vlc/plugins/access/libvcd_plugin.so -%exclude %{_libdir}/vlc/plugins/access/libvcdx_plugin.so -%exclude %{_libdir}/vlc/plugins/codec/libsvcdsub_plugin.so -} -%{?_with_crystalhd: -%exclude %{_libdir}/vlc/plugins/codec/libcrystalhd_plugin.so -} -%{?_with_fluidsynth: -%exclude %{_libdir}/vlc/plugins/codec/libfluidsynth_plugin.so -} -%exclude %{_libdir}/vlc/plugins/gui/libqt_plugin.so -%exclude %{_libdir}/vlc/plugins/gui/libskins2_plugin.so -%{?_with_opencv: -%exclude %{_libdir}/vlc/plugins/video_filter/libopencv_example_plugin.so -%exclude %{_libdir}/vlc/plugins/video_filter/libopencv_wrapper_plugin.so -} -%{?_with_projectm: -%exclude %{_libdir}/vlc/plugins/visualization/libprojectm_plugin.so -} -%exclude %{_libdir}/vlc/plugins/audio_output/libjack_plugin.so -%exclude %{_libdir}/vlc/plugins/audio_output/libpulse_plugin.so -%exclude %{_libdir}/vlc/plugins/access/libpulsesrc_plugin.so -%exclude %{_libdir}/vlc/plugins/services_discovery/libpulselist_plugin.so -%ghost %{_libdir}/vlc/plugins/plugins.dat -%{_libdir}/vlc/vlc-cache-gen -%{_libdir}/vlc/plugins %{_mandir}/man1/vlc*.1* +%files gui-ncurses +%{_bindir}/nvlc +%{vlc_plugindir}/gui/libncurses_plugin.so + +%files gui-qt +%{_bindir}/qvlc +%{vlc_plugindir}/gui/libqt_plugin.so + +%files gui-skins2 +%{_bindir}/svlc +%{vlc_plugindir}/gui/libskins2_plugin.so +%{_datadir}/vlc/skins2/ + +%files plugins-base +%license COPYING COPYING.LIB +%exclude %{vlc_plugindir}/access/libaccess_jack_plugin.so +%exclude %{vlc_plugindir}/access/libavio_plugin.so +%if %{with ieee1394} +%exclude %{vlc_plugindir}/access/libdc1394_plugin.so +%exclude %{vlc_plugindir}/access/libdv1394_plugin.so +%endif +%exclude %{vlc_plugindir}/access/libpulsesrc_plugin.so +%exclude %{vlc_plugindir}/access/libsmb_plugin.so +%exclude %{vlc_plugindir}/access/libvnc_plugin.so +%{vlc_plugindir}/access/ +%{vlc_plugindir}/access_output/ +%{vlc_plugindir}/audio_filter/ +%{vlc_plugindir}/audio_mixer/ +%exclude %{vlc_plugindir}/audio_output/libjack_plugin.so +%exclude %{vlc_plugindir}/audio_output/libpulse_plugin.so +%{vlc_plugindir}/audio_output/ +%exclude %{vlc_plugindir}/codec/libavcodec_plugin.so +%if %{with crystalhd} +%exclude %{vlc_plugindir}/codec/libcrystalhd_plugin.so +%endif +%exclude %{vlc_plugindir}/codec/libfluidsynth_plugin.so +%exclude %{vlc_plugindir}/codec/libgstdecode_plugin.so +%exclude %{vlc_plugindir}/codec/libsvgdec_plugin.so +%{vlc_plugindir}/codec/ +%exclude %{vlc_plugindir}/control/libxcb_hotkeys_plugin.so +%{vlc_plugindir}/control/ +%exclude %{vlc_plugindir}/demux/libavformat_plugin.so +%{vlc_plugindir}/demux/ +%dir %{vlc_plugindir}/gui/ +%exclude %{vlc_plugindir}/keystore/libkwallet_plugin.so +%exclude %{vlc_plugindir}/keystore/libsecret_plugin.so +%{vlc_plugindir}/keystore/ +%{vlc_plugindir}/logger/ +%{vlc_plugindir}/meta_engine/ +%{vlc_plugindir}/misc/ +%{vlc_plugindir}/mux/ +%dir %{vlc_plugindir}/notify/ +%exclude %{vlc_plugindir}/packetizer/libpacketizer_avparser_plugin.so +%{vlc_plugindir}/packetizer/ +%exclude %{vlc_plugindir}/services_discovery/libpulselist_plugin.so +%exclude %{vlc_plugindir}/services_discovery/libxcb_apps_plugin.so +%{vlc_plugindir}/services_discovery/ +%{vlc_plugindir}/spu/ +%{vlc_plugindir}/stream_extractor/ +%{vlc_plugindir}/stream_filter/ +%exclude %{vlc_plugindir}/stream_out/libstream_out_chromaprint_plugin.so +%{vlc_plugindir}/stream_out/ +%exclude %{vlc_plugindir}/text_renderer/libsvg_plugin.so +%{vlc_plugindir}/text_renderer/ +%dir %{vlc_plugindir}/vaapi/ +%dir %{vlc_plugindir}/vdpau/ +%exclude %{vlc_plugindir}/video_chroma/libswscale_plugin.so +%{vlc_plugindir}/video_chroma/ +%if %{with opencv} +%exclude %{vlc_plugindir}/video_filter/libopencv_*.so +%endif +%exclude %{vlc_plugindir}/video_filter/libpostproc_plugin.so +%{vlc_plugindir}/video_filter/ +%dir %{vlc_plugindir}/video_output/ +%{vlc_plugindir}/video_output/libfb_plugin.so +%{vlc_plugindir}/video_output/libvdummy_plugin.so +%{vlc_plugindir}/video_output/libvmem_plugin.so +%{vlc_plugindir}/video_output/libyuv_plugin.so +%dir %{vlc_plugindir}/video_splitter/ +%dir %{vlc_plugindir}/visualization/ +%dir %{_datadir}/vlc/ + +%if %{with crystalhd} +%files plugin-crystalhd +%{vlc_plugindir}/codec/libcrystalhd_plugin.so +%endif + +%files plugin-ffmpeg +%{vlc_plugindir}/access/libavio_plugin.so +%{vlc_plugindir}/codec/libavcodec_plugin.so +%{vlc_plugindir}/demux/libavformat_plugin.so +%{vlc_plugindir}/packetizer/libpacketizer_avparser_plugin.so +%{vlc_plugindir}/stream_out/libstream_out_chromaprint_plugin.so +%{vlc_plugindir}/vdpau/libvdpau_avcodec_plugin.so +%{vlc_plugindir}/video_chroma/libswscale_plugin.so +%{vlc_plugindir}/video_filter/libpostproc_plugin.so + +%files plugin-fluidsynth +%{vlc_plugindir}/codec/libfluidsynth_plugin.so + +%files plugin-gnome +%{vlc_plugindir}/keystore/libsecret_plugin.so + +%files plugin-gstreamer +%{vlc_plugindir}/codec/libgstdecode_plugin.so + +%if %{with ieee1394} +%files plugin-ieee1394 +%{vlc_plugindir}/access/libdc1394_plugin.so +%{vlc_plugindir}/access/libdv1394_plugin.so +%endif + +%files plugin-jack +%{vlc_plugindir}/access/libaccess_jack_plugin.so +%{vlc_plugindir}/audio_output/libjack_plugin.so + +%files plugin-kde +%{vlc_plugindir}/keystore/libkwallet_plugin.so + +%files plugin-lua +%{_libdir}/vlc/lua/ +%{vlc_plugindir}/lua/ +%{_datadir}/vlc/lua/ + +%files plugin-notify +%{vlc_plugindir}/notify/libnotify_plugin.so + +%if %{with opencv} +%files plugin-opencv +%{vlc_plugindir}/video_filter/libopencv_example_plugin.so +%{vlc_plugindir}/video_filter/libopencv_wrapper_plugin.so +%endif + +%files plugin-pulseaudio +%{_libdir}/vlc/libvlc_pulse.so* +%{vlc_plugindir}/access/libpulsesrc_plugin.so +%{vlc_plugindir}/audio_output/libpulse_plugin.so +%{vlc_plugindir}/services_discovery/libpulselist_plugin.so -%files extras -%{?_with_opencv: -%{_libdir}/vlc/plugins/video_filter/libopencv_example_plugin.so -%{_libdir}/vlc/plugins/video_filter/libopencv_wrapper_plugin.so -} -%{?_with_vcdimager: -%{_libdir}/vlc/plugins/access/libvcd_plugin.so -%{_libdir}/vlc/plugins/access/libvcdx_plugin.so -%{_libdir}/vlc/plugins/codec/libsvcdsub_plugin.so -} -%{?_with_crystalhd: -%{_libdir}/vlc/plugins/codec/libcrystalhd_plugin.so -} -%{?_with_asdcp: -%{_libdir}/vlc/plugins/access/libdcp_plugin.so -} +%files plugin-samba +%{vlc_plugindir}/access/libsmb_plugin.so + +%files plugin-svg +%{vlc_plugindir}/codec/libsvgdec_plugin.so +%{vlc_plugindir}/text_renderer/libsvg_plugin.so + +%files plugins-video-out +%{_libdir}/vlc/libvlc_vdpau.so* +%{_libdir}/vlc/libvlc_xcb_events.so* +%{vlc_plugindir}/control/libxcb_hotkeys_plugin.so +%{vlc_plugindir}/services_discovery/libxcb_apps_plugin.so +%{vlc_plugindir}/vaapi/*.so +%exclude %{vlc_plugindir}/vdpau/libvdpau_avcodec_plugin.so +%{vlc_plugindir}/vdpau/*.so +%exclude %{vlc_plugindir}/video_output/libfb_plugin.so +%exclude %{vlc_plugindir}/video_output/libvdummy_plugin.so +%exclude %{vlc_plugindir}/video_output/libvmem_plugin.so +%exclude %{vlc_plugindir}/video_output/libyuv_plugin.so +%{vlc_plugindir}/video_output/*.so +%{vlc_plugindir}/video_splitter/*.so + +%files plugin-visualization +%{vlc_plugindir}/visualization/*.so + +%files plugin-vnc +%{vlc_plugindir}/access/libvnc_plugin.so %files devel %dir %{_includedir}/vlc -%{_includedir}/vlc/* -%{_libdir}/*.so -%{_libdir}/pkgconfig/vlc-plugin.pc +%{_includedir}/vlc/*.h +%{_includedir}/vlc/plugins/ +%{_libdir}/libvlc.so +%{_libdir}/libvlccore.so %{_libdir}/pkgconfig/libvlc.pc - +%{_libdir}/pkgconfig/vlc-plugin.pc +%{_rpmmacrodir}/macros.vlc %changelog +* Fri Dec 15 2023 Yaakov Selkowitz +- Adapt for Fedora and restructure for use as a framework + +* Wed Nov 08 2023 Leigh Scott - 1:3.0.20-2 +- Rebuild for new faad2 version + +* Thu Nov 02 2023 Leigh Scott - 1:3.0.20-1 +- Update to 3.0.20 + +* Thu Oct 12 2023 Nicolas Chauvet - 1:3.0.19-1.1 +- Fix build with older taglib in el7 + +* Thu Oct 12 2023 Nicolas Chauvet - 1:3.0.19-1 +- Update to 3.0.19 + +* Sun Aug 06 2023 Leigh Scott - 1:3.0.19-0.7 +- rebuilt + +* Fri Jul 28 2023 Nicolas Chauvet - 1:3.0.19-0.6 +- Drop onevpl for now (see rfbz#6711) + +* Fri Jul 28 2023 Nicolas Chauvet - 1:3.0.19-0.5 +- Update snapshot +- Use onevpl for f38+ and el9+ + +* Tue Jun 13 2023 Nicolas Chauvet - 1:3.0.19-0.4 +- Update snapshot + +* Mon Apr 10 2023 Leigh Scott - 1:3.0.19-0.3.1 +- Rebuild for live555 + +* Sun Mar 26 2023 Leigh Scott - 1:3.0.19-0.2.1 +- rebuilt + +* Thu Mar 23 2023 Nicolas Chauvet - 1:3.0.19-0.1.1 +- rebuilt + +* Wed Mar 22 2023 Nicolas Chauvet - 1:3.0.19-0.2 +- Update snapshot + +* Sun Dec 25 2022 Nicolas Chauvet - 1:3.0.18-4 +- Add libplacebo-5 + +* Fri Dec 23 2022 Nicolas Chauvet - 1:3.0.18-3 +- Update to current snapshot + +* Sun Nov 06 2022 Leigh Scott - 1:3.0.18-2 +- Rebuild for live555 + +* Sun Oct 16 2022 Nicolas Chauvet - 1:3.0.18-1 +- Update to 3.0.18 + +* Fri Sep 30 2022 Nicolas Chauvet - 1:3.0.18-0.3.rc +- Update to 3.0.18-rc2 + +* Mon Sep 26 2022 Leigh Scott - 1:3.0.18-0.2.rc +- Rebuild for new flac + +* Mon Aug 29 2022 Nicolas Chauvet - 1:3.0.18-0.1.rc +- Update to 3.0.18-rc +- Drop mmal downstream (rpi) patches +- Drop merged patches + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 1:3.0.17.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Fri Jul 22 2022 Leigh Scott - 1:3.0.17.4-7 +- Rebuild for new ffmpeg + +* Fri Jul 15 2022 Leigh Scott - 1:3.0.17.4-6 +- rebuilt + +* Tue Jul 05 2022 Nicolas Chauvet - 1:3.0.17.4-5 +- rebuilt + * Fri Jun 24 2022 Robert-André Mauchin - 1:3.0.17.4-4 - Rebuilt for new AOM and dav1d @@ -2303,3 +2663,4 @@ Security updates: * Mon Apr 28 2003 Dams - Initial build. +