File simplescreenrecorder.spec of Package simplescreenrecorder
#
# spec file for package simplescreenrecorder
#
# copyright (c) 2025 munix9@googlemail.com
#
%ifarch %{ix86} x86_64
%bcond_without glinject
%else
%bcond_with glinject
%endif
Name: simplescreenrecorder
Version: 0.4.4
Release: 0
Summary: A feature-rich screen recorder that supports X11 and OpenGL
License: GPL-3.0-or-later
URL: https://www.maartenbaert.be/simplescreenrecorder/
Source0: %{name}-%{version}.tar.gz
Source99: baselibs.conf
BuildRequires: AppStream
BuildRequires: cmake
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: qt6-tools-linguist
BuildRequires: cmake(Qt6Core) >= 6.2
BuildRequires: cmake(Qt6Gui)
BuildRequires: cmake(Qt6Linguist)
BuildRequires: cmake(Qt6Widgets)
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libavcodec) >= 53
BuildRequires: pkgconfig(libavformat) >= 53
BuildRequires: pkgconfig(libavutil) >= 51
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpipewire-0.3)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libswscale) >= 2
BuildRequires: pkgconfig(libv4l2)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
%if %{with glinject}
# OpenGL apps:
Recommends: libssr-glinject = %{version}
%if "%{_lib}" == "lib64"
# 32bit OpenGL apps at 64bit system:
Suggests: libssr-glinject-32bit
%endif
%endif
%description
SimpleScreenRecorder is a Linux program that was created to record programs
and games.
The original goal was to create a program that was just really simple to
use, the result is actually a pretty powerful program. It's 'simple' in
the sense that it's easier to use than ffmpeg/avconv or VLC, because it
has a straightforward user interface.
%if %{with glinject}
%package -n libssr-glinject
Summary: Simple Screen Recorder OpenGL plugin
Requires: %{name} = %{version}
%description -n libssr-glinject
This package provides nice OpenGL apps screencasting support
for Simple Screen Recorder. At 64bit system you may also
install libssr-glinject-32bit for 32bit OpenGL apps support.
%endif
%prep
%autosetup -p1
%build
%define __builder ninja
%cmake \
-DWITH_QT6=TRUE \
-DWITH_GLINJECT=%{?with_glinject:TRUE}%{!?with_glinject:FALSE}
%cmake_build
%install
%cmake_install
%fdupes -s %{buildroot}%{_datadir}/icons/hicolor
%check
desktop-file-validate \
%{buildroot}%{_datadir}/applications/be.maartenbaert.%{name}.desktop
appstreamcli validate --no-net \
%{buildroot}%{_datadir}/metainfo/be.maartenbaert.%{name}.metainfo.xml
%files
%doc *.txt *.md data/resources/about.htm
%license COPYING
%{_bindir}/%{name}
%{_bindir}/ssr-glinject
%{_datadir}/applications/be.maartenbaert.%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}*.{png,svg}
%{_datadir}/metainfo/be.maartenbaert.%{name}.metainfo.xml
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/output-profiles
%{_datadir}/%{name}/translations
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_mandir}/man1/ssr-glinject.1%{?ext_man}
%if %{with glinject}
%files -n libssr-glinject
%{_libdir}/libssr-glinject.so
%endif
%changelog