This PR fixes the Package Updates module reporting "no updates" when dnf check-update fails.
DNF prints its error to stderr and exits with status 1, but the module only read stdout, so a failed check looked like an empty list and was cached for hours. Users could go weeks or months without seeing that updates were blocked!
The module now checks the exit status. When a check fails, it keeps the last known list, shows the error on the module and refresh pages, and retries after 15 minutes instead of caching an empty result.
Scheduled checks email the failure instead of acting on the old list, and in new-only mode the failure is emailed once until a check succeeds again.
Fixes https://forum.virtualmin.com/t/no-warning-of-dnf-error-suppressing-update/138052
Adds complete lang/tr files for four more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
ldap-client 226 strings - NSS/PAM LDAP client setup and NSS switch
dovecot 188 strings - Dovecot IMAP/POP3 server configuration
filemin 185 strings - file manager UI
package-updates 176 strings - package update checking and repositories
Product names are deliberately left untranslated where Turkish has no
established equivalent: "Novell Directory Services", "Active Directory",
"System Security Services", "Hesiod", "XFN", "VPOPMail", "Blastwave".
Protocol, format and command names (IMAP, POP3, LMTP, SASL, Maildir,
mbox, dbox, chmod, chown, chattr, setfacl, umask, tar.gz) also stay in
English, matching the rest of the Turkish translation.
This PR adds DNF 4 and DNF 5 versionlock support to Package Updates, including listing, holding, unholding, and explicitly updating held packages.
DNF 4 requires the versionlock plugin to be installed, while DNF 5 supports versionlock natively.
Hold controls are shown only when the versionlock command is available.
It also previews DNF transactions before confirmation so users can see which packages will be installed or updated in the table, similar to APT.
- Add an APT-only “Held updates” view while keeping held packages excluded from normal and scheduled updates.
- Allow administrators to hold or unhold packages from package details.
- Allow explicitly selected held packages to be updated once, then restore all existing package holds.
- Preserve configured `aptitude` behavior for regular installs while using `apt-get` for the held-package override.
Fixes#2689