Fedora 43 implements "hard" requirements for DNF5 & RPM 6.0, and as such the Fedora 43 packages provided by CloudSmith.io are not seen as fulfilling all requirements due to how the updated specs view the requirement of the tvheadend user and group compared to what the package provides.
You can see this with the most recent package:
root@tvh:/var/local/tvheadend_repo/Fedora43# rpm -qp --requires tvheadend-4.3-2634~geb023c573.fc43.x86_64.rpm | grep -E 'user|group'
group(tvheadend)
user(tvheadend)
root@tvh:/var/local/tvheadend_repo/Fedora43# rpm -qp --provides tvheadend-4.3-2634~geb023c573.fc43.x86_64.rpm | grep -E 'user|group'
root@tvh:/var/local/tvheadend_repo/Fedora43#
Previously, I believe the %pre script would take care of this "requirement", but with the new requirements of DNF5 & RPM 6.0 they expect the requirement to be fulfilled by what the package provides. Please see fedora documentation on dynamic allocation of system users and groups.
Also see RPM Support For Systemd Sysusers.d.
It's been awhile since I've had to build an RPM, but I think the changes would involve:
The sysusers file (in sysusers.d):
# Type Name ID GECOS Home directory Shell
g tvheadend 283 - - -
u tvheadend 283 "Tvheadend Server" /var/lib/tvheadend /sbin/nologin
(Yes, Fedora uses 'tvheadend' as the user & group with 283 as the uid & gid)
The RPM .spec file:
Build Requirements
BuildRequires: systemd-rpm-macros
%{?sysusers_requires_compat}
In %install section
%install
install -p -D -m 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/tvheadend.conf
In %pre section
This macro handles the actual creation during installation if the user doesn't exist, and satisfies the RPM dependency engine.
%pre
%sysusers_create_compat %{SOURCE3}
In %files section
%files
%{_sysusersdir}/tvheadend.conf
After the RPM is produced, it should now "provide" the tvheadend user & group:
rpm -qp --provides tvheadend-4.3-nnnn.fc43.x86_64.rpm
This could also be applied to Fedora 42 packages but this isn't a hard requirement until Fedora 43.
I'll also take this time to put out a friendly reminder that the Fedora repos don't work, and that also needs to be fixed. I'm currently testing out a script I wrote to pull packages from cloudsmith.io and create a local repo just so I can automatically update with the rest of my system updates, but this package requirement is a breaking change to that process.
I volunteer to test these changes to Fedora 42/43 and in the future once they are available. Thanks!