Import vlc-nightly from AUR and fix mistakes

* Add qt5-svg to dependencies; otherwise I will not be able to build Qt GUI at all
* Prevent using SVGs which doesn't exist
* Fix indentation (standard for Arch packages is 2 spaces)
* Make use of prepare() function
This commit is contained in:
Martchus 2017-10-18 21:53:08 +02:00
parent ee5d131ccf
commit c139aa951b
4 changed files with 232 additions and 0 deletions

View File

@ -0,0 +1,33 @@
--- a/modules/gui/qt/vlc.qrc 2017-10-18 21:40:51.489682799 +0200
+++ b/modules/gui/qt/vlc.qrc 2017-10-18 21:39:05.602097150 +0200
@@ -106,19 +106,19 @@
<file alias="sample_skins.png">pixmaps/sample_skins.png</file>
</qresource>
<qresource prefix="/prefsmenu/advanced">
- <file alias="audio.svg">pixmaps/prefs/advprefs_audio.svg</file>
- <file alias="codec.svg">pixmaps/prefs/advprefs_codec.svg</file>
- <file alias="extended.svg">pixmaps/prefs/advprefs_extended.svg</file>
- <file alias="intf.svg">pixmaps/prefs/advprefs_intf.svg</file>
- <file alias="playlist.svg">pixmaps/prefs/advprefs_playlist.svg</file>
- <file alias="sout.svg">pixmaps/prefs/advprefs_sout.svg</file>
- <file alias="video.svg">pixmaps/prefs/advprefs_video.svg</file>
+ <file alias="audio.svg">pixmaps/prefs/advprefs_audio.png</file>
+ <file alias="codec.svg">pixmaps/prefs/advprefs_codec.png</file>
+ <file alias="extended.svg">pixmaps/prefs/advprefs_extended.png</file>
+ <file alias="intf.svg">pixmaps/prefs/advprefs_intf.png</file>
+ <file alias="playlist.svg">pixmaps/prefs/advprefs_playlist.png</file>
+ <file alias="sout.svg">pixmaps/prefs/advprefs_sout.png</file>
+ <file alias="video.svg">pixmaps/prefs/advprefs_video.png</file>
</qresource>
<qresource prefix="/win7">
- <file alias="pause.svg">pixmaps/win7/win7thumbnail_pause.svg</file>
- <file alias="prev.svg">pixmaps/win7/win7thumbnail_prev.svg</file>
- <file alias="play.svg">pixmaps/win7/win7thumbnail_play.svg</file>
- <file alias="next.svg">pixmaps/win7/win7thumbnail_next.svg</file>
+ <file alias="pause.svg">pixmaps/win7/win7thumbnail_pause.png</file>
+ <file alias="prev.svg">pixmaps/win7/win7thumbnail_prev.png</file>
+ <file alias="play.svg">pixmaps/win7/win7thumbnail_play.png</file>
+ <file alias="next.svg">pixmaps/win7/win7thumbnail_next.png</file>
</qresource>
<qresource prefix="/sidebar">
<file alias="disc.svg">pixmaps/playlist/sidebar-icons/disc.svg</file>

140
vlc/nightly/PKGBUILD Normal file
View File

@ -0,0 +1,140 @@
# $Id$
# Maintainer: Sebastian Weiland <sebastianweiland97@gmail.com>
# Contributor: Martchus <martchus@gmx.net>
# Original package: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
_appname_=vlc
pkgname=${_appname_}-nightly
pkgver=3.0.0v20171018
_pkgver=3.0.0
_snapshot_=20171018
_snapver_=0238
_nightly_=${_snapshot_}-${_snapver_}
pkgrel=1
pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player - nightly snapshot"
arch=("i686" "x86_64")
url="http://www.videolan.org/vlc/"
license=("LGPL2.1" "GPL2")
_undetected_depends=()
depends=('libmatroska' 'a52dec' 'sidplay2-libs' 'libfdk-aac' 'faad2' 'ffmpeg' 'libdca' 'daala-git' 'libdvbpsi'
'libdvdnav' 'libmad' 'libmpcdec' 'libmpeg2'
'libproxy' 'libshout' 'libtar' 'libtiger' 'libupnp'
'libxinerama' 'libxpm' 'lua' 'sdl_image' 'mesa' 'sndio' 'wayland' 'wayland-protocols'
'taglib' 'xcb-util-keysyms' 'zvbi' 'libsecret' 'libarchive' 'qt5-base' 'qt5-svg' 'libglvnd'
'hicolor-icon-theme' 'qt5-x11extras' "${_detected_depends[@]}")
makedepends=('aalib' 'flac' 'git'
'libavc1394' 'libbluray' 'libcaca' 'libdc1394' 'libdvdcss'
'libgme' 'libgoom2' 'libmtp' 'libnotify' 'librsvg'
'libssh2' 'lirc' 'live-media' 'opus'
'portaudio' 'projectm' 'twolame' 'vcdimager' 'smbclient')
optdepends=('aalib: for ASCII art plugin'
'avahi: for service discovery using bonjour protocol'
'flac: for Free Lossless Audio Codec plugin'
'kdelibs: KDE Solid hardware integration'
'libavc1394: for devices using the 1394ta AV/C'
'libbluray: for Blu-Ray support'
'libcaca: for colored ASCII art video output'
'libcdio: for audio CD playback support'
'libdc1394: for IEEE 1394 plugin'
'libdvdcss: for decoding encrypted DVDs'
'libgme: for libgme plugin'
'libgoom2: for libgoom plugin'
'libmtp: for MTP devices support'
'libnotify: for notification plugin'
'librsvg: for SVG plugin'
'libssh2: for sftp support'
'libva-intel-driver: back-end for intel cards'
'libva-vdpau-driver: vdpau back-end for nvidia'
'lirc: for lirc plugin'
'lua-socket: for http interface'
'ncurses: for ncurses interface support'
'opus: for opus support'
'portaudio: for portaudio support'
'projectm: for ProjectM visualisation plugin'
'smbclient: for SMB access plugin'
'ttf-dejavu: for subtitle font'
'ttf-freefont: for subtitle font'
'twolame: for TwoLAME mpeg2 encoder plugin'
'vcdimager: navigate VCD with libvcdinfo')
conflicts=("${_appname_}-plugin" "${_appname_}")
provides=("${_appname_}")
replaces=("${_appname_}-plugin")
options=("!emptydirs")
source=("http://nightlies.videolan.org/build/source/vlc-${_pkgver}-${_nightly_}-git.tar.xz"
'update-vlc-plugin-cache.hook'
'https://git.archlinux.org/svntogit/packages.git/plain/trunk/lua53_compat.patch?h=packages/vlc'
'0001-Prevent-including-missing-SVGs.patch'
'find-deps.py')
pkgver() {
printf 3.0.0v$_snapshot_
}
prepare() {
cd "${_appname_}-3.0.0-git"
./bootstrap
patch -Np1 -i "${srcdir}/vlc"
sed -i -e 's:truetype/ttf-dejavu:TTF:g' modules/visualization/projectm.cpp
sed -i -e 's:truetype/freefont:TTF:g' modules/text_renderer/freetype/freetype.c
patch -p1 -i "$srcdir/0001-Prevent-including-missing-SVGs.patch"
}
build() {
cd "${_appname_}-3.0.0-git"
export CFLAGS+=" -I/usr/include/samba-4.0"
export CPPFLAGS+=" -I/usr/include/samba-4.0"
export CXXFLAGS+=" -std=gnu++11"
export LUAC=/usr/bin/luac
export LUA_LIBS="`pkg-config --libs lua`"
export RCC=/usr/bin/rcc-qt5
export PKG_CONFIG_PATH="/usr/lib/ffmpeg2.8/pkgconfig"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--disable-rpath \
--enable-faad \
--enable-nls \
--enable-lirc \
--enable-ncurses \
--enable-realrtsp \
--enable-aa \
--enable-upnp \
--enable-opus \
--enable-sftp \
--enable-fdkaac \
--enable-archive \
--enable-bluray \
--enable-daala
./compile
}
package() {
cd "${_appname_}-3.0.0-git"
make -i DESTDIR="${pkgdir}" install
for res in 16 32 48 128; do
install -D -m644 "${srcdir}/${_appname_}-3.0.0-git/share/icons/${res}x${res}/${_appname_}.png" \
"${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/${_appname_}.png"
done
install -Dm644 "$srcdir"/update-vlc-plugin-cache.hook "$pkgdir"/usr/share/libalpm/hooks/update-vlc-plugin-cache.hook
# Update dependencies automatically based on dynamic libraries
# _detected_depends=($(find "$pkgdir"/usr -name "*.so" | xargs python "$srcdir"/find-deps.py))
# msg 'Auto-detected dependencies:'
# echo "${_detected_depends[@]}" | fold -s -w 79 | sed 's/^/ /'
# depends=("${_detected_depends[@]}" "${_undetected_depends[@]}")
}
sha256sums=('82abfbd64cd6606afaf1c938f5b7cb8e29484d258719ee674d1a769bfce94431'
'c6f60c50375ae688755557dbfc5bd4a90a8998f8cf4d356c10d872a1a0b44f3a'
'd1cb88a1037120ea83ef75b2a13039a16825516b776d71597d0e2eae5df2d8fa'
'599ce4bf0db5fc74f54bc03136b662606c22b8435b81440b02fc73f52d09bd7f'
'90b0e34d5772d2307ba07a1c2aa715db7488389003cfe6d3570b2a9c63061db7')

48
vlc/nightly/find-deps.py Executable file
View File

@ -0,0 +1,48 @@
#!/usr/bin/env python3
"""
Usage: find-deps.py <binary> [<binary> ...]
Finds (pacman/ALPM) dependencies for a binary or set of binaries based
on dynamically linked libraries.
"""
import sys
import os
import subprocess
import re
def subprocess_get_lines(args, fail_okay=False):
try:
output = subprocess.check_output(args)
except subprocess.CalledProcessError as e:
if fail_okay:
output = e.output
else:
raise
return output.decode().splitlines()
# Get the filenames of the libs we need
#del os.environ['LD_PRELOAD'] # otherwise fakeroot will interfere
ldd_output = subprocess_get_lines(['ldd'] + sys.argv[1:])
regex = re.compile(r' => (.*) \(0x[0-9a-f]+\)$')
libs = set(match.group(1) for match in map(regex.search, ldd_output) if match)
# Figure out which packages own them
deps = set(subprocess_get_lines(
['pacman', '--query', '--owns', '--quiet'] + list(libs),
fail_okay=True
))
# Remove redundant dependencies
needed = set(deps)
for pkg in deps:
if pkg not in needed:
continue # this subtree has already been pruned
redundant = subprocess_get_lines(
['pactree', '--unique', pkg]
)[1:] # first line is pkg itself
needed.difference_update(redundant)
print(' '.join(sorted(needed)))

View File

@ -0,0 +1,11 @@
[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Operation = Remove
Target = usr/lib/vlc/plugins/*
[Action]
Description = Updating the vlc plugin cache...
When = PostTransaction
Exec = /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins