diff --git a/CHANGELOG.md b/CHANGELOG.md index b07b3284f..128c13681 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Enable AppleMCEReporterDisabler whenever spoofing affected SMBIOS - ie. iMacPro1,1, MacPro6,1 and MacPro7,1 - Verify host's disk space before downloading macOS Installers +- Remove duplicate OS builds in macOS downloader + - Avoids Apple's odd bug of publishing 2 different 12.5.1 products ## 0.4.10 - Resolve Nvidia Kepler support in macOS 12.5 Beta 3 and newer diff --git a/resources/installer.py b/resources/installer.py index 4ce7bf097..efce2797f 100644 --- a/resources/installer.py +++ b/resources/installer.py @@ -187,6 +187,7 @@ def only_list_newest_installers(available_apps): for version in supported_versions: remote_version_minor = 0 remote_version_security = 0 + os_builds = [] # First determine the largest version for ia in available_apps: @@ -221,13 +222,25 @@ def only_list_newest_installers(available_apps): remote_version.pop(0) if int(remote_version[0]) < remote_version_minor: available_apps.pop(ia) - elif int(remote_version[0]) == remote_version_minor: + continue + if int(remote_version[0]) == remote_version_minor: if len(remote_version) > 1: if int(remote_version[1]) < remote_version_security: available_apps.pop(ia) + continue else: if remote_version_security > 0: available_apps.pop(ia) + continue + + # Remove duplicate builds + # ex. macOS 12.5.1 has 2 builds in the Software Update Catalog + # ref: https://twitter.com/classicii_mrmac/status/1560357471654379522 + if available_apps[ia]["Build"] in os_builds: + available_apps.pop(ia) + continue + + os_builds.append(available_apps[ia]["Build"]) return available_apps