Repository navigation
Releases
v1.0.6
v1.0.5
Added
- Added the
purgecommand for complete removal of resources managed by
v4l2loopback-managerfollowed by removal of the manager RPM through DNF. - Added explicit tracking of pending MOK certificate deletion during
uninstallandpurge. - Added final purge status reporting to distinguish a fully completed removal
from one that still requires manual MOK deletion confirmation after reboot.
Changed
uninstallnow also disables and removes the dynamically-created systemd
integration before removing locally managed v4l2loopback resources.uninstallcontinues to keep thev4l2loopback-managerRPM installed,
whilepurgeperforms resource cleanup and then removes the RPM.reinstallpreserves the existing systemd integration while reusing the
uninstall cleanup logic, avoiding unintended service removal during a
reinstall operation.purgeuses DNF without automatic confirmation so the user retains control
over the final RPM removal transaction.- MOK deletion remains explicitly asynchronous: when certificate deletion is
staged withmokutil, the manager reports that a manual reboot and
confirmation in the blue MOK Manager screen are still required. - RPM removal no longer attempts or recommends interactive cleanup from the
%preunscriptlet; interactive resource cleanup is handled by the manager
commands instead. - Direct
dnf remove v4l2loopback-managerremoves only the RPM-managed
manager files and intentionally preserves locally-created resources.
Fixed
- Fixed the package-removal workflow where
%preunrecommended running
v4l2loopback uninstallafter the DNF removal transaction had already
started and/usr/bin/v4l2loopbackwas about to be removed. - Fixed systemd integration being left behind when explicitly uninstalling
resources managed byv4l2loopback-manager. - Prevented
reinstallfrom unintentionally disabling an existing
v4l2loopback systemd integration. - Prevented
purgefrom reporting complete removal when MOK certificate
deletion is still pending confirmation during the next reboot.
Security
- MOK certificate deletion continues to require explicit user confirmation
and is never completed automatically by the RPM removal process. - Reboot after staging MOK certificate deletion remains explicitly manual.
v1.0.4
Added
- Added the
statuscommand to report the Fedora default boot kernel, Secure
Boot state, signing-key files, MOK enrollment, target-module presence,
module signer, and running-kernel module state. - Added explicit MOK enrollment verification before deciding whether a valid
signed module requires attention. - Added recovery guidance for BIOS/UEFI or firmware changes that can leave the
existing signing certificate unenrolled.
Changed
genkeynow preserves an existing complete signing key pair and reuses the
existing DER certificate when MOK enrollment must be restored.- MOK enrollment detection now handles Fedora/mokutil combinations where
mokutil --test-keycan printis already enrolledwhile still returning
exit status1. needs-rebuildnow distinguishes module validity from MOK trust: a module
that already exists and has the expected signer is not rebuilt merely
because its MOK enrollment is missing.rebuildnow avoids unnecessary compilation when the module is already
correctly signed and instead directs the user to re-enroll the existing
certificate when needed.- MOK recovery instructions now make the reboot step explicitly manual.
Fixed
- Fixed false
Signing certificate is NOT enrolledreports caused by relying
only on the exit status ofmokutil --test-key. - Avoided regenerating signing keys as a response to lost MOK enrollment.
v1.0.3
Added
- Added
CHANGELOG.mdto maintain a structured release history following
Keep a Changelog conventions. - Added
CONTRIBUTING.mdwith development requirements, contribution workflow,
testing guidelines, RPM validation, commit conventions, and security guidance. - Added
SECURITY.mddocumenting supported versions, private vulnerability
reporting, MOK private-key handling, privileged operations, and the project
security model. - Added GitHub Issue Forms for bug reports and feature requests.
- Added GitHub issue configuration with dedicated links for private security
reports and upstreamv4l2loopbackissues. - Added a Pull Request template with testing, packaging, documentation, and
security checklists. - Added a GitHub Actions ShellCheck workflow for Bash syntax validation and
static analysis. - Added a GitHub Actions RPM build workflow to validate the SPEC, build SRPM
and binary RPM packages, rebuild from the generated SRPM, and inspect the
resulting package. - Added RPM artifact validation for the installed manager path and packaged
documentation. - Added release-preparation tooling for synchronizing release information
betweenCHANGELOG.mdandv4l2loopback.spec. - Added automatic GitHub Release support based on version tags and
CHANGELOG.mdrelease entries. - Added
example.work-flow.mdas a example of a Work-Flow for future use.
Changed
- Expanded
README.mdinto the main project landing page with installation,
architecture, Secure Boot, kernel-selection, rebuild, systemd, verification,
removal, and project-scope documentation. - Added project flow diagrams describing the module build, signing, rebuild,
systemd, and responsibility-boundary workflows. - Improved project documentation navigation with tables of contents and
cross-document references. - Extended ShellCheck coverage to include project maintenance and release
scripts. - Extended RPM CI triggers to include SPEC, changelog, release tooling, and
workflow changes. - Improved RPM CI validation to verify package metadata, expected files,
generated SRPMs, binary RPMs, and SRPM rebuildability. - Standardized release preparation around
CHANGELOG.mdas the primary
human-maintained source of release changes. - Prepared the project for automated GitHub Release and COPR release workflows.
v1.0.2 — Default boot kernel and signature verification
v1.0.2 — Default boot kernel and signature verification
v1.0.2 improves Fedora kernel selection and Secure Boot signature verification for v4l2loopback-manager.
Highlights
- Uses Fedora's configured default boot kernel as the build target.
- Detects the target kernel with
grubby --default-kernel. - Verifies that
v4l2loopback.kois signed by the expected MOK certificate. - Rebuilds the module when it is missing, unsigned, unreadable, or signed by another key.
- Keeps
needs-rebuildcompatible with systemdExecCondition=semantics. - Adds
grubbyas a runtime dependency.
Kernel Selection
The manager now targets the kernel configured by Fedora as the default boot kernel:
sudo grubby --default-kernelThis avoids assuming that the numerically newest installed kernel or kernel-devel package is necessarily the kernel Fedora intends to boot.
Both:
needs-rebuild
rebuild
use the same target-kernel selection logic.
Secure Boot Verification
For the selected kernel, the manager checks:
/lib/modules/<kernel>/updates/v4l2loopback.ko
and verifies its signer with modinfo.
The expected signer is:
V4L2Loopback Module Signing
The module is rebuilt when it is:
missing
unsigned
unreadable
signed by another certificate
systemd Behavior
needs-rebuild is designed for:
ExecCondition=/usr/bin/v4l2loopback needs-rebuildIts exit codes are:
0 → rebuild required
1 → module already valid
Therefore, systemd may show:
status=1/FAILURE
Skipped due to 'exec-condition'
when the module already exists and is correctly signed.
This is expected behavior and does not indicate a failed module build.
Installation
Enable the COPR repository:
sudo dnf copr enable hhlp/v4l2loopbackInstall or upgrade:
sudo dnf install v4l2loopback-manageror:
sudo dnf upgrade v4l2loopback-managerVerify the installed version:
rpm -q v4l2loopback-managerVerification
Check Fedora's default boot kernel:
sudo grubby --default-kernelCheck whether a rebuild is required:
sudo v4l2loopback needs-rebuild
echo $?Inspect the module signer:
TARGET="$(sudo grubby --default-kernel)"
TARGET="${TARGET##*/}"
TARGET="${TARGET#vmlinuz-}"
modinfo -k "$TARGET" v4l2loopback |
grep -E '^(filename|version|signer|sig_key|sig_hashalgo):'Expected signer:
V4L2Loopback Module Signing
Upgrade Note
If v4l2loopback-rebuild.service was generated by an older release, regenerate it with:
sudo v4l2loopback disable-systemd
sudo v4l2loopback enable-systemdThen verify:
systemctl status v4l2loopback-rebuild.service
systemctl is-enabled v4l2loopback-rebuild.serviceCleanup
Before removing the package, the recommended cleanup sequence is:
sudo v4l2loopback uninstall
sudo v4l2loopback disable-systemd
sudo dnf remove v4l2loopback-managerChanges Since v1.0.1
- Use Fedora's default boot kernel as the module build target.
- Detect the target kernel using
grubby --default-kernel. - Verify module signatures against the expected MOK certificate.
- Rebuild missing or incorrectly signed modules.
- Preserve
needs-rebuildsemantics for systemdExecCondition=. - Add the
grubbyruntime dependency. - Update systemd descriptions, documentation, and tests.
Package: v4l2loopback-manager
Release: v1.0.2
Platform: Fedora Linux
Manager: /usr/bin/v4l2loopback