David Jan 1 2008 - fixed bug in upgrade checkin_notes_2007 (new) tools/ upgrade David Jan 1 2008 - web: My Account page, other user account page, and profile pages now have community info in a 2nd column on the right. This accomplishes two things: 1) it puts community info in more places; 2) it provides a reasonable way to format long lists of friends; they just continue down the right column. html/ inc/ profile.inc user.inc util.inc ops/ profile_screen_form.php user/ home.php profile_rate.php show_user.php view_profile.php Charlie Jan 2 2008 - Mac Client: revert to using older API NXIdleTime() to get user idle time because the newer APIs CGSSecondsSinceLastInputEvent() and CGEventSourceSecondsSinceLastEventType() don't work properly when running as a daemon. - Mac: Update script which sets BOINC up to run as a daemon so it works properly under OS 10.5. client/ hostinfo_unix.C main.C lib/ hostinfo.h mac_build/ Make_BOINC_Service.sh David Jan 1 2008 - web: add "Find friends" link to private friends list - web: in user search form, give input focus to name field html/ inc/ user.inc user/ user_search.php David Jan 3 2008 - make_project: prepend "./" to config.xml script names in case "." is not in Apache's search path - web: show UOTD text correctly - web: memoize profile_screening() in attempt to fix out-of-memory error when building profile pages on S@h - web: move gallery.inc into update_profile_pages and remove it html/ inc/ gallery.inc (removed) profile.inc uotd.inc ops/ update_profile_pages.php tools/ make_project David Jan 3 2008 - web: fix broken link for profile like/don't like. TODO: currently these don't do anything useful. Fix this. html/inc/ profile.inc David Jan 3 2008 - API: on Mac, call getrusage() from timer thread (since calling it from worker thread causes crashes). On Linux, call getrusage() from the worker thread (since calling it from the timer thread returns zero on some systems). - stripcharts: make it work even if Perl is not in path (from Eric Myers) api/ boinc_api.C stripchart/ stripchart David Jan 4 2008 - web: add RSS feed for notifications - make_project: disable community-related periodic tasks for newly-created projects html/ inc/ forum.inc friend.inc notify.inc (new) pm.inc user.inc user/ img/ rss_icon.gif sample_index.php tools/ make_project Charlie Jan 6 2008 - Mac Client: more idle time tweaks to allow running as a daemon by using Mac OS X's launchd mechanism. - Mac Installer: if system is set up to run BOINC Client as a daemon using launchd, use launchctl to launch newly installed Client as a daemon. client/ hostinfo_unix.C main.C mac_installer/ PostInstall.cpp David Jan 6 2008 - web: bug fixes html/ inc/ util.inc ops/ update_profile_pages.php David Jan 6 2008 - scheduler: change to be per CPU, not per host sched/ sched.send.C sched_config.h David Jan 7 2008 - Added Isle of Man to country list html/inc/ countries.inc David Jan 7 2008 - XML fix in backend lib tools/ backend_lib.C Rom Jan 7 2008 - Empty strings cause CreateProcess to fail on parameter checks. clientgui/ BOINCGUIApp.cpp David Jan 7 2008 - API: fix to changeset 14462: I put the getrusage() in the wrong place api/ boinc_api.C David Jan 7 2008 - small web fixes; fixes #421 html/ ops/ show_log.php manage_user.php inc/ util_ops.inc David Jan 7 2008 - web: if user A is ignoring user B, don't accept a friend request from B to A - boinc_cmd: --help fix html/user friend.php lib/ boinc_cmd.C Charlie Jan 7 2008 - Mac MGR: if using Mac OS X's launchd mechanism to run Client as a daemon, allow time for daemon to launch. - Mac: Update script which sets BOINC up to run as a daemon so it uses Mac OS X's launchd mechanism. This requires BOINC version 5.10.34 or later and Mac OS 10.4 or later. clientgui/ BOINCGUIApp.cpp,h mac_build/ Make_BOINC_Service.sh David Jan 7 2008 - web: add "Mark all threads as read" button to Help Desk (fixes #531) - add "self" link to RSS notify feed - web: if fail to send email, don't show error message (might reveal recipient's email addr) html/ inc/ email.inc forum.inc user/ forum_help_desk.php forum_index.php notify_rss.php David Jan 8 2008 - API: call update_app_progress() only from the timer thread. Previously it was called from both timer and worker thread, with no synchronization. Bad. boinc_finish(): sleep for 2 seconds, enough to ensure that the timer thread sends the final messages. - API: a compile flag GETRUSAGE_IN_TIMER_THREAD selects how to get CPU time; by default set only for Mac OS X - scheduler: cap #CPUs scaling for at 8 api/ boinc_api.C sched/ sched_send.C David Jan 8 2008 - client, Win: check for two process exit codes (0x40010004 and 0xc000013a) that appear to happen when the process is killed externally; seems to happen mostly or entirely on Vista client/ app_control.C Charlie Jan 8 2008 - Mac: additional error checking in build script; fix url in error message. mac_build/ BuildMacBOINC.sh David Jan 9 2008 - API, Unix: fix bug where boinc_sleep() hangs forever. This was because SIGALRM always interrupts sleep() and keeps boinc_sleep() stuck in its while loop. Solution: change boinc_sleep() so that it works even if rapid signals (e.g. interval timer) are happening - API: remove deprecated graphics files from Makefile. Old-style graphics are no longer supported. - web: add empty show_user_donations_private() to donations.inc api/ Makefile.am boinc_api.C,h html/ project.sample/ donations.inc user/ home.php David Jan 9 2008 - Fix the credit_study.php script to 1) be correct and 2) explain its output html/ops/ credit_study.php David Jan 9 2008 - client: patches to make it work on FreeBSD - client: fix bug where attaching to a project with existing app_info.xml would fail to parse the app_info.xml (both from Pav Lucistnik) client/ cs_account.C hostinfo_unix.C Charlie Jan 10 2008 - MGR: display MSG_USER_ERROR messages in red, all others in black in both SimpleGUI and Advanced GUI message dialogs; eliminate unused FormatPriority method. - MGR: Auto-scroll messages only if already at bottom of list (don't jump to bottom while examining earlier messages.) NOTE: these changes may need to be applied in CViewMessagesGrid class if we implement that in the future. clientgui/ sg_DlgMessages.cpp,h ViewMessages.cpp David Jan 10 2008 - client: don't count header in bytes_xferred for file uploads (this causes confusing output in the Manager, bytes xferred greater than file size) - API and client: make boinc_sleep() work regardless of signals - some code cleanup in http_curl.C client/ http_curl.C,h html/inc/ stats_sites.inc lib/ util.C Charlie Jan 10 2008 - Mac API: Delete old target gfxlibboinc and obsolete source files from XCode project. - Mac: Update build script to build libboinc_graphics2.a instead of libboinc_graphics_api.a. Fixes #536. mac_build/ boinc.xcodeproj/ project.pbxproj BuildMacBOINC.sh David Jan 10 2008 - Fix long-standing bug in CPU throttling client/ cs_prefs.C Rom Jan 11 2008 - MGR: Inform the user that they'll need to be added to the boinc_users group if access to gui_rpc_auth.cfg is denied. - Fix a crash condition when BOINC is started as a standard user account without the 'create global named objects' user right on Vista. - WINSETUP: Make sure that BOINC Tray is started for all users on the system. - WINSETUP: If the 'All users can control BOINC' checkbox is checked then put the BOINC Manager startup short cut in the 'all users' startup directory otherwise put it in the 'users' startup directory. clientgui/ BOINCBaseFrame.cpp, .h MainDocument.cpp, .h clientlib/win/ IdleTracker.cpp win_build/installerv2/ BOINC.ism win_build/installerv2/redist/Windows/src/boinccas/ boinccas.rc win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll Rom Jan 11 2008 (HEAD) - Tag for 6.1.6 release, all platforms boinc_core_release_6_1_6 David Jan 11 2008 - web: fix bug there message link not correct in search results fixes #539 html/user/ forum_search_action.php David Jan 11 2008 - client, Win: check for network connectivity (for time stats log file) - client: add platform/version lines to time stats log file client/ http_curl.C sim_util.C time_stats.C lib/ network.C,h win_build/ boinc_cli_curl.vcproj David Jan 11 2008 - web: in host merge pages, provide "Show details" button, which shows the reasons why pairs of hosts were not eligible for merging html/ inc/ host.inc user/ host_edit_form.php Charlie Jan 11 2008 - Mac: Fix compile error on some Macs by changing XCode Project reference "texfont.c" to "texfont.C". - MGR: New message about needing to be added to the boinc_users group applies only to Windows. mac_build/ boinc.xcodeproj/ project.pbxproj clientgui/ BOINCBaseFrame.cpp David Jan 12 2008 - Client: add config flag. This is for debugging apps (currently works only in Unix). What it does: when running an app, the client does everything except actually fork/exec the app, i.e. it sets up the slot dir, creates shared mem segment etc. It then continues as if the app were actually running, and you can then manually run your app under a debugger in the slot directory. Note: the client won't notice the termination of your app. - API, Unix: in situations where the timer thread wants to exit (e.g. it notices a missing heartbeat). don't directly call boinc_exit(), since this touches data structures that the worker thread may be using concurrently. Instead, set a flag telling the worker thread to call boinc_exit() (which it will do from its signal handler) This is an attempt to fix problems reported by Bernd; I haven't tested it. - scheduler: add config flag for uploading usage data - web: show account key and weak account key on user page - added some code for multithread support (not finished) api/ boinc_api.C,h client/ app.h app_control.C app_start.C cpu_sched.C log_flags.C,h html/ inc/ user.inc user/ white.css lib/ app_ipc.C,h sched/ Makefile.am handle_request.C sched_config.C,h server_types.C,h David Jan 12 2008 - client: implement for Windows too - client: check /dev/input/mice/ for idle detection; apparently that's replaced /dev/mouse in Linux (from Toby Murray) - API: make old-style graphics compile again api/ boinc_api.C,h graphics_api.C graphics_impl.C graphics_lib.C client/ app_start.C hostinfo_unix.C David Jan 14 2008 - server/web: the weak auth scheme had a major flaw: It didn't work on a host's first scheduler RPC (when it passes an auth but no host ID). How do we look up user in this case? The weak auth is not stored explicitly in the DB. Solution: include the user ID in the weak auth. (this invalidates existing weak auths) html/ inc/ user.inc user/ weak_auth.php sched/ handle_request.C David Jan 14 2008 - scheduler: forgot to add a couple of files sched/ time_stats_log.C,h David Jan 14 2008 - renamed clean_out_dir() to client_clean_out_dir(), and put the original clean_out_dir() back in lib/filesys.C client/ app.C app_control.C file_names.C sandbox.C,h lib/ filesys.C,h David Jan 14 2008 - updated INSTALL INSTALL Rom Jan 14 2008 - Add a "Forgot your password" hyperlink to the wizards account info page. clientgui/ AccountInfoPage.cpp, .h BOINCWizards.h David Jan 14 2008 - scheduler: fix weak auth bug sched/ handle_request.C Charlie Jan 14 2008 Fix Compiler warning. api/ boinc_api.C David Jan 15 2008 - client: a project (Ralph) had accidentally included a .svn directory in a zip archive, resulting in a lot of read-only files in its slot directories. When the client attempts to delete these files, each delete fails and the client retries for about 5 seconds. This adds up to a delay of about 20 minutes, during which the client (and Manager) appear to be hung. Solution: 1) if a file delete fails with error ERROR_ACCESS_DENIED, use SetFileAttributes() to clear the read-only flag, then try again. 2) Don't use the 5-second retry mechanism when clearing out slot directories. These can contain unbounded numbers of files, and this can lead to long periods where the client appears hung. client/ app.C client_types.C cs_trickle.C file_names.C sandbox.C,h Rom Jan 15 2008 - WINSETUP: Add some additional comments to the setup log when we know we cannot do a migration and why. win_build/installerv2/redist/Windows/src/boinccas/ boinccas.rc CAMigrateBOINCData.cpp win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll David Jan 15 2008 - Manager: "Forgot your password" needs a question mark - Win diagnostics: diagnostics_dump_thread_information() had a printf with bad format string, caused a crash, not what diagnostics should do clientgui/ AccountInfoPage.cpp lib/ diagnostics_win.cpp David Jan 15 2008 - web: fixed screwed-up UOTD logic. The meaning of the config flag is: If set: profiles must be screened by admins before their photo is shown. When this is done, profile.verification is set to 1 (and they become eligible to be UOTD) If not set: profile photos are always shown. Profiles must be screened by admins before they are eligible for UOTD. When this is done, profile.verification is set to 1 So default_uotd_candidates_query() is the same in either case. - web: fix profile_screen_form.php (admin page for screening profiles) - web: make a copy of login_action.php in ops/ html/ inc/ uotd.inc ops/ login_action.php (new) profile_screen_form.php David Jan 15 2008 - client: restore proper sense of --check_all_logins (should this be set by default?) - web: removed addslashes() when building language translation arrays. These caused 's to be displayed as \' everywhere. They may serve some purpose, but I can't think of what it is. - web: changed max profile image dimensions from 800x600 to 640x480. The new profile page puts a column to the right of the image, so it shouldn't be quite that wide. client/ hostinfo_unix.C html/ inc/ profile.inc translation.inc stats_sites.inc user/ create_profile.php lib/ filesys.C David Jan 15 2008 - API: fix to zip code (from Carl C) zip/zip/ z_fileio.c Charlie Jan 15 2008 MGR: When connection to Client is lost, don't clear message window; show messages grayed out instead. NOTE: these changes may need to be applied in CViewMessagesGrid class if we implement that in the future. clientgui/ MainDocument.cpp clientgui/ sg_DlgMessages.cpp ViewMessages.cpp Charlie Jan 16 2008 Mac Sandbox: make BOINC Data directory and files not world-readable to hide account keys from unauthorized users. client/ check_security.C client_types.C file_names.C main.C clientgui/ mac/ SetupSecurity.cpp doc/ sandbox.php Rom Jan 16 2008 - MGR: If the project_init.xml file suggests a project to attach too attempt to attach to it. - CLIENT: Move the code that deletes the project_init.xml from detach project to attach project. It is only needed for as long as it takes to attach to a project. client/ gui_rpc_server_ops.C clientgui/ AdvancedFrame.cpp sg_BoincSimpleGUI.cpp Charlie Jan 17 2008 Mac Sandbox: make user boinc_master part of group boinc_project. client/ check_security.C clientgui/ mac/ SetupSecurity.cpp doc/ sandbox.php Rom Jan 17 2008 (HEAD) - Tag for 6.1.7 release, all platforms boinc_core_release_6_1_7 David Jan 17 2008 - API: make the libraries for old-style graphics compile again (these are no longer supported, but they probably still work) api/ boinc_api.C,h graphics_impl.h client/ acct_mgr.C Charlie Jan 17 2008 API: fix compiler warning. Mac Sandbox: group membership apparently only affects real UID not effective UID, so it made no difference; remove code which makes user boinc_master part of group boinc_project. Mac Sandbox: make BOINC Data directory and files not world-readable to hide account keys from unauthorized users; but make files in slots and project directories world-readable so Client can read files written by project applications with user and group boinc_project. api/ texfont.C client/ app_start.C check_security.C clientgui/ mac/ Mac_SA_Secure.sh SetupSecurity.cpp doc/ sandbox.php David Jan 18 2008 - scheduler: if get request w/o host ID, use most recently created host with same domain name, IP addr, OS name, and CPU model, if one exists. (from Kevin Reed) sched/ handle_request.C Rom Jan 18 2008 - WINSETUP: Fix failed termination attempts on Win64 win_build/installerv2/ BOINC.ism win_build/installerv2/redist/Windows/src/boinccas/ boinccas.rc terminate.h win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll