Reinhard 2 Jan 2007 - fixed build of clientgui [in consultation with the Author, Frank Weiler] * corrected unicode-string handling with wxString() in ViewTransfersGrid.cpp and ViewWorkGrid.cpp * corrected wxString handling in BOINCGridCtrl.cpp * add missing files BOINCGridCtrl.[cpp|h] to Makefile.am clientgui/ Makefile.am BOINCGridCtrl.cpp ViewTransfersGrid.cpp ViewWorkGrid.cpp Rom 2 Jan 2007 - Win SETUP: Incorporate a custom action to migrate CPDNBBC data files to the destination BOINC directory. win_build/installerv2/ BOINC.ism win_build/installerv2/redist/Windows/src/boinccas/ CADetectOldInstaller.cpp, .h (Removed) CAMigrateCPDNBBC.cpp, .h (Added) boinccas.rc boinccas95.def boinccas95.vcproj win_build/installerv2/redist/Windows/x86/ boinccas.dll boinccas95.dll David 2 Jan 2007 - make disk pie charts work on Linux (from Frank Weiler) clientgui/ wxPieCtrl.cpp Reinhard 2 Jan 2007 - install lib/common_defs.h lib/ Makefile.am Charlie 2 Jan 2007 - MGR: Fix 2 compiler warnings caused by actual coding errors. - Mac: Add new files BOINCGridCtrl.cpp,.h, ViewTransfersGrid.cpp,.h, ViewWorkGrid.cpp,.h to XCode project. clientgui/ cs_account.C ViewTransfersGrid.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Rytis 3 Jan 2007 - User web: - Add optional 3rd element to project news file (title) - Certificate now shows DEFINEd project name - Front page now styled with CSS html/ user/ cert.php sample_index.php sample_rss_main.php white.css inc/ news.inc util.inc project.sample/ project_news.inc Matt 3 Jan 2007 - added separate UOTD_ADMIN_EMAIL address in project.inc so user of the day running low messages don't go to moderators html inc/ uotd.inc project.sample/ project.inc Reinhard 4 Jan 2007 - applied Bernd's patch: * restore extern "C" protection to graphics_api.h, for ANSI-C projects * include boinc_api.h in graphics_impl.C to declare worker_thread_handle() * remove garbage from graphics_lib.C to allow compilation under _WIN32 and __APPLE__ api/ graphics_api.h graphics_impl.C graphics_lib.C David 4 Jan 2007 - change "Preempted" to "Waiting" in GUI ("preempted" is geek-speak) clientgui/ ViewWork.cpp ViewWorkGrid.cpp html/inc/ user.inc David 4 Jan 2007 - removed PICFLAGS from AM_CPP_FLAGS. Compiling everything position-independent slows it down. Makefile.incl Rom 4 Jan 2007 - DIAG: Don't check for the BOINC symstore if it is a science application that has crashed. lib/ stackwalker_win.cpp Kevin 4 Jan 2007 - Changed the way the buttons on the simple gui preferences and messages screens are sized clientgui/sg_DlgMessages.cpp clientgui/sg_DlgPreferences.cpp David 4 Jan 2007 - core client: if an app fails to start, it could be that the executable has been munged. So verify the files; this will find the bad file and download it again. - Manager: in Attach to Account Manager wizard, add some text saying if they want to just attach to a single project, use the Attach to Project wizard instead. Some users tried to attach SETI@home using the acct mgr wizard and got all bent outta shape when it didn't work. client/ app_start.C clientgui/ WelcomePage.cpp Rom 5 Jan 2007 - Win SETUP: Add custom actions for saving and restoring user preferences to the registry - Win SETUP: MoveFileEx isn't spported on the Win9x platform, so dynamically load and execute it on Windows 2000 or better. - Win SETUP: Remove some dead code from the custom action list. - Win SETUP: On Windows XP systems or better, we no longer require the service account to have a password, Microsoft has taken care of the problem by not allowing incomming network connections for accounts with no passwords. win_build/installerv2/redist/Windows/src/boinccas/ CAMigrateCPDNBBC.cpp CARestoreSetupState.cpp, .h CASaveSetupState.cpp, .h CASoftwareNeedsUpgrade.cpp, .h (Removed) CAVerifyServicePassword.cpp boinccas.cpp, .h boinccas.rc boinccas95.def win_build/installerv2/redist/Windows/x86/ boinccas.dll boinccas95.dll Rom 5 Jan 2007 - Win SETUP: Fix an issue when restoring saved properties where junk was being introduced into properties where no value was defined. - Win SETUP: Don't attemp to restore any properties until we have actually stored some from a previous iteration of setup, otherwise our defaults don't kick in. - Win SETUP: Saving and Restoring properties is now only enabled for those using the UI deployment method, we don't want to throw anything in the registry when the MSI package is being deployed through AD or some other deployment mechinism. win_build/installerv2/redist/Windows/src/boinccas/ CARestoreSetupState.cpp CASaveSetupState.cpp boinccas.cpp win_build/installerv2/redist/Windows/x86/ boinccas.dll boinccas95.dll Rom 5 Jan 2007 - Update localization template. locale/en_US/ BOINC Manager.mo, .po Rom 5 Jan 2007 - MGR: Replace the context sensitive help button on the main simple gui window with a standard bitmap button and use the bitmaps WCG gave us. clientgui/ Events.h sg_DlgMessages.cpp sg_DlgPreferences.cpp sg_ProjectsComponent.cpp, .h SkinManager.cpp, .h David 5 Jan 2007 - manager: improved grid views from Frank Weiler; improved message when detach from project mgr clientgui/ BOINCGridCtrl.cpp,h WelcomPage.cpp Rom 5 Jan 2007 - MGR: Fix the help handling code for the Mac UI conventions. clientgui/ sg_DlgMessages.cpp, .h sg_DlgPreferences.cpp, .h Charlie 5 Jan 2007 - MGR: Fix build breaks. clientgui/ sg_DlgMessages.cpp sg_DlgPreferences.cpp Charlie 5 Jan 2007 - MGR: Fix cosmetic bugs on Mac. NOTE: I believe my changes will work on Windows, but I couldn't test this because of crashes on Windows. So my changes are temporarily guarded by #ifdef __WXMAC__ #else #endif. clientgui/ ViewTransfersGrid.cpp ViewWorkGrid.cpp Walt 6 Jan 2007 - MGR: Fix segfault in simple gui when message button is clicked. SetBackgroundStyle() needs to be called after the window is created. clientgui/ sg_DlgMessages.cpp David 7 Jan 2007 - manager: fixes for new task/transfer tabs (from Frank Weiler) clientgui/ BOINCGridCtrl.cpp,h MainDocument.cpp,h ViewTransfersGrid.cpp,h ViewWorkGrid.cpp,h res/ sortascending.xpm sortdescending.xpm David 7 Jan 2007 - core client: if swap space is zero, it must not have been measured on this host; don't use it in process scheduling - user web: don't use font colors this way client/ cpu_sched.C html/user/ forum_forum.php David 7 Jan 2007 - user web: don't show news dates as

. Use a style instead. html/ inc/ news.inc user/ white.css Rom 7 Jan 2007 - DIAG: Clean up some warnings and add a new exception type to the list of known exceptions. lib/ diagnostics.C diagnostics_win.C Charlie 8 Jan 2007 - MGR: Fix 2 compiler warnings, 1 caused by an actual coding error. NOTE: to printf a "%", you need to use "%%" in the format; for example: ("%.2f%%"). clientgui/ BOINCGridCtrl.cpp ViewTransfersGrid.cpp David 8 Jan 2007 - manager: performance enhancement to grid views (from Frank Weiler) clientgui/ AdvancedFrame.cpp BOINCGridCtrl.cpp,h Events.h MainDocument.cpp,h ViewMessagesGrid.cpp, h (new) ViewProjectsGrid.cpp,h ViewTransfersGrid.pp ViewWOrkGrid.cpp Rom 8 Jan 2007 - Win SETUP: Make Windows XP or better require passwords for the service accounts again. - Win SETUP: Fix a spelling mistake that JM7 found. boinc/win_build/installerv2/redist/Windows/src/boinccas CAGrantServiceExecutionRight.cpp CAVerifyServicePassword.cpp David 8 Jan 2007 - user web: say RAM limits enforced in 5.8+; use "class=note" instead of "font size=-2" html/inc/ prefs.inc David 8 Jan 2007 - core client: fixed crashing bug that happens when attaching to a project with wrong URL (e.g. setiathome.ssl.berkeley.edu). The fix allows the project to attach but prints a warning. It would be better to not allow the attach; I'll get back to this later client/ client_types.h cs_scheduler.C scheduler_op.C Charlie 8 Jan 2007 - Mac: update XCode project for new ViewMessagesGrid, ViewProjectsGrid source files. mac_build/ boinc.xcodeproj/ project.pbxproj Rom 9 Jan 2007 - MGR: Fix crashing issue do to invalid type casts, wxWidgets implements its own form of type casts for C++ objects which probably uses the basic RTTI of the compiler at some level, but it also has a few checks and balences as well. So if you get a hankering of using dynamic_cast or static_cast use wxDynamicCast and wxStaticCast instead. - MGR: Remove the ifdefs for SIMPLE GUI, it is now enabled by default on all supported platforms. clientgui/ AdvancedFrame.cpp BOINCGridCtrl.cpp BOINCGUIApp.cpp Rom 9 Jan 2007 - Win BUILD: Remember, when adding .C files to VS project files, you need to change the compiler type to C++ for ALL build configurations. win_build/ boinc_dll.vcproj boinc_ss.vcproj boincmgr_curl.vcproj Walt 9 Jan 2007 - core client: Change function that calculates RAM and SWAP used by a science project to return the max used by a process instead of totaling the process/child processes. Fixes the problem where the same RAM and SWAP used gets counted multiple times for some science apps. lib/ procinfo_unix.cpp David 9 Jan 2007 - Manager: get rid of "CPU throttled" messages - Manager: enhancements to Statistics tab (can click on project name in multi-project view) from Mifistor_x clientgui/ ViewStatistics.cpp,h ViewWork.cpp ViewWorkGrid.cpp stdwx.h David 9 Jan 2007 - user web: "old news" was broken Note to Rytis: when possible, use "foo $var blah", not 'foo '.$var.' blah' html/inc/ news.inc David 9 Jan 2007 - core: if we're preempting an app and leave it in memory because no checkpoint yet, say so in message client/ app_control.C Charlie 9 Jan 2007 - MGR: Updates to disk usage pie charts from Frank Weiler. clientgui/ ViewResources.cp common/ wxPieCtrl.cpp,h David 10 Jan 2007 - core client: fix problems when user aborts result (mark it as CPU_SCHED_PREEMPTED so scheduler doesn't try to preempt it; that confuses things) - changed format of Deferring Comm messages client/ app_control.C cs_scheduler.C David 10 Jan 2007 - core client: backwards > in PROJECT::some_download_stalled(). This caused the client to keep fetching work from a project with stalled downloads. client/ client_types.C David 10 Jan 2007 - manager: fix Unicode build problems (from Frank Weiler) clientgui/ ViewStatistics.cpp David 10 Jan 2007 - manager: various fixes (from Frank Weiler) clientgui/ BOINCGridCtrl.cpp,h ViewMessagesGrid.cpp ViewProjectsGrid.cpp ViewResourcesGrid.cpp ViewStatistics.cpp ViewTransfersGrid.cpp ViewWorkGrid.cpp David 10 Jan 2007 - core client: sort daily stats records in case they get out of order somehow client/ client_types.h cs_account.C David 10 Jan 2007 - manager: use user-friendly app names clientgui/ ViewWork.cpp ViewWorkGrid.cpp Rom 10 Jan 2007 - SCR: Disable the diagnostic support for release builds of the Windows screensaver. A smarter thing to do in the future is to write the log files to the 'temp' directory. client/win/ win_screensaver.cpp David 11 Jan 2007 - Add script to clean up web cache. Sometimes the cache gets so full that it takes 30 secs just to compute free and used disk space, so that normal cleanup times out before it does anything. html/ops/ clean_cache.php (new) David 11 Jan 2007 - user web: call set_time_limit(0) in cache_check_diskspace(). This will hopefully avoid the situation described above. html/ inc/ cache.inc project.sample/ cache_parameters.inc David 11 Jan 2007 - manager: use user-friendly app names (fix to work w/ 5.4.11) clientgui/ ViewWork.cpp ViewWorkGrid.cpp Rom 11 Jan 2007 - MGR: Fix build break for Unicode support. NOTE: The only place in the manager where it is safe to use 'char' variable types for use within a string is in the gui_rpc_* files. Every where else needs to use wxString, otherwise the manager won't build in a unicode based environment. clientgui/ ViewWork.cpp ViewWorkGrid.cpp Rom 11 Jan 2007 - MGR: Possble fix for the Simple GUI messages dialog? clientgui/ sg_DlgMessages.cpp David 12 Jan 2007 - Server: change the usage of host.credit_per_cpu_sec so that it is the recent average of granted credit per CPU sec, as computed by Bruce's update_credit_per_cpu_sec() function (finally, a use for hyperbolic trig functions in BOINC). Prior to this it was the most recent value of claimed credit per CPU sec, which is not as useful. Add a new non-DB member to HOST, claimed_credit_per_cpu_sec, for this purpose. - db_dump.C: export host.credit_per_cpu_sec - move update_credit_per_cpu_sec() from lib/util.C to sched/validate_util.C Once a few projects pick up this change, it will be useful for comparing credit-granting policies between projects (for hosts that participate in multiple projects, the credit per CPU second should be about the same). db/ boinc_db.C,h lib/ util.C,h sched/ db_dump.C handle_request.C validate_util.C,h validator.C David 12 Jan 2007 - manager: don't prepend "(Activities suspended by user)" to result status. There is no longer a notion of "activities" clientgui/ ViewWork.cpp ViewWorkGrid.cpp Rom 13 Jan 2007 - MGR: Streamline the message dialog sync operation a little bit. - MGR: Fix crashing issue do to invalid type casts, wxWidgets implements its own form of type casts for C++ objects which probably uses the basic RTTI of the compiler at some level, but it also has a few checks and balences as well. So if you get a hankering of using dynamic_cast or static_cast use wxDynamicCast and wxStaticCast instead. clientgui/ sg_DlgMessages.cpp BOINCGridCtrl.cpp Reinhard 14 Jan 2007 - install validate_util.h for external building of validators - make dir_hier_move and dir_hier_path output help/usage strings - add help/usage string to validator.C sched/ Makefile.am tools/ dir_hier_move.C dir_hier_path.C sched/ validator.C David 15 Jan 2007 - core client: lots of debugging messages for cpu_sched (may remove later) - Manager: check for ERR_DB_NOT_UNIQUE, not ERR_NONUNIQUE_EMAIL - add boinc_UnzipToMemory() (from Reinhard Prix) client/ cpu_sched.C clientgui/ ProjectProcessingPage.cpp html/ops/ sample_server_status.php lib/ common_defs.h error_numbers.h gui_rpc_client_print.C util.C zip/ Makefile.am boinc_zip.cpp,h unzip/ api.C Reinhard 15 Jan 2007 - add explicit build-rule for client/switcher [required to fix 'make tags'] - fix boinc_UnzipToMemory() - correctly build unzip-DLL [for use in boinc_UnzipToMemory()] client/ Makefile.am zip/ boinc_zip.cpp unzip/ unzip.c api.c David 15 Jan 2007 - fix Manager text (see above) clientgui/ ProjectProcessingPage.cpp lib/ error_numbers.h Rom 15 Jan 2007 - Update libCurl to 7.16.0 and use sync name resolves instead of async name resolves. curl/ David 15 Jan 2007 - core client: fix a bug that could cause computation to stop. The problem: if we suspended a task by sending it a message, we were changing its scheduler state to CPU_SCHED_PREEMPTED but not changing its task state (PROCESS_EXECUTING). If, for some reason, the process didn't exit right away, the scheduler would treat it as still running, since it builds its "currently running" list based on task_state. Solution: the scheduler shouldn't be looking at task_state. Use scheduler_state instead. It's still a mystery why the app wasn't quitting. - db_dump: don't write team.nusers; it's meaningless client/ app.C,h app_control.C cpu_sched.C html/user/ create_account.php sched/ db_dump.C Walt 15 Jan 2007 - manager: update makefile for ViewMessagesGrid and ViewProjectsGrid source files. clientgui/ Makefile.am Rom 16 Jan 2007 - MGR: Add the help button to the list of images to update when the user selects a different skin. clientgui/ sg_ProjectsComponent.cpp David 16 Jan 2007 - core client: don't try to schedule a task whose state is PROCESS_ABORT_PENDING. client/ app.h cpu_sched.C Charlie 16 Jan 2007 Mac: Fix build script for Curl 7.15.5 (should have been done 3 months ago.) mac_build/ setupForBOINC.sh David 17 Jan 2007 - manager: show correct app name when connected to 5.4.11 client clientgui/ ViewWork.cpp ViewWorkGrid.cpp sg_ViewTabPage.cpp David 17 Jan 2007 - core client: reset 5-minute timer for network activity is user explicitly changes network mode - Manager: initial checkin of Advanced Prefs dialog (from Frank Weiler) client/ gui_rpc_server_ops.C clientgui/ Makefile.am AdvancedFrame.cpp,h DlgAdvPreferences.cpp,h DlgAdvPreferencesBase.cpp,h Events.h sg_ViewTabPage.cpp win_build/ boincmgr_curl.vcproj David 17 Jan 2007 - fix news formatting html/inc/ news.inc David 17 Jan 2007 - don't start benchmarks if they're already running - Manager: "Defect from X" -> "Stop using X" client/ cs_benchmark.C clientgui/ AdvancedFrame.cpp WelcomePage.cpp David 17 Jan 2007 - core client: if starting a file xfer, and file is already as large or larger than it should be, start transfer from the beginning. This fixes some pathological cases found by Rattledagger. client/ file_xfer.C Charlie 17 Jan 2007 Mac: add DlgAdvPreferences.cpp,h, DlgAdvPreferencesBase.cpp,h to XCode project. Mac Mgr: Fix crash bug when quitting if advanced prefs dialog open. Change dialog ID to 10000 (ID_ANYDIALOG). NOTE: All BOINC dialogs MUST have ID 10000 (ID_ANYDIALOG) or they will cause a crash bug! clientgui/ DlgAdvPreferencesBase.h mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 18 Jan 2007 MGR: Begin changes for wxWidgets 2.8.0. For now, compatibility with wxWidgets 2.6.3 is provided by using "#if wxCHECK_VERSION(2,8,0)" where needed. These conditional compilations should be removed when the transition to 2.8.0 is complete. MAC: remove XCode project's target to build non-SimpleGUI manager. clientgui/ BOINCGUIApp.cpp BOINCTaskBar.cpp MacSysMenu.cpp,h sg_BoincSimpleGUI.cpp sg_ImageButton.cpp sg_ViewTabPage.cpp wizardex.cpp common/ wxPieCtrl.h mac_build/ boinc.xcodeproj/ project.pbxproj David 18 Jan 2007 - core client: don't garbage-collect a RESULT if an ACTIVE_TASK for it still exists. In principle this shouldn't happen, but maybe it is. - limit duration correction factor to the range 0.01 .. 100 client/ client_state.C client_types.C cs_scheduler.C Eric K 18 Jan 2007 - mem_usage.C Bug fix: procfs access cannot use 64 bit files under solaris - Added solaris application working set calculation - Fixed problem on solaris when _FILE_OFFSET_BITS was set before testing for procfs.h - Removed assumption of 4k pages in procinfo_unix.C lib/ procinfo_unix.C mem_usage.C configure.ac David 18 Jan 2007 - Manager: tweaks to advanced prefs dialog and Disks tab (from Frank Weiler) clientgui/ DlgAdvPreferences.cpp,.fbp,.h DlgAdvPreferencesBase.cpp,.h ViewResources.cpp common/ wxPieCtrl.cpp,h res/ warning.xpm (new) Charlie 19 Jan 2007 MGR: Complete my changes for wxWidgets 2.8.0. NOTE: I am aware of 3 bugs with wxWidgets 2.8.0 on the Mac: - New pie chart tooltips work with wxMac-2.6.3 but not wxMac-2.8.0. - Main SimpleGUI window tasks area has problems with alignment, so task tabs are obscured. - Column width settings are not saved / restored. clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.cpp BOINCTaskBar.cpp sg_DlgPreferences.cpp stdwx.h mac/ MacSysMenu.cpp common/ wxPieCtrl.cpp,h mac_build/ buildWxMac.sh setupForBoinc.sh HowToBuildBOINC_XCode.rtf wxMac-BOINC.xcodeproj/ project.pbxproj boinc.xcodeproj/ project.pbxproj Walt 19 Jan 2007 MGR: Fix compiler error: GetTaskBarIcon isn't used in Linux clientgui/ BOINCBaseFrame.cpp Rom 19 Jan 2007 - MGR: Make sure the result records have been updated before displaying the taskbar balloon. clientgui/ BOINCTaskBar.cpp Rytis 19 Jan 2007 - user web: correct RSS feed link type to make IE7 and Safari recognise the feed. html/ inc/ util.inc user/ sample_index.php David 19 Jan 2007 - lib: change retry logic for file system ops so that it does does at least 5 retries AND takes at least 5 seconds. lib/ filesys.C David 19 Jan 2007 - core client: if resuming a persistent file xfer, don't print error messages if file has wrong size/checksum/signature. That's a normal condition is a file xfer was interrupted. client/ client_types.C,h cs_apps.C cs_files.C pers_file_xfer.C David 19 Jan 2007 - core client: print more info if MFILE vsnprintf() is too big for buffer lib/ mfile.C Rom 19 Jan 2007 - MGR: If the manager detects that the CC has crashed, and it was the one who started the CC to begin with, restart the CC after 30 seconds. - MGR: Cleanup some of the taskbar interactions where both the tooltip and balloon were being displayed on Windows. Only one should be shown. - MGR: Allow arguments to be passed to the CC from the manager's parameter list. /b "..." or /boincargs "..." should work. clientgui/ AdvancedFrame.cpp BOINCBaseFrame.cpp BOINCGUIApp.cpp, .h BOINCTaskBar.cpp MainDocument.cpp ViewResources.cpp Rom 21 Jan 2007 - CC: Add to HOST_INFO which contains the family, model, and stepping of the processor for Windows. Example: x86 Family 15 Model 2 Stepping 7 - DIAG: Fix an uninitialized string issue that cropped up after removing the forground window information from the diagnostic output. client/win/ hostinfo_win.cpp lib/ diagnostics_win.C hostinfo.C, .h Walt 19 Jan 2007 - MGR: take Close() function call out of #if/#endif block so the manager exits when the 'exit' menu item is selected. clientgui/ BOINCBaseFrame.cpp Charlie 22 Jan 2007 MGR: wxPieCtrl changes from Frank Wieler. MAC: Set up XCode project so Development builds can optionally use wxMac-2.8.8 Debug build. Add "#define USE_DEBUG_WXMAC 0" to precompiled header file. See comments at top of MacGUI.pch for instructions to enable or disable this. MAC: Work around bugs in wxMac-2.8.0 implementation of wxListCtrl::SetColumn() which failed to restore proper column widths from saved info. The default wxListCtrl in wxMac-2.8.0 uses DataBrowser, but allows us to select the traditional generic implementation with a wxSystemOptions::SetOption() call. clientgui/ BOINCGUIApp.cpp common/ wxPieCtrl.cpp mac/ MacGUI.pch mac_build/ boinc.xcodeproj/ project.pbxproj Rom 22 Jan 2007 - CC: Merge CPU capability, generation, and model information into the p_model field of HOST_INFO per David's instructions. NOTE: The finished product should look like this: "Intel(R) Xeon(TM) CPU 3.06GHz [x86 Family 15 Model 2 Stepping 7] [fpu tsc " "sse sse2 mmx]" client/win/ hostinfo_win.cpp lib/ hostinfo.C,.h Matt 22 Jan 2007 - initial db changes for special "developer blog" pages (adding "is_dev_blog" to forum table) db/ schema.sql html/ops db_update.php Matt 22 Jan 2007 - remaining development of dev blog stuff html/ inc/ forum_forum.inc user/ forum_post.inc David 22 Jan 2007 - API: use boinc_fopen() instead of fopen() in string variant of boinc_resolve_filename() lib/ app_ipc.C Charlie 23 Jan 2007 - CC: Update the HOST_INFO for Intel and PowerPC Macs per David's and Rom's instructions. client/ hostinfo_unix.C David 23 Jan 2007 - core client: fix get_host_info() for Unix - core client: update APP::user_friendly_name from scheduler RPC reply - core client: print error msg if get negative CPU time or checkpoint CPU time from app - core client: ACTIVE_TASK::runnable(): not runnable if exited, aborted, signaled etc. - core client: fix "app exits for unknown reason" case (Unix) client/ app.h app_control.C cs_scheduler.C hostinfo_unix.C David 23 Jan 2007 - manager: fix task status text clientgui/ ViewWork.cpp ViewWorkGrid.cpp Rom 23 Jan 2007 - MGR: When connecting to a remote machine, don't reset the computer name and password back to the local machine during the reconnect state. clientgui/ MainDocument.cpp, .h Rom 23 Jan 2007 (HEAD) - Tag for 5.9.1 release, all platforms boinc_core_release_5_9_1 David 23 Jan 2007 - server: extend the "simple validator framework" to require an additional function, compute_granted_credit(). Previously it always used median_mean_credit(). Projects: if you don't have any special needs, define compute_granted_credit() to just return median_mean_credit(). sched/ sample_bitwise_validator.C sample_trivial_validator.C validate_util2.C,h validator_placeholder.C David 23 Jan 2007 - core client: allow in project master files, as an alternative way of denoting scheduler URLs. If at some point all clients upgrade to this version or later, we can get rid of the old syntax X client/ scheduler_op.C lib/ util.C,h David 23 Jan 2007 - core client: added configuration option. Multiplies work requests. Use values > 1 if your computer often runs out of work while disconnected. client/ cs_scheduler.C log_flags.C,h David 24 Jan 2007 - core client: in error message for unexpected active task, include result name client/ client_state.C David 24 Jan 2007 - manager: code cleanup (from Frank Weiler) clientgui/ ViewResources.cpp common/ xwPieCtrl.cpp,h David 24 Jan 2007 - core client: when preempt a task by quit, don't set task state to UNINITIALIZED; do that when the process exits. Other code cleanup. - create_project: put new-style scheduler tags in schedulers.txt api/ windows_opengl.C client/ app.C app_control.C py/Boinc/ setup_project.py David 24 Jan 2007 - core client: tweak messages client/ app_start.C cs_apps.C Rom 24 Jan 2007 - MGR: _("") causes poEdit to throw warnings, change them to wxT(""). clientgui/ DlgAdvPreferencesBase.cpp David 24 Jan 2007 - core client: the task_debug message flag now prints all transitions of ACTIVE_TASK::task_state and RESULT::state client/ app.C,h app_control.C app_start.C client_state.C client_types.C,h cs_apps.C cs_scheduler.C David 24 Jan 2007 - core client: fix compile warnings, get rid of cs_data.C, message tweak client/ Makefile.am app_control.C client_state.h cs_data.C scheduler_op.C Rom 25 Jan 2007 - MGR: Do not refresh the Simple GUI when the manager is hidden. clientgui/ sg_BoincSimpleGUI.cpp David 25 Jan 2007 - Manager: use a scientifically chosen set of colors for disk pie charts clientgui/ ViewResources.cpp common/ wxPieCtrl.cpp win_build/ boinc_dll.vcproj David 25 Jan 2007 - core client: there was logic that wouldn't start a result for a project if it had > 2 active uploads (intended to prevent an unbounded buildup of files for a project whose upload server is broken). This was never triggered since the default is 2 active transfers per project. Maybe I meant persistent file transfers. In any case, this is a bad policy because there may be a project with lots of output files per result, possibly large, and there's no reason to keep it from computing. So instead, I changed it to not start a result from a project if its number of results in FILES_UPLOADING state exceeds 2*ncpus. client/ client_state.h client_types.h cpu_sched.C cs_scheduler.C clientgui/ AdvancedFrame.cpp David 25 Jan 2007 - core client and manager: reorganize message priorities. There are now three priorities: MSG_USER_ERROR Conditions that require user intervention. These messages are written for non-tech users, and tell the user exactly what to do. GUI: red letters MSG_INTERNAL_ERROR Conditions that may indicate a problem or bug in BOINC itself, or with a BOINC project or account manager. The message is prepended with "[error]". GUI: black letters MSG_INFO All other messages. GUI: black letters Note: all messages that must be enabled by cc_config.xml use MSG_INFO priority client/ *.C clientgui/ ViewMessages.cpp ViewMessagesGrid.cpp sg_ProjectComponent.cpp lib/ common_defs.h py/Boinc/ setup_project.py Rom 25 Jan 2007 - MGR: Flip the sorting icons for the Grid Control. - WIN: Remove the Release (SIMPLEGUI) and Debug (SIMPLEGUI) configurations since we'll only be releasing future version with the Simple GUI included. clientgui/ BOINCGridCtrl.cpp win_build/ *.sln *.vcproj Rom 26 Jan 2007 - WIN: Fix build breaks since not all configurations in all components were kept in sync. - MGR: Remove legacy tabs. clientgui/ AdvancedFrame.cpp ViewProjectsGrid.cpp ViewTransfersGrid.cpp ViewWorkGrid.cpp win_build/ *.sln *.vcproj Rom 26 Jan 2007 - MGR: Fix the OnFrameRender function in the Simple GUI, some of the logic in it blows out of the function with a return which was leaving the static variable that was guarding against repeated executions to true. This in turn kept the GUI from updating. clientgui/ sg_BoincSimpleGUI.cpp Charlie 26 Jan 2007 - MAC: Remove cs_data.C from XCode project. Change MSG_ERROR to MSG_INTERNAL_ERROR in Mac-specific source file. lib/ procinfo_mac.C mac_build/ boinc.xcodeproj/ project.pbxproj Rom 26 Jan 2007 - Remove wxAnimate since it isn't used anywhere. - MGR: Add a new menu item that'll shutdown the core client that the manager is connected too. It'll prompt for a new computer afterwords. clientgui/common/ wxAnimate.cpp, .h (Removed) clientgui/ AdvancedFrame.cpp, .h Events.h win_build/ boincmgr_curl.vcproj boincmgr_curl_2003.vcproj David 26 Jan 2007 - core client: another attempt at fixing the problem where a project is issuing work but not uploading files. New solution: don't fetch work from a project with more than 2*ncpus results in FILES_UPLOADING state. Note: this doesn't address John McLeod's point that we shouldn't increase LTD for projects in this state. - file upload handler: print more accurate message when fread() returns less than requested client/ client_state.h cpu_sched.C cs_scheduler.C sched/ file_upload_handler.C David 26 Jan 2007 - oops! left out one line in the above client/ cs_scheduler.C David 26 Jan 2007 - core client: if account manager reply doesn't specify resource share for a project, revert to the share from project server client/ acct_mgr.C Walt 28 Jan 2007 - MGR: fixed bug in dialog options where it doesn't set the slider size automatically. This is a bug in wxGTK so for Linux set the size explicitly. clientgui/ DlgOptions.cpp Rom 28 Jan 2007 - MGR: Performance Improvements for Projects tab. (from Frank Weiler) clientgui/ BOINCGridCtrl.cpp, .h ViewProjectsGrid.cpp, .h David 29 Jan 2007 - core client: fix account-manager resource share logic - manager: Statistics tab fixes (from Mifistor) client/ client_state.C client_types.C clientgui/ ViewStatistics.cpp David 29 Jan 2007 - user web: prevent cross-site request forgeries - core client: make sure that RAM limits are not zero client/ cs_prefs.C html/ inc/ host.inc prefs.inc user.inc util.inc user/ add_venue.php host_delete.php logout.php prefs_edit.php prefs_remove.php show_host_detail.php lib/ prefs.C Rom 29 Jan 2007 - MGR: Update default BOINC skin. clientgui/res/skins/default/graphic *.xpm clientgui/res/templates/skins *.png David 29 Jan 2007 - core client: on Unix, raise app stack size limit to max possible value before exec'ing the program. client/ app_start.C html/inc/ prefs.inc David 29 Jan 2007 - Manager: fix crash if select a project that doesn't have a name yet. There were two separate problems: 1) CMainDocument::project() was searching by name but not by master URL (BTW: all that at(), out-of-range exception stuff isn't needed, or the cut-and-pasted comment). 2) CViewProjects::UpdateSelection() (and its grid counterpart) were checking for project == NULL some of the time, but not all the time clientgui/ MainDocument.cpp ViewProjects.cpp ViewProjectsGrid.cpp Rom 30 Jan 2007 - MGR: Give the user a change to abort a core client shutdown when they select 'shutdown current client'. - MGR: Special case the authorization error dialog when it is attempting to use the default password, so that it also informs the user they need to run the manager from the same directory as the CC. clientgui/ AdvancedFrame.cpp, .h BOINCBaseFrame.cpp, .h MainDocument.cpp, .h David 30 Jan 2007 - Support projects that want to specify credit per WU can do so by: 1) add a x element to your WU template, or pass an 'additional_xml' argument containing x to create_work() (either the function or the program) 2) change your validator so that compute_granted_credit() calls get_credit_from_wu(). This parses the element in the workunit's XML, and grants that much credit. - Change the simple validator framework so that an additional WORKUNIT& is passed to compute_granted_credit(). sched/ handle_request.C sample_bitwise_validator.C sample_trivial_validator.C sched_config.C,h transitioner.C validate_util.C,h validate_util2.C,h validator_placeholder.C tools/ backend_lib.C,h create_work.C David 30 Jan 2007 - Unix: when increasing stack size for apps, don't exceed 500 MB client/ app_start.C David 30 Jan 2007 - manager: fix progress bars for project resource shares (from Frank Weiler) clientgui/ ViewProjectsGrid.cpp,h David 30 Jan 2007 - core client: computation of duration_correction_factor was messed up. E.g. when the correct value is .5, it converges to sqrt(.5) client/ client_types.C David 31 Jan 2007 - core client: tweak DCF update computation client/ client_types.C David 31 Jan 2007 - core client (Unix): tweak stack-size logic, and don't bump stack size limit beyond 64K client/ app_start.C David 2 Feb 2007 - core client: fix bug where client thinks an app is running but it isn't. Basic problem: there are two layers 1) process control: start/stop/suspend/resume, handle exits. files: app_*.C It owns ACTIVE_TASK::task_state 2) CPU scheduling: decide what should run files: cpu_sched.C It owns ACTIVE_TASK::scheduler_state. These layers weren't cleanly separated; e.g. the CPU sched layer relied on the process control layer to set scheduler_state in some cases, and this wasn't always being done. I fixed this; the layers are now separated. Also: added new task_state value, PROCESS_QUIT_PENDING - core client: small tweak to DCF calculation - core client: comment out stack-size stuff client/ app.C,h app_control.C app_start.C client_types.C cpu_sched.C languages/translations/ en.po David 2 Feb 2007 - DB schema: added some "default 0"s. Not worth putting in db_update.php - DB schema: removed core_version table - core client: print error messages if gethostbyname() fails for entries in remote_hosts.cfg - python code: updated DB table defs (not sure this matters) - python code: removed references to core_version table (doesn't exist) - Manager changed "defect" to "stop using" changed 2006 to 2007 - core client (Unix): removed code for SIGTSTP and SIGCONT. never got it to work, don't need anyway; handle SIGPWR. client/ gui_rpc_server.C main.C clientgui/ AdvancedFrame.cpp DlgAbout.cpp db/ schema.sql languages/translations/ en.po lib/ network.C py/Boinc/ add_util.py database.py db_mid.py Charlie 2 Feb 2007 - MGR: Fix compiler warning. clientgui/ ViewProjectsGrid.cpp David 4 Feb 2007 - core client: print message if task finishes and output file is missing client/ cs_apps.C David 4 Feb 2007 - manager: compile fix clientgui/ ViewWorkGrid.cpp David 6 Feb 2007 - core client: when new version runs for the first time, do a network access to reference site. This will trigger personal firewall alerts, that otherwise might happen later when user is not there. client/ client_state.C David 6 Feb 2007 - core client: add messages to debug CPU benchmarks - changed name of debug flag from to client/ client_state.C cs_benchmark.C log_flags.C,h David 6 Feb 2007 - validator framework: the get_credit_from_wu() mechanism didn't work because the WU's xml_doc wasn't among the fields ready by DB_VALIDOR_ITEM_SET. Read it separately. db/ db_base.C,h sched/ validate_util.C Rom 7 Feb 2007 - SS: Remove reference to the Climate Change Experiment when the client is being built for WCG. client/win/ boinc_ss.rc Rom 7 Feb 2007 - *nix: Attempt to handle the various optimation flags better by default. client/ Makefile.am David 7 Feb 2007 - fix PHP 4 problem html/inc forum_email.inc David 8 Feb 2007 - core client: fix bug where screensaver would turn on an off if CPU throttling being used client/ ss_logic.C Rytis 8 Feb 2007 - Forum pages: fix a cross site scripting vulnerability. html/ inc/ forum.inc forum_moderators.inc user.inc util.inc user/ forum_edit.php forum_moderate_post.php forum_moderate_post_action.php forum_moderate_thread.php forum_moderate_thread_action.php forum_post.php forum_reply.php forum_report_post.php forum_subscribe.php forum_thread.php David 8 Feb 2007 - core client: fix bug that causes tasks to hang (not running, but BOINC thinks it is) on Windows client/ app.C app_control.C Rom 8 Feb 2007 - MGR: Add simple validation for the authenticator returned by InternetGetCookie. clientlib/win/ AuthenticatorDetection.cpp stdafx.h David 8 Feb 2007 - core client: when a scheduler reply has a FILE_INFO for a file for which we already have a FILE_INFO record, overwrite the file_signature field only if the new record actually has one. This fixes a bug where a project used the same file in both an APP_VERSION and a WORKUNIT. The scheduler reply contained two elements for the file; the first had a signature, the second didn't. The second one overwrote the first, and the app version was rejected because one its file wasn't signed. client/ client_types.C David 9 Feb 2007 - core client: don't print misleading error messages when reference site access succeeds on initial startup. - core client: a few more messages for client/ client_state.C cpu_benchmark.h cs_benchmark.C dhrystone.C net_stats.C,h win_build boinc_cli_curl.vcproj Rom 12 Feb 2007 - WININSTALL: Force the termination of BOINC and BOINCMGR if we could not gracefully shut them down. win_build/installerv2/redist/Windows/src/boinccas/ CAShutdownBOINC.cpp CAShutdownBOINCManager.cpp boinccas.def boinccas.rc boinccas.vcproj boinccas95.def boinccas95.vcproj stdafx.h terminate.cpp, .h (Added) win_build/installerv2/redist/Windows/x86 boinccas.dll boinccas95.dll David 12 Feb 2007 - Win build fix (from Carl) win_build/ boinc_zip.vcproj David 12 Feb 2007 - core client, Unix: add '[Family x Model x Stepping x]' in p_model string. This will enable better homogeneous redundancy resolution client/ hostinfo_unix.C David 13 Feb 2007 - put zip project in the right place win_build/ boinc_zip.vcproj (removed) zip/ boinc_zip.vcproj David 13 Feb 2007 - Back end: change some of the daemons to use the "read uncommitted" transaction isolation mode. This means that their result sets are not locked, which (at least on SETI@home) greatly boosts the performance of the MySQL server. See: http://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-isolation.html db db_base.C,h sched/ db_dump.C feeder.C file_deleter.C update_stats.C tools/ upgrade Charlie 14 Feb 2007 - MAC: If relaunching AppStats due to an error, close any open file descriptors (we communicate with AppStats via a bidirectional pipe.) lib/ procinfo_mac.C David 14 Feb 2007 - make test_sanity.py work again test/ testbase.py Rom 14 Feb 2007 - WININSTALL: Force the termination of BOINC.SCR if we could not gracefully shut it down. win_build/installerv2/redist/Windows/src/boinccas/ CAShutdownBOINC.cpp CAShutdownBOINCManager.cpp CAShutdownBOINCScreensaver.cpp, .h boinccas.def boinccas.vcproj win_build/installerv2/redist/Windows/x86 boinccas.dll boinccas95.dll Rom 14 Feb 2007 - Linux: Prevent crash by initializing the Taskbar pointer, even though the Linux Boincmgr currently doesn't support that feature. (from Pav Lucistnik) clientgui/ BOINCGUIApp.cpp David 15 Feb 2007 - core client: don't print "finish file not found" message when app quits because of preemption - initial checkin for client simulator - add support for page-level translation client/ app_control.C cpu_sched.C makefile_sim sim.C,h html/inc/ page_translate.inc sched/ sched_send.C David 15 Feb 2007 - core client: fix bug where if a task is aborted (e.g. because it exceeds CPU limit) it's restarted on the next enforce_schedule(). The problem: we're deleting the ACTIVE_TASK, but the result is still in the ordered_scheduled_results list. The solution: call request_schedule_cpus() in handle_finished_apps() when an ACTIVE_TASK is deleted. client/ cs_apps.C makefile_sim Rom 17 Feb 2007 - WININSTALL: Use the Unicode version of ShutdownBOINCManager on NT based platforms and use the ANSI version on 9X based platforms. win_build/installerv2/redist/Windows/src/boinccas/ CAShutdownBOINCManager.cpp boinccas95.def boinccas95.vcproj win_build/installerv2/redist/Windows/x86 boinccas.dll boinccas95.dll Charlie 19 Feb 2007 - MAC: Eliminate use of AppStats helper application, which needed to be run setuid root. We weren't using the extra items it returns, so revert to older method of using popen(ps ...). - MAC Installer: Add debugging statements to postinstall, postupgrade scripts client/ check_security.C file_names.h clientgui/ mac/ SetupSecurity.cpp lib/ procinfo_mac.C mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ postinstall postupgrade release_boinc.sh release_GridRepublic.sh David 19 Feb 2007 - core client: when resetting or detaching a project, if a file transfer was active for a project file, the file delete would fail because Curl still has the file open. This would cause the manager to freeze for N*5 seconds. Fix: in CLIENT_STATE::reset_project(), delete FILE_XFER and PERS_FILE_XFER objects. - core client: the limits on numbers of simultaneous file transfers (total and per-project) now apply to uploads and downloads separately. We don't want a situation where an upload is blocked because there are N downloads. client/ client_state.C cs_files.C Rom 20 Feb 2007 - core client: When we go to kill a science applicaton, make sure all of the science applications child processes are killed too. NOTE: This was already implemented once, what happened to the previous implementation? client/ app_control.C lib/ win_util.C, .h Rom 20 Feb 2007 - core client: If a compound application's main applicaton gracefully exits but doesn't shutdown its child applications for some reason, forcefully terminate them. (Windows only) client/ app.h app_control.C Charlie 20 Feb 2007 MAC: Better work-around for bugs in wxMac-2.8.0 wxListCtrl::SetColumn() which failed to restore proper column widths from saved info than my fix of 22 Jan. Use the new DataBrowser implementation of wxListCtrl, but add calls to SetColumnWidth() and GetColumnWidth(). - Mac: Remove obsolete files ViewTransfers.cpp,.h, ViewWork.cpp,.h, ViewProjects.cpp,.h from XCode project. clientgui/ BOINCGUIApp.cpp BOINCListCtrl.cpp sg_DlgMessages.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 21 Feb 2007 MAC: Manager writes wxWidgets version to stdout for debugging (before redirecting stdout to stdoutgui.txt file.) clientgui/ BOINCGUIApp.cpp David 21 Feb 2007 - split out string-related utility functions into a new file, str_util.C - more work on simulator - Add "Holy See" to country list api/ gutil_text.C client/ *.C db/ *.C lib/ *.C sched/ *.C tools/ backend_lib.C David 21 Feb 2007 - core client: if benchmark time is in the future (due to user tweak) always run benchmarks client/ cs_benchmark.C David 21 Feb 2007 - core client: split out work-fetch code into a separate file client/ work_fetch.C (new) David 21 Feb 2007 - windows compile fixes client/ cs_statefile.C win/ hostinfo_win.cpp clientgui/ (several).cpp lib/ diagnostics_win.C win_build/ boinc_cli_curl.vcproj boinc_ss.vcproj boincmgr_cur.vcproj libboinc.vcproj David 21 Feb 2007 - code shuffling to get simulator to compile (it does now) client/ app.C app_control.C client_types.C cpu_sched.C cs_apps.C cs_statefile.C makefile_sim net_stats.h sim.C,h Bruce 22 Feb 2007 - fix scan format bug in reading proc info (UNTESTED!) [David, Rom, should we add an ERR_SCANF to errnum.h ?] - insert shmem hack for E@H lib/ procinfo_unix.C shmem.C David 22 Feb 2007 - add message flag; shows when apps checkpoint. client/ app.h app_control.C log_flags.C,h sim.C David 22 Feb 2007 - core client, Win: set processor affinity mask for benchmark threads client/ cs_benchmark.C Charlie 22 Feb 2007 Mac: add str_util.C,h, work_fetch.C to XCode project. mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 23 Feb 2007 Mac: Create new OSXIdleTime() function to replace deprecated NxIdleTime() API; client/ hostinf_unix.C main.C lib/ hostinfo.h David 23 Feb 2007 - scheduler: remove tag at the start of scheduler reply. This apparently breaks 4.19 clients client/ client_state.h sim.C,h sched/ server_types.C David 23 Feb 2007 - core client: disable connection caching in Curl. This may reduce cases where file uploads hang because a server process holds file lock. - manager: fix status text for file transfers client/ http_curl.C clientgui/ ViewTransfers.cpp ViewTransfersGrid.cpp David 23 Feb 2007 - core client: add bool detach_when_done to PROJECT. If set, detach from project when it has not results (i.e. when all work is finished and acknowledged). Save/restore in client state file. - core client: add optional and flags to account element in account manager reply messages. See acct_mgt.php client/ acct_mgr.C,h client_state.C,h client_types.C,h sched/ handle_request.C David 23 Feb 2007 - client simulator: wrote more code, added Windows project client/ sim.C,h work_fetch.C win_build/ boinc.sln sim.vcproj David 24 Feb 2007 - boinc_cmd: change --lookup_account and --create_account commands so that they poll until the operation is done, and then show a meaningful result (e.g. an account key). Remove --lookup_account_poll and --create_account_poll commands - more work on simulator client/ client_types.C cpu_sched.C sim.C,h work_fetch.C lib/ boinc_cmd.C gui_rpc_client.h gui_rpc_client_print.C parse.C str_util.C David 24 Feb 2007 - core client: when detach from a project, delete its sched_request, sched_reply, and master files client/ client_state.C Bruce 25 Feb 2007 - scheduler: stop logging error messages about unrecognized tag. - locality scheduler: when getting a working set file name using glob(3), do not glob multiple times, possibly getting back the same file name again. Instead glob once and then randomly choose file names, crossing items off the list one at a time. Note: I wrote this code using STL vectors and strings, but now regret this: the necessary vector insertions are potentially inefficient.. Sometime next week I will recode this using a C-style pointer arrays with guaranteed O(1) efficiency. But I want to get this into CVS while it's working. - locality scheduler: fix is_host_slow() function following David's Jan 12 checkins to use claimed_credit_per_cpu_sec. sched/ sched_config.C sched_locality.C Charlie 25 Feb 2007 Mac: Fix OS 10.3 bug in new OSXIdleTime() function. Win: Fix check mark on Snooze taskbar menu item on Windows XP client/ hostinf_unix.C clientgui/ BOINCTaskBar.cpp Charlie 26 Feb 2007 Mac: Fix OS 10.3.x permissions problem when running debug build; this problem caused shared memory communications to fail between client and project applications. client/ check_security.C clientgui/ mac/ SetupSecurity.cpp Charlie 27 Feb 2007 Mac: Add an optional argument to HOST_INFO::users_idle() to allow returning the actual idle time. This change is __APPLE__ only. Mac: Fix serious bugs in Mac_SA_Insecure.sh and Mac_SA_Secure.sh scripts when run under OS 10.3.x. They sometimes created bad users and groups with IDs that were duplicates of other users and groups. They ran correctly under OS 10.4.x. Users who ran an older version of either script under OS 10.3.x should first run the current version of Mac_SA_Insecure.sh to delete the bad entries and then run Mac_SA_Secure.sh to create new good entries. client/ hostinf_unix.C lib/ hostinfo.h mac_build/ Mac_SA_Insecure.sh Mac_SA_Secure.sh Bruce 27 Feb 2007 Scheduler: stop complaining about some unrecognized tags. sched/ server_types.C Charlie 28 Feb 2007 SANDBOX: only the super-user can send signal to another user's process. Core client runs as user boinc_master, but project applications run as user boinc_project, so ACTIVE_TASK::kill_task() probably could not work as written. I added code which uses switcher helper application to kill the tasks, but also left in the direct kill call just to be safe. Note: CBOINCGUIApp::ShutdownBOINCCore() probably has this same problem, but this kill() is only used in extraordinary circumstances. Mac: The Mac screensaver launches the core client if not already running. In this case, it used to kill the cc when screensaver was dismissed. But Mac OS X dismisses screensavers when energy saver puts displays to sleep, so we want cc to then continue running. New code launches cc with -saver argument, lets cc run when saver quits. New logic in cc quits if (launched by screensaver) and (recent user activity) and (parent [screensaver] has exited). This takes into account that if user invoked screensaver by moving mouse into "hot corner" there will be recent user activity. Added logic to screensaver to relaunch cc in case of certain race conditions (e.g., screensaver started, dismissed, restarted in rapid succession.) - Mac Manager: add -launched_by_manager arg when launching core client. client/ app_control.C cs_prefs.C clientgui/ BOINCGUIApp.cpp mac/ mac_saver_module.cpp David 3 Mar 2007 - core client: add "get project list" RPC, called every 2 weeks - fix a few compiler warnings from gcc 4.1 - more simulator work client/ acct_mgr.C acct_setup.C,h app_control.C client_state.C,h client_types.C cpu_sched.C cs_cmdline.C cs_statefile.C file_names.h gui_rpc_server.C scheduler_op.C sim.C html/inc/ stats_sites.inc David 4 Mar 2007 - API: use a mutex instead of a boolean variable for mutual exclusion during checkpoint. This should fix a race condition that can result in applications being suspended and not responding to resume messages api/ boinc_api.C,h David 4 Mar 2007 - GUI RPC: add several scheduling-related items (not used by Manager, but possibly useful for 3rd-party GUIs) // tells you if a result is running in EDF mode bool RESULT::edf_scheduled // the following were already in the XML but not parsed // into the C structs double PROJECT::short_term_debt double PROJECT::long_term_debt double PROJECT::duration_correction_factor client/ client_types.C,h cpu_sched.C lib/ app_ipc.C gui_rpc_client.h gui_rpc_client_ops.C David 5 Mar 2007 - core client: if can't chdir to the dir specified by --dir, quit - show_shmem: show homogeneous redundancy class - file upload handler: say "out of space on server" instead of "out of space on device"; users get confused by the latter, think it refers to their disk client/ cs_cmdline.C file_xfer.C sched/ file_upload_handler.C show_shmem.C Rom 5 Mar 2007 - MGR: Rough draft for presenting an interface of known projects based on David's March 3rd "get project list" checkin. clietgui/ AccountInfoPage.cpp AccountManagerInfoPage.cpp BOINCWizards.h ProjectInfoPage.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.C Rom 6 Mar 2007 - MGR: Choosing from the project list now works, although the combo box is really busy right now. clientgui/ ProjectInfoPage.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.C David 6 Mar 2007 - User web: add "none" as an option for default host venue; display this as "---" or "--- (none)" html/ inc/ prefs.inc user/ host_venue_action.php Rom 6 Mar 2007 - MGR: Use just the project name in the project list for now. clientgui/ ProjectInfoPage.cpp Rom 7 Mar 2007 - Update OpenSSL modules for windows to OpenSSL 0.9.8e. openssl/ Rom 7 Mar 2007 - Update cURL modules for windows to cURL 7.16.1. curl/ David 8 Mar 2007 - API (Unix): there was still a race condition in the runtime library. Fix it (I hope) by having worker_signal_handler() acquire the mutex before suspending worker thread. - remove msg parameter of resolve_hostname() api/ boinc_api.C client/ gui_rpc_server.C lib/ filesys.C network.C,h Charlie 8 Mar 2007 - Mac: Update build scripts, XCode project and build instructions for cURL 7.16.1. - Mac: Delete unused target AppStats from XCode project. mac_build/ buildcurl.sh HowToBuildBOINC_XCode.rtf setupForBOINC.sh boinc.xcodeproj/ project.pbxproj doc/ mac_build.php Charlie 9 Mar 2007 -Mac: update installation documentation: say to double-click on "BOINC Installer" application, not on BOINC.pkg. doc/ mac_advanced.php release_notes.php Rom 9 Mar 2007 - MGR: Fix the wizard classes so they are compatible with both wxWidgets 2.4 and 2.8. clientgui/ AccountInfoPage.cpp AccountKeyPage.cpp AccountManagerInfoPage.cpp AccountManagerProcessingPage.cpp AccountManagerPropertiesPage.cpp AlreadyAttachedPage.cpp AlreadyExistsPage.cpp CompletionErrorPage.cpp CompletionPage.cpp NoInternetConnectionPage.cpp NotDetectedPage.cpp NotFoundPage.cpp ProjectInfoPage.cpp ProjectProcessingPage.cpp ProjectPropertiesPage.cpp ProxyInfoPage.cpp ProxyPage.cpp stdwx.cpp UnavailablePage.cpp WelcomePage.cpp, .h WizardAccountManager.cpp WizardAttachProject.cpp wizardex.cpp, .h Rom 9 Mar 2007 - MGR: Fix a segfault on Linux. clientgui/ ProjectInfoPage.cpp, .h David 10 Mar 2007 - unix compile fix (from Frank Thomas) lib/ boinc_cmd.C David 10 Mar 2007 - scheduler: use 1024-char buffer for parsing (handle large CPU model strings) sched/ server_types.C David 10 Mar 2007 - scheduler: add one_result_per_host_per_wu option. This is useful if you use homogeneous redundancy and most hosts of a particular class belong to a single user. sched/ sched_array.C sched_config.C,h Charlie 12 Mar 2007 - Mac: add str_util.C,h to libboinc target of XCode project. - CC: On Mac OS X, sysctl with selectors CTL_HW, HW_PHYSMEM returns only a 4-byte value, even if passed an 8-byte buffer, and limits the returned value to 2GB when the actual RAM size is > 2GB. So use Mac-specific API Gestalt(gestaltPhysicalRAMSizeInMegabytes, &mem_size) and add a #error statement to the old method to alert any porters if their platforms were using sysctl {CTL_HW, HW_PHYSMEM}. client/ hostinfo_unix.C mac_build/ boinc.xcodeproj/ project.pbxproj Rom 13 Mar 2007 - WIN: Change the sse3 CPU feature detection flag from 'sse3' to 'pni'. - MGR: Commit Frank Weiler's lastest ViewProjectsGrid. client/win/ hostinfo_win.cpp clientgui/ sg_BoincSimpleGUI.cpp sg_ViewTabPage.cpp ViewProjectsGrid.cpp, .h David 13 Mar 2007 A bunch of security-related changes: - Most functions that return paths now take an additional "length" parameter to prevent buffer overrun if the project URL or filename is extremely long. - Use snprintf() and vsnprintf() in a bunch of places to avoid buffer overrun. - Core client: Add suppress_net_info config flag (don't send IP address and domain name to servers) - Core client: Add disallow_attach config file (don't allow attach to new projects) - Core client: Add os_random_only config flag. (exit if OS-level random string functions fail when generating GUI RPC password) - Core client: if a filename (in s from server) contains directory traversal chars (..), or format conversion chars (%), or is empty, reject it. Other changes: - Core client: change size of path buffers from 256 to 1024. Should make this a #define at some point. - GUI RPC: rename PROJECTLISTENTRY -> PROJECT_LIST_ENTRY (let's stick with BOINC coding standards) - GUI RPC: rename PROJECTLIST -> ALL_PROJECTS_LIST (let's not confuse currently attached projects with all projects) - GUI RPC: make get_all_projects_list() into an actual RPC, not just reading a file (which won't exist in the RPC client's current dir, e.g. if it's remote). - GUI RPC: rename desc -> description and img -> image in project list XML exported by BOINC server. Let's NEVER have different spelling between XML tabs and structure fields!! - GUI RPC: Include rr_sim_deadlines_missed in PROJECT - core client: rename file project_list.xml -> all_projects_list.xml - core client, Linux: add improved code for parsing CPU info (from Thibaut Varene) - added test program for CPU info client/ app.C app_start.C client_state.C,h client_types.C cs_account.C cs_apps.C cs_files.C cs_prefs.C cs_scheduler.C cs_statefile.C cs_trickle.C file_names.C,h file_xfer.C gui_rpc_server.C gui_rpc_server_ops.C hostinfo_unix.C hostinfo_unix_test.C (new) log_flags.C,h pers_file_xfer.C scheduler_op.C lib/ app_ipc.C boinc_cmd.C error_numbers.h gui_rpc_client.C gui_rpc_client_ops.C hostinfo.C,h md5_file.C miofile.C,h str_util.C sched/ sched_config.C David 13 Mar 2007 - compile fix clientgui/ ProjectInfoPage.cpp,h David 13 Mar 2007 - work fetch fixes (from John McLeod) - implement work_fetch_factor correctly - ignore duration_correction_factor if it's out of bounds client/ cpu_sched.C work_fetch.C Charlie 13 Mar 2007 - Fix compiler warnings, including one in CProjectInfo::makeHashKey() which warned "call will abort at runtime." client/ gui_rpc_server.C gui_rpc_server_ops.C clientgui/ ViewProjectsGrid.cpp Matt 14 Mar 2007 - updated db_init and db_init_aux code in util.inc, db.inc to enable possible use of replica (i.e. read-only) database (for pages that lookup stats, print profiles, etc. but don't make any updates). Implemented in top_{users,teams,hosts}.php html/inc db.inc util.inc html/user top_users.php top_hosts.php top_teams.php Charlie 14 Mar 2007 - Mac: Fix Mac bugs in SimpleGUI under wxMac-2.8.2. - Mac: Update build scripts, XCode project and build instructions for wxMac-2.8.2. clientgui/ sg_ViewTabPage.cpp mac_build/ buildWxMac.sh HowToBuildBOINC_XCode.rtf setupForBOINC.sh boinc.xcodeproj/ project.pbxproj doc/ mac_build.php Charlie 15 Mar 2007 - SG: On timer events, update only the panel for the currently selected task tab. Due to an apparent bug in wxMac-2.8.2, dc.DrawBitmap() and dc.DrawText() actually draw to the screen even though the tab panel should be hidden. Also, updating hidden panels is inefficient on all platforms. - Added a new WorkunitNotebook::OnTabChanged() event handler to update the panel when its tab is first selected, so stale data is not shown. - Fixed a logic error when deleting inactive tabs. clientgui/ sg_ViewTabPage.cpp,h Rom 15 Mar 2007 - MGR: Do not allow multiple dial-up promtps to appear when the CC needs to connect, it is annoying and will eventually blow the stack. clientgui/ BOINCDialupManager.cpp David 15 Mar 2007 - API: my checkin of Mar 8 was flawed and causes an app hang. Revert to the previous way (bool var, not mutex) but with an additional check in worker_signal_handler() that should fix the original race condition (from Jonathan Armstrong) - core client: fix bug where, if host is in "suspended to disk" state for a long time, its next debt adjustment assumes that apps were running the entire time. The fix: if more than 2xcpu_sched_period has elapsed since last debt adjustment, ignore the period. - Add data structures for day-of-week preferences (but don't actually implement much) api/ boinc_api.C client/ client_state.h cpu_sched.C cs_prefs.C html/user/ edit_form_preferences_form.php lib/ hostinfo.C prefs.C,h David 15 Mar 2007 - core client: change the way slot directories are assigned, and the way things are cleaned up. The new design ensures that apps always start running in an empty directory. Old: assign new ACTIVE_TASK the lowest slot number not in use. When the app starts, try to clean out the slot dir. If can't clean it out, rename it (to DELETE_ME_*) and create another dir. On startup, delete dirs named DELETE_ME_* The problem: if you can't clean out a dir (on Windows) you're not going to be able to rename it. So the app will start in a non-empty dir. New: assign new ACTIVE_TASK the lowest slot number not in use and for which an empty directory can be created. On start, delete dirs and files not in use by an active task. - core client: fix bug where clean_out_dir() could return zero even though the dir isn't emptied. client/ app.C,h app_start.C file_names.C,h lib/ filesys.C David 15 Mar 2007 - compile fixes client/ sim.h clientgui/ DlgAdvPreferences.cpp sg_DlgPreferences.cpp Charlie 15 Mar 2007 - Fix compiler warnings. client/ app.C cpu_sched.C lib/ filesys.C hostinfo.C Rom 17 Mar 2007 - MGR: Revamped project selection list. It is mostly done, I just have to figure out how to trap static text click events, right now you have to click on areas where there isn't any text. clientgui/ ProjectInfoPage.cpp, .h ProjectListCtrl.cpp, .h (Added) win_build/ boincmgr_curl_2003.vcproj David 18 Mar 2007 - user web: make an XML variant of apps.php - scheduler: parse uldl_pid etc. in config file to avoid XML parse warnings (from David Braun) html/user/ apps.php sched/ sched_config.C Rom 19 Mar 2007 - MGR: Fill in the missing piece with trapping static text control mouse movement and clicks. clientgui/ ProjectListCtrl.cpp, .h David 19 Mar 2007 - core client: fetch all-projects list at startup if it's not there. - core client: write rr_sim_missed_deadline only for GUI RPC, not statefile client/ acct_setup.C client_state.C,h client_types.C cs_statefile.C scheduler_op.C Rom 19 Mar 2007 - MGR: Strip out all the extra fluff, and add a website link. clientgui/ ProjectListCtrl.cpp, .h David 19 Mar 2007 - removed [features] from p_model; move it to a separate field, p_features, which is stored on the client and sent to server but not stored in server DB. - fix gcc 4.x warnings - user web: change of app version list XML client/ hostinfo_unix.C hostinfo_win.C (new) main.C win/ hostinfo_win.cpp (removed) html/user/ apps.php lib/ filesys.C hostinfo.C,h David 19 Mar 2007 - core client: added more support for day-of-week time preferences. They're now enforced, and times are expressed as doubles (hours, 0..24) client/ cs_prefs.C lib/ boinc_cmd.C prefs.C,h David 19 Mar 2007 - compile fixes client/ hostinfo_win.C win_build/ boinc_cli_curl.vcproj Charlie 19 Mar 2007 - Mac: fix compile errors (must cast double variable to int to use it as array index.) - Fix compiler warnings. GCC on Linux and Mac have conflicting warnings: Mac complains about unused variables, Linux about ignoring returns from functions like getcwd() which returns the result in 2 places. Try to satisfy both compilers using __attribute__ ((unused)) construct. This may not work for Windows compiler, though. -- Mac: Add ProjectListCtrl.cpp to XCode project. client/ hostinfo_unix.C http_curl.C clientgui/ DlgAdvPreferences.cpp sg_DlgPreferences.cpp lib/ boinc_cmd.C filesys.C hostinfo.C mac_build/ boinc.xcodeproj/ project.pbxproj David 19 Mar 2007 - core client: bug fixes in prefs lib/ prefs.C Rom 19 Mar 2007 - Add some more cross compiler tweaks to the precompiled header for Windows. clientgui/ stdwx.h lib/ boinc_win.h filesys.C Rom 20 Mar 2007 - MGR: Randomize the project selection list - MGR: Last few tweaks to the project selection list clientgui/ ProjectInfoPage.cpp ProjectListCtrl.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.C David 20 Mar 2007 - core client, Unix: run CPU benchmarks at low priority, same as applications. On some systems, the clock governor (powersaved) will slow the CPU clock if nothing's running at regular priority (but it ignores processes running at low priority). If benchmarks run at regular priority, this could result in a erroneous claimed-credit numbers. (from Evandro Menezes) client/ app_start.C cs_benchmark.C lib/ util.C,h David 20 Mar 2007 - API: boinc_checkpoint_completed(): don't call update_app_progress() unless options.send_status_msgs is set (fixes bug in wrappers that call this) - lib: add linux_cpu_time() function (get CPU time of another process) api/ boinc_api.C lib/ procinfo_unix.C util.C,h David 20 Mar 2007 - Manager: cosmetic tweaks to project select clientgui/ ProjectListCtrl.cpp David 20 Mar 2007 - core client: if "no more work" or "detach when done" tag is missing from account manager reply, don't change value. Note: this is implemented using new OPTIONAL_BOOL and OPTIONAL_DOUBLE types that may be useful elsewere as well. client/ acct_mgr.C,h Jeff 21 Mar 2007 - added : #define feof FCGI_feof #define ferror FCGI_ferror to the list of such defines at the bottom of file fcgi_stdio.h. This was needed to complile the fcgi version of the file upload handler. Note that this list of defines is the only difference between our fcgi_stdio.h and /usr/include/fcgi_stdio.h on the linux box used for this build. sched/ fcgi_stdio.h David 21 Mar 2007 - update sample web site front page html/user/ sample_index.php David 21 Mar 2007 - core client: fixed bug where a in scheduler reply would crash client. Also, change this tag to Note: the syntax is xxx where xxx is the result name. client/ cs_scheduler.C scheduler_op.C,h David 23 Mar 2007 client/ app.h sim.C languages/translations/ en.po David 23 Mar 2007 - Manager: show "detach when done" if set clientgui/ ViewProjects.cpp ViewProjectsGrid.cpp win_build/ sim.vcproj David 23 Mar 2007 - manager build fix clientgui/ Makefile.am Rytis 24 Mar 2007 - Forum: duration selection and optional message to the user. html/ user/ forum_moderate_post.php forum_moderate_post_action.php inc/ forum_email.inc David 24 Mar 2007 - admin web: added script to banish user for various periods, independently of forum tools (from Eric Myers) html/ops/ index.php manage_user.php Rom 27 Mar 2007 - MGR: Extend browser cookie detection framework so that additional browsers can be used. - MGR: Checkin Frank's latest changes to the Advanced Preferences dialog. clientgui/ DlgAdvPreferences.cpp, .h Makefile.am stdwx.h WizardAttachProject.cpp clientlib/win/ AuthenticatorDetection.cpp, .h (Removed) lib/ boinc_win.h browser.C, .h (Added) browser_firefox.C (Added) browser_ie.C (Added - Windows Only) win_build/ boinc_dll.vcproj boinc_dll_2003.vcproj boincmgr_curl.vcproj boincmgr_curl_2003.vcproj David 27 Mar 2007 - client: on startup, show how much RAM and disk are usable (taking prefs into account) client/ cs_prefs.C lib/ str_util.h Walt 27 Mar 2007 - MGR: Fix Makefile.am to remove whitespace after continuation character. clientgui/ Makefile.am David 27 Mar 2007 - scheduler: fix bug that cause parse error for Linux hosts with long strings (from Andre Kerstens) sched/ server_types.C Walt 27 Mar 2007 - MGR: Fix compile errors clientgui/ WizardAttachProject.cpp lib/ browser_firefox.C David 28 Mar 2007 - core client: add work_buf_additional_days preference; track variability in completion times (from John McLeod VII) - add browser.C to lib/ makefile; do NOT use ../* in other makefiles client/ client_state.C,h client_types.C,h cpu_sched.C cs_scheduler.C log_flags.C,h rrsim_test.C sim.h clientgui/ Makefile.am lib/ Makefile.am browser.C browser_firefox.C (removed) browser_ie.C (removed) prefs.c,h David 28 Mar 2007 - user web: support for work_buf_additional_days pref html/inc/ prefs.inc David 29 Mar 2007 - core client: fix some debug messages - more code-shuffling for client simulator client/ cpu_sched.C file_xfer.h log_flags.C,h sim.C,h win_build/ boincmgr_curl.vcproj sim.vcproj David 29 Mar 2007 - Manager: add work_buf_additional_days to adv prefs dialog; add multi-selection to transfer tab (from Frank Weiler) clientgui/ DlgAdvPreferences.cpp DlgAdvPreferences.fbp DlgAdvPreferencesBase.cpp,h ViewTransfersGrid.cpp David 29 Mar 2007 - API: don't report CPU time and fraction done while suspended (not needed, and wastes CPU time) api/ boinc_api.C David 29 Mar 2007 - core client: include MD5 in file upload handler requests, so that the server can (if it wants) verify the MD5. NOTE: I don't think this should be necessary. Also include core client release # in all requests client/ file_xfer.C Rom 29 Mar 2007 - MGR: Prevent crash in the projects tab by checking to see if there is really anything to display, if not delete all rows and then return. clientgui/ ViewProjectsGrid.cpp David 29 Mar 2007 - Manager: text tweaks clientgui/ AdvancedFrame.cpp DlgAbout.cpp Charlie 30 Mar 2007 - Mac: Major fixes and improvements to backtrace: correctly show address of instruction which caused SIGSEGV or SIGBUS faults, remove bogus NULL stack frame at end of trace; improve output format, etc. - Mac: Add browser.C,h to XCode project. lib/ mac_backtrace.C MoreBacktrace.C mac_build/ boinc.xcodeproj/ project.pbxproj David 2 Apr 2007 - Manager: improvements to advanced Prefs dialog (from Frank Weiler) - Client simulator work client/ sim.C,h work_fetch.C clientgui/ DlgAdvPreferences* lib/ prefs.C Charlie 3 Apr 2007 - Mac Installer: Change name of Postinstall.app to PostInstall.app to fix a problem on some Macs where the postinstall or postupgrade script failed to launch PostInstall.app due to the lower-case I. I don't know why some Macs would be case-sensitive here while others aren't, but user feedback seems to confirm this problem. - Mac Installer: Add directions for removing users boinc_master and boinc_user to uninstall instructions. mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ GR-ReadMe.rtf ReadMe.rtf release_boinc.sh release_GridRepublic.sh Rom 3 Apr 2007 - MGR: Check firefox cookies for a projects authenticator which might have been assigned during a web based registration scenario - MGR: Fix detech from project crashing condition - MGR: Fix variuos performance problems with the Grid based views. Best rule of thumb is to not set/change any value in a control unless it has really changed. Doing so causes the RECT to become invalidated which causes the OS to want to repaint it. Data processing is always faster than repainting. - MGR: Don't delete all the rows of a grid just to recreate them a few steps later, you really only need to add or delete the difference since the last update. - MGR: Avoid using 'wxString("Some static Text", wxConvUTF8)' to handle literal strings for Unicode, the wxT() macro allows the compiler to take care of it at compile time, instead of run-time. - MGR: Add a generic 'BOINC help' link that can be used to go to help.php. - MGR: All help menu items are now redirected using the manager_links.php page. - MGR: Add version information to the manager_links.php requests. - MGR: Remove the CProjectInfo cache from ViewProjectsGrid. - CC: Fix the display of the processor features. It is useful for those who want to run optimized clients but don't really know what processor features are supported by their processor/os combination. - DBG: Include all the 64-bit registers in the debug output on a 64-bit Windows machine. client/ client_state.C hostinfo_win.C client/win/ win_screensaver.cpp clientgui/ AdvancedFrame.cpp, .h Events.h ViewMessagesGrid.cpp ViewProjectsGrid.cpp, .h ViewTransfersGrid.cpp ViewWorkGrid.cpp WizardAttachProject.cpp sg_BoincSimpleGUI.cpp stdwx.h lib/ boinc_win.h browser.C stackwalker_win.cpp win_build/ boincmgr_curl.vcproj David 3 Apr 2007 - core client: don't print "process not found" unless task_debug set - simulator stuff client/ app_control.C cpu_sched.C cs_apps.C sim.C,h David 3 Apr 2007 - simulator client/ app_control.C cpu_sched.C sim.C,h David 3 Apr 2007 - core client: fix parsing of . If set: - If client is processing a result for a WU that has been cancelled or is not in the DB (i.e. there's no chance of getting credit) send . - If client is processing a result for a WU that has been assimilated or is overdue (i.e. there's a chance of not getting credit) send - Scheduler: enhancements to replication policy (which attempts to send additional replicas of a WU only to reliable/fast hosts). There are several new config options which let projects tailor the policy in various ways: - : a host must have at least this avg credit to be considered reliable - : a host must have at most this avg_turnaround to be considered reliable - : results with at least this priority will be sent only to reliable hosts - : increase priority of additional replicas by this amount - increase priority of additional replicas triggered by timeout (but not error) by this amount - : send results for WUs at least this old only to reliable hosts - : if a WU is at least "reliable_time" old, multiply its latency bound by this factor (0..1) - Transitioner: add the notion of "grace period" so users get credit even if results are somewhat late. - : defer the deletion of the canonical result for this many hours after the deadline of any pending result - Transitioner: add option : delay the deletion of WU input files for this interval after last result has been returned Implementation details:: - add TRANSITIONER_ITEM::res_received_time - add WORK_ITEM::res_priority (read by feeder, stored in shared mem, used by scheduler) - add IN_PROGRESS_RESULT to enumerate in-progress results - read appid in VALIDATOR_ITEM - add priority_increase arg to create_result() (all the above from Kevin Reed) db/ boinc_db.C,h sched/ feeder.C handle_request.C sched_config.C,h sched_send.C sched_shmem.h server_types.C,h transitioner.C tools/ backend_lib.C,h David 5 Apr 2007 - core client: fix bug where, if client runs at boot time and DNS system isn't up yet, entries in remote_hosts.cfg will fail to resolve, and the core client will be inaccessible. Fix: we already have a mechanism in which GUI_RPC_CONN_SET::init() is called 30 times, at 1-sec interval, until it succeeds. Extend this to cover the parsing of remote_hosts.cfg also. client/ client_state.C gui_rpc_server.C,h David 5 Apr 2007 - core client: work fetch skip a project if its # deadline misses is >= #cpus (not just > 0) - define a set of process exit codes (currently just 3 of them) separate from function return values. Process exit codes are limited to 8 bits in Unix; use positive numbers starting at 192 api/ boinc_api.C client/ app_start.C client_state.C sim.C,h work_fetch.C lib/ diagnostics.C error_numbers.h David 5 Apr 2007 - core client: canonicalize account manager URL - boinc_cmd: add --join_acct_mgr, --quit_acct_mgr commands; remove --acct_mgr_op command. client/ acct_mgr.C lib/ boinc_cmd.C David 6 Apr 2007 - client simulator: add the ability to do many simulations, each specified in a separate directory, and show the individual and total results. client/ sim.C,h David 6 Apr 2007 - core client: sanity check on work request size (from John McLeod) client/ work_fetch.C David 8 Apr 2007 - updater: - make program more general (array of files) - if get an error before installing new version, run the old version (core and/or mgr). - if launch of new core client or manager fails or program exits within 5 seconds, back out the update and run old version - when running core client (old or new) pass --run_by_updater flag - move files instead of copy - core client: - add --run_by_updater cmdlines option; if set, and updater version > client version, set "install_failed" flag in AUTO_UPDATE. This prevents the client from trying the update again. - if updater doesn't run or exits within 5 seconds, mark update as failed (stick with current version) client/ auto_update.C,h client_state.C,h cs_cmdline.C sim.C,h lib/ filesys.C util.C,h tools/ updater.C David 9 Apr 2007 - win compile fixes client/ auto_update.C lib/ util.C David 9 Apr 2007 - bug fix in simulator (possibly core client too): in handle_finished_apps(), do the vector erase directly instead of calling remove() (which could cause you to skip one task) client/ app.C,h cs_apps.C David 9 Apr 2007 - update netsoft URL html/inc/ stats_sites.inc user.inc Charlie 9 Apr 2007 - change boinc_catch_signal() to exit with exit code EXIT_SIGNAL instead of ERR_SIGNAL_CATCH. lib/ diagnostics.C Charlie 10 Apr 2007 - Mac: Add support for Firefox on Mac. lib/ browser.C David 10 Apr 2007 - simulator client/ sim.C,h Rom 10 Apr 2007 - MGR: Do not attempt a refresh of the old grid header if the old value is -1. (From Walt G.) clientgui/ BOINCGridCtrl.cpp David 10 Apr 2007 - core client: adjustment to anticipated debt is resource_share*expected_payoff, not (1-resource_share)*expected_payoff client/ cpu_sched.C sim.C,h Charlie 11 Apr 2007 - Mac: Add support for Safari on Mac. - Fix bugs in Firefx / Mozilla cookie detection: - Don't require match for a leading "www" in URL. - Don't return true if is_authenticator_valid(cookie) fails. - Check for std::string.find() returning npos if it fails, not -1. - Add extern "C" to browser.h file. lib/ browser.C,h mac_browser.mm (new, Mac only) David 11 Apr 2007 - database: add sent_email table; keep track of emails sent to users - boinc_cmd: add --read_cc_config command db/ boinc_db.h schema.sql client/ cs_cmdline.C html/ops/ db_update.php remind.php lib/ boinc_cmd.C David 11 Apr 2007 - client: write availability info to a log file Don't let file exceed 1 MB or 1 year, whichever is larger - client: work fetch tweak: add notion of fetchable_resource_share - client: remove BOINC_OUTAGE code - client: remove leftover CURL temp files (blc*) on startup - client: remove duration_variability code - client: in maintaining availability info (TIME_STATS), ignore CPU throttling. - Manager: don't divide work_buf_additional_days by 86400 (??) client/ client_state.C,h client_types.C,h cpu_sched.C cs_scheduler.C file_names.h http_curl.C,h rrsim_test.C sim.h time_stats.C,h work_fetch.C clientgui/ DlgAdvPreferences.cpp lib/ network.h David 11 Apr 2007 - user web: wrong URL for BOINC Combined Stats html/inc/ user.inc Charlie 11 Apr 2007 - Move browser.C,h from lib/ to clientgui/ - Move lib/mac_browser.mm to clientgui/browser_safari.mm - Adjust makefiles and XCode project for above changes - Remove extern "C" from browser.h - Fix compiler warning in http_curl.C client/ http_curl.C clientgui/ browser.C,h (added) browser_safari.mm (added) makefile.am lib/ browser.C,h (removed) mac_browser.mm (removed) makefile.am mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 12 Apr 2007 - MGR: Fix bug in SimpleGUI prefs: it wasn't resetting the tag when changing "Do work when user idle" override from "0 (Run Always)" to an idle time value. clientgui/ sg_DlgPreferences.cpp Rom 12 Apr 2007 - Change directory layout for 32-bit Windows client dependancies (curl, openssl, zlib) - Include 64-bit Windows client dependancies (curl, openssl, zlib) curl/ openssl/ zlib/ David 12 Apr 2007 - added script for getting statistics on job FLOP counts html/ops/ index.php job_times.php Charlie 12 Apr 2007 - Fix compile error: #include in cs_benchmark.C - Mac: Update XCode project, build scripts and build instructions to use wxMac-2.8.3. - Mac: Fix minor XCode project bug in ppc_Deployment build configuration of target BOINC_Client (this build configuration is not used for release builds.) client/ cs_benchmark.C mac_build/ buildWxMac.sh HowToBuildBOINC_XCode.rtf setupForBOINC.sh boinc.xcodeproj/ project.pbxproj David 12 Apr 2007 - client: log job completions client/ client_types.C,h cs_apps.C file_names.C,h David 13 Apr 2007 - feeder: improve efficiency of DB query - client: add optional tags and to scheduler RPC reply; next scheduler RPC request will contain the indicated subset of the time stats log or job log. (no server-side support for this yet) client/ client_types.C,h cs_scheduler.C file_names.h scheduler_op.C,h time_stats.C db/ boinc_db.C Bruce 16 April 2007 - scheduler: remove compiler warnings - feeder: broken because of David's checkin to db/boinc_db.C above. David, please confirm if result.appid -> r1.appid is correct. - locality scheduler: add new boolean config option locality_scheduling_sorted_order. If this is enabled, then instead of looking for work starting with a random file on the host, the scheduler will search for work in sorted order of the filenames, starting with the lexagraphically smallest file and moving upwards until work is found. sched/ handle_request.C feeder.C sched_config.C sched_config.h sched_locality.C server_types.h doc/ sched_locality.php Charlie 16 Apr 2007 - Mac: fix Mac Stuffit file corrupted in switch from CVS to Subversion. - Mac: Update backtrace to use entirely new code from Apple Developer Technical Support. The format is now compatible with OS X's built-in Crash Reporter, and is ready for 64-bit Mac Intel applications (which will be available in OS 10.5). If the backtrace is from a stripped application, the output of this new code can be run through a new shell script (available on Apple's web site) to add symbols to it from a separate symbol file - this is a very useful feature. For details, see comments in mac_backtrace.h. Note: We build the PowerPC applications with GCC-3.3 to be backward compatible with OS 10.3.0 - 10.3.8, and GCC 3.3 does not support 64-bit applications, and Apple discontinued production of PowerPC Macs in 2006, so this backtrace code does not support 64-bit PowerPC G5 applications. clientgui/ mac/ BOINCSaver.nib.sit lib/ mac_backtrace.C,h (removed) mac/ dyld_gdb.h (added) mac_backtrace.C,h (added) QBacktrace.c,h (added) QCrashReport.c,h (added) QMachOImage.c,h (added) QMachOImageList.c,h (added) QSymbols.c,h (added) QTaskMemory.c,h (added) mac_build/ boinc.xcodeproj/ project.pbxproj Rom 17 Apr 2007 - Test SVN Commit Email Charlie 17 Apr 2007 - Mac: Fix Safari cookie logic for OS 10.3, move to Mac directory. - Mac: Remove remaining obsolete backtrace source files, fix compiler warnings, update makefile for changes. - Mac: fix Mac icon files corrupted in switch from CVS to Subversion and move to directory with other icon files. - Mac: Delete very old obsolete files. client/ mac/ (directory removed) BOINC.term (removed) BoincLaunch.app.zip (removed) BoincLaunch.zip (removed) GridRepublic.icns (extra copy removed) mac_about.cpp,h (removed) mac_join.cpp,h (removed) mac_main.cpp,h (removed) mac_prefs.cpp,h (removed) postinstall (removed) clientgui/ makefile.am mac/ browser_safari.mm (moved from clientgui/browser_safari.mm) res/ BOINCMgr.icns (moved from client/mac/BOINCMgr.icns) lib/ makefile.am MoreAddrToSym.c,h (removed) MoreBacktrace.c,h (removed) mac/ QMachOImage.c QMachOImageList.c mac_build/ boinc.xcodeproj/ project.pbxproj English.lproj/ AboutBox.nib (removed) boinc.nib (removed) JoinDialog.nib (removed) PrefsDialog.nib (removed) David 17 Apr 2007 - file deleter: - Antique deletion is now default; it gets done once/day (pass -dont_delete_antiques to turn it off) - retry of errors is now default; it gets done once/day (pass -dont_retry_errors to turn it off) - add -dont_delete_batches option, and remove option from config file - client: fix format string in job log write client/ client_types.C sched/ sched_config.C,h file_deleter.C David 17 Apr 2007 - compile fix for FCGI lib/ util.C David 17 Apr 2007 - client: define work_buf_total as max(1, work_buf_min + work_buf_additional). Allow both work_buf_min and work_buf_additional to be zero. - client: remove work_needed_secs() client/ client_state.h cpu_sched.C sim.h work_fetch.C David 17 Apr 2007 - user web: better text for work-buf preferences; defaults are 0 and 0.25. - remove test_sanity.py stuff from configure.ac. It's relevant only to the automated testing framework, which no one uses except us. configure.ac html/inc/ prefs.inc test/ testbase.py Charlie 17 Apr 2007 - Mac: Trim bogus extra frame and post-signal frames from backtrace reports, like the old Mac backtrace did. lib/ mac/ mac_backtrace.C QBacktrace.c QCrashReport.c David 17 Apr 2007 - "start" script: stop scheduler before daemons; otherwise can get "no shared memory" errors from scheduler sched/ start David 18 Apr 2007 - Server: added sample_assimilator.C (an assimilator that copies output files to a directory) - Server: added sample_work_generator.C Note: until now we haven't supplied an example of of a work generator. The above two components (and the uppercase app) let us create an example project that actually does something. My plan is to have make_project install all this stuff - Server: added count_unsent_results() to sched_util - backend code: remove the -asynch arg from all programs. This was used by old PHP test framework, not needed now. - backend code: got rid of some compile warnings - removed assimilator_placeholder and validator_placeholder. These serve no useful purpose (they're copies of other files, and they don't actually act as placeholders since they get overwritten on a SVN update) sched/ Makefile.am assimilator.C assimilator_placeholder.C (removed) db_dump.C db_purge.C feeder.C handle_request.C make_work.C message_handler.C sample_assimilator.C (new) sample_work_generator.C (new) sched_config.C,h sched_util.C,h server_types.C transitioner.C trickle_handler.C update_stats.C validator.C validator_placeholder.C (removed) Rom 18 Apr 2007 - fixes #7: Includes the last remaining files needed to build and package up 64-bit files for setup. We can now build and create 64-bit windows installer packages. win_build/installerv2/ BOINC.ism BOINCx64.ism win_build/installerv2/redist/Windows/src/ win_build/installerv2/redist/Windows/x64/ boinccas.dll (Added) boinccas95.dll (Added) dbghelp95.dll (Added) David 18 Apr 2007 - bug fixes for sample work generator sched/ sched_config.C,h sample_work_generator.C Rom 19 Apr 2007 - Fix a minor compile problem on 64-bit Windows platforms with the call to SetTimer. - fixes #80: Introduce the notion of an alternate platform for 64-bit Windows clients, which can also run 32-bit Windows apps. TODO: We'll need to refactor the whole platform section in the scheduler request creation section so that it can handle multiple alternate platforms and for Linux/Mac. api/ windows_opengl.C client/ client_state.C, .h cpp.h cs_scheduler.C David 19 Apr 2007 - Change things so that make_project installs a test application (uppercase) and the daemons to go along with it (sample_work_generator, sample_bitwise_validator, sample_assimilator). This is mostly working, not completely. apps upper_case.C html/ops/ mass_email_script.php py/Boinc/ setup_project.py sched/ sched_config.C,h sample_work_generator.C tools/ make_project project.xml Makefile.am David 19 Apr 2007 - scheduler: accept elements of the form windows_x86 in request messages. These are platforms that the client can handle, other than its main one, listed in order of decreasing preferences. fixes #81. sched/ handle_request.C server_types.C,h Rom 19 Apr 2007 - Match the client-side and server-side XML for alternate platforms. - Print both the max active memory usage and max idle memory usage after all the preference information has been parsed. client/ cs_prefs.C cs_scheduler.C Rom 19 Apr 2007 - Statistics view update. (From Mifistor) clientgui/ ViewStatistics.cpp, .h Rom 19 Apr 2007 (HEAD) - Tag for 5.9.4 release, all platforms boinc_core_release_5_9_4 David 20 Apr 2007 - make_project: add periodic tasks to default config.xml: dp_dump, update_uotd, update_forum_activities, update_stats, update_profile_pages - backend_lib.C: refuse to create a job for which some necessary parameter (rsc_fpops_est, rsc_fpops_bound, etc.) is missing - Unix build: don't include std_fixes.h in config.h. std_fixes.h is (I think) deprecated - sched_util: default sched log level is MSG_NORMAL - client: add ".txt" to job log filename - compile fixes configure.ac api/ reduce_main.C client/ file_names.C lib/ str_util.h sched/ sample_work_generator.C sched_msgs.h tools/ backend_lib.C make_project David 20 Apr 2007 - str_util: don't use std::transform, since it causes problems with VC++ express edition clientgui/ sg_SGUIListControl.h html/ops/ db_update.php lib/ str_util.C,h