BOINC version history
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)
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.)
released: 24 Aug 2015
- Prevent kernel panic when launch daemon mode. (Mac Only)
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
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)
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)
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
released: 27 February 2014
- Fix: Fix problem that was causing scheduler RPCs to fail on Yoyo@home (HTTP status code 400)
released: 3 February 2014
- Fix: make 'stationary device mode' opt-in, since detection does not work reliable. (Android)
released: 3 February 2014
- Fix: Reset corrupted localizations.
released: 27 January 2014
- Fix: Remove Sub-second CPU throttling.
- Fix: Version information of Mac OS X. (Mac)
released: 16 January 2014
- Fix: Provide a more accurate estimate of fraction done.
- Fix: Various CPU and GPU scheduling issues.
released: 7 January 2014
- Fix: Project list properly discards plan class. (Android)
- Fix: Updated UI Layout. (Android)
- Fix: Localization updates. (Android)
released: 3 January 2014
- New: Add support for AC powered devices like the Ouya. (Android)
released: 7 December 2013
- Fix: Fix crashing issue that prevented the UI from being displayed. (Android)
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)
released: 26 November 2013
- New: Default installer includes VirtualBox (Windows Only)
- Fix: Properly handle the exclusive application feature from the UI.
released: 21 November 2013
- Fix: Disable downloading of images in notices; It was crashing the Manager.
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)
released: 6 September 2013
- Fix: Updated Translations. (Android Only)
- Fix: Device name issues. (Android Only)
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.
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
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.
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)
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.
released: 22 Oct 2009
- client: fix crashing bug introduced in 
- client (Linux): when launching apps, put a relative path to the executable (../../projects/x/y) into argv, not just the executable filename.
- MGR: Fix initial first connection problem on startup.
- 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.
- client: add a bunch of debugging messages (<task_debug>) for showing how GPU instances are being reserved
- 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.
- 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.
released: 10 June 2009
- client: read app_info.xml's AFTER scanning GPUs. Otherwise we'll discard all GPU apps and results.
- 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.
- 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
- client: include plan class in other_result list in sched request (for resource-specific jobs-in-progress limit)
- 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().
- 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).
- 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.
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().
- client: enforce_schedule() wasn't starting GPU jobs
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
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.
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
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.
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.
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.
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
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: 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.
ALPHA release: 23 Nov 2008
- fixing the localization file names to work with the 6.4 manager.
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.
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.
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)
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.
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
- 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.
- 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.
- 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.
- 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.
- 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
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.
- 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.
- 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.
- MGR: Fixed tool-tip.
- 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.
- 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
- 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.
- 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.
- 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
- 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 ""
- 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
- 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)
- 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/>
- Migration Issues
- WIN: Protected Application Execution issues
- 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.
- Updated the test matrix to include tests for the new 6.x installer
- more in-depth logging with regards to migration failures.
- Undefined Changes/Bugfixes?
- Migration Issues
- Versions 6.1.0 to 6.1.4 were tested internally
- 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.
- Work around Vista problems by running all components with administrative rights.
- 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.
- 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.
- 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.
- Mac: eliminate AppStats helper application.
- Win: installer fixes.
- Fix bug where tasks are erroneously restarted after abort.
- Win: installer fixes.
- Win: installer fixes.
- 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.
- 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. More info.
- BOINC now alerts you whenever it needs you to create a network connection.
- SOCKS5 proxies are now supported.
- Customized clients can now be created.
- Account manager support has been enhanced.
- Farm manager support has been added.
- You attach to projects using your own email address and password. Long, random 'account keys' are no longer used.
- BOINC checks for proxy configuration problems when you first attach to a project.
- The file gui_rpc_auth.cfg contains a password that protects the BOINC client from control by other users on the same host. BOINC automatically generates a password if none is found. If you use tools like BOINCView you may need to look it up or change it. If you need to revert from 5.2.x to an earlier version, you must delete gui_rpc_auth.cfg from your BOINC directory.
- Alert boxes now provide feedback when certain errors occur.
- BOINC supports 'Account Management Systems' (to be announced).