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