Enable opencv as separate subpackage

Resolves: rhbz#2173065
This commit is contained in:
Yaakov Selkowitz 2023-09-22 15:43:24 -04:00
parent 2d1a75dff9
commit eaeb569b77

View File

@ -2,11 +2,8 @@
%global _gobject_introspection 1.31.1
# Only have extras package on fedora
%if 0%{?fedora}
%bcond_without extras
%else
%bcond_with extras
%endif
%bcond extras %{defined fedora}
%bcond opencv %[ 0%{?fedora} >= 39 ]
#global gitrel 140
#global gitcommit 4ca3a22b6b33ad8be4383063e76f79c4d346535d
@ -112,9 +109,9 @@ BuildRequires: libmpcdec-devel
#BuildRequires: libtimidity-devel
BuildRequires: libva-devel
BuildRequires: openal-soft-devel
## If enabled, adds ~90 additional deps; perhaps can be moved to a
## subpackage?
#BuildRequires: opencv-devel
%if %{with opencv}
BuildRequires: opencv-devel
%endif
BuildRequires: openjpeg2-devel
BuildRequires: pkgconfig(spandsp) >= 0.0.6
## Plugins not ported
@ -215,6 +212,23 @@ plugin which allows playback of midi files.
%endif
%if %{with opencv}
%package opencv
Summary: GStreamer "bad" plugins OpenCV plugins
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: opencv-data
%description opencv
GStreamer is a streaming media framework, based on graphs of elements which
operate on media data.
gstreamer-plugins-bad contains plug-ins that aren't tested well enough,
or the code is not of good enough quality.
This package (%{name}-opencv) contains the OpenCV plugins.
%endif
%package libs
Summary: Runtime libraries for the GStreamer media framework "bad" plug-ins
@ -261,7 +275,8 @@ aren't tested well enough, or the code is not of good enough quality.
%{!?with_extras:-D ttml=disabled -D kate=disabled } \
%{!?with_extras:-D modplug=disabled } \
%{!?with_extras:-D openal=disabled } \
%{!?with_extras:-D opencv=disabled -D openjpeg=disabled } \
%{!?with_opencv:-D opencv=disabled } \
%{!?with_extras:-D openjpeg=disabled } \
%{!?with_extras:-D wildmidi=disabled -D zbar=disabled } \
%{!?with_extras:-D gme=disabled -D lv2=disabled } \
%{!?with_extras:-D webrtc=disabled -D aom=disabled } \
@ -272,7 +287,7 @@ aren't tested well enough, or the code is not of good enough quality.
-D dts=disabled -D faac=disabled -D faad=disabled \
-D mpeg2enc=disabled -D mplex=disabled \
-D neon=disabled -D rtmp=disabled \
-D flite=disabled -D sbc=disabled -D opencv=disabled \
-D flite=disabled -D sbc=disabled \
%{!?with_extras:-D spandsp=disabled -D va=disabled } \
%{!?with_extras:-D voamrwbenc=disabled } \
-D x265=disabled \
@ -299,6 +314,12 @@ aren't tested well enough, or the code is not of good enough quality.
%install
%meson_install
%if %{with opencv}
# no pkgconfig file or GIR, nothing aside from the plugin uses the library
rm -f $RPM_BUILD_ROOT%{_includedir}/gstreamer-%{majorminor}/gst/opencv/*
rm -f $RPM_BUILD_ROOT%{_libdir}/libgstopencv-%{majorminor}.so
%endif
# Register as an AppStream component to be visible in the software center
#
# NOTE: It would be *awesome* if this file was maintained by the upstream
@ -378,9 +399,6 @@ rm $RPM_BUILD_ROOT%{_bindir}/playout
%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/webm.gep
%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/online-services/youtube.gep
# opencv data
#{_datadir}/gst-plugins-bad/%{majorminor}/opencv_haarcascades/
# Plugins without external dependencies
%{_libdir}/gstreamer-%{majorminor}/libgstaccurip.so
%{_libdir}/gstreamer-%{majorminor}/libgstadpcmdec.so
@ -523,7 +541,6 @@ rm $RPM_BUILD_ROOT%{_bindir}/playout
%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so
%{_libdir}/gstreamer-%{majorminor}/libgstmusepack.so
%{_libdir}/gstreamer-%{majorminor}/libgstopenal.so
#{_libdir}/gstreamer-%{majorminor}/libgstopencv.so
%{_libdir}/gstreamer-%{majorminor}/libgstopenexr.so
%{_libdir}/gstreamer-%{majorminor}/libgstopenjpeg.so
%{_libdir}/gstreamer-%{majorminor}/libgstopenmpt.so
@ -547,6 +564,13 @@ rm $RPM_BUILD_ROOT%{_bindir}/playout
%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so
%endif
%if %{with opencv}
%files opencv
# Plugins with external dependencies
%{_libdir}/gstreamer-%{majorminor}/libgstopencv.so
%{_libdir}/libgstopencv-%{majorminor}.so.0{,.*}
%endif
%files libs
%license COPYING
%{_libdir}/libgstadaptivedemux-%{majorminor}.so.0{,.*}
@ -690,6 +714,7 @@ rm $RPM_BUILD_ROOT%{_bindir}/playout
%changelog
* Fri Sep 22 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1.22.5-2
- Separate libs subpackage
- Enable opencv as separate subpackage
* Fri Jul 21 2023 Wim Taymans <wtaymans@redhat.com> - 1.22.5-1
- Update to 1.22.5