Skip to content

Comments

MacOS 26 Screensaver fixes#6460

Merged
AenBleidd merged 8 commits intomasterfrom
MacOS26_SS_Fixes
Jul 26, 2025
Merged

MacOS 26 Screensaver fixes#6460
AenBleidd merged 8 commits intomasterfrom
MacOS26_SS_Fixes

Conversation

@CharlieFenton
Copy link
Contributor

This PR updates 2 aspects of BOINC screensaver logic for MacOS 25:

  • The BOINC screensaver coordinator runs properly under the legacy screensaver engine
  • MacOS 14 and MacOS 15 broke the ability select a screensaver programmatically, so the BOINC installer cold no longer offer the option to set BOINC as your screensaver. MacOS 26 restores that capability, but using a different API. Changes in this PR implement that capability, again offering the user the option to set BOINC as their screensaver.

This code is backward compatible with earlier versions of MacOS, so it can be merged into all new releases of BOINC.

@CharlieFenton CharlieFenton marked this pull request as draft July 24, 2025 12:21
@CharlieFenton CharlieFenton marked this pull request as ready for review July 24, 2025 14:32
@CharlieFenton
Copy link
Contributor Author

This is ready to merge when CI checks complete successfully

@AenBleidd
Copy link
Member

@CharlieFenton, please fix this error:

D:\a\boinc\boinc\clientscr\screensaver.cpp(568,5): error C2065: 'graphicsAppStartTime': undeclared identifier [D:\a\boinc\boinc\win_build\boinc_os_ss.vcxproj]
D:\a\boinc\boinc\clientscr\screensaver.cpp(643,17): error C2065: 'ss_shmem': undeclared identifier [D:\a\boinc\boinc\win_build\boinc_os_ss.vcxproj]
D:\a\boinc\boinc\clientscr\screensaver.cpp(644,17): error C2065: 'ss_shmem': undeclared identifier [D:\a\boinc\boinc\win_build\boinc_os_ss.vcxproj]
D:\a\boinc\boinc\clientscr\screensaver.cpp(645,17): error C2065: 'ss_shmem': undeclared identifier [D:\a\boinc\boinc\win_build\boinc_os_ss.vcxproj]
D:\a\boinc\boinc\clientscr\screensaver.cpp(646,17): error C2065: 'ss_shmem': undeclared identifier [D:\a\boinc\boinc\win_build\boinc_os_ss.vcxproj]
D:\a\boinc\boinc\clientscr\screensaver.cpp(647,17): error C2065: 'ss_shmem': undeclared identifier [D:\a\boinc\boinc\win_build\boinc_os_ss.vcxproj]

@AenBleidd AenBleidd requested a review from Copilot July 24, 2025 17:18

This comment was marked as outdated.

@AenBleidd AenBleidd requested a review from Copilot July 25, 2025 22:11
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements macOS 26 screensaver functionality fixes for BOINC, addressing two key issues: proper operation of the BOINC screensaver coordinator under the legacy screensaver engine, and restoration of programmatic screensaver selection capability that was broken in macOS 14-15.

Key changes include:

  • Enhanced BOINC_Finish_Install utility with macOS 26 screensaver setting capabilities and improved localization support
  • Restructured installer architecture to place BOINC_Finish_Install in the BOINC Data folder instead of user directories
  • Improved screensaver engine stability and lifecycle management with better signal handling and resource cleanup

Reviewed Changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
mac_installer/release_brand.sh Updates build script to include AddRemoveUser executable and restructures BOINC_Finish_Install placement
mac_installer/release_boinc.sh Mirrors branding script changes and removes obsolete embedded finish install handling
mac_installer/finish_install.cpp Adds macOS 26 screensaver setting functionality, localization support, and improved argument parsing
mac_installer/PostInstall.cpp Removes legacy screensaver setting code and updates to use centralized finish install location
mac_build/boinc.xcodeproj/* Updates Xcode project configuration for new build dependencies and finish install handling
clientscr/.cpp/.m Improves screensaver engine stability with better lifecycle management and signal handling
clientgui/mac/templates/*.plist Updates plist templates with corrected DTD references and icon specifications
client/*.cpp Minor logging improvements and security check updates for branded installations
Comments suppressed due to low confidence (1)

clientscr/Mac_Saver_ModuleView.m:147

  • The comment 'CAF' is unclear and should be expanded to explain what it stands for or its purpose in this context.
bool gIsBigSur = false;

@AenBleidd
Copy link
Member

@CharlieFenton, is it ready to be merged?

@CharlieFenton
Copy link
Contributor Author

@AenBleidd Not quite yet. I want to investigate Copilot's latest comments first

@CharlieFenton CharlieFenton marked this pull request as draft July 26, 2025 08:15
@CharlieFenton CharlieFenton marked this pull request as ready for review July 26, 2025 10:13
@CharlieFenton
Copy link
Contributor Author

@AenBleidd This should be ready to merge now.

@AenBleidd AenBleidd merged commit b196205 into master Jul 26, 2025
175 checks passed
@AenBleidd AenBleidd deleted the MacOS26_SS_Fixes branch July 26, 2025 12:08
@github-project-automation github-project-automation bot moved this from In progress to Merged in Client/Manager Jul 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants