Disk image sizes that are not dividable by 512 bytes should not
exist, as that is the minimum sector size any disk can have, and
the smallest unit an OS can write to a disk.
We were already rejecting such image files if we know in advance
the size was wrong, which we can test if they are uncompressed,
if they are in an easy parsable file format such as .zip, or if
the repository meta data indicated the uncompressed size.
However for gz/xz/zstd files this check is not done, and it would
fail at the verification stage instead.
If encountering such corner case, pad the image instead of
failing.
Ref #364
Does have the consequence that if the user modifies the SSID, they
will also need to enter the password again, as PBKDF2 scheme hashes
SSID together with password.
Closes#344
- Make buttons blue when they have activeFocus to make it more
clear which button has focus when using keyboard navation.
- By default most components only respond to 'space' on keyboard
for pressing buttons and toggling checkboxes.
Map Enter/Return (normal and keypad) as well.
- Fix advanced settings not working if users has wifi settings saved
with previous version of Imager, and user selected "use always"
Ref #343
- Also fix problem where "SSH enabled" is not saved on Mac OS X due
to the check assuming QSettings stores settings as strings, while
with the plist stuff on Mac OS X it is stored as boolean.
- Do not generate "error on writing to disk" error if it is the
result of the write being cancelled.
- Mac: QProcess::execute(cmdline) -> QProcess::execute(cmd, args)
to avoid depreceation warning.
Fixes "Can't assign to existing role 'subitems' of different type"
or hang (depending on Qt version) on using nested subitems.
Keep nested subitems flattenend as json string in memory while not
being used, to simplify dealing with ListElement expectation that
all elements have the same data type, as well as QML/Ecmascript's
memory management.
- Change QRegExp -> QRegularExpression. To drop dependency on
legacy Qt5Compat module, if we upgrade to a later Qt version
at some point.
- Change some "for" constructs clang gives warnings about
while we are at it.
- Allow username and password to be set separate to SSH.
Does enforce password to be changed if SSH is enabled without
public key authentication.
- cloud-init: apt: disable date/time checks
When using image customization with an NVMe drive under RPI OS on a CM4,
the system will prompt non-root users for password when mounting the FAT file system.
(Passwordless mounting does is available for removable storage,
but the NVMe drive qualifies as internal storage instead).
- The mount command we send to udisks2 over dbus2 may timeout
before the user completed the password prompt.
Raise timeout to counter this.
- Print mount error details to console
- On mount error report error mounting in GUI instead of
"/config.txt does not exist" (which happened when mountDevice()
returned empty string)