Here's a vlc-4 build that sort of works (no context menu in fullscreen though, and the video is always in a separate window. I use openbox, maybe I'd need transparency, but I haven't found a compositor yet that doesn't cause tearing - not even picom). Note that this is a much reduced build, mainly for DVD playback. Maybe one can build up from this, adding stuff one by one:
# $Id: PKGBUILD 269066 2016-06-05 22:53:44Z arojas $
# Maintainer: Giovanni Scafora <[email protected]>
# Contributor: Sarah Hay <[email protected]>
# Contributor: Martin Sandsmark <[email protected]>
pkgname=vlc4
pkgver=4.0.0+dev+11561+g8a1441c0e6
pkgrel=1
pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
arch=('i686' 'x86_64')
url="http://www.videolan.org/vlc/"
license=('LGPL2.1' 'GPL2')
depends=('ffmpeg' 'a52dec' 'libxpm' 'libdca' 'qt5-base' 'qt5-x11extras'
'sdl_image' 'libdvdnav' 'lua' 'libmatroska' 'qt5-svg'
'faad2' 'twolame' 'libidn' 'qt5-quickcontrols2' 'qt5-graphicaleffects'
'libmpeg2' 'xcb-util-keysyms' 'libplacebo'
'libxinerama')
makedepends=('libnotify' 'flac'
'libdc1394'
'librsvg' 'portaudio'
'twolame' 'libdvdcss' 'vulkan-headers'
'mesa')
install=vlc4.install
options=('!emptydirs')
source=("git+https://github.com/videolan/vlc"
lua53_compat.patch)
sha256sums=('SKIP'
'd1cb88a1037120ea83ef75b2a13039a16825516b776d71597d0e2eae5df2d8fa')
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key
pkgver() {
cd vlc
git describe --tags | sed 's/-/+/g'
}
prepare() {
cd vlc
sed -i -e 's:truetype/ttf-dejavu:TTF:g' modules/visualization/projectm.cpp
patch -p1 < ${srcdir}/lua53_compat.patch
./bootstrap
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
}
build() {
cd vlc
export LUA_CFLAGS='-I/usr/include'
export CXXFLAGS+=" -std=c++11"
export DVDREAD_CFLAGS='-I/opt/libdvdread/include'
export DVDREAD_LIBS='-L/opt/libdvdread/lib -ldvdread'
export DVDNAV_CFLAGS='-I/opt/libdvdnav/include'
export DVDNAV_LIBS='-L/opt/libdvdnav/lib -ldvdnav -lpthread'
export LUAC=/usr/bin/luac
export LUA_LIBS="`pkg-config --libs lua`"
export QT_CFLAGS='-DQT_QUICKCONTROLS2_LIB -I/usr/include/qt/QtQuickControls2 -DQT_QML_LIB -I/usr/include/qt/QtQml -DQT_QUICK_LIB -I/usr/include/qt/QtQuick -DQT_QUICKWIDGETS_LIB -I/usr/include/qt/QtQuickWidgets -DQT_SHARED -I/usr/include/qt -I/usr/include/qt/QtGui -I/usr/include/qt/QtCore -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtSvg'
export QT_LIBS='-lQt5QuickControls2 -lQt5Qml -lQt5Widgets -lQt5Quick -lQt5QuickWidgets -lQt5Gui -lQt5Core -lQt5Svg'
export SYSTEMD_LIBS='-lelogind'
./configure --prefix=/opt/vlc4 --libexecdir=/opt/vlc4/lib --disable-nls --disable-gnutls --disable-smbclient --disable-skins2 --disable-vdpau --disable-vlm --disable-jack --disable-addonmanagermodules --disable-bluray --disable-pulse --disable-fribidi --disable-live555 --disable-speex --disable-libtar --disable-kate --disable-caca --enable-libva --enable-a52 --enable-avcodec --enable-avformat --enable-swscale --enable-dvdread --enable-dvdnav --enable-postproc --enable-faad --enable-twolame --enable-flac --enable-libmpeg2 --enable-png --enable-jpeg --enable-sdl-image --enable-svg --enable-svgdec --enable-alsa --enable-freetype --disable-mtp --disable-avahi --disable-upnp --disable-microdns --disable-telx --disable-zvbi --disable-fdkaac --disable-update-check --disable-debug --disable-matroska --enable-libplacebo #--disable-medialibrary
make
}
package() {
cd vlc
make DESTDIR="${pkgdir}" install
for res in 16 32 48 128; do
install -D -m644 "${srcdir}/vlc/share/icons/${res}x${res}/vlc.png" \
"${pkgdir}/opt/vlc4/share/icons/hicolor/${res}x${res}/apps/vlc.png"
done
#mkdir -p "${pkgdir}/usr/share/libalpm/hooks"
#install -Dm644 "${srcdir}/update-vlc4-plugin-cache.hook" "${pkgdir}/usr/share/libalpm/hooks/update-vlc4-plugin-cache.hook"
}
# vim: ft=sh: set et sw=2:
vlc4.install:
post_install() {
ln -sf /opt/vlc4/lib/libvlc.so.12.0.0 /usr/lib/libvlc.so.12
ln -sf /opt/vlc4/lib/libvlccore.so.9.0.0 /usr/lib/libvlccore.so.9 #same soname as vlc-3, which is a bug
/opt/vlc4/lib/vlc/vlc-cache-gen /opt/vlc4/lib/vlc/plugins
}
post_upgrade() {
post_install
}
libplacebo doesn't seem to make any difference, it can be left out, at least on my box. I'm not sure I need it, I'm on Intel.
Installing to /usr didn't work (Note the soname conflict - that's why I have vlc-3 in /opt). Note I'm linking against my custom (previous version) libdvd libs. This works with the standard libdvd{nav,read} packages installed (which also have the same sonames as the previous versions).
We are getting a bit off topic, but linking is still a theme because of the soname conflict.