

Release notes for the BOINC Client:

Changes in 7.16.11

Win installer: bump VBox version to 6.1.12.

Manager: change "Show graphics" button to "Stop graphics" when gfx running (Mac only)

Mac: Fix screensaver coordinator to run properly under Mac OS 11 Big Sur

Mac: Enable close button in project graphics run by BOINC Manager "Show Graphics"

Manager: remove cookie-based autoattach schemes

Client: if AM reply includes a project we're attached to under a different account, honor the params in the AM reply, e.g resource share.

Client: Pass user priority config items to wrappers

Mac: Improved screensaver logic for OS 10.15 Catalina

Client: allow specifying device name in cc_config.xml

Manager: don't let user attach to account manager as a project.

Client: initialize log flags to tasks, sched_ops, file_xfer

Added a warning when the manager detects a second copy of itself

Client: measure disk usage in terms of allocated disk space, not file size

Client: avoid CPU starvation when GPU computing is suspended

Client: don't allow empty GUI RPC password

Client: don't show "no work" messages as notices

Client: let a project master URL change from http: to https: without involving the user.

When parsing NVIDIA driver version, max minor version with 99.

Client: GUI RPC: bind to INADDR_ANY if a remote host is actually configured

Changes in 7.16.6

Released 10 March 2020

If output file is missing on startup, flag task as error.

Let project specify directories in logical file names.

Fix security vulnerability involving logical file names.

Make "reread config files" work for ncpus.

Support fetch of files over GUI RPC; allow projects to supply their own web-based GUI.

FreeBSD: check for AVX

Support GUI RPCs as HTTP Post requests.

Register user consent to terms of use.

Enable "Other options" in simple view if no client connected.

Clear "vm_extensions_disabled" flag on startup.

Fix work fetch bug when max_concurrent used.

Unsuspend jobs before telling them to quit.

Sanity-check job runtime limits.

Fix overflow in OpenCL GPU FLOPS calculation.

Windows: show processor group info at startup

Fix stall if --skip_cpu_benchmarks

Fix crash in RSS feed fetch

Windows: fix GUI RPC password generation when running in a VM

Windows: make --dir work

Changes in 7.14.2

Released 11 October 2018

Mac: screensaver works with OS 10.14 Mojave

Mac: screensaver works with dual-GPU MacBook Pro running OS 10.13+

Mac installer: don't overwrite project list if newer

Fix GPU detection when run with --detach_console or using $PATH

Update NVIDIA GPU detection for recent models

Change simple prefs dialog behavior to match advanced

If using a dynamic account manager, show AM user name in Manager rather than randomly-generated project account names

Move new-version URLs from cc_config.xml to nvc_config.xml (so that WCG can customize)

Changes in 7.12.1

Released 15 July 2018

Fix auto-attach for Windows

Changes in 7.12.0

Released 15 July 2018

When auto-attach to an account manager, show its name.

Work correctly with account managers that use authenticators rather than name/password.

Windows 10: detect and report Windows Subsystem for Linux (WSL)

Supports HTML in project terms of use

Fix Next buttons in attach wizard after failed login

Show informative error message if login token lookup fails

Version 7.10.3

Released 8 June 2018 (Mac only release)

Patch wxWidgets 3.1.0 to fix BOINC Manager crash on OS 10.6

Version 7.10.2

Released 21 May 2018

MGR: don't crash if GUI RPC returns empty reply

MGR: use "client" instead of "daemon"

MGR: Rename OK button to Save button

MGR: remove excess blank lines in notices

client: fix bug where client does tight loop if no_gui_rpc set

client, MGR: add auto-login

MGR: don't show Attach Wizard at startup if autologin in progress

client: make autologin work for account managers as well as projects

Mac client: Fix bug which caused BOINC client built with SDK OS 10.11 or later to fail to get correct system RAM size when running on older versions of OS X

Mac client: fix a bug which caused the BOINC client to crash immediately on launch under OS X versions OS 10.11 and earlier

client: update ca-bundle.crt to latest copy of certificates

boinccmd: show CPU/GPU resources in --get_task

Update all_projects_list.xml file.

Linux: Default working directory changed to /var/lib/boinc

Show build not OS platform in messages

Version 7.8.5

Released 12 January 2018 (Mac only release)

Mac screensaver: under OS 10.13+ if the BOINC screensaver cannot display a graphics app with hardware acceleration using the IOSurface APIs because the app has not been linked with the current graphics libraries, then display it using the much slower CGWindowListCreateImage API.

Version 7.8.4

Released 10 November 2017 (Mac only release)

Fix the calculation of GPU memory when running under OS 10.13 High Sierra.

Version 7.8.3

Released 4 October 2017

client: extensions, fixes to account manager functionality

client: eliminate possible buffer overflow in reporting result errors

lib: fix boinc_file_exists() on Windows

Mac: Changes to Xcode project to support screensaver changes for Mac OS 10.13.

Screensaver: Changes for screensaver to support Mac OS 10.13

api: BOINC graphics library changes to support Mac OS 10.13

client library: inconsistent terminology for intel_gpu

update project list

Locale: Update french localization files

update installshield files

Version 7.8.2

Released 28 Aug 2017

Added VirtualBox 5.1.26 for compatibility with Windows 10.

Don't crash Manager if GUI RPC returns empty reply.

Mac installer & uninstaller changes.

Massive Mac API code cleanup for OS 10.12

Newly translated localization files.

Updated to OpenSSL 1.1.0, c-Ares 1.11.0 and LibCurl 7.50.1

Fix corruption of large downloads in docker/VirtualBox containers.

Fixed delay on Windows start-up due to overzealous anti-virus.

Add GUI RPCs for reading and writing app_config.xml files.

Show alt platforms in event log at startup.

Fix notices display under Mac OS 10.12.4

Tweaks and fixes to Account Manager logic.

Tweaks to AMD and Nvidia GPU detection and flop estimates.

Fix for certain crash conditions.

Version 7.6.34

Released 9 April 2017

Fix for Manager Notices Tab failing under Mac OS 10.12.4

Version 7.6.33

Released 5 June 2016

AMD GCN GPU recognition fixed.

Reinstate XScreensaver on Linux.

Fixed idle detection on Linux.

Fixed Mac screen saver.

Updated to OpenSSL 1.0.2g.

Updated to LibCurl 7.47.1

Fixed Nvidia GPU driver detection.

Fixed Windows process initialization error code when the user session is being logged off.

Version 7.6.22

Released 30 Dec 2015

Updated localizations

Updated libcurl, openssl, and VirtualBox (for packages that include VirtualBox)

Fixed VirtualBox detection for Mac and Linux

Fixed numerous issues detected via coverity source code scans.

Fixed how elapsed time is displayed in the manager

Fixed localized number formatting issues

Fixed crash analysis code in the manager (Windows Only)

Fixed GPU detection issues

Fixed minimum password text in attach wizard

Fixed clipping of the project icons in the simple GUI (Windows Only)

Version 7.6.9

Released 31 Aug 2015

MGR: improve validity checking in advanced prefs dialog

MGR: use lighter red for error fields

MGR: in Advanced Preferences dialog highlight textedit field with illegal value by setting its background to red.

MGR: in prefs dialog, buffer size limits are 10, not 100

MGR: string tweaks

MGR: typo fix

MGR: show executable filename in task properties

MGR: Make the average and total credit strings translatable and add comments for context.

MGR: Tighten up the code to the last commit a bit.

MGR: Fix the string construction of the 'work fetch deferral' stuff to be more localization friendly.

MGR: Flag previously untranslatable strings as translatable.

MGR: reorder items in simple view prefs

MGR: show last RPC time in project properties

MGR: display total credit with thousands separators

client: show more (but still not all) config options

client: don't use estimated fraction done until 1 minute has elapsed

client and API: pass list of app version files in init_data.xml

client: fix bug where elapsed time increased while suspended

client: if app reports frac done outside [0,1] write message

client: if a GPU exclusion refers to non-existent device num, ignore it

client: change cpu_sched_debug log messages to show job's GPU type

client: if app reports fract done > 1, use asymptotic formula

client: On Macs, fix failure to recognize CUDA devices when BOINC is launched automatically at login before CUDA has initialized at system boot.

client: if app reports fraction done outside 0..1, truncate

client: Avoid kernel panics at system boot when running as a service / daemon under Mac OS 10.10.4.

client: fix job scheduling bug that starves CPU instances

client: parse ARM CPU model

LIB: add function for formatting numbers w/ digit grouping

LIB: setbuf() only disables the CRT buffer and flush only works against the CRT buffers.

Mac uninstaller: Fix a hang bug on some older versions of OS X (including 10.6.8.)

Mac installer: attempt to prevent a rare installer crash when system is set for a language other than English.

Mac installer: Fix bug introduced in my commit 3e1428c which prevents installing on OS X older than OS 10.9 unless BOINC users and groups already exist (i.e., which causes a clean install to fail.)

Version 7.6.7

Released 24 Aug 2015

Prevent kernel panic when launch daemon mode. (Mac Only)

Version 7.6.6

Released 24 Aug 2015

Improved advanced preferences dialog (more closely aligned with web based preferences)

Improved menu layout

Updated localizations

Able to deal with project files greater than 4GB

Version 7.4.42

Released 10 March 2015

Update localizations

Screensaver fix for when the client is suspended

When using a proxy, fallback to HTTP 1.0 if the proxy returns a 417 status code.

Fixed Windows 10 detection (kernel version change)

Version 7.4.36

Released 1 January 2015

Attaching to World Community Grid

Back-up projects (0 Resource Share)

Better detection of notice updates (reduces the number of system notifications)

Suspending GPUs should not suspend Bitcoin Miners

Increasing the maximum number of coprocessor devices to 64

Updates to OpenSSL(1.0.1j) and LibCurl(7.39.0)

Version 7.4.26/.27

Released 11 November 2014

Add support for notices that contain images and videos.

Add support for generic OpenCL devices. (Parallella, etc.)

Add support for ASIC Miners.

Add new AMD GPU descriptions.

Add new Windows version descriptions.

Add support for Mac OS X 10.10 (Yosemite)

Add support for Windows 10

Version 7.2.42

Released 27 February 2014

Fix: Fix problem that was causing scheduler RPCs to fail on Yoyo@home (HTTP status code 400)

Version 7.2.41

Released 3 February 2014

Fix: make 'stationary device mode' opt-in, since detection does not work reliable. (Android)

Version 7.2.40

Released 3 February 2014

Fix: Reset corrupted localizations.

Version 7.2.39

Released 27 January 2014

Fix: Remove Sub-second CPU throttling.

Fix: Version information of Mac OS X. (Mac)

Version 7.2.38

Released 16 January 2014

Fix: Provide a more accurate estimate of fraction done.

Fix: Various CPU and GPU scheduling issues.

Version 7.2.37

Released 7 January 2014

Fix: Project list properly discards plan class. (Android)

Fix: Updated UI Layout. (Android)

Fix: Localization updates. (Android)

Version 7.2.36

Released 3 January 2014

New: Add support for AC powered devices like the Ouya. (Android)

Version 7.2.35

Released 7 December 2013

Fix: Fix crashing issue that prevented the UI from being displayed. (Android)

Version 7.2.34

Released 3 December 2013

New: Add mechanism for translatable notices. (Windows, Mac, Linux)

New: Processor support updates. (We now support ARM, MIPS, and x86 processors) (Android)

New: Sub second CPU throttling. (All Platforms)

New: Process <app_version/> elements in app_config.xml file. (All Platforms)

Fix: Localization updates. (We now support 24 different languages) (Android)

Fix: Project control buttons added for trying transfers and visiting the project website. (Android)

Fix: Fix several issues with CPU Throttling and GPU applications. (All platforms)

Fix: Normalize the CPU feature list on Mac and Haiku with other platforms supported by BOINC. (Mac)

Fix: Add a VirtualBox icon to the list of icon in the attach wizard. (Windows, Mac, Linux)

Version 7.2.33

Released 26 November 2013

New: Default installer includes VirtualBox (Windows Only)

Fix: Properly handle the exclusive application feature from the UI.

Version 7.2.31

Released 21 November 2013

Fix: Disable downloading of images in notices; It was crashing the Manager.

Version 7.2.28

Released 8 November 2013

New: OpenCL CPU support for Intel and AMD CPUs.

New: Add new AMD GPU descriptions.

New: Add new Windows version descriptions. (Windows Only)

Fix: Various changes to CPU and GPU scheduling and work-fetch.

Fix: Updated Translations

Fix: Support for HTTPS urls in notices.

Fix: for running VirtualBox VMs when installed as a service. (Windows Support, it was already support for Mac OS X and Linux)

Version 7.2.15

Released 6 September 2013

Fix: Updated Translations. (Android Only)

Fix: Device name issues. (Android Only)

Version 7.2.9

Released 8 August 2013

Android: Initial public release.

Version 7.0.29 - 7.0.65

Released 17 April 2013

New: OpenCL support for Intel GPUs

New: Add new AMD GPU descriptions.

New: Add new Windows version descriptions. (Windows Only)

New: Implement code-signing policies for BOINC on Mac OS X (required for 10.8)

Fix: Various changes to CPU and GPU scheduling and work-fetch.

Fix: Updated Translations

Fix: Properly shutdown BOINC Screensaver on certain types on machines. We don't know what the exact trigger was but it seemed to affect .5% of people using the screensaver. (Windows Only)

Fix: Properly shutdown BOINC when Windows is shutdown. (Windows Only)

Fix: Do not crash the BOINC Manager when images are included in notices. (Windows Only)

Version 7.0.26 - 7.0.28

Released 29 June 2012

Fix: Fix installer for Windows 8 (Windows Only)

Fix: Fix issue with screensaver shutdown logic. (Windows Only)

Fix: Fix issue where the client reports that the science applications exited with a status code of 1. (Windows Only)

Fix: Fix log growth issue. (Windows Only)

Fix: Don't assign CUDA jobs to a GPU where only OpenCL has been detected on an Nvidia GPU.

Fix: Fix GPU naming issue when there is more than one GPU by a vendor in the machine.

Version 7.0.25

Released 5 April 2012

New: Simple GUI now localized and accessible

New: OpenCL Support

New: Improved Virtual Machine Support

New: Improved Client Scheduler

Version 6.12.34 - 6.12.35

Released 28 July 2011

Fix: Fix diagnostics error dialog poping up for the screensaver (Windows Only)

Fix: Fix diagnostics output for BOINC Manager (Windows Only)

Fix: Fix bug where menubar icon menu did not work after changing skin (Mac Only)

Version 6.12.27 - 6.12.33

Released 14 June 2011

New: Allow specifing application level non-cpu-intensive applications

New: Detect BOINC Specific browser cookies for Mozilla Firefox 4/5 and Google Chrome

Fix: Numerous CPU/GPU scheduling fixes

Fix: Numerous work-fetch fixes

Fix: Correct account manager opaque data field type in RPCs

Fix: Reduce the number of times the new notice ballon is displayed

Fix: Do a better job of process clean-up

Fix: Startup and shutdown logic cleaned-up

Version 6.12.26

Released 17 May 2011

New: Project notices. This feature is designed to help projects improve communication between themselves and the volunteers by automatically displaying project news within the BOINC Manager

New: !VirtualBox Detection for projects that want to process work within a Virtual Machine

New: New BOINC Skin for the simple GUI

Fix: Numerous CPU/GPU scheduling fixes

Fix: Numerous work-fetch fixes

Fix: Adjust permissions when installed as a service so that project GPU applications are not denied access to GPU DLLs (WinXP and Win2000 Only)

Version 6.10.59 - 6.10.60

Released 25 March 2011

Fix: Project list issue in the attach wizard that lead to a crash (Linux)

Fix: Screensaver coordinator issue when shutting down the screensaver. (Win)

Version 6.10.57 - 6.10.58

Released 6 July 2010

New: Enable the ability to automatically join teams from installer scripts (Win, Mac)

Fix: Elasped time tracking issue

Fix: Fix crash condition that would happen if drivers for ATI/Nvidia were installed incorrectly or clashed with other drivers in the system. (Win)

Fix: Cleanup accessibility items (Mac)

Fix: Display both OS version and kernel version on startup (Mac)

Fix: Fix bug that caused a new CPID to be generated at startup (Mac)

Version 6.10.19 - 6.10.56

Released 24 May 2010

New: Added Run time preference: "While processor usage is less than xx Percent. (0 means no restriction)". 25% is default. From 6.10.36+

New: Updated localization files

New: Added accessibility support for advanced view (Mac)

New: Added support for parsing username and password information from environment variables

New: Added ability to ignore specific GPU cards through the use of ignore device through the use of a configuration file option

New: Added ability to suspend BOINC's use of GPUs when certain applications are run through the use of a configuration file option

New: Allow new screen saver options to be configured via the OS specific configuration screen

New: Snooze GPU option off of the system tray menu

New: Adjust GPU activity settings via the advanced view activity menu

New: Added ability for a project to be specified as a "Backup Project" by setting its resource share to 0

New: Suspend computation of BOINC applications if CPU usage from non-BOINC applications exceeds a volunteer defined value (Defaults to 25%)

New: Support detecting SSE2, SSE3, and other forms of advanced instruction sets for older Windows machines (Windows)

New: Support for custom installers to automatically cause new accounts to join a specific team when atteching to a project for the first time (Windows)

New: Support for Nvidia Fermi cards

New: Added support for 'Transfer at most X Megabytes every N days' preference

Fix: Name resolution issues (Mac)

Fix: Activity Menu display issues (Linux)

Fix: Reduce CPU load in dealing with communications between manager and core client (Windows)

Fix: Properly display project descriptions on Windows XP machines in the attach to project wizard

Fix: Numerous CPU/GPU scheduling fixes

Fix: Numerous work-fetch fixes

Fix: Mac Installer for non-admin installs

Fix: Recover from crashes in Nvidia and ATI GPU functions (Linux, Mac)

Fix: Reap child processes spawned from a wrapper on Posix systems (Linux, Mac)

Fix: If a project supports ATI or Nvidia projects, display their icons in the project list

Fix: Show most commonly used preferences in use during startup via messages.

Version 6.10.18

Released 6 Nov 2009

Updated localization files

Updated to OpenSSL 0.9.8l (Fixes a new man in the middle potential exploit due to encryption renegotiation)

Version 6.10.17

Released 30 Oct 2009

Support added for ATI GPUs.

Support for automatic proxy detection on Windows.

Improvements to the CPU/GPU scheduler.

A new default screen saver.

Version 6.6.41

Released 22 Oct 2009

client: fix crashing bug introduced in [18605]

client (Linux): when launching apps, put a relative path to the executable (../../projects/x/y) into argv[{{{0}}}], not just the executable filename.

MGR: Fix initial first connection problem on startup.

Version 6.6.40

client: fix compiler warning (too few args for print format)

Mac: fix compile breaks

client (Unix): fix bug that caused GPU reservation to not work. The problem: we were doing the reservation after the fork(), so that the data structure it changed was the app's, not the client's.

MGR: on Linux, check list of running processes from procinfo_setup() to determine if BOINC core client is running.

MGR: on Linux, accept 2 optional arguments: -clientdir or -e for directory containing client executable, default is the directory containing the manager executable. -datadir or -d for BOINC data directory, default is the directory containing the client executable. These are used by the manager when launching the client.

MGR: Bug fixes for Linux.

Version 6.6.39

client: add a bunch of debugging messages (<task_debug>) for showing how GPU instances are being reserved

Version 6.6.38

Mac Installer: use escaped form of branded screensaver name when needed.

GUI RPC: add get_message_seqno() RPC. fixes #931

client: error if a <file_info> in app_info.xml has any URLs

client: don't write file_infos with no URLs to client_state.xml for anon platform project; they must be from app_info.xml

client: restored code for project-wide backoff on file uploads and downloads. Fixes #932.

client: if malloc fails in MFILE writes, exit. Fixes #281

client: code cleanup for project-level file xfer backoff

client/manager/GUI RPC: show project-level backoffs

client: changed file upload logic

client: if file < 8KB, upload it in its entirety and skip size check

client: don't skip file size check if file has multiple upload URLs. We might have uploaded different amounts on different servers.

client: change the way a resource's "estimated delay" (passed to server for crude deadline check) is computed.

Version 6.6.37

MGR: use branded Manager name in async RPC Please Wait dialog.

Mac: Update copyright date in InfoPlist.strings files to 2009.

Mac MGR: strip /n from command field of PROCINFO struct so <exclusive_app> log flag works properly on Mac.

MGR: Change CBOINCClientManager::KillClient() to get client pid from procinfo_setup() on all non-Windows platforms.

Mac Sandbox: check_security() writes path of bad file to stderr for some error codes.

Mac MGR: fix compile break.

MGR: Compile fix.

client: include device number in message describing NVIDIA GPU, and call it "NVIDIA GPU" rather than "CUDA device" fixes #879

client: tweak messages

client: Fix missing argument in printf statements.

fix to the above

Mac Installer: Delete any old PTP branded versions.

client: prepend rather than append to LD_LIBRARY_PATH; on Mac, change DYLIB_LIBRARY_PATH also.

MGR: Fix Mac compile error in addition of DYLIB_LIBRARY_PATH.

MGR: Fix a long standing bug where the project list control for the account manager info page and the project info page was not consuming available screen space. Previously we hacked around it by setting an explicit size. Note: this works on Windows, I don't yet know about Mac and Linux.

MGR: Fix fatal error which caused crash in Accoount Manager Wizard.

client: when suspending a GPU job, always remove it from memory, even if it hasn't checkpointed. Otherwise we'll typically run another GPU job right away, and it will bomb out or revert to CPU mode because it can't allocate video RAM

MGR: Remove project list randomization, sort on name.

MGR: Previous sorting method wasn't working, use a sort function pointer instead.

client: record the time results are received. Process non-EDF GPU jobs in this order.

Version 6.6.36

Released 10 June 2009

client: read app_info.xml's AFTER scanning GPUs. Otherwise we'll discard all GPU apps and results.

Version 6.6.35

MGR: CBOINCClientManager::ProcessExists() finds the process by name if we don't have a pid (Mac, Linux) or process HANDLE (Windows). On Mac and Linux, it returns the pid if the process was found.

MGR: Use code like get_client_mutex() to determine if client is running. New CBOINCClientManager::KillClient() uses process name to kill client if we don't have a pid (Mac, Linux) or process HANDLE (Windows). NOTE: Windows implementation not yet finished.

MGR: Implement CBOINCClientManager::KillClient() and IsBOINCRunning() for Windows. NOTE: I have confirmed that the "ps -a -x -c -o command,pid" command as used in IsBOINCRunning() should works in Ubuntu under VMWare, but it needs to be tested on other Linux platforms.

lib: Fix FILE_LOCK::unlock() to reset fd to -1 so FILE_LOCK works correctly with repeated calls.

MGR: Fix compiler error on Windows.

lib: Fix compiler error on Windows.

Mac MGR: In Async RPC logic, use posix mutexes and conditions instead of wxWidgets implementations on the Mac, as this appears to fix an intermittent hang in wxCondition::Wait().

lib: FILE_LOCK::lock() makes lockfile group-writable so both client and manager can create and write it under sandbox security.

Version 6.6.34

client: if scheduler request didn't request work, don't report 0 tasks

client: show "est. delay" correctly in work fetch debug msgs

client: show times correctly in rr_sim debug msgs

client: in "requesting new tasks" msg, say what resources we're requesting (if there's more than CPU)

client: estimated delay was possibly being calculated incorrectly because of roundoff error

client: add a 1e-6 slop factor in deciding if a resource is fully utilized.

client: when parsing app_info.xml, make sure coprocessors are present. fixes #911

Version 6.6.33

client: include plan class in other_result list in sched request (for resource-specific jobs-in-progress limit)

Version 6.6.32

MGR: fix display problem when talking to old clients

MGR: In Async RPC logic, change calling order for wxCondition and wxMutex from <Set Boolean, Lock, Unlock, Signal> to <Lock, Set Boolean, Signal, Unlock> to be consistent with examples in literature, hoping this might fix an intermittent hang in wxCondition::Wait().

Version 6.6.31

client: fixed nasty bug that caused GPU jobs to crash on startup when they're preempting another GPU job.

The problem was as follows: - job A is chosen to preempt job B - we tell job B to quit, and initialize job A but don't start it; however, we set if scheduler state to SCHEDULED (rather than UNINITIALIZED) - job B exits, and we start job A. Since its state is not UNITIALIZED, we don't set up its slot dir. - job A runs in an empty slot dir, doesn't find its files, and bombs out.

client: add <slot_debug> option (prints messages about allocation of slots, creating/removing files in slot dirs).

Version 6.6.30

MGR: Always treat quit RPCs as non-demand so Manager can exit when client is not responding; don't remove currently active RPC request from queue when receiving a quit RPC request.

MGR: Update m_dtCachedCCStatusTimestamp only when RPC completes.

MGR: Add an "Exit BOINC" button ("Quit BOINC" on Mac) to async RPC "Communicating with BOINC Client. Please wait..." dialog. This allows users to exit BOINC more easily when Client is unresponsive.

MGR: Fix bug which prevented skin change from being saved if exiting Manager while in Simple View.

MGR: Fix bug where*nix platforms using UCS2 Unicode encoding were not able to display graphics as one or more null bytes separate each character.

MGR: Fix bug where there was no trailing backslash before 'symbols' was appended to the end of the symbol path. This caused the stack tracing code not to download the actual symbol files needed to debug a problem. I have no idea when this bug was introduced.

Version 6.6.29

Released 15 May 2009

client: write message (and show new config info) when config file reread

client: improve cpu_sched_debug messages

client, Mac: don't do res_init(). It causes a crash.

client (Unix): if client crashes while benchmark processes are going, make sure they detect this and exit.

Mac: Remove -lresolv from XCode linker flags for client, manager, boinccmd and screensaver which linked with libresolv.dylib for res_init() call.

Mac client: fix parent died test in benchmark_time_to_stop().

Version 6.6.28

client: enforce_schedule() wasn't starting GPU jobs

Version 6.6.27

client: view 2 GPUs as equivalent if their memory differs by <30%. (maybe their memory differed slightly from the most capable one)

client: simplify enforce_schedule(), and maybe fix bugs. New approach: take the "ordered_schedule_results" list, add running jobs that haven't finished their time slice, and order the result appropriately. Then run jobs in order until CPUs are filled. Simpler and clearer than the old way.

Version 6.6.26

MGR: Turn GetViewName into the unlocalized version of the view name, so the configuration group name is consistent across all languages and does not cause conversion issues on different platforms where the configuration information is treated differently when compiled Unicode vs. ANSI.

Version 6.6.25

client: tweak to 4/21 checkin. After finding the "most capable" GPU, ignore FLOPS in deciding what GPUs are equivalent to it. This opens up the possibility that the client will get jobs that it won't be able to finish in time. But it still avoids getting jobs that will crash.

client: show message when user does a project or task op (suspend, resume, update, etc.)

client: add <use_all_gpus> config option. If set, use GPUs even if they're not equivalent to the most capable one.

Version 6.6.24

Mac: Add -lresolv to XCode linker flags for client, manager boinccmd and screensaver to link with libresolv.dylib for res_init() call (again). Add #include of <resolv.h> to non-Windows network.cpp. (Changes checked in to boinc_core_release_6_6_23.)

Mac MGR: Add keyboard shortcuts command-shift-S to switch to Simple View and command-shift-A to switch back to Advanced View.

client: fixed a crash caused by using %f to write working-set size into a fixed-size buffer. Use %e instead.

client: if detach a project, adjust debts and trigger CPU sched and work fetch

client: improve CPU sched debug messages (say what kind of job and why we're scheduling it)

client: log messages describing GPUs: one line per GPU; fixes #879

client: new approach to handling multiple GPUs.

old: find fastest GPU, and pretend that others are the same. Problem: other GPUs might be less capable, and not able to handle jobs sent by server.

new: find the most "capable" GPU, use others that are equivalent, don't use those that are not.

"Capable" is defined by - compute capability (i.e., hardware version) - driver version - memory size - FLOPs in that priority order.

client: When a preemptable task wasn't preempted (e.g. because it hadn't finished its time slice) we were failing to mark it as scheduled.

Version 6.6.23

client: for each app version, keep track of the largest WSS of tasks using it. In checking whether tasks fit in RAM, use this as an estimate for tasks that haven't started yet. This avoids a situation where the client starts a lot of tasks in sequence, only to find that each one doesn't fit in RAM.

client: for coproc jobs, don't start a job while a quit is pending. Otherwise the new job may fail on memory allocation.

client: instead of scheduling coproc jobs EDF:

first schedule jobs projected to miss deadline in EDF order

then schedule remaining jobs in FIFO order

This is intended to reduce the number of preemptions of coproc jobs, and hence (since they are always preempted by quit) to reduce the wasted time due to checkpoint gaps.

client: the CPU scheduling policy made use of the number of deadline misses in various places. This should include only the deadline misses of CPU jobs. So move "deadlines_missed" from RR_SIM_STATUS and PROJECT to RSC_PROJECT_WORK_FETCH so that we have separate counts for CPU and coproc jobs, and use the count for CPU jobs.

GUI RPC: removed the rr_sim_deadlines_missed field from project descriptor. This is no longer meaningful, and it didn't seem to be used anywhere.

GUI RPC and manager: send slot and show it in task properties rather than slot path (slot_path is defined only for apps with graphics app).

client: put back the call to res_init() on lookup failure. Apparently it worked after all.

Version 6.6.22

Mac client: fill in command field of PROCINFO struct so <exclusive_app> log flag works properly on Mac.

WINSETUP 'Everyone' is not just a group, it is a well known group.

WINSETUP: Be sure to define INSTALLDIR if it isn't already defined by the system or the transform. DATADIR was already being handled.

WINSETUP: Save setup state at the end of the execution phase as well as the end of the UI phase.

Version 6.6.21

Mac: Add -lresolv to XCode linker flags for screensaver.

MGR: on Mac, implement standard Preferences item under BOINC menu with standard keyboard shortcut; same as Advanced/Preferences.

WINSCR: It appears newer notebook models with multiple video chipsets exhibit an interesting situation. It appears as though in certain conditions a single monitor machine actually reports itself as having three monitors. Normally the monitor that contains the primary window (coord 0,0) is on monitor 0, but on these machines coord 0,0 is actually on monitor 2. This led to the screensaver not properly exiting when keyboard and/or mouse activity was detected. Now when we detect that keyboard and/or mouse activity has happened we send the WM_INTERRUPTSAVER event to all windows on all monitors.

WINSETUP: When uninstalling, don't migrate the client data back to the 5.x location.

WINSETUP: On some setups, how we were including the 'Everyone' well known security ID in the boinc_users group didn't work properly. From now on include the 'Everyone' security ID in the various ACLs instead. This will probably clean up a wide range of various issues with multi-user installs.

GUI RPC: client side: if parse a RESULT and CPU is nonzero but elapsed time is zero, we must be talking to an old client; set elapsed = CPU

client: show project name in "backoff ended" msg

web and client: change the default for "run_gpu_if_user_active" from true to false. Currently running CUDA apps on NVIDIA GPUs causes a significant slowdown in GUI response.

client: we were setting config defaults after parsing cmdline.

This meant that the cmdline args that set config params weren't working: --allow_multiple_clients --report_results_immediately --no_priority_change --start_delay

MGR: Fix compatibility problem with sizing of all-projects list in Attach Project Wizard when using wxWidgets 2.8.8 or later.

Version 6.6.20

Released 9 Apr 2009

New client-side CPU & GPU scheduler

New work-fetch policy for better management of CPU and GPU work queues

Improved BOINC Manager network connectivity

Consolidation of the grid/accessible advanced views.

Version 6.4.7

Released 3 Mar 2009

Note: In order to limit the number of issues we had to deal with for the 6.4 release we shipped it with the manager that shipped as part of the 6.2 release. We have no plans to release 6.4.x for the Macintosh at this time, because we can't run BOINC CUDA applications on the Mac until NVIDIA makes some changes in their Mac software.

Update OpenSSL to 0.9.8i

Update LibCurl to 7.19.4

Version 6.4.6

Released 23 Feb 2009

WINSCR: Force terminate the data management thread when shutting down.

WINSCR: Move keyboard and mouse activity detection code into their own thread. Prevent a deadlock in case other stuff stalls.

WINSCR: Move window z-order detection code into its own thread. Prevent a deadlock in case other stuff stalls.

Version 6.4.5

Released 16 Dec 2008

Public stable release of 6.4 branch!

client: tweak CPU scheduling policy. When there's a coproc job; Windows: don't saturate CPUs, Unix: saturate CPUs

client: in round-robin simulation, remove code that sets CPU shortfall for projects with no active results. (This is now wrong because there coproc apps might have pending results. Also remove nidle_cpus > 0 conditional that increments CPU shortfall; I think this is vestigial code.)

client: include deviceOverlap and multiProcessorCount in XML for CUDA devices. They were mistakenly omitted.

client: in round-robin simulation, don't count a project in total resource share if it has coproc jobs and no CPU jobs.

MGR: fix the terms of use wizard page.

Version 6.4.4

ALPHA Released 7 Dec 2008

client: app_info.xml's are parsed before p_fpops is known, so avp->fpops is zero. Fix this by filling in zero avp->fpops later on.

Version 6.4.3

ALPHA Released 5 Dec 2008

client: work-fetch tweak: don't increment overall CPU shortfall if any jobs pending in simulation.

client: use FLOPs, rather than CPU time, as the basis for estimating job completion times. This should improve estimates for GPU apps, and prevent the DCF from getting messed up.

client: estimate time to completion based on elapsed time, not CPU time (improves estimates for coproc apps).

client: compute duration_correction_factor based on elapsed time, not CPU time (otherwise it doesn't work for coproc or multi-proc apps).

client: in estimate of job completion time, weight the estimate based on fraction done more heavily (quadratic rather than linear).

Remove the notion of "CPU efficiency" from both client and server. This wasn't being measured correctly for coproc/multithread apps, and its effect is now subsumed in DCF.

client: fix calculation of CPU shortfall; don't fetch work from projects with zero CPU shortfall.

client: fix compiler warning.

client: parse checkpoint_elapsed_time from state file; if missing, use checkpoint CPU time.

client: enforce CPU schedule: if we're running a coproc job, keep CPU utilization strictly less than NCPUS.

client: fix last checkin

WININSTALL: Disable "Protected Application Execution" mode by default.

WININSTALL: Turn off the check for Internet Explorer 5.x

Version 6.4.2

ALPHA Released 1 Dec 2008

Mac: Fix XCode project to build old Manager with Grid Views; rename !SetVersion.C to !SetVersion.cpp.

client: in round-robin simulation, only increment CPU shortfall (per-project or overall) if there are no pending tasks. (This is needed when there are coproc (i.e. CUDA) jobs; CPUs may be idle because pending jobs are waiting for active jobs to release coprocs. In this situation the CPU idleness should not be counted as shortfall; otherwise (if there are only coproc jobs) there will always be a shortfall, and the client will fetch infinite work.)

DIAG: On Windows move the symbol store directory under the BOINC data directory structure. Depending on the version of Windows, sometimes the temp directory was being set to the system temp directory which is not setup for everyone to use. It is just best to use our data directory structure.

GUI RPC: add optional terms_of_use field to project config. If present, the manager will display this text in a yes/no dialog before attachment continues.

MGR: Make the error message processing work for the get_project_config rpc, use the same scheme as the ACCOUNT_OUT structure.

MGR: Make the error message processing work for the get_project_config rpc, use the same scheme as the ACCOUNT_OUT structure. I missed the Account Manager scenario in the first checkin.

client, Win: 32-bit client running on a 64-bit machine should report winx64 as primary platform.

MGR: Remove the Account Key page from the Wizard.

MGR: Add a Terms of Use page to the Wizard.

MGR: Make the Terms of Use text control read-only

MGR: fix exit dialog so that both the Mac and Linux clients don't display the 'close core client...' checkbox.

WININSTALL: Change the default to not use protected application install.

WININSTALL: Change the advanced install text to point out that on Windows Vista CUDA applications won't work with protected application installs.

Version 6.4.1

ALPHA release: 23 Nov 2008

fixing the localization file names to work with the 6.4 manager.

Version 6.3.23

Released 14 Nov 2008

MGR: Move the wxWidgets version information to the about box. (printf and Unicode strings don't play well with one another.)

MGR: Fix up the !OnHelp features of the BOINC Manager so they all point to manager_links.php.

client: fix compiler warning.

SCR/Mac: eliminate unused argument, add comments.

client: fix the updating of CPU time left in RR simulation; don't print msgs about non-CPU-intensive projects.

client, scheduler: there were a few places where we had 1e9 instead of 1 gig (2 to the power of 20)

client: fix a long-standing error: if prefs say leave X GB free, and BOINC is using Y GB, and there are Z GB free, the limit on BOINC is Y + Z - X (not Z - X).

client: fix compiler warning indicating real error in RR simulation.

client: fix bug that caused occasional assert in pop_heap() for the preemptable_task_list. (The problem was that the ordering predicate (more_preemptable()) could change on the fly, making the heap inconsistent. Instead, we create a vector, sort it by increasing preemptability, then pop off the end.)

MGR: Use Sleep instead of Yield for the async thread loop. On Posix systems all Yield translates to is sched_yield but only if HAVE_SCHED_YIELD is defined in the wxWidget config file. If it isn't defined it becomes a null op. The async thread doesn't really need millisecond response times. Have it check every 100 milliseconds for an RPC to process.

client: preemptability ordering was messed up

MGR: Reverse earlier change in RPC thread logic: restore Yield() because Sleep(100) caused undesirable latency. Pause the thread immediately on receipt of wxEVT_RPC_FINISHED event. Reduce RPC thread CPU usage while not connected to a client.

MGR: Create an Exit dialog for the Manager.

MGR: Allow the manager to shutdown the CC even when it was installed as a daemon.

MGR: Code cleanup.

MGR: Provide a way to enable/disable launching from the BOINC Manager at startup from within the BOINC Manager itself.

MGR: Add a command line argument which specifies that the Manager was launched by the OS.

SCR: Remove the code that checks for the BOINC Manager shortcuts.

MGR: Fix Simple_GUI help button URL.

Mac: Add new source files !DlgExitMessage.cpp,.h to XCode project.

MGR: On non-Mac and Non-Windows systems, have RPC thread call nanosleep() for 1 nanosecond instead of wxThread::Yield(), because some Linux systems may not support POSIX sched_yield(), in which case wxThread::Yield() returns immediately.

MGR: RPC thread: wait for connection with 1 ms delays initially, pause RPC thread after creation on non-Windows systems.

MGR: Text cleanup

MGR: Bug fixes for the new Exit dialog.

MGR: Don't display the 'Run BOINC at startup checkbox' for any platform other than Windows. It has no effect on Mac since the Mac doesn't automatically start BOINC Manager with any command line arguments.

MGR: Add !DlgExitMessage.cpp to Makefile.am.

fix makefile typo

MGR: Give the option to shutdown the CC even if the manager didn't launch it. This only applies to when the manager and client are on the same machine.

MGR: properly save the '!DisplayShutdownClientDialog' setting.

MGR: Async RPCs: RPC thread is now a joinable thread which does one RPC and exits. Main thread creates a new RPC thread for each RPC request after waiting for any previous RPC thread to exit. This simplifies the logic, eliminates Yield(), Sleep() and nanosleep() calls from RPC thread and will hopefully eliminate excess CPU usage on Fedora.

MGR: Async RPCs: fix memory leaks, KillRPCThread() tries to end thread gracefully before killing it.

MGR: On Mac only, remove checkbox asking whether to shutdown CC.

MGR: Fix crash bug on non_Windows systems in Options dialog.

MGR: Tweak the shutdown logic so that it can still shutdown the BOINC service even though it didn't start it.

MGR: It BOINC Manager starts the BOINC daemon on the mac don't bother trying to shut it down. (reverting to previous behavior)

MGR: revise exit dialog text, use the names in the skin file.

MGR: Revise text one more time.

client: make host CPID a function of: MAC addresses + hostname + IP addr. This means that a given host will generally always get the same CPID. Helpful e.g. on grids where the client gets installed repeatedly.

client: add OS name into the hash for host CPID (for multi-OS hosts)

MGR: Only tweak the BOINC was started by us variable on Windows.

Mac: Add new source files mac_address.cpp,.h to XCode project.

MGR: Fix compiler warnings on non-Windows builds.

MGR: Filter wxEVT_TASKBAR_MOVE events only on Windows.

MGR: On Mac, restore using original exit dialog text from skin file or use old default if none in skin file.

MGR: fix verbose text

accelerate dup_element_contents()

MGR: truncate task progress bar (display) at 100%

MGR: Move the old exit message from the !SkinManager file to the new Exit dialog.

MGR: Consolidate the new exit message to one line. Sun Studiodoesn't concat the separate strings together during compilation like the other compilers to when building for Unicode.

MGR: Provide a way to re-enable the Exit Dialog.

MGR: Fix build break on non_Windows systems.

MGR: Provide a way to re-enable the Exit Dialog on non-Windows systems, too.

MGR: Remove Exit() from RPC thread to possibly fix occasional crash on Windows; KillRPCThread() tries to end thread gracefully on Windows before killing it.

client: don't fclose() time_stats_log if it's NULL. Fixes #772

MGR: Erase and refresh entire Tasks panel when selecting a new tab to try to fix cosmetic bug reported by David on Windows.

SVCCTRL: Introduce a new binary that is used to start and stop the BOINC service, if it is installed as a service. NOTE: If UAC is turned on in Windows Vista then even an administrator cannot start/stop a service without elevating their privileges. The new application includes the requiresAdmin tag in its manifest file to cause the UAC dialog to be displayed when it is launched.

Version 6.3.21

Released 3 Nov 2008

MGR: When removing a row in Projects, Tasks and Transfers tabs, refresh all rows. Fixes a bug where display was not always properly updated.

client: move round-robin simulation to its own file

MGR: Fix bug introduced yesterday (6.3.20).

MGR: Always sort after a row is added or deleted.

Mac: Add new files rr_sim.cpp,.h to XCode project.

client: /proc/N/stat has () around the command name. Remove these.

client: the preemptability order was wrong

client: cleaned up CPU scheduler logic somewhat

client: include precompiled header in rr_sim.cpp so memory leak detection will work.

MGR: Have the !BaseFrame call a function to determine if the selection list should be saved instead of traversing the application pointer. Each view just overrides the function returning a true/false value. We don't have to worry about null pointers and the like.

MGR: BOINCGUIApp should never need to know how either the views work or the document. Move the code that determines which RPCs should be fired into each of the views. Have the document look for it there.

MGR: Reduce duplicate code for hiding and showing an application

MGR: Move some Windows and Mac specific code into functions and streamline the application startup and shutdown routines.

MGR: Move the event processing that was in BOINCGUIApp into the !BaseFrame.

MGR: General cleanup.

MGR: Doxygen comments.

MGR: Cleanup some warnings.

MGR: Fix show / hide on Mac broken by previous changes.

Rebuild libcurl x86 and x64 (turn off async DNS) for Windows only.

client: revise round-robin simulation to take variable avg_ncpus into account

SCR/Mac: fix some real and potential crash bugs.

Version 6.3.20

Released 29 October 2008

fixes serious bug, which caused the manager to have high CPU usage and become unresponsive if it started up in the Tasks tab (and probably also the Transfers or Projects tab)

Version 6.3.19

Released 28 October 2008

client: for CPU throttling, don't suspend apps that are non-CPU-intensive or that use < 1 CPU (e.g., CUDA)

client: get rid of spurious "internal error, expected process to be executing" msg

diag: don't check heap on every alloc

fix a few compile warnings

client: fix crash when sched_op_debug is enabled

MGR: If simple_gui_only flag is set in cc_config.xml, trigger call of CSimpleFrame::!OnConnect().

client: accept --insecure flag even if not compiled with -DSANDBOX

manager: pass --insecure flab only if compiled with -DSANDBOX (from Nicolas; fixes #762)

SCR: Fix the screensaver logo.

MGR/Mac: When removing a row in Projects, Tasks and Transfers tabs, refresh all rows. Fixes a bug where display was not always properly updated.

Version 6.2.19

Released 19 Sep 2008

client: fix compiler warning.

client: coprocessor support isn't supported in 6.2.

SCR: Fix GDI/Memory leak in the screen saver. Pointed out by David Barnard.

winsetup: Change the delete file after reboot code to use !MoveFileEx instead of the !RunOnce registry key. It does what I was originally trying to do directly to: HKLM\SYSTEM\!CurrentControlSet\Control\Session Manager\!PendingFileRenameOperations





Version 6.2.18

WINSETUP: For some reason BOINCTray.exe was only being installed when the 'Protected Application Mode' was selected. I don't remember why we did this, so install it on all scenarios.

client: fix crash in this scenario (From Ian Hay. Fixes #705)

A file upload sends request.

The network is down, and something (e.g. a router) sends a long (> 4KB) error page. This overruns the 4KB buffer of HTTP_OP::req1.

Solution: keep track of the size of the buffer, and don't overrun it.

Also move the body of a huge for loop into a separate function.

client: don't leak handles to shared-mem files

client: don't leak process handles when abort jobs

client: if an app exits or we kill it, always destroy the shmem segment.

Mac lib: set visibility of symbols to hidden by default.

SCR: Fix 8/14 checkin that causes the CPU util to spike on Macs and possibly Windows.

Version 6.2.17

Mac Installer: fix bugs in script which converts BOINC installer to a !GridRepublic installer.

Update copyright strings in various Windows resource files.

WIN: Update OS Detection code. NOTE: Holy cow, Between Vista and Server 2008 there are now 26 different SKUs.

WINSCR: Certain checks should be done regularly like keyboard/mouse activity and the notification window check. They should not depend on whether or not the graphics window has been displayed or not.

Version 6.2.16

CLIENT/MGR/TRAY: When installed on Vista and UAC is turned on the user by default cannot create globally shared objects. This becomes a problem when protected application mode is turned off for keyboard and mouse detection. Basically all of the components would start up and fail to create the shared memory segment and report the error through stderr which most people don't look at by default.

The client is now the only component that is allowed to create the shared memory segment, if creating the global segment fails it'll create a local one instead. Both the tray and manager now just attach to the existing segment, first trying the global one then the local one.

Version 6.2.15

MGR: Code which tests for reboot required should be Windows-only.

SEA: Change references of boinc_cmd to boinccmd

SCR: Don't treat CPU throttling as BOINC being suspended. - Fixes #706

MGR: If the reminder frequency is 0, then don't show any reminder messages.

SCR / CLIENT: fix get_screensaver_tasks RPC so it does not exclude tasks suspended for CPU throttling. Fixes the screensaver problem for V6 graphics. Checked into boinc_core_release_6_2_15 tag.

Version 6.2.14

WINSETUP: Don't execute the custom action that creates the !RebootPending.txt file in the program directory if a reboot isn't required.

Fixes/Updates included from 6.2.13

Version 6.2.13

Note: Unreleased due to error with reboot option fixed in 6.2.14

MGR: Fix the application name for both views. (NOTE: the data type 'char' should NOT be used within the various views. This is the classic example of how direct data access messes things up in projects with many developers. Use wxString with the PrintF method instead.)

MGR: Fix build breaks from the above changes: pass a C string, not a wxString to the PrintF method.

client: Fix build breaks on Mac due to removal of headers from cpp.h.

MGR: Fix the application name for both views. (ANSI/Unicode compatible)(VS/GCC compatible)

CC: Read the config file before setting the max file sizes.

MGR: Fix small bug when displaying the active task count in the taskbar.

WINSETUP: Create a flag file that can be used to keep either the manager or the CC from starting until a reboot has been performed. Flag the file for deletion after a reboot has been performed.

WINSETUP: Don't create the flag file until after the migration phase has been completed.

WINSETUP: Use real quotes around the delete file command instead of tick marks, the Windows shell throws an error.

WINSETUP: Instead of calling the Windows API to determine the various special folders, use the MSI properties which match the 'choose folder' dialog. We can skip the step if doing a case insensitive compare. Plus it appears that MSI normalizes the paths for us.

MGR: Detect when a reboot is required for BOINC and display an error dialog if it is required.

WINSETUP: Revamp the various strings used.

Version 6.2.12

client: add "Suspending computation" messages for system idle and initial delay cases.

MGR: Reset messages whenever connecting or reconnecting to client. Fixes 2 bugs: stale messages if client on remote host was stopped and restarted while local manager was connected to it but minimized, and stale messages when local client exited and was automatically restarted by Manager.

MGR: On Mac, don't display alerts when minimized, as they hang Manager. On Windows and Mac, if minimized when trying to display the Connection Failed dialog, set a flag to display it when the user maximizes the application, so the user can respond. In addition, Windows still immediately displays a Connection Failed balloon if minimized.

client: Fixes ticket Fixes ticket #537. Forces use of small files in zlib.h and when /proc filesystem is used on solaris.

WINSETUP: Prevent certain special paths from being used for either the install directory or the data directory. Prevent this from both the UI component of setup, and if the situation is detected from the migration custom action, skip migration.

Version 6.2.11

This version has a fix for the double migration problem that still happened on some systems, when updating from 6.2.9 to 6.2.10

I’m releasing another build to test with the migration skip functionality. Jord found an edge case where the migration skip functionality didn’t work when migrating from 6.2.9 to 6.2.10. This bug only shows up during the upgrade from .9 to .10, and wouldn’t show up again until .99 to .100. Instead of holding things up waiting for a bug fix and another round of testing, I’m releasing a .11 build so that the migration skip functionality can be tested between .10 and .11.

It turns out that the 64-bit installer was including the 32-bit C Runtime Library instead of the 64-bit C Runtime Library. Please re-download the 64-bit client and give it a whirl.

Version 6.2.10

MGR: Fixed tool-tip.

Version 6.2.9

client (Win): if running as service, and service is suspended/resumed, restore previous run state rather than going to auto.

client: improve startup messages (non-system user??)

client (Win): if we're not in protected mode, don't create shmem segs in global name space. Hopefully this will fix a bug (on Vista, UAC off, non-protected install) where apps fail to attach to shmem.

MGR: Fix the Alt-Tab icon on Windows XP. Fixes #586. Thanks Der Meister.

MGR: Change from using balloons to tooltips. Fixes #9. Thanks David Barnard.

client: Fix build break on Mac.

MGR: Fix build breaks on Mac.

MGR: If more than two active tasks are running then tell the user how many active tasks are running instead of attempting to display the percent complete of each one.

MGR: If the computer name is the local host then skip displaying it in the tooltip.





Version 6.2.8

MGR: Fix help menus in Simple GUI (not applicable on Windows).

client (Win) look for CUDA as nvcuda.dll

API/runtime system: remove "fraction done update period" stuff. This was always 1 second, which is fine.

client/API: add "computation_deadline" to APP_INIT_DATA. This supports apps that can do variable amounts of computing; they can boinc_finish() if their deadline is near.

client: fix crashing bug when detach from project. The problem: the variable ordered_scheduled_results has a list of pointers to RESULTs. These pointers become dangling when the project is detached. It's not sufficient to do schedule_cpus() because this returns immediately if # projects == 0. So clear the list directly.

WINSETUP: Validate that the installed executables are the ones we are expecting.

WINSETUP: Do not allow the data directory and install directory to be the same directory.

WINSETUP: Reduce the amount of time allocated to shutdown the BOINC Manager from 30 secs to 5 secs before killing it. Otherwise the user thinks the install process is hung.

WINSETUP: Change text for describing the protected mode install

WINSETUP: Add text describing the reason for a reboot

WINSETUP: Add text describing the need to run a repair in the case where a third party BOINC CC was installed or a private drop of the CC was used.

WINSETUP: Properties that are changed during the execution phase of setup do NOT bubble back up to the UI phase of setup when completed. Create some custom actions that store those properties in the registry and then read them back after we are back in the UI phase. Without them we cannot control what text is displayed in the setup completion dialog.

WINSETUP: Suppress the reboot prompt and just reboot, since we have already informed the user it is needed on the conformation screen

Version 6.2.6

MGR: Adjust pie control slices so small wedges are visible if at all possible,

MGR: Don't enlarge pie control slices if value is zero.

client: eliminate spurious "unparsed XML" messages Fixes #664. Rom, please backport to 6.2

web: convert some tr() to tra() on BOINC web pages

boinccmd (Windows): chdir to the data directory (from registry)

client: copy api_version of APP_VERSIONs in scheduler reply, even if we already have the APP_VERSION. Otherwise, when upgrading from 5.10 to 6.2, we won't have the api_version, and we won't learn about it until project releases new version.

fix build breaks for Windows x64 builds.

Mac Installer: delete old locale directory to remove "boinc manager.mo" files before installing new "boinc-manager.mo" files (or vice versa).

WINSETUP: The call to !GetFreeDiskSpaceEx was failing because the path didn't exist yet, so all the values in the returned data structures was random junk. If the directory had never been created before then it was returning 27/57 bytes free. If the directory had existed at one time then the return values were several gigabytes. If the first request to !GetFreeDiskSpaceEx fails, then check for the parent directory, if that fails pass a NULL value which means check the default volume.

WINSETUP: Fix a struct alignment issue when dumping the base64 encoded password for boinc_project to a file. ATL's string conversion functions act of a class and not a buffer which makes memory management easier but doesn't interop well with fprintf unless you specify the buffer name directly.

Version 6.2.4

Mac: revise build scripts for c-ares and cURL to work when there are spaces in the paths. These changes are based on information from the cURL developers.

MGR: Fix trace statements in StartupBOINC()

MGR: Add some more trace statements for Linux startup.

MGR: BOINC commandline options require the '--' in front of the option. '-' just causes the CC to exit while printing its help for the commandline options.

MGR: --insecure isn't supported on Linux yet. It is only supported on the Mac.

SCR: BOINC's screensaver module in preview mode only displays the BOINC icon, since the preview window is only 300x200 or so. We shouldn't launch the data management thread when launched in preview mode.

client: If a scheduler reply doesn't include <host_venue> (as is the case if its DB is down, or it has no work and skips the DB check) don't overwrite the host_venue on the client. Fixes #656, I hope (Rom: please port)

client: when parsing state file, don't change result states unless there's an inconsistency. Fixes #621

MGR: Fix a casting issue that was causing crashes on x64 platforms. Fixes# 658 (From: bbaetz)

client: fix command line parsing bug. Parse the command line before initializing the diagnostics framework.

WINSETUP: Block installing on domain controllers for this release. (I'll fix this for the next release cycle, or a future 6.2 release.)

client: JM7 was seeing repeated file upload failures. It turned out that when we close and reopen the temp file that stores the HTTP reply, the open was failing. I have no idea why. Attempted workaround: open the file for R/W originally, and instead of close/open do a seek.

client: go one step further, and don't create temp files in some system-supplied directory; create them in the BOINC data directory.

client: on Windows (at least) if you kill a task (e.g. reset project) ACTIVE_TASK::handle_exited_app() never gets called, so the coprocessors weren't getting freed. Fix this.

LINUX: fixes the CC startup problem.

Version 6.2.2

client: if we request that an app exit, and it doesn't do so within 10 seconds, kill it. This deals with the situation where the app is ignoring messages (e.g. because it forgot to end a critical section).

client: if either the FP or int benchmark runs less than 3 CPU seconds (out of 10 seconds of wall time) ignore the benchmark. This is an effort to deal with a problem where (for unknown reasons) the int benchmark runs for a tiny amount of CPU time, leading to an absurdly large result

Manager: don't prepend "[error]" to MSG_INTERNAL_ERROR messages; the client already does this.

client: Fix compiler warning.

MGR: Fix CMainDocument::!WorkShowGraphics() for Mac, UNIX and Linux to allow showing graphics with or without sandbox.

MGR: Statistics and Disk tab panes: clear when disconnected from Client, update quickly when connecting to a (different) Client.

client (Unix): linking libcudart.so wasn't working, so CUDA detection failed.

For reasons I don't understand, adding "/usr/local/cuda/lib" to LD_LIBRARY_PATH and then doing dlopen("libcudart.so") wasn't working, even though the library is in that dir. I worked around this by calling dlopen("/usr/local/cuda/lib/libcudart.so") and if that fails call dlopen("libcudart.so")

Unix: commented out Eric's setenv() stuff. After doing a configure, HAVE_SETENV is not in config.h, so something's messed up with it.

client: trimmed down "pre-release software" message

LIB: Windows 9X doesn't like it when you specify a security descriptor, so special case Win9X so that it'll pass a NULL to !CreateFileMapping.

DIAG: Passing a null value to fclose in VS 2005 will cause a crash, so check to make sure that stdout_file and stderr_file are not null before attempting to close them. If they are null return ERR_FOPEN so that the next message logged can attempt to cycle the log without error.

CLIENT: Make sure the diagnostics framework is initialized before the config file is parsed or the command line is parsed, that way if an unexpected XML tab or command line parameter is found the client doesn't crash.

NOTE: The client would only crash if the log file was already greater than 2MB which would cause the client to attempt to cycle the log files. Since the diagnostics framework wasn't initialized yet nothing was logged to the log file, no call stack was generated, and the default Windows debugging environment was fired up.

MGR: Update comments on how to link with Development / debug build of wxWidgets; add this info to build documentation.

client and server: in coprocessor records, change "name" to "type" to avoid confusion with "name" field of CUDA. This is a bug fix - please port.

start script: don't error out if run_state.xml file is empty (which happens if project runs out of disk space)

client part of the above

Version 6.2.1

DIAG: Add an easy way for projects to initialize the diagnostics framework for graphics applications.

DIAG: Make !SetDllDirectory work for Win2k3, Vista, and Win2k8

API: If the diagnostics framework hasn't been initialized for the graphics application, initialize it.

client: Win: fix CUDA detection:

look in the registry to find the CUDA install directory, and look for cudart.dll in that dir.

client: for CUDA, don't confuse coproc.name ("CUDA") from coproc.prop.name (e.g., "Device Emulation (CPU)" on my PC, which doesn't have a recent-enough GPU)

client: if no coprocessors present, say so in startup messages

API: Fix build break from my last check-in.

client (Unix) Add /usr/local/cuda/lib/ to LD_LIBRARY_PATH before looking for CUDA library

boinc_cmd: changed help strings to say "boinccmd". I'd like to change the filename too but can't figure out Makefile stuff

API: fix Mac compile errors.

client: implement Mac CUDA detection, fix compiler warning.

boinc_cmd: change name to "boinccmd".

client (unix): avoid crash if LD_LIBRARY_PATH not set

MGR/CLI: remove direct references to !CreateEnvironmentBlock and !DestroyEnvironmentBlock since Win98 doesn't support them. This functionality is only required for the Windows sandbox implementation anyway.

LIB: Remove direct reference to !OpenThread in win_util.C since it isn't supported on Win98.

MGR: Another fix for CC execution on a Linux machine.

client (Unix) fix to CUDA detection if LD_LIBRARY_PATH is ""

Version 6.1.16

API: fix boinc_resolve_filename_s() to handle symlinks the same as boinc_resolve_filename().

client: do the /proc/interrupts stuff (see above) only on Linux-like systems; use device_idle() only on non-Linux Unix systems

Fix is_file() to use S_ISREG() macro instead of incorrect (sbuf.st_mode & S_IFREG); fix is_dir() to use S_ISDIR() macro instead of incorrect (sbuf.st_mode & S_IFDIR).

Fix is_file() and is_dir() to compile properly on Windows by using the actual expressions instead of the macros which aren't defined.

scheduler: fix FCGI compile problem. FCGI can't use libboinc.a; is needs its own specially-compiled versions of everything in lib/

MGR: Make help system work again.

MGR: Add pre-release to the BOINC Manager title bar and about dialog if it is a pre-release version of BOINC.

CLI: Add some pre-release text to the CC startup routine and suggest they revert back to a released build if they don't plan on testing the client.

client: fix array size in Linux test for running on batteries

Version 6.1.15

Note: Unreleased

DIAG: Make sure that if the symstore isn't defined at all, don't construct the symstore search path.

WINSETUP: Don't check for SP4 against Win9X.

LIB: Fix build break on Linux compat VM.

BLD: Update configure.ac to require libcurl 7.17.1.

client: use symlinks only if project has <use_symlinks/> element.

API: fixed boinc_resolve_filename() bug: didn't work right for symlinks

Fix is_symlink() to use S_ISLNK() macro instead of incorrect (sbuf.st_mode & S_IFLNK), which made it return true for regular files and caused boinc_resolve_filename() to work incorrectly.

manager: fix menu appearance

Unix init script: modified to make less linux specific.

Does not presume the existence of "pidof" or "runuser".

If started with an old style Bourne shell, will try to restart in bash, zsh or ksh.

Starts with no parameters by default.

Logs stdout and stderr to /var/log/boinc_client.log and /var/log/boinc_client_err.log by default.

With appropriate "boinc-client.conf", the script can be run by a non-root user.

client: improved user idle checking on Linux (from Frank Thomas)

Version 6.1.14

client: add coprocessor support: i.e., parse the list of coprocs in <app_version>s from the server, keep track of the number free of each type of coproc, and don't run an app that needs more than are available. (not quite working yet)

client: Per Carl's recommendation add CURLOPT_POST301 to the list of curl options used so that the followups to redirects still post instead of get.

client: finish and debug coprocessor support

manager and GUI RPC: show plan class in app version string

client (Unix): don't follow symbolic links when computing directory size. This will avoid counting the size of executables and input files in slot directories.

Build fixes for non-Win32, non-Linux, non-MacOS systems.

configure script:

Added checks for functions strdup(), strdupa(), daemon(), stat64(), strcasestr()

Fixed problems with kc_mysql.m4 and wxWidgets.m4 returning invalid CFLAGS and LIBS flags.

Fixed incorrect order of pthread flag checking on solaris.

New files: lib/unix_util.[Ch]. Currently contains implementation of daemon() for systems that lack it.

Access to binary files in /proc was failing on some systems when compiled with 64 bit file access. Rearranged headers and defines to force 32bit file access in hostinfo_unix.C

all_tty_idle() didn't work as advertised on any system as far as I can tell. I rewrote it to check ttys that are not named /dev/tty[1-9]. The old implementation was modifying a statically allocated read-only string, anyway.

added implementation of non-standard function strcasestr() to str_util.C

added #define of MAP_FILE to shmem.C, because it is missing from most unix systems, (and is unnecessary on linux anyway).

other minor bug fixes.

Graphics API: Add boinc_close_window_and_quit() API to UNIX / Mac lib.

Mac: Fix compiler warning.

Mac: Remove -fvisibility* compiler flags from BOINC library builds and boinc_cmd build.

Client/server protocol: send <client_cap_plan_class/> if client understands app version plan class. The server checks for this instead of version > 6.11. (suggested by Nicolas Alvarez)

clean up unix_util: .h files declare only (extern) interfaces; no reason for daemon() to be C

compile fixes for gcc 4.x; fixes #592

scheduler: bug fix for case when app version XML is > 64KB

server: when creating log dir, we were using wrong bit for sticky flag

WINSETUP: Make sure the executable permissions are setup correctly after the binaries are installed.

WINSETUP: Inform MSI that a reboot is suggested after creation of 'boinc_master', 'boinc_project', 'boinc_admins', 'boinc_users', 'boinc_projects'.

WINSETUP: Reread the INSTALLDIR property from the registry to determine if their is data to migrate. INSTALLDIR is changed to where ever the user wants to install BOINC now, which may be different then where it was in 5.10.

WINSETUP: If the user is running on Win2k but hasn't upgraded to SP4, inform them of the new requirement.

API: change boinc_resolve_filename() so that it detects symbolic links and treats them as a special case. Also, if the virtual file doesn't exist (as in the standalone case) just return zero; otherwise if the app is running standalone and checks the return value, it will error out.

NOTE: apps that check the return value of boinc_resolve_filename() won't work on 6.12+ under Unix; recompiling with this change will fix the problem.

Mac: Update build documentation, move building project applications build instructions to a separate document (wiki page)

Mac: Fix bugs in new backtrace code.

Added init.d script (boinc-client.in) and Makefile.am to install it.

I got this from the Fedora package. I have modified it to create the run directory if it does not exist, and to not run boinc as root. Checking for running processes needs to be improved.

boinc-client.in is still very linux centric and probably won't work on non-linux systems or under Bourne shell without significant changes.

WINSETUP: Fix the bug during uninstall where the data files were not being migrated back to the executable directory.

fixes for gcc 4.3

GUI: Disable Show Graphics button if any selected task is suspended for any reason.

Mac: Fix new backtrace code for x86_64 Client and project applications.

client: send client_cap_plan_class as <x>1</x> rather than <x/> in scheduler request; the latter breaks older schedulers.

old parse code: make skip_unexpected() work with <x/>

Version 6.1.12

ALPHA

Migration Issues

WIN: Protected Application Execution issues

Version 6.1.10

ALPHA

MAC: The long-awaited first full alpha release of version 6 on the Macintosh for your testing pleasure!

MAC: Changes from 5.10.x are too numerous to list, but include full multiple selection support on the Grid Views.

Version 6.1.8

ALPHA

Updated the test matrix to include tests for the new 6.x installer

Version 6.1.7

ALPHA

more in-depth logging with regards to migration failures.

Version 6.1.6

ALPHA

Undefined Changes/Bugfixes

Version 6.1.5

ALPHA

Migration Issues

Versions 6.1.0 to 6.1.4 were tested internally

Version 5.10

Manager

Project selection list in Attach Project wizard.

Advanced preferences dialog.

Grid-based views: column sorting, progress bars, line shading.

Ability to find browser cookies on some platforms; enables web-only attach.

Don't allow multiple connection-request dialogs.

Better logic for Snooze menu item.

Core client

Improved slot directory logic makes it impossible for two apps to run in same slot.

Reject directory-traversal and format conversion characters in filenames from projects.

Add security-related configuration options: suppress_net_info, disallow_attach, os_random_only.

Support new work_buf_additional_days preference.

Various changes to prevent buffer overruns.

Day-of-week preference enforcement.

Work correctly if core client starts up before DNS system is working.

Export scheduling info in GUI RPCs.

Upgrade to OpenSSL 0.9.8e and LibcURL 7.16.4.

Windows

Work around Vista problems by running all components with administrative rights.

Mac

BOINC 5.10.28 fixes problems when running under Mac OSX 10.5 (Leopard).

Added a separate application to uninstall BOINC.

Fix various problems with use of shared memory.

Fix bug which created zombie processes.

Correctly report RAM > 2 GB.

If screensaver launched BOINC, don't stop running when energy saver puts display to sleep.

Improved user idle detection.

More robust installer.

Version 5.8

Snooze button.

CPU throttling.

Simple GUI; skinnability, local prefs dialog.

Preferences for limiting RAM usage.

Disk usage pie chart.

Support for advanced account manager features like host-specific resource share.

Version 5.8.16

CPU model string includes Family/Model/Stepping.

Fix errors if detach project while file transfers active.

Limits on # of file transfers apply to uploads and downloads separately.

Add checkpoint_debug log flag.

Set processor affinity mask for benchmark threads (Windows).

Disable connection caching in Curl.

Add 'Detach when done' flag to projects (for clean detach, e.g. from account manager).

Delete all files when detach from project.

Fix bugs on Mac OS X 10.3 that could create bad users/groups.





Version 5.8.15

Mac: eliminate !AppStats helper application.





Version 5.8.14

Win: installer fixes.





Version 5.8.13

Fix bug where tasks are erroneously restarted after abort.

Win: installer fixes.





Version 5.8.12

Win: installer fixes.





Version 5.6

New CPU scheduler and work fetch policy.

CPU capability detection.

Improved security for POSIX compliant systems (only implemented for the Mac).

Support for file compression on upload.





Version 5.4

BOINC now lets you use 'Account managers' - special web sites that let you browse BOINC projects, attach/detach, change resource share and settings, all with point-and-click simplicity. Account managers are also great if you have several computers - you just have to make changes once. A couple of excellent account managers are nearly ready for use; stay tuned to the BOINC web site for details.

Fixes a bug where a personal firewall prevents the BOINC screensaver from running, causing your computer to lock up.

General preferences can be overridden by a local file. [PrefsOverride More info].

BOINC now alerts you whenever it needs you to create a network connection.

SOCKS5 proxies are now supported.





Version 5.3

Customized clients can now be created.

Account manager support has been enhanced.

Farm manager support has been added.





Version 5.2