Name: termpaint Version: 0.3.1 Release: 0~dev1%{?dist} Summary: Library for low level terminal access License: BSL-1.0 URL: https://github.com/termpaint/termpaint/ Source0: https://github.com/termpaint/termpaint/releases/download/%{version}/termpaint-%{version}.tar.gz # cherry picked from upstream -- termpaintx_ttyrescue: Fix compiler error on Fedora 44. Patch0: https://github.com/termpaint/termpaint/commit/6164fb5ff17fd3d05bf44e942539082aa71a2ff3.patch BuildRequires: meson BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: pkgconfig BuildRequires: pkgconfig(catch2) < 3.0 BuildRequires: pkgconfig(fmt) BuildRequires: pkgconfig(docopt) BuildRequires: picojson-static BuildRequires: python3-sphinx BuildRequires: valgrind-devel %global __provides_exclude ^(libtermpaint\\.so\\.0a\\(TERMPAINT_PRIVATE\\)(\\(64bit\\))?)$ %description Termpaint is a low level terminal interface library for character-cell terminals in the tradition of VT1xx (like xterm, etc). It’s designed to be portable and flexible to integrate. It covers event handling and rendering. %package devel Summary: Library for low level terminal access - Development Files Requires: %{name}%{?_isa} = %{version}-%{release} Suggests: libtermpaint0a-doc = %{version}-%{release} %description devel Termpaint is a low level terminal interface library for character-cell terminals in the tradition of VT1xx (like xterm, etc). It’s designed to be portable and flexible to integrate. It covers event handling and rendering. %package doc Summary: Library for low level terminal access - Developer documentation BuildArch: noarch %description doc Termpaint is a low level terminal interface library for character-cell terminals in the tradition of VT1xx (like xterm, etc). It’s designed to be portable and flexible to integrate. It covers event handling and rendering. %prep %autosetup rm -rf third-party/ # upstream currently does not support using system valgrind.h / memcheck.h, but sed is easy sed -i -e "s#third-party/valgrind/memcheck.h#valgrind/memcheck.h#" termpaintx_ttyrescue.c %build %meson \ -Dttyrescue-fexec-blob=false \ -Dttyrescue-path=%{_libdir}/termpaint0a/ \ -Dttyrescue-install=true \ -Dtools-path=%{_libdir}/termpaint0a/ \ -Dsystem-catch2=enabled \ -Dsystem-fmt=enabled \ -Dsystem-docopt=enabled \ -Dsystem-picojson=enabled \ %{nil} %meson_build pushd doc python3 -m sphinx -b html . _build/html -a rm _build/html/.buildinfo rm -r _build/html/.doctrees popd %install %meson_install %check %meson_test %files %license COPYING %dir %{_libdir}/termpaint0a %{_libdir}/libtermpaint.so.0a %{_libdir}/libtermpaint_image.so.0a # ttyrescue is needed for simple signal safe terminal crash recovery %{_libdir}/termpaint0a/ttyrescue # small helpers for diagnostics %{_libdir}/termpaint0a/inputevents %{_libdir}/termpaint0a/detect %files devel %{_includedir}/termpaint.h %{_includedir}/termpaint_event.h %{_includedir}/termpaint_input.h %{_includedir}/termpaint_image.h %{_includedir}/termpaintx.h %{_includedir}/termpaintx_ttyrescue.h %{_libdir}/libtermpaint.so %{_libdir}/libtermpaint_image.so %{_libdir}/pkgconfig/termpaint.pc %{_libdir}/pkgconfig/termpaint_image.pc %files doc %doc README.md %doc doc/_build/html %license COPYING %changelog * Fri Sep 11 2026 Martin Hostettler - 0.3.1 * Initial packaging for fedora