diff --git a/.gitignore b/.gitignore index 7553d11..517a3c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /v4l-utils-*.tar.bz2 +/v4l-utils-*.tar.xz diff --git a/0001-utils-v4l2-TPG-Update-use-of-typeof.patch b/0001-utils-v4l2-TPG-Update-use-of-typeof.patch deleted file mode 100644 index e6b61d3..0000000 --- a/0001-utils-v4l2-TPG-Update-use-of-typeof.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 9f799271e5e92cb84cbce002896ce7c25dad4fd8 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 27 Dec 2021 15:25:21 +0000 -Subject: [PATCH] utils: v4l2 TPG: Update use of typeof - -It seems the way to use typeof with newer gcc's is by using -__typeof__ - -Signed-off-by: Peter Robinson ---- - utils/common/v4l2-tpg.h | 6 +++--- - utils/common/v4l2-tpg.patch | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/utils/common/v4l2-tpg.h b/utils/common/v4l2-tpg.h -index ecdb6eba..ba351c28 100644 ---- a/utils/common/v4l2-tpg.h -+++ b/utils/common/v4l2-tpg.h -@@ -46,9 +46,9 @@ static inline void *vzalloc(unsigned long size) - } - - #define clamp(val, min, max) ({ \ -- typeof(val) __val = (val); \ -- typeof(min) __min = (min); \ -- typeof(max) __max = (max); \ -+ __typeof__(val) __val = (val); \ -+ __typeof__(min) __min = (min); \ -+ __typeof__(max) __max = (max); \ - (void) (&__val == &__min); \ - (void) (&__val == &__max); \ - __val = __val < __min ? __min: __val; \ -diff --git a/utils/common/v4l2-tpg.patch b/utils/common/v4l2-tpg.patch -index 2381ebd9..d7edc1f3 100644 ---- a/utils/common/v4l2-tpg.patch -+++ b/utils/common/v4l2-tpg.patch -@@ -214,9 +214,9 @@ index 0b0ddb87..91da74ec 100644 - +} - + - +#define clamp(val, min, max) ({ \ --+ typeof(val) __val = (val); \ --+ typeof(min) __min = (min); \ --+ typeof(max) __max = (max); \ -++ __typeof__(val) __val = (val); \ -++ __typeof__(min) __min = (min); \ -++ __typeof__(max) __max = (max); \ - + (void) (&__val == &__min); \ - + (void) (&__val == &__max); \ - + __val = __val < __min ? __min: __val; \ --- -2.33.1 - diff --git a/sbin-location.diff b/sbin-location.diff new file mode 100644 index 0000000..2030a8e --- /dev/null +++ b/sbin-location.diff @@ -0,0 +1,13 @@ +diff --git v4l-utils-1.26.1/utils/v4l2-dbg/meson.build~ v4l-utils-1.26.1/utils/v4l2-dbg/meson.build +index c23bf8f351..bfbc10c616 100644 +--- v4l-utils-1.26.1/utils/v4l2-dbg/meson.build~ ++++ v4l-utils-1.26.1/utils/v4l2-dbg/meson.build +@@ -13,7 +13,7 @@ v4l2_dbg_sources = files( + v4l2_dbg = executable('v4l2-dbg', + v4l2_dbg_sources, + install : true, +- install_dir : 'sbin', ++ install_dir : get_option('sbindir'), + include_directories : [ + v4l2_utils_incdir, + utils_common_incdir, diff --git a/sources b/sources index 5639e3a..4efc8c2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (v4l-utils-1.22.1.tar.bz2) = 8a634d8995d13f453dfaf90ca5d0dfb26f2f4b10a0d200d76a949c46f77040d12fc0a5b35e05d7b1ba68bcfc85a445be5a5ab1d4a7d4eabfe3a254038ccc6170 +SHA512 (v4l-utils-1.32.0.tar.xz) = 5bf24c28ec66a7ac1a0c9ee976521d825d4c2f8abbbeb59c7ac55e89db10dde6ebb643d238d217d636d79fda363244558fee1effe8c5e8c573c1a3e957fe391f diff --git a/v4l-utils.spec b/v4l-utils.spec index 9ce2401..0cbadaa 100644 --- a/v4l-utils.spec +++ b/v4l-utils.spec @@ -1,65 +1,67 @@ +%bcond qt %[%{undefined rhel} || 0%{?rhel} < 10] + +# Currently broken without DVB due to a bunch of random bits +# being built/installed even though they're DVB specific +%define with_dvb 1 + Name: v4l-utils -Version: 1.22.1 -Release: 1%{?dist} +Version: 1.32.0 +Release: 4%{?dist} Summary: Utilities for video4linux and DVB devices -# libdvbv5, dvbv5 utils, ir-keytable and v4l2-sysfs-path are GPLv2 only -License: GPLv2+ and GPLv2 +# libdvbv5, dvbv5 utils, ir-keytable are GPL-2.0-only +# e.g. utils/cec-follower/cec-follower.cpp is (GPL-2.0-only OR BSD-3-Clause) +# utils/qvidcap/capture.cpp, paint.cpp are LicenseRef-Fedora-Public-Domain +# utils/v4l2-sysfs-path/v4l2-sysfs-path.c is HPND-sell-variant +License: GPL-2.0-or-later AND GPL-2.0-only AND (GPL-2.0-only OR BSD-3-Clause) AND LicenseRef-Fedora-Public-Domain AND HPND-sell-variant URL: http://www.linuxtv.org/downloads/v4l-utils/ -Source0: http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar.bz2 -Patch0: 0001-utils-v4l2-TPG-Update-use-of-typeof.patch +Source0: %{url}/v4l-utils-%{version}.tar.xz +# TODO: submit upstream +Patch0: sbin-location.diff BuildRequires: alsa-lib-devel -BuildRequires: desktop-file-utils -BuildRequires: doxygen BuildRequires: gettext +BuildRequires: json-c-devel BuildRequires: kernel-headers BuildRequires: libjpeg-devel -BuildRequires: make +BuildRequires: meson >= 0.56 +BuildRequires: perl-interpreter +%if %{with qt} +BuildRequires: desktop-file-utils +%if 0%{?fedora} < 41 || 0%{?rhel} BuildRequires: qt5-qtbase-devel -BuildRequires: systemd-devel - -# BPF decoder dependencies -%define with_bpf 1 - -%if %{with_bpf} -BuildRequires: elfutils-libelf-devel clang +%else +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qt5compat-devel %endif +%endif +BuildRequires: systemd-devel +# For /usr/share/pkgconfig/udev.pc +BuildRequires: systemd +# BPF decoder dependencies +BuildRequires: clang +BuildRequires: elfutils-libelf-devel +BuildRequires: libbpf-devel # For /lib/udev/rules.d ownership Requires: systemd-udev Requires: libv4l%{?_isa} = %{version}-%{release} +Provides: edid-decode = %{version}-%{release} +Obsoletes: edid-decode < 1 + %description -v4l-utils is a collection of various video4linux (V4L) and DVB utilities. The -main v4l-utils package contains cx18-ctl, ir-keytable, ivtv-ctl, v4l2-ctl and -v4l2-sysfs-path. - - -%package devel-tools -Summary: Utilities for v4l2 / DVB driver development and debugging -# decode_tm6000 is GPLv2 only -License: GPLv2+ and GPLv2 -Requires: libv4l%{?_isa} = %{version}-%{release} - -%description devel-tools -Utilities for v4l2 / DVB driver authors: decode_tm6000, v4l2-compliance and -v4l2-dbg. - - -%package -n qv4l2 -Summary: QT v4l2 test control and streaming test application -License: GPLv2+ -Requires: libv4l%{?_isa} = %{version}-%{release} - -%description -n qv4l2 -QT v4l2 test control and streaming test application. +v4l-utils is a collection of various video4linux (V4L), RC core and DVB +utilities. The main v4l-utils package contains cx18-ctl, ivtv-ctl, v4l2-ctl +and v4l2-sysfs-path. %package -n libv4l Summary: Collection of video4linux support libraries -# Some of the decompression helpers are GPLv2, the rest is LGPLv2+ -License: LGPLv2+ and GPLv2 +# Some of the decompression helpers are GPL-2.0-or-later, the rest is LGPL-2.1-or-later +# lib/libv4lconvert/jidctflt.c and jpeg_memsrcdest.c are IJG-short +# lib/libv4lconvert/helper-funcs.h and libv4lsyscall-priv.h are BSD-2-Clause +License: LGPL-2.1-or-later AND GPL-2.0-or-later AND IJG-short AND BSD-2-Clause URL: http://hansdegoede.livejournal.com/3636.html %description -n libv4l @@ -80,17 +82,9 @@ libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the application transparent libv4lconvert conversion where necessary. -%package -n libdvbv5 -Summary: Libraries to control, scan and zap on Digital TV channels -License: GPLv2 - -%description -n libdvbv5 -Libraries to control, scan and zap on Digital TV channels - - %package -n libv4l-devel Summary: Development files for libv4l -License: LGPLv2+ +License: LGPL-2.1-or-later AND GPL-2.0-or-later AND IJG-short AND BSD-2-Clause URL: http://hansdegoede.livejournal.com/3636.html Requires: libv4l%{?_isa} = %{version}-%{release} @@ -99,9 +93,50 @@ The libv4l-devel package contains libraries and header files for developing applications that use libv4l. +%package devel-tools +Summary: Utilities for v4l2 / DVB driver development and debugging +License: GPL-2.0-or-later AND GPL-2.0-only +Requires: libv4l%{?_isa} = %{version}-%{release} + +%description devel-tools +Utilities for v4l2 driver authors: v4l2-compliance and +v4l2-dbg. + + +%if %{with qt} +%package -n qv4l2 +Summary: QT v4l2 test control and streaming test application +# utils/qv4l2/qv4l2.svg is CC-BY-SA-3.0 +License: GPL-2.0-or-later AND CC-BY-SA-3.0 +Requires: libv4l%{?_isa} = %{version}-%{release} + +%description -n qv4l2 +QT v4l2 test control and streaming test application. +%endif + + +%if %{with dvb} +%package -n libdvbv5 +Summary: Libraries to control, scan and zap on Digital TV channels +# /lib/include/libdvbv5/dvb-frontend.h is LGPL-2.1-or-later WITH Linux-syscall-note +License: LGPL-2.1-or-later AND LGPL-2.1-or-later WITH Linux-syscall-note + +%description -n libdvbv5 +Libraries to control, scan and zap on Digital TV channels + + +%package -n libdvbv5-gconv +Summary: Gconv files with the charsets For Digital TV. +License: LGPL-2.1-or-later + +%description -n libdvbv5-gconv +Some digital TV standards define their own charsets. Add library +support for them: EN 300 468 and ARIB STD-B24 + + %package -n libdvbv5-devel Summary: Development files for libdvbv5 -License: GPLv2 +License: LGPL-2.1-or-later AND LGPL-2.1-or-later WITH Linux-syscall-note Requires: libdvbv5%{?_isa} = %{version}-%{release} %description -n libdvbv5-devel @@ -109,27 +144,52 @@ The libdvbv5-devel package contains libraries and header files for developing applications that use libdvbv5. +%package -n dvb-tools +Summary: Utilities for DVB driver +License: GPL-2.0-or-later AND GPL-2.0-only +Requires: libdvbv5%{?_isa} = %{version}-%{release} +Requires: libv4l%{?_isa} = %{version}-%{release} +Requires: v4l-utils%{?_isa} = %{version}-%{release} + +%description -n dvb-tools +Utilities and tools for DVB receivers. +%endif + +%package -n rc-tools +Summary: Utilities for RC core +License: GPL-2.0-or-later AND GPL-2.0-only +Requires: v4l-utils%{?_isa} = %{version}-%{release} + +%description -n rc-tools +Utilities for Infrared receivers and transmitters using RC core. + + %prep %autosetup -p1 %build -export CXXFLAGS="-std=c++14 $RPM_OPT_FLAGS" -%configure --disable-static --enable-libdvbv5 --enable-doxygen-man -# Don't use rpath! -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -%make_build -make doxygen-run +%meson -Dbpf=auto \ + -Ddoxygen-doc=disabled -Ddoxygen-man=false -Ddoxygen-html=false \ + %{!?with_dvb:-Dlibdvbv5=disabled} \ + %{!?with_qt:-Dqv4l2=disabled -Dqvidcap=disabled} +%meson_build %install -%make_install +%meson_install + find $RPM_BUILD_ROOT -name '*.la' -delete +# Driver removed from upstream +rm -f $RPM_BUILD_ROOT%{_bindir}/decode_tm6000 rm -f $RPM_BUILD_ROOT%{_libdir}/{v4l1compat.so,v4l2convert.so} -mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3/ -cp -arv %{_builddir}/%{name}-%{version}/doxygen-doc/man/man3 $RPM_BUILD_ROOT%{_mandir}/ -rm $RPM_BUILD_ROOT%{_mandir}/man3/_*3 +mkdir $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.d +mv $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.d/libdvbv5.conf + +%if %{with qt} desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qv4l2.desktop +desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qvidcap.desktop +%endif + %find_lang %{name} %find_lang libdvbv5 @@ -139,35 +199,48 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qv4l2.desktop %ldconfig_scriptlets -n libdvbv5 %files -f %{name}.lang -%doc README -%dir %{_sysconfdir}/rc_keymaps -%config(noreplace) %{_sysconfdir}/rc_maps.cfg -%{_udevrulesdir}/70-infrared.rules -%{_udevrulesdir}/../rc_keymaps/* -%{_bindir}/cx18-ctl -%{_bindir}/cec* -%{_bindir}/dvb* -%{_bindir}/ir-ctl -%{_bindir}/ir-keytable -%{_bindir}/ivtv-ctl +%doc README.md +%{_bindir}/cec-ctl +%{_bindir}/cec-follower +%{_bindir}/edid-decode %{_bindir}/media-ctl %{_bindir}/rds-ctl %{_bindir}/v4l2-ctl %{_bindir}/v4l2-sysfs-path -%{_mandir}/man1/*.1* -%{_mandir}/man5/*.5* -%exclude %{_mandir}/man1/qv4l2.1* +%{_bindir}/v4l2-tracer +%{_mandir}/man1/cec-ctl*.1* +%{_mandir}/man1/cec-follower*.1* +%{_mandir}/man1/edid-decode*.1* +%{_mandir}/man1/v4l*.1* %exclude %{_mandir}/man1/v4l2-compliance.1* %files devel-tools -%doc README -%{_bindir}/decode_tm6000 +%doc README.md +%{_bindir}/cec-compliance %{_bindir}/v4l2-compliance +%{_mandir}/man1/cec-compliance.1* %{_mandir}/man1/v4l2-compliance.1* %{_sbindir}/v4l2-dbg +%files -n libv4l +%license COPYING.libv4l COPYING +%doc README.libv4l +%dir %{_libdir}/libv4l +%{_libdir}/libv4l/v4l* +%{_libdir}/libv4l/plugins +%{_libdir}/libv4l*.so.* + +%files -n libv4l-devel +%doc README.lib-multi-threading ChangeLog TODO +%{_includedir}/libv4l*.h +%{_libdir}/libv4l*.so +%{_libdir}/libv4l/ov* +%{_libdir}/libv4l/libv4l2tracer.so +%{_libdir}/pkgconfig/libv4l*.pc + +%if %{with qt} %files -n qv4l2 -%doc README +%doc README.md %{_bindir}/qv4l2 %{_bindir}/qvidcap %{_datadir}/applications/qv4l2.desktop @@ -176,32 +249,124 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qv4l2.desktop %{_datadir}/icons/hicolor/*/apps/qvidcap.* %{_mandir}/man1/qv4l2.1* %{_mandir}/man1/qvidcap.1* +%endif -%files -n libv4l -%doc ChangeLog README.libv4l TODO -%license COPYING.libv4l COPYING -%{_libdir}/libv4l -%{_libdir}/libv4l*.so.* - -%files -n libv4l-devel -%doc README.lib-multi-threading -%{_includedir}/libv4l*.h -%{_libdir}/libv4l*.so -%{_libdir}/pkgconfig/libv4l*.pc - +%if %{with dvb} %files -n libdvbv5 -f libdvbv5.lang -%doc ChangeLog lib/libdvbv5/README -%license COPYING +%license COPYING.libdvbv5 COPYING +%doc lib/libdvbv5/README %{_libdir}/libdvbv5*.so.* +%files -n libdvbv5-gconv +%{_libdir}/gconv/*.so +%{_libdir}/gconv/gconv-modules.d/libdvbv5.conf + %files -n libdvbv5-devel %{_includedir}/libdvbv5/*.h %{_libdir}/libdvbv5*.so %{_libdir}/pkgconfig/libdvbv5*.pc -%{_mandir}/man3/*.3* + +%files -n dvb-tools +%{_bindir}/cx18-ctl +%{_bindir}/dvb* +%{_bindir}/ivtv-ctl +%{_mandir}/man1/dvb*.1* + +%files -n rc-tools +%dir %{_sysconfdir}/rc_keymaps +%config(noreplace) %{_sysconfdir}/rc_maps.cfg +%{_udevrulesdir}/70-infrared.rules +%{_udevrulesdir}/../rc_keymaps/* +%{_bindir}/ir-ctl +%{_bindir}/ir-keytable +%{_mandir}/man1/ir*.1* +%{_mandir}/man5/rc_keymap*.5* + +%endif %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 1.32.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jan 17 2026 Fedora Release Engineering - 1.32.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Tue Jan 13 2026 Yaakov Selkowitz - 1.32.0-2 +- Disable doxygen manpages + +* Mon Oct 06 2025 Peter Robinson - 1.32.0-1 +- Update to 1.32.0 + +* Fri Jul 25 2025 Fedora Release Engineering - 1.30.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jun 7 2025 Sean Young - 1.30.1-3 +- Move rc-tools into separate package so they can be replaced with new tools in the future. + +* Fri May 02 2025 Peter Robinson - 1.30.1-2 +- Fix obsolete of edid-decode + +* Thu May 1 2025 Yanko Kaneti - 1.30.1-1 +- Update to 1.30.1 +- Provides and obsoletes edid-decode which has moved to v4l-utils upstream + +* Sun Jan 19 2025 Fedora Release Engineering - 1.28.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek - 1.28.1-2 +- Rebuilt for the bin-sbin merge (2nd attempt) + +* Thu Jul 25 2024 Peter Robinson - 1.28.1-1 +- Update to 1.28.1 +- Build f41+ with QT6 + +* Mon Jul 22 2024 Peter Robinson - 1.28.0-1 +- Update to 1.28.0 +- spec file cleanups, fixes, minor reorg + +* Sat Jul 20 2024 Fedora Release Engineering - 1.26.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek - 1.26.1-5 +- Rebuilt for the bin-sbin merge + +* Wed Apr 24 2024 Peter Robinson - 1.26.1-4 +- Fix location of gconv conflicts + +* Tue Apr 23 2024 Peter Robinson - 1.26.1-3 +- Split dvb tools to it's own sub package + +* Sat Jan 27 2024 Fedora Release Engineering - 1.26.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Dec 13 2023 Peter Robinson - 1.26.1-1 +- Update to 1.26.1 + +* Mon Dec 04 2023 Peter Robinson - 1.26.0-1 +- Update to 1.26.0 + +* Wed Aug 16 2023 Yaakov Selkowitz - 1.25.0-4 +- Disable qv4l2 in RHEL 10 builds + +* Sat Jul 22 2023 Fedora Release Engineering - 1.25.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Mar 20 2023 Mauro Carvalho Chehab 1.25.0-1 +- Updated to latest development branch + +* Sat Jan 21 2023 Fedora Release Engineering - 1.22.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sun Oct 23 2022 Hans de Goede - 1.22.1-4 +- Fix libv4lconvert issues when stride > width (with some formats) + +* Sat Jul 23 2022 Fedora Release Engineering - 1.22.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 1.22.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Dec 08 2021 Peter Robinson - 1.22.1-1 - Update to 1.22.1