rpi-imager (2.0.7) unstable; urgency=medium

  * Write Operations:
    - Prevent re-entry during write operations and improve thread management
    - Start progress watchdog only after device authorization to avoid false
      stall detections during macOS authorization dialogs
  * Local Files:
    - Load local manifest files directly without confirmation dialog
    - Improve URL handling to differentiate local file URLs from remote URLs
  * Drive Enumeration:
    - Replace vendored drivelist/mountutils dependencies with new
      platform-specific implementations for macOS, Linux and Windows
    - Enhance error handling and show UI banner on enumeration failures
    - Improve code clarity and signal-slot connection syntax
  * Networking:
    - Track effective URL after redirects in CurlFetcher for better
      transparency and security feedback
  * macOS:
    - Simplify network status logging in platform quirks
    - Update disk unmount and eject operations to handle device paths directly
  * Tests:
    - Add unit tests for platform-specific quirks
    - Update drivelist test API definitions via CMake compile definitions
  * Build:
    - Update .gitignore to include clangd cache files

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Fri, 13 Feb 2026 15:25:00 +0000

rpi-imager (2.0.6) unstable; urgency=medium

  * UI: Improve ImButton width calculation for better content fitting
  * i18n: Updated German translation

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Thu, 22 Jan 2026 14:30:00 +0000

rpi-imager (2.0.5) unstable; urgency=medium

  * all platforms: CLI option added to help on GUI builds
  * macOS:
    - Add dark mode and Liquid Glass icon support with pre-compiled assets
    - Add icon compilation script for regenerating icon assets
  * UI:
    - Enhance update popup with version tracking functionality
    - Improve BaseDialog minimum height for better usability
    - Use indeterminate progressbar for local gzip files without size info
    - Fixup updatePopupRequested trigger
  * Local JSON Helper:
    - Add device capabilities support
    - Add OS capabilities support

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Tue, 20 Jan 2026 17:00:00 +0000

rpi-imager (2.0.4) unstable; urgency=medium

  * Write Robustness:
    - Introduce WriteProgressWatchdog to monitor write progress and detect stalls
    - Implement recovery strategies for async I/O including queue depth reduction
      and sync fallback mechanisms
    - Standardize timeout handling for pending writes across all platforms
    - Add 5-minute emergency timeout as fallback for stalled operations
  * Performance:
    - Enhance recovery event handling and monitoring diagnostics
    - Capture SHA256 hash values in performance profiles for verification diagnostics
  * Image Handling:
    - Add support for parsing .gz files to extract uncompressed size information
    - Improve handling for files larger than 4GB
  * Disk Formatting:
    - Fix FAT32 formatting for large drives (>8GB)
    - Improve root directory handling based on sectors per cluster
  * Bug Fixes:
    - Fix external tools (runuser, xdg-open) failing in AppImage due to
      LD_LIBRARY_PATH conflicts causing PAM module loading errors
    - Improve thread safety for download cancellation
    - Enhance error handling for timeout conditions
    - Use Pathlib to generate file:// URIs in local JSON helper script
    - Use XDG-compliant canberra-gtk-play and PipeWire for audio notifications
      on Linux, fixing beep on Raspberry Pi OS which no longer ships PulseAudio control by default
  * Accessibility:
    - Bypass confirmation dialog timer when screen reader is active
  * Build:
    - Refactor Qt build scripts for improved POSIX compliance and consistency
    - Add macOS-specific optimizations for universal builds

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Thu, 15 Jan 2026 12:00:00 +0000

rpi-imager (2.0.3) unstable; urgency=medium

  * Networking:
    - Implement comprehensive network monitoring to detect connectivity changes
    - Automatic retry of OS list fetching when network is restored
    - Add CA certificate bundle detection for AppImage compatibility on Linux
  * Custom Repositories:
    - Support rpi-imager:// URI scheme for deep-linking to custom repositories
    - Register .rpi-imager-manifest file type on all platforms
    - Show custom repository host in window title with security hardening
  * Counterfeit Card Detection:
    - Detect and handle counterfeit storage devices that hang during I/O
    - Add timeout mechanism for critical disk operations
    - Add debug option to skip end-of-device operations
  * Performance:
    - Implement bottleneck detection showing network/decompression/write status
    - Add detailed write timing breakdown for analysis
    - Skip periodic sync when direct I/O is enabled
  * UI:
    - Add sticky language preference across sessions
    - Enhance title display with offline status indication
    - Improve text wrapping and marquee scrolling throughout
  * Drive Handling:
    - Add support for NVMe over Fabrics bus type on Windows
    - Enhance storage bus type recognition and device classification
  * Customization:
    - Enhance WiFi configuration for open networks
    - Add initFormat parameter to CLI setImageCustomisation call
  * Windows:
    - Enhance uninstallation to clean up old installation directories
  * Bug Fixes:
    - Fix language selection persistence
    - Fix async write ID overlap with cancellation markers
    - Fix async cache hash reset on open
    - Fix unmounting logic and error handling
    - Fix hardware/software capability case sensitivity
  * i18n: Updated Spanish, Czech, French, Russian, Portuguese translations

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Mon, 22 Dec 2025 18:00:00 +0000

rpi-imager (2.0.2) unstable; urgency=medium

  * OS customisation:
    - Fixup init_format validation
    - Fixup telemetry version string
    - Update cloud-init user-data generation for Pi Connect
    - Support SSH public key authentication without username/password
    - Enhance WiFi configuration for WPA2/WPA3 compatibility
  * UI:
    - Improve focus handling for labels in wizard steps
    - Update accessibility properties for form labels
    - Enhance ComboBox keyboard navigation and search functionality
  * macOS: Enhance file dialog with file type selection popup
  * Linux: Implement privilege escalation support for elevatable bundles
  * all:
    - Add file logging support for debugging
    - Remove O_SYNC flag from file open operations

  -- Tom Dewey <tom.dewey@raspberrypi.com>  Wed, 26 Nov 2025 13:00:00 +0100

rpi-imager (2.0.1) unstable; urgency=medium

  * i18n: Updated Italian translation
  * Windows: Migrate to modern IFileDialog for file selection
  * Windows: Fix SSH key file selection filters

  -- Tom Dewey <tom.dewey@raspberrypi.com>  Mon, 24 Nov 2025 13:00:00 +0100

rpi-imager (2.0.0) unstable; urgency=medium

  * UI: Complete redesign, now as a wizard
  * OS customisation: Add Raspberry Pi Connect step
  * App Options: Custom repository selection UI
  * OS customisation: Rebuilt back-end in C++
  * build: Custom Qt 6.9.3 builds for each platform

  -- Tom Dewey <tom.dewey@raspberrypi.com>  Fri, 10 Oct 2025 17:00:00 +0100

rpi-imager (1.9.7) unstable; urgency=medium

  * OS customisation:
    - Fixup SSH key duplication in written OS
    - Fixup 'Beep', 'Eject', 'Telemetry' option persistence
    - Improve ComboBox behaviours
  * Storage Device Selection: Begin observing at start of day,
      improve removal notifications.
  * windows: Autogenerate manifest version information from the build
  * windows, macos, linux: Add PlatformQuirks module to deal with host
      hardware quirks. Today, just used on Windows for nVidia lockups.
  * all: Add OS list refresh jitter and override
  * all: Generate timezone data from tzdata
  * OS customisation: Refactor dialogs, data reset
  * Cache Management: Fixup destruction segfault
  * Embedded: Unified build
  * macOS: Build custom Qt 6.9.1

  -- Tom Dewey <tom.dewey@raspberrypi.com>  Thu, 31 Jul 2025 17:00:00 +0100

rpi-imager (1.9.6) unstable; urgency=medium

  * OS customisation:
    - Add Wi-Fi country selection validator
    - Add new SSH key error messages
  * i18n: Updated Chinese, French, Italian, Russian translations
  * windows: Use normal mode for file writing operations
  * all: Refactor drive formatting logic, home-grown formatter

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Mon, 21 Jul 2025 17:00:00 +0100

rpi-imager (1.9.5) unstable; urgency=medium

  * OS customisation:
    - Enhanced validation of SSH keys
    - Improved keyboard navigation
  * OS list:
    - Add architecture sorting support
  * UI:
    - Better keyboard navigation support throughout
  * bug:
    - Fix ISO9660 handling
    - Fix spurious writing Updates
  * build:
    - Automatic discovery of translation files
  * deps:
    - Update to libarchive 3.8.1
    - Update to nghttp2 1.66.0
  * i18n:
    - Add Irish language, Bengali language
    - Fixup broken binding when swapping between languages
    - Updated French, German translation
  * macOS:
    - Add support for writing to virtual drives
    - Styled DMGs
  * packaging:
    - Removed unused Qt Quick Controls
  * windows:
    - Restore delayed wlanpi loading
  
 -- Tom Dewey <tom.dewey@raspberrypi.com>  Fri, 11 Jul 2025 17:00:00 +0100

rpi-imager (1.9.4) unstable; urgency=medium

  * Windows: Switch to Inno Setup for installer
  * Windows: Add signing for binaries, installer, and uninstaller
  * Windows: Add administrator privileges and NSIS removal support
  * macOS: Fix .app naming in .dmg packages
  * macOS: Improve build reliability and programmatic copyright handling
  * Linux: Hide system drives in destination popup
  * all: Fix OptionsPopup not handling 'Esc' key
  * all: Internal refactoring and QML code improvements
  * all: Add support for more archive formats via libarchive
  * all: Performance improvements in download/extract operations
  * qml: Split main UI into multiple component files
  * qml: Add Style singleton and ImCloseButton component
  * qml: Make options popup modal and improve accessibility
  * qml: Fix various QML linting warnings and unqualified accesses
  * i18n: Updated Italian translation
  * i18n: Added Georgian translation
  * i18n: Make 'Recommended' OS string translatable
  * packaging: Add custom AppImage build script with Qt detection
  * packaging: Add custom Qt build script with unprivileged mode
  * packaging: Include custom Qt 6.9.0
  * packaging: Migrate dependencies to FetchContent system
  * dependencies: Update to libarchive 3.8.0
  * dependencies: Update to cURL 8.13.0
  * dependencies: Update to nghttp2 1.65.0
  * dependencies: Update to zstd 1.5.7
  * dependencies: Update to xz/liblzma 5.8.1
  * dependencies: Update to zlib 1.4.1.1
  * cmake: Version requirement bumped to 3.22
  * cmake: Various build system improvements and hardening
  * build: Updated README with new build instructions
  * OS customisation: Remove 'Show password' checkbox

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Fri, 30 May 2025 17:00:00 +0100

rpi-imager (1.9.3) unstable; urgency=medium

  * Windows: Add quiet uninstaller flag
  * Windows: Fixup long filename construction in FAT partitions
  * i18n: Updated Portuguese translation
  * i18n: Updated zh-TW, zh-CN translations
  * i18n: Updated Korean translation
  * i18n: Make 'gigabytes' translatable
  * Storage Selection: Allow controllable filtering of system drives
  * Linux: Disable Wayland back-end
  * OS customisation: SSH key handling, regex verification
  * OS customisation: UI cleanup
  * deps: cURL 8.11.0, libarchive 3.7.7

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Fri, 07 Mar 2025 14:45:00 +0000

rpi-imager (1.9.2) unstable; urgency=medium

  * Drive List: Expose only physical devices - not volumes
  * i18n: German, Taiwanese, Catalan, Spanish, Slovak
    translations updated
  * i18n: Added Hebrew translation
  * qml: OS Customisation: Allow mouse selection in
    comboboxes
  * qml: MessagePopup: Constrain text, align to the center
  * packaging: debian: Ignore AppImages and ci scripts

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Wed, 02 Oct 2024 18:57:00 +0000

rpi-imager (1.9.0) unstable; urgency=medium

  * ui: Upgrade to Qt6.7, bringing new controls to everything
  * packaging: Migrate to AppImage-first distribution
  * packaging: Sign with new Raspberry Pi Ltd key
  * host deps: Ubuntu 22.04+, macOS 11+, Windows 10+
  * Popups: Removed click-outside closing behaviour
  * Selection Windows: Fixed layouts to fill the windows
  * build: Dependencies have been vendored for consistency
  * build: Require non-package-manager version of Qt
  * security: Use platform crypto, SSL libraries where possible

 -- Tom Dewey <tom.dewey@raspberrypi.com>  Wed, 4 Sep 2024 18:57:00 +0000

rpi-imager (1.8.5) unstable; urgency=medium

  * Retry downloads on HTTP2 errors.
  * Rename .desktop file to match DBus name, as some GNOME
    desktop environments expect it that way.
  * Disable Link Time Optimization as precaution against hard to
    trace bugs.

 -- Floris Bos <bos@je-eigen-domein.nl>  Sat, 20 Jan 2024 16:36:11 +0100

rpi-imager (1.8.4) unstable; urgency=medium

  * OS customisation: Fixed #531, which caused password entry
                      to drop the first character
  * OS customisation: Impose character limits on usernames &
                      hostnames
  * i18n: Added Polish translation
  * i18n: Updated Catalan, Japanese translations
  * cli: Fixed local file passing via --repo

 -- Floris Bos <bos@je-eigen-domein.nl>  Fri, 22 Dec 2023 16:00:00 +0200

rpi-imager (1.8.3) unstable; urgency=medium

  * Home: Fixed "No filtering" option
  * OS customisation: Fixed no-customisation flow

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 16 Nov 2023 14:00:00 +0200

rpi-imager (1.8.2) unstable; urgency=medium

  * Home: Device filtering reworked to download OS list eagerly
  * OS List: Fixed 'Recommended' tag annotation
  * i18n: Added zh-TW Traditional Chinese translation
  * i18n: Updated Korean, German, Ukranian, translations
  * build: Linux: Fix libdrm dependency requirement on non-embedded
                  build.
  * Commmon: Disable QML caching entirely
  * OS customisation: Allow use if only cloudinit payload available
  * OS customisation: Allow empty PSK for 'Open' WiFi networks.
  * OS List: Use ImageList v4 URL

 -- Floris Bos <bos@je-eigen-domein.nl>  Wed, 15 Nov 2023 20:16:16 +0200

rpi-imager (1.8.1) unstable; urgency=medium

  * Hide empty categories when filtering
  * i8n: Updates German translation

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 19 Oct 2023 20:16:16 +0200

rpi-imager (1.8.0) unstable; urgency=medium

  * Advanced options: Rename to OS customization
  * OS customization: change to tabbed UI
  * OS customization: make SSH public key field a textarea
  * OS customization: add convenience button to run ssh-keygen
  * OS customization: Enforce choice as part of write flow
  * OS customization: Fixes for state consistency across UI
  * Home: Add mechanism for selecting Raspberry Pi device
  * Shared: Multiple keyboard focus fixes
  * i18n: Adds Spanish/Ukrainian translations
  * i18n: Updates French, Catalan, Italian, German, Spanish, Russian,
          Japanese translations
  * i18n: Use en_US as refernce string, and make en_GB a translation
  * Workaround for ArchLinux's lsblk labeling internal SD card readers
    (mmcblk0) as non-removable storage.
  * Allow drag-dropping image files to Imager.
  * Local .xz files: parse uncompressed size for better progress reports.

 -- Floris Bos <bos@je-eigen-domein.nl>  Wed, 18 Oct 2023 18:00:00 +0200

rpi-imager (1.7.5) unstable; urgency=medium

  * Bump version number to match bug fix release for Windows.
    (No actual changes from 1.7.4.1 for Linux)

 -- Floris Bos <bos@je-eigen-domein.nl>  Mon, 22 May 2023 18:53:22 +0200

rpi-imager (1.7.4.1) unstable; urgency=medium

  * Advanced settings: fix creating files on FAT partition that are
    an exact multiple of cluster size.
  * Do you want to apply saved settings window: offer 'no' option,
    without clearing settings.
  * Eject storage properly on Linux.

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 18 May 2023 15:05:28 +0200 

rpi-imager (1.7.4) unstable; urgency=medium

  * Advanced settings: fix escaping single quotes
  * Advanced settings: default to using username of logged-in user
  * Now uses a different method to edit files on the FAT partition
    to apply advanced settings. Imager now understands the FAT16/FAT32
    file system format and can edit files by itself using the raw
    disk device, without having to rely on the operating system
    to mount the partition first.

 -- Floris Bos <bos@je-eigen-domein.nl>  Sun, 20 Nov 2022 17:30:20 +0100

rpi-imager (1.7.3) unstable; urgency=medium

  * Linux: use GnuTLS instead of OpenSSL for computing SHA256
  * Fix persistenting public key authentication setting
  * Linux: prefill wlan PSK if Linux distro uses NetworkManager
  * Add digital signage icon
  * Fix ""Cannot send events to objects owned by a different thread" warning
  * Update Slovan/Korean language files
  * Allow selecting file names without extension
  * Add possibility to outsource handling of custom settings to script at
    /usr/lib/raspberrypi-sys-mods/imager_custom
  * Advanced settings: disallow invalid characters in hostname field

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 18 Aug 2022 20:04:37 +0200

rpi-imager (1.7.2) unstable; urgency=medium

  * Remove overscan/piwiz supression advanced options
  * gz/xz/zstd custom images: pad if image size is not dividable by 512 byte
  * Store saved wifi password hashed
  * Make buttons blue on keyboard navigation
  * Add Japan, Korean translations

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 24 Mar 2022 17:58:52 +0100

rpi-imager (1.7.1) unstable; urgency=medium

  * Fix advanced settings being broken if there are saved wifi
    settings and wifiSSIDHidden is not present

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 03 Feb 2022 18:38:15 +0100

rpi-imager (1.7.0) unstable; urgency=medium

  * Only apply advanced settings if the operating system indicates it
    supports it by "init_format": "cloudinit" | "systemd" in the
    repository. Some heuristics are used with custom images from disk.
  * Advanced settings: add support for cloudinit format
  * Advanced settings: add support for specifying username
  * Advanced settings: allow setting username and password
  * Advanced settings: allow hidden wifi SSID
  * Advanced settings: allow multi-line authorized_keys
  * Retry on GnuTLS Recv errors
  * Some fixes to deal better with Linux distributions auto-mounting
    drives
  * Add Slovenija translation
  * Adds support for zstd
  * Allow nested subitems entries
  * Add word-wrapping to OS list (contributed by mzanetti)
  * Update icons 
  * Telemetry: phone back home when image from repository is written:
    - name of image written, parent category.
    - about the computer running Imager: OS, version, architecture,
      locale, Imager version, Pi revision.

 -- Floris Bos <bos@je-eigen-domein.nl>  Wed, 02 Feb 2022 19:47:17 +0100

rpi-imager (1.6.2) unstable; urgency=medium

  * Add website link support
  * Add CLI support 

 -- Floris Bos <bos@je-eigen-domein.nl>  Fri, 07 May 2021 13:19:19 +0200

rpi-imager (1.6.1) unstable; urgency=medium

  * When saving advanced options delay modifying files
    on FAT partition until config.txt is visible.
  * Update translations
  * Linux: revert disable high dpi scaling on incorrect EDID"
    due to it causing the custom file selection dialog not to
    function properly on Fedora

 -- Floris Bos <bos@je-eigen-domein.nl>  Sat, 27 Mar 2021 11:06:56 +0100

rpi-imager (1.6) unstable; urgency=medium

  * Wayland: fix "Client tried to set invalid geometry" error
  * Add advanced users option screen available under SHIFT-CTRL-X
  * Disable high DPI scaling on incorrect EDID
  * Fix handling of .iso files
  * Update translations
  * GUI: change "SD card" -> "Storage"
  * Allow NVMe drives as destination drive (Linux only)

 -- Floris Bos <bos@je-eigen-domein.nl>  Fri, 26 Feb 2021 14:32:21 +0100

rpi-imager (1.5) unstable; urgency=medium

  * More verbose progress/error reporting
  * Reconnect if download stalls for more than one minute
  * Remember last selected custom image path
  * Add German/French/Italian/Slovak/Turkish translations
  * Fix multi-level subitems_url
  * Add update notification support
  * Allow translators to specify external .qm file for testing
  * Remove dependency on qml-module-qt-labs-settings
  * Enables telemetry collecting information about which images from
    repository are most popular

 -- Floris Bos <bos@je-eigen-domein.nl>  Tue, 24 Nov 2020 10:38:21 +0100

rpi-imager (1.4) unstable; urgency=medium

  * Add basic accessibility support
  * Add keyboard navigation support
  * Linux: do not let progress exceed 100% if
    device reports incorrect write counters
  * Show new SD card size if SD card is replaced
  * Linux: do not use direct IO on verifying but purge cache with
    posix_fadvise()

 -- Floris Bos <bos@je-eigen-domein.nl>  Tue, 30 Jun 2020 00:29:37 +0200

rpi-imager (1.3) unstable; urgency=medium

  * Remove zero sized drives from list
  * Fix height of drive list
  * Show scrollbars permanently
  * Add localisation support
  * Use accelerated sha256 code provided by OpenSSL
  * Custom user agent
  * Ask for confirmation on quit
  * Use direct IO on verifying
  * Improve progress indication

 -- Floris Bos <bos@je-eigen-domein.nl>  Mon, 25 May 2020 00:45:50 +0200

rpi-imager (1.2) unstable; urgency=medium

  * Mention version number in title bar.
  * Performance improvements

 -- Floris Bos <bos@je-eigen-domein.nl>  Tue, 10 Mar 2020 17:08:11 +0100

rpi-imager (1.1) unstable; urgency=medium

  * Fix verification on images that are uncompressed or have
    a size that is not dividable by 128 KB.
  * Round instead of floor size of SD card up and show 1 decimal
  * Executable name changed from imagingutility to rpi-imager

 -- Floris Bos <bos@je-eigen-domein.nl>  Mon, 09 Mar 2020 12:25:24 +0100

rpi-imager (1.0) unstable; urgency=medium

  * Initial Release.

 -- Floris Bos <bos@je-eigen-domein.nl>  Thu, 20 Feb 2020 11:54:04 +0100
