File webcamoid.spec of Package webcamoid

#
# spec file for package webcamoid
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%if 0%{?suse_version} < 1600
%define my_version 9.1.1
%define is_leap 1
%else
%define my_version 9.3.0
%define is_leap 0
%endif

Name:           webcamoid
Version:        %{my_version}
Release:        0
Summary:        Webcam plasmoid for KDE
License:        GPL-3.0-or-later
Group:          System/GUI/KDE
URL:            https://webcamoid.github.io/
Source:         https://github.com/webcamoid/webcamoid/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires:  bison
BuildRequires:  ccache
BuildRequires:  clang
BuildRequires:  desktop-file-utils
BuildRequires:  fdupes
BuildRequires:  flex
BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires:  glibc-devel
BuildRequires:  gstreamer-plugins-base-devel >= 1.6
BuildRequires:  hicolor-icon-theme
###BuildRequires:  pkgconfig(libuvc) <- not in suse

%if %{is_leap}
BuildRequires:  ffmpeg-4-private-devel
BuildRequires:  kf5-filesystem
BuildRequires:  libqt5-qtbase-devel >= 5.15.0
BuildRequires:  libqt5-qtgraphicaleffects
BuildRequires:  libqt5-qtquickcontrols
BuildRequires:  perl-Text-Markdown
BuildRequires:  pkgconfig
BuildRequires:  python3-devel
BuildRequires:  v4l-utils-devel-tools
BuildRequires:  which
BuildRequires:  xauth
BuildRequires:  xvfb-run
BuildRequires:  cmake(Qt5LinguistTools)
BuildRequires:  pkgconfig(Qt5Concurrent)
BuildRequires:  pkgconfig(Qt5Multimedia)
BuildRequires:  pkgconfig(Qt5OpenGL)
BuildRequires:  pkgconfig(Qt5Qml)
BuildRequires:  pkgconfig(Qt5QuickControls2)
BuildRequires:  pkgconfig(Qt5Svg)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(Qt5Xml)
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(frei0r)
BuildRequires:  pkgconfig(jack)
BuildRequires:  pkgconfig(libavcodec) >= 58.7.100
BuildRequires:  pkgconfig(libavcodec) < 59.0.0
BuildRequires:  pkgconfig(libavdevice) >= 57.0.0
BuildRequires:  pkgconfig(libavdevice) < 59.0.0
BuildRequires:  pkgconfig(libavformat) >= 58.0.102
BuildRequires:  pkgconfig(libavformat) < 59.0.0
BuildRequires:  pkgconfig(libavutil) >= 56.6.100
BuildRequires:  pkgconfig(libpipewire-0.3)
BuildRequires:  pkgconfig(libpulse-simple)
BuildRequires:  pkgconfig(libswscale) >= 5.0.101
BuildRequires:  pkgconfig(libv4l2)
BuildRequires:  pkgconfig(libvlc)
BuildRequires:  pkgconfig(qimageblitz5)
#Requires:       akvcam
Requires:       frei0r-plugins
Requires:       frei0r-plugins-opencv
Requires:       libqt5-qtquickcontrols
Requires:       libqt5-qtquickcontrols2
#Requires:       v4l2loopback-kmp
#Requires:       v4l2loopback-utils
Provides:       plasmoid-webcamoid = %{version}
Obsoletes:      plasmoid-webcamoid < %{version}
%else
BuildRequires:  kf6-filesystem
BuildRequires:  kf6-extra-cmake-modules
BuildRequires:  qt6-base-devel
BuildRequires:  pkgconfig(Qt6Core)
BuildRequires:  pkgconfig(Qt6Quick)
BuildRequires:  pkgconfig(Qt6Multimedia)
BuildRequires:  pkgconfig(Qt6QuickControls2)
BuildRequires:  pkgconfig(Qt6Svg)
BuildRequires:  pkgconfig(libusb-1.0)
BuildRequires:  pkgconfig(libkmod)
BuildRequires:  perl-Text-Markdown
BuildRequires:  pkgconfig
BuildRequires:  python3-devel
BuildRequires:  v4l-utils-devel-tools
BuildRequires:  which
BuildRequires:  xauth
BuildRequires:  xvfb-run
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(frei0r)
BuildRequires:  pkgconfig(jack)
BuildRequires:  pkgconfig(libavcodec) >= 59.37.100
BuildRequires:  pkgconfig(libavdevice) >= 59.0.
BuildRequires:  pkgconfig(libavformat) >= 59.0.0
BuildRequires:  pkgconfig(libavutil) >= 59.0.0
BuildRequires:  pkgconfig(libpipewire-0.3)
BuildRequires:  pkgconfig(libpulse-simple)
BuildRequires:  pkgconfig(libswscale) >= 7.0.0
BuildRequires:  pkgconfig(libv4l2)
BuildRequires:  pkgconfig(libvlc)
BuildRequires:  pkgconfig(qimageblitz5)
#Requires:       akvcam
Requires:       frei0r-plugins
Requires:       frei0r-plugins-opencv
#Requires:       v4l2loopback-kmp
#Requires:       v4l2loopback-utils
Provides:       plasmoid-webcamoid = %{version}
Obsoletes:      plasmoid-webcamoid < %{version}
%endif


%description
Webcam plasmoid for KDE desktop environment.

Features:
* Take pictures with the webcam.
* Record videos.
* Manages multiple webcams.
* Play/Stop capture, this saves resources while the plasmoid is not in use.
* Written in C++.
* 100% Qt based software, for KDE/Qt purists.
* Custom controls for each webcam.
* Popup applet support (you can embed Webcamoid in the panel).
* Add funny effects to the webcam (requires Frei0r plugins and QImageBlitz).
* +50 effects available.
* Effects with live previews.
* Translated to many languages.
* Stand alone installation mode (use it as a normal program).
* Use custom network and local files as capture devices.
* Capture from desktop.

%package devel
Summary:        Development headers and libraries for Webcamoid
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}

%description devel
Development headers and libraries for Webcamoid.
Avkys library provides a wide range of plugins for audio and
video playing, recording, capture, and processing.

%prep
%setup -q -n webcamoid-%{version}

%build
%cmake
%cmake_build
# generate help file
Markdown.pl --html4 ../README.md > ../README.html

%install
%cmake_install

%if %{is_leap}
%{kf5_post_install}
%endif

%fdupes %{buildroot}%{_datadir}

%if %{is_leap}
desktop-file-edit %{buildroot}%{_kf5_applicationsdir}/webcamoid.desktop --remove-category=KDE --add-category=Video --add-category=Player
# move man - because in wrong dir
install -d 0755 %{buildroot}%{_kf5_mandir}/en/man1
mv %{buildroot}%{_mandir}/man1/webcamoid.1.gz %{buildroot}%{_kf5_mandir}/en/man1/webcamoid.1.gz
%else
desktop-file-edit %{buildroot}%{_kf6_applicationsdir}/webcamoid.desktop --remove-category=KDE --add-category=Video --add-category=Player
# move man - because in wrong dir
install -d 0755 %{buildroot}%{_kf6_mandir}/en/man1
mv %{buildroot}%{_mandir}/man1/webcamoid.1.gz %{buildroot}%{_kf6_mandir}/en/man1/webcamoid.1.gz
%endif

rm -rf %{buildroot}%{_datadir}/licenses/
rm -rf %{buildroot}%{_datadir}/doc/

%post
/sbin/ldconfig
%icon_theme_cache_post
%desktop_database_post

%postun
/sbin/ldconfig
%icon_theme_cache_postun
%desktop_database_postun

%files
%doc AUTHORS ChangeLog README.html THANKS
%license COPYING

%if %{is_leap}
%{_bindir}/webcamoid
%{_kf5_applicationsdir}/webcamoid.desktop
%{_kf5_appstreamdir}/io.github.webcamoid.Webcamoid.metainfo.xml
%{_kf5_mandir}/en/man1/webcamoid.1.gz
%{_kf5_iconsdir}/hicolor
%{_libdir}/libavkys.so.*
%{_libdir}/avkys
%{_libdir}/avkys/*.so
%else
%{_bindir}/webcamoid
%{_kf6_applicationsdir}/webcamoid.desktop
%{_kf6_appstreamdir}/io.github.webcamoid.Webcamoid.metainfo.xml
%{_kf6_mandir}/en/man1/webcamoid.1.gz
%{_kf6_iconsdir}/hicolor
%{_libdir}/libavkys.so.*
%dir %{_libdir}/qt
%dir %{_libdir}/qt/plugins
%{_libdir}/qt/plugins/avkys
%{_libdir}/qt/plugins/avkys/*.so
%endif

%files devel
%{_libdir}/libavkys.so

%changelog
openSUSE Build Service is sponsored by