From 526f1ef160bca2f0f56fe597baa8e0f9ee4adc25 Mon Sep 17 00:00:00 2001 From: madomado Date: Fri, 25 Oct 2024 23:08:09 +0800 Subject: [PATCH] add: kmod-v4l2loopback (#2288) --- anda/fusion/kmod-v4l2loopback/anda.hcl | 5 + .../kmod-v4l2loopback/kmod-v4l2loopback.spec | 129 ++++++++++++++++++ anda/fusion/kmod-v4l2loopback/update.rhai | 1 + .../kmod-v4l2loopback/v4l2loopback-kmod.spec | 125 +++++++++++++++++ 4 files changed, 260 insertions(+) create mode 100644 anda/fusion/kmod-v4l2loopback/anda.hcl create mode 100644 anda/fusion/kmod-v4l2loopback/kmod-v4l2loopback.spec create mode 100644 anda/fusion/kmod-v4l2loopback/update.rhai create mode 100644 anda/fusion/kmod-v4l2loopback/v4l2loopback-kmod.spec diff --git a/anda/fusion/kmod-v4l2loopback/anda.hcl b/anda/fusion/kmod-v4l2loopback/anda.hcl new file mode 100644 index 0000000000..e5fb6fbc2b --- /dev/null +++ b/anda/fusion/kmod-v4l2loopback/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "kmod-v4l2loopback.spec" + } +} diff --git a/anda/fusion/kmod-v4l2loopback/kmod-v4l2loopback.spec b/anda/fusion/kmod-v4l2loopback/kmod-v4l2loopback.spec new file mode 100644 index 0000000000..6e1ba0821d --- /dev/null +++ b/anda/fusion/kmod-v4l2loopback/kmod-v4l2loopback.spec @@ -0,0 +1,129 @@ +# https://github.com/rpmfusion/v4l2loopback-kmod/blob/master/v4l2loopback-kmod.spec +%if 0%{?fedora} +%global buildforkernels akmod +%endif +%if 0%{?el9} +# kmod fails on rhel9 kernel with aarch64 - just build an akmod there +%ifarch aarch64 +%global buildforkernels akmod +%endif +%endif +%global debug_package %{nil} + +%global commit 2c9b67072b15d903fecde67c7f269abeafee4c25 +%global commitdate 20230503 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global prjname v4l2loopback + +Name: %{prjname}-kmod +Summary: Kernel module (kmod) for %{prjname} +Version: 0.13.2 +Release: 1%{?dist} +License: GPLv2+ + +URL: https://github.com/umlaeute/v4l2loopback +Source0: %{url}/archive/v%{version}/%{prjname}-%{version}.tar.gz +Source1: v4l2loopback-kmod.spec + +BuildRequires: gcc +BuildRequires: elfutils-libelf-devel +BuildRequires: kmodtool +%dnl %{!?kernels:BuildRequires: buildsys-build-rpmfusion-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu} } + +# kmodtool does its magic here +%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{prjname} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +This module allows you to create "virtual video devices". Normal (v4l2) +applications will read these devices as if they were ordinary video +devices, but the video will not be read from e.g. a capture card but +instead it is generated by another application. + +This package contains the kmod module for %{prjname}. + + +%prep +# HACK: put that spec into the specdir +cp %SOURCE1 %_specdir/ +# error out if there was something wrong with kmodtool +%{?kmodtool_check} + +# print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo terra --kmodname %{prjname} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c +(cd v4l2loopback-%{version} +#patch -P 0 -p1 +) + +for kernel_version in %{?kernel_versions} ; do + cp -a v4l2loopback-%{version} _kmod_build_${kernel_version%%___*} +done + + +%build +for kernel_version in %{?kernel_versions} ; do + make V=1 %{?_smp_mflags} -C ${kernel_version##*___} M=${PWD}/_kmod_build_${kernel_version%%___*} modules +done + + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/v4l2loopback.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/*.ko +done +%{?akmod_install} + + +%changelog +* Fri Sep 27 2024 Nicolas Chauvet - 0.13.2-1 +- Update to 0.13.2 + +* Fri Aug 02 2024 RPM Fusion Release Engineering - 0.13.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Mar 21 2024 Leigh Scott - 0.13.1-1 +- Update to 0.13.1 + +* Sun Feb 04 2024 RPM Fusion Release Engineering - 0.12.7^20230503g2c9b670-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Nov 24 2023 Nicolas Chauvet - 0.12.7^20230503g2c9b670-3 +- Rebuilt + +* Wed Aug 02 2023 RPM Fusion Release Engineering - 0.12.7^20230503g2c9b670-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue May 09 2023 Kate Hsuan - 0.12.7-20230503g2c9b670-1 +- Updated to commit 2c9b67072b15d903fecde67c7f269abeafee4c25 +- The patch is used to prevent the value of byteused field becomes too large + +* Thu Mar 02 2023 Kate Hsuan - 0.12.7-20230220ga669686-1 +- Updated to commit a66968647843f57448b59cf98d0318f1e98e072c + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 0.12.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Fri Aug 05 2022 Leigh Scott - 0.12.7-1 +- Update to 0.12.7 + +* Wed Feb 09 2022 RPM Fusion Release Engineering - 0.12.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Aug 03 2021 RPM Fusion Release Engineering - 0.12.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 08 2021 Nicolas Chauvet - 0.12.5-4 +- rebuilt + +* Tue Feb 23 2021 Nicolas Chauvet - 0.12.5-3 +- Bump spec + +* Mon Feb 15 2021 Nicolas Chauvet - 0.12.5-2 +- Rework spec file + +* Sat Dec 26 2020 Neal Gompa - 0.12.5-1 +- Initial packaging diff --git a/anda/fusion/kmod-v4l2loopback/update.rhai b/anda/fusion/kmod-v4l2loopback/update.rhai new file mode 100644 index 0000000000..fd9dec4b15 --- /dev/null +++ b/anda/fusion/kmod-v4l2loopback/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("umlaeute/v4l2loopback")); diff --git a/anda/fusion/kmod-v4l2loopback/v4l2loopback-kmod.spec b/anda/fusion/kmod-v4l2loopback/v4l2loopback-kmod.spec new file mode 100644 index 0000000000..5679296943 --- /dev/null +++ b/anda/fusion/kmod-v4l2loopback/v4l2loopback-kmod.spec @@ -0,0 +1,125 @@ +%if 0%{?fedora} +%global buildforkernels akmod +%endif +%if 0%{?el9} +# kmod fails on rhel9 kernel with aarch64 - just build an akmod there +%ifarch aarch64 +%global buildforkernels akmod +%endif +%endif +%global debug_package %{nil} + +%global commit 2c9b67072b15d903fecde67c7f269abeafee4c25 +%global commitdate 20230503 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global prjname v4l2loopback + +Name: %{prjname}-kmod +Summary: Kernel module (kmod) for %{prjname} +Version: 0.13.2 +Release: 1%{?dist} +License: GPLv2+ + +URL: https://github.com/umlaeute/v4l2loopback +Source0: %{url}/archive/v%{version}/%{prjname}-%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: elfutils-libelf-devel +BuildRequires: kmodtool +%{!?kernels:BuildRequires: buildsys-build-rpmfusion-kerneldevpkgs-%{?buildforkernels:%{buildforkernels}}%{!?buildforkernels:current}-%{_target_cpu} } + +# kmodtool does its magic here +%{expand:%(kmodtool --target %{_target_cpu} --repo rpmfusion --kmodname %{prjname} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +This module allows you to create "virtual video devices". Normal (v4l2) +applications will read these devices as if they were ordinary video +devices, but the video will not be read from e.g. a capture card but +instead it is generated by another application. + +This package contains the kmod module for %{prjname}. + + +%prep +# error out if there was something wrong with kmodtool +%{?kmodtool_check} + +# print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo rpmfusion --kmodname %{prjname} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c +(cd v4l2loopback-%{version} +#patch -P 0 -p1 +) + +for kernel_version in %{?kernel_versions} ; do + cp -a v4l2loopback-%{version} _kmod_build_${kernel_version%%___*} +done + + +%build +for kernel_version in %{?kernel_versions} ; do + make V=1 %{?_smp_mflags} -C ${kernel_version##*___} M=${PWD}/_kmod_build_${kernel_version%%___*} modules +done + + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 _kmod_build_${kernel_version%%___*}/v4l2loopback.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/*.ko +done +%{?akmod_install} + + +%changelog +* Fri Sep 27 2024 Nicolas Chauvet - 0.13.2-1 +- Update to 0.13.2 + +* Fri Aug 02 2024 RPM Fusion Release Engineering - 0.13.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Mar 21 2024 Leigh Scott - 0.13.1-1 +- Update to 0.13.1 + +* Sun Feb 04 2024 RPM Fusion Release Engineering - 0.12.7^20230503g2c9b670-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Nov 24 2023 Nicolas Chauvet - 0.12.7^20230503g2c9b670-3 +- Rebuilt + +* Wed Aug 02 2023 RPM Fusion Release Engineering - 0.12.7^20230503g2c9b670-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue May 09 2023 Kate Hsuan - 0.12.7-20230503g2c9b670-1 +- Updated to commit 2c9b67072b15d903fecde67c7f269abeafee4c25 +- The patch is used to prevent the value of byteused field becomes too large + +* Thu Mar 02 2023 Kate Hsuan - 0.12.7-20230220ga669686-1 +- Updated to commit a66968647843f57448b59cf98d0318f1e98e072c + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 0.12.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Fri Aug 05 2022 Leigh Scott - 0.12.7-1 +- Update to 0.12.7 + +* Wed Feb 09 2022 RPM Fusion Release Engineering - 0.12.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Aug 03 2021 RPM Fusion Release Engineering - 0.12.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 08 2021 Nicolas Chauvet - 0.12.5-4 +- rebuilt + +* Tue Feb 23 2021 Nicolas Chauvet - 0.12.5-3 +- Bump spec + +* Mon Feb 15 2021 Nicolas Chauvet - 0.12.5-2 +- Rework spec file + +* Sat Dec 26 2020 Neal Gompa - 0.12.5-1 +- Initial packaging