# Maintainer: graysky # Contributor: Levente Polyak # Contributor: Giovanni Scafora # Contributor: Sarah Hay # Contributor: Martin Sandsmark pkgname=vlc-rpi _pkgname=vlc _vlcver=3.0.20 # optional fixup version including hyphen _vlcfixupver= pkgver=${_vlcver}${_vlcfixupver//-/.r} pkgrel=5 pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3 and above' url='https://www.videolan.org/vlc/' arch=(aarch64) license=('LGPL2.1' 'GPL2') # NOTE: switch to ffmpeg-rpi which is basically debian's stuff patched with hw accel depends=('a52dec' 'libdvbpsi' 'libxpm' 'libdca' 'libproxy' 'lua52' 'libidn' 'libmatroska' 'taglib' 'libmpcdec' 'ffmpeg-rpi' 'faad2' 'libmad' 'libmpeg2' 'xcb-util-keysyms' 'libtar' 'libxinerama' 'libsecret' 'libupnp' 'libixml.so' 'libupnp.so' 'libarchive' 'qt5-base' 'qt5-x11extras' 'qt5-svg' 'freetype2' 'fribidi' 'harfbuzz' 'fontconfig' 'libxml2' 'gnutls' 'libplacebo' 'aribb24' 'linux-rpi' 'libomxil-bellagio') makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray' 'flac' 'libdc1394' 'libavc1394' 'libcaca' 'gtk3' 'librsvg' 'libgme' 'xosd' 'twolame' 'aalib' 'avahi' 'systemd-libs' 'libmtp' 'libmicrodns' 'libdvdcss' 'smbclient' 'vcdimager' 'libssh2' 'mesa' 'protobuf' 'libnfs' 'mpg123' 'libdvdread' 'libdvdnav' 'libogg' 'libshout' 'libmodplug' 'libvpx' 'libvorbis' 'speex' 'opus' 'libtheora' 'libpng' 'libjpeg-turbo' 'libx265.so' 'libx264.so' 'zvbi' 'libass' 'libkate' 'libtiger' 'sdl_image' 'libpulse' 'alsa-lib' 'jack' 'libsamplerate' 'libsoxr' 'lirc' 'libgoom2' 'projectm' 'aom' 'srt' 'dav1d' 'libomxil-bellagio' 'aribb25' 'pcsclite' 'wayland-protocols') # 'chromaprint: Chromaprint audio fingerprinter' optdepends=('avahi: service discovery using bonjour protocol' 'aom: AOM AV1 codec' 'gst-plugins-base-libs: for libgst plugins' 'dav1d: dav1d AV1 decoder' 'libdvdcss: decoding encrypted DVDs' 'libavc1394: devices using the 1394ta AV/C' 'libdc1394: IEEE 1394 access plugin' 'kwallet: kwallet keystore' 'libva-vdpau-driver: vdpau backend nvidia' 'libva-intel-driver: video backend intel' 'libbluray: Blu-Ray video input' 'flac: Free Lossless Audio Codec plugin' 'twolame: TwoLAME mpeg2 encoder plugin' 'libgme: Game Music Emu plugin' 'vcdimager: navigate VCD with libvcdinfo' 'libmtp: MTP devices discovery' 'systemd-libs: udev services discovery' 'smbclient: SMB access plugin' 'libcdio: audio CD playback' 'gnu-free-fonts: subtitle font' 'ttf-dejavu: subtitle font' 'libssh2: sftp access' 'libnfs: NFS access' 'mpg123: mpg123 codec' 'protobuf: chromecast streaming' 'libmicrodns: mDNS services discovery (chromecast etc)' 'lua52-socket: http interface' 'libdvdread: DVD input module' 'libdvdnav: DVD with navigation input module' 'libogg: Ogg and OggSpots codec' 'libshout: shoutcast/icecast output plugin' 'libmodplug: MOD output plugin' 'libvpx: VP8 and VP9 codec' 'libvorbis: Vorbis decoder/encoder' 'speex: Speex codec' 'opus: opus codec' 'libtheora: theora codec' 'libpng: PNG support' 'libjpeg-turbo: JPEG support' 'librsvg: SVG plugin' 'x264: H264 encoding' 'x265: HEVC/H.265 encoder' 'zvbi: VBI/Teletext/webcam/v4l2 capture/decoding' 'libass: Subtitle support' 'libkate: Kate codec' 'libtiger: Tiger rendering for Kate streams' 'sdl_image: SDL image support' 'srt: SRT input/output plugin' 'aalib: ASCII art video output' 'libcaca: colored ASCII art video output' 'libpulse: PulseAudio audio output' 'alsa-lib: ALSA audio output' 'jack: jack audio server' 'libsamplerate: audio Resampler' 'libsoxr: SoX audio Resampler' 'lirc: lirc control' 'libgoom2: Goom visualization' 'projectm: ProjectM visualisation' 'ncurses: ncurses interface' 'libnotify: notification plugin' 'gtk3: notification plugin' 'aribb25: aribcam support' 'pcsclite: aribcam support' 'live-media: streaming over RTSP') conflicts=('vlc-plugin' 'vlc') provides=('vlc') replaces=('vlc-plugin') options=('!emptydirs') install='vlc.install' source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcver}${_vlcfixupver}.tar.xz{,.asc} 99-vlc.rules vlc.config.txt 0001-vlc-live-media-2021.patch 0002-libplacebo-5.patch # credit to jc and RPi-Distro maintainers for this work, see: # https://github.com/jc-kynesim/vlc.git # https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches 0003-test-3.0.20-rpi_1.patch update-vlc-plugin-cache.hook) sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5' 'SKIP' '61125ab0da600d813f1aebd8445fcf03e176389cfb8aa28591f8225a13043089' 'f7d129441b5f1f1ce03f7056ebe2707d8c431a69a11afe153a9990dd61ce75ec' '753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291' 'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989' '833e29aa4e1c17ef95dfaafc64bf37fbf8fa54f38211605f3394275919b6b2f2' 'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13') validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key prepare() { cd ${_pkgname}-${_vlcver} sed -e 's:truetype/ttf-dejavu:TTF:g' -i modules/visualization/projectm.cpp sed -e 's|-Werror-implicit-function-declaration||g' -i configure sed 's|whoami|echo builduser|g' -i configure sed 's|hostname -f|echo arch|g' -i configure local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue echo "Applying patch $src..." patch -Np1 < "../$src" done autoreconf -vf } build() { cd ${_pkgname}-${_vlcver} export CFLAGS+=" -I/usr/include/samba-4.0 -ffat-lto-objects -I/usr/include/ffmpeg-rpi" export CPPFLAGS+=" -I/usr/include/samba-4.0" # building with lua ends in errors whereas lua5.2 builds and runs export CXXFLAGS+=" -std=c++17 -I/usr/include/ffmpeg-rpi" export PKG_CONFIG_PATH="/usr/lib/ffmpeg-rpi/pkgconfig" export LUAC=/usr/bin/luac5.2 export LUA_LIBS="$(pkg-config --libs lua5.2)" export RCC=/usr/bin/rcc-qt5 export PKG_CONFIG_PATH="/usr/lib/ffmpeg-rpi/pkgconfig/:$PKG_CONFIG_PATH" ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --with-kde-solid=/usr/share/solid/actions/ \ --disable-rpath \ --enable-omxil \ --enable-omxil-vout \ --enable-rpi-omxil \ --enable-gles2 \ --enable-nls \ --enable-archive \ --enable-live555 \ --enable-dc1394 \ --enable-dv1394 \ --enable-dvdread \ --enable-dvdnav \ --enable-bluray \ --disable-opencv \ --enable-smbclient \ --enable-sftp \ --enable-nfs \ --enable-realrtsp \ --enable-dvbpsi \ --enable-gme \ --enable-ogg \ --enable-shout \ --enable-matroska \ --enable-mod \ --enable-mpc \ --enable-mad \ --enable-mpg123 \ --enable-gst-decode \ --enable-avcodec \ --enable-libva \ --enable-avformat \ --enable-postproc \ --enable-faad \ --enable-vpx \ --enable-twolame \ --disable-fdkaac \ --enable-a52 \ --enable-dca \ --enable-flac \ --enable-libmpeg2 \ --enable-vorbis \ --enable-speex \ --enable-opus \ --enable-oggspots \ --disable-schroedinger \ --enable-png \ --enable-jpeg \ --enable-x264 \ --enable-x265 \ --enable-zvbi \ --enable-libass \ --enable-kate \ --enable-tiger \ --enable-vdpau \ --enable-wayland \ --enable-sdl-image \ --enable-freetype \ --enable-fribidi \ --enable-harfbuzz \ --enable-fontconfig \ --enable-svg \ --enable-svgdec \ --enable-aa \ --enable-caca \ --enable-pulse \ --enable-alsa \ --enable-jack \ --enable-samplerate \ --enable-soxr \ --disable-chromaprint \ --enable-chromecast \ --enable-qt \ --enable-skins2 \ --enable-libtar \ --enable-ncurses \ --enable-lirc \ --enable-goom \ --enable-projectm \ --enable-avahi \ --enable-mtp \ --enable-upnp \ --enable-microdns \ --enable-libxml2 \ --disable-libgcrypt \ --enable-gnutls \ --enable-taglib \ --enable-secret \ --enable-kwallet \ --disable-update-check \ --enable-notify \ --enable-libplacebo \ --enable-vlc \ --enable-aribsub \ --enable-aom \ --enable-srt \ --enable-dav1d # prevent excessive overlinking due to libtool sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make } package() { cd ${_pkgname}-${_vlcver} make DESTDIR="${pkgdir}" install for res in 16 32 48 128 256; do install -Dm 644 "${srcdir}/vlc-${_vlcver}/share/icons/${res}x${res}/vlc.png" \ "${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/vlc.png" done install -Dm 644 "${srcdir}/update-vlc-plugin-cache.hook" -t "${pkgdir}/usr/share/libalpm/hooks" # setup video drivers install -Dm0644 "$srcdir/vlc.config.txt" "$pkgdir/boot/vlc.config.txt" # set permissions necessary for accelerated video playback install -Dm0644 "$srcdir/99-vlc.rules" "$pkgdir/usr/lib/udev/rules.d/99-vlc.rules" } # vim: ts=2 sw=2 et: