maintainer="Krassy Boykinov <kboykinov@teamcentrixx.com>"
pkgname=gstreamer
pkgver=1.26.1
pkgrel=0
pkgdesc="GStreamer streaming media framework"
url="https://gstreamer.freedesktop.org"
arch="all"
license="LGPL-2.0-or-later"
replaces="gstreamer1"
depends_dev="libxml2-dev"
makedepends="$depends_dev
	bison
	flex
	glib-dev
	gobject-introspection-dev
	libcap-dev
	libcap-utils
	meson
	perl
	rust
	"
subpackages="
	$pkgname-dbg
	$pkgname-dev
	$pkgname-doc
	$pkgname-tools
	$pkgname-lang
	$pkgname-ptp-helper:ptp_helper
	"
source="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$pkgver.tar.xz"
# setcap: gst-ptp-helper
# FIXME: two tests fail
options="setcap !check"

# secfixes:
#   1.18.4-r0:
#     - CVE-2021-3497
#     - CVE-2021-3498

build() {
	CFLAGS="$CFLAGS -O2" \
	CXXFLAGS="$CXXFLAGS -O2" \
	CPPFLAGS="$CPPFLAGS -O2" \
	abuild-meson \
		-Db_lto=true \
		-Dintrospection=enabled \
		-Dbash-completion=disabled \
		-Dptp-helper=enabled \
		-Dptp-helper-permissions=capabilities \
		-Dbenchmarks=enabled \
		-Dcheck=enabled \
		-Dcoretracers=enabled \
		-Dnls=enabled \
		-Dtests=enabled \
		-Dtools=enabled \
		-Dpackage-name="GStreamer (Alpine Linux)" \
		-Dpackage-origin="https://alpinelinux.org" \
		. output
	meson compile -C output
}

check() {
	meson test --print-errorlogs -C output
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
}

dev() {
	default_dev

	# Support for debugging.
	amove usr/share/gdb
	amove usr/share/gstreamer-*/gdb

	# Unit test libraries.
	amove usr/bin/gst-tester-*
	amove usr/lib/libgstcheck-*.so.*
	amove usr/lib/girepository-1.0/GstCheck-*.typelib
}

doc() {
	default_doc
	replaces="${pkgname}1-doc"
}

tools() {
	pkgdesc="Tools for GStreamer streaming media framework"
	# gst-feedback needs this
	depends="pkgconfig"

	amove usr/bin
}

ptp_helper() {
	pkgdesc="$pkgdesc (ptp helper)"
	install_if="$pkgname=$pkgver-r$pkgrel"

	amove usr/libexec/gstreamer-*/gst-ptp-helper
}

sha512sums="
7a5da377fbfb25cacc2d9613a57210c00ca70ee00f3ef4d108a3c98bd6a2cb703b773ca6fd6d9ac7b59b60d0bf0573cff69bdea18e07159ac56ee992613d0a78  gstreamer-1.26.1.tar.xz
"
