PKGBUILDs/extra/gst-plugins-bad/PKGBUILD
2021-08-02 23:04:28 +00:00

138 lines
4.8 KiB
Bash

# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - remove makedepend and package depend on svt-hevc
# - meson with -D svthevcenc=disabled
pkgbase=gst-plugins-bad
pkgname=(gst-plugins-bad-libs gst-plugins-bad gst-plugin-opencv gst-plugin-wpe)
pkgver=1.18.4
pkgrel=10
pkgdesc="Multimedia graph framework - bad plugins"
url="https://gstreamer.freedesktop.org/"
arch=(x86_64)
license=(LGPL)
depends=(gst-plugins-base-libs orc libdrm libx11 libgudev libusb libvdpau
libxkbcommon-x11)
makedepends=(mjpegtools curl chromaprint libmms faad2 libdca libdvdnav
libmodplug libgme nettle libkate wayland libofa openjpeg2 libwebp
libsrtp sbc rtmpdump libexif libdvdread wildmidi ladspa openal
vulkan-icd-loader libfdk-aac faac soundtouch spandsp neon
webrtc-audio-processing libdc1394 libmpcdec zvbi openexr libbs2b
libnice lcms2 bluez-libs glu srt aom x265 liblrdf libde265 zbar
librsvg fluidsynth lilv lv2 gst-plugins-good python git
gobject-introspection vulkan-headers vulkan-validation-layers
wayland-protocols gtk3 meson shaderc libavtp libmicrodns
zxing-cpp opencv libva wpewebkit)
checkdepends=(xorg-server-xvfb)
options=(!emptydirs)
_commit=8cb03bdf01ca6ad8c87f951bcd7962c3ca9f6860 # tags/1.18.4^0
source=("git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad.git#commit=$_commit")
sha256sums=('SKIP')
pkgver() {
cd $pkgbase
git describe --tags | sed 's/-/+/g'
}
prepare() {
cd $pkgbase
git cherry-pick -n 68858358544dd3b7e20663f731db22fd74a78a45 # fix build with GCC 11
git cherry-pick -n a9fafd98b74fd184b178604095d35ac6105119b8 # fix build with OpenEXR 3
}
build() {
arch-meson $pkgbase build \
-D directfb=disabled \
-D doc=disabled \
-D flite=disabled \
-D gsm=disabled \
-D iqa=disabled \
-D magicleap=disabled \
-D msdk=disabled \
-D openh264=disabled \
-D openmpt=disabled \
-D openni2=disabled \
-D opensles=disabled \
-D svthevcenc=disabled \
-D tinyalsa=disabled \
-D voaacenc=disabled \
-D voamrwbenc=disabled \
-D wasapi2=disabled \
-D wasapi=disabled \
-D gobject-cast-checks=disabled \
-D package-name="GStreamer Bad Plugins (Arch Linux)" \
-D package-origin="https://www.archlinux.org/"
meson compile -C build
}
check() (
mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
export XDG_RUNTIME_DIR
# elements_dtls test hangs sometimes
xvfb-run -s '-screen 0 1920x1080x24 -nolisten local +iglx -noreset' \
meson test -C build --print-errorlogs || :
)
package_gst-plugins-bad-libs() {
pkgdesc="${pkgdesc% plugins}"
provides=("gst-transcoder=$pkgver")
conflicts=("gst-transcoder<1.18.0")
replaces=("gst-transcoder<1.18.0")
DESTDIR="$pkgdir" meson install -C build
mkdir -p ext/lib/gstreamer-1.0
for _x in aom assrender bs2b bz2 chromaprint closedcaption colormanagement \
curl dc1394 de265 dtls dtsdec faac faad fdkaac fluidsynthmidi gme \
hls kate ladspa lv2 mms modplug mpeg2enc mplex musepack \
neonhttpsrc ofa openal openexr openjpeg opusparse resindvd rsvg \
rtmp sbc sctp smoothstreaming sndfile soundtouch spandsp srt srtp \
teletext ttmlsubs vulkan waylandsink webp webrtc webrtcdsp \
wildmidi x265 zbar va avtp zxing microdns; do
_x="lib/gstreamer-1.0/libgst${_x}.so"
mv "$pkgdir/usr/$_x" "ext/$_x"
done
mkdir -p opencv/{lib,include/gstreamer-1.0/gst}
mv -t opencv/lib "$pkgdir"/usr/lib/*opencv*
mv -t opencv/include/gstreamer-1.0/gst \
"$pkgdir"/usr/include/gstreamer-1.0/gst/opencv
for _x in opencv wpe; do
mkdir -p "$_x/lib/gstreamer-1.0"
_f="lib/gstreamer-1.0/libgst${_x}.so"
mv "$pkgdir/usr/$_f" "$_x/$_f"
done
}
package_gst-plugins-bad() {
depends=("gst-plugins-bad-libs=$pkgver" gst-plugins-good
aom libass libbs2b bzip2 chromaprint pango lcms2 curl libxml2
libdc1394 libde265 openssl libdca faac faad2 libfdk-aac fluidsynth
libgme nettle libkate liblrdf lilv libmms libmodplug mjpegtools
libmpcdec neon libofa openal openexr openjpeg2 opus libdvdnav
libdvdread librsvg rtmpdump sbc libsndfile soundtouch spandsp srt
libsrtp zvbi vulkan-icd-loader libxcb wayland libwebp libnice
webrtc-audio-processing wildmidi x265 zbar libavtp
libmicrodns zxing-cpp libva)
optdepends=('nvidia-utils: nvcodec plugin')
mv ext "$pkgdir/usr"
}
package_gst-plugin-opencv() {
pkgdesc="${pkgdesc%-*}- opencv plugin"
depends=(gst-plugins-base-libs opencv)
mv opencv "$pkgdir/usr"
}
package_gst-plugin-wpe() {
pkgdesc="${pkgdesc%-*}- wpe plugin"
depends=(gst-plugins-base-libs wpewebkit)
mv wpe "$pkgdir/usr"
}