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 html/user/ sample_index.php