Repository navigation
Report macOS 11+ and Windows 11 correctly to the update checker - #717
Merged
CoffeeFlux merged 1 commit intoOct 5, 2026
Merged
Conversation
CoffeeFlux
force-pushed
the
fix-macos-update-check-os
branch
from
October 5, 2026 16:59
4728ad0 to
a5367bc
Compare
GetOSShortName() only recognized a major version of 10 (or 0x10) on macOS, so macOS 11 and later fell through to "unknown". The version decoding was also out of date: it dates from wxWidgets 2.8, which returned Gestalt's BCD-packed version (e.g. 0x10 and 0x46 for 10.4.6), so it split the minor version into nibbles. wxWidgets started returning plain integers in 2011 (d132364 adapted to the new major version but kept the nibbles), which turned e.g. 10.15 into "osx0o". The required wxWidgets 3.2 gets the version from NSProcessInfo, so the packed format can no longer occur. Report the plain major and minor version instead, e.g. "osx15.6". Windows 11 also reports version 10.0, so it was counted as "win10". Report "win11" for build 22000 and later, the same cutoff wxWidgets uses; wxGetOsVersion returns the build number as the micro version.
CoffeeFlux
force-pushed
the
fix-macos-update-check-os
branch
from
October 5, 2026 17:00
a5367bc to
1a0a282
Compare
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.
Fixes two ways the update checker misreports the OS (the
osquery parameter).macOS 11 and later report as
unknown(about 10% of all update checks).GetOSShortName()only recognized a macOS major version of10(or0x10), and its decoding was out of date:0x10and0x46for 10.4.6. Splitting the minor version into nibbles was correct then.10but kept the nibble decoding, so e.g. 10.15 becameosx0o.unknown.wxWidgets 3.2 (our minimum) and 3.3 get the version from
NSProcessInfoas plain integers, so the packed format can no longer occur. This reports the plain major and minor version instead, e.g.osx15.6orosx10.15.Windows 11 reports as
win10. Windows 11 is still NT 10.0 in every version API; only the build number distinguishes it. This reportswin11for build 22000 and later, the same cutoff wxWidgets uses (wxGetOsVersionreturns the build number as the micro version). Server 2022 (build 20348) stayswin10; Server 2025 reportswin11.The update server stores the value as-is, so it needs no change.