X-Git-Url: https://git.pld-linux.org/?p=packages%2Fgstreamer.git;a=blobdiff_plain;f=gstreamer.spec;h=7e024732307c1b7a73a98e932aa022ea296a0e0d;hp=4222d5732607bcf5db8acff943d0247de6f60ee8;hb=HEAD;hpb=8f0c4216d1512cdf32dda77b32f8ed9a75376501 diff --git a/gstreamer.spec b/gstreamer.spec index 4222d57..3d7b4c4 100644 --- a/gstreamer.spec +++ b/gstreamer.spec @@ -1,46 +1,59 @@ +# TODO: suid/capabilities for ptp-helper? (-Dptp-helper-permissions=capabilities or -Dptp-helper-setuid-user=/-Dptp-helper-setuid-group=) # -%define vmajor 1.0 -# +# 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.4.5 +Version: 1.24.2 Release: 1 License: LGPL v2+ Group: Libraries -Source0: http://gstreamer.freedesktop.org/src/gstreamer/%{name}-%{version}.tar.xz -# Source0-md5: 88a9289c64a4950ebb4f544980234289 -Patch0: %{name}-without_ps_pdf.patch -Patch1: %{name}-eps.patch -Patch2: %{name}-inspect-rpm-format.patch -URL: http://gstreamer.net/ -BuildRequires: autoconf >= 2.68 -BuildRequires: automake >= 1:1.11 +Source0: https://gstreamer.freedesktop.org/src/gstreamer/%{name}-%{version}.tar.xz +# Source0-md5: fd0faca3054dd579768f81288be822d4 +Patch0: %{name}-inspect-rpm-format.patch +URL: https://gstreamer.freedesktop.org/ +BuildRequires: automake +BuildRequires: bash-completion-devel >= 1:2.0 BuildRequires: bison >= 1.875 -BuildRequires: docbook-dtd30-sgml BuildRequires: docbook-dtd412-xml -BuildRequires: docbook-utils >= 0.6.10 +BuildRequires: elfutils-devel BuildRequires: flex >= 2.5.31 -BuildRequires: gettext-devel >= 0.17 -BuildRequires: glib2-devel >= 1:2.32.0 +BuildRequires: gettext-tools >= 0.17 +BuildRequires: glib2-devel >= 1:2.64.0 +%if %(locale -a | grep -q '^C\.UTF-8$'; echo $?) +BuildRequires: glibc-localedb-all +%endif BuildRequires: glibc-misc -BuildRequires: gnome-doc-tools BuildRequires: gobject-introspection-devel >= 1.31.1 -BuildRequires: gtk-doc >= 1.12 -BuildRequires: libtool >= 1.4 -BuildRequires: nasm +%{?with_apidocs:BuildRequires: hotdoc >= 0.11.0} +BuildRequires: libcap-devel +%ifarch %{ix86} %{x8664} x32 %{arm} hppa ia64 mips ppc ppc64 sh +BuildRequires: libunwind-devel +%endif +BuildRequires: meson >= 1.1 +BuildRequires: ninja >= 1.5 BuildRequires: perl-base BuildRequires: pkgconfig >= 1:0.9.0 -BuildRequires: python >= 2.1 +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: transfig -BuildRequires: xmlto BuildRequires: xz -Requires: glib2 >= 1:2.32.0 +Requires: glib2 >= 1:2.64.0 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _gstlibdir %{_libdir}/gstreamer-%{vmajor} -%define _gstincludedir %{_includedir}/gstreamer-%{vmajor} +%define gstlibdir %{_libdir}/gstreamer-%{gstmver} +%define gstlibexecdir %{_libexecdir}/gstreamer-%{gstmver} +%define gstincludedir %{_includedir}/gstreamer-%{gstmver} %description GStreamer is a streaming-media framework, based on graphs of filters @@ -63,8 +76,9 @@ Summary: Include files for GStreamer streaming-media framework 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.32.0 +Requires: glib2-devel >= 1:2.64.0 Obsoletes: gstreamer-plugins-bad-devel < 0.10.10 +Conflicts: gstreamer-plugins-bad-devel < 1.14 %description devel This package contains the includes files necessary to develop @@ -88,59 +102,91 @@ Statyczne wersje bibliotek GStreamer. %package apidocs Summary: GStreamer API documentation -Summary(pl.UTF-8): Dokumentacja API Gstreamera +Summary(pl.UTF-8): Dokumentacja API GStreamera Group: Documentation -Requires: gtk-doc-common +BuildArch: noarch %description apidocs GStreamer API documentation. %description apidocs -l pl.UTF-8 -Dokumentacja API Gstreamera. +Dokumentacja API GStreamera. + +%package gdb +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 +GStreamer types. + +%description gdb -l pl.UTF-8 +Ten pakiet zawiera skrypty Pythona dla GDB służące do ładnego +wypisywania typów GStreamer. + +%package -n bash-completion-gstreamer +Summary: Bash completion for GStreamer utilities +Summary(pl.UTF-8): Bashowe uzupełnianie parametrów narzędzi GStreamera +Group: Applications/Shells +Requires: %{name} = %{version}-%{release} +Requires: bash-completion >= 1:2.0 + +%description -n bash-completion-gstreamer +Bash completion for GStreamer utilities: gst-inspect and gst-launch. + +%description -n bash-completion-gstreamer -l pl.UTF-8 +Bashowe uzupełnianie parametrów narzędzi GStreamera: gst-inspect oraz +gst-launch. %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p1 + +%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' docs/gst-plugins-doc-cache-generator.py %build -# po/Makefile.in.in is modified -#{__gettextize} -%{__libtoolize} -%{__aclocal} -I common/m4 -I m4 -I . -%{__autoconf} -%{__autoheader} -%{__automake} -%configure \ - --disable-examples \ - --disable-pspdf \ - --disable-silent-rules \ - --disable-tests \ - --enable-docbook \ - --enable-gtk-doc \ - --with-html-dir=%{_gtkdocdir} \ - --enable-static - -%{__make} +%meson build \ + %{!?with_static_libs:--default-library=shared} \ + %{?with_apidocs:-Ddoc=enabled} \ + -Dexamples=disabled \ + -Dtests=disabled + +%ninja_build -C build + +%if %{with apidocs} +cd build/docs +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 rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_docdir}/%{name}-devel-%{version},%{rpmlibdir}} -%{__make} install \ - DESTDIR=$RPM_BUILD_ROOT - -mv $RPM_BUILD_ROOT%{_docdir}/%{name}-{%{vmajor},%{version}} -mv $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/{faq,manual,pwg} \ - $RPM_BUILD_ROOT%{_docdir}/%{name}-devel-%{version} +%ninja_install -C build %find_lang %{name} --all-name --with-gnome -# no *.la for modules - shut up check files -%{__rm} $RPM_BUILD_ROOT%{_gstlibdir}/lib*.la -# obsoleted by pkg-config -%{__rm} $RPM_BUILD_ROOT%{_libdir}/libgst*.la +%py3_comp $RPM_BUILD_ROOT%{_datadir}/gstreamer-1.0/gdb +%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,gstreamer,net}-doc $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver} +cp -pr build/docs/plugin-{coreelements,coretracers} $RPM_BUILD_ROOT%{_docdir}/gstreamer-%{gstmver} +%endif %clean rm -rf $RPM_BUILD_ROOT @@ -150,63 +196,100 @@ rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(644,root,root,755) -%doc AUTHORS ChangeLog MAINTAINERS NEWS README RELEASE +%doc AUTHORS ChangeLog MAINTAINERS NEWS README.md RELEASE %attr(755,root,root) %{_bindir}/gst-inspect-1.0 %attr(755,root,root) %{_bindir}/gst-launch-1.0 +%attr(755,root,root) %{_bindir}/gst-stats-1.0 %attr(755,root,root) %{_bindir}/gst-typefind-1.0 -%attr(755,root,root) %{_libdir}/libgstbase-%{vmajor}.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgstbase-%{vmajor}.so.0 -%attr(755,root,root) %{_libdir}/libgstcheck-%{vmajor}.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgstcheck-%{vmajor}.so.0 -%attr(755,root,root) %{_libdir}/libgstcontroller-%{vmajor}.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgstcontroller-%{vmajor}.so.0 -%attr(755,root,root) %{_libdir}/libgstnet-%{vmajor}.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgstnet-%{vmajor}.so.0 -%attr(755,root,root) %{_libdir}/libgstreamer-%{vmajor}.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgstreamer-%{vmajor}.so.0 -%dir %{_gstlibdir} -%attr(755,root,root) %{_gstlibdir}/gst-plugin-scanner -%attr(755,root,root) %{_gstlibdir}/libgstcoreelements.so +%attr(755,root,root) %{_libdir}/libgstbase-%{gstmver}.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgstbase-%{gstmver}.so.0 +%attr(755,root,root) %{_libdir}/libgstcheck-%{gstmver}.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgstcheck-%{gstmver}.so.0 +%attr(755,root,root) %{_libdir}/libgstcontroller-%{gstmver}.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgstcontroller-%{gstmver}.so.0 +%attr(755,root,root) %{_libdir}/libgstnet-%{gstmver}.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgstnet-%{gstmver}.so.0 +%attr(755,root,root) %{_libdir}/libgstreamer-%{gstmver}.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgstreamer-%{gstmver}.so.0 +%if "%{_libexecdir}" != "%{_libdir}" +%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 +# common for some plugins +%dir %{_datadir}/gstreamer-1.0 %{_mandir}/man1/gst-inspect-1.0.1* %{_mandir}/man1/gst-launch-1.0.1* +%{_mandir}/man1/gst-stats-1.0.1* %{_mandir}/man1/gst-typefind-1.0.1* -%{_libdir}/girepository-1.0/Gst-%{vmajor}.typelib -%{_libdir}/girepository-1.0/GstBase-%{vmajor}.typelib -%{_libdir}/girepository-1.0/GstCheck-%{vmajor}.typelib -%{_libdir}/girepository-1.0/GstController-%{vmajor}.typelib -%{_libdir}/girepository-1.0/GstNet-%{vmajor}.typelib +%{_libdir}/girepository-1.0/Gst-%{gstmver}.typelib +%{_libdir}/girepository-1.0/GstBase-%{gstmver}.typelib +%{_libdir}/girepository-1.0/GstCheck-%{gstmver}.typelib +%{_libdir}/girepository-1.0/GstController-%{gstmver}.typelib +%{_libdir}/girepository-1.0/GstNet-%{gstmver}.typelib %files devel %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/libgstbase-%{vmajor}.so -%attr(755,root,root) %{_libdir}/libgstcheck-%{vmajor}.so -%attr(755,root,root) %{_libdir}/libgstcontroller-%{vmajor}.so -%attr(755,root,root) %{_libdir}/libgstnet-%{vmajor}.so -%attr(755,root,root) %{_libdir}/libgstreamer-%{vmajor}.so -%{_docdir}/%{name}-devel-%{version} -%{_gstincludedir} -%{_pkgconfigdir}/gstreamer-%{vmajor}.pc -%{_pkgconfigdir}/gstreamer-base-%{vmajor}.pc -%{_pkgconfigdir}/gstreamer-check-%{vmajor}.pc -%{_pkgconfigdir}/gstreamer-controller-%{vmajor}.pc -%{_pkgconfigdir}/gstreamer-net-%{vmajor}.pc -%{_aclocaldir}/gst-element-check-%{vmajor}.m4 -%{_datadir}/gir-1.0/Gst-%{vmajor}.gir -%{_datadir}/gir-1.0/GstBase-%{vmajor}.gir -%{_datadir}/gir-1.0/GstCheck-%{vmajor}.gir -%{_datadir}/gir-1.0/GstController-%{vmajor}.gir -%{_datadir}/gir-1.0/GstNet-%{vmajor}.gir +%if %{with apidocs} +%attr(755,root,root) %{gstlibexecdir}/gst-hotdoc-plugins-scanner +%attr(755,root,root) %{gstlibexecdir}/gst-plugins-doc-cache-generator +%endif +%attr(755,root,root) %{_libdir}/libgstbase-%{gstmver}.so +%attr(755,root,root) %{_libdir}/libgstcheck-%{gstmver}.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 %{gstincludedir} +%{gstincludedir}/gst +%{_pkgconfigdir}/gstreamer-%{gstmver}.pc +%{_pkgconfigdir}/gstreamer-base-%{gstmver}.pc +%{_pkgconfigdir}/gstreamer-check-%{gstmver}.pc +%{_pkgconfigdir}/gstreamer-controller-%{gstmver}.pc +%{_pkgconfigdir}/gstreamer-net-%{gstmver}.pc +%{_aclocaldir}/gst-element-check-%{gstmver}.m4 +%{_datadir}/gir-1.0/Gst-%{gstmver}.gir +%{_datadir}/gir-1.0/GstBase-%{gstmver}.gir +%{_datadir}/gir-1.0/GstCheck-%{gstmver}.gir +%{_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-%{vmajor}.a -%{_libdir}/libgstcheck-%{vmajor}.a -%{_libdir}/libgstcontroller-%{vmajor}.a -%{_libdir}/libgstnet-%{vmajor}.a -%{_libdir}/libgstreamer-%{vmajor}.a +%{_libdir}/libgstbase-%{gstmver}.a +%{_libdir}/libgstcheck-%{gstmver}.a +%{_libdir}/libgstcontroller-%{gstmver}.a +%{_libdir}/libgstnet-%{gstmver}.a +%{_libdir}/libgstreamer-%{gstmver}.a +%endif +%if %{with apidocs} %files apidocs %defattr(644,root,root,755) -%{_gtkdocdir}/gstreamer-%{vmajor} -%{_gtkdocdir}/gstreamer-libs-%{vmajor} -%{_gtkdocdir}/gstreamer-plugins-%{vmajor} +%dir %{_docdir}/gstreamer-%{gstmver} +%{_docdir}/gstreamer-%{gstmver}/base-doc +%{_docdir}/gstreamer-%{gstmver}/check-doc +%{_docdir}/gstreamer-%{gstmver}/controller-doc +%{_docdir}/gstreamer-%{gstmver}/gstreamer-doc +%{_docdir}/gstreamer-%{gstmver}/net-doc +%{_docdir}/gstreamer-%{gstmver}/plugin-coreelements +%{_docdir}/gstreamer-%{gstmver}/plugin-coretracers +%endif + +%files gdb +%defattr(644,root,root,755) +%{_datadir}/gdb/auto-load%{_libdir}/libgstreamer-%{gstmver}.so.*.*.*-gdb.py +%{_datadir}/gstreamer-1.0/gdb + +%files -n bash-completion-gstreamer +%defattr(644,root,root,755) +%{bash_compdir}/gst-inspect-1.0 +%{bash_compdir}/gst-launch-1.0 +%attr(755,root,root) %{gstlibexecdir}/gst-completion-helper +%attr(755,root,root) %{_datadir}/bash-completion/helpers/gst