What's Changed
- fix: Detect IA32-only EFI media as legacy by @kroese in #1998
- feat: Added support for Reactos by @kroese in #1999
- fix: Do not override defined variables in setMachine by @kroese in #2000
- fix: Exclude some warning in blinter by @kroese in #2001
- feat: Keep Windows XP blue screens visible in debug mode by @kroese in #2002
- fix: Disable modern VirtIO for Windows XP on Q35 by @kroese in #2003
- feat: Disable auto reboot on XP by @kroese in #2004
- feat: Disable autoreboot for Windows 2000 and 2003 by @kroese in #2005
- docs: Added new DISK_OPTIONS variable by @kroese in #2006
- docs: Environment variables by @kroese in #2007
- fix: Persistence of automatic Windows machine settings by @kroese in #2009
- fix: Restore PCI hole workaround for Vista and Windows 7 x86 by @kroese in #2010
- fix: Spelling of ReactOS by @kroese in #2011
- build: Update workflow by @kroese in #2012
- feat: Use mergeState helper from base image by @kroese in #2014
- build: Update QEMU base image to v7.41 by @kroese in #2013
- feat: Display message when boot image has an unexpected size by @kroese in #2015
- feat: Refine batch script linting by @kroese in #2016
- feat: Improve startup detection by @kroese in #2017
- feat: Abort QEMU on detected boot failure by @kroese in #2018
- feat: Limit xorriso boot image extraction size by @kroese in #2019
- fix: Legacy CD boot fallback detection by @kroese in #2020
- feat: Inherit source compression when exporting install image by @kroese in #2021
- feat: Handle read-only Samba share mounts by @kroese in #2022
- feat: Encapsulate edition ordering policy by @kroese in #2023
- build: Add the mtools package to Dockerfile by @kroese in #2024
- build: Update QEMU base image to v7.42 by @kroese in #2026
- fix: Restore Windows 10 ISO downloads by @kroese in #2027
- docs: Environment variables by @kroese in #2029
- chore(deps): update hadolint/hadolint-action action to v3.4.0 by @renovate[bot] in #2028
- docs: Readme by @kroese in #2030
- build: Update workflows by @kroese in #2031
- feat: Avoid ISO rebuilding for dramatically faster preparation by @kroese in #2032
- build: Update workflows by @kroese in #2033
- feat: Migrate unattended commands from XML to scripts by @kroese in #2034
- feat: Read WIM metadata directly from ISO by @kroese in #2036
- feat: Improve Windows image detection and unattended setup by @kroese in #2037
- fix: Do not continue when drivers are missing by @kroese in #2038
- fix: Propagate command substitution failures by @kroese in #2039
- fix: Validate WIM architecture and enforce platform compatibility by @kroese in #2040
- fix: Refactor ISO build arguments by @kroese in #2041
- fix: Improve UEFI boot failure detection by @kroese in #2042
- fix: Handle unsupported installation media correctly by @kroese in #2043
- fix: Fail when domain membership cannot be applied by @kroese in #2044
- feat: Centralize image driver staging by @kroese in #2045
- fix: Preserve XML namespaces in answer file updates by @kroese in #2046
- fix: Use XML capability checks for image preparation by @kroese in #2047
- feat: Identify ESD media throughout image preparation by @kroese in #2048
- feat: Add Windows NT 4 support by @kroese in #2049
- fix: Remove setup image after Windows installation by @kroese in #2050
- feat: Add alternative ESD catalog mirror by @kroese in #2051
- fix: Remove suffix for ESD files by @kroese in #2052
- feat: Speed up ESD preparation by reusing the downloaded image by @kroese in #2053
- fix: Normalize downloaded boot image filenames by @kroese in #2055
- feat: Validate ESD catalog XML responses by @kroese in #2054
- fix: Isolate archived ISO extraction by @kroese in #2056
- fix: Improve shutdown message by @kroese in #2057
- feat: Improve legacy driver injection by @kroese in #2058
- fix: Detect encoded archive URL extensions by @kroese in #2060
- fix: Improve image edition detection by @kroese in #2061
- fix: Race between signal handler and cleanup by @kroese in #2062
- fix: Restore shutdown marker for background tasks by @kroese in #2063
- feat: Do not backup blank data disks by @kroese in #2064
- fix: Verify Windows downloads using source metadata by @kroese in #2065
- fix: Preserve product key structure in answer files by @kroese in #2066
- feat: Validate the required RAM amount per Windows version by @kroese in #2070
- fix: ISO language detection being lost in subshell by @kroese in #2071
- fix: Prefer install.wim in extracted media by @kroese in #2073
- fix: Hexadecimal El Torito load size parsing by @kroese in #2072
- fix: Prevent pathname expansion in edition matching by @kroese in #2074
- fix: Preserve signal exits during image detection by @kroese in #2075
- fix: Reject control characters in workgroup names by @kroese in #2076
- fix: Remove obsolete rebuilt custom ISOs by @kroese in #2077
- fix: Decode HTML query separators correctly by @kroese in #2078
- fix: Preserve signal exits during image downloads by @kroese in #2079
- fix: Localized Evaluation Center download selection by @kroese in #2080
- fix: Evaluation Center locale and link selection by @kroese in #2081
- feat: Use overlays for all modern Windows media by @kroese in #2082
- feat: Support direct ESD download URLs by @kroese in #2083
- feat: Use detected architecture for driver fallback by @kroese in #2084
- feat: Verify required RAM per Windows version by @kroese in #2085
- fix: Allow ESD images without descriptions by @kroese in #2087
- build: Update QEMU base image to v7.44 by @kroese in #2088
- fix: Quote usernames safely in setup scripts by @kroese in #2089
- fix: Lower the amount of RAM required for Win11 by @kroese in #2090
- fix: Legacy OEM script launch quoting by @kroese in #2091
- feat: Restore Windows 10 Enterprise mirror by @kroese in #2092
- fix: Propagate insufficient memory errors by @kroese in #2093
- fix: Preserve extraction signal exit statuses by @kroese in #2094
- feat: Reuse image cleanup helper after installation by @kroese in #2095
- fix: Handle temporary cleanup failures by @kroese in #2096
- fix: Handle answer files without product keys by @kroese in #2097
- fix: Deduplicate evaluation download links by @kroese in #2098
- fix: Trust VirtIO display driver publisher on Windows 8.1 by @kroese in #2099
- fix: Fail on answer file generation errors by @kroese in #2100
- fix: Stop falling back to manual setup on errors by @kroese in #2101
- fix: Trust VirtIO display driver publisher on Windows 8 by @kroese in #2102
- fix: Do not backup unfinished installations by @kroese in #2103
- fix: Simplify error propagation boundaries by @kroese in #2104
- fix: Distinguish ISO read failures from missing payloads by @kroese in #2105
- feat: Improve error logging by @kroese in #2106
- fix: Reduce amount of state variables by @kroese in #2107
- feat: Simplify WIM platform and version detection by @kroese in #2108
- fix: Correct identifier for LTSC/IoT editions by @kroese in #2109
- feat: Disable Windows Setup Dynamic Update by @kroese in #2111
- feat: Simplify getVersions function by @kroese in #2112
- fix: Improve Windows boot key timing by @kroese in #2113
- fix: Windows ARM boot key detection by @kroese in #2114
- fix: ARM64 LTSC Evaluation download route by @kroese in #2115
- fix: Use Enter for Windows boot key retries by @kroese in #2116
Full Changelog: v6.02...v6.04