-# TODO: suid/capabilities for ptp-helper?
+# TODO: suid/capabilities for ptp-helper? (-Dptp-helper-permissions=capabilities or -Dptp-helper-setuid-user=/-Dptp-helper-setuid-group=)
#
# Conditional build:
%bcond_without apidocs # hotdoc based API documentation
+%bcond_without ptp_helper # ptp-helper (requires rust)
+%bcond_without static_libs # static libraries
%define gstmver 1.0
Summary: GStreamer Streaming-media framework runtime
Summary(pl.UTF-8): GStreamer - biblioteki środowiska do obróbki strumieni
Name: gstreamer
-Version: 1.20.2
+Version: 1.24.2
Release: 1
License: LGPL v2+
Group: Libraries
Source0: https://gstreamer.freedesktop.org/src/gstreamer/%{name}-%{version}.tar.xz
-# Source0-md5: 56d8b3abb3c593ddf0f77897860b3c9d
+# Source0-md5: fd0faca3054dd579768f81288be822d4
Patch0: %{name}-inspect-rpm-format.patch
-Patch1: %{name}-pc.patch
URL: https://gstreamer.freedesktop.org/
-BuildRequires: bash-completion-devel >= 2.0
+BuildRequires: automake
+BuildRequires: bash-completion-devel >= 1:2.0
BuildRequires: bison >= 1.875
BuildRequires: docbook-dtd412-xml
BuildRequires: elfutils-devel
BuildRequires: flex >= 2.5.31
BuildRequires: gettext-tools >= 0.17
-BuildRequires: glib2-devel >= 1:2.56.0
+BuildRequires: glib2-devel >= 1:2.64.0
%if %(locale -a | grep -q '^C\.UTF-8$'; echo $?)
BuildRequires: glibc-localedb-all
%endif
%ifarch %{ix86} %{x8664} x32 %{arm} hppa ia64 mips ppc ppc64 sh
BuildRequires: libunwind-devel
%endif
-BuildRequires: meson >= 0.59
+BuildRequires: meson >= 1.1
BuildRequires: ninja >= 1.5
BuildRequires: perl-base
BuildRequires: pkgconfig >= 1:0.9.0
BuildRequires: python3 >= 1:3.2
+BuildRequires: python3-modules >= 1:3.2
+%{?with_ptp_helper:BuildRequires: rust >= 1.48}
BuildRequires: rpm-build >= 4.6
BuildRequires: rpmbuild(macros) >= 1.736
BuildRequires: sed >= 4.0
BuildRequires: tar >= 1:1.22
BuildRequires: xz
-Requires: glib2 >= 1:2.56.0
+Requires: glib2 >= 1:2.64.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define gstlibdir %{_libdir}/gstreamer-%{gstmver}
Summary(pl.UTF-8): Pliki nagłówkowe do środowiska obróbki strumieni GStreamer
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: glib2-devel >= 1:2.56.0
+Requires: glib2-devel >= 1:2.64.0
Obsoletes: gstreamer-plugins-bad-devel < 0.10.10
Conflicts: gstreamer-plugins-bad-devel < 1.14
Summary: GStreamer pretty printers for GDB
Summary(pl.UTF-8): Funkcje wypisujące dane GStreamer dla GDB
Group: Development/Debuggers
+Requires: %{name} = %{version}-%{release}
+Requires: gdb
%description gdb
This package contains Python scripts for GDB pretty printing of the
Summary(pl.UTF-8): Bashowe uzupełnianie parametrów narzędzi GStreamera
Group: Applications/Shells
Requires: %{name} = %{version}-%{release}
-Requires: bash-completion >= 2.0
+Requires: bash-completion >= 1:2.0
%description -n bash-completion-gstreamer
Bash completion for GStreamer utilities: gst-inspect and gst-launch.
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' docs/gst-plugins-doc-cache-generator.py
%build
%meson build \
+ %{!?with_static_libs:--default-library=shared} \
%{?with_apidocs:-Ddoc=enabled} \
- -D tests=disabled \
- -D examples=disabled
+ -Dexamples=disabled \
+ -Dtests=disabled
%ninja_build -C build
%if %{with apidocs}
cd build/docs
-for component in base check controller coreelements coretracers gstreamer net ; do
+for component in base check controller gstreamer net ; do
LC_ALL=C.UTF-8 hotdoc run --conf-file ${component}-doc.json
done
+for component in coreelements coretracers ; do
+ LC_ALL=C.UTF-8 hotdoc run --conf-file plugin-${component}.json
+done
%endif
%install
%py3_ocomp $RPM_BUILD_ROOT%{_datadir}/gstreamer-1.0/gdb
# no static modules - shut up check files
+%if %{with static_libs}
%{__rm} $RPM_BUILD_ROOT%{gstlibdir}/lib*.a
+%{__rm} $RPM_BUILD_ROOT%{gstlibdir}/pkgconfig/*.pc
+%endif
%if %{with apidocs}
install -d $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver}
-cp -pr build/docs/{base,check,controller,coreelements,coretracers,gstreamer,net}-doc $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver}
+cp -pr build/docs/{base,check,controller,gstreamer,net}-doc $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver}
+cp -pr build/docs/plugin-{coreelements,coretracers} $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver}
%endif
%clean
%dir %{gstlibexecdir}
%endif
%attr(755,root,root) %{gstlibexecdir}/gst-plugin-scanner
+%if %{with ptp_helper}
+# %caps(cap_net_bind_service,cap_net_admin,cap_sys_nice=ep) ?
%attr(755,root,root) %{gstlibexecdir}/gst-ptp-helper
+%endif
%dir %{gstlibdir}
%attr(755,root,root) %{gstlibdir}/libgstcoreelements.so
%attr(755,root,root) %{gstlibdir}/libgstcoretracers.so
%attr(755,root,root) %{_libdir}/libgstcontroller-%{gstmver}.so
%attr(755,root,root) %{_libdir}/libgstnet-%{gstmver}.so
%attr(755,root,root) %{_libdir}/libgstreamer-%{gstmver}.so
-%dir %{gstlibdir}/pkgconfig
-%{gstlibdir}/pkgconfig/gstcoreelements.pc
-%{gstlibdir}/pkgconfig/gstcoretracers.pc
%dir %{gstincludedir}
%{gstincludedir}/gst
%{_pkgconfigdir}/gstreamer-%{gstmver}.pc
%{_datadir}/gir-1.0/GstController-%{gstmver}.gir
%{_datadir}/gir-1.0/GstNet-%{gstmver}.gir
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libgstbase-%{gstmver}.a
%{_libdir}/libgstcontroller-%{gstmver}.a
%{_libdir}/libgstnet-%{gstmver}.a
%{_libdir}/libgstreamer-%{gstmver}.a
+%endif
%if %{with apidocs}
%files apidocs
%{_docdir}/gstreamer-%{gstmver}/base-doc
%{_docdir}/gstreamer-%{gstmver}/check-doc
%{_docdir}/gstreamer-%{gstmver}/controller-doc
-%{_docdir}/gstreamer-%{gstmver}/coreelements-doc
-%{_docdir}/gstreamer-%{gstmver}/coretracers-doc
%{_docdir}/gstreamer-%{gstmver}/gstreamer-doc
%{_docdir}/gstreamer-%{gstmver}/net-doc
+%{_docdir}/gstreamer-%{gstmver}/plugin-coreelements
+%{_docdir}/gstreamer-%{gstmver}/plugin-coretracers
%endif
%files gdb