#2829 landed on master and touched 173 of the same keys this branch
rewrites, which is where the conflicts came from.
Resolved by rule rather than by hand: for any key #2829 already fixed
and merged, master's value wins (54 keys); everything else keeps this
branch's version. That keeps the diff against master limited to what is
genuinely new here, and avoids re-editing work that is already upstream.
It also avoids a regression. This branch was cut before #2829, so it
still carried the old double-encoded UTF-8 in nine mailboxes strings
(confirm_warnallf, left_autoreply, left_folders, left_forward,
left_pass, left_sig, mail_fromfilter, mail_selread, mail_subfilter).
Taking master's value for those keeps them fixed. A mojibake scan over
the whole tree after the merge reports 0 remaining lines.
master also added acl/forgot_sudouser, which is translated here, so
lang/tr is still complete at 31,523 of 31,523 keys.
Every module now has a reviewed desc_tr and longdesc_tr in
module.info.tr - 245 strings across 125 modules. Previously 37 were
reviewed, 194 came from module.info.tr.auto and 14 were missing
entirely (grub2, hardware-info, kea-dhcp, logviewer, nftables, systemd,
xterm), so those modules showed English titles in the Webmin menu.
The reviewed strings are removed from module.info.tr.auto, which now
holds only name_tr - the same split the de and ca translations use.
Thirty-six of those files became empty and are deleted.
Some of the machine text this replaces was wrong rather than just
clumsy:
sarg "Squid Report Generator" had become "Kalamar Rapor
Oluşturucu" - the fish, not the proxy
heartbeat the product name was translated as "Kalp Atışı"
cluster-cron "Cron Jobs" had become "Cron İş İlanları" (job ads)
proc "renice" was translated as "rename"
samba "file and print shares" was split into "create a samba
file" and "print the shares"
exports, hpuxexports, sgiexports, inetd, init, mount, net
each repeated the file path mid-sentence
firewall, the "(iptables)" and "(ip6tables)" qualifiers that
firewall6 distinguish the two modules were dropped
Turkish capitalisation of English words was also wrong throughout
("İptables", "İnetd", "İscsitarget", "İnternet"), and three previously
reviewed strings were stored as double-encoded UTF-8 (cron/desc_tr,
mailboxes/desc_tr, mailboxes/longdesc_tr).
cluster-cron and ldap-server carried a stray desc_de_tr key - a German
key that had leaked into the Turkish file. It is removed.
Adds complete lang/tr files for four more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
iscsi-server 177 strings - iSCSI extents, devices and targets
sarg 171 strings - Squid report generator
firewalld 169 strings - FirewallD zones, ports and rules
cluster-software 167 strings - package management across servers
cluster-software shares 69 strings with the software module, which were
reused verbatim after checking that the English source text matches.
Also fixes software/install_ezip, which was missing its $1 placeholder;
the same defect had been inherited by cluster-software.
Adds the 350 strings that software/lang/tr was missing, so the module is
now fully translated, and removes software/lang/tr.auto.
Package manager names and their subcommands stay in English: APT, YUM,
DNF, RPM, RHN, URPMI, APK, CSW, IPKG, pkgng, pkgsrc, Portage, emerge,
MSI, the versionlock and upgrade-dist subcommands, and the uncompress,
gzip and gunzip tools.
Corrects verifiable defects in the shipped Turkish translations across
25 modules. No .auto (machine-translated) files are touched.
Placeholder bugs (33 keys) - substitution variables were missing,
duplicated or renumbered relative to lang/en:
* fdisk/mkfs_desc1 used $1 twice, so the "all data will be permanently
erased" confirmation named the filesystem type instead of the target
device.
* apache/reconfig_ever linked to <a href='$1'> instead of $2, pointing
the "module configuration" link at the version string.
* useradmin/export_eopen contained the Perl special variable $! rather
than $1.
* adsl-client/index_stopdesc, inittab/log_rename, hpuxexports/save_ehost,
mysql/log_perm_* and others repeated $1 where $2/$3 was intended.
* cron/env_ename referenced $1, which lang/en does not provide.
HTML markup bugs (19 keys) - tags were dropped or swapped, breaking
rendering or links:
* useradmin/batch_desc6 and batch_desc3 contained the literal strings
"$batch_desc1" and "$batch_desc0" and rendered as plain text.
* bind8/mass_desc translated the literal named.conf keywords master,
slave, stub and forward, which would lead users to enter invalid
configuration values. These are now left untranslated.
* mysql/index_nomod, samba/esync_msg, squid/clear_msgclear and others
lost <tt>/<b> pairs present in lang/en.
Encoding (10 keys) - mailboxes/lang/tr contained double-encoded UTF-8
(mojibake), e.g. "klasöründen" instead of "klasöründen".
Untranslated strings (96 keys) - htaccess-htpasswd/lang/tr was a verbatim
copy of lang/en and is now fully translated. Remaining English strings in
fdisk, mount, shorewall, webalizer, xinetd and firewall are translated.
Technical identifiers (LVM VG/LV, IPsec AH) are deliberately kept in
English.
All modified files are valid UTF-8, keep their original key order and
line count, and their placeholders now match lang/en exactly.
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
ⓘ Include partially installed dpkg packages in package listings and details while continuing to exclude removed and not-installed packages. Add regression coverage for all supported Debian package states.
277a919c27 (commitcomment-193125042)
ⓘ Normalize APT install-result names like `libtinfo6:amd64` to `libtinfo6` so scheduled updates can correctly detect dependency-updated packages and avoid false failure reports.
https://github.com/virtualmin/virtualmin-gpl/issues/1247
* The MySQL module in Alpine it lacks default values. This change
uses the necessary values for the module to function.
* These values work for any version of Alpine Linux from 3.8
to Edge, since MariaDB is and always has been the default package.
* The tools server package was included in the package instalation
* Missing changelog entries were included
This PR adds baseline Alpine Linux support in Webmin with OS detection, APK package and update backend, OpenRC boot integration, ifupdown-style networking support and DHCPD defaults.
https://github.com/webmin/webmin/issues/2353