2.0.7 rollup 2: Fastboot, rpiboot, compute modules, text scaling, proxy support#1548
Merged
Conversation
…ule imaging - Added bundled libusb for USB communication with rpiboot. - Introduced new classes and methods for handling rpiboot and fastboot protocols. - Enhanced drive list model to recognize rpiboot devices and updated UI components accordingly. - Implemented threading for efficient image flashing via fastboot. - Updated CMake configuration to include necessary dependencies and sources for rpiboot functionality.
…nce Wayland socket detection - Changed xhost command to use +SI:localuser:root for improved security when granting root access to the X11 display. - Added functionality to dynamically detect Wayland compositor sockets in the user's XDG_RUNTIME_DIR, accommodating various setups. - Refactored the display access logic to ensure it runs as the original user after DISPLAY and XAUTHORITY are configured.
…stboot support - Added new performance events for rpiboot and fastboot processes, including firmware setup, protocol execution, and device opening. - Updated the performance analysis scripts to include new event types and descriptions. - Enhanced the drive list model to support enabling/disabling rpiboot scanning. - Integrated UI elements to allow users to enable rpiboot and fastboot support in the settings. - Improved logging and debugging options for better visibility into rpiboot operations.
Add post-flash customisation support for Compute Module imaging via the fastboot protocol's stage/upload and OEM file transfer commands. Protocol layer (fastboot_protocol.cpp): - Refactor download() into shared sendData() helper - Add stage(), upload(), writeDeviceFile(), readDeviceFile() - Clear _lastError at entry to public methods so callers can distinguish empty-file returns from transport errors Thread layer (fastbootflashthread.cpp): - Add applyCustomisation() performing read-modify-write of config.txt and cmdline.txt, plus creation of firstrun.sh / cloud-init files - Guard against readDeviceFile failure before modifying boot files - Wire customisation data from ImageWriter via setImageCustomisation() Tests: 43 test cases (was 24), covering stage/upload/writeDeviceFile/ readDeviceFile, progress callbacks, lastError clearing, and customisation-pattern integration tests with realistic file content.
) Switch all QML font sizes from pixelSize to pointSize so Qt's DPI-aware text rendering scales correctly on high-DPI displays. Additionally, detect the platform's text-scaling preference (GSettings on Linux, system font on Windows) and apply as a multiplier to all font, spacing, and layout tokens in Style.qml. Window dimensions also scale proportionally. Users can override detection via textScaleFactor in QSettings.
…ntrols Introduce a fontDpiCorrection multiplier (72/96 on Windows/Linux, 1.0 on macOS) so that font point sizes render at the same visual size on all platforms. Apply this correction — combined with the OS accessibility text scale — via a new fontScale token in Style.qml, used exclusively for font sizes; layout, spacing, and window dimensions continue to use textScale only. Add explicit font.family and font.pointSize to all Qt Controls wrapper components (ImButton, ImButtonRed, ImCheckBox, ImRadioButton, ImTextField, ImComboBox, ImToggleTab) and to the drive name text and confirmation text field in ConfirmSystemDriveDialog, preventing them from inheriting the platform's unscaled default system font. Also scale the storage list item row height and the warning icon point size via the Style helpers.
Add a checkbox to the user account customisation step that allows enabling passwordless sudo. The setting is session-only (never persisted) so users must explicitly opt in each time, given the security implications. Checking the box triggers a warning dialog explaining the risks before the setting takes effect. Both customisation generators are updated: - systemd: writes a sudoers.d drop-in with shell-quoted paths - cloud-init: adds `sudo: ALL=(ALL) NOPASSWD:ALL` to the user entry Also removes the pre-existing behaviour where SSH key-only setups unconditionally granted passwordless sudo — this now requires the explicit opt-in like any other configuration. An ⓘ info icon (borrowing the pattern from the capital city selector) provides a tooltip on hover/focus explaining the implications, with full screen reader accessibility.
Display the verification read speed alongside the "Verifying written data" status text, reusing the existing bottleneck display infrastructure.
…failure Windows 11 users behind corporate proxies saw the app as offline despite having browser connectivity, because libcurl proxy support was compiled out (CURL_DISABLE_PROXY ON). Enable proxy support and auto-detect system proxy settings via QNetworkProxyFactory before the first OS list fetch. Also auto-retry with IPv4-only mode when the initial fetch fails but network adapters are up — this catches broken IPv6 routing where DNS returns AAAA records but connections time out, while browsers silently fall back via Happy Eyeballs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.