Rom    4 Jan 2006
    - Branding update for GridRepublic
    
    client/win/
        boinc_cli.rc
        boinc_cmd.rc
        boinc_ss.rc
    clientgui/
        AccountInfoPage.cpp, .h
        BOINCGUIApp.cpp, .h
        WizardAccountManager.cpp
        WizardAttachProject.cpp
        resource.h
    clientgui/res/
        gridrepublic.ico
        gridrepublic.xpm
        gridrepublicamwizard.xpm (Added)
    clientgui/res/
        gridrepublic.ico
        gridrepublicamwizard.bmp (Added)
    win_build/installerv2/
        GridRepublic.ism
    win_build/installerv2/redist/GridRepublic/
        GridRepublic.ico
        GridRepublic.url

Rom    4 Jan 2006 (HEAD)
    - Tag for 5.3.7 release, all platforms
      boinc_core_release_5_3_7

David  4 Jan 2006
    - replace safe_strncpy() with strlcpy() everywhere.
        Same semantics, but the former is less efficient.
    - simplified Bruce's recent fix to escape_string()
    
    checkin_notes_2005 (new - Woo Hoo!)
    api/
        boinc_api.C
    client/win/
        hostinfo_win.cpp
    db/
        db_base.C
    lib/
        app_ipc.C
        diagnostics.C
        filesys.C
        language.C
        parse.C
        util.C,h
    sched/
        handle_request.C
    tools/
        backend_lib.C

David  4 Jan 2006
    - scheduler: scan_work_array(): if add_result_to_reply() fails, do NOT
        reinsert the entry in the array by resetting the "present" flag.
        We previously cleared this flag,
        so the array entry may have been refilled by the feeder,
        and it might be in the CHECKED_OUT state.
        (from Paul Buck)

    sched/
        sched_array.C

Bruce 5 Jan 2006
    - Fixed David's mistake in simplifying my fix to escape_string()!
    db/
        db_base.C

David  4 Jan 2006
    - fixed inefficient unescape_string()

    db/
        db_base.C

Bruce 5 Jan 2006
    - Fixed new unescape_string(): didn't null terminate string.

    db/
        db_base.C

Bruce 6 Jan 2006
    - Nasty bug in API lib.  See checkin_nodes_2004 December 22. 
      Functions meant to be used from within C should never be
      declared bool!

      Fix: change boinc_is_standalone() to return int not bool.

      Note: some API functions still return bools, but since E@H
      doesn't use them and I am afraid of doing damage, I have
      left them alone.

    api/
        boinc_api.C
        boinc_api.h
        graphics_impl.h
        graphics_impl_lib.C

Rom    6 Jan 2006
    - Branding update for GridRepublic
    
    clientgui/
        AccountInfoPage.cpp
        AccountManagerProcessingPage.cpp
        AccountManagerPropertiesPage.cpp
        BOINCGUIApp.cpp, .h
        BOINCGUIApp.rc
        CompletionPage.cpp, .h
        MainFrame.cpp
        resource.h
    clientgui/res/
        gridrepublic2.ico (Added)
    win_build/installerv2/
        GridRepublic.ism
    win_build/installerv2/redist/GridRepublic/
        acct_mgr_url.xml
        GR_splash.bmp

Rom    6 Jan 2006 (HEAD)
    - Tag for 5.3.8 release, all platforms
      boinc_core_release_5_3_8

David  6 Jan 2006
    - fix unitialized var

    client/
        net_stats.C

David  6 Jan 2006
    - feeder: exit on database errors.
        This is a workaround for a problem where the
        feeder loses its DB connection after 10-20 hours of idleness.
        With this change, the feeder will exit, and will be restarted by cron.

    sched/
        feeder.C

David  6 Jan 2006
    - Tweak the account manager system to support "farm managers"
        that use GUI RPC to control clients.
        The farm manager needs the GUI RPC port and password of each client.
        Add an optional <send_gui_rpc_info/> element to the
        acct_mgr_url.xml file,
        which causes the GUI RPC port and password to be included
        in account manager RPC requests.
        (From James Drews)

    client/
        acct_mgr.C,h

David  6 Jan 2006
    - Change "bool" to "int" in the BOINC API.
        C and C++ compilers differ in their allocation for bool,
        making it difficult for C applications
        (which must be compiled with particular compilers)
        to use the BOINC API.
        No such problem for int.
        (from Bruce Allen)

    api/
        boinc_api.C,h

David  8 Jan 2006
    - Account manager additions (from Willy de Zutter)
        - Include <previous_host_cpid> in AM request.
            This is the host CPID sent in the previous AM request.
            It lets the AM track hosts even when their CPIDs change.
        - Include <domain_name> in AM request
        - AM replies can include <message> elements.
            The contents are printed in the Messages tab.
        - Print message that AM request has succeeded (or failed)

    client/
        acct_mgr.C,h
    lib/
        hostinfo.C

David  9 Jan 2006
    - user web: show bbcode correctly for UOTD

    html/user/
        sample_index.php

Bruce 9 Jan 2006
    - fix bug on page that shows profile for a given user.  The total
      number of posts made by a given user is not shown correctly.

      The PHP code assumes that this number is given by user.posts.  However
      in html/inc/db_forum.inc, the value of user.posts is NOT
      incremented each time a user makes a new post (either starting
      a new thread or replying to an existing one).  For the moment, my
      the fix is to simply scan the database and count the number of posts by the
      user, to give the right value on the profile page.

      An alternative fix (which would be less DB intensive, overall)
      is to (1) fix db_forum.inc so that it properly increments user.posts and
      then (2) add an update_db.php script entry that correctly sets user.posts
      by counting the number of posts for each user.

    html/
        inc/
            user.inc

Rom    9 Jan 2006 (HEAD)
    - Initial CPDN/BBC branded client
    
    client/win/
        boinc_cli.rc
        boinc_cmd.rc
        boinc_dll.rc
        boinc_ss.rc
    clientgui/
        AccountInfoPage.cpp
        BOINCBaseView.cpp, .h
        BOINCGUIApp.cpp
        BOINCGUIApp.rc
        DlgAbout.cpp, .h
        MainFrame.cpp
        ViewMessages.cpp
        ViewProjects.cpp
        ViewResources.cpp
        ViewStatistics.cpp
        ViewTransfers.cpp
        ViewWork.cpp, .h
    win_build/
        cpdnbbc.sln (added)
        cpdnbbc_boinc_cli_curl.vcproj (added)
        cpdnbbc_boinc_dll.vcproj (added)
        cpdnbbc_boinc_ss.vcproj (added)
        cpdnbbc_boinccmd.vcproj (added)
        cpdnbbc_boincmgr_curl.vcproj (added)
    win_build/installerv2/
        CPDNBBC.ism (added)
    win_build/installerv2/redist/CPDNBBC/
        Climate Change Experiment.url (added)
        project_init.xml

Rom    9 Jan 2006 (HEAD)
    - Tag for 5.3.9 release, all platforms
      boinc_core_release_5_3_9

Bruce  9 Jan 2006
    - Fixes to BOINC zip library from Carl Christensen. Carl says:
      "I found a problem with boinc_zip; it seems some Linux STL's
      aren't very nice about classes that are inherited from their
      objects on multiple use; or huge file lists that we use on CPDN.
      So I rewrite it to just use "straight" std::string's in a vector.
      It's fully backwardly compatible and seems to work fine."

    zip/
        boinc_zip.h
        boinc_zip.cpp

David  9 Jan 2006
    - changed upper_case so that the -cpu_time option
        takes an arg: the # of CPU seconds to use.

    apps/
        upper_case.C

Charlie 10 Jan 2006
    -Mac: Fix minor bugs in internal scripts in XCode 2.2 project.  Changes to 
    BOINC Manager to accomodate Rom's changes for branding.
      
    clientgui/
        BOINCGUIApp.cpp
        mac/
            MacSysMenu.cpp, .h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  10 Jan 2006
    - core client: fix vector erase code in GUI RPC.
        Thanks to Darrel Holz for finding this.

    client/
        gui_rpc_server.C

David  10 Jan 2006
    - Add XML option for team lookup web interface

    html/
        inc/
            xml.inc
        user/
            team_lookup.php

Bruce 11 Jan 2006

    - Skip test for excessive CPU time, IF hostid has changed
      because host has been cloned.  If result is resent to
      the 'new' host then this can make it appear that the
      result was completed shortly after it was sent.

    sched/
        handle_request.C
 
Charlie 10 Jan 2006
    -Mac: Get BrandID from file put inside application bundle by installer.
      
    clientgui/
        BOINCGUIApp.cpp

Bruce 11 Jan 2006
    - Documentation: describe boinc_is_standalone() in documentation.
    doc/
        api.php

David  11 Jan 2006
    - file upload handler: allow upload if offset if < size
        (this can now happen, since the client skips size check
        for files < 1 MB)

    sched/
        file_upload_handler.C

David  11 Jan 2006
    - Core client: add a flow control mechanism for the case where
        output files are generated faster than they can be uploaded
        (otherwise we'll fill up the disk).
        The mechanism: don't start new results for a project
        that has > 2 uploads in progress.
        Note: this actually happens with Cunning Plan
        (5 MB output files, 60 sec CPU) over a DSL line

    client/
        client_types.h
        cs_apps.C

David  11 Jan 2006
    - core client: on file upload, always get file size (even if small file).
        Before the file upload handler checkin earlier today,
        this was actually a bug:
        if a client had uploaded part of a small file and then failed,
        it would never be able to upload the rest.
        But it was probably a bad idea in the first place,
        since 1 MB is a large file from the viewpoint of a modem user.

    client/
        file_xfer.C

Charlie 10 Jan 2006
    -Mac: Mac System Menu uses menubar icon selected by 
     CBrandingScheme::OnInit() .
      
    clientgui/
        BOINCGUIApp.cpp
        mac/
            MacSysMenu.cpp
        res/
            gridrepublic_mac.xpm (new)

David  11 Jan 2006
    - Core client: remove "unknown project" from message
        where general prefs don't come from a known project.
        They might come from an account manager.
        (from Willy de Zutter)

    client/
        cs_prefs.C

Bruce 12 Jan 2006
    - file_upload_handler: log a message when the client is starting an upload
      from the wrong offset.  This problem should gradually go away as users
      update to more current clients.

    sched/
        file_upload_handler.C

David  12 Jan 2006
    - Web RPC: fixed bug in am_set_info.php that caused password_hash
        to not update.
        (from Willy de Zutter)

    html/user/
        am_set_info.php

David  12 Jan 2006
    - Initialize user/team/host.expavg_time with current time.
        This avoids inaccurate initial values for RAC.
        From Bruce Allen.

    html/user
        create_account.php
        create_account_action.php
        team_create_action.php
    sched/
        handle_request.C

Rom    13 Jan 2006 (HEAD)
    - Tag for 5.3.10 release, all platforms
      boinc_core_release_5_3_10

David  13 Jan 2006
    - core client: handle HTTP "continue" status.
        I don't understand what this is, but hopefully this fixes
        some network problems.
        (from Ian Hay).

    client/
        http_curl.h
        net_xfer_curl.C

David  14 Jan 2006
    - user web: forum fix (from Rob Ogilvie)

    html/inc/
        forum.inc

Janus 15 Jan 2006
    - web: Fixed a special situation where the caching mechanism used on
      (amongst others) the frontpage would always refresh from the serverside
      cache regardless of whether the client had a fresh copy. (from Rob)

    html/inc/
        cache.inc

David  14 Jan 2006
    - core client: If there's only one potentially runnable project,
        ask it for work no matter how negative its debt
        (from Glenn Dill)

    client/
        cs_scheduler.C

Rom    15 Jan 2006
    - CPDB BBC update
    
    clientgui/
        AccountInfoPage.cpp, .h
        BOINCBaseWizard.h
        BOINCGUIApp.cpp, .h
        CompletionPage.cpp
        ProjectProcessingPage.cpp
        ProjectPropertiesPage.cpp
        WizardAttachProject.cpp, .h

Rom    15 Jan 2006 (HEAD)
    - Tag for 5.3.11 release, all platforms
      boinc_core_release_5_3_11

David  15 Jan 2006
    - core client: add "-daemon" option (uses daemon() system call
        to detach from controlling terminal)
        From Jan Gall

    client/
        cs_cmdline.C
        main.C

David  15 Jan 2006
    - GUI RPC: added optional <scheduler_rpc_in_progress/> element
        to <project> elements in GUI RPC replies

    client/
        client_state.h
        client_types.C
        scheduler_op.h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  15 Jan 2006
    - user web: moved eah_server_status.php and sample_server_status.php
        from user/ to ops/.
        These pages have queries that are too slow for
        big projects like SETI@home.

    html/
        ops/
            eah_server_status.php (new)
            sample_server_status.php (new)
        user/
            eah_server_status.php (removed)
            sample_server_status.php (removed)
            server_status.php (removed)

David  15 Jan 2006
    - user web: add optional team_id argument to team_lookup.php
        (returns XML description of a particular team)

    html/
        user/
            team_lookup.php

David  15 Jan 2006
    - compile fixes for gcc4.0

    client/
        gui_rpc_server.C
    lib/
        network.C

Bruce 16 Jan 2006
    - ops page: add external IP to data shown for host
    - user host info page: when giving IP data, show both private
      AND external IP (only for owner of host machine).
    - user web pages: if can't delete host because there are still
      results, give clearer error message and link to list of results.
    - user web pages: in list of hosts, add link to show results
      if project is configured to show results.
    html/
        inc/
            db_ops.inc
            host.inc
        user/
            host_delete.php

David  16 Jan 2006
    - compile fix for Win

    client/
        gui_rpc_server.C

David  16 Jan 2006
    - Call get_host_info() (not just get_filesystem_info())
        before each scheduler RPC (from Bruce Allen)
    client/
        cs_scheduler.C

David  16 Jan 2006
    - add <hostid> element to account manager RPC request.

    client/
        acct_mgr.C

David  16 Jan 2006
    - core client: enhancements to duration correction factor (DCF):
        - on project reset, set DCF to one.
        - when do CPU benchmarks, scale all DCFs by new/old benchmark

        (from Josef Segur)

    client/
        client_state.C,h
        cs_benchmark.C
        cs_scheduler.C

Rom    17 Jan 2006 (HEAD)
    - Tag for 5.3.12 release, all platforms
      boinc_core_release_5_3_12

David  17 Jan 2006
    - user web: add Mauritius to country list

    html/inc/
        countries.inc

David  17 Jan 2006
    - Core client error messages:
        - "task" instead of "result"
        - Don't include function names in messages
        - Don't end with \n
    - Removed files superceded by curl
        
    client/
        *.C
        http.C,h (removed)
        net_xfer.C,h (removed)
        ssl_http.C,h (removed)
        ssl_net_xfer.C,h (removed)

David  18 Jan 2006
    - GUI RPC client lib: add PROJECT::copy() function
        (copies data, doesn't change vectors)

    client/
        file_xfer.C,h
        pers_file_xfer.h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C
    sched/
        handle_request.C

David  18 Jan 2006
    - If a download isn't complete and gained less than 5 KB,
        truncate back to the original starting size.
        This addresses a bug where some proxies append
        error messages on download failures
        (reported by Rattledagger)

    client/
        file_xfer.C
    lib/
        error_numbers.h
        filesys.C,h
        util.C

David  18 Jan 2006
    - implement boinc_truncate() for Windows

    lib/
        filesys.C

David  18 Jan 2006
    - remove #define bool char stuff,
        and change a couple of functions to return int instead of bool.
        Rule: if any function is potentially callable
        from an ANSI C application, don't use bool in its interface,
        since there's inconsistency in the size of bool
        between C and C++ compilers

    api/
        graphics_api.h
    lib/
        filesys.C,h

David  18 Jan 2006
    - added HTTP error codes to boincerror(),
        since these are sometimes used as return values.

    client/
        http_curl.h
        pers_file_xfer.C
    lib/
        util.C

Rom    19 Jan 2006
    - CPDNBBC Update
    
    clientgui/
        BOINCGUIApp.cpp, .h
        CompletionPage.cpp
        MainFrame.cpp
    win_build/installerv2/redist/CPDNBBC
        CPDNBBC_splash.bmp

David  19 Jan 2006
    - feeder/scheduler: try to fix bug where shmem array slots
        get stuck in "CHECKED_OUT" state.
        Get rid of this state.
        Instead, use the PID of the scheduler process that
        has it checked out (as we're already doing for "reserved" slots)
        and let the feeder clean up slots checked out by dead processes.
    - several of the DB enumerate() function were returning
        1 or -1 (rather than ERR_DB_NOT_FOUND) when no results.
        Bad!!!  Some programs, including the feeder,
        treat values other than 0 and ERR_DB_NOT FOUND as fatal DB errors.

    db/
        boinc_db.C
    sched/
        feeder.C
        sched_array.C
        sched_shmem.C,h
        show_shmem.C

David  19 Jan 2006
    - RSS items should refer to a page that has all news items,
        not just old ones
    - Make news item indices permanent

    html/
        inc/
            news.inc
        user/
            all_news.php (new)
            sample_rss_main.php

David  20 Jan 2006
    - tweak to partial download fix:
        only truncate file if got >0 new bytes

    client/
        file_xfer.C

David  20 Jan 2006
    - suppress "Expect: 100 continue" in HTTP header.
        Apparently this causes problems with some proxies
        (from Ian Hay)

    client/
        http_curl.C

Charlie 20 Jan 2006
    -Mac: Changes for Grid Republic: remove BOINCManager from Dock; 
    different plist file for GR; new application icon for GR; 
    screensaver changes for GR. 
    Remove obsolete files from XCode project (net_xfer.C,h, http.C,h, 
    proxy.C,h)
    Update release script to allow development test builds.
    Update installer for Grid Republic.

    client/
        mac/
            GridRepublic.icns (new)
            SetVersion.C
    clientgui/
        mac/
            mac_saver_module.cpp
    mac_build/
        Info.plist
        GR_Info.plist (new)
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        release_boinc.sh
        Postinstall.cpp

David  20 Jan 2006
    - core client: if we change host CPID and we're using an account manager,
        do scheduler RPCs to all projects,
        so that the account manager gets a consistent view when
        it gets host data from the project servers

    client/
        client_state.h
        cs_scheduler.C

David  20 Jan 2006
    - Manager: improvements to Statistics tab
       (from mifistor_x)

    clientgui/
        Events.h
        ViewStatistics.C,h

Charlie 21 Jan 2006
    -Mac: Changes for Grid Republic: manager determines branding before 
      launching client; create new release script for GR; GR screen saver 
      displays GR icon in system preferences dialog; data directory is 
      "GridRepublic Data" if a GR install; installing BOINC over an 
      existing GR installation or GR over existing BOINC installation 
      renames data directory and performs other necessary tasks to ensure 
      continued processing of existing work.  (But user's screensaver 
      selection is not changed automatically.)
      
   clientgui/
        BOINCGUIApp.cpp - Set up branding before launching boinc client.
        mac/
            mac_saver_module.cpp
            gridrepublic.tiff
            SetVersion.C

    mac_installer/
        release_boinc.sh
        PostInstall.cpp
        postinstall
        postupgrade
        preinstall (new)
        preupgrade (new)
        release_GridRepublic.sh (new)
        GR-preinstall (new)
        GR-preupgrade (new)
        GR-Description.plist (new)
        GR-Branding (new)
        GR-ReadMe.rtf (new)

    mac_build/
        GR-InfoPlist.strings (new)
        GR-ScreenSaver-Info.plist (new)
        boinc.xcodeproj/
            project.pbxproj
      
Bruce  22 Jan 2006
    - update_stats program.  Fix 'bug of omission' where member counts
      of teams are calculated but were not written back into the database.
      Also, change algorithm so that for hosts/teams/users, when the RAC
      (Recent Average Credit) values have decayed to exactly 0.0 (double
      precision) then neither expavg_credit nor expavg_time are updated.
      In this way, by looking at the value of expavg_time, you can see
      exactly WHEN the RAC decayed to zero.  This effectively indicates
      the 'drop-out-date' for the host/team/user.

    sched/
        update_stats.C

Rom    23 Jan 2006
    - On Windows use the System Event Notification Service to determine
        network connectivity instead of using InternetGetConnectedState
        since it was proving to be unreliable.
        
      NOTE: This is a big change on Windows.  SENS uses COM as it's
        communication infrastructure and so therefore boinc.dll now has
        to be regsvr32'ed before network notification messages will be
        sent to the client.  If, for whatever reason SENS isn't working
        we'll fall back to InternetGetConnectedState.
        
    client/
        main.C
    client/win/
        hostinfo_win.cpp
    clientgui/
        AccountManagerPropertiesPage.cpp
        BOINCGUIApp.cpp, .h
        MainFrame.cpp
        ProjectPropertiesPage.cpp
    clientlib/win/
        boinc_dll.cpp, .h (Added)
        BOINCSENSSink.cpp, .h (Added)
        Identification.cpp, .h (Added)
        IdleTracker.cpp, .h (Added)
        NetworkTracker.cpp, .h (Added)
        resource.h (Added)
        SENSLogonSubscriptions.h (Added)
        SENSNetworkSubscriptions.h (Added)
        SENSOnNowSubscriptions.h (Added)
        SENSSubscriptions.h (Added)
        stdafx.cpp, .h (Added)
    lib/
        network.C, .h
    win_build/
        boinc_dll.vcproj

Rom    23 Jan 2006
    - Add an File/Exit warning for CPDNBBC so that the users know they will
        be stopping any executing tasks.
    - Update the Project and Work views changing 'work' to 'tasks'
    
    clientgui/
        BOINCGUI.pjd
        BOINCGUIApp.cpp, .h
        DlgGenericMessage.cpp, .h (Added)
        MainFrame.cpp, .h
        Makefile.am
        ViewProjects.cpp
        ViewWork.cpp

Charlie 23 Jan 2006
    -Mac: Improve GridRepublic release script so it uses sed commands 
      to convert standard BOINC plist, preinstall and preupgrade files 
      for Grid Republic; standard BOINC release script creates preupgrade 
      script by copying preinstall script;  these changes eliminate the 
      need for seven files I checked in earlier.
      Also generalize Grid Republic release script so it can easily be 
      modified for other brands by changing a few variable definitions.
      Changed name of GR Manager to "GridRepublic Manager" from just 
      "GridRepublic."
      Restore my change of 1/21/06 which was lost: manager determines 
      branding before launching client.  
      Remove mac_build/Installer-info.plist and replace with 
      mac_build/Installer-info.plist (CVS is case-sensitive).

   clientgui/
        BOINCGUIApp.cpp
    mac/
        SetVersion.C
    mac_build/
        GR_Info.plist (Remove)
        GR-InfoPlist.strings (Remove)
        GR-ScreenSaver-Info.plist (Remove)
        Installer-info.plist (Remove)
        Installer-info.plist (Add)
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        GR-ReadMe.rtf
        PostInstall.cpp
        preinstall
        release_boinc.sh
        release_GridRepublic.sh
        preupgrade (Remove)
        GR-Description.plist (Remove)
        GR-preinstall (Remove)
        GR-preupgrade (Remove)

David  23 Jan 2006
    - Core client: D'oh!  When change host CPID,
        need to notify ALL projects, even the one we just contacted.

    client/
        client_state.h
        cs_scheduler.C
        
Charlie 23 Jan 2006
    -Mac: Add new files DlgGenericMessage.cpp, .h to XCode project .

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    24 Jan 2006
    - String and graphics changes for CPDNBBC.
    - Add email address validation to the wizards.
    
    clientgui/
        AccountInfoPage.cpp
        BOINCGUIApp.cpp
        BOINCGUIApp.rc
        ValidateEmailAddress.cpp, .h (Added)

Rom    24 Jan 2006 (HEAD)
    - Tag for 5.3.14 release, all platforms
      boinc_core_release_5_3_14

Rom    24 Jan 2006
    - Bug Fix: Remove the last line of the function that handles the 
        launching of the wizards on first execution which was causing
        the manager to switch over to the messages tab no matter if the
        wizard completed successfully or not.
        
    clientgui/
        MainFrame.cpp

David  24 Jan 2006
    - core client: move code that deals with generating new host CPID
        to the end of handle_scheduler_reply(),
        after the part that clears sched_rpc_pending and sets min_rpc_time,
        since if we generate a new host CPID
        we're going to modify these (to request another RPC).
        Also: in this case request an immediate scheduler RPC to all projects
        whether or not we're using an account manager.
    - core client: if detach from account manager,
        clear "attached_via_acct_mgr" flag on all projects
    - database: change type of xml field in msg_to_host and msg_from_host
        from text (64KB limit)
        to medium_text (16MB limit, but use at most 256KB)
    - scheduler: don't print trickle message contents (swamps logfile)
        (the latter two from Carl Christensen)

    client/
        acct_mgr.C
        cs_scheduler.C
    clientgui/
        Events.h
    db/
        boinc_db.h
        schema.sql
    sched/
        handle_request.C

David  24 Jan 2006
    - core client: statefile read fails if don't find </client_state>

    client/
        cs_statefile.C

Charlie 24 Jan 2006
    -Mac: Add new files ValidateEmailAddress.cpp, .h to XCode project.
      Change conditional compile #ifdef __ppc__ in mac_backtrace.C 
      so library links properly for Intel Macs (but backtrace is disabled).
      Fix compile error by excluding CPDNBBC client code from Mac builds.
      Remove obsolete XCode project; update build script to use new project.
      Set plaform correctly for powerpc-apple-darwin and i686-apple-darwin.

    clientgui/
        BOINCGUIApp.cpp
        mac/
            config.h
    lib/
        mac_backtrace.C
    mac_build/
        BuildMacBOINC.sh
        boinc.xcodeproj/
            project.pbxproj
        boinc.pbproj/
            project.pbxproj (Remove)
            config.h

Rom    24 Jan 2006
    - Bug Fix: Fix a blocking compilation issue on the Mac with the new
        email validation class.
        
    clientgui/
        ValidateEmailAddress.cpp
        
David  24 Jan 2006
    - new FORTRAN-callable function boinc_zip_()
        (from Juan Perez)

    api/
        boinc_api_fortran.C

Rom    25 Jan 2006
    - Bug Fix: Fix the wizard so that it can display customized graphics
        on the welcome page.
    - Bug Fix: Display the minimum password length in the wizard.
    - Bug Fix: Add two new pages for dealing with account manager updates
        and removal from account managers.  Text needs some work though.

    clientgui/
        AccountInfoPage.cpp, .h
        AccountManagerProcessingPage.cpp
        AccountManagerStatusPage.cpp
        BOINCBaseWizard.cpp, .h
        BOINCGUIApp.cpp
        BOINCWizards.h
        CompletionErrorPage.cpp
        CompletionPage.cpp
        CompletionRemovePage.cpp, .h (Added)
        CompletionUpdatePage.cpp, .h (Added)
        NotDetectedPage.cpp
        ProxyPage.cpp
        UnavailablePage.cpp
        WelcomePage.cpp
        WizardAccountManager.cpp, .h
        WizardAttachProject.cpp
        wizardex.cpp

David  25 Jan 2006
    - core client: add declarations of free_mem() functions
        (but still comment them out)

    client/
        app.h
        client_state.h
    html/user/
        am_seti_info.php
    lib/
        util.C

David  25 Jan 2006
    - add "added_via_acct_mgr" flag to GUI RPC PROJECT structure

    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  25 Jan 2006
    - core client: added "Deferring scheduler requests for X" messages

    client/
        cs_scheduler.C

David  25 Jan 2006
    - account manager RPC request now lists all projects;
        <attached_via_acct_mgr/> is included for those attached via AMS

    client/
        acct_mgr.C

David  25 Jan 2006
    - Initialize result.batch to workunit.batch
        This required adding a batch field to TRANSITIONER_ITEM.
        (for Rosetta@home)

    Note: if you're using the batch field for anything,
    you should add indices on it to workunit and/or result


    db/
        boinc_db.C,h
    tools/
        backend_lib.C

David  26 Jan 2006
    - core client: always use HTTP 1.1
        (from Carl Christensen)

    client/
        http_curl.C

Rom    26 Jan 2006
    - Bug Fix: Overhaul the wizard control creation process.  The RAD tool
        we used broke the process into two parts and arranged things where
        the bulk of the control creation and text assignment happened
        during dialog contruction.  This causes problems since not all of
        the relevant data is available at dialog construction, such as
        account manager name or project name.
        
        The new scheme creates all the controls during dialog creation and
        sets the associated text to null.  When the OnPageChanged event is
        fired we'll go and make all the necessary changes to the control text
        as well as hide and show the correct controls.
        
    clientgui/
        <All wizard related files>

Rom    27 Jan 2006
    - Bug Fix: The screensaver should properly detect the shortcut for all
        branded clients.
        
    client/win/
        boinc_ss.h
        boinc_ss.rc
        win_screensaver.cpp, .h

Rom    27 Jan 2006 (HEAD)
    - Tag for 5.3.15 release, all platforms
      boinc_core_release_5_3_15

David  27 Jan 2006
    - server build fix for Mac OS X 10.3
        (from Derek Wright)

    m4/
        kc_mysql.m4

David  27 Jan 2006
    - Manager:
        "Website" is still not a word.
        Don't use exclamation points.

    clientgui/
        AccountInfoPage.cpp
        AccountManagerPropertiesPage.cpp
        CompletionRemovePage.cpp
        CompletionUpdatePage.cpp

David  27 Jan 2006
    - core client: fix calculation of STD/LTD

    client/
        cs_apps.C

David  27 Jan 2006
    - core client: various scheduler fixes
        (from John McLeod)

    client/
        client_state.C,h
        client_types.C,h
        cs_prefs.C
        cs_scheduler.C
        cs_statefile.C

David  27 Jan 2006
    - core client: initial checkin of new CPU scheduling code
        (in a very incomplete state).
        To enable it, define NEW_CPU_SCHED in a couple of .h files

    api/
        boinc_api_fortran.C
    client/
        client_state.C,h
        client_types.C,h
        cs_apps.C
        cs_scheduler.C

Reinhard 30 Jan 2006
     - improved _autosetup: 
    * make version-checks more robust if '--version' is not supported
    * removed libtool-check: libtool is shipped with boinc, this check therefore pointless
     ./autosetup

Charlie 30 Jan 2006
    -Mac: XCode project fixes: path to Mac_GUI.cpp; remove GR_Info.plist, add 
        source files CompletionRemovePage.cpp,.h, CompletionUpdatePage.cpp,.h.

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Reinhard 30 Jan 2006
     - updated boincmgr build for MacOSX:
    * added Mac_GUI.cpp, MacGUI.pch and Security.Framework

     clientgui/
         Makefile.am
         MainFrame.cpp

Reinhard 30 Jan 2006
     - applied Derek Wright's patch to get --enable-release-client working on MacOS10.4
    (this simply adds a check for '-lSystemStubs') [can't test this myself on 10.4 right now]
     ./configure.ac


David  30 Jan 2006
    - updates to new scheduler code (commented out)

    client
        client_state.h
        client_types.h
        cs_apps.C

David  30 Jan 2006
    - back out scheduler changes of 27 Jan.
        They caused write of statefile in infinite loop in some cases

    client/
        client_state.C,h
        client_types.C,h
        cs_apps.C
        cs_prefs.C
        cs_scheduler.C
        cs_statefile.C

Rom    30 Jan 2006
    - Change the scheme used to select the default item when no other
        items are selected within a single selection list control.
        
    clientgui/
        BOINCBaseView.cpp
        BOINCListCtrl.cpp

David  30 Jan 2006
    - fixes for LTD calculation (from James Drews)

    client/
        client_types.C,h
        cs_apps.C

Rom    30 Jan 2006 (HEAD)
    - Tag for 5.3.16 release, all platforms
      boinc_core_release_5_3_16

Charlie 30 Jan 2006
    -Mac: Undo change of 1/20/06 to Info.plist: restore manager to Dock because 
        use of NSUIElement also eliminated menu bar.
        (Tagged new Info.plist for boinc_core_release_5_3_16.)

    mac_build/
        Info.plist
        
Charlie 31 Jan 2006
    -Mac: Remove redundant second link with libwx_mac.a.
       Fix buildWxMac.sh script to fix wxRegEx problems. 
       Fix bug so a new default item is selected when the old selected item 
       is deleted within a single selection list control.
       Update release scripts for separate ppc_Deployment build directory.
       (Tagged changed files for boinc_core_release_5_3_16.)
       
    clientgui/
        BOINCBaseView.cpp
    mac_build/
        buildWxMac.sh
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh

Rom    31 Jan 2006
     - Bug Fix: If the wizard is configured for usernames, do not use the email
         address validator on the account info page.
         
     clientgui/
         AccountInfoPage.cpp

David  31 Jan 2006
    - Back out changes to LTD calculation

    client/
        client_types.C,h
        cs_apps.C

David  31 Jan 2006
    - add "table stats" web page
        (from Carl Christensen)

    html/
        inc/
            util.inc
        ops/
            sample_table_stats.php

David  31 Jan 2006
    - user web: remove "pending credit" link from user page

    html/inc/
        user.inc

Bruce 31 Jan 2006
    - user web: modify David's change just above.  Make 'pending
      credit link display only if 'show_results' enabled in
      project config.xml file.

    html/
        inc/
            user.inc

David  31 Jan 2005
    - core client: finish logic for recovering from state file write failures.
        For some reason I'd done the write part but not the read part.
        write:
            1) write "next"
            2) rename "current" to "prev"
            3) rename "next" to "current"
        read:
            if "next" is valid, use it
                (in case failure between 1 and 2)
                In principle we should rename "next" to "current" here,
                but I didn't bother doing this.
            else if "current" is valid use it
                (normal case)
            else if "prev" is valid use it
                (in case 3) failed and file got deleted)

        "is valid" means that the file has a <state_file> tag,
        followed later by a </state_file> tag

    client/
        cs_statefile.C

Charlie 1 Feb 2006
    -Mac: Changes for Intel Macs.
       
    clientgui/
        MainFrame.cpp
        mac/
            MacGUI.pch
        res/
            mess.xpm
            proj.xpm
            result.xpm
            usage.xpm
            xfer.xpm
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    1 Feb 2006
    - Bug Fix: The account manager wizard wasn't actually calling the
        get_project_config routine and so various account manager
        specific settings were not being picked up.
    - Bug Fix: Include the account manager name in the wizard
        communication dialogs if we have it.
    - Bug Fix: Account manager errors were no longer being bubbled
        up to the manager.  The manager was declaring everything a
        success and displaying the success page.
    - Bug Fix: Add 'Account not Found' to the account manager wizard.
    - Bug Fix: Don't attempt an account manager rpc until after a
        proper username and password have been specified.  Various
        attributes in the acct_mgr_url.xml were being nulled out
        since the handle_reply function wasn't properly detecting the
        account not found condition, or any condition where only an
        error number was returned.
    - Bug Fix: Keep the tab graphics consistant across all the
        platforms.
        
    client/
        acct_mgr.C
        cs_scheduler.C
    clientgui/
        AccountInfoPage.cpp, .h
        AccountManagerProcessingPage.cpp, .h
        AccountManagerPropertiesPage.cpp, .h
        BOINCGUIApp.cpp, .h
        MainFrame.cpp
        ProjectProcessingPage.cpp
        WizardAccountManager.cpp, .h
    clientgui/res/
        mess.xpm
        proj.xpm
        result.xpm
        usage.xpm
        xfer.xpm
    lib/
        util.C

David  1 Feb 2006
    - added web RPC for creating teams
    - on team creation (whether via RPC or web interface)
        make sure the country name and team type or legitimate

    html/
        inc/
            countries.inc
            team.inc
            team_types.inc (new)
        user/
            create_team.php (new)
            team_create_action.php

David  1 Feb 2006
    - Core client: there's a feature where certain GUI RPCs
        enable network communication (if it would otherwise be disabled)
        for 5 minutes or so.
        This set of RPCs was too large.
        Restrict it to things like attach/update project etc.,
        for which network communication is clearly required.
    - core client: parse <want_network> elements in status messages from apps.
        I had forgotten to do this.
        This should finally allow F@h to work with modem users.

    client/
        app.h
        app_control.C
        gui_rpc_server_ops.C

Rom    2 Feb 2006
    - Bug Fix: Always use the ai.email_addr field for the user identifier for
        both the create_account and lookup_account RPCs.  ai.user_name is only
        used to prepopulate the post account creation setup form.
        
    client/
        acct_setup.h
    clientgui/
        ProjectProcessingPage.cpp
    lib/
        gui_rpc_client.h

Rom    2 Feb 2006
    - Setup new menu layout
    
    clientgui/
        BOINCGUIApp.cpp
        Events.h
        MainFrame.cpp, .h
        WizardAccountManager.cpp, .h

Charlie 2 Feb 2006
    -Mac: Changes for Universal Binaries.

    mac_build/
        boinc.xcodeproj/
            project.pbxproj
        buildcurl.sh
        buildjpeg.sh
        BuildMacBOINC.sh
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh

Rom    2 Feb 2006
    - Update GridRepublic Icons
    - Add aditional menu item for the task tray when managed via an account
        manager.
    
    clientgui/
        BOINCGUIApp.cpp
        BOINCGUIApp.rc
        BOINCTaskBar.cpp, .h
        Events.h
    clientgui/res/
        gridrepublic16.xpm (Added)
        gridrepublic32.xpm (Added)
        gridrepublic.ico


Rom    2 Feb 2006 (HEAD)
    - Tag for 5.3.17 release, all platforms
      boinc_core_release_5_3_17

David  2 Feb 2006
    - web RPC: bug fix

    html/user
        am_set_info.php

David  2 Feb 2006
    - core client: small logic error in statefile read
        (for "prev", use is_valid_statefile() instead
        of boinc_file_exists())

    client/
        cs_statefile.C

David  2 Feb 2005
    - core client: correctly update long-term debt when a project
        finishes its last result and becomes no longer "potentially runnable".
        From James Drews.

    client/
        cs_apps.C

David  2 Feb 2005
    - core client: long-term debt is modified only over
        potentially runnable projects,
        but it's averaged and normalized over all projects.

    client/
        cs_apps.C

David  3 Feb 2005
    - Allow apps to do cleanup when they're aborted.
        - Add abort_request to BOINC_STATUS structure
        - API library: handle <abort/> message
        - Change boinc_get_status() arg from reference
            to pointer (for easier FORTRAN interface).
            This is an API change, but I think only CPDN uses this.
        - ACTIVE_TASK_SET::poll():
            Check for processes that are ABORT_PENDING
            for more than 5 seconds, and kill them

        From Carl Christensen, somewhat modified.
        I changed the way tasks are aborted.
        The core client can't sleep; that locks up the UI.
        So we can't sleep 5 seconds waiting for an app to exit
        after sending it an <abort/> message
        (existing apps don't recognize this message).
        Instead, send it the <abort/> message,
        set its state to PROCESS_ABORT_PENDING,
        and check it from the polling loop 5 seconds later.

    api/
        boinc_api.C,h
    client/
        app.C,h
        app_control.C

David  6 Feb 2005
    - compile warning fixes

    client/
        cs_statefile.C
        gui_rpc_server_ops.C

Rom    6 Feb 2006
    - Bug Fix: when running as a Windows Service we should use
        suspend_task/resume_task and suspend_network/resume_network
        instead of setting the activity states.
        
    client/
        client_state.h
        main.C

David  6 Feb 2005
    - Core client: when we switched to Curl, we lost the code
        that sets gstate.want_network_flag when name resolution fails.
        I restored this to the Curl code.

    - The above is a kludge for detecting lack of physical connection.
        But name resolution can fail for reasons other than lack of
        physical connection; e.g. hostname might be bad.
        So if get name resolution failure,
        try to contact a reference web site,
        and only if that also fails set want_network_flag.

    client/
        acct_setup.C
        client_state.C,h
        net_xfer_curl.C

Charlie 6 Feb 2006
    -Mac: Changes for Universal Binaries: when running on an Intel Mac, 
       read mach header of project application to determine if it has 
       Intel native executable or only PowerPC executable.  If emulating 
       PowerPC on an Intel Mac, treat the application as not supporting 
       graphics.  This works around a crash bug when displaying graphics 
       under PPC emulation.
    Fix multiple compiler warnings and one error.
    
    api/
        gutil.C
        mac_icon.C
    client/
        app.h
        app_graphics.C
        app_start.C
    clientgui/
        BOINCBaseView.cpp
        BOINCGUIApp.cpp
        ViewStatistics.cpp
    lib/
        mac_backtrace.C
        shmem.C
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        LoginItemAPI.c

David  6 Feb 2006
    - Slight refinement to next-earlier checkin.
        Set want_network_flag only if the request to the reference network site
        results in a CURLE_COULDNT_RESOLVE_HOST Curl error code.

    client/
        acct_setup.C,h
        gui_http.C,h

David  6 Feb 2006
    - try to get rid of gcc4 warnings about virtual destructors
    - project creation bug fix (from Andre Kerstens)

    api/
        graphics_data.h
    client/
        client_msgs.h
    lib/
        msg_log.h
    py/Boinc
        setup_projects.py

Charlie 7 Feb 2006
    -Mac: Adjust XCode project for David's warnings fix.  We now build on Mac 
       with no warnings!

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  7 Feb 2006
    - Core client: check for a file "global_prefs_override.xml"
        that overrides the global prefs obtained from server.
        This lets people manually tweak prefs on a given host,
        or develop add-on programs that do so.
    - Remove programs that tested old HTTP code

    client/
        client_state.C,h
        test_file_xfer.C (removed)
        test_http.C (removed)
        test_net_xfer.C (removed)
    lib/
        prefs.C,h

David  7 Feb 2006
    - Add GUI RPC for rereading global prefs override file

    client/
        client_state.C,h
        gui_rpc_server_ops.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  7 Feb 2006
    - remove the "new CPU scheduler" code I added a couple weeks ago (sigh)

    client/
        client_state.h
        client_types.h
        cs_apps.C
        cs_scheduler.C

David  7 Feb 2006
    - Unravel the CPU scheduler code a little:
        - split set_scheduler_modes() into two functions,
            set_scheduler_mode() and set_work_fetch_mode().
        - make a separate function, enforce_schedule(),
            that does the actual starting and stopping of processes

    client/
        client_state.h
        cs_apps.C
        cs_scheduler.C

Bruce 7 Feb 2006
    - Added a script (originally provided by DA, I think) to
      send mass email to project participants.  The script allows
      one to select the TYPE of user, including 'all', 'active',
      'lapsed', 'unsuccessful' and so on.  Also appends a 'how to opt
      out' message at the end. Do NOT use this script without testing it.

    html/
        ops/
            mass_email.php
            index.php

David  7 Feb 2006
    - Manager: change "Tasks" to "Commands".
        We're using "Tasks" to mean work now.

    clientgui/
        View*.cpp

Charlie 8 Feb 2006
    -Mac: Enhance BOINC command-line build script with new options 
      to build only the 3 BOINC libraries (libboinc, gfxlibboinc and 
      api_libboinc), only 2 targets (boinc client and boinc_cmd), or 
      a combination of these two (5 targets).  The default is still 
      Build_all, which also builds the BOINC Manager.
      
    mac_build/
        BuildMacBOINC.sh

David  8 Feb 2006
    - Move CPU scheduling code to a new file, cpu_sched.C
    - PHP: use $_POST, not $HTTP_POST_VARS

    client/
        Makefile.am
        client_state.h
        cpu_sched.C
        cs_apps.C
        cs_scheduler.C
    html/user/
        create_account_action.php
    win_build/
        boinc_cli_curl.vcproj

Rom    8 Feb 2006 (HEAD)
    - Tag for 5.3.18 release, all platforms
      boinc_core_release_5_3_18

David  8 Feb 2006
    - Change the way the manager learns about the core client's network status.
        Replace the <network_query> GUI RPC with a new one, <network_status>
        It returns:
        0 if currently have network connections
        1 if need a physical connection
        2 if don't have connections, and don't need any

    client/
        acct_setup.C
        client_state.C,h
        gui_rpc_server_ops.C
        net_xfer_curl.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Bruce 9 Feb 2006
    - Ops page bug fix from Carl Christensen for manage special users page.

    html/
        ops/
            manage_special_users.php


Rom    9 Feb 2006
    - Integrate BOINC Manager into David's last API change.
    - Breakout the dial up functionality into its own class.
    - Increase the refresh rate of the list view to 1 second.
    - Terminology change in the project tab.  credit = work done.
    
    clientgui/
        BOINCDialupManager.cpp, .h (Added)
        MainFrame.cpp, .h
        ViewProjects.cpp

Charlie 8 Feb 2006
    - Mac: Add backtrace capability for Intel-based Macs. Add new 
        sources BOINCDialupManager.cpp, .h, cpu_sched.C to project.
        Fix a link error with SETI@home.
    
    api/
        graphics_data.h
    lib/
        MoreAddrToSym.c,h (Added)
        mac_backtrace.C,h
        MoreBacktrace.c,h (Added)
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  10 Feb 2005
    - cosmetic

    client/
        client_msgs.h
        client_types.h
        cpu_sched.C
        cs_scheduler.C

Charlie 10 Feb 2006
    - Mac: Free memory allocated for strings when longer needed.
    
    lib/
        mac_backtrace.C

David  11 Feb 2006
    - user web: add links to combined stats sites from user page;
        reorganize user page.
    - user web: enable pending credit page as long as
        config file has <show_result/>

    html/
        inc/
            stats_sites.inc (new)
            user.inc
        user/
            pending.php

David  11 Feb 2006
    - web tweaks

    html/inc/
        user.inc

Rom    13 Feb 2006
    - Fix dialup functionality
    - Numerious fixes for CPDN
    - Enable dialup on platforms other than Windows.
    
    clientgui/
        BOINCDialupManager.cpp, .h
        DlgDialupCredentials.h
        DlgOptions.cpp, .h
        DlgSelectComputer.h
        MainFrame.cpp, .h

Rom    13 Feb 2006 (HEAD)
    - Tag for 5.3.19 release, all platforms
      boinc_core_release_5_3_19

Rom    13 Feb 2006
    - Bug Fix: Fix a possible invalid pointer issue with the taskbar
        notifications.
        
    clientgui/
        BOINCTaskBar.cpp

David  13 Feb 2006
    - core client: changes to the way we check
        for presence of network connection.
        Don't check for DNS failures,
        since these won't show up for ~24 hours in some cases.
        Instead, if we get any HTTP failure,
        try an HTTP op to a high-availability URL,
        and if that fails assume it's because of lack of network.

        NOTE: this checkin prints lots of messages for debugging

    client/
        acct_setup.C,h
        client_state.C
        net_xfer_curl.C

David  13 Feb 2006
    - make test_uc.py work again

    test/
        testbase.py

Rom    13 Feb 2006
    - Bug Fix: Fix a few issues that were introduced with the new dial up
        manager functionality.  Variables that were once seperate are now
        mutually exclusive and so two conditions would never have fired
        when traversing the state machine.
        
    clientgui/
        BOINCDialupManager.cpp

David  14 Feb 2006
    - fix bug that broke account manager attach
    - removed 2nd arg (CurlError) from handle_reply functions.
        We were using this to check for DNS failure,
        but we're not doing this anymore.

    client/
        acct_setup.C,h
        gui_http.C,h

David  14 Feb 2006
    - core client: on Windows, use commit mode ("wc") for state file
        (from Walt Gribben)

    client
        cs_statefile.C

Rom    14 Feb 2006
    - Bug Fix: After any of the wizards have been executed, recreate the
        menus.
    - Bug Fix: Call Fit() before setting focus to any of the controls.
        Fit() messes up the input focus even though the control still
        seems like it is selected and has focus.
    - Bug Fix: Disable the detach button when the project is managed
        via an account manager.  This only affects the project tab.
    - Feature Change: Trim down the number of menu items in the taskbar
        context menu by making the suspend activities and suspend
        network acivities menu checkbox items.  When the items are checked
        they are suspended, and when they are unchecked they are set to be
        based on preferences.
        
    clientgui/
        AccountInfoPage.cpp
        AccountKeyPage.cpp
        BOINCTaskBar.cpp
        MainFrame.cpp
        ProjectInfoPage.cpp
        ProxyPage.cpp
        ViewProjects.cpp

David  14 Feb 2006
    - user web: on "Statistics" page, remove the XML mumbo-jumbo.
        Show a list of all current stats sites,
        and sites that provide signature images.
        The central repository for these lists is html/inc/stats_sites.inc

    html/
        doc/
            stats_sites.dat (removed)
        inc/
            stats_sites.inc
            user.inc
        user/
            stats.php

David  14 Feb 2006
    - Manager: rename menu item from "Update now"
        to "Synchronize with [name of account manager]".
        Fixed some spelling/grammar.

    clientgui/
        MainFrame.cpp

Rom    14 Feb 2006
    - Spec Change: Transfers should be 0% until data is actually transfered.
    - Spec Change: Warn a user that aborting a file transfer will invalidate
        a task and report an error.
    - Add some comments around the Update Now menu item so the localizers
        know what information is expected and make the string contruction
        the same as with the other menu items.

    clientgui/
        ViewTransfers.cpp

Rom    15 Feb 2005
    - Spec Change: Adjust the refresh rate for list view items to 1 second.
        This was previously done in the constructor for CMainFrame but was
        later changed in SetFrameListPanelRenderTimerRate() for deal with
        CPU utilization on Mac's.
        
    clientgui/
        MainFrame.cpp

David  15 Feb 2006
    - core client: if socket/bind/listen on the GUI RPC socket fails,
        sleep for a second and retry; repeat 30 times.
        This will hopefully deal with situations on Windows
        where we're running at boot time
        and network comm doesn't work for a few seconds
        (resulting in the core client exiting,
        and the Manager being disconnected).

    client/
        client_state.C

David  15 Feb 2006
    - Manager: fix menu strings and remove erroneous comments

    clientgui/
        MainFrame.cpp

Rom    15 Feb 2006
    - Bug Fix: Force a project state update even when we are looking at
        the tasks tab.  Copy the updated project state to the existing global
        state structure.
        
    clientgui/
        MainDocument.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  15 Feb 2006
    - make crypt_prog work on Windows
        (from James Drews)

    lib/
        crypt_prog.C

Charlie 16 Feb 2006
    - Mac: Fix menubar draw bug by calling MacInstallMenuBar().  
    - Since Quit (Exit) is not in File menu on Mac OSX, don't show File 
        menu unless it contains other items in addition to Exit.
    - Dialup manager doesn't work on Mac or Linux, so compile it and 
        Options dialog Connections tab only for Windows.
    - Fix a small bug in release scripts.
    
    clientgui/
        MainDocument.cpp
        DlgOptions.cpp
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh

Rom    16 Feb 2006
    - Modify the disk usage and statistics tab icons
    - Add a worning before the account manager wizard will actually
        defect from an account manager
    - Remove CompletionUpdatePage.cpp and CompletionRemovePage.cpp
    - Remove AccountManagerStatusPage.cpp
    - Remove trace messages from boinc dll.
    - Followup Eric's last change that delt with prematurly showing
        100% progress for tasks due to rounding with a change to
        file transfer progress using the same scheme.
    
    clientgui/
        AccountManagerProcessingPage.cpp
        BOINCWizards.h
        CompletionPage.cpp
        ViewStatistics.cpp, .h
        ViewTransfers.cpp
        WelcomePage.cpp
        WizardAccountManager.cpp, .h
        CompletionUpdatePage.cpp, .h (Removed)
        CompletionRemovePage.cpp, .h (Removed)
        AccountManagerStatusPage.cpp, .h (Removed)
    clientgui/res/
        stats.xpm (Added)
        usage.xpm
    clientlib/win/
        BOINCSENSSink.cpp
        NetworkTracker.cpp

David  16 Feb 2006
    - core client: bug fix (hopefully) for situation where
        a server or proxy doesn't understand Range: in HTTP header,
        and sends us the entire file when we just want the tail.
        Solution: if we asked for a partial transfer,
        and we got a 200 HTTP return,
        and the file is bigger than it's supposed to be,
        trim off the part that was there initially.
    - remove NET_XFER::strCurlResult, file_read_buf* fields

    client/
        file_xfer.C,h
        net_xfer_curl.C,h

Rom    16 Feb 2006
    - Followup Eric's last change that delt with prematurly showing
        100% progress for tasks due to rounding with a change to
        file transfer progress using the same scheme.
    
    clientgui/
        ViewTransfers.cpp

David  16 Feb 2006
    - clientgui compile on unix

    clientgui/
        Makefile.am

Charlie 17 Feb 2006
    - Mac: Remove obsolete files from XCode project (CompletionUpdatePage.cpp, 
        .h, CompletionRemovePage.cpp, .h, AccountManagerStatusPage.cpp, .h)
    - Remove unused variable pWAP to fix compiler warning.

    clientgui/
        WelcomePage.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    17 Feb 2006
    - Bug Fix: Remove the defect account manager functionality
        from the wizard and put it into it's own routine
        per David's request.
    - Bug Fix: Fix the context menu item indentation problem on the task bar.
    
    clientgui/
        BOINCDialupManager.cpp
        BOINCTaskBar.cpp
        MainFrame.cpp

David  17 Feb 2006
    - Add Visual Studio project file for crypt_prog
        (from James Drews)

    win_build/
        crypt_prog.vcproj

Rom    17 Feb 2006
    - Bug Fix: Adjust the dialog title code for both the attach to project wizard
        and the attach to account manager wizard per David's request.
        
    clientgui/
        WizardAccountManager.cpp
        WizardAttachProject.cpp

Rom    17 Feb 2006
    - Bug Fix: Reset the reminder timers when the user updates something.
    
    clientgui/
        BOINCDialupManager.cpp, .h
        MainFrame.cpp, .h
        ViewProjects.cpp
        ViewTransfers.cpp

David  17 Feb 2006
    - user web: restore posts link on public user page
        (not sure how it got deleted)
    - minor code cleanup

    html/
        inc/
            profile.inc
            user.inc
        user/
            delete_profile.php

David  17 Feb 2006
    - core client: remove network_status messages

    client/
        client_state.C

Walt   17 Feb 2006
    - bug fix: Fix core client crash on startup when an unknown tag is part of
      <pers_file_xfer> XML structure.
    - core client, GUI RPC: changed persistent file transfers to save the count
      of bytes transferred.  Previously the count was only available when the
      file transfer was active.
       -Adds member last_bytes_xferred to PERS_FILE_XFER class.
       -Adds <last_bytes_xferred> tag to the XML structure and GUI RPC ops.
       -GUI RPC op FILE_TRANSFER::parse is changed to get the count of bytes
        transferred (bytes_xferred) from <last_bytes_xferred>. 

    client/
        pers_file_xfer.C, .h
    lib/
        gui_rpc_client_ops.C

Charlie 17 Feb 2006
    - Mac: - Fix unused variable compiler warnings.
    - added MoreAddrToSym.c, h, MoreBacktrace.c, h to Makefile
    - fixes to Mac build scripts
    - check in XCode project used by buildWxMac.sh script to build wxMac 
        libraries for BOINC.

     lib/
         Makefile.am
    clientgui/
        BOINCTaskBar.cpp
    mac_build/
        buildcurl.sh
        buildjpeg.sh
        BuildMacBOINC.sh
        buildWxMac.sh
        setupForBOINC.sh
        wxMac-BOINC.xcodeproj/  (added)
            project.pbxproj     (added)

David  17 Feb 2006
    - If statefile doesn't have right platform name, reset all projects.
        This is intended to deal with the case where someone
        copies all their files from a Mac/PPC to a Mac/Intel
        and expects everything to work.
        (suggested by Charlie Fenton).
    - minor code cleanup

    client/
        check_state.C
        client_state.C,h
        cs_statefile.C
        http_curl.C

Bruce 18 Feb 2006
    - User RSS page: make it pass the validation check
      http://feedvalidator.org/                                                                                                                                                 

    html/
        user/
            sample_rss_main.php

Charlie 18 Feb 2006
    - Mac: - Fix compiler setting which caused bug when building on PowerPC.
    - Fix compiler errors and crash bug.
    
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    client/
        client_state.C
    clientgui/
        BOINCTaskBar.cpp
        MainFrame.cpp

David  19 Feb 2006
    - user web: show error results with pink background
        (from Rytis Slatkevicius)

    html/
        inc/
            result.inc
        user/
            white.css

Bruce 20 Feb 2006
     - user web: allow sorting of columns of host data for a given user. I
       have done this in a general way, which should permit any page to
       be easily modified to permit sorting by any column.

    html/
        inc/
            util.inc
            host.inc
        user/
            hosts_user.php

Charlie 21 Feb 2006
    - Mac: Add safety timer to kill application if screensaver hangs.
    - Improve screensaver display when no graphics: don't display 0.00% 
        when client has not yet returned fraction_done; better message.
    - Add time/date stamp to backtrace output.
    - Update ReadMe files for universal binaries and version 5.3.19.

    client/
        app_graphics.C
        ss_logic.C
        app.C
        app.h
    clientgui/
        mac/
            mac_saver_module.cpp
    lib/
        mac_backtrace.C
    mac_installer/
        GR-ReadMe.rtf
        ReadMe.rtf
        

Rom    21 Feb 2006
    - Check in new suspend menu code.
    - Bug Fix: Fix memory leak condition in gui rpc.
    - Bug Fix: Copy gui_urls from new project class to the old class when
        updating project stats.
    - Bug Fix: Make sure the default connection is properly displayed
        in the connection tab.
        
    clientgui/
        BOINCTaskBar.cpp, .h
        Events.h
        MainFrame.cpp
    lib/
        gui_rpc_client_ops.C

Rom    21 Feb 2006
    - Spec Change: Add the ability for the ACCOUNT_OUT rpc structure to contain
        custom project error messages
        
    clientgui/
        ProjectProcessingPage.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Bruce 22 Feb 2006
    - User web pages.  Make RSS feed type application/xml rather than text/xml.
      Make RSS feed link permanent guid rather than temporary.
    - Better caching mechanism for hosts_user.php to prevent malicious user
      from passing _GET[] strings that would lead to unbounded cache usage.

    html/
        user/
            hosts_user.php
            sample_rss_main.php

Charlie 22 Feb 2006
    - Mac: Update build instructions and scripts for Intel Macs and Universal 
        Binaries.
    
    doc/
        mac_build.html
    mac_build/
        HowToBuildBOINC_XCode.rtf
        setupForBOINC.sh

Rom    22 Feb 2006
    - Bug Fix: ACCOUNT_OUT::parse should not return after encountering the
        error_num element.
    - Bug Fix: Make sure we are looking at the ACCOUNT_OUT messages array
        instead of the attach to project response.
        
    clientgui/
        ProjectProcessingPage.cpp
    lib/
        gui_rpc_client_ops.C

Rom    22 Feb 2006
    - Bug Fix: We seem to be having trouble with sub menus on the Mac.  So
        we will make the Snooze menu item a checkbox menu item and default
        it to an hour. 

    clientgui/
        BOINCTaskBar.cpp, .h
        Events.h
        MainFrame.cpp

David  22 Feb 2006
    - core client: configure Curl to not accept self-signed SSL certificates.
        Projects that use SSL will have to get SSL certificates
        from Thawte, Verisign etc.
        This prevents certain man-in-the-middle attacks.
    - core client: configure Curl to accept any encoding (including gzip)

    (both from Kevin Reed, WCG)

    client/
        http_curl.C

David  22 Feb 2006
    - temporarily back out the above SSL change,
        since it appears that Curl doesn't have a CA bundle by default,
        so all SSL connections fail.

    client/
        http_curl.C

Rom    22 Feb 2006
    - Bug Fix: Close down the OpenGL handles as well as the window handles
        when boinc_finish() is called.
    - Bug Fix: Add better power management handling to science applications
        if they have a lingering graphics window open.
        
    api/
        boinc_api.C, .h
        windows_opengl.C

Rom    22 Feb 2006
    - Code Cleanup
    - Make S@H enhanced compile again on Windows.
    
    clientgui/
        AccountManagerProcessingPage.cpp
        MainFrame.h
        ProjectProcessingPage.cpp
    lib/
        proxy_info.C

Rom    23 Feb 2006 (HEAD)
    - Tag for 5.3.20 release, all platforms
      boinc_core_release_5_3_20

Walt   23 Feb 2006
    - Bug Fix: last_bytes_xferred was only counting the current bytes transferrred
        on uploads.
    
    client/
        pers_file_xfer.C

Rom    23 Feb 2006
    - Bug Fix: When changing how return values are handled, make sure the callers
        know about the API change.
        
    clientgui/
        ProjectProcessingPage.cpp

Walt   23 Feb 2006
    - Bug Fix: PROJECT::attach_via_acct_mgr flag wasn't being initialized or copied, 
        causing the manager to incorrectly disabled the detach button.   Also added
        the flag to PROJECT::print().
    
    lib/
        gui_rpc_client_ops.C
        gui_rpc_client_print.C

Charlie 23 Feb 2006
    - Mac: Fix compiler warning.
     
    clientgui/
        BOINCTaskBar.cpp

Rom    23 Feb 2006
    - Bug Fix: The new project copy operation instead of replace had the drawback
        of not deleting a project from the listview after a project detach operaton.
        
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Rom    24 Feb 2006 (HEAD)
    - Tag for 5.3.21 release, all platforms
      boinc_core_release_5_3_21

David  24 Feb 2006
    - remove "gzip" from list of encodings accepted by Curl;
        having it in the list breaks existing projects
        that use .gz files and decompress them in the app
        (e.g. Einstein and CPDN).
        We can fix this by adding a <gzip/> element in <file_info>; 
        I'll do this later.
    - Remove old HTTP code and data that's deprecated by Curl
        (e.g. timeout, blocksize stuff; stuff related
        to parsing URL into host/port/file/)
        remove commented-out code.
    - GUI RPC: a <file_xfer> elements now includes
        a <url> rather than a <hostname>.
        This change doesn't affect the BOINC Manager,
        which I believe is the only client of this RPC

    client/
        http_curl.C,h
        net_xfer_curl.C,h
        pers_file_xfer.C

David  24 Feb 2006
    - Scheduler: increment the infeasible count for a result
        in a slot that cannot be sent to a host because
        the workunit has already be assigned to a different platform.
        This helps projects that use homogenous redundancy
        because once the result is marked infeasible
        it will be checked for compatibility for a given host first,
        thus leaving results for workunits that have not yet
        been assigned free for other hosts.
        (from Kevin Reed, WCG)

    sched/
        sched_array.C

Rom    24 Feb 2006 (HEAD)
    - Tag for 5.3.22 release, all platforms
      boinc_core_release_5_3_22

David  24 Feb 2006
    - Add new config file options, which are typically used together:
        <max_claimed_credit> (double)
            If a result claims more credit than this, mark it as invalid
        <grant_claimed_credit> (bool)
            Grant the claimed credit,
            regardless of what other results for this workunit claimed.
        These are used by Rosetta@home, which has the unusual
        property that different instances of the same job
        can do much different amounts of work,
        depending on the user's project settings.

        (from David Kim)

    sched/
        sched_config.C
        sched_config.h
        validate_util.C
        sched/validator.C
        
Charlie 25 Feb 2006
    - Mac: Fix a small bug in release scripts which made the zip 
        files larger than necessary.
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh

Charlie 27 Feb 2006
    - Mac: Fix tilde expansion bug in setupForBOINC build script.
    - Fix bug in buildWxMac build script.
    - Update build instructions to restore info on adding an icon 
        to a science application.
    - Fix minor bug in diagnostic error message in setMacRsrcForFile().
    
    doc/
        mac_build.html
    mac_build/
        HowToBuildBOINC_XCode.rtf
        setupForBOINC.sh
        buildWxMac.sh
    api/
        mac_icon.C

Bruce 27 Feb 2006
    - User web page to show hosts: check all GET[] values to 
      be sure they are legal/allowed.

    html/
        user/
            hosts_user.php

Rom    27 Feb 2006
    - Bug Fix: Restore the encoding behavior back to 5.2 defaults until
        we have a better solution in place.
        
    client/
        http_curl.C

Rom    27 Feb 2006
    - Expose Windows detection code in the DLL to BOINC proper.
    
    clientlib/win/
        Identification.cpp
        Identification.h

Walt   27 Feb 2006
    - Bug Fix: On Win2k and later, use global mutex so only one
        instance of the core client runs at a time.
    
    client/
        main.C
    cliend/win
        win_util.h

Charlie 28 Feb 2006
    - Mac: Get path for setMacPList in a more reilable way.
    
    api/
        boinc_api.h
        mac_icon.C
        x_openGL.C

David  28 Feb 2006
    - Continuing saga of Curl encodings.
        It seems like if you call set CURLOPT_ENCODING
        with any value, even "identity",
        it will accept any encoding.
        This breaks projects that do application-level gzip.
        Solution: if the filename ends with ".gz",
        don't set CURLOPT_ENCODING.
        Otherwise set it to "" (accept all).
        NOTE: I think this supports current requirements
        (for "deflate" to work, and for app-level gzip to work).
        At some point I'll implement BOINC-level gzip.
    - Fix the format of <error_msg> elements within <file_info>.
        Need a CR between the last line and the </error_msg> tag.
    - In the course of testing I found that a <file_info>
        with no <url>s will crash the core client.
        Fixed this.
    client/
        client_types.C
        file_xfer.C
        http_curl.C

Rom    1 Mar 2006
    - Bug Fix: Make detach from account managers work again.
    - Bug Fix: url encode the lookup account and create account
        rpcs.  Canonicalize the urls before use.
        
    client/
        acct_setup.C
    clientgui/
        MainFrame.cpp
    lib/
        util.C, .h

Rom    1 Mar 2006 (HEAD)
    - Tag for 5.3.23 release, all platforms
      boinc_core_release_5_3_23

David  1 Mar 2006
    - Core client: don't lose <send_gui_rpc_info/> tag from acct mgr URL file
        when make acct mgr RPC
    - Core client: make RAM size measurement work on HPUX > 4GB

    client/
        acct_mgr.C
        hostinfo_unix.C

Rom    2 Mar 2006
    - Bug Fix: When Windows resumes from hibernation return the application to
        it's previously desired state instead of blindly resuming it.
    - Bug Fix: Copy all the project data except the master_url for each project
        status update.
        
    api/
        boinc_api.C, .h
        windows_opengl.C
    lib/
        gui_rpc_client_ops.C

Rom    2 Mar 2006
    - Further refinements to the core client launch code when the core client
        has been configured as a service.
        
      NOTE: boincmgr.exe now explictly depends on boinc.dll
        
    clientgui/
        BOINCGUIApp.cpp
    clientlib/win/
        Service.cpp
    win_build/
        boinc.sln
        boinc_dll.vcproj
        boincmgr_curl.vcproj

David  2 Mar 2006
    - core client: is a scheduler RPC is pending to a project,
        do it even if project is suspended via GUI.
        This is needed to propagate host CPIDs for GridRepublic.
        It also seems like the right semantics for update requests via GUI
        (i.e. Update should override Suspended)

    client/
        cs_scheduler.C

David  2 Mar 2006
    - core client: tighten up XML parsing.
        When we use copy_element_contents() or dup_element_contents()
        and don't find the end tag, that's an error,
        and probably means we skipped over a bunch of critical elements.
        Fix places where we ignored this error.
    - don't do fprintf(stderr) from util functions
    - have strcatdup() return an error
        (rather than write to stderr and exit()) if realloc() fails

    client/
        schedule_op.C
    lib/
        gui_rpc_client.C
        parse.C,h
    sched/
        file_upload_handler.C

David  2 Mar 2006
    - core client: when host CPID changes,
        delay the resulting scheduler RPCs by 15 seconds

    client/
        cs_scheduler.C

David  3 Mar 2006
    - core client: on scheduler RPC, if our host ID is zero,
        set RPC seqno to zero also.
        This avoids a bug where the scheduler creates a new host record
        with rpc_seqno zero, and then on the next RPC creates
        ANOTHER host record because the client's rpc_seqno is > 0
    - core client: propagate host CPID change only
        if we're using an account manager.

    client/
        cs_scheduler.C

David  3 Mar 2006
    - scheduler: server-side fix for above bug.
        If we create a new host record,
        pretend that the client sent rpc_seqno 0

    sched/
        handle_request.C

David  3 Mar 2006
    - On project attach: if PROJECT/app_info.xml exists,
        don't clear out the project directory.
        This makes life easier for people who use anonymous platform;
        they don't have to re-download apps.
        (suggested by Lars Bausch)
    - Eliminate the PATH_SEPARATOR symbol.  Just use /

    client/
        app.C
        app_control.C
        app_start.C
        cs_account.C
        cs_statefile.C
        cs_trickle.C
        file_names.C
    lib/
        filesys.C,h

Walt   3 Mar 2006
    - GUI RPC: change to <file_transfers> to include files to be
        transferred that don't have a pers_file_xfer object yet. 
    - Manager: Don't show 'uploading' or 'downloading' unless file
        transfer is active.

    client/
        cs_statefile.C
    clientgui/
        ViewTransfers.cpp

David  5 Mar 2006
    - Maybe fix bug where work fetch stopped

    client/
        cs_scheduler.C
        file_names.h

Rom    6 Mar 2006
    - Bug Fix: Fix a couple text issues when using an existing account
        in the wizard
        
    clientgui/
        AccountInfoPage.cpp
        CompletionPage.cpp

Rom    6 Mar 2006 (HEAD)
    - Tag for 5.3.24 release, all platforms
      boinc_core_release_5_3_24

Rom    6 Mar 2006
    - Update localization Template
    
    locale/client/en_US
        BOINC Manager.mo
        BOINC Manager.po

David  6 Mar 2006
    - add db_dump_spec.xml to source tree (in sched/)
        and copy it when create new project
    - Core client: after read_global_prefs_override GUI RPC,
        request CPU reschedule (in case #CPUs changed)

    client/
        file_names.h
        gui_rpc_server_ops.C
    py/Boinc/
        setup_project.py
    sched/
        db_dump_spec.xml (new)

David  6 Mar 2006
    - boinc_cmd: add --read_global_prefs_override command

    lib/
        boinc_cmd.C

Rom    7 Mar 2006
    - Start the account manager wizard anytime their is an acct_mgr_url.xml
        file and no credentials.
        
    clientgui/
        MainFrame.cpp

David  7 Mar 2006
    - scheduler: add <master_url> element to reply
        (Lets clients check that they have the right project URL)
    - core client: if a project is suspended, and a scheduler RPC fails,
        clear the sched_rpc_pending flag so we don't keep retrying

    client/
        scheduler_op.C
    sched/
        sched_config.C,h
        server_types.C

David  7 Mar 2006
    - core client: print project URL in startup message
    - core client: is <master_url> is present in a scheduler reply,
        and it doesn't match project's master URL,
        print error messages advising detach/reattach.
        If there's another project with that URL,
        tell user to detach them both, since (in the BOINC Manager)
        there's no way to distinguish them.

    client/
        client_state.C
        scheduler_op.C,h

David  7 Mar 2006
    - don't allow attaching a project with same name as existing project

    client/
        cs_scheduler.C
        scheduler_op.C
    lib/
        error_numbers.C

Rom    7 Mar 2006
    - Bug Fix: Somewhere along the line, the code to store the account
        manager login name and password hash was removed from the source
        tree.  Put it back in.
        
    client/
        acct_mgr.C

Rom    7 Mar 2006
    - Bug Fix: Choose a password nit for account managers.
    
    clientgui/
        AccountInfoPage.cpp

Rom    6 Mar 2006 (HEAD)
    - Tag for 5.3.25 release, all platforms
      boinc_core_release_5_3_25

Rom    9 Mar 2006
    - Bug Fix: Don't display the minimum password length when a project
        has account creation disabled in the attach to project wizard.
    - Bug Fix: Hide the messages from server static box if there are
        no messages from the server to report.  Instead tell the user
        to check the messages tab.
    - Bug Fix: Make the next and back button go back to the account
        info page when an invalid username or password are used.
    - Bug Fix: Don't use Next and Back buttons in the Statistics view.
        Localizers need different text because of the changes in context.
    - Bug Fix: Don't allow an error message to be localized.
    - Bug Fix: Where possible use a safer string copy function. 
        Defence in depth and all that.
    
    client/
        acct_mgr.C
    clientgui/
        AccountInfoPage.cpp
        CompletionErrorPage.cpp
        hyperlink.cpp
        NotFoundPage.cpp
        ViewStatistics.cpp

David  9 Mar 2006
    - core client: generate a new host CPID only if we sent a nonzero host ID
        to the scheduler and it returned a (different) host ID

    client/
        cs_scheduler.C

David  9 Mar 2006
    - user web: minor fixes

    html/user/
        debug.php (removed)
        profile_search_action.php
        user_search_action.php

David  9 Mar 2006
    - Scheduler: avoid creating redundant host records.
        If a scheduler request has zero host ID but non-blank host CPID,
        see if there's a host record in the DB with that CPID;
        if so, pick the most recent (i.e. largest ID)
        and use it (rather than creating a new host record).

        This change means that when you detach/reattach to a project,
        you won't get a new host record.  Woo hoo!

    sched/
        handle_request.C

David  9 Mar 2006
    - core client: if change host CPID, do immediate notification
        only of projects managed via account manager

    client/
        cs_scheduler.C

Rom    11 Mar 2006
    Problem:  On Windows it seems like random crashes occur with
      the science application is trying to shutdown.

    Cause:  When a science application that supports graphics is
      running on Windows it is generally running with three threads.

        Worker: normally contains the science package and normally
          does the bulk of the memory allocations and de-allocations.

        Graphics: normally just reads what the worker thread has
          produced and displays it in a graphics window.  Memory
          allocations are normally handled on the stack or as
          global variables which are only used via the graphics
          thread.

        Timer: normally handles the IPC to and from the core client.

    When the quit request is received from the core client the timer
      thread would call exit which in turn would cause the C Runtime
      Library to clean up after itself before calling the ExitProcess
      Windows API which would actually stop the threads and exit the
      process.  The thread that calls ExitProcess causes the heaps to
      be freed before the other threads have been stopped.  The
      greater the number of allocations the longer the graphics and
      worker threads are left running and the greater the chance of 
      touching an address of memory that has been freed.

    Solution: Instead of calling exit call TerminateProcess. 
      TerminateProcess causes the OS to halt all executing threads at
      the same time and then starts the shutdown process for the
      process.

    api/
        boinc_api.C, .h
        windows_opengl.C

David  11 Mar 2006
    - Scheduler (see checkin of 9 Mar): When we use a host record
        based on host CPID (presumably because user detached/reattached)
        mark all in-progress results as over, client error.
        This prevents them from being resent.
        Avoid a situation where a result causes problems on a host,
        user detaches/reattaches to clear things up,
        and then the host gets sent the same result again.
        (from Bruce Allen)

    sched/
        handle_request.C
        transitioner.C

David  13 Mar 2006
    - change arg of boinc_init_options() from BOINC_OPTIONS&
        to BOINC_OPTIONS* (so you can call it from C)

    api/
        boinc_api.C,h
        graphics_lib.C

Walt   13 Mar 2006
    - Bug Fix: in boinc_exit(), all platforms, call fflush(NULL) so
      output buffers get flushed.  Moves the call outside the #ifdef.
    - Bug Fix: Account manager shouldn't be contacted if the network
        is suspended.  This affects the automatic (every hour)
        connections only.

    api/
        boinc_api.C
    client/
        client_state.C

Rom    14 Mar 2006 (HEAD)
    - Tag for 5.3.26 release, all platforms
      boinc_core_release_5_3_26

Charlie  14 Mar 2006
    - Fix compiler bug due to BOINC_OPTIONS* when using objective-C.

    api/
        boinc_api.h

Rom    14 Mar 2006
    - Bug Fix: Copy over the account manager url from the rpc to
        the global account manager structure so that the
        acct_mgr_url.xml file can be created.
        
    client/
        acct_mgr.C

David  15 Mar 2006
    - API: add boinc_get_fraction_done(): call this from graphics thread
        to get latest fraction done reported by worker thread.

    api/
        boinc_api.C,h

David  15 Mar 2006
    - core client: if an account manager RPC succeeds,
        do a scheduler RPC to a project that was attached via the AMS,
        in case the user updated preferences.
    - web RPC to set user info: make sure global and project
        preferences are valid XML
        (well, at least make sure they have start/end tags)

    client/
        acct_mgr.C
    html/user/
        am_set_info.php

Charlie  16 Mar 2006
    - Add typedef to BOINC_OPTIONS and BOINC_STATUS so boinc_get_status() 
        and boinc_init_options() declarations compile without errors 
        when using straight C and objective-C with GCC-4.0.

    api/
        boinc_api.h

Rom    16 Mar 2006
    - Bug Fix: If we detect a condition in which we really can't display
        graphics, then we should notify the GUI's that graphics are
        not enabled via the ACTIVE_TASK::write function.
        
    client/
        app.C
        client_state.C, .h

Bruce 16 March 2006
    - Make 'last-modified' and '<lastBuildDate>' entries in RSS feed
      correctly correspond to the last time the project_news.inc file
      was modified.

    html/
        user/
            sample_rss_main.php

Rom    16 Mar 2006
    - Bug Fix: Only allow the SENS Event Notification registration to
        happen on Windows 2000 machines or better.  This appears to
        resolve explorer crashing on Win9x machines during shutdown.
        
    clientlib/win/
        boinc_dll.cpp
        NetworkTracker.cpp

David  16 Mar 2006
    - scheduler: when mark a result as sent, make sure its
        server_state is what we expected (e.g. UNSENT).
        This guards against two scheduler instances trying to
        send the same result at about the same time.
        (from Bruce Allen)

    db/
        boinc_db.C,h
        db_base.C,h
    sched/
        sched_resend.C
        sched_send.C

Bruce 16 Mar 2006
    - missing return value in David's check-in

    db/
        boinc_db.C

David  17 Mar 2006
    - fix mysql_affected_rows() problem: needed to include mysql.h

    db/
        boinc_db.C
        db_base.C

Rom    17 Mar 2006
    - Bug Fix: Stackwalker was using printf's to describe errors during
        initialization, so I'm changing them to fprintf(stderr, "") style
        messages so we can at least get more information about the
        initialization error.
    - Bug Fix: In fixing the bug above I noticed that the code to
        load the dbghelp.dll library wasn't attempting to look
        in the BOINC installation folder for it when executing as part
        of the science applications.  Check in the BOINC installation
        directory first then fall back to the search path.
    - Bug Fix: Treat the about box bitmap the same as the wizard bitmaps
        which gets rid of the transparent whole where the BOINC splat
        logo should be.  The BBC and GridRepublic logos show up correctly
        but the BOINC splat logo doesn't want to be seen.  I'll take care
        of that in a following release.
        
    clientgui/
        DlgAbout.cpp
    lib/
        stackwalker_win.cpp

Rom    17 Mar 2006 (HEAD)
    - Tag for 5.3.27 release, all platforms
      boinc_core_release_5_3_27

Bruce 17 Mar 2006
    - Adding some logging for scheduler fixes from yesterday: log specific
      message saying when a result is unavilable because aonther scheduler
      instance grabbed it from under our hands.

    sched/
        sched_send.C
        sched_resend.C
        sched_locality.C

David  17 Mar 2006
    - compile fix (from James Drews)

    lib/
        gui_rpc_client_print.C

Rom    17 Mar 2006
    - Bug Fix: Allow generic read/write/execute for users in the user group
        for the shared installation type.
        
    win_build/installerv2
        BOINC.ism

David  17 Mar 2006
    - Add <prefs_mod_time> and <prefs_source_project> elements
        to account manager requests;
        tells the AMS what version of global prefs we have
    - Add optional <update/> tag in <account> elements
        of account manager replies.
        This tells the core client to do a scheduler RPC to the project.
        The account manager should set this when it has updated prefs
        and wants the core client to get them;
        put <update/> in the <account> element for one of
        the projects to which prefs were successfully sent.
    - Core client: remove code (from 15 Mar) that contacts a project
        after every successful AMS operation.

    client/
        acct_mgr.C,h
    doc/
        acct_mgt.php

Rom    17 Mar 2006
    - Bug Fix: If graphics have been disabled because the client configuration
        cannot handle them, then report back to the screensaver that graphics
        are not available instead of cycling through them.
        
        This also reduces the bug surface area for applications who are having
        problems with application graphics since it avoids spinning up the
        graphics window even though it cannot be seen.
        
    client/
        ss_logic.C

Bruce 20 Mar 2006
    - User web pages: outcome validate error was being reported as unknown.

    html/
        inc/
            result.inc

Charlie  20 Mar 2006
    - Add /Library/Receipts/BOINC.pkg to list of files to remove for uninstall.

    doc/
        mac_advanced.php
    mac_installer/
        GR-ReadMe.rtf
        ReadMe.rtf

David  20 Mar 2005
    - If a project's web site is turned off
        (i.e. if the stop_web file is present)
        the get_project_config.php script returns a ERR_PROJECT_DOWN error,
        so that the BOINC Manager's Attach Project Wizard
        will show a "project not available" message
        before asking for email/password

    html/user/
        get_project_config.php

Walt   20 Mar 2005
    - Bug fix: Fix issues with proxy authorization:
       -libcurl resends 'post' requests when negotiating authorization
        type with the proxy server, needed curl callback function to
        rewind the data.
       -add variables to NET_XFER to save proxy server authorization type.
        NET_XFER::auth_flag is BOOL, TRUE = proxy server uses authorization
        NET_XFER::auth_type: 0 = libcurl negotiates auth type
                            ~0 = authorization type libcurl used with proxy

    client/
        http_curl.C,h
        net_xfer_curl.C,h

Rom    21 Mar 2005
    - BOINC API: When an application is being aborted, dump the backtraces for
        the timer, worker, and graphics threads. (Windows Only)
        
        This helps with applications that are stuck in an endless loop for
          some reason.  We should no longer need to solicit users with debugging
          experience to track down these kinds of issues anymore.  When the
          user aborts the workunit the needed data should show up in stderr.
          From there the user can post a message in the forum and go on about
          their business.
        
    api/
        boinc_api.C
        graphics_impl.C
        windows_opengl.C
    lib/
        diagnostics.C, .h
        stackwalker_win.cpp, .h

Rom    21 Mar 2005
    - Move the structure out of the header into the .C file
    
    lib/
        diagnostics.C, .h

Walt  21 Mar 2005
    - Bug Fix: Don't use Range: header when resuming file uploads
    
    client/
        http_curl.C

Rom    21 Mar 2006 (HEAD)
    - Tag for 5.3.28 release, all platforms
      boinc_core_release_5_3_28

Rom    21 Mar 2006
    - Compile fix for Linux
    
    client/
        http_curl.C
        net_xfer_curl.C

Charlie  21 Mar 2006
    - Mac: fix compiler "unused variable" warning.
      Please remember to remove unused variables from source files 
      before checking them in.

    lib/
        diagnostics.C

David  22 Mar 2006
    - API: Added some code for drawing characters
        in a variety of fonts, sizes, textures etc.
        Also added font files;
        you'll need to bundle them with your application.
        See http://www.opengl.org//resources/code/samples/mjktips/TexFont/TexFont.html
        From Tolu Aina.
        
    api/
        texfont.c,h
        txf_util.C
        txf/
            *.txf

Rom    22 Mar 2006
    - Make moincmgr compile cleanly on Linux distro's where the
        wxWidget libraries only come in the Unicode flavor.
        From: Frank S. Thomas
        
    clientgui/
        AccountManagerProcessingPage.cpp
        AccountManagerPropertiesPage.cpp
        BOINCBaseView.cpp
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp
        DlgAbout.cpp
        MainDocument.cpp
        MainFrame.cpp
        ProjectProcessingPage.cpp
        ProjectPropertiesPage.cpp
        ProxyPage.cpp
        ValidateURL.cpp
        ViewMessages.cpp
        ViewProjects.cpp
        ViewResources.cpp
        ViewStatistics.cpp, .h
        ViewTransfers.cpp
        ViewWork.cpp
        WizardAccountManager.cpp

Rom    22 Mar 2006
    - Remove the TerminateProcess kludge and make it part of the default
        behavior.
        
    api/
        boinc_api.C, .h

Charlie  23 Mar 2006
    - Mac: Backtrace now always dumps all threads.  User abort calls 
    
    api/
        boinc_api.C
    lib/
        mac_backtrace.C

Rom    23 Mar 2006
    - Fix the boinc_exit(0) call when an abort happens to 
        boinc_exit(ERR_ABORTED_VIA_GUI).
    - Remove a duplicated class identifier so that the manager will
        with g++ 4.1
    - Bug Fix: Treat 301 and 302 http status codes as a
        get_project_config.php error so that the invalid project page
        comes up, instead of the unavailable page.
        
    api/
        boinc_api.C
    clientgui/
        BOINCTaskBar.h
        AccountManagerPropertiesPage.cpp
        ProjectPropertiesPage.cpp

David  23 Mar 2006
    - Core client: ignore <fraction_done>0</fraction_done> from apps.
        If an app is being restarted,
        and hasn't called boinc_fraction_done() yet,
        the fraction done will be reported as zero even
        though the actual fraction done is nonzero.

    client/
        app_control.C

David  23 Mar 2006
    - make_project:
        - allow use of .htaccess in cgi-bin
        - if --project_root is specified, put the key_dir there too
    (from Eric Myers)

    tools/
        make_project

Rom    23 Mar 2006
    - Bug Fix: Fix a COM initialization error within BOINC DLL.
    
    clientlib/lib/
        boinc_dll.cpp

Rom    23 Mar 2006
    - make_project:
        - Copy missing images
    (from Eric Myers)

    tools/
        make_project

Walt   23 Mar 2006
    - Bug Fix: Multiple load/unloads of boinc.dll messed up the
        idle detection routine.  Removed redundant load/free module
        code so dll is loaded once in beginning, unloaded at program
        end.
    
    client
        main.C
    client/win
        hostinfo_win.C

David  24 Mar 2006
    - Let team founders get lists of team members
        (including their email addresses) via XML RPC.
        The URL is PROJECT/team_email_list.php?teamid=X&account_key=Y&xml=1

        This feature lets cross-project teams more easily get their
        combined email-address list.
        It doesn't change BOINC's privacy policy;
        team founders could always get member email addresses.

    html/
        inc/
            xml.inc
        user/
            team_email_list.php

Walt   25 Mar 2006
    - Cleanup unused code left over from testing, adjust temporary
        buffer size so error messages don't overflow
    - BugFix: Fix couple of problems with boinc_cmd:
        --project command options 'suspend' and 'resume' shown as valid
          but they weren't being parsed.
        --file_transfer help text shows options in wrong order
    
    client
        main.C
    lib
        boinc_cmd.C

Rom    26 Mar 2006
    - BOINC API: OpenThread() doesn't exist on Win98 or Win95, so get the
        thread handle by way of DuplicateHandle() since GetCurrentThread()
        just returns a -2.
        
    api/
        boinc_api.C
        windows_opengl.C

Rom    26 Mar 2006
    - Bug Fix: Finish the implementation of the "Hide Graphics" button.
    - Bug Fix: Don't enable the "Copy selected message" button until at least
        one message is highlighted.
        
    client/
        gui_rpc_server_ops.C
    clientgui/
        MainDocument.cpp, .h
        ViewMessages.cpp
        ViewWork.cpp
    lib/
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C
    locale/client/en_US/
        BOINC Manager.mo, .po

Rom    26 Mar 2006
    - Bug Fix: Provide that little extra tid bit of information that might keep
        somebody from aborting a CPDN task when it is 70% complete and not over
        due.
        
    clientgui/
        ViewWork.cpp
    locale/client/en_US/
        BOINC Manager.mo, .po

Rom    26 Mar 2006
    - Bug Fix: Since we changed over to async connections the manager has been
        shutting down which ever client is was currently connected to.  So
        wait until we have successfully reconnected to the local BOINC client
        and verify we are connected to the local BOINC client before sending
        the quit command.
        
    clientgui/
        BOINCGUIApp.cpp
        MainDocument.cpp, .h

Rom    27 Mar 2006
    - Bug Fix: When choosing a default value for something, use a value that
        connot be confused with valid data otherwise you might overwrite valid
        default values setup during object creation.
        
    clientgui/
        BOINCListCtrl.cpp

Rom    27 Mar 2006
    - Bug Fix: Make sure that the thread that has caused an exception dumps
        it's callstack even if it didn't register itself to the diagnostics
        functions.
        
    lib/
        diagnostics.C

Walt   27 Mar 2006
    - Enable some CBOINCDialupManager functions for non MS-Windows platforms.
        As the auto-dialer doesn't work on these systems, just display a 
        notification box telling the user an Internet connection is needed.
        
    clientgui/
        MainFrame.cpp
        BOINCDialupManager.cpp

Walt   27 Mar 2006
    - Second half of CBOINCDialupManager changes

    clientgui/
        BOINCDialupManager.cpp, h
        Makefile.am

Rom    27 Mar 2006 (HEAD)
    - Tag for 5.3.29 release, all platforms
      boinc_core_release_5_3_29

Walt   28 Mar 2006
    - Bug Fix: 'Need Internet connection' message wasn't being displayed
        on non MS-Windows systems.  
       
    clientgui/
        MainFrame.cpp

Rom    28 Mar 2006
    - Bug Fix: On non-windows systems be sure to call the wxApp::Yield()
        function to process outstanding window messages when shutting
        down.  This should resolve the issue of CDocument::Poll() not being
        called on shutdown when a connection to the local BOINC client
        needs to be reestablished.
    - Bug Fix: Disable the 'Hide graphics' button for now.
        
    clientgui/
        BOINCGUIApp.cpp
        ViewWork.cpp

Walt   28 Mar 2006
    - Bug Fix: Use alert box for 'need Internet connection' message when
        manager window is hidden.
       
    clientgui/
        BOINCDialupManager.cpp

Rom    28 Mar 2006
    - Bug Fix: Try a different method to notify the local BOINC CC that it
        needs to shutdown on all platforms.
    - Bug Fix: Discard notification only events for platforms other than
        Windows until we can figure out a better way to display them.
        
    clientgui/
        BOINCGUIApp.cpp
        MainFrame.cpp

Charlie 28 Mar 2006
    - Mac: Fix compiler warnings.
    
    clientgui/
        BOINCDialupManager.cpp
        ViewWork.cpp

Walt   28 Mar 2006
    - Bug Fix: Show 'needs Internet connection' dialog only when the 
        manager is the foreground window.  Comment out the alert messages
        until they're implement in non-MS-Windows platforms
       
    clientgui/
        BOINCDialupManager.cpp

Rom    28 Mar 2006 (HEAD)
    - Tag for 5.3.30 release, all platforms
      boinc_core_release_5_3_30

Walt   28 Mar 2006
    - Bug Fix: Manager window always shows 'active' on MAC, so check
        whether application has the focus instead.
       
    clientgui/
        BOINCDialupManager.cpp

David  29 Mar 2006
    - boinc_cmd: fix
        boinc_cmd --project X resume
        and
        boinc_cmd --project X suspend
    - user web: RPC to get team membership:
        if account_key missing, show members but omit email addresses

    html/
        inc/
            xml.inc
        ops/
            mass_email.php
        user/
            team_email_list.php
    lib/
        boinc_cmd.C

David  30 Mar 2006
    - API: move code that uses GLUT character-drawing functions
        to a separate file (gutil_text.C).
        This makes it easier for apps to not include GLUT.
    - API: if you compile gutil.C with -DSANS_JPEGLIB,
        you won't get any calls to jpeglib functions.

    api/
        gutil.C
        gutil_text.C

Rom    30 Mar 2006
    - Make the SENS initialization code non fatal when an error
        occurs.
    - Change the Windows installer so that the DLLs that BOINC
        is dependant on are are contained in a seperate component
        that is always installed and removed duplicate references
        from the install type specific components.  This shrinks
        the install package by 2MB.
        
    clientlib/win/
        boinc_dll.cpp
    win_build/installerv2/
        BOINC.ism

David  30 Mar 2006
    - Core client: fix nasty crash bug.
        If a result had a lot of output files, its failure message
        (originating from X)
        could exceed 1024 chars.
        It gets passed up to show_message(),
        and is copied (by strcpy()) into a 1024-char buffer.  Crash!
        Fixed this by using strlcpy() instead.
    - Core client: return file errors in a std::string instead of char*
    - Core client: in generating XML descriptions of file failures,
        insert <error_message>X</error_message> elements
        only if there's a message.

    At some point we should replace char[N] with std::string
    everywhere in the code.
    Fix-size buffers are crashes waiting to happen.
    I wish you could sprintf() to a string.

    client/
        client_state.C
        client_types.C,h
        main.C

Rom    30 Mar 2006
    - Bug Fix: Initializing some of the dependant DLLs on Windows was
        causing us to bump up against the 30 second marker and making
        the service control manager think something was wrong and kill
        the BOINC service on boot.  I moved the bulk of the 
        initialization code to boinc_main_loop which is called by the
        service control manager when running as a service.  This change
        will keep this from happening in the future if we take on any more
        dependencies.
        
    client/
        main.C
    clientlib/win/
        BOINCSENSSink.cpp

Rom    30 Mar 2006 (HEAD)
    - Tag for 5.3.31 release, all platforms
      boinc_core_release_5_3_31

Charlie 30 Mar 2006
    - Mac: Fix "unused variable" compiler warning.
    - Mac: "Fix" bug 460: Mac OS X automatically puts a "Preferences" item 
      in the BOINC menu, but we don't use it so it was disabled.  This was 
      confusing some users, so hide (delete) this menu item.
    - Mac: add gutil_text.C to project.
      
    client/
        main.C
    clientgui/
        MainFrame.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  30 Mar 2006
    - API: move GLUT-related includes to a separate file,
        which is included only from files that need it.

    api/
        boinc_gl.h
        boinc_glut.h (new)
        gutil_text.C
        x_opengl.C

Eric    2 Apr 2006
    - Added stream memory bandwidth benchmark.  Still needs modifications 
      to timing logic and possibly changes to allow multiple threads or 
      processes.  This is not yet added to Makefiles or called from the code.

    client/
        stream.C (new)

David  3 Apr 2006
    - Add script to find results with no corresponding workunit

    html/ops/
        db_cleanse.php

Rom    3 Apr 2006
    - Bug Fix: When switching from any state to SS_STATUS_ENABLED make sure
        we set the ss_status back to SS_STATUS_ENABLED.
    - Bug Fix: Increase the screensaver polling frequency when the
        screensaver is set to anything other than SS_STATUS_ENABLED.  This
        makes the status messages disappear faster when the graphics app
        is started again.
    - Bug Fix: Right justify Work:Progress and Disk:Diskspace list view
        columns.
        
    client/
        ss_logic.C
    client/win/
        win_screensaver.cpp
    clientgui/
        ViewResources.cpp
        ViewWork.cpp

David  4 Apr 2006
    - back end: have the "dir_hier_path" script create the fanout directory
        if it's not there.

    tools/
        dir_hier_path.C

David  4 Apr 2006
    - Finish script to delete orphan results

    html/ops/
        db_cleanse.php

David  4 Apr 2006
    - core client: define a result's "computation deadline":
        it's report deadline minus network connect period
        and minus cpu scheduling period.
        Use this, rather than report deadline, in CPU scheduling.
    - take network connect period into account in deciding
        when results have to be reported

    (from John McLeod)

    client/
        client_types.C,h
        cpu_sched.C
        cs_scheduler.C

Rom    5 Apr 2006
    - Bug Fix: Set the AccountInfo.cpp control states before
        attempting to set the text for the controls.  Otherwise
        we'll see text that says 'choose a password' instead
        of 'password'.
        
    clientgui/
        AccountInfoPage.cpp

Charlie 5 Apr 2006
    - Mac: New shell script to sets up Mac to run BOINC Client as 
        a daemon / service.  Note: when running as a daemon, the 
        graphics (screensaver and "Show Graphics" button) work only 
        if BOINC's owner is the logged in user.
    - Added boinc_glut.h to XCode project.
        
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
        Make_BOINC_Service.sh (new)

Rom    5 Apr 2006
    - Bug Fix: Change the progress field to display xx.xxx% since
        some projects use that to debug looping issues.
    - Bug Fix: In the screensaver make sure that the foreground window
        is either a screensaver window or a BOINC application window.
        If another window is the foreground window, shutdown the
        screensaver.
        
    client/win
        win_screensaver.cpp
    clientgui/
        ViewWork.cpp

Rom    6 Apr 2006
    - Bug Fix: Add some text about connectivity problems to the proxy
        into page.
    - Bug Fix: Remove the code that was keeping the 'Not Found' page from
        going to the 'Account Info' page.
        
    clientgui/
        ProxyInfoPage.cpp
        WizardAccountManager.cpp
        WizardAttachProject.cpp

Rom    6 Apr 2006 (From Frank S. Thomas)
    - Bug Fix: Allow a connection request to reset a connection attempt
        to the local computer or another computer.
        
    clientgui/
        MainDocument.cpp

Rom    6 Apr 2006 (From Darrel Holz)
    - Bug Fix: Fix the Logo display for BOINC when not running as a branded
        client.
        
    clientgui/
        DlgAbout.cpp

Charlie 7 Apr 2006
    - Mac: Fix bug in shell script to sets up Mac to run BOINC Client as 
        a daemon / service.
        
    mac_build/
        Make_BOINC_Service.sh

David  7 Apr 2006
    - add graphics to sample app

    api/
        gutil.C
        txt_util.C
    apps/
        upper_case.C

Charlie 7 Apr 2006
    - Mac: If launching client as a daemon / service at system startup, retry 
       gethostbyname() for up to 10 seconds if needed, to allow system  
       support to become available.

    client/
        hostinfo_network.C

Rom    8 Apr 2006
    - Bug Fix: Make stackwalker more useful on Windows by dumping the function
        pointers and registers for each thread.  Cut away all the extra code.
        
    lib/
        diagnostics.C
        stackwalker_win.cpp, .h

Rom    9 Apr 2006
    - Bug Fix: Add a check to stackwalker so that if it detects it is running on
        Win9x it'll switch over to the Win9x compatible dbghelp.dll.  After
        checking it out, it doesn't require any changes to the stack walker code
        as it has the 64 bit function exports.  So all that was required was
        just changing which DLL was used to get the function pointers.
    - Bug Fix: Upgrade to the latest stable debugging tools from Microsoft.
    
    lib/
        stackwalker_win.cpp
    win_build/installerv2/redist/Windows/x86/
        dbghelp.dll
        dbghelp95.dll (Added)
        srcsrv.dll (Added)
        symsrv.dll (Added)

Rom    9 Apr 2006
    - Put the infrastructure in place to be able to use Symbol Servers.  This
        is just the basics.  Many details need to be worked out.
        
    lib/
        diagnostics.C, .h
        stackwalker_win.cpp, .h

Rom    10 Apr 2006
    - Bug Fix: Fix a crash condition where a result maybe in the list view but
        may have already been cycled out of the system.  There is a brief
        period of time where the result is being sent back to the scheduler and
        the user may switch back to the work tab where this crash would occur.
        
    clientgui/
        ViewWork.cpp

Rom    10 Apr 2006 (boinc_core_release_5_4)
    - Tag for 5.4.0 release, all platforms
      boinc_core_release_5_4

Charlie 10 Apr 2006
    - Extend Mac screensaver safety timer of 21 Feb 2006 to all platforms.
      (checked this in to both HEAD and boinc_core_release_5_4 branches.)
    
    client/
        app_graphics.C
        ss_logic.C
        app.C
        app.h

Charlie 11 Apr 2006
    - Changes to allow building upper_case application on Mac.
    
    api/
        texfont.c,h
        txf_util.C,h

David  11 Apr 2006
    - rename sample en.po so update won't overwrite project's file
        (from Eric Myers)
    - use "request" instead of "RPC" in user-visible messages

    html/languages/project_specific_translations/
        en.po (removed)
        sample_en.po (new)
    sched/
        handle_request.C

Rom    11 Apr 2006
    - Bug Fix: Account creation controls should be disabled for all
        account manager code paths, not just update.
    - Bug Fix: Extend the timeout for the graphics mode ack to 30
        seconds in the screensaver poll function to give LHC and
        CPDN more time to create and display their graphics window
        when going into screensaver mode.
    - Bug Fix: Add some extra logic to the screensaver to handle
        detection of idle user input without needing to be the
        active window.  If the science application window hasn't
        processed a window message for 5 seconds do an additional
        check to determine if any mouse or keyboard activity has
        been detected.  If activity has been detected, shutdown the
        screensaver system.
    - Bug Fix: Add a please wait message to the screensaver for
        applications that take a long time before they display
        their own graphics.
        
    client/
        ss_logic.C
    client/win/
        boinc_ss.h
        boinc_ss.rc
        win_screensaver.cpp, .h
    clientgui/
        AccountInfoPage.cpp

Eric K 12 Apr 2006
    - Changed some function defines to inlines (i.e. formerly "#define read
      _read" becomes "static inline read(...) {return read(...);})  These 
      defines were breaking some classes that had methods named read().
    - Altered boinc_fopen() to call _fsopen under _WIN32 with the sharing
      flags set to the most permissive value.  This may solve some of the
      virus scanner locking problems.
    - Fixed some problems with non-MSC compilers with diagnostics.[Ch]
    - Added checks for stdint.h and inttypes.h to configure.ac
    
    lib/
        boinc_win.h
        filesys.C
        diagnostics.[Ch]
        configure.ac

Rom    12 Apr 2006
    - Bug Fix: Fix a crash on Win9x when leaving the screensaver and
        password protection is enabled.
    - Bug Fix: Do not allow the Win9x password dialog to get stuck behind
        the main screensaver windows, otherwise the only thing you can do
        is reboot the machine.
    - Include the thread id with trace statements.
        
    client/win/
        win_screensaver.cpp, .h
    lib/
        diagnostics.C

David  13 Apr 2006
    - Add texfont stuff to API makefile
    - Unix graphics API: when looking for .so graphics file,
        if it's not a symlink file, prepend "./" to the name
        so that ldopen() will find it.
    - diagnostics: don't buffer stderr

    api/
        Makefile.am
        graphics_lib.C
        gutil.h
        texfont.h
    client/
        acct_setup.C
    html/user/
        edit_forum_preferences_action.php
    lib/
        diagnostics.C

David  13 Apr 2006
    - graphics API: in txf_load_fonts(),
        use boinc_resolve_filename() so that font files
        can be in the project dir

    api/
        txf_util.C

Rom    13 Apr 2006
    - Bug Fix: Adjust the startup sequence on Windows a bit so that the
        window doesn't flicker.  Another perk is that on startup the
        window won't display itself until it can fully deal with user
        input.
    - Define some basic data types for MINGW and CYGWIN
        
    clientgui/
        BOINCGUIApp.cpp
        MainFrame.cpp, .h
    lib/
        boinc_win.h

Rom    13 Apr 2006
    - Bug Fix: Fix a shutdown bug that was causing the manager to wait
        the full 10 seconds before closing itself.
        
    clientgui/
        BOINCGUIApp.cpp

Charlie 14 Apr 2006
    - Mac: OnShow() is not implemented in wxMac-2.6.2, so move code from 
      CMainFrame::OnShow() into new method CMainFrame::SetWindowDimensions(). 
      Call SetWindowDimensions() from CMainFrame::OnShow() and also from 
      Mac-only method CMainFrame::Show().
    - Mac: Fix compile errors due to xpm files.
    - Save main window dimensions on Hide so SaveState can write them even 
      if the window is hidden before application exit.
      
    clientgui/
        BOINCGUIApp.cpp
        MainFrame.cpp, .h

David  14 Apr 2006
    - Core client: change the way that application priority is set on Unix
        Old: fork/exec app, then setpriority(pid)
            PROBLEM: race condition.  When the app starts,
            it's initially at regular priority.
            If it immediately creates another process,
            the child process has regular priority
            (and continues to even after the app's priority is lowered).
        New: fork, lower priority, exec.
        (From Mike Fleetwood)

    apps/
        upper_case.C
    client/
        app_start.C

David  14 Apr 2006
    - User web: add Web RPC for setting forum preferences
        (repurpose existing script)

    html/user
        edit_forum_preferences_action.php

Rom    14 Apr 2006
    - Bug Fix: Apparently Windows and Mac message boxes by default have an OK
        button and Linux does not.  So add wxOK to all the alerts sent.
        
    clientgui/
        BOINCDialupManager.cpp
        MainFrame.cpp

Rom    15 Apr 2006
    - Enable proxy support to retrieve symbols from a web based symbol store.
    - Enable trace debugging for various components that the Windows debugging
        environment uses.  This only works with tools that can trap
        OutputDebugString based messages.  It is something we may support in
        a future release.  If dbghelp.dll or symsrv.dll ever use their
        callbacks, that output will be logged to stderr.txt
        
    lib/
        diagnostics.C
        stackwalker_win.cpp, .h

David  16 Apr 2006
    - core client: get rid of min_report_rpc_time

    client/
        client_types.C,h
        cs_scheduler.C

Rom    16 Apr 2006
    - Bug Fix: Add cache timestamps for project, task, transfers, statistics,
        and resources.
        
    clientgui/
        MainDocument.cpp, .h

Rom    16 Apr 2006
    - Bug Fix: Include file version informaton in the debugger module list
    
    lib/
        stackwalker_win.cpp

Charlie 17 Apr 2006
    - Mac bug fix: If window was never opened, window dimensions were never 
        read from preferences, so SaveState wrote bad values in preferences.
    - Mac: Don't customize name of BOINC Data directory for branding; change 
        "GridRepublic Manager" to "GridRepublic Desktop; make branding script 
        more robust if there is a space in any file or directory name or path.
    - Mac: Release scripts automatically update ReadMe version numbers.
    - Mac: clarify that upgrade warning from older versions applies only to 
        Intel Macs.
      
    clientgui/
        BOINCGUIApp.cpp
        MainFrame.cpp
    mac_installer/
        GR-ReadMe.rtf
        PostInstall.cpp
        preinstall
        ReadMe.rtf
        release_boinc.sh
        release_GridRepublic.sh
    doc/
        versions.inc

Rom    17 Apr 2006
    - Clean up the caching scheme used in the manager
    - Remove the message cache update for all tabs except
        the messages tab.
    - Remove the project update from the work tab.  Use a new flag being
        introduced to show if the project has been suspended via GUI.

    clientgui/
        MainDocument.cpp
        MainFrame.cpp
        ViewMessages.cpp
        ViewProjects.cpp
        ViewResources.cpp
        ViewStatistics.cpp
        ViewTransfers.cpp
        ViewWork.cpp

David  17 Apr 2006
    - get rid of the versions of xml_escape() and xml_unescape()
        that take std::string args.
        These are too inefficient.
    - boolean constant is "true", not "TRUE"

    client/
        client_types.C
    lib/
        app_ipc.C
        diagnostics.C
        parse.C,h
        proxy_info.C
    sched/
        db_dump.C
        db_purge.C
        server_types.C

David  17 Apr 2006
    - GUI RPC: add an optional <project_suspended_via_gui/>
        tag to <result> elements.
        This tells the Manager that the project is suspended
        without having to do a separate get_projects GUI RPC

    client/
        client_types.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Rom    17 Apr 2006
    - Use the boolean flag now defined in the result instead of
        looking it up in the project structure.
        
    clientgui/
        ViewWork.cpp

Walt   17 Apr 2006
    - Bug Fix: Fix a problem where it was passing the xml tag line
        instead of the string to xml_unescape.
        
    lib/
        proxy_info.C

Rom    18 Apr 2006
    - Bug Fix: Move the project_suspended_via_gui flag from the
        client state file write routine to the gui write routine.
        
    client/
        client_types.C

David  18 Apr 2006
    - make match_tag(), parse_int(), parse_double() into inlines
    - remove setlocale() calls from parse_int(), parse_double().
        Numbers in XML (including GUI RPCs) are always in standard format.
        Whoever writes XML (e.g. the Manager) must ensure this.

    lib/
        parse.C,h

David  18 Apr 2006
    - core client: better messages on network check
    - unix compile fix

    client/
        acct_setup.C
    lib/
        parse.h

Charlie 18 Apr 2006
    - Mac: Add texfont.C,h and txf_util.C,h to XCode project for building 
        graphics library; fix compiler warning.

    api/
        texfont.c,h
    clientgui/
        MainFrame.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  18 Apr 2006
    - if no physical network connection (gstate.need_physical_connection is set)
        then don't increment failure count for file transfers
        and scheduler RPCs.
        (avoid ending up with 2-week backoff when network is down for a while.)

    client/
        pers_file_xfer.C
        scheduler_op.C

David  18 Apr 2006
    - improve network-related messages
        Add error_msg field to NET_XFER.
        Put Curl error messages here; print them at a higher level,
        where we can give the context

    client/
        acct_setup.C
        net_xfer_curl.C,h
        scheduler_op.C

Rom    18 Apr 2006
    - Bug Fix: setlocale is needed in environments where the C runtime library
        will attempt to use the current locales' numerical formating rules to
        extract integer or floating point numbers.  The core client doesn't
        observe local formating rules and defaults to the "C" locale.  When
        parsing data from the CC be sure to flip the locale to "C" and return
        it when your done.
        
    lib/
        gui_rpc_client_ops.C

David  19 Apr 2006
    - scheduler: put \n after global and project prefs in reply message;
        otherwise, if those fields don't have \n,
        we end up with 2 elements on 1 line and it doesn't parse right.

    sched/
        server_types.C

Walt   19 Apr 2006
    - Code cleanup: remove duplicate calls to xml_unescape.
    - Bug Fix: Change HTTP redirect limit to 50
    - Bug Fix: Fix problems with socks5 proxys:
        - Auth negotiation is handled by libcurl, remove that from BOINC
        - Set connection timeouts to 20 seconds
          *NOTE* Using socks5 proxies will cause BOINC to block until a
          connection is made to the end server.  BOINC will 'lock up'
          until the connection attempt completes or times out.

    client/
        http_curl.C
    lib/
        proxy_info.C

Rom    19 Apr 2006
    - If an application hasn't initialized the diagnostics system, provide
        reasonable defaults and initialize it for them.  This only handles
        the boinc_init() and boinc_init_graphics() cases.
        
    api/
        boinc_api.C
        graphics_api.C
    lib/
        diagnostics.C, .h

Rom    19 Apr 2006
    - Update dependancies.
    
    curl/
        <various files>
    openssl/
        <various files>
    zlib/
        <various files>

Walt   20 Apr 2006
    - Enable network tracing when <net_xfer_debug> log_flag is set.
        Dumps libcurl info messages and http header information.
    
    client/
        http_curl.C,h

Rom    21 Apr 2006
    - Bug Fix: Fix the account lookup and get project config rpcs which
        I broke fixing the setlocale stuff.
        
    lib/
        gui_rpc_client_ops.C

David  21 Apr 2006
    - Slight philosophy change in deciding whether network
        communication is working
        (e.g. by checking a reference web site when an HTTP operation fails):
        the core client, not the Manager, is in charge of this.
    - Eliminate the lookup_website() and lookup_website_poll() GUI RPCs
    - Add a new possible return value to the "network_status" GUI RPC:
        3 means the client is currently trying to access a reference web site.
        Check back in a few seconds to see the outcome.

    client/
        acct_setup.C,h
        client_state.C
        gui_rpc_server_ops.C
        net_xfer_curl.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  21 Apr 2006
    - use an object constructor/destructor to do setlocale() stuff.
        Use char* instead of string (??)

        Coding style: never have the same lines of code appear over and over

    lib
        gui_rpc_client.h
        gui_rpc_client_ops.C

Walt   21 Apr 2006
    - Bug fix: When tracing network activity, increment trace_id when request
        is created.  All the trace records for that network operation will have
        the same request number.

    client/
        http_curl.C

David  21 Apr 2006
    - Kludge to make things work even when a project left out
        a </gui_url> tag in its GUI URL list.
    - comment out google/yahoo code in the BOINC Manager.
        Rom: please finish this job

    clientgui/
        AccountManagerPropertiesPage.cpp
        BOINCDialupManager.cpp
        ProjectPropertiesPage.cpp
    lib/
        gui_rpc_client_ops.C

Walt   22 Apr 2006
    - Bug fix: Don't use NTLM authorization for proxys.

    client/
        http_curl.C

David  23 Apr 2006
    - core client: add missing \n to error string for failed results

    client/
        client_state.C

Rom    24 Apr 2006
    - Bug Fix: Fix a connection to a remote machine bug.
    
    clientgui/
        MainDocument.h

Rom    25 Apr 2006
    - Bug Fix: Fix for missing includes.
    
    client/
        cpu_sched.C

Rom    25 Apr 2006
    - Bug Fix: PPM files need to be closed when we are finished using them
        or we'll experience a handle leak
    - Bug Fix: After drawing the PPM bitmap on an OpenGL surface, free the
        memory.

    api/
        gutil.C

Rom    25 Apr 2006
    - Bug Fix: Hide everything about a thread if it has been closed to
        prevent identity information being disclosed as part of the
        subject line.

    html/user/
        forum_thread.php

Walt   26 Apr 2006
    - Bug Fix: Save local copy of locale so it gets restored properly later.

    lib/
        gui_rpc_client.h

Charlie 27 Apr 2006
    -Mac: Change XCode project. build instructions and build scripts to use 
      curl-7.15.3 and to apply Walt's patch to curl-7.15.3/lib/url.c file.
      
    doc/
        mac_build.html
    mac_build/
        buildcurl.sh
        buildjpeg.sh
        setupForBOINC.sh
        HowToBuildBOINC_XCode.rtf
        boinc.xcodeproj/
            project.pbxproj

Rom    27 Apr 2006
    - Bug Fix: Create a BOINC Service shutdown custom action for the installer
        since the installer technology wants to wait until after it has found
        out which files are in use to shutdown the service.
        
    win_build/installerv2/redist/Windows/src/boinccas/
        CAShutdownBOINC.cpp, .h (Added)
    win_build/installerv2/redist/Windows/x86/
        boinccas95.dll
        boinccas.dll

Charlie 28 Apr 2006
    - Mac: Fix bug of 17 April creating BOINC Data directory.
    - Change shell script which sets up Mac to run BOINC Client as a
        daemon / service to launch BOINC only if BOINC Data directory
        exists.
    - Flush output of SetVersion and add Run Script phases to XCode project to 
        insure that updated info.plist file with correct version number is put 
        into the BOINC Manager, ScreenSaver, SystemMenu and PostInstall bundles.
        
    clientgui/
        BOINCGUIApp.cpp
        Mac/
            SetVersion.C
    mac_build/
        Make_BOINC_Service.sh
        boinc.xcodeproj/
            project.pbxproj

David  28 Apr 2006
    - create_work (both program and function):
        handle <command_line> element in WU template file
    - remove assert()

    client/
        cpu_sched.C
    html/inc/
        stats_sites.inc
    tools/
        backend_lib.C

David  28 Apr 2006
    - core client: if an input file has <generated_locally/> set,
        don't try to download it.
        This allows apps to use "initialization" files
        that are large and/or computationally expensive to generate.
        The app generates the file once,
        and it will be available (assuming <sticky/> is set)
        for subsequent workunits.

    client/
        app_start.C
        cs_apps.C
        cs_files.C

David  28 Apr 2006
    - back end: handle <generated_locally/> in WU file infos.
        There are for input files that are generated by the app.
        We don't need to generate MD5, list URLs, etc.
    - user web: enclose scheduler list in comments (from Roberto Virga)

    html/user/
        sample_index.php
    tools/
        backend_lib.C

Rom    28 Apr 2006 (by Frank S. Thomas)
    - Bug Fix: The shutdown procedure should be passing ANSI strings to
        the GUI RPC's instead of Unicode strings.
    - Bug Fix: Remove the --no-unicode flags from configure.ac when trying
        to determine which wxWidget libraries to use.
    
    /
        configure.ac
    clientgui/
        BOINCGUIApp.cpp

David  30 Apr 2006
    - API: add all_threads_cpu_time flag to BOINC_OPTIONS
        for applications that have more than one CPU-intensive thread.
        Measure the CPU time of whole process, not just worker thread.
    - Less insistent messages when client has worng URL for project

    api/
        boinc_api.C,h
    client/
        cs_scheduler.C
    lib/
        util.C,h

David  1 May 2006
    - Web RPC: return flag if user is founder of their team

    html/user/
        am_get_info.php

David  1 May 2006
    - API: win compile fix

    api/
        boinc_api.C

Rom    1 May 2006
    - Windows Runtime Debugger Update:
    
      New Features:
          1. Enumerates and dumps the backtraces for all threads within
             the process space.
          2. Monitors and records data sent to the debugger viewport via
             OutputDebugStringA and OutputDebugStringW
          3. Displays the thread id and process id within the output.
          4. Display the topmost window titles, class, processid, and
             thread id.
             
    api/
        boinc_api.C
        graphics_api.C
        windows_opengl.C
    clientgui/
        stdwx.h
    lib/
        boinc_win.h
        diagnostics.C, .h
        diagnostics_win.C (Added)
        stackwalker_imports.h (Added)
        stackwalker_win.cpp
    win_build/
        boinc_ss.vcproj
        boincmgr_curl.vcproj
        libboinc.vcproj

Charlie 1 May 2006
    - Mac: Fix bugs when linking with wxMac-2.6.3.
    
    clientgui/
        mac/
            MacSysMenu.cpp

Rom    1 May 2006
    - Add a commandline option to the screensaver to do a simple RPC
        so that we can trick the firewall packages into displaying
        a dialog asking for user approval before the real screensaver
        ever launches.
    - Fix the remaining issues with the Windows Runtime Debugger so
        that it can now trap DBGHELP.DLL and SYMSRV.DLL messages and
        log them as part of the crash.
    - Remove some extra verbose messages from stdout and stderr in
        the client library.
        
    client/win/
        win_screensaver.cpp
    clientlib/win/
        NetworkTracker.cpp
    lib/
        diagnostics.h
        diagnostics_win.C

Rom    2 May 2006
    - Have the BOINC Manager perform the screensaver test everytime
        is successfully makes a connection to the localhost core
        client.  It executes so fast it doesn't even show up in the
        process list and if the user ever switches firewall packages
        it'll at least prevent the machine from going into limbo
        when the screensaver is spposed to shutdown.
        
    clientgui/
        BOINCGUIApp.cpp, .h
        MainFrame.cpp

Rom    2 May 2006
    - Bug Fix: Calculate the page size after the OnChangedEvent is fired
        and then set the dialog size.  Should keep the wizard pages from
        clipping the text.
    - Bug Fix: Change the process execution code to use wxExecute since
        it is async.  If for some reason the old screensaver doesn't
        get replaced by setup, we don't want to block the main UI thread.
        
    clientgui/
        BOINCGUIApp.cpp
        wizardex.cpp

David  2 May 2006
    - feeder: change the way -allapps work, so that results
        from different apps alternate in shared memory.
        This ensures that when an RPC returns >1 result,
        they'll be for different apps.
        TODO: make the ratio configurable.
    - feeder: add -priority_order_create_time:
        enumerate results by increasing workunit create time
    - feeder: add -purge_stale X option: removes items that have been
        in shared memory more than X minutes.
    - scheduler: parse user project preference for elements
        of the form <app_id>N</app_id>.
        If any are found, only send the user work for those applications.

    TODO: document the above

    All the above from Kevin Reed of World Community Grid

    sched/
        feeder.C
        sched_send.C,h
        sched_shmem.h
        server_types.h
        show_shmem.C

David  2 May 2006
    - got the above checkin compiling on linux
    - server: removed all_apps arg to DB_WORK_ITEM::enumerate()
    - removed some unused code in client

    client/
        client_state.C
        client_types.h
    db/
        boinc_db.C,h
    sched/
        feeder.C
        handle_request.C
        sched_send.C

Walt   2 May 2006
    - Display HTTP status message or code when its not 1xx or 2xx.
    - Add a few more HTTP status messges to boincerror().

    client/
        net_xfer_curl.C
    lib/
        util.C

Rom    3 May 2006
    - Bug Fix: To keep the Mac from clipping text in the wizard
        increase the default width of a wizard page.  The width
        of each character is wider with the Mac fonts.
        
    clientgui/
        wizardex.cpp

David  3 May 2006
    - user web: add "previous 20" link to result list page
        (from Rytis Slatkevicius)
    - code formatting, comments

    api/
        x_opengl.C
    html/
        user/
            results.php
        inc/
            result.inc
    sched/
        feeder.C

Rom    4 May 2006
    - Bug Fix: Increase the WaitHint from 10 seconds to 30 seconds so
        the service mode install isn't so jumpy when it takes awhile
        to shutdown.
        
    client/win/
        win_service.cpp

Charlie 5 May 2006
    - Mac: Clean up build scripts for jpeg and curl.
    
    mac_build/
        buildcurl.sh
        buildjpeg.sh

David  5 May 2006
    - web user: fix typo
        (from David Braun)

    html/user/
        get_project_config.php

David  5 May 2006
    - GUI RPC sockets need to be close-on-exec
        (otherwise applications inherit them)
    - compile fix: change longs to ints

    client/
        gui_rpc_server.C
        net_xfer_curl.h

Rom    8 May 2006
    - Windows Runtime Debugger Update:
    
        1. ERR_NESTED_UNHANDLED_EXCEPTIONS no longer exist.
        2. Stack overflow conditions no longer cause the exception
             handling code to blow up.
             
        When a thread has an unhandled exception it stores the
          exception pointer record in the thread list, signals the
          unhandled exception monitor and then goes to sleep waiting
          on a mutex that it will never be and to aquire.
          
        If any other threads throw an unhandled exception they'll
          store their exception records and go to sleep.
          
        The unhandled exception monitor wakes up when signaled and
          suspends all the non-excempt threads and proceeds to dump
          all the information it has aquired on them to stderr.
          
    api/
        boinc_api.C
        windows_opengl.C
    lib/
        diagnostics.C, .h
        diagnostics_win.C, .h
        error_numbers.h
        stackwalker_win.cpp
        util.C

Charlie 8 May 2006
    - Mac: Add callback glutPassiveMotionFunc(mouse_move) to dismiss 
        screensaver on mouse move when no mouse button is pressed.
        
    api/
        x_opengl.C

Walt  8 May 2006
    - Bug fix:  DNS lookup when network was unavailable consumed all
         available CPU.  Fix limits times thru loop and adds a short
         sleep before breaking out of it.
        
    client/
        client_state.C

David  9 May 2006
    - Remove the constant MASTER_URL from html/project/project.inc.
        Instead, use the <master_url> element from config.xml.
    - PHP translation code: check for existence of last_compile_timer
        before getting its mod time (avoid error msg)
    - small fixes so the web site created by make_project
        doesn't have broken links and images
    - updates to sample front page
    - make_project: copy a few additional files (e.g. graphics, en.po)

    html/
        inc/
            email.inc
            translation.inc
            util.inc
        languages/translations/
            en.po
        project.sample/
            project.inc
        user/
            intro.php (removed)
            sample_index.php
    py/Boinc/
        setup_project.py
    tools/
        make_project

David  9 May 2006
    - core client: remove account mgr "already attached" message

    client/
        acct_mgr.C

Rom    10 May 2006
    - IsDebuggerPresent first appeared in the Win98 timeframe, dynamically
        link to it if it is there, otherwise assume that the debugger is not
        present.
        
    lib/
        diagnostics_win.C

Rom    10 May 2006
    - Make the capturing of debugger messages configurable via the registry.
        Some software that plays music and DVDs is a little to chatty and
        when we are capturing debugger output it causes the playback software
        to freak out and become unplayable.
        
    lib/
        diagnostics_win.C

Eric K    11 May 2006
    - (pthreads) Put a mutex around the cpu time calculation in
      boinc_worker_thread_cpu_time().  If called from multiple
      threads, this would occasionally report the wrong CPU time,
      which could cause applications to abort.
    - (unix) Added check of return value from getrusage() and retry on
      failure.
    - (WIN32) Added check of return value from timeSetEvent() and retry
      on failure.
    - (WIN32) Added timeKillEvent() calls to the boinc_exit() function
      ensure that timers are freed properly.
    - Added function boinc_timer_thread_active() function that apps can
      call to see if the timer thread was properly created.
    - Added function boinc_worker_timer() that application worker threads
      can call in their main loop.  This function will communicate with the
      core client if the timer thread was not created.
    - Added a dummy call to alloca() in LoadJPG to prevent failure of 
      setjmp/longjmp in the case that the frame pointer is optimized away.
      This should be done on all functions where setjmp is called because
      on some platforms longjmp will segfault if the frame pointer doesn't
      exist.  Some compilers aren't smart enough to know this.
    - (WIN32) Added code to the windows exception handler to allow it pass 
      exceptions to the standard C signal handlers in the case where the 
      signal handlers have been overridden.

    api/
        boinc_api.C
        boinc_api.h
        gutil.C
    lib/
        diagnostics_win.C

Rom    10 May 2006
    - Make the BOINC sample uppercase build again.
    
    api/
        gutil.C
    lib/
        boinc_win.h
        diagnostics_win.C

David  15 May 2006
    - make_project: copy example templates to templates/
    - removed lib/language* (not used)

    client/
        client_state.C,h
        file_names.h
    html/inc/
        news.inc
        stats_sites.inc
    lib/
        language.C,h (removed)
        Makefile.am
    py/Boinc/
        setup_project.py
    test/
        uc_result
    tools/
        create_work_example

Eric K    15 May 2006
    - Added check check for alloca.h and memory.h to configure.ac
    - Added check for alloca and _alloca to configure.ac
    - Structural change to boinc_worker_timer() to get rid of essentially
      empty if clause.
    - (WIN32) set_worker_timer() now checks that interrupt_count is incrementing
      before assuming success.
    - Added MINGW32 fix for missing alloca() define to gutil.C
    - Added MINGW32/Dev-C++ fix for missing fpreset() prototypes to boinc_win.h

    configure.ac
    api/
        boinc_api.C
        gutil.C
    lib/
        boinc_win.h
       
Rom    15 May 2006
    - Switch the setTimerEvent to using a thread.  setTimerEvent has to many
        restrictions on it which may cause deadlocks if violated.
        
    api/
        boinc_api.C

Charlie 16 May 2006
    - Mac: Fix a bug if name of default browser contains spaces.
        Remove obsolete files language.C,h from XCode project
    
    clientgui/
        hyperlink.cpp
    mac_build/
        Make_BOINC_Service.sh
        boinc.xcodeproj/
            project.pbxproj

Rom    15 May 2006
    - Bug Fix: Change the account not found window title to login failed.
    - Bug Fix: If a login call fails for an account manager turn off using
        cached credentials for the next login request.
    - Add a field to the host info structure called accelerators.  Right now
        it just contains the name of the video card(s) in the computer on
        Windows.  In the future it could also contain information such as
        if CrealSpeed, PCI-X math accelerator, is installed on the system.
    - Remove what is now dead code in the manager.
    
    client/win/
        hostinfo_win.cpp
    clientgui/
        AccountManagerProcessingPage.cpp
        AccountManagerPropertiesPage.cpp, .h
        NotFoundPage.cpp
        ProjectPropertiesPage.cpp, .h
    lib/
        hostinfo.C, .h

Rom    15 May 2006
    - Remove the old BOINC GUI app from the source tree.
    - Remove the old BOINC client lib from the source tree.
    
    client/
        file_names.C
        main.C
    cient/win/
        StdAfx.cpp, .h (Removed)
        boinc_dll.h (Removed)
        boinc_dll.rc (Removed)
        boinc_gui.h (Removed)
        boinc_gui.rc (Removed)
        win_idle_tracker.cpp, .h (Removed)
        win_idle_tracker.def (Removed)
        win_screensaver.cpp
        win_util.cpp, .h (Removed)
        wingui.cpp, .h (Removed)
        wingui_dialog.cpp, .h (Removed)
        wingui_listctrl.cpp, .h (Removed)
        wingui_mainwindow.cpp, .h (Removed)
        wingui_piectrl.cpp, .h (Removed)
        wingui_proxydlg.cpp, .h (Removed)
        wingui_sswindow.cpp, .h (Removed)
    lib/
        util.h
    win_build/
        boinc_gui.vcproj (Removed)

Rom    15 May 2006
    - Another two files that can be deleted.
    
    lib/
        exception.C, .h (Removed)

Rom    15 May 2006
    - Remove some more code that isn't currently used, if we need it
        it is still in the 5.2 and 5.4 branches.
        
    client/win/
        cpuid_tbl.cpp, .h (Removed)
        optBench.hpp (Removed)
        opt_x86.h (Removed)
        opt_x86cpu.cpp (Removed)
        optimize.hpp (Removed)

David  16 May 2006
    - remove references to exception.C,h
    - save stat data for 30 days, not 30 records

    client/
        app_graphics.C
        scheduler_op.C
        win/
            win_screensaver.cpp
    win_build/
        boinc_ss.vcproj
        libboinc.vcproj

Rom    16 May 2006
    - Manually perform memory leak detection since we now terminate the
        process before the memory leak detection stuff kicks in.
    - Cleanup used diagnostic resources when boinc_exit() is called.

    api/
        boinc_api.C
    lib/
        boinc_win.h
        diagnostics.C, .h
        diagnostics_win.C

Charlie 16 May 2006
    - Mac: Update XCode project, build instructions and build scripts 
        to use wxMac-2.6.3 instead of 2.6.2.
        Remove obsolete files exception.C,.h from XCode project.
    - Compile fix: don't #include <malloc.h> in stdwx.h if Mac.
    
    clientgui/
        stdwx.h
    mac_build/
        HowToBuildBOINC_XCode.rtf
        buildWxMac.sh
        setupForBOINC.sh
        boinc.xcodeproj/
            project.pbxproj

Rom    16 May 2006
    - Add a field to host info which contains CPU feature information.
    
    client/win/
        hostinfo_win.cpp
    lib/
        diagnostics_win.C
        hostinfo.C, .h

Rom    16 May 2006
    - Core client needs to still support Win95, so make the processor
        feature detection code work on Win95.
        
    client/win/
        hostinfo_win.cpp

Rom    16 May 2006
    - Bug Fix: When an application is running in standalone mode the missing
        init file should not cause the diagnostics_init() routine to return
        an error.
    - Bug Fix: Prevent the exception handling thread from stalling when the
        foreground window happens to be from its own process space.  If you
        were single stepping inside of a debugger then the process acted as
        though it was deadlocked since the debugger had suspended the other
        threads.
    - Bug Fix: Initialize the diagnostics library even thuogh an alternate
        entrypoint might have been used.
        
    api/
        graphics_api.C
    lib/
        diagnostics.C
        diagnostics_win.C

Rom    19 May 2006
    - Add a check for the FPU and add it to the capabilities list for a
        host.
    - Bug Fix: Change CreateThread calls to _beginthreadex calls in
        diagnostics_win.C to avoid having the CRT terminating a thread
        when it attempt to use fprintf or any other CRT function when
        memory is running really tight.
        
    client/win/
        hostinfo_win.cpp
    lib/
        diagnostics.h
        diagnostics_win.C

Rom    19 May 2006
    - Add the CPU flags for various flavors of *nix
    
    client/
        hostinfo_unix.C

David  21 May 2006
    - core client: change name of configuration file
        old name: log_flags.xml
        new name: cc_config.xml
            format:
                <cc_config>
                    <log_flags>
                        ...
                    </log_flags>
                    [ <save_stats_days>N</save_stats_days> ]
                </cc_config>
    - core client: limit on how many days of statistics to save
        is now configurable (see above)
    - user web: add "CPU usage limit" preference
        (soon to be implemented in client)
    - add wrapper program for existing binaries (not finished)

    apps/
        wrapper.C
        Makefile.am
    client/
        file_names.h
        log_flags.C,h
        main.C
        scheduler_op.C
    html/inc/
        prefs.inc
        stats_sites.inc

David 21 May 2006
    - core client: implement "CPU usage limit" preference
    - core client: print CPU scheduling messages only if
        "tasks" log flag is set
    - core client: mechanisms for suspending activities
        (idle, time-of-day, explicit control)
        affect only CPU, not network usage
    - Manager: fix garbled message about needing network connection

    client/
        app_control.C
        app_start.C
        client_state.C,h
        cs_apps.C
        cs_prefs.C
        log_flags.C
        main.C
    clientgui/
        BOINCDialupManager.cpp
    lib/
        prefs.C,h

Rom    21 May 2006
    - Translate the process and thread priorities into text.
    
    lib/
        diagnostics_win.C

David  21 May 2006
    - core client: move "dont_check_file_sizes" tag out of log flags
        section of config file

    client/
        cs_files.C
        log_flags.C,h

David  22 May 2006
    Support for Microsoft "symstore" mechanism,
    for getting symbols from a remote server:

    - core client: add "symstore" element to PROJECT.
        Parse this from scheduler reply file;
        store in client state file.
        Add to app info file that's passed to applications.
    - API: parse symstore from app init file
    - server: parse symstore URL from config file;
        include in scheduler reply

    client/
        app_start.C
        client_types.C,h
        scheduler_op.C
    lib/
        app_ipc.C,h
        hostinfo.h
    sched/
        sched_config.C,h
        server_types.C

Rom    22 May 2006
    - Add some additional logging to the unhandled exception filter
        initialization routine.
    - If the unhandled exception filter monitor hasn't been created
        for some reason don't even attempt to signal the thread to
        do anything just terminate the process with the exception
        code.  If more than one thread crashes at a time let the OS
        decide who wins the critical section.
        
    lib/
        diagnostics_win.C

David  22 May 2006
    - core client: fix logic error involving the
        "5 minutes of network after GUI RPC" thing.

    client/
        client_state.C

Bruce 23 May 2006
    - Make backend more robust, to prevent 'stuck' workunits. Now
      transitioner will not sent the transition_time to INT_MAX
      UNLESS a canonical result has been found.  Otherwise it is
      set to MAX(ten days, 1.5*delay_bound) in the future.  This
      ensures that the transition will 'see' the workunit again
      if no canonical result has been found.

    sched/
        transitioner.C

David  22 May 2006
    - Client: handle "<next_rpc_delay>" element in scheduler reply.
        This tells the client to do another scheduler RPC after X seconds.

    apps/
        wrapper.C
    client/
        client_types.C,h
        cs_scheduler.C
        scheduler_op.C,h

Rom    22 May 2006 (From Sebastian Masch)
    - Bug Fix: Keep the CPU capabilities string from growing without
        bound by initializing the string each time
        get_processor_capabilities() is called.
        
    client/win/
        hostinfo_win.cpp

Rom    23 May 2006
    - Dump process statistics and the time of a crash.
    - Add some more error logging to the diagnostics startup routines.
    
    lib/
        diagnostics_win.C

Bruce 24 May 2006
    - Adding a bit of logging to the scheduler to try and track down a
      bug that might have been introduced ~ March 11, which is marking
      some 'in progress' results as 'client error' and triggering
      the transitioner.
    - Have scheduler ignore some additional unrecognized tags in sched
      requests: cache_l[123] and cpu_caps.  These appear not to be
      anywhere in the source code tree or documented anywhere!!

    sched/
        handle_request.C
        server_types.C

Rom    24 May 2006
    - Provide a way for an application to specify its symstore even when
        the core client doesn't yet support symstores.
        
    lib/
        diagnostics.C, .h

David  24 May 2006
    - Implement a new XML parsing mechanism, consisting of functions
        get_tag(), get_int(), get_double(), and get_bool().
        These will correctly (and efficiently) parse
            <foo>X</foo>
        and
            <foo>
                X
            </foo>
        and
            <foo>

            X

            </foo>
        etc.
        It will parse
            <foo/>
        and
            <foo></foo>
        and
            <foo>

            </foo>
        identically.
        The python-generated XML (e.g. config.xml) is of the form
            <foo>
            X
            </foo>
        Currently the new code is used to parse config.xml.
        Eventually all XML parsing should be done this way.
    - User web: initialize cpu_usage_limit in prefs

    html/inc/
        prefs.inc
    lib/
        parse.C,h
    sched/
        sched_config.C,h

Rom    24 May 2006
    - Remove references to the MM Timer stuff.  A real thread is now used
        in its place.
    
    api/
        boinc_api.C

Rom    25 May 2006
    - Trap delay load exceptions and dump meaningful messages when a delay
        load dll fails to load.
        
      NOTE: At a minimum projects should flag GDI32.DLL, OPENGL32.DLL, and
        GLU32.DLL as delay load dlls.  If all goes well we'll see more
        meaningful messages when one of the system graphics dll's fail to
        load for whatever reason.  For those who are building their
        applications with Visual Studio you can detect the DLL load
        failure and just disable graphics for that instance of the
        application.
        
        0xC0000135 = STATUS_DLL_NOT_FOUND
        0xC0000139 = STATUS_ENTRYPOINT_NOT_FOUND
        0xC0000142 = STATUS_DLL_INIT_FAILED
        0xC0000143 = STATUS_MISSING_SYSTEMFILE
        
    lib/
        diagnostics_win.C, .h

David  25 May 2006
    - scheduler: add "next_rpc_delay" item to config file.
        This lets a project tell clients to reconnect after some interval.
        It's intended to support projects with tight delay bounds
        (e.g. a few minutes) and therefore need to control the rate
        of client requests.
        Currently the delay interval is specified in the config file.
        This is for testing.
        Ultimately we'll need a dynamic mechanism.
    - default cpu_usage_limit is 100, not 1

    lib/
        prefs.C
    sched/
        sched_config.C,h
        server_types.C

David  25 May 2006
    - core client: add optional <result_abort> and <result_abort_if_unstarted>
        elements to scheduler reply.
        Each is a list of result names.
        In the first case the results are aborted.
        In the second case the results are aborted if they
        haven't started computing yet.
        NOTE: the scheduler doesn't currently use these.
        But they're there in case we want them.
    - added RESULT_ABORTED status code and ERR_ABORTED_BY_PROJECT error number.
        This eliminates the kludge in which aborted results
        were classified as RESULT_COMPUTE_ERROR
    - core client: remove aborted_via_gui field from RESULT.
        Aborts are now always handled immediately,
        and recorded in the "state" and "exit_status" fields of RESULT.
    - Manager: changes to reflect the above

    client/
        app_start.C
        client_types.C,h
        cpu_sched.C
        cs_scheduler.C
        gui_rpc_server_ops.C
        scheduler_op.C,h
    clientgui/
        ViewWork.cpp
    html/inc/
        result.inc
    lib/
        error_numbers.h
        gui_rpc_client.h
        gui_rpc_client_ops.C
        result_state.h
        util.C

David  25 May 2006
    - compile fixes

    lib/
        gui_rpc_client.h
        gui_rpc_client_print.C

David  25 May 2006
    - fixes for result abort logic

    client/
        cs_apps.C
    clientgui/
        ViewWork.cpp

David  25 May 2006
    - scheduler: if client reports a result, and it currently has
        state = OVER and outcome != NO_REPLY,
        then don't change its state or process it further.
        (from Bruce Allen)

    sched/
        handle_request.C

David  26 May 2006
    - bug fix in new XML parser - wasn't stripping whitespace
        from single-line elements
    - scheduler: parse all elements, even unused ones

    lib/
        parse.C
    sched/
        sched_config.C

David  27 May 2006
    - Add "invitation code" mechanism for restricting account creation.
        See http://boinc.berkeley.edu/account_control.php
        From Eric Myers.
    - Remove "client_account_creation_disabled" config flag
        (it was temporary during transition to version 5 software)

    html/
        languages/translations/
            en.po
        user/
            create_account.php
            create_account_action.php
            create_account_form.php
            get_project_config.php

David  28 May 2006
    - Add account manager URL to APP_INIT_DATA structure
        (so that apps can see what acct mgr is being used, if they want)

    client/
        app_start.C
    lib/
        app_ipc.C,h

David  29 May 2006
    - Windows version of wrapper

    apps/
        wrapper.C

Rom    29 May 2006
    - Bug Fix: MinGW doesn't define RVA so define it.
    - Bug Fix: When building under something other than a Microsoft compiler
        comment out some of the thread naming code so that other compilers
        can be happy.  At some point we should revisit this as a project
        who builds with MinGW may need somebody to debug their application
        with the Debugging Tools for Windows which does understand the
        thread naming convention.
        
    lib/
        diagnostics_win.C, .h

Rom    29 May 2006
    - Bug Fix: Implemented the thread naming code for compilers that do not
        understand SEH exceptions.
        
    lib/
        diagnostics_win.C    

David  30 May 2006
    - Transitioner: check return value of process_result_template()
        (e.g. if upload certificate generation fails)
    - move wrapper.C to boinc_samples

    apps/
        Makefile.am
        wrapper.C (removed)
    tools/
        backend_lib.C

Rom    29 May 2006
    - Bug Fix: Wait until the exception monitor has finished initializing
        before finishing boinc_diagnostics_init() in case the very next thing
        the program does is throw an exception.
        
    lib/
        diagnostics_win.C    

David  31 May 2006
    - database code: the following functions
        DB_VALIDATOR_ITEM_SET::enumerate()
        DB_WORK_ITEM::enumerate()
        were using a left join on (workunit, result) or (result, workunit),
        then parsing the result in a way that would crash
        if only one item was present
        (e.g. if there's a WU without corresponding result, or vice-versa).

        Solution: replaced "left join" with a "natural join", i.e.
        select ... from workunit, result where ...

    db/
        boinc_db.C
    sched/
        sched_config.C

Bruce 31 May 2006

    - scheduler: do a better job of accepting results from host machines
      which may modify an EXISTING & OVER result in the database.

    - file_upload_handler: check for 'stop_upload' trigger file in the
      project root directory.  If so, return ERR_TRANSIENT to hosts which
      attempt uploads.  This is the equivalent of 'stop_sched' for the
      scheduler.  (Eric, you may want to check that this is FCGI compatible).

    db/
        boinc_db.C

    sched/
        handle_request.C
        file_upload_handler.C
        sched_config.C
 
David  31 May 2006
    - Server: new scheme for directory permissions.
        The scheme assumes that the 'apache' user belongs
        to the primary group of the project creator (say, 'boinc').
        The components are:
        1) make_project sets the permissions of various directories
            (upload, profiles, etc.)  to 02770 (set GID).
            This means that when apache creates a file or directory
            within that directory,
            it will be owned by group 'boinc'.
        2) The code that creates files and directories uses 0770 permissions,
            so by default nothing is world-accessible.

        This fixes a bug where directories and files created by apache
        (i.e. by the scheduler or file upload handler)
        are inaccessible to the project creator.
        (So that, e.g., the file deleter can't delete files)

        There are other schemes for handling this problem; see
        http://boinc.berkeley.edu/groups.php
        but this one is the best, IMHO.
    - scheduler: if store req/reply messages in files,
        put them in /tmp, not in cgi-bin/
    - document 'stop_upload'

    doc/
        groups.php (new)
        tool_start.php
    lib/
        filesys.C
    py/Boinc/
        setup_project.py
    sched/
        main.C
        sched_util.C
        

David  31 May 2006
    - Add new GUI RPC <get_cc_status>: returns
        1) network status (same as <network_status> RPC)
        2) flag saying whether a timer-driven account managaer RPC
            has returned a bad-password error
            (so Manager can notify user)
        ... any future status items will be added here
    - got rid of commented-out <lookup_website> RPC

    client/
        acct_mgr.C,h
        gui_rpc_server_ops.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Rom    1 June 2006
    - Bug Fix: boinc_finish() can be called from any thread, so do not
        close the handle to one of the potiential calling threads from it.
        
      NOTE: I haven't found any documentation that states what the expected
        behavior is for closing the handle to the actively running thread
        but I don't expect it to be good.
        
    api/
        boinc_api.C

Bruce 1 June 2006
    - scheduler: clearer messages to use if refusing to accept a result.
    - DB purger: make sleep interval a command line option (current 600
                 secs is still the default value).

    sched/
        db_purge.C
        handle_request.C

David  1 June 2006
    - Changes to account manager protocol,
        to allow account managers to directly manipulate global preferences:
        1) request message now includes <global_preferences> element,
            with current global preferences,
            and their source and mod time
        2) request message no longer includes <prefs_mod_time>
            and <prefs_source_project>;
            these items are in the new <global_preferences> element.
        3) reply message now includes optional <global_preferences> element.
            This should be sent only if prefs are newer
            than those in the request message.
        4) reply message now includes optional <host_venue> element.
            This determines what preferences set is used.

    client/
        acct_mgr.C,h
        client_state.h
        cs_prefs.C
        cs_scheduler.C

David  1 June 2006
    - wherever xml_escape() is used, make sure the output buffer
        is at least 6X the size of the input,
        since the largest expansion is X -> &#NNN;

        This is a kludge.
        We should switch to #defined buffer-size params,
        instead of having 256 and 2048 everywhere.
        Or we should use std::string everywhere.
        (but I don't think we can do this, because I've seen
        repeated performance problems and outright bugs with std::string).


    client/
        client_types.C
    db/
        boinc_db.C
    lib/
        app_ipc.C
        parse.C
        proxy_info.C
    sched/
        db_dump.C
        db_purge.C

David  1 June 2006
    - don't ignore global prefs override file when handling
        new prefs from a project (from Ian Hay)

    client/
        acct_mgr.C
        client_state.C,h
        cs_prefs.C

Charlie 1 June 2006
    - Mac: Fix "About BOINC" menu item in Dock when linking with wxMac-2.6.3.

    clientgui/
        BOINCTaskBar.cpp

David  2 June 2006
    - Code cleanup and logic fixes in general prefs code

    client/
        acct_mgr.C
        client_state.h
        cs_apps.C
        cs_prefs.C
        cs_scheduler.C

Bruce 3 June 2006
    - Transitioner: nasty bug in logging, wrong result id/name
    - Scheduler: clearer logging for debugging purposes
    - Scheduler: refuse to upload results if DB item is
      (1) over and (2) validate state init and (3) NOT file_delete==INIT.
    - Unix package: since BOINC manager now starts client, change message
      to user after install.

      (David, please bless addition of file_delete_state to SCHED_RESULT_ITEM.)

    db/
        boinc_db.C
        boinc_db.h
    sched/
        handle_request.C
        transitioner.C

Bruce 4 June 2006
    - HTML ops page: properly display queries containing '<' and '>'.
    - HTML ops page: close <head> tag in page head.

    html/
        ops/
            db_action.php
        inc/
            util_ops.php

David  4 June 2006
    - add "switcher" program (part of new sandbox scheme)

    client/
        Makefile.am
        app.C
        switcher.C (new)


Charlie 6 June 2006
    - Mac: New helper command-line application SetUpSecurity creates boinc_master 
        and boinc_project users and groups if needed.  When complete, this 
        application will also set users, groups and permissions of Manager, Client, 
        etc. to aid debugging during build / debug cycles.

    clientgui/
        mac/
            SetupSecurity.cpp (new)
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  6 June 2006
    - scheduler: if we think a host has detached
        (because of zero host ID but existing CPID)
        marks its in-progress results as NO_REPLY, not CLIENT_ERROR
    - scheduler: remove special handling for reported results
        that are OVER/CLIENT_ERROR
        (with above change, this shouldn't happen)
    - scheduler: if we can't attach to shared memory,
        return "Project encountered internal error" to client,
        not misleading "Project is temporarily shut down for maintenance"
    - shmem-related functions: call perror() on error
    - make_project: <show_results>, not <show_result>
    - my email address was hardwired in watchdog.php - ouch!

    db/
        boinc_db.h
    html/ops/
        watchdog.php
    lib/
        shmem.C
    py/Boinc/
        setup_project.py
    sched/
        handle_request.C
        main.C

David  6 June 2006
    - boinc_mkdir(): temporarily zero umask so that
        directories will always be group RW
        (from Dr. M.F. Somers)
    - Back end: add optional <dont_delete_batches> flag to config.xml.
        If set, the file deleter won't delete files for workunits
        or results with positive batch.
        Use this to preserve files until you're done looking at them
        (then do a SQL query that zeros or negates the batch
        numbers for that particular batch).
        See http://boinc.berkeley.edu/configuration.php

    client/
        client_state.C,h
        client_types.C
    lib/
        filesys.C
    sched/
        file_deleter.C
        sched_config.C,h

David  6 June 2006
    - Scheduler/file upload handler: added optional config.xml items
        <sched_debug_level> and <fuh_debug_level>
        for specifying log verbosity level for
        scheduler and file upload handler respectively
        (from Dr. M.F. Somers)

    sched/
        file_upload_handler.C
        main.C
        sched_config.C,h

Charlie 6 June 2006
    - Mac: Separate out main() from SetUpSecurity so it can be called either 
        standalone from XCode as well as from Installer, Manager or Core Client.
        CreateBOINCUsersAndGroups() sets default shell of users boinc_master 
        and boinc_project to /sbin/nologin to prevent a security hole by not 
        allowing these users to log in.  Make CreateBOINCUsersAndGroups() more 
        robust by retrying each step up to 5 times.
        Add code to call CreateBOINCUsersAndGroups() from installer.

    clientgui/
        mac/
            SecurityUtility.cpp (new)
            SetupSecurity.h (new)
            SetupSecurity.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        postinstall.cpp

Rom    7 June 2006
    - Finish implementing the BOINCINFO macro which will display trace type
        statements even in release builds when BOINC_INFOMSGS is defined as
        a preprocessor define.
    - Tag each of the control messages and graphics messages with the
        BOINCINFO macro so we can see what was going on when an application
        executes.
        
    api/
        boinc_api.C
        windows_opengl.C
    client/
        app_graphics.C
    lib/
        boinc_win.h
        diagnostics.C
        diagnostics_win.C

Charlie 7 June 2006
    - Mac: SetUpSecurity sets owner=boinc_master, group=boinc_master and 
        permissions of BOINC Manager bundle and its contents.  
        When run standalone (from XCode), it assists the development / debug 
        cycle by making everything group writable and adds logged in user 
        to group boinc_master.  When run from Installer, Manager or Client, 
        makes everything non-writable by owner, group and other for security.

    clientgui/
        mac/
            SecurityUtility.cpp
            SetupSecurity.h
            SetupSecurity.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  7 June 2006
    - make_work: allow multiple -wu_name arguments.
        Make_work will create copies of these WUs, cyclically

    sched/
        feeder.C
        make_work.C

Charlie 8 June 2006
    - Mac: SetUpSecurity sets owner, group and permissions of BOINC Data 
        directory.  Put short delays after each step to make it more robust.
    clientgui/
        mac/
            SecurityUtility.cpp
            SetupSecurity.h
            SetupSecurity.cpp

Rom    8 June 2006
    - Bug Fix: When the debugger fails to initialize do not attempt to use
        the other debugger functions.
    - Bug Fix: Display which functions are not found in dbghelp.dll when one
        or more are missing.
        
    lib/
        diagnostics_win.C
        stackwalker_win.cpp

David  8 June 2006
    - Add WU items (rsc_fpops_est, rsc_fpops_bound, rsc_memory_bound,
        rsc_disk_bound) to APP_INIT_DATA structure,
        so app can knows its own limitations
    - Added boinc_get_init_data_p(APP_INIT_DATA*),
        so that plain C apps can get this info

    api/
        boinc_api.C,h
    client/
        app_start.C
    html/inc/
        stats_sites.inc
    lib/
        app_ipc.C,h
        gui_rpc_client.h
    sched/
        sample_bitwise_validator.C

Rom    8 June 2006
    - Reduce the amount of duplicate error information when dbghelp.dll
        fails to be able to find references to symbolic information.
    - Bug Fix: Fix a sympath parsing issue that will freak out dbghelp.dll
        
    lib/
        stackwalker_win.cpp

Charlie 9 June 2006
    - Mac: Reorganize SetUpSecurity for better efficiency.  When run 
        standalone (from XCode), SetUpSecurity adds logged in user to 
        group boinc_project in addition to group boinc_master. Change 
        default shell of users boinc_master and boinc_project to 
        /usr/bin/false and set their home directory to /vars/empty; 
        these changes prevent these users from appearing in the Mac's 
        GUI login window.
    - Fix opening URLs in default browser with wxMac-2.6.3.
    - Fix compile error in macglutfix.m due to boinc_api.h declaration of 
        boinc_get_init_data_p().
    clientgui/
        mac/
            SetupSecurity.cpp
    api/
        boinc_api.h
    clientgui/
        hyperlink.cpp

Rom    9 June 2006
    - Bug Fix: After many many many weeks of hunting the 0xc000000d bug I
        finally hit it.  It appears that the timer thread was attempting
        to shutdown graphics while the graphics thread was still trying to
        render a frame.  The next call to an OpenGL function throws an
        exception.
        
        I had to use WinDBG because Visual Studio wouldn't attach to the
        process.
        
        Another interesting note, for some reason the Unhandled Exception
        Filter was triggered.  Maybe OpenGL installs its own filter?
        
        In anycase the solution is remove the graphics thread shutdown
        code.  It was only being used on Windows, and now that we are
        using TerminateProcess() all the threads will be halted and
        resources cleaned up which should include OpenGL.
        
    api/
        boinc_api.C, .h
        windows_opengl.C

David  9 June 2006
    - Core client: Linux bug fix.  New code to get CPU capabilities
        was appending rather than replacing.
        No check for buffer length.
        Eventually overflowed and crashed client.

        Notes:
            - Never use strncpy().
            - Never have the same block of code repeated several times
                (the \n stuff).
            - Remember these notes
    - Create all shared mem segs with 0660 protection
        (affects both server and client)

    client/
        hostinfo_unix.C
    lib/
        shmem.C

Bruce 9 June 2006
    - Sched code: move function into sched_util; useful for project
      validation.
    - Minor E@H specific change

    sched/
        handle_request.C
        sched_util.[hC]
        sched_locality.C

David  9 June 2006
    - Extended checkin-before-last to work for MIPS and Alpha also.
        Eliminated separate versions of parse_cpuinfo() (see 2nd Note above).
        MIPS/Alpha people: please verify that it still works

    client/
        hostinfo_unix.C

David  9 June 2006
    - First pass on reforming the validator framework.
        OLD: the documents made the task of creating a custom validator
            seem impossibly daunting.
        NEW: Defined two frameworks.
            - A "simple framework" lets you create a custom validator
            by supplying three simple functions:
                1) parse a result
                2) compare two parsed results
                3) free a parsed results
            This is based on the "generic_check_set()" code that
            Karl Chen wrote for the sample bitwise validator;
            I simplified this, got rid of the function pointers,
            and moved it to a separate file (validate_util2.C,h)
            - An "advanced framework" requires you to supply
                check_set() and check_pair() functions.
                This sounds simple, but actually is not; see
                http://boinc.berkeley.edu/validate_logic.txt
            Note: the check_set() function defined by the simple framework
            doesn't do everything the above spec says it should;
            I'll get back to that later.
    - added lookup_group() and associated error codes (for sandbox)

    lib/
        error_numbers.h
        util.C,h
    sched/
        Makefile.am
        handle_request.C
        sample_bitwise_validator.C
        sample_trivial_validator.C
        validate_util.C,h
        validate_util2.C,h (new)
        validator_placeholder.C

Charlie 9 June 2006
    - Changes for sandbox:
        Renamed global variable boinc_project_gid to g_boinc_project_gid.
        Change shared memory segment group to g_boinc_project_gid.
        Set umask to 002 in both client and manager so files are writable 
            by both user and group.
        Allow access to gui_rpc_auth.cfg by group boinc_master so authorized 
            administrator can create or modify it.
        
    client/
        app_start.C
        client_state.C,h
        client_types.C
        gui_rpc_server.C
        main.C
    clientgui/
        BOINCGUIApp.cpp
    lib/
        shmem.C,h

David  9 June 2006
    - Make boinc_project_id a field of CLIENT_STATE
    - Fix compile failuer when SANDBOX is not defined
    - Fix logic error in create_shmem()

    client/
        app_start.C
        client_state.C,h
    lib/
        shmem.C

Bruce 10 June 2006
    - When calling project-provided validator functions, populate the
      WU.rsc_fpops_est field. This can be useful in
      determining how much credit to assign, and preventing cheating.

    - file_deleter: if deleting antique files, follow links when
      finding the files.  This allows NFS mounting of the upload
      directory, pointed to by a symbolic link.

      DAVID: I was going to be a good guy and document this, but you
      forgot to check validate_simple.php and validate_advanced.php
      into CVS (:-).

      DAVID: your change to create_shmem() broke the sched build.
      Check my 'fix' to feeder.C to see if this is what you had
      intended.

      DAVID: config was not defined in validate_util.C ; I made
      it extern. Likewise for validate_util2.C.  Also messed up
      includes in latter file.

    sched/
        boinc_db.C
        feeder.C
        validate_util.C
        validate_util2.C
        file_deleter.C

David
    - tweaks

    sched/
        make_work.C
        validate_util.C,h
        validate_util2.C

Charlie 11 June 2006
    - Change g_boinc_project_gid to gstate.boinc_project_gid in 
      FILE_INFO::set_permissions().

    client/
       client_state.C

David  11 June 2006
    - more sandbox stuff, with #ifdef SANDBOX:
        - make projects/ and slots/ owned by boinc_projects
        - make link files owned by boinc_projects
    - add boinc_chown() function

    client/
        app_start.C
        file_names.C
    lib/
        app_ipc.C
        error_numberse.h
        filesys.C,h
        util.C

David  12 June 2006
    - Graphics API: change params of boinc_app_mouse_button()
        and boinc_app_mouse_move() from bool to int (for ANSI C compatibility)

    api/
        graphics_api.h
        static_graphics.C
        x_opengl.C

David  12 June 2006
    - User web: expand the list of message-board rules a bit
        (no ads, no trolling etc.)
        Link to a page that describes the moderation policy in more detail.
    - Add a page (not linked to anywhere) containing instructions for moderators.

    NOTE: the latter 2 pages are included as samples;
    you'll want to rename sample_X to X unless you need to customize it.

    html/
        inc/
            forum.inc
        user/
            sample_moderation.inc (new)
            sample_moderator_instructions.inc (new)

David  12 June 2006
    - API: get rid of boinc_timer_thread_active(), boinc_worker_timer():
        either we can create a timer thread, or the app doesn't run.

    api/
        boinc_api.C,h

David  12 June 2006
    - shuffle #ifdefs for ANSI C compile

    lib/
        filesys.h

Charlie 13 June 2006
    - more sandbox stuff, with #ifdef SANDBOX.
    - Mac: Add switcher to XCode project.
       Update SetUpSecurity to match latest protections spec.

    client/
        app_start.C
        client_types.C
        file_names.C
        gui_rpc_server.C
        main.C
    clientgui/
        BOINCGUIApp.cpp
        mac/
            SecurityUtility.cpp
            SetupSecurity.cpp,h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  13 June 2006
    - core client: don't check app disk usage more often than
        every 5 min (used to be 5*disk interval)
    - scheduler XML parsing code: handle XML comments
        (you can now have comments in config.xml)

    client/
        app_control.C
    lib/
        parse.C
    sched/
        sched_config.C

David  13 June 2006
    - Web RPC: fix bug where am_set_info.php wasn't correctly
        removing user from team when teamid=0

    html/
        inc/
            team.inc
        user/
            am_set_info.php
            team_quit_action.php

Rom    14 June 2006
    - Bug Fix: Fix crashing condition with Unicode BOINC Manager.
        (From Frank S. Thomas)
    - Reduce duplicate code in diagnostics.C.
    - Change screensaver logging mechinisms.

    client/win/
        win_screensaver.cpp
    clientgui/
        MainFrame.cpp
    lib/
        diagnostics.C, .h

Rom    14 June 2006
    - Reduce duplicate code in diagnostics.C.
    - Display the detected CPU capabilities for those who want to
        manually use an optimized application via app_info.xml

    client/
        client_state.C
    lib/
        diagnostics.C, .h

Charlie 14 June 2006
    - more sandbox stuff, with #ifdef SANDBOX:
        Change projects, slots directories to boinc_master:boinc_master 0775.
        Mac: I Manager creates BOINC Data directory set its permissions to 0575.
        Manager checks ownership and permissions; if incorrect it alerts user 
          and quits.
    
    client/
        check_security.C (new)
        file_names.C
    clientgui/
        BOINCGUIApp.cpp
        mac/
            SetupSecurity.cpp,h
    lib/
        util.h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    14 June 2006
    - Fix build break in diagnostics.C.

    lib/
        diagnostics.C

David  14 June 2006
    - core client: implement <copy_file/> property for output files
        (previously it was implemented for input files only).
        If present, move the file from slot directory
        to project directory when the result is done.

    client/
        app.h
        app_control.C
        app_start.C

Rom    14 June 2006
    - Bug Fix: Fix crashing condition with Unicode BOINC Manager.
        (From Frank S. Thomas)

    clientgui/
        ViewTransfers.cpp

David  14 June 2006
    - tools: dir_hier_path didn't work when the directory already existed.
        It would create a new directory with a garbage name.
    - tools: process_wu_template(): this wasn't passing through <copy_file/>.
        Changed it so that it copies any elements it doesn't recognize.

    sched/
        sched_util.C
    tools/
        backend_lib.C
        dir_hier_path.C

David  14 June 2006
    - core client: mark aborted results as ready to report
        (from John McLeod)

    client/
        client_state.C
        client_types.C
        hostinfo_unix.C

David  14 June 2006
    - Windows graphics API: if in screensaver mode,
        close on any input, even if control key is down

    api/
        windows_opengl.C

David  14 June 2006
    - core client: sanity check on read statefile:
        make sure two active tasks don't have the same slot

    client/
        app.C,h

Rom    15 June 2006
    - Remove the code block that mixes the forum rating restrictions with
        reporting abuse.
    - Add the moderators name to all outgoing moderation email
    - Add the email address that should be used for disputes with
        moderation.
        
    html/inc/
        email.inc
    html/user/
        forum_moderate_post_action.php
        forum_moderate_thread_action.php
        forum_report_post.php

Charlie 15 June 2006
    - Mac sandbox:
        - GDB can't attach to applications which are running as a diferent user 
            or group so it ignores the S_ISUID and S_ISGID permisison bits when 
            launching an application.  To work around this, the _DEBUG version 
            of both the Manager and Client use the current user and group, and 
            temporarily change the ownership of the BOINC Data hierarchy if 
            necessary.
        - Manager and Client call check_security(); deployment versions notify 
            the user and quit if they find a problem with ownership or permissions 
            of either the application or the BOINC Data.
        - Better setting of _DEBUG and __WXDEBUG__ in Manager and Client builds.
            
    client/
        check_security.C
        main.C
    clientgui/
        BOINCGUIApp.cpp
        mac/
            MacGUI.pch
            SecurityUtility.cpp
            SetupSecurity.cpp,h
    lib/
        util.h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Eric K 15 June 2006
    - The getrusage calls in util.C and boinc_api.C are now protected with the
      same pthread mutex.
    - Changed CPU time monitor to prevent CPU time from incrementing faster than
      real time.

    lib/
        util.[Ch]
    api/
        boinc_api.C


David  15 June 2006
    - New CPU scheduler: the highlights are:
        1) The implementation is better organized,
            and more or less conforms to the design document
            (http:/boinc.berkeley.edu/sched.php)
            In particular, the CPU scheduling policy (what should run)
            is separated from the enforcement policy (when to preempt).
        2) The enforcement policy delays preemption of tasks that haven't
            checkpointed recently, thus reducing wasted CPU time
            when apps are removed from memory on preemption.
        2) Instead of being either round-robin or EDF,
            the scheduling policy is now a hybrid:
            EDF for the projects that currently need it,
            weighted round-robin among the others if
            there additional CPUs available.
        (designed by John McLeod and me; implemented by John)
    - new log flag "cpu_sched_detail" for details on CPU scheduling

    client/
        app.C,h
        app_control.C
        app_start.C
        client_state.C,h
        client_types.C,h
        cpu_sched.C
        cs_apps.C
        cs_scheduler.C
        cs_statefile.C
        log_flags.C,h

Rom    16 June 2006 (HEAD)
    - Tag for 5.5.1 release, all platforms
      boinc_core_release_5_5_1

Charlie 16 June 2006
    - Mac sandbox: bug fixes

    client/
        check_security.C
        client_state.C
        file_names.C
        main.C
    clientgui/
        BOINCGUIApp.cpp
        mac/
            SetupSecurity.cpp
    lib/
        filesys.C
        
David  16 June 2006
    Core client code cleanup:
    - separate "decide whether to scheduler CPUs" from "schedule CPUs"
    - rr_misses_deadline() -> rr_simulation()
    - removed set_X arguments from rr_simulation()
    - removed RESULT::deadlines_missed, deadline_problem
    - running_task_sort_pred() not member function
    - fixed calculation of CPU shortfall

    client/
        client_state.C,h
        client_types.h
        cpu_sched.C
        cs_scheduler.C
        http_curl.C

David  16 June 2006
    - API: boinc_report_app_status(): don't access shmem if
        we're in standalone mode
    - Web RPC: lookup_account.php can be used to see if an account
        with given email exists (don't supply passwd_hash)

    api/
        boinc_api.C

David  16 June 2006
    - initial code for parsing /proc (linux)

    client/
        procinfo_unix.C


David  16 June 2006
    - Major revision to forum code
        (from Janus Kristensen)

        NOTE: this requires running the DB update in ops/db_update.php

    html/
        inc/
            cache.inc
            email.inc
            forum.inc
            forum_category.inc (new)
            forum_dbh.inc (new)
            forum_forum.inc (new)
            forum_mainfactory.inc (new)
            forum_moderators.inc
            forum_mysql_dbh.inc
            forum_post.inc (new)
            forum_std.inc (new)
            forum_thread.inc (new)
            forum_user.inc (new)
            text_transform.inc
        languages/translations/
            en.po
        ops/
            db_update.php
        user/
            edit_forum_preferences_action.php
            forum_edit.php
            forum_forum.php
            forum_index.php (new)
            forum_moderate_post.php
            forum_moderate_post_action.php
            forum_moderate_thread.php
            forum_moderate_thread_action.php
            forum_post.php
            forum_rate.php
            forum_reply.php
            forum_report_post.php
            forum_search.php (new)
            forum_search_action.php (new)
            forum_subscribe.php
            forum_thread.php
            forum_thread_status.php (new)
            forum_thread_vote.php (new)
            white.css

Charlie 16 June 2006
    - Mac sandbox: 
        - more debugging aids
        - add SWITCHER_DIR, SWITCHER_FILE_NAME

    client/
        check_security.C
        file_names.h
    clientgui/
        mac/
            SetupSecurity.cpp,h

Charlie 17 June 2006
    - Mac sandbox:
        - Fix bugs
        - ACTIVE_TASK::start launches project app via new switcher app
        - Client runs projects under different user and group boinc_project.
          
    client/
        app_start.C
        check_security.C
        switcher.C
    clientgui/
        BOINCGUIApp.cpp
        mac/
            SetupSecurity.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Bruce 17 June 2006
    - Scheduler: improve message to user if user running anonymous platform
      and project+app does not support it.

    sched/
        sched_locality.C

David  17 June 2006
    - core client: code cleanup (from John McLeod)

    client/
        client_state.h
        cpu_sched.C

Bruce 17 June 2006
    - Scheduler: populate sreq.host.credit_per_cpu_sec in case project wants
      to send different work to slow and fast hosts.  I'm experimenting with
      the use of this in the locality scheduler.

      (David: please check that the one-line change in handle_request.C is
      globally harmless.)

    sched/
        handle_request.C
        sched_locality.C (experimental code)

Matt 17 June 2006
    - User web:
        - If the flag <no_forum_rating/> is in config.xml,
            the rating +/- links don't show up under posts.
        - check in forum_rate.php to do the same check
            (and make sure people are trying to sneakily downrate posts
            without using the +/- links).
        - fixed a bug in email.inc where the moderator e-mail address
            wasn't showing up in "deleted post" e-mails.

    html/user
       forum_rate.php
    html/inc
       forum.inc
       email.inc

David  18 June 2006
    - Don't parse ACTIVE_TASK::scheduler_state from the state file.
        This isn't carried across runs of BOINC.
    - Remove ACTIVE_TASK_SET::restart_tasks() and CLIENT_STATE::restart_tasks():
        just let the CPU scheduler take care of starting tasks.
    - If file upload fails because file is missing, don't retry,
        and show appropriate error message

    client/
        app.C,h
        app_start.C
        client_state.C,h
        cs_apps.C

David  19 June 2006
    - core client: make cpu_sched_last_check into a static variable
        of possibly_schedule_cpus();
        restart CPU scheduling period on any reschedule
        (from JM7)
    - remove unused args, etc.

    client/
        client_state.C,h
        cpu_sched.C

David  19 June 2006
    - core client: remove CLIENT_STATE::handle_file_xfer_apps().
        Instead, handle this in CLIENT_STATE::update_results().
    - core client: rename RESULT::reset_files() to clear_uploaded_flags()

    client/
        client_state.C,h
        client_types.C,h
        cpu_sched.C
        cs_apps.C
    sched/
        update_stats.C

David  19 June 2006
    - core client: cleanup in CPU scheduling
        - move make_running_task_heap() into a function.
        - no NULLs in running_task_heap
        - renamed long vars to "deadlines_missed"
        - renamed running_task_sort_pred() to more_preemptable()
            Renamed args, to avoid calling left argument "rhs"
        - rewrote unreadably long if() clauses
        - changed deadlines_missed++ to --

        There's still considerable deviation between code and spec.
        This needs to be eliminated.

    client/
        client_state.h

Charlie 19 June 2006
    - Mac sandbox:
        - Better support for development
        - XCode sets BOINC Manager bundle to current user & group, sets 
          S_ISUID | S_ISGID bits for Client, S_ISGID bit for Manager.
        - ACTIVE_TASK::start launches project app via new switcher app
        - Client runs projects under different user and group boinc_project.
          
    client/
        check_security.C
    clientgui/
        mac/
            SetupSecurity.cpp,h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    19 June 2006 (HEAD)
    - Tag for 5.5.2 release, all platforms
      boinc_core_release_5_5_2

Charlie 20 June 2006
    - Mac: Fix build scripts to not set execute permissions bits inappropriately
    - Mac sandbox:
        - Add switcher directory and file to build scripts
        - Postinstall application changes for SANDBOX
        - Postinstall application adds BOINC Manager to login startup items for 
            all visible users, not just user currently logged in at install time.
        - Postinstall application deletes installer's package receipt to permit 
            running installer again.
        - DoPrivilegedExec uses pipe to determine when command completes.

    client/
        check_security.C
   clientgui/
        mac/
            SetupSecurity.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        release_boinc.sh
    release_GridRepublic.sh
        Postinstall.cpp

David  20 June 2006
    - Add "verify files on app start" option for projects that
        want to check MD5 and digital signatures of all relevant files
        each time an app is started
        (whether this provides any additional security is open to debate)
        1) on scheduler, config.xml file has optional
            <verify_files_on_app_start/> element
        2) this element is passed in scheduler reply messages
            and stored in client's client_state.xml file
        3) if flag is set, MD5s and/or digital signatures are checked
            on app startup (both initial and on resumption)
    - Core client: don't accept self-signed SSL certificates
    - Validator: changes to "simple framework" to handle
        transient errors correctly

    client/
        app_start.C
        client_state.C,h
        client_types.C,h
        cpu_sched.C
        cs_apps.C
        cs_files.C
        http_curl.C
        scheduler_op.C
    sched/
        sched_config.C,h
        server_types.h
        validate_util2.C

David  20 June 2006
    - Debug "verify files on app start" feature
        - ACTIVE_TASK::start(): call report_result_error()
            on any error condition; this puts the result in
            the correct state so that it won't get started again.
        - CLIENT_STATE::verify_input_files() returns int, not bool

    client/
        app_control.C
        app_start.C
        client_state.C,h
        cs_apps.C

David  20 June 2006
    - Manager: change menu item to "Attach to account manager"
        I think it's OK to use "attach" in connection
        with account managers as well as projects

    client/
        client_state.C
    clientgui/
        MainFrame.cpp

David  20 June 2006
    - core client: rename RESULT::runnable_soon() to nearly_runnable()
    - core client: small bug fix in CPU shortfall calculation

    client/
        client_types.C,h
        cpu_sched.C

David  20 June 2006
    - core client: it FILE_INFO for output file file has
        <gzip_when_done/> property, gzip it and append .gz to name

    client/
        client_types.C,h
        cs_apps.C

David  20 June 2006
    - debugged upload compression feature.
        I had to change semantics:
        the filename stays the same after it's compressed.
        Also: the MD5 and file size are those of the compressed file.

    client/
        client_types.C
        cs_apps.C
    win_build/
        boinc_cli_curl.vcproj

Charlie 20 June 2006
    - Fix a crash bug in the client (f.printf had fewer arguments than 
        called for in the format, so attempted access through a bad pointer.)
    - Fix another permissions typo
        
    client/
        cs_statefile.C
        file_names.C

Rom    20 June 2006 (HEAD)
    - Tag for 5.5.3 release, all platforms
      boinc_core_release_5_5_3

Charlie 21 June 2006
    - Mac sandbox:
        - Installer calls check_security() after creating users and groups  
            and setting owners and permissions for Manager, Client and data; 
            retries up to 5 times if error.
        - Installer script calls postinstall application twice with different 
            arguments, waits for first call to complete.
        - Manager and Client report unique error codes from check_security().

    client/
        check_security.C
        main.C
    clientgui/
        BOINCGUIApp.cpp
        mac/
            SetupSecurity.cpp,h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        postinstall
        postupgrade
        Postinstall.cpp

David  21 June 2006
    - core client: fix case where CPU scheduler preempts
        tasks it doesn't need to.
    - core client: code cleanup
        - move deadline messages to a separate function
        - reduce side-effects of make_running_task_heap()
        - improve names
    - file upload handler: don't complain about <gzip_when_done/> tag

    client/
        client_state.h
        cpu_sched.C
    sched/
        file_upload_handler.C

Milos  21 June 2006
    - Initial checkin on the simple GUI
    
    clientgui/
        sg_BoincSimpleGUI.cpp, .h (Added)
        sg_DlgPreferences.cpp, .h (Added)
        sg_ImageLoader.cpp, .h (Added)
        sg_SkinClass.cpp, .h (Added)
        sg_StatImageLoader.cpp, .h (Added)
    clientgui/common/
        wxFlatNotebook.cpp, .h (Added)
        wxFNBDropTarget.h (Added)
        wxAnimate.cpp (Added)

Rom    21 June 2006
    - Bug Fix: Two setup failure logs that were sent to me indicate that 
        the uninstall process didn't clean up the BOINC entry in the 
        service control manager.  Check, before attempting to shutdown, 
        BOINC to make sure it is executing or is capable of responding 
        to a ControlService event.    

    win_build/installerv2/redist/Windows/src/boinccas
        CAShutdownBOINC.cpp
        boinccas.rc

David  21 June 2006
    - update_stats: enumerate only users/hosts/teams for which
        expavg_credit > 0.1.
        This speeds up the DB query

    sched/
        update_stats.C

David  21 June 2006
    - core client: added "cpu_sched_debug" log flag;
        got rid of "cpu_sched_detail" and "sched_cpu_debug"
    - core client: added "ncpus" config option;
        if present, the core client will act as if there were N cpus
        (handy for debugging scheduler stuff)
    - core client: parse cc_config.xml with the new-style
        XML parsing functions (reduce restrictions on XML format)

    client/
        client_msgs.C,h
        cpu_sched.C
        cs_apps.C
        cs_scheduler.C
        log_flags.C,h
        time_stats.C

David  21 June 2006
    - core client: add some logging messages to rr_simulation()

    client/
        cpu_sched.C
        cs_scheduler.C

Rom    21 June 2006 (HEAD)
    - Tag for 5.5.4 release, all platforms
      boinc_core_release_5_5_4

Rom    21 June 2006
    - Bug Fix: Go one step further by ignoring the return value from
        ControlService.

    win_build/installerv2/redist/Windows/src/boinccas
        CAShutdownBOINC.cpp
        CAShutdownBOINCManager.cpp
        boinccas.rc
    win_build/installerv2/redist/Windows/x86
        boinccas95.dll
        boinccas.dll

Charlie 21 June 2006
    - Mac sandbox:
        - Fix installer problems creating user and groups on older Mac OS.
        - The following functions require an administrator password unless 
            the user is a member of group boinc_master: Attach to Project, 
             Detach from Project, Reset Project, Attach to Account Manager, 
             Detach from Account Manager, Update Account Manager, Abort 
             Task, Abort Transfer.
        - Fix compiler warning in client_types.C.
        - Define SANDBOX in XCode projects: Client, Manager, Installer.
        
    client/
        client_types.C
    clientgui/
        MainDocument.cpp,h
        MainFrame.cpp
        ViewProjects.cpp
        ViewTransfers.cpp
        ViewWork.cpp
        mac/
            Mac_GUI.cpp
            SetupSecurity.cpp
    mac_installer/
        PostInstall.cpp
    mac_build/
        boinc.xcodeproj/
            sproject.pbxproj
            
Walt   22 June 2006
    - Change additional includes for xlib.h directory from absolute
        to relative.

    win_build/
        boinc_cli_curl.vcproj

David  22 June 2006
    - core client: get rid of the SCOPE_MSG_LOG thing.  Too fancy.
        All messages are now generated using

        if (log_flags.X) {
            msg_printf(...);
        }

        All messages now appear in the BOINC Manager (if used) and in stdout.
        Changed things so messages are written only to stdout
        (not to both stderr and stdout)
    - core client: broke out scheduling-related messages into new flags:
        task
        cpu_sched
        cpu_sched_debug
        rr_simulation
        debt_debug
        work_fetch_debug

        also added new "unparsed_xml" flag
    - scheduler: 
        parse (but ignore) p_capabilities and accelerators in <host_info>

    client/
        *.C
        log_flags.h
    sched/
        server_types.C

David  22 June 2006
    - Fix Win bug where accelerators kept concatenating

    client/
        client_msgs.h
        win/
            hostinfo_win.cpp

Rom    22 June 2006
    - Check in the default certificate CA's so curl can use them.
    
    curl/
        ca-bundle.crt
    win_build/
        boinc_post_bld_rules.cmd
    win_build/installerv2/
        BOINC.ism

David  22 June 2006
    - added curl_easy_setopt(curlEasy, CURLOPT_CAINFO, "ca-bundle.crt"),
        which tells Curl where to find CA bundle.
        SSL to WCG now works.

    client/
        http_curl.C

David  22 June 2006
    - core client: parse all log flags (I forgot);
        print rr_simulation messages only if shortfall is nonzero
        (from John McLeod)
        
    client/
        cpu_sched.C
        log_flags.C

Charlie 22 June 2006
    - Mac sandbox:
        - Because memberd is available only on OS 10.4, do not call it 
            under OS 10.3.x and require logout after installation to 
            resynchronize group membership tables.
    
    clientgui/
        mac/
            SetupSecurity.cpp
            SetVersion.C
    mac_installer/
        PostInstall.cpp

Rom    23 June 2006
    - Hooked up the simple GUI into the overall manager infrastructure.
    
        NOTE: The manager now has dependancies on libpng and zlib to handle
          skin graphics.
        
        NOTE: This hasn't been tested on any platform other than Windows.
      
    clientgui/
        BOINCBaseFrame.cpp, .h (Added)
        BOINCDialupManager.cpp
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp
        Events.h
        MainDocument.cpp
        MainFrame.cpp, .h
        sg_BoincSimpleGUI.cpp, .h
        sg_DlgPreferences.cpp, .h
        sg_ImageLoader.cpp
        sg_SkinClass.cpp, .h
        sg_StatImageLoader.cpp, .h
        stdwx.h
    win_build/
        boincmgr_curl.vcproj

David  23 June 2006
    - core client: write messages on app checkpoint
        if task_debug log flag is set

    client/
        app-control.C
        log_flags.h

David  23 June 2006
    - core client:
        - fix bug in printing argv on task startup (Unix)
        - changed message: "misses deadline" -> "projected to miss deadline"
        - parse version in scheduler reply, and show it if log_flags.sched_ops
        - cpu_usage_limit must be in (0..1]

    client/
        app_start.C
        cpu_sched.C
        cs_apps.C
        cs_prefs.C
        cs_scheduler.C
        scheduler_op.C,h
    lib/
        prefs.C
        util.C

David  23 June 2006
    - core client: 
        - removed Apple-specific retry logic in get_local_network_info()
        - made get_local_network_info() a member of HOST_INFO
        - in 1-sec poll loop, if don't have a domain name,
            call get_local_network_info() again
            (on some systems, gethostbyname() takes a few minutes to work)

    client/
        client_state.C
        hostinfo_network.C
        hostinfo_unix.C
        win/
            hostinfo_win.cpp
    lib/
        hostinfo.h

Rom    23 June 2006
    - Move document initialization code to the base class so both GUI's can
        initialize the CC connection at startup.
    - Enable the inter-component alert system for the simple GUI.  Displays 
        dialogs if the GUI is open, otherwise display a ballon in the taskbar.
        
    clientgui/
        BOINCBaseFrame.cpp, .h
        MainFrame.cpp, .h
        sg_BoincSimpleGUI.cpp, .h

David  23 June 2006
    - core client: fiddle with messages

    client/
        client_state.C
        cpu_sched.C
        cs_scheduler.C
        gui_rpc_server.C

Rom    23 June 2006
    - Enable the dialup and idle tracking systems for the simple GUI.
        
    clientgui/
        BOINCBaseFrame.cpp, .h
        MainFrame.cpp, .h

Rom    23 June 2006
    - Enable the wizards for initial startups.
        
    clientgui/
        sg_BoincSimpleGUI.cpp.cpp, .h

Rom    23 June 2006
    - Rename MainFrame.cpp, .h to AdvancedFRrame.cpp, .h
    - Rename CMainFrame to CAdvancedFrame
    
    clientgui/
        AdvancedFrame.cpp, .h (Added)
        BOINCGUIApp.cpp
        MainFrame.cpp, .h (Removed)
        ViewMessages.cpp
        ViewProjects.cpp
        ViewStatistics.cpp
        ViewTransfers.cpp
        ViewWork.cpp
    win_build/
        boincmgr_curl.vcproj

Rom    23 June 2006
    - Remove deprecated files
    
    clientgui/
        DlgDialupCredentials.cpp, .h (Removed)

David  26 June 2006
    - API: removed boinc_using_cpu() and boinc_not_using_cpu().
        The client's CPU scheduler doesn't support apps
        switching back and forth, and is unlikely to in the near future.
        So it's misleading to have it in the API.
    - API/core client: added APP_INIT_DATA::resource_share_fraction.
        This tells an application its resource share relative
        to runnable projects (0..1).
    - core client: removed ACTIVE_TASK::non_cpu_intensive.

    api/
        boinc_api.C,h
    client/
        app.C,h
        app_control.C
        app_start.C
        cpu_sched.C
    lib/
        app_ipc.C,h

Walt   26 June 2006
    - Remove references to deprecated files DlgDialupCredentials.cpp, h.
    
    clientgui/
        BOINCDialupManager.cpp
        Makefile.am
    win_build
        boincmgr_curl.vcproj

David  26 June 2006
    - Propagate application "user friendly name"
        through scheduler RPC,
        into client state,
        and through GUI RPC to Manager

    client/
        client_types.C,h
        cs_files.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C
    sched/
        server_types.C

David  26 June 2006
    - Add support for "project files".
        These are files that are downloaded to all clients
        attached to that project,
        but are not associated with an app version, WU or result.
        Example: graphics files for use by the BOINC Manager.
    - Scheduling server: look for "project_files.xml" in project dir.
        If found, include it verbatim in scheduler replies.
        Intended to describe "project files"
    - core client: parse list of project files in scheduler reply
        or client state file.
        Create corresponding FILE_INFO and FILE_REF.
        Write list to client state file.
        When a project file finishes downloading,
        create link file(s) for it.

    client/
        client_types.C,h
        cs_account.C
        cs_statefile.C
        scheduler_op.C
    sched/
        main.C,h
        server_types.C,h

Charlie 27 June 2006
    - Mac sandbox:
        - Create wrapper "BOINC Installer" application, with installer 
          package inside its bundle.  Wrapper determines whether a logout 
          will be needed, sets installer package Info.plist file accordingly,
          and opens the package to launch the standard Mac installer.
          
    clientgui/
        mac/
            SetVersion.C
    mac_installer/
        Installer.cpp (new)
        PostInstall.cpp
        release_boinc.sh
        release_GridRepublic.sh
    mac_build/
        Installer-Info.plist
        PostInstall-Info.plist (new)
        boinc.xcodeproj/
            project.pbxproj


David  27 June 2006
    - core client: debug 'project files" feature
    - core client: bad message on HTTP file-not-found

    client/
        client_state.C
        client_types.C
        cs_statefile.C
        file_xfer.C

David  27 June 2006
    - core client: put stderr output in a CDATA block,
        so it doesn't break XML parsers if it has <

    client/
        client_state.C
        client_types.C
        proxy.C,h (removed)

David  27 June 2006
    - Add new GUI RPC get_simple_gui_info(): returns list
        of projects and active results.

    client/
        client_state.h
        cs_statefile.C
        gui_rpc_server_ops.C
    lib/
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C
        gui_rpc_client_print.C

Charlie 27 June 2006
    - Mac: update XCode project for changed files.
    
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
                
Rom    27 June 2006
    - Enable the Simple GUI only if the define SIMPLEGUI exists.
    
    clientgui/
        AdvancedFrame.cpp
        BOINCGUIApp.cpp, .h
        
Charlie 27 June 2006
    - Mac: Changes to compile Simple GUI.  (Mac and Linux 
        do not support colored backgrounds in menu items.)
    
    clientgui/
        BOINCGUIApp.cpp
        sg_StatImageLoader.cpp
        mac/
            MacSysMenu.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  27 June 2006
    - CPU sched fix (minutes*60)
        From John McLeod

    client/
        cpu_sched.C

David  27 June 2006
    - don't print errors for gethostbyname() failure

    client/
        hostinfo_network.C

Charlie 27 June 2006
    - Create branch boinc_core_release_5_6

Charlie 28 June 2006
    - Mac: Documentation changes for Mac sandbox.
        - Fix bug in GR release script.
    
    doc/
        mac_build.html
    mac_build/
        HowToBuildBOINC_XCode.rtf
    mac_installer/
        GR-ReadMe.rtf
        ReadMe.rtf
        release_GridRepublic.sh

Rom    28 June 2006
    - Hook up the simple gui info rpc to the document and populate
        existing data structures.
    - Create build configurations for building the simple GUI since
        it is now turned off by default.
    - When clearing out a gui rpc result structure, make sure the
        pointers are nulled out.
        
    clientgui/
        MainDocument.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C
    win_build/
        boinc.sln
        boinc_cli_curl.vcproj
        boinc_dll.vcproj
        boinc_ss.vcproj
        boinccmd.vcproj
        boincmgr_curl.vcproj
        libboinc.vcproj

David  28 June 2006
    - core client: remove the NET_XFER class.
        This represented a layer (asynch transfers to/from sockets)
        that doesn't exist anymore; Curl subsumes it.
        Anything still used in NET_XFER was moved to HTTP_OP.
        (from Carl Christensen)

    client/
        client_state.C,h
        cs_prefs.C
        http_curl.C,h
        net_stats.C,h
        net_xfer_curl.C,h (removed)
    win_build/
        boinc_cli_curl.vcproj

David  28 June 2006
    - core client: fix Unix build, and mild code cleanup:
        - removed HTTP_OP::do_file_io, io_done, and io_ready
            (not used anymore)
        - removed unused values of HTTP_STATE_*
        - removed extern decls from main.C (include .h file instead!)

    client/
        Makefile.am
        http_curl.C,h
        main.C

Rom    28 June 2006
    - Bug Fix: make sure the same frame is not initialized twice.
    
    clientgui/
        BOINCGUIApp.cpp

Charlie 28 June 2006
    - Mac: Documentation changes for Mac sandbox.
        - Fix bug in GR release script.
    
    doc/
        mac_build.html
    mac_build/
        HowToBuildBOINC_XCode.rtf
    mac_installer/
        GR-ReadMe.rtf
        ReadMe.rtf
        release_GridRepublic.sh

Charlie 29 June 2006
    - Mac: Mac sandbox fixes to run as non-admin user.
        - Set S_IXOTH permission for switcher application, 
            slot subdirectories, project subdirectories.
        - Add setprojectgrp helper application; use it instead 
            of chown to set files and directories to group 
            boinc_project.
    client/
        app_start.C
        check_security.C
        client_types.C
        file_names.C,h
        setprojectgrp.C (added)
        switcher.C
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh
    clientgui/
        mac/
            SetupSecurity.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  30 June 2006
    - fixes for Windows/cygwin compile
        (from Carlos Orellana)

    lib/
        crypt_prog.C
        filesys.C

David  30 June 2006
    - core client: ACTIVE_TASK::supports_graphics():
        return false if process isn't executing.
        (prevent GUI from showing "show graphics" button
        for results with no process, or suspended process)
    - core client: on Windows command-line, when you close the window,
        quit_client() gets called,
        but control never returns to boinc_main_loop(),
        so gstate.quit_activities() (and other cleanup stuff) isn't called,
        so apps don't exit.
        If you then start the core client again in the next 30 sec,
        and exit quickly, another copy of apps gets started,
        which waits to acquire slot lock, then decides it's in
        standalone mode and opens a graphics window!  Very confusing.

        I fixed this by moving all the cleanup code to a separate functions
        (finalize()) and calling this directly from quit_client().

        By the way, why is main.C such a toxic waste dump?

    client/
        app_graphics.C
        main.C

David  30 June 2006
    - message tweaks

    client/
        app.h
        client_state.C
        scheduler_op.C

Charlie 30 June 2006
    - Mac: Mac sandbox fixes:
        - Set, check nested slot and project directory permissions 
            recursively.
        - Make Switcher directory non-writable.
        - Update security documentation.
        - better handling of locale directories.
        - boinc_mkdir makes directories world-executable.
    - Bump version to 5.5.5 for release to alpha test.
    
    version.h
    client/
        check_security.C
        client_types.C
        file_names.C
     clientgui/
        mac/
            SetupSecurity.cpp
    doc/
        sandbox.php
    lib/
        filesys.C

Charlie 1 July 2006 (branch boinc_core_release_5_6)
    - Tag for 5.5.5 release, Macinitosh with sandbox only
      boinc_core_release_5_5_5

David  1 July 2006
    - user web: moved forum-related email functions to a new file;
        small bug fixes in forum moderation code
    - changed db/schema.sql to match new forum code
    - user web: html/project/project.inc must now have
        define("FORUM_MODERATION_EMAIL_USER_ID", "N")
        to specify who reports get sent to
        (the ID of an existing account)

    db/
        schema.sql
    html/
        inc/
            email.inc
            forum_email.inc (new)
        user/
            edit_forum_preferences_form.php
            forum_moderate_post_action.php
            forum_moderate_thread_action.php
            forum_post.php
            forum_reply.php
            forum_report_post.php

David  2 July 2006
    - AMS RPC: fix bug that incorrectly removed people from their team
        (found by Willy de Zutter)

    html/user/
        am_set_info.php

Charlie 3 July 2006
    - Mac: Mac sandbox: don't set S_ISUID bit for setprojectgrp helper 
        application.
        
    client/
        check_security.C
     clientgui/
        mac/
            SetupSecurity.cpp
    doc/
        sandbox.php

Charlie 3 July 2006
    - Mac: Fix compile error (add #include <sys/socket.h>" to http_curl.C).
    - Fix compiler warning
    - Merge XCode project changes for suimple gui and for sandbox.
    
    client/
        http_curl.C
    clientgui/
        AdvancedFrame.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 4 July 2006
    - Mac sandbox: Manager doesn't create BOINC Data directory if 
        it doesn't exist when using SANDBOX security.
        
    clientgui/
        BOINCGUIApp.cpp
        mac/
            SetupSecurity.cpp

Rom    5 July 2006
    - Add Suspend a Disconnect icons to the taskbar for when the client is
        snoozing and disconnected.
    - Refreshed Simple GUI
        
    clientgui/
        AdvancedFrame.cpp
        BOINCBaseFrame.cpp
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp, .h
        sg_BoincSimpleGUI.cpp, .h
        sg_StatImageLoader.cpp, .h
    clientgui/res/
        boincdisconnect.xpm (Added)
        boincsnooze.xpm (Added)
    clientgui/res/templates/
        icondisconnect.ico (Added)
        iconsnooze.ico (Added)

David  5 July 2006
    - server: added a PHP script for doing customized mass emails
        See http://boinc.berkeley.edu/mass_email.php
    - user web: project preferences: show privacy and venue items
        before project-specific preferences

    db/
        boinc_db.h
    html/
        inc/
            email.inc
            prefs.inc
        ops/
            mass_email_script.php (new)
        user/
            opt_out.php (new)
            prefs.php
            prefs_edit_form.php
            
Rom    5 July 2006
    - Bug fixes to previous check-in and code cleanup.

    clientgui/
        AdvancedFrame.cpp
        BOINCTaskBar.cpp, .h

David  5 July 2006
    - core client: fix bug where we write past the end of
        benchmark_desc array if ncpus increases
        (from Don Mullis)

    client/
        cs_benchmark.C

Charlie 6 July 2006
    - Mac sandbox: boinc_delete_file(), clean_out_dir(),  boinc_rmdir () 
        all call remove_project_owned_file_or_dir() which uses switcher
        helper application to remove subdirectories created & owned by 
        projects.
    - Add License (GPL) to source files where missing.

    client/
        check_security.C
        file_names.C,h
        setprojectgrp.C
        switcher.C
    lib/
        filesys.C,h
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh

Charlie 6 July 2006
    Mac: integrate task tray icon changes, fix compile errors.
    
    clientgui/
        BOINCGUIApp.cpp
        BOINCTaskBar.cpp,h
        mac/
            MacSysMenu.cpp,h

David  6 July 2006
    - server: added new result outcome CLIENT_DETACHED.
        When we get an RPC suggesting that the client
        has detached and reattached,
        we set its results to OVER and CLIENT_DETACHED.
        Results in this state are generally treated the same as NO_REPLY.
    - updated PHP functions to include the above;
        got rid of redundant functions

    db/
        boinc_db.h
    html/inc/
        db_ops.inc
        result.inc
    sched/
        handle_request.C
        transitioner.C

David  6 July 2006
    - core client: use fcntl() instead of lockf() or flock() to lock files.
        It's POSIX, hence more portable.
        (from Bruce Allen)

    configure.ac
    lib/
        filesys.C

David  6 July 2006
    - user web: in "allow email" form, show source address of emails
        so users can let them through spam filter

    html/inc/
        prefs.inc

Rom    7 July 2006
    - Only display the suspended icon in the taskbar if the activity runmode
        is set to never.
        
    clientgui/
        BOINCTaskBar.cpp

David  7 July 2006
    - tweaks and typos

    client/
        http_curl.C,h
        scheduler_op.C
    lib/
        gui_rpc_client.C
    py/Boinc/
        setup_project.py
    sched/
        sched_array.C
    sea/
        make-sea.sh

David  9 July 2006
    - core client: improved log message for debts

    client/
        cpu_sched.C

David  9 July 2006
    - core client: improve "RPC succeeded" message

    client/
        cs_scheduler.C
        scheduler_op.C

David  9 July 2006
    - core client: instead of calling compute_work_requests()
        every 5 seconds (in scheduler_rpc_poll()),
        call it at startup, and thereafter every 10 minutes or
        whenever something happens that could change work requests.
        (from John McLeod)

    client/
        client_state.C,h
        cpu_sched.C
        cs_apps.C
        cs_scheduler.C
        gui_rpc_server_ops.C
        scheduler_op.C

David  9 July 2006
    - core client: keep track of the "outages"
        (periods when BOINC hasn't run) in the last 60 days.
        This will be used in the work fetch policy.
        (from John McLeod)

    client
        time_stats.C,h

Matt 10 July 2006

    I did this already once, but for some reason the code got lost, so..
    - User web:
        - If the flag <no_forum_rating/> is in config.xml,
            the rating +/- links don't show up under posts.
        - check in forum_rate.php to do the same check
            (and make sure people are trying to sneakily downrate posts
            without using the +/- links).

    html/user
       forum_rate.php
    html/inc
       forum.inc

David  11 July 2006
    - Feeder: an option so that apps have a "weight" (floating-pt)
        that determines the proportions of work items inserted by the feeder.
        I.e. if app 1 has weight .5 and app 2 has weight 1.5,
        then we'll send 3 times as many results for app 2 as app 1
    - Feeder/scheduler: add an option "-reliable N":
        This tags work items whose workunits are older than N days
        as "need_reliable",
        so that the scheduler can try to send them to "reliable" hosts
        (those with expavg_credit > 70)
        In no case send a "need_reliable" result to a host
        with zero total credit.
    - Feeder, with homogeneous redundancy:
        when add a result with a sibling that's already sent
        (or on a collision, if we learn that this is the case)
        increment its infeasible_count.
        This causes it to be sent quicker.
        It's better to have the array full of results
        that are not already committed to a platform.
    - validator: add -sleep_interval cmdline arg
    - Add TRANSITIONER_ITEM::res_received_time
        (Nothing currently uses this - should we remove??)

    NOTE: this update requires a database change: see html/ops/db_update.php

    (from Kevin Reed)

    db/
        boinc_db.C,h
        schema.sql
    html/ops/
        db_update.php
    sched/
        feeder.C
        sched_array.C
        sched_send.C
        sched_shmem.C,h
        server_types.h
        show_shmem.C
        validator.C

David  11 July 2006
    - core client: fix bug where the first log flag in the
        list was getting skipped over.
        This was due to a design flaw in the new XML parsing code.
        To work around this, I changed the format of
        the cc_config.xml file so that options are
        enclosed in <options> ... </options>

    client/
        app.C
        cs_statefile.C
        log_flags.C,h
    lib/
        parse.C

Milos  11 July 2006
    - Simple GUI Refresh
    
    clientgui/
        sg_BoincSimpleGUI.cpp, .h
        sg_DlgPreferences.cpp, .h
        sg_ImageLoader.cpp, .h
        sg_SkinClass.cpp, .h
        sg_StatImageLoader.cpp, .h
        sg_ViewTabPage.cpp, .h (Added)

David  11 July 2006
    - core client, Windows: don't call finalize() in quit_client();
        quit_client() is run in a different thread, apparently,
        and we can't safely do anything in that thread.
        Instead, have it set a flag telling the main thread to exit,
        then do a sleep loop until the main thread has exited.
        (Windows... you gotta love it).

    client/
        main.C

Rom    12 July 2006
    - Bug Fix: Remove extra waiting loop for Win9x based platforms
        when shutting down a console window now that quit_client()
        does the waiting.
        
    client/
        main.C

David  12 July 2006
    - core client: fix bug where sym links for project files
        weren't getting written (missing fclose())
    - core client: fix crash on project detach
        (PROJECT object was being referenced after it was deleted)

    client/
        client_types.C
        gui_rpc_server_ops.C

David  12 July 2006
    - added a linux makefile for core client

    client/
        Makefile.linux (new)

David  12 July 2006
    - core client: fix bug that disabled work fetch
        (from John McLeod)

    client/
        cs_scheduler.C

David  12 July 2006
    - core client: work-fetch bug fixes
        (from John McLeod)

    client/
        Makefile.linux
        client_state.C,h
        cpu_sched.C
        cs_apps.C
        cs_scheduler.C

David  13 July 2006
    - core client: adjust_debts() returns if elapsed time < 1

    client/
        cpu_sched.C

David  13 July 2006
    - Change mass email script so that files are in html/ops/mass_email/,
        and HTML files are optional
    - compile fix

    html/ops/
        mass_email_script.php
    lib/
        filesys.h

David  13 July 2006
    - server: add script for doing "email reminders"
        to failed and lapsed user.
    - core client: fix bug where, if cc_config.xml is present
        but doesn't specify save_stats_days,
        it's zero (rather than the correct default of 30).
    - user web: remove SETI@home-specific text from translate.php

    client/
        log_flags.C
    html/
        ops/
            remind.php
        user/
            translate.php

David  14 July 2006
    - core client: clean up related to host venue and project preferences.
        Old: store host venue in account file,
            and use it when parsing account file
            to get the right venue-specific prefs.
            This is bad because the account file is not
            supposed to containt host-specific info,
            and the venue is host-specific.
        New: venue is stored in client state file, as part of project.
            On initial parse of account file, <venue> elements are skipped.
            Later, after client state file has been read,
            account files projects with non-empty host_venue
            are read again, this time looking for the selected
            <venue> element and ignoring the rest.
        Has this fixed any bugs?  Maybe yes, maybe no.
        But the logic is simpler now.

    client/
        client_state.C,h
        client_types.C,h
        cs_account.C
        cs_scheduler.C

David  17 July 2006
    - core client: close GUI RPC listening socket on exit

    client/
        client_state.C
        cs_apps.C
        gui_rpc_server.C,h
    sched/
        trickle_handler.C

David  17 July 2006
    - moved stuff related to network status out of CLIENT_STATE
        and into a new class, NET_STATUS.
        
    client/
        acct_setup.C
        client_state.C,h
        cs_account.C
        cs_scheduler.C
        gui_rpc_server_ops.C
        http_curl.C
        net_stats.C,h
        pers_file_xfer.C
        scheduler_ops.C
    lib/
        app_ipc.C

Charlie 17 July 2006
    - Fix lost changes from July 3 merge of simple gui and sandbox XCode projects.
    
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  17 July 2006
    - added function url_to_project_dir() in lib/ (for manager)
    - moved escape_project_url() from client/ to lib/

    client/
        file_names.C,h
    lib/
        app_ipc.h
        util.C,h

Charlie 17 July 2006
    - Mac: Disable "Show Graphics" button and screensaver graphics when 
        client running as a daemon (bug 119); show warning dialog if user 
        presses "Show Graphics" button during remote RPC (bug 517).
    - Mac: client sets gstate.executing_as_daemon if real user ID == 0 
        (i.e., if launched by root).  (Effective uid is boinc_master.)
    - Added SS_STATUS_DAEMONALLOWSNOGRAPHICS for daemon case; Mac 
        screensaver shows different message for daemon case.
    
    client/
        client_state.C
        main.C
        ss_logic.C,h
    clientgui/
        ViewWork.cpp
        /mac/
            mac_saver_module.cpp
    lib/
        gui_rpc_client.h

Charlie 18 July 2006
    - Mac: If /Library/StartupItems/boinc/boinc is present to run Client 
        as a daemon, Manager waits up to 10 seconds for daemon to launch.
        - Improve shell script for setting up Mac to run BOINC Client as 
            a daemon: add support for stop function.
    
    clientgui/
        BOINCGUIApp.cpp
    mac_build/
        Make_BOINC_Service.sh

David  18 July 2006
    - admin web: removed links to update_*.php scripts.
        These should be run as periodic tasks.
        Also, they are intended to run as the admin user, not as Apache.

    html/
        inc/
            stats_sites.inc
        ops/
            index.php

David  18 July 2006
    - added scripts to convert to and from the ownership/protection
        used by the new sandboxing system (Unix)

    sea/
        insecure.sh
        secure.sh

Charlie 18 July 2006
    - If bind fails, display errno on non_Win32 systems instead of -1.
    
    client/
        gui_rpc_server.C

Charlie 19 July 2006
    -Mac: PostInstall.app repeatedly attempts to bind to BOINC RPC socket 
        address as user boinc_master until the address becomes available, 
        so BOINC Client will run properly when launched after installation.
        - Fix XCode project script phases which were copying wrong info.plist 
            files into PostInstall.app.
        - If creating users and/or groups on OS < 10.3.9, installer requires 
            a system restart.

    mac_installer/
        Installer.cpp
        PostInstall.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  19 July 2006
    - make test_uc.py work again:
        - request work fetch when master URL fetch completed
        - set CGI and file upload handler debugging mode in test
        - use cc_config.xml instead of log_flags.xml
        - use min_sendwork_interval = 0 if test
    - added some work fetch messages
    - core client: only do "platform change" logic
        if there was an original platform

    client/
        client_state.C
        cs_scheduler.C
        scheduler_op.C
    py/Boinc/
        setup_project.py
    test/
        cc_config.xml (new)
        log_flags.xml (removed)
        testbase.py

Charlie 20 July 2006
    - Mac: Reverse change of 8 May 2006: remove mouse_move() routine and callback 
        glutPassiveMotionFunc(mouse_move).  This did not help screensaver on OS 
        10.3.x Macs respond to mouse moves, but did cause a confilct with Wacom 
        tablet drivers (screensaver graphics quit immediately on starting.)
        
    api/
        x_opengl.C

Bruce 20 July 2006
    - On-line scheduler logs (readable by project participants): increase the
      efficiency of the script that produces these log files by eliminating
      un-necessary grepping of cgi.log.0

    tools/
        makelog.sh

David  20 July 2006
    - Added sample files for mass emails and reminder emails

    html/ops/
        mass_email_script.php
        remind.php
        mass_email/
            sample_current_html
            sample_current_subject
            sample_current_text
            sample_failed_html
            sample_failed_subject
            sample_failed_text
            sample_lapsed_html
            sample_lapsed_subject
            sample_lapsed_text
        remind_email/
            sample_failed_html
            sample_failed_subject
            sample_failed_text
            sample_lapsed_html
            sample_lapsed_subject
            sample_lapsed_text

David  20 July 2006
    - core client: added "app_msg_debug" log flag.
        Shows you shared-memory messages from apps

    client/
        app_control.C
        log_flags.C,h

David  20 July 2006
    - core client: fix crash if client state file has
        <project_files> for a project with no account file.
        Also shuffled logic of state file parsing to reduce indentation

    client/
        cs_statefile.C

David  20 July 2006
    - core client: fix crash if use <guirpc_debug/> flag,
        and some GUI RPC reply is long (> 8K chars)

    client/
        gui_rpc_server_ops.C

Rom    20 July 2006
    - Fix build break in the simple GUI when building for the Mac.  Using itoa
        is overkill anyway.
        
    clientgui/
        sg_ViewTabPage.cpp

Rom    20 July 2006
    - Enabled all warnings for the Visual Studio compiler.  It currently displayes
        200 warning across the BOINC client package.
        
    win_build/
        boinc_cli_curl.vcproj
        boinc_dll.vcproj
        boinc_ss.vcproj
        boinccmd.vcproj
        boincmgr_curl.vcproj
        libboinc.vcproj

Charlie 21 July 2006
    -Mac: Update HEAD branch XCode Project to include seven new files for Simple 
        GUI.

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    21 July 2006
    - Change document work function prototypes to be view agnostic.
    - Fix numerious warnings in the manager. Down to 50 from 120.
    
    clientgui/
        AccountInfoPage.cpp
        AccountKeyPage.cpp
        AccountManagerInfoPage.cpp
        AccountManagerProcessingPage.cpp
        AccountManagerPropertiesPage.cpp
        AdvancedFrame.cpp
        AlreadyAttachedPage.cpp
        AlreadyExistsPage.cpp
        BOINCBaseFrame.cpp
        BOINCBaseWizard.cpp
        BOINCGUIApp.cpp
        BOINCTaskBar.cpp
        CompletionErrorPage.cpp
        CompletionPage.cpp
        DlgSelectComputer.cpp
        MainDocument.cpp, .h
        NoInternetConnectionPage.cpp
        NotDetectedPage.cpp
        NotFoundPage.cpp
        ProjectInfoPage.cpp
        ProjectProcessingPage.cpp
        ProjectPropertiesPage.cpp
        ProxyInfoPage.cpp
        ProxyPage.cpp
        sg_BoincSimpleGUI.cpp
        sg_DlgPreferences.cpp
        sg_ImageLoader.cpp
        sg_StatImageLoader.cpp
        sg_ViewTabPage.cpp, .h
        UnavailablePage.cpp
        ValidateURL.cpp
        ViewProjects.cpp
        ViewResources.cpp
        ViewTransfers.cpp
        ViewWork.cpp, .h
        WelcomePage.cpp
        WizardAccountManager.cpp
        WizardAttachProject.cpp
    lib/
        gui_rpc_client.C


Rom    21 July 2006
    - Bug Fix for Linux: On some linux distro's a mime type database is detected and
        has an entry to a browser that isn't even installed on the system.  When a
        participant clicks on a link or button that would normally open a browser
        nothing happens.  Our message box isn't even displayed since an entry existed
        in the mime types database.
        
      Try to actually execute the browser commandline to determine if the mime type
        database is correct.  If that throws an error check to see if BROWSER is
        defined as an envitronment variable, since that is the next closest thing
        to a standard Linux has, and if that fails try firefox, mozilla, konqueror.
        
    clientgui/
        hyperlink.cpp

Charlie 21 July 2006
    - Mac: Fix minor screensaver bugs from 17 July change.  If no graphics are 
        available, screensaver updates progress display egery 5 seconds instead 
        of every 15 seconds.
        - MacGLUTFix calls [myWindow setDocumentEdited: NO] to clear "unsaved" 
            indicator in graphics window close button (from Tim Wilson_Brown.)
        - Replace "exit" with "return" in shell scripts (from Tim Wilson_Brown.)
        
    api/
        macglutfix.m
    clientgui/
        /mac/
            mac_saver_module.cpp
    mac_build/
        buildWxMac.sh
        buildcurl.sh
        buildjpeg.sh
        setupForBOINC.sh

Charlie 22 July 2006
    -Mac: Installer checks for a file nologinitems.txt in BOINC Data directory.  If 
        present, delete LoginItems for users listed in this file (one user name per 
        line), so that BOINC Manager won't launch automatically when these users 
        log in.  This is a tool for system administrators.
        
    mac_installer/
        Postinstall.cpp

David  22 July 2006
    - core client (Win): remove quitRequestEvent (not used)
    - core client: ACTIVE_TASK::kill_task(): call cleanup_task()
        (to free shared mem) after killing process

    client/
        app.C
        app_control.C
        app_start.C

David  22 July 2006
    - made the BOINC user survey (and potentially any
        page on the BOINC site) translatable

    doc/
        docutil.php
        poll.inc
        poll.php
        poll_data.inc
    html/inc
        translations.inc
    languages/translations/en.po (new)

David  24 July 2006
    - poll translation fixes

    doc/
        poll_my_result.php (new)
    languages/translations/
        en.po

Charlie 24 July 2006
    - Mac sandbox: don't set or require user boinc_master to be a member of group 
        boinc_project (i.e., do not add group boinc_project to user boinc_master's 
        supplementary groups list.)

    client/
        check_security.C
    clientgui/
        mac/
            SetupSecurity.cpp
    doc/
        sandbox.php
    mac_installer/
        Installer.cpp

Charlie 24 July 2006
    - Mac: Overlay the Dock icon with Suspend and Disconnected icon badges to match 
        the system menu icon.  This method avoids the need to create separate 128X128 
        Suspend and Disconnected icons for each brand.

    clientgui/
        BOINCTaskBar.cpp
        res/
            macsnoozebadge.xpm (Added)
            macdisconnectbadge.xpm (Added)

Rom    25 July 2006
    - Bug Fix: Mac compiler handles std::string a little differently than Windows.
    
    clientgui/
        sg_ViewTabPage.cpp
        ViewWork.cpp

Rom    25 July 2006
    - Bug Fix: Reduce screensaver flicker by only updating the display every ten
        seconds.  I tried to use a double buffer, but for whatever reason it didn't
        actually help.  It might have had something to do with having three displays
        though.  In any case, once every ten seconds is fine.
        
    client/win/
        win_screensaver.cpp, .h

Charlie 25 July 2006
    - Mac Sandbox: make most (but not all) files world-readable (needed for simple 
        gui, third-party add-ons, etc.)
    - Revise security diagram to clarify use of executable permission bits.
    - Minor code cleanup in PostInstal.cpp.
    
    clientgui/
        mac/
            SetupSecurity.cpp
    doc/
        sandbox.php
    mac_installer/
        Postinstall.cpp

David  25 July 2006
    core client fixes:
    - fix bug where interrupted downloads failed with checksum error.
        This was because we were comparing the HTTP status with 200.
        But partial transfer success is 206.
        (bug was introduced in June 28 checkin)
    - on startup, make sure that all files that are
        supposed to be present actually are.
        Otherwise set status to NOT_PRESENT,
        so that they'll be downloaded again.
    - on reset, clear project_files and user_files vectors
    - project files: parse and save md5 checksum.
        Note: this is a placeholder;
        I'll change it to full FILE_INFO later.

    client/
        client_state.C,h
        client_types.C
        cs_files.C
        file_xfer.C
        http_curl.C

David  25 July 2006
    - fixes to Linux sandbox scripts (from Charlie)
    - new translation files
    - user web: restore alphabetic order in country list

    html/inc/
        countries.inc
    languages/translations/
        *.po
    sea/
        insecure.sh
        secure.sh

David  25 July 2006
    - core client and scheduler RPC:
        change the XML notation for project files.
        Instead of using a new and poorly-designed notation,
        just use the existing <file_info> and <file_ref> structures,
        and their associated parsing/writing code.
        See http://boinc.berkeley.edu/gui_urls.php

    client/
        client_types.C,h
        cs_account.C
        cs_files.C
        cs_scheduler.C
        cs_statefile.C
        scheduler_op.C

David  25 July 2006
    - core client: when md5'ing a file, put the size in local var
        rather than into the FILE_INFO

    client/
        cs_files.C

Charlie 25 July 2006 (HEAD)
    - Mac: Create separate targets for simple-gui and non-simple-gui Managers 
        so that we can build release versions from the Head branch.

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    25 July 2006 (HEAD)
    - Tag for 5.5.9 release, all platforms.
      boinc_core_release_5_5_9

Charlie 26 July 2006 (HEAD - all changes tagged for boinc_core_release_5_5_9)
    - Don't add "Switch to Simple GUI" to File menu if SIMPLEGUI not defined.
    - In security shell scripts, added quotation marks and braces around variables 
        holding file names or paths for safety in case names contain spaces.  
    - Added GPL to security shell scripts.
    - Added recursive function to set executable permissions for nested directories.
    - In security shell scripts, display the directory when requesting confirmation.
        If BOINC Client is not found, assume it is the wrong directory and exit.  
        These safety features are needed because the script will do serious damage 
        to the system if the user forgot to cd to the correct directory.
    - Mac: Created shell scripts for setting up security in ssytems with 
        stand-alone BOINC Client (i.e., no Manager.)
        - Removed redundant line of code in SetupSecurity.cpp.
        
    clientgui/
        AdvancedFrame.cpp
        mac/
            SetupSecurity.cpp
        mac_build/
            Mac_SA_Insecure.sh (new)
            Mac_SA_Secure.sh (new)
    sea/
        insecure.sh
        secure.sh

Charlie 26 July 2006
    - Mac: add options to daemon script for stand-alone client.

    mac_build/
        Make_BOINC_Service.sh

Walt   26 July 2006
    - Fix clientgui compile on Linux

    clientgui/
        Makefile.am
        Makefile.linux.fedora
        Makefile.linux.suse
        Makefile.linux.ubuntu

Charlie 27 July 2006
    - Mac: Mac_SA_Secure.sh script adds logged in user to groups boinc_master and 
        boinc_project.
    - New web page describing Macintosh system administrator tools; update  
        references from existing pages.
    
    clientgui/
        mac_build/
            Mac_SA_Insecure.sh
            Mac_SA_Secure.sh
    doc/
        mac_admin_tools.php (new)
        mac_advanced.php
        bare_core.php
        auto_start.php

Charlie 28 July 2006
    - Sandbox: change #ifdefs so Manager and Client call check_security() for 
        all platforms if SANDBOX is enabled.  Check_security() should be 
        compatible with Linux and all UNIX, but Win32 may need different code.
    - Mac: Grid Republic release script uses clientgui/res/gridrepublic.icns 
        for application icon instead of client/mac/gridrepublic.icns (which 
        was a duplicate), in preparation for deleting the long-obsolete 
        client/mac/ directory from CVS.

    client/
        main.C
    clientgui/
        BOINCGUIApp.cpp
    mac_installer/
        release_GridRepublic.sh

David  28 July 2006
    - core client: don't show scheduler version number if it wasn't returned.
    - user web: add support for 'friend-to-friend' emails

    client/
        cs_scheduler.C
        scheduler_op.C
    html/
        ops/ffmail/
            sample_html
            sample_subject
            sample_text
        user/
            ffmail_action.php
            ffmail_form.php

David  28 July 2006
    - user web: tweak f2f email
    - forums: help desk is separate

    html/user/
        ffmail_action.php
        ffmail_form.php
        forum_index.php

David  28 July 2006
    - core client: bug fixes for project file mechanism
        - clear project_file list before parsing it
        - set fip->is_project_file (otherwise link won't get created)

    client/
        client_types.C
        cs_trickle.C

David  28 July 2006
    - f2f email: don't show form if project hasn't created a mail template
    - email tools: create email directories on project creation

    html/user/
        ffmail_form.php
    py/Boinc/
        setup_project.py

David  29 July 2006
    - core client: limit backoff to 24 hours

    client/
        scheduler_op.h

David  30 July 2006
    - core client: parse <no_delete/> in <file_info> elements
        (not relevant to client, but don't want error message)

    client/
        client_types.C

Charlie 31 July 2006
    - Mac: use separate 8-bit mask for Dock badge anti-aliasing.
    
    clientgui/
        BOINCTaskBar.cpp
        res/
            macbadgemask.xpm (Added)
            macsnoozebadge.xpm
            macdisconnectbadge.xpm

Bruce 31 July 2006
    - Documentation on <resend_lost_results>

    doc/
        project_options.php

Charlie 1 Aug 2006
    - Sandbox: extend security to all UNIX and Linux platforms.  To 
        enable this feature, add the compiler flag -DSANDBOX and add 
        check_security.C to the source file list for both Manager and 
        Client.
    - Manager and Client both accept command-line argument -insecure 
        which runs without special boinc users and groups.  Both 
        Manager and Client check owners and permissions and refuse 
        to run unless they are set correctly for the selected secure 
        or insecure mode.  If Manager is called with -insecure, it 
        runs the Client with -insecure.
    - Added code to Mac_SA_Secure.sh and Mac_SA_Insecure.sh scripts.
    
    client/
        app_start.C
        check_security.C
        client_state.C
        client_types.C
        cs_cmdline.C
        file_names.C
        gui_rpc_server.C
        main.C
    clientgui/
        BOINCGUIApp.cpp,h
        MainDocument.cpp
        mac/
            Mac_GUI.cpp
            mac_saver_module.cpp
    lib/
        boinc_cmd.C
        filesys.C
        util.h
    mac_build/
        Mac_SA_Insecure.sh
        Mac_SA_Secure.sh
    mac_installer/
        PostInstall.cpp

Rom    1 Aug 2006
    - Fix build breaks on Windows
    
    client/
        file_names.C
        main.C
    clientgui/
        BOINCGUIApp.C
    lib/
        boinc_cmd.C
        util.C

Rom    1 Aug 2006
    - Bug Fix: Fix the code that recreates the taskbar icon if explorer dies.
    
    clientgui/msw/
        taskbarex.cpp

David  1 Aug 2006
    - API: don't repeatedly call getrusage() in worker_signal_handler().

    api/
        boinc_api.C

David  1 Aug 2006
    - forum fixes (from Eric Myers, Willy de Zutter)

    html/
        inc/
            forum.inc
            text_transform.inc
        languages/
            cs.po
            de.po
            ja.po
            lt.po
            ru.po
        user/
            white.css

David  1 Aug 2006
    - forum fix: moderator can only edit their own posts

    html/
        inc/
            forum.inc

Walt   1 Aug 2006
    - API: add support for freeGLUT

    api/
        x_opengl.C

Charlie 1 Aug 2006
    - Mac sandbox: added Dev_noSandbox and Deploy_noSandbox build styles 
        to XCode project for testing ability to build without -DSANDBOX.
    - Mac sandbox: check_security() uses PersistentFGets() for better 
        reliability, deletes newline from path if present.
    - Fix compile errors in non-SANDBOX builds.
    - Remove unused variables (compiler warning) in x_opengl.C.

    api/
        x_opengl.C
    client/
        check_security.C
        client_state.C
    clientgui/
        mac/
            mac_saver_module.cpp
    lib/
        util.C
    mac_installer/
        PostInstall.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  2 Aug 2006
    - core client: fix CPU throttling mechanism.
        - Range is 0..100, not 0..1
        - ACTIVE_TASK::prempt(): don't set scheduler_state
            (that's not the job of this layer)
    - core client: fiddle with messages
        "task" should show you when results start and end
            (always 2 messages per result)
        "task_debug" shows every suspend/resume/checkpoint
        "cpu_sched_debug" shows the results selected by scheduler
        (more fiddling still needed)

    client/
        app_control.C
        app_start.C
        cpu_sched.C
        cs_prefs.C
    lib/
        prefs.C

David  2 Aug 2006
    - Reminder email: checked in SETI@home examples,
        just to make things more concrete.
        Other projects had better change these before use,
        or they'll look fairly clueless.
    - core client: clarified meaning of "episode" in comments

    client/
        app.h
    html/ops/
        remind_email/*

Rom    2 Aug 2006
    - Bug Fix: McAfee Internet Suite 8 now interjects McProxy.exe into the
        boincmgr.exe <-> boinc.exe communication stream.  Normally it wouldn't
        be a problem except that McProxy.exe automatically returns success for
        a connect request even if the target isn't available.  This lead the
        manager to believe that the CC had already been started.  We now do a
        simple get screensaver mode request which is not password protected to
        verify that boinc.exe is listening on the other end.
        
    clientgui/
        BOINCGUIApp.cpp

David  2 Aug 2006
    - core client: attempted fix for benchmarks running right away
        and preventing contact to account manager for new users

    client/
        client_state.C

David  2 Aug 2006
    - API: removed 3.1 second sleep on startup.
    - core client: fixed significant bug in CPU scheduler:
        was preempting apps too soon in some cases
        (from N. Hoffmann and J. McLeod)

    api/
        boinc_api.C
    client/
        client_state.h
        cpu_sched.C
        cs_apps.C

Rom    2 Aug 2006
    - After successfully attaching to an account manager, display a balloon
        to reassure the participant that everything is fine.

    clientgui/
        AdvancedFrame.cpp

David  3 Aug 2006
    - Don't run benchmarks at startup when user has <max_cpus>
        in global prefs override

    client/
        client_state.C,h
        cs_apps.C

David  3 Aug 2006
    - make download page translatable (from Komori)

    doc/
        download.php
    languages/translation/
        en.po

Rom    3 Aug 2006 (HEAD)
    - Tag for 5.5.10 release, all platforms
      boinc_core_release_5_5_10

Rom    3 Aug 2006
    - Roll back which version of libCurl we use on Windows to 7.15.3.
    
      NOTE: We believe this will resolve some of the newly discovered
        crashing issues, we'll revisit using the newer libCurl after
        the new simple GUI is released.
        
    curl/mswin/x86/bin/
        libcurl.dll-7.15.4 (added)
        libcurl.pdb-7.15.4 (added)
        libcurl.dll
        libcurl.pdb

David  4 Aug 2006
    - User web: direct forum links to the right BOINC Wiki address

    html/inc/
        text_transform.inc

David  4 Aug 2006
    - core client: more log messages, and possible fix to
        CPU scheduling problem

    client/
        cpu_sched.C

David  6 Aug 2006
    - core client: probable fix to CPU sched problems
        (from John McLeod)

    client/
        cpu_sched.C

David  6 Aug 2006
    - renamed schedule_result() to get_task()

    client/
        client_state.h
        cpu_sched.C
        cs_apps.C

David  6 Aug 2006
    - core client: enable graphics for an app if it's
        scheduler state is "scheduled"
        (rather than if it's actually running)
    - change project files to Visual Studio 2005 format
        (Rom: please check in 2003-format files with _2003.vcproj names)

    client/
        app_graphics.C
    win_build/
        boinc.sln
        boinc_cli_curl.vcproj
        boinc_dll.vcproj
        boinc_ss.vcproj
        boinccmd.vcproj
        boincmgr_curl.vcproj
        libboinc.vcproj

David  6 Aug 2006
    - GUI RPC: get_activity_state() returns the reasons for suspension,
        not just flags (so that can show "throttle" messages)

    client/
        client_state.C,h
        gui_rpc_server_ops.C
    clientgui/
        MainDocument.cpp,h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  6 Aug 2006
    - 2nd part of the above

    clientgui/
        BOINCTaskBar.cpp
        MainDocument.cpp
        ViewTransfers.cpp
        ViewWork.cpp
    lib/
        gui_rpc_client.h

David  7 Aug 2006
    - Add GUI RPCs for reading and writing the general prefs override file.
        Note: these pass the raw XML, not a parsed structure;
        that's because only some of the prefs may be overridden.
        It's up to the GUI to decide what semantics to provide,
        i.e. how to mix local and web-based preferences.
        Probably the easiest approach is to make it "either/or",
        i.e. write all prefs to the override file,
        and provide a "user network prefs" checkbox in the GUI,
        which clears the override file.

    client/
        gui_rpc_server_ops.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Rom    7 Aug 2006 (HEAD)
    - Tag for 5.5.11 release, all platforms
      boinc_core_release_5_5_11

Walt   8 Aug 2006
    - Adjust messages so the text wraps inside the window
        instead of running off the edge.

    clientgui/
        AccountManagerInfoPage.cpp
        ProjectInfoPage.cpp
        WelcomePage.cpp

David  8 Aug 2006
    - User web: add "banish" feature for message boards.
        Moderators can banish users for 2 weeks,
        during which time they can't post or rate.

    NOTE: this requires a database update.  See html/ops/db_update.php

    html/
        inc/
            forum.inc
            forum_email.inc
            forum_moderators.inc
            forum_user.inc
        ops/
            db_update.inc
        user/
            forum_moderate_post.php
            forum_moderate_post_action.php
            forum_post.php
            forum_reply.php
            forum_report_post.php
            moderation.php
            white.css

David  8 Aug 2006
    - send email to user, not moderator

    html/
        inc/
            forum_email.inc

David  8 Aug 2006
    - don't send <outage> elements in scheduler request.
        Too much text, and I don't think schedulers will ever
        need this level of detail (longest outage probably sufficient)

    client/
        time_stats.C

David  8 Aug 2006
    - bug fix

    html/user/
        forum_moderate_post_action.php

David  8 Aug 2006
    - core client: fix CPU scheduling but that would cause idle CPU
        after suspending a task
    - compile fix for VS2005

    api/
        gutil_text.C
    client/
        cpu_sched.C

Walt   8 Aug 2006
    - Bugfix: On unicode builds on Linux,wasn't displaying project name
        when detaching from project.

    clientgui/
        ViewProjects.cpp

David  9 Aug 2006
    - bug fixes in forum code

    html/
        inc/
            db_forum.inc
            forum_email.inc
            forum_forum.inc
            translation.inc
        user/
            forum_forum.php
            white.css

David  9 Aug 2006
    - user web: "Change password" -> "Forgot password?" in login form

    html/inc/
        util.inc

David  10 Aug 2006
    - add certificate authority bundle file to linux release

    client/
        cpu_sched.C
    sea/
        Makefile.am

David  10 Aug 2006
    - core client: choose_version_num(): fix bug that could happen
        if two projects have app with same name
        (from Josef Segur)

    client/
        client_state.h
        cs_apps.C
        cs_scheduler.C

Milos  10 Aug 2006
    - Updated Simple GUI code to reflect new design
    - Skins folder contains new images as well and also
      new skin.xml files
      
    clientgui/
        sg_*

Walt   10 Aug 2006
    - Remove taskbar icon on Linux so the manager exits properly
      
    clientgui/
        BOINCGUIApp.cpp

Walt   10 Aug 2006
    - Tag for 5.5.12 release, all platforms
      boinc_core_release_5_5_12

David  10 Aug 2006
    - major revision of work-fetch policy;
        may fix bugs where client starves.
        Also an improved version of my 10/8 scheduler fix.
        (from John McLeod)

    client/
        app_control.C
        client_state.C
        client_types.C
        cpu_sched.C
        cs_apps.C
        cs_scheduler.C
        gui_rpc_server_ops.C

David  11 Aug 2006
    - GUI RPC: add task and network suspend reasons to the
        structure returned by get_cc_status().
        Future items should be put in this structure
        rather than adding a new RPC.

        Old RPCs (network_status() and get_activity_state())
        have been left in to avoid breaking current add-ons.
        They have been marked as deprecated and will be removed 12/06.
    - Manager: if task is suspended, say why

    client/
        gui_rpc_server_ops.C
        net_stats.C
    clientgui/
        BOINCTaskBar.cpp
        MainDocument.cpp,h
        ViewTransfers.cpp
        ViewWork.cpp
    lib/
        error_numbers.h
        gui_rpc_client.h
        gui_rpc_client_ops.C

Milos  11 Aug 2006    
    - Added suport for importing images from skin for Flat Notebook
      Added additional routine to check for Skin validity. Skin validity
      is also checked now when different skin choosen. If skin is not valid
      no skin will be changed.
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_ProjectsComponent.cpp
        sg_SkinClass.h    
    clientgui/common
        wxFlatNotebook.cpp
    clientgui/skins/default && WorldCommunityGrid
        skin.xml

David 11 Aug 2006
    - GUI RPC: change things so most of the read-only RPCs
        don't require authorization for local access

    client/
        gui_rpc_server_ops.C
    lib/
        error_numbers.h

Walt  11 Aug 2006
    - Bug fix: remove references to TaskBarIcon for Linux
        compiles. Should fix the SIGSEGVs that were reported.

    clientgui/
        AdvancedFrame.cpp
        BOINCGUIApp.h

David  11 Aug 2006
    - DB: the type of forum_preferences.special_user
        was changed from integer to char(8) in db_update.php,
        but we forgot to make the same change in schema.sql.
        Fixed this (actually made it char(12) to allow expansion)

        Any projects created since Jan 2005: check the type of this field.
        If it's integer, change it to char(12) not null default ''.
        Otherwise your message-board moderation features won't work.

    - Show quotes correctly in profile text
    - fixes to admin web interface
    (from Christian Beer)

    db/
        schema.sql
    html/inc/
        db_ops.inc
        profile.inc

Rom    13 Aug 2006
    - Fix thread creation failures on Win9x machines when applications
        are built with DevC++/MinGW. (From Josef W. Segur)
        
    api/
        boinc_api.C
    lib/
        diagnostics_win.C

David  13 Aug 2006
    - User web: multi-column option for displaying venue-specific prefs
    - User web: value-checking on prefs
    (from Christian Beer)

    NOTE TO PROJECTS: if you deploy this code and use project-specific prefs,
    you'll have to modify your project_specific_prefs.inc
    to support the error-checking and multi-column features

    html/
        inc/
            prefs.inc
            prefs_col.inc (removed)
            translation.inc
            util.inc
        project.sample/
            project_specific_prefs.inc
        user/
            add_venue.php (new)
            add_venue_action.php (removed)
            add_venue_form.php (removed)
            prefs.php
            prefs_edit.php (new)
            prefs_edit_action.php (removed)
            prefs_edit_form.php (removed)
            prefs_remove.php
            white.css

David  14 Aug 2006
    - GUI RPC: added new RPCs
        get_global_prefs_override_struct(GLOBAL_PREFS&) and
        set_global_prefs_override_struct(GLOBAL_PREFS&)

        Note: these are useful only when ALL prefs are being
        specified in the override file,
        as there's no provision for "undefined" values in the structs.

    html/inc/
        util.inc
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Walt  14 Aug 2006
    - Fix compile errors on Linux

    clientgui/
        AdvancedFrame.cpp

Rom    14 Aug 2006
    - Bug Fix: The application class should determine whether to show or hide a frame
        based on the parameters passed to the application.  Frames should not show
        or hide themselves without user interaction.
        
    clientgui/
        BOINCGUIApp.cpp

Walt  14 Aug 2006
    - Bug fix: fix boincmgr so it exits when X on window is clicked

    clientgui/
        BOINCBaseFrame.cpp

David  14 Aug 2006
    - user web: change build_uotd_page() to match the SETI@home convention
        (that verification=1 means it's a UOTD candidate)
        but let project define its own criteria.
    - user web: fix bug that caused errors in profile_screen_form.php
    - core client: removed unused functions set_work_fetch_mode()
        and should_get_work();
        renamed retval (???) to non_cpu_intensive_needs_work;
        show urgency as string instead of number;
        changed type of compute_work_requests() to bool

    client/
        client_state.h
        cs_scheduler.C
    html/
        inc/
            profile.inc
            uotd.inc
        ops/
            profile_screen_form.php

David  14 Aug 2006
    - user web: on second thought:
        if <profile_screening>1</profile_screening> is in the config file,
        use the right queries for both screening and UOTD selection.
        Leave in the option for custom queries in both places.

    html/
        inc/
            uotd.inc
        ops/
            profile_screen_form.php

Rom    14 Aug 2006
    - Tag for 5.5.13 release, all platforms
      boinc_core_release_5_5_13

Charlie 15 Aug 2006
    - Fix compiler warnings.
    
    client/
        cpu_sched.C
        cs_scheduler.C

David  15 Aug 2006
    - core client: removed <work_fetch_debug/> message
    - Manager: changed one wxDateTime to double (should change all)

    client/
        cs_scheduler.C
    clientgui/
        MainDocument.cpp,h

Rom    15 Aug 2006
    - lib: Fix missing case for MIOFILE where MIOFILE.printf didn't know how
        to handle memory buffers.  It was calling vfprintf with a null file
        handle and crashed.
        
    lib/
        miofile.C

Bruce  15 Aug 2006
    - scheduler: improved message to client for clarity

    sched/
        sched_locality.C

Walt   15 Aug 2006
    - Bug fix: in Linux activity menu radio buttons worked as one group
        instead of the two groups defined.  Use wxMenu::Append for the
        separator instead of AppendSeparator.

    clientgui/
        AdvancedFrame.cpp

David  15 Aug 2006
    - GUI RPC: tested and fixed bugs in the set_global_prefs_override()
        get_global_prefs_override(),
        set_global_prefs_override_struct() and
        get_global_prefs_override_struct() GUI RPCs.
        Sorry about that, Milos and Kevin!
    - Scheduler: added code that makes homogeneous redundancy
        work with Mac/Intel
        (which reports its p_vendor as 'i386' rather than 'Intel').
        Without this, Mac/Intels get "platform not supported'
        messages even if project has added platform and app_versions.

    client/
        gui_rpc_server_ops.C
    lib/
        boinc_cmd.C
        gui_rpc_client_ops.C
    sched/
        sched_hr.C

David  16 Aug 2006
    - GUI RPC: set_global_prefs_override(): if arg is empty string,
        delete prefs override file
    - improved comments in CPU sched code

    client/
        cs_scheduler.C
        gui_rpc_server_ops.C

Charlie 17 Aug 2006
    - Mac: Add support for hostinfo p_capabilities.  For PowerPC Macs. 
        this just sets the string to "AltiVec" if AltiVec available. 
        For Intel Macs, this is a string of multiple 3-character 
        values, including MMX, SSE, SSE2, SSE3 when supported.
    - Initialize glut_is_freeglut=false for Mac, to avoid warning 
            message to stderr from calling glutGet(GLUT_VERSION).
            
    api/
        x_opengl.C
    client/
        hostinfo_unix.C
        
Milos 17 Aug 2006
    - changed the way wxFlatNotebook is initialized when there is no work present. 
      Added routing to intialize notebook to default values.Introduced Freeze()
      and Thaw() to avoid flicker and drawing in corner when noptebook initlaized 
    - Changed bg for preferences dialog for text to be more readable
      It also detect if we are using local or global preferences.
      
    clientgui/
        sg_BoincSimpleGUI.cpp,h
        sg_DlgPreferences.cpp,h
        sg_ProjectsComponent.cpp

Rom    17 Aug 2006
    - Bug Fix: Keep both the global state and the updated tasks records in sync within
        the simple GUI.
        
    clientgui/
        MainDocument.cpp, .h
        sg_BoincSimpleGUI.cpp

Charlie 17 Aug 2006
    -Mac: Fixed a bug in check_security() when ID of group boinc_master != ID of 
        user boinc_master.
    - Mac: XCode project sets S_ISUID and S_ISGID permission bits for stand-alone 
        client to aid in debugging.
    - Update obsolete screensaver test code in ss_logic.C.
    
    client/
        check_security.C
        ss_logic.C
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    18 Aug 2006
    - boincmgr - Add support for detecting an authenticator via a "Setup" cookie
        from the projects master URL.  With this, and the project_init.xml file
        specified for a customized installer will allow for a handsfree install
        scenario.
        
        project_init.xml just needs to contain the project name and master url, the
        website sets a cookie named "Setup" with the desired authenticator and
        a reasonable timeout, like 30 minutes, and the attach to project wizard will
        automatically attach to the project and get work.
        
        NOTE: This only works if the participant is using Internet Explorer.
        
    clientgui/
        ProjectProcessingPage.cpp
        WizardAttachProject.cpp, .h
    clientlib/win/
        AuthenticatorDetection.cpp, .h
        stdafx.h
    win_build/
        boinc_dll.vcproj
        boinc_dll_2003.vcproj

Rom    18 Aug 2006
    - Initialize scratch scheduler/work fetch variables when PROJECT structs are
        created.
        
    client/
        client_types.C
        cs_scheduler.C

Milos    18 Aug 2006
    - Added additional images to both skins. Main background has been changed 
      as well.(logos) Reading and writing to override global preferences
      enabled from Preferences dialog. Created new component ClientStateIndicator
      for showing state in gui. Split initiation in main class to workunit view
      and project view. Also added logic for showing state
    
    clientgui/
        sg_ViewTabPage.cpp,h
        sg_SkinClass.h
        sg_ProjectsComponent.cpp
        sg_DlgPreferences.cpp,h
        sg_ClientStateIndicator.cpp,h
        sg_BoincSimpleGUI.cpp,h
        
    client/skins/.../
        skin.xml
        
    client/skins/.../graphic
        conn_ind.png
        error_image.png
        state_ind_bg.png
        simplegui_bg.png

Charlie 19 Aug 2006
    -Mac: Fixed a bug in setMacIcon() associated with sandbox security; 
        FSpSetFInfo() was getting a permission error trying to set the 
        kHasCustomIcon bit in the Finder flags, preventing the custom icon 
        from appearing.  Use FSSetCatalogInfo() instead of FSpSetFInfo() 
        as recommended by Apple (FSpSetFInfo is deprecated.)
        
    api/
        mac_icon.C

David  20 Aug 2006
    - _autosetup: the check_version function doesn't
        correctly handle version strings that begins with 0,
        such as the pkg-config version 0.15.
        This is due to that checking if a value is a number
        it is assumed that the number is more than 0.
        check_version also assumes that 1.10 is lower than 1.9 since it does a
        string comparison.
        (from Egon Larsson)

    _autosetup
    html/inc/
        translation.inc

Charlie 21 Aug 2006
    -Mac: Work around screensaver SETI@home crash bug seen on Intel Macs which 
        apparently occurs in GLUT destructors; use glutHideWindow() and 
        glutShowWindow() instead of glutDestroyWindow() and glutCreateWindow() 
        to close and open existing window.  This is similar to implementation 
        for FreeGLUT on Linux.
    - Mac: When closing graphics window, remember its size and position; restore 
        window's size and position after exiting screensaver, or if user closes 
        and reopens the window.  Presently implemented only for Mac, and retains 
        information only while application remains in memory.
    - Mac: Show window only after a successful call to throttled_app_render(); 
        this eliminates ugly flashes, especially when switching to MODE_WINDOW 
        from MODE_FULLSCREEN; also avoids momentary display of old image when 
        screensaver restarts which made image appear to "jump."  Presently 
        implemented only for Mac
        
    api/
        macglutfix.m
        x_opengl.C

David  21 Aug 2006
    - Manager: make axis labels uniform in Statistics tab
        (from Mifistor)

    clientgui/
        ViewStatistics.cpp

Rom    21 Aug 2006
    - Remove the suppression of the "Expect: 100 continue" in HTTP header.
        This bug fix from Ian Hay was originally to fix some proxy issues.
        We do not know which proxy issues it actually fixes, we are waiting
        on some follow-up from Ian.  In the mean time this should allow
        NTLM auth on an HTTP post operation.
        
    client/
        http_curl.C

David  21 Aug 2006
    - server: check for benchmark weightings in 0..1
    - User and admin web: small fixes

    html/
        inc/
            db_ops.inc
        user/
            head_20.png (removed)
            img/
                head_20.png (added)
    py/Boinc/
        setup_project.py
    sched/
        sched_config.C

David  21 Aug 2006
    - new XML parser (class XML_PARSER).
        This replaces the one checked in May 24 2006, which had a design flaw.

        The new one parses XML of any structure and format;
        i.e. it works even if software other than BOINC generated the XML.

        Currently this is used only for parsing sched config file
        and client config file.
        TODO: use it everywhere.
        
    client/
        log_flags.C,h
    lib/
        parse.C,h
    sched/
        sched_config.C

Janus  22 Aug 2006
    - Avatars now stay when users edit their forum preferences
    - Changed the Q&A pages to use the new search facility instead of Google 
        (unless ours doesn't find anything)
    - Added CVS auto tracking to some files
    - Improved visual layout of forum prefs page
    - If a user forgets to make a title for a post the post content is no longer
        simply deleted. Instead a warning is shown.
    - page_head and page_tail are now overridable
        (for easier integration with a non-BOINC environment)
    - Small set of HTML4.01 transitional fixes
    
    html/inc/
        util.inc
    html/user/
        edit_forum_preferences_form.php
        forum_post.php
        forum_help_desk.php
    

David  22 Aug 2006
    - Manager: small simplification (from Mifistor)

    clientgui/
        ViewStatistics.cpp

Rom    22 Aug 2006
    - Tag for 5.5.14 release, all platforms
      boinc_core_release_5_5_14

David  22 Aug 2006
    - Core client: change variable names to conform to new terminology
        (see comment at top of cpu_sched.C):

        adjust_debts_last_time => debt_interval_start
        PROJECT::wall_cpu_time_this_period => wall_cpu_time_this_debt_interval
        total_wall_cpu_time_this_period
            => total_wall_cpu_time_this_debt_interval
        ACTIVE_TASK::cpu_time_at_last_sched => debt_interval_start_cpu_time
        ACTIVE_TASK::episode_start_wall_time => run_interval_start_wall_time

    client/
        app.C,h
        app_start.C
        client_state.C,h
        client_types.C,h
        cpu_sched.C
        cs_apps.C

David  22 Aug 2006
    - change XML_PARSER to take a MIOFILE* instead of a FILE*.
        This allows it to be used anywhere in BOINC.

    client/
        log_flags.C
    lib/
        miofile.C,h
        parse.C,h
    sched/
        sched_config.C
    sea/
        insecure.sh

Walt   22 Aug 2006
    - Manager: Add text to tooltips for buttons on statictics
            panel.  Linux version was showing a small empty box.

    clientgui/
        ViewStatistics.cpp

Rom    22 Aug 2006
    - Bug Fix: Use InetnetGetCookie instead of InternetGetCookieEx so that we are
        backwards compatible with all Windows versions that are spported.
        
    clientlib/win/
        AuthenticatorDetection.cpp
        stdafx.h

David  22 Aug 2006
    - Change new XML parser to prevent buffer overrun on string parsing
    - User web: fix bug in moving post from one thread to another
        (from David Kim)

    client/
        log_flags.C
    html/inc/
        forum_post.inc
    lib/
        parse.C,h
        prefs.C
    sched/
        sched_config.C

Rom    22 Aug 2006
    - Tag for 5.5.15 release, all platforms
      boinc_core_release_5_5_15

David  23 Aug 2006
    - removed "max_memory_nbytes, "proc_priority", "cpu_affinity",
        "run_minimized" and "run_on_startup" from global prefs;
        not used anywhere.

    client/
        cs_cmdline.C
    lib/
        boinc_cmd.C
        prefs.C,h

David  23 Aug 2006
    - core client: various changes to the CPU scheduler, mostly to fix:
        1) on cold start (no projects), when attaching to 1st project,
            the client would do an RPC not asking for work,
            then would back off for 10 minutes
            (for SETI@home; this is a project param)
            until the next RPC, which would actually get work.
        2) On the 2nd RPC, the work fetch calculation would generate
            some INF#00s (due to divide by zero)
            and would end up requesting 1 second.
        Also, some code cleanup.

        - rr_simulation(): get rid of arguments.
            Always treat nearly runnable results as if they were runnable.
            The code was sort of doing this anyway
        - rr_simulation(): get rid of divide by zero.
             If total resource share is zero,
            use 1 instead of p->resource_share/total resource share.
        - rr_simulation(): remove *ncpus from calculation
            of pbest->work_request
        - remove per_cpu_proc_rate arg from set_rrsim_proc_rate()
        - use project->get_project_name() instead of project->name
             (works for brand-new projects also)
         
        - define function work_buf_min() so you don't have to type
            global_prefs.work_buf_min_days * SECONDS_PER_DAY all the time
        - define overall_cpu_frac() so you don't have to type
            time_stats.on_frac * blah blah
        GENERAL PRINCIPAL: if there's anything complex that appears
            repeatedly, make it a function!!
    - Win project file: remove base64.C, crypt.C
        (these are in libboinc)

    client/
        client_state.h
        client_types.h
        cpu_sched.C
        cs_scheduler.C
        log_flags.C
    win_build/
        boinc_cli_curl.vcproj
        
Kevin  23 Aug 2006
    - Fixed various errors and reorganized code in the Simple GUI
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_BoincSimpleGUI.h
        sg_ClientStateIndicator.cpp
        sg_ClientStateIndicator.h
        sg_ProgressBar.cpp
        sg_ProjectsComponent.cpp
        sg_SkinClass.cpp
        sg_SkinClass.h
        sg_ViewTabPage.cpp

Rom    23 Aug 2006
    - Remove the restriction where the simple gui RPC only returned active
        tasks.

    client/
        client_state.h
        cs_statefile.C
        gui_rpc_server_ops.C

David  23 Aug 2006
    - user web: prefs fix

    html/inc/
        prefs.inc
        
Kevin  24 Aug 2006
    - Enhancements to the simple gui
        -- Messages button will now alternate between black and red when alert messages have been recieved
        -- Additional client states are now shown when no work tabs are available such as 'downloading work'
    clientgui/
        MainDocument.cpp
        sg_BoincSimpleGUI.cpp
        sg_BoincSimpleGUI.h
        sg_ClientStateIndicator.cpp
        sg_ClientStateIndicator.h
        sg_ProjectsComponent.cpp
        sg_ProjectsComponent.h
        sg_SkinClass.cpp
        

David  24 Aug 2006
    - Core client: change the sequence of events for first-time use,
        with the goal of not running CPU benchmarks until user
        has attached to project and started to run first result.
        Sequence is:
        1) manager requests get_project_config, polls until done
        2) manager calls lookup_account or create_account, polls until done
        3) manager calls project_attach.
            core client sets CPU specs to default values (1 GFLOPS),
            sets project work_request to 1 second,
            does scheduler RPC
        4) Manager poll finishes
        5) core client starts CPU benchmarks

        The above is enforced by:
        - only run benchmarks if there's a nontentative project
        - if RPC reason is INIT, set work_request to 1
        - after successful RPC, set work_request to zero

    - Core client: PROJECT::sched_rpc_pending is now an int
        that encodes the reason we need to do a sched RPC.
        The actual reason is now shown, not always "Requested by user".

    client/
        acct_mgr.C
        client_state.C,h
        client_types.C,h
        cs_account.C
        cs_benchmark.C
        cs_cmdline.C
        cs_scheduler.C
        gui_rpc_server_ops.C
        scheduler_op.C,h

David  24 Aug 2006
    - core client: is cpu_sched_debug log flag is set,
        show messages when duration correction factor is changed
    - more detailed rr_simulation messages
    - on CPU benchmark completion, scale DCFs only if
        original benchmark is real (not 1 GFLOPS estimate)

    client/
        client_types.C
        cpu_sched.C
        cs_benchmark.C
        cs_scheduler.C

Rom    24 Aug 2006
    - Tag for 5.5.16 release, all platforms
      boinc_core_release_5_5_16

Charlie 25 Aug 2006 (HEAD - all changes tagged for boinc_core_release_5_5_16)
    - Mac: install ca-bundle.crt file in BOINC Data folder, and include it 
        with comman line distribution. 
        
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh

Charlie 25 Aug 2006
    - Fix compiler warning.
    
    clientgui/
        MainDocument.cpp
        
Kevin  25 Aug 2006
    - Enhancements to the simple gui
        -- Project icons that are downloaded after the BSG is started will be displayed when they become available
        -- Make sure that the first tab is the selected tab when the BSG is opened
        -- The 'currently running' indicator is now properly added and removed as different results are started and stopped
        -- The percent displayed now includes one decimal place
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_BoincSimpleGUI.h
        sg_ProjectsComponent.cpp
        sg_ProjectsComponent.h
        sg_StatImageLoader.cpp
        sg_StatImageLoader.h
        sg_ViewTabPage.cpp
        sg_ViewTabPage.h

Charlie 26 Aug 2006
    -Mac: Add a comment; remove bogus Mac-only code from restart() 
        in x_opengl.C.
        
    api/
        x_opengl.C

Janus  27 Aug 2006
    - show_user.php is now translation capable and uses the object 
    cache (when accessed throught the web frontend). This should fix 
    the issues where the page appears in another language than the 
    selected one.
    - Simplification: Now only allow people to do userid lookups using 
    the id of a user instead of the authenticator (when in XML mode 
    people can still use the authenticator)
    
    html/user/
    show_user.php
    
Charlie 28 Aug 2006
    -Mac: Implement standard Mac shortcut command-W for closing main 
        Manager window (requires adding "Close Window" to File menu.)
    
    clientgui/
        AdvancedFrame.cpp,h
        Events.h

David  28 Aug 2006
    - Detection of memory usage now works on Windows.
        You can find the amount of RAM (working set)
        and page file spaced used by each running BOINC app,
        and by all non-BOINC apps.
        Currently this isn't used for anything.
        If you set the <mem_usage_debug/> flag in cc_config.xml,
        it will print memory stats every 10 seconds.

        TODO: get this working for Linux/Mac

    client/
        app.C
        log_flags.C,h
    lib/
        procinfo.h
        procinfo_win.h
    win_build/
        boinc_cli_curl.vcproj

Rom    28 Aug 2006
    - Bug Fix: Fix missing screensaver condition.
    - Bug Fix: Lookup project structure directly instead of looking up the
        project by way of the result.
        
    client/win/
        boinc_ss.h
        boinc_ss.rc
        win_screensaver.cpp, .h
    clientgui/
        ViewWork.cpp

Rom    28 Aug 2006 (Forked from HEAD)
    - Branch boinc_core_release_5_6 created for the BOINC 5.6 client release.

Charlie 28 Aug 2006 (HEAD and boinc_core_release_5_6_0 tag)
    - Mac: Clear S_ISUID and S_ISGID permission bits from standalone Client 
        when releasing, to eliminate warning when users try to copy it.  
        End users of standalone Client need to run Mac_SA_Secure.sh script, 
        which will set these bits.
    - Fix compile error for non_windows systems (calls to proc_info*)
        
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh
    client/
        app.C

David  29 Aug 2006
    (all changes to core client)
    - fixed bug where, if a GUI_HTTP op failed
        (e.g. initial lookup of project)
        the HTTP op to the reference site would immediately fail
        because GUI_HTTP.state is not IDLE at this point.
        Instead, set a need_to_contact_reference_site flag,
        and start the op later when GUI_HTTP.state is IDLE.
    - more messages for http_debug log flag
    - changed net_xfer_debug to http_xfer_debug
    - added network_status_debug log flag

    client/
        http_curl.C
        log_flags.C,h
        net_stats.C,h
    lib/
        util.C,h

David  29 Aug 2006
    core client:
    - replace have_tentative_project variable with a function
    - log message for project shortfall in no-result case

    client/
        client_state.C,h
        client_types.C
        cpu_sched.C
        cs_account.C
        cs_scheduler.C
        scheduler_op.C

David  29 Aug 2006
    - lots more debug messages in RR simulator
    - fixed small bug in RR sim
        (last_active_size => last_project_active_size)
    - change meaning of time_debug log flag;
        it prints messages related to on_frac etc.

    client/
        cpu_sched.C
        log_flags.h
        time_stats.C

Rom    29 Aug 2006
    - Bug Fix: Remove google and yahoo detection code from the wizard in the
        manager
    - Bug Fix: Remove network detection code the wizard in the manager by replacing
        it with the get_cc_status RPC.
    - Bug Fix: Clean up the parsing logic for the get_cc_status rpc.
    
    clientgui/
        ProjectPropertiesPage.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  29 Aug
    - core client: CPU sched bug fix from JM7

    client/
        cpu_sched.C

David  30 Aug 2006
    - core client: work fetch bug fix from JM7

    client/
        cs_scheduler.C

Bruce 30 Aug 2006
    - ops pages, missing client state value

    html/
        inc/
            db_ops.inc

Rom    31 Aug 2006
    - Bug Fix: Be sure to clear the PROJECT_CONFIG structure before reuse.  Not
        all elements in the project config xml are required.
    - Bug Fix: Re-enable needed controls when account creation goes from disabled
        to enabled because of a project URL change.
        
    clientgui/
        AccountInfoPage.cpp
        AccountManagerPropertiesPage.cpp
        ProjectPropertiesPage.cpp, .h

David  31 Aug 2006
    - Manager: if project doesn't allow account creation, say so,
        and don't show yes/no radio buttons
        NOTE: it still doesn't work right if you try alpha first,
        and then cplan.

    clientgui/
        AccountInfoPage.cpp

David  31 Aug 2006
    - GUI RPC: add a new exchange_versions() RPC to get core client version.
        Other RPCs no longer exchange version info.
        Client library still parses version info from get_state()
        so you can find version of clients that predate this change.
    - Core client: the http_op_retval is now always a BOINC (ERR_*) code
        (not, e.g. an HTTP status code)
        Specific errors are returned for DNS lookup failure,
        connection failure, and file not found.
        This is documented in http_curl.h
    - GUI RPCs that poll HTTP operation completion now return the above 
        error codes also.

    client/
        gui_rpc_server_ops.C
        httl_curl.C,h
    lib/
        error_numbers.h
        gui_rpc_client.C,h
        gui_rpc_client_ops.C
        util.C


Walt   31 Aug 2006
    - Add process memory info for Linux.

    lib/
        procinfo_unix.C (new)
        Makefile.am

Rom    31 Aug 2006
    - Bug Fix: You have to show controls that you previously hidden the last
        time the wizard page was viewed when one of the state variables change.
    - Deprecate <get_run_mode/> and <get_network_mode/> GUI RPC's as that 
        functionality has been rolled into <cc_status/>.  Update BOINC Manager
        in the dozen or so places that check the activity and network modes.
    
    client/
        gui_rpc_server_ops.C
    clientgui/
        AccountInfoPage.cpp
        AdvancedFrame.cpp
        BOINCTaskBar.cpp
        MainDocument.cpp, .h
        sg_ProjectsComponent.cpp
        ViewTransfers.cpp
        ViewWork.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  31 Aug 2006
    - Fix Makefiles so that "install" installs needed files
        (from Frank Thomas)

    Makefile/am
    client/
        gui_rpc_server.C
    lib/
        Makefile.am

Rom    31 Aug 2006
    - Bug Fix: Only show password confirmation controls when the create account
        radio button is selected.
    - Hook up new return codes to the project and account manager wizards.
    
    clientgui/
        AccountInfoPage.cpp
        AccountManagerPropertiesPage.cpp, .h
        ProjectPropertiesPage.cpp

David  31 Aug 2006
    - manager: say "choose password" only if user is picking new password.
        otherwise say "enter password".
    - manager: if user leaves email address blank,
        ask for email address, not account key

    clientgui/
        AccountInfoPage.cpp

Walt   31 Aug 2006
    - Bug Fix: Need to close directory after reading it.
    - Enable <mem_usage_debug/> flag in Linux

    client
        app.C
    lib/
        procinfo_unix.C 

Rom    31 Aug 2006
    - Bug Fix: Forcing a global state refresh now causes the client to update the
        state right then and there. This should fix the app version friendly name
        flicker problem.
        
    clientgui/
        MainDocument.cpp, .h
        sg_BoincSimpleGUI.cpp
        ViewWork.cpp

Charlie 1 Sep 2006 (HEAD and boinc_core_release_5_6_1 tag)
    - Removed wxLogTrace call which crashes BOINC Manager on Mac. (The compiler 
        gave a warning about this statement.)
    - Mac: Minor fix to XCode build script: extract symbol table file only if 
        product has not already been stripped.

    clientgui/
        MainDocument.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  1 Sep 2006
    - Aargh!  A recent Manager bug (run-mode selection acting weird)
        was because the core client and the Manager had different
        #defines for always/auto/never:
        one used 0/1/2 and the other used 1/2/3.

        There were a number of accidents of this sort waiting to happen,
        i.e. the same #defines cut-and-pasted into 2 different files.

        To keep this from ever happening again,
        I added a new file (lib/common_defs.h) that includes
        all #defines and enums shared among different BOINC
        components (client/Manager, screensaver/client, client/server etc.).
        This replaces result_state.h.

        In principle error_numbers.h should be merged into this file
        but this would required too much editing so I didn't do it.

    - Linux compile fix

    client/
        app.h
        client_msgs.h
        client_state.C,h
        client_types.h
        cs_cmdline.C
        cs_prefs.C
        gui_rpc_server.h
        gui_rpc_server_ops.C
        http_curl.h
        log_flags.C
        main.C
        ss_logic.h
    clientgui/
        MainDocument.h
    lib/
        app_ipc.h
        boinc_cmd.C
        common_defs.h (new)
        error_numbers.h
        gui_rpc_client.C,h
        gui_rpc_client_ops.C
        procinfo_unix.C
        results_state.h (removed)
        util.C
    sched/
        server_types.h

David  1 Sep 2006
    - Get things to compile on Win.
        The above fix seems to work.

    client/win/
        win_screensaver.cpp
    clientgui/
        ViewMessages.cpp
        sg_DlgMessages.cpp
        sg_ProjectsComponents.cpp

David  1 Sep 2006
    - make scripts work with sh

    sea/
        insecure.sh
        secure.sh

David  1 Sep 2006
    - Manager: in projects tab, show when an RPC is pending
        (and - added bonus - say why)
        Thanks to Paul (A.K.A. The Gas Giant)
        for not letting this slip through the cracks

        The problem: a while back I changed sched_rpc_request from bool to int
        in the client; neglected to change it in GUI RPC and Manager also

    client/
        acct_mgr.C
        cs_account.C
        cs_cmdline.C
        cs_scheduler.C
        gui_rpc_server_ops.C
        scheduler_ops.C,h
    clientgui/
        ViewProjects.cpp
    lib/
        common_defs.h
        gui_rpc_client.h
        gui_rpc_client_ops.C
        util.C,h

Bruce 4 Sept 2006
    - Ops pages: modify to include new client state outcome (aborted)

    html/
        inc/
            db_ops.inc

David  4 Sept 2006
    - core client: added a couple of rr_simulation messages
    - user web: removed SETI@home text from sample project.inc

    client/
        cpu_sched.C
        cs_scheduler.C
    html/project.sample/
        project.inc
    lib/
        app_ipc.C
        

Charlie 5 Sep 2006
    - Mac changes for new common_defs.h, removed results_state.h.

    clientgui/
        mac/
            mac_saver_module.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  5 Sept 2006
    - change run-mode #defines to match old ones

    lib/
        common_defs.h

David  5 Sept 2006
    - first pass at enforcing RAM limits:
        - if computer is in use (kbd/mouse input)
            BOINC will use at most half of RAM
            (i.e. it won't run a set of apps whose working set size
            exceeds RAM/2)
        _ if computer is not in use, BOINC will use at most all of RAM
            (it won't run a set of apps whose WSS exceeds RAM)

        This is pretty lame.  For example, in case 2 BOINC will
        run any set of programs, since by definitions their WSs
        all fit in RAM (they may be thrashing).
        So we need to do some thinking/experimenting.
    - Fix HTTP bug that affects 64-bit compiles
        (from Pav Lucistnik)

    api/
        boinc_api.C
    client/
        app.C,h
        app_control.C
        client_state.h
        cpu_sched.C
        cs_prefs.C
        http_curl.h
    html/user/
        show_user.php

David  5 Sept 2006
    - don't print too-much-memory messages
    - compile fix

    client/
        app_control.C
    clientgui/
        ViewProjects.cpp

Walt   5 Sept 2006
    - compile fix for Linux unicode build

    clientgui/
        ViewProjects.cpp

David  6 Sept 2006
    - compile warning fix

    client/
        time_stats.C

David  6 Sept 2006
    - Manager: if project allows account creation only on web site,
        show appropriate text in attach-project wizard

    clientgui/
        AccountInfoPage.cpp

David  6 Sept 2006
    - Renamed html/user/get_project_config.php to sample_get_project_config.php
        this avoids overwriting a project-modified version.
    - Fixed the "parse_config" script.

    html/user/
        get_project_config.php
        sample_get_project_config.php
    py/Boinc/
        setup_project.py
    tools/
        parse_config

David  6 Sept 2006
    - Web RPCs: clean up error returns.  All web RPCs now return
           <error>
               <error_num>N</error_num>
               <error_msg>xxx</error_msg>
           </error>
        in the case of an error.
        Both fields are always supplied,
        and in most cases they're both meaningful.
    - Web RPCs: make sure that return message is always XML.
        For example: if db_init() failed,
        we used to return an (HTML) error page.
        Instead: use db_init_xml() instead.

        Also, change get_str(), get_int() etc. so that
        if we're generating XML (i.e. if xml_header() has been called)
        an XML error is generated.
    - user web: check for the existence of ../project/donations.inc
        before trying to read it

    html/
        inc/
            forum_user.inc
            user.inc
            util.inc
            xml.inc
        user/
            am_get_info.php
            am_set_host_info.php
            am_set_info.php
            create_account.php
            create_team.php
            lookup_account.php
            show_user.php
            team_email_list.php
            team_lookup.php
        lib/
            error_numbers.h

David  6 Sept 2006
    - core client: scheduling bug fix:
        the definitions of "nearly runnable" were slightly
        different for project and result.
        This could lead to a rare situation where rr_simulation()
        would generate huge cpu shortfalls.
        (from John McLeod)

    client/
        client_types.C,h

David  7 Sept 2006
    - added program to test rr_simulation()

    client/
        rrsim_test.C

David  7 Sept 2006
    - core client: print log flags at start of log

    client/
        client_state.C
        log_flags.C,h

David  7 Sept 2006
    - core client: change log message writes to conform to docs.
        "task": write when app starts or finishes a result
            (i.e. two messages per result, period)
        "cpu_sched": write when core client starts,
            resumes, suspends, or quits an app
            (i.e. show the CPU scheduler's actions)
        "cpu_sched_debug": show the internal logic of the CPU scheduler
        "task_debug": show details of process birth and death
            (e.g. exit status, signals)

    client/
        app_control.C
        app_start.C
        cpu_sched.C

David  7 Sept 2006
    - remove some (but not all) compile warnings on Win/VS
        (no functional changes)

    client/
        app.C
        app_control.C
        client_state.C
        client_types.C
        cpu_sched.C
        gui_rpc_server_ops.C
        http_curl.C
        log_flags.C
        main.C
    lib/
        filesys.C
        parse.C

David  7 Sept 2006
    - core client: for debugging messages, include the name of
        the flag that enables the message.
        This makes the messages longer but should make then more usable
        when several flags are set.

    client/
        *.C

David  8 Sept 2006
    - core client: frustrating attempt to get page fault rate on Windows.
        It turns out that the "page fault count" reported by Windows
        includes "soft" page faults that don't read from disk.
        A typical process gets hundreds or thousands of these per second.
        There doesn't seem to be a way to get a count
        of real page faults.

        In any case: I added PROCINFO to the ACTIVE_TASK structure,
        eliminating the need for the vm_nbytes and rss_bytes fields.

    Note: the reason I'm worrying about this is:
    suppose an OS defines a process's "working set"
    as the amount of RAM it currently has.
    Then all running apps will appear to fit in RAM,
    and our goal of avoiding thrashing will fail.
    I was looking at page fault rate as a way to get around this.

    However: I ran across a note that says that Windows
    defines "working set" as "the amount of memory needed
    for the process to run efficiently".
    If that's the case, we don't need to worry about page fault rate.

    client/
        app.C,h
        app_control.C
        cpu_sched.C
    lib/
        procinfo.h
        procinfo_win.C
    win_build/
        boinc_cli_curl.vcproj

David  8 Sept 2006
    - Web RPCs: return correct error codes

    html/
        inc/
            xml.inc
        user/
            am_set_info.php
            create_account.php
            create_team.php

David  8 Sept 2006
    - manager: if client_account_creation_disabled is set,
        don't go to the account key page.
        Everything related to account keys can now be
        removed from the manager.
    - manager: removed redundant text on User Information page
    - manager: don't refer to "Messages Tab" (or any other tab)
        in the wizard; don't exist in simple GUI

    clientgui/
        AccountInfoPage.cpp
        CompletionErrorPage.cpp
        ProjectPropertiesPage.cpp
        
Kevin  8 Sept 2006
    - BSG: 
        - Resolved some remaining bugs that prevented display of project information for newly attached projects
        - The show graphics button will only be displayed when graphics can actually be displayed
        - Added additional states to explain why no work is running (ex: benchmarks running).
        - The drop down for project gui urls will now be updated when the list of GUI urls for the project become available
        - Detaching from a project no longer causes the app to minimize to the system tray
        
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_ClientStateIndicator.cpp
        sg_ClientStateIndicator.h
        sg_ImageButton.cpp
        sg_ImageButton.h
        sg_ProjectsComponent.cpp
        sg_ProjectsComponent.h
        sg_StatImageLoader.cpp
        sg_StatImageLoader.h
        sg_ViewTabPage.cpp

David  8 Sept 2006
    - core client:
        fix the mechanism that allows network access for 5 minutes
        if it's needed to carry out a user-initiated GUI RPC
        (e.g. attaching to a project).
        This situation allows network access even if the
        user has set network mode to "never".

        Otherwise, if you try to attach to a project,
        the manager sits there for 60 seconds,
        then responds with "network failure" or something like that.

        I suppose another solution would be for the manager to
        notice that network is suspended,
        and not let you try to attach to a project.
        But this way is more user-friendly, I think.

        Renamed gui_rpcs.got_recent_rpc() to recent_rpc_needs_network();
        Renamed last_rpc_time to time_of_last_rpc_needing_network.
        Shuffled order of RPCs in gui_rpc_server_ops.C;
        this is critical to things working.

    - manager: check for ERR_DB_NOT_FOUND in return codes from web RPCs
    - manager: parse error message in ACCOUNT_OUT correctly

    client/
        client_state.C
        gui_rpc_server.C,h
        gui_rpc_server_ops.C
    clientgui/
        AccountManagerProcessingPage.cpp
        ProjectProcessingPage.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  8 Sept 2006
    - core client, Unix:
        change syslog() call so message is INFO rather than EMERGENCY
        (from Evandro Menezes)

    client/
        main.C

David  8 Sept 2006
    - Manager: handle client_account_creation_disabled flag correctly

    clientgui/
        AccountInfoPage.cpp

David  9 Sept 2006
    - Manager: make Statistics tab text translatable

    clientgui/
        ViewStatistics.cpp

David  9 Sept 2006
    - XML parser: add function for parsing std::string

    lib/
        parse.C,h

Bruce 10 Sept 2006
    - For computing and tracking a host's average credit/cpu_time I
      have inserted a new averaging function
      update_credit_per_cpu_sec() into lib/util.C.  This function
      should be called from validator.C, and then the value of
      credit_per_cpu_sec should be exported by db_dump.C in the
      host_id.gz stats file.

      David, Eric, if you could check the code and logic here I would
      be grateful. This is currently disabled in validator.C with
      a #ifdef macro.  I won't enable it until we've agreed on this.

    lib/
        util.C
        util.h
    sched/
        db_dump.C
        validator.C

David  11 Sept 2006
    - core client: code to get mem usage should now work on all versions
        of Windows (it's a no-op on 9X, ME)

    lib/
        procinfo_win.C

David  11 Sept 2006
    - API: fix bug in parsing global prefs.
        GLOBAL_PREFS::parse_override() was calling xp.parse_start(),
        which is wrong because in some cases
        (e.g. parsing app init data file)
        the start tag has already been parsed.
        Principle: only call xp.parse_start() if you're
        the function that actually opens the file.
    - convert parsing of global preferences to use new XML parser
    - core client: print error message if can't parse cc_config.xml

    client/
        cs_prefs.C
        log_flags.C
    lib/
        app_ipc.C
        gui_rpc_client_ops.C
        prefs.C,h

David  11 Sept 2006
    - API bug fix

    lib/
        app_ipc.C

David  11 Sept 2006
    - XML parser bug fix (from Urs Echternacht)

    lib/
        parse.C

Rom    11 Sept 2006
    - Bug Fix: Keep one second disk writes from happening on the OnRender()
        function of the advanced frame.  GTK2 appears to emulate user activity
        when setting a control's state programtically which in turn causes
        the set_*_mode rpc functions which in turn causes the state file to
        be flagged as dirty.
        
    clientgui/
        AdvancedFrame.cpp, .h
        
Kevin    12 Sept 2006
    - BSG
        - Modify skin.xml format to be more readable
        - Add additional check to a skin.xml file to ensure that it is valid before attempting to display
        
    clientgui/
        sg_SkinClass.cpp
 
David  12 Sept 2006
    - Core client and account manager protocol:
        account manager replies can include a
        <opaque>
           ...
        </opaque>
        element.  It is stored in the acct_mgr_login.xml file,
        and returned verbatim in subsequent account manager RPCs.
        This is intended to allow account managers to send a
        string analogous to BOINC's account key,
        identifying the user and/or host on subsequent RPCs.
        This overrides the name/password, and allows RPCs to
        continue working even if the user changes name/password
        on the AMS site.

        NOTE: the contents of <opaque> are arbitrary XML.
        Can contain other elements, and can have newlines.
        Doing this required switching all AMS-related XML parsing
        to use the new XML parser.
        So now AMS replies don't have any XML formatting restrictions.
        Woo-hoo!
    - XML_PARSER: added element_contents() method to parse
        stuff that may contain tags (like <opaque>)

    client/
        acct_mgr.C,h
    lib/
        parse.C,h

David  12 Sept 2006
    - user web: $n -> ITEMS_PER_PAGE

    html/user
        top_teams.php
        top_users.php

David  12 Sept 2006
    bugs that affect newly-created projects:

    - remove outdated forum_sample_index.php (just use forum_index.php)
    - include util.inc in project.inc
    - create_forums.php is a script, not a web page

    html/
        ops/
            create_forums.php
        project.sample/
            project.inc
        user/
            forum_sample_index.php (removed)
    py/Boinc/
        setup_project.py

Kevin    14 Sept 2006
    - BSG
        - Modify the way the the skin.xml is read and stored
        - Added a bit of trace logging
        - Modified the preferences dialogue so that changing the skin is a seperate action 
          from changing local settings
        - Fixed some bugs that were causing the BSG to crash
         
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_DlgPreferences.cpp/h
        sg_ProgressBar.cpp
        sg_ProjectsComponent.cpp
        sg_SkinClass.cpp/h
        sg_StaticLine.cpp/h
        
Kevin    14 Sept 2006
    - BSG
        - Fixed issue with connection failure dialogue being repeatedly displayed
        - BSG now calls CBOINCBaseFrame::RestoreState() and CBOINCBaseFrame::SaveState()
         
    clientgui/
        sg_BoincSimpleGUI.cpp/h

Walt   14 Sept 2006
    -Get page_fault_count for process in Linux

    lib/
        procinfo_unix.C

Kevin    15 Sept 2006
    - BSG
        - Changed skin file so that most images are obtained from the skin class
         
    clientgui/
        sg_BoincSimpleGUI.cpp/h
        sg_ClientStateIndicator.cpp/h
        sg_DlgMessages.cpp/h
        sg_DlgPreferences.cpp/h
        sg_ImageButton.cpp/h
        sg_ImageLoader.cpp/h
        sg_ProgressBar.cpp/h
        sg_ProjectsComponent.cpp/h
        sg_SkinClass.cpp/h
        sg_StatImageLoader.cpp/h
        sg_ViewTabPage.cpp/h
     clientgui/common
         wxFlatNotebook.cpp/h
        
Kevin    15 Sept 2006
    - BSG
        - Changed references to bitmaps to refer to the skin object
        - Fixed a bug that caused the BSG to crash when switching from Work Display -> No Work -> Work Display
         
    clientgui/
        sg_BoincSimpleGUI.cpp/h
        sg_ClientStateIndicator.cpp/h
        sg_DlgMessages.cpp/h
        sg_DlgPreferences.cpp/h
        sg_ProgressBar.cpp/h
        sg_ProjectsComponent.cpp/h
        sg_SkinClass.cpp/h
        sg_ViewTabPage.cpp/h

Rom    17 Sept 2006
    - Clean up some of the dialup logic.
    - Make sure that only one dialog can be displayed at a time.
    
    clientgui/
        BOINCBaseFrame.cpp
        BOINCDialupManager.cpp, .h

Walt   18 Sept 2006
    - Compile fixes for Linux

    clientgui/
        BOINCDialupManager.cpp

David  18 Sept 2006
    - core client: bug in config file error message printfs

    client/
        log_flags.C

Eric K    18 Sept 2006
    - Fixed stack corruption that occurs if stderr contains a c format 
      code.  Bug reported by Nicolas Alvarez.

    client/
        client_types.C

Charlie 19 Sept 2006
    - Mac: Add process memory info for Mac, using a pipe to ps command.  
        Does not set the page_fault_count, user_time or kernel_time fields 
        in PROCINFO struct.  See comments in procinfo_mac.C for other 
        values of possible interest that are avaiable from ps command.
    - Fix compiler warning in http_curl.C.

    client/
        http_curl.C
    lib/
        procinfo_mac.C (new)
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  19 Sept 2006
    - update account-created email
    - user web: use $_POST instead of $_HTTP_POST_VARS.
        The latter doesn't work in PHP 5
        (from Christian Beer)

    html/
        inc/
            email.inc
        ops/
            make_fake_tables.php (removed)
            migrate_tables.php (removed)
            mungetest.php (removed)
        user/
            edit_forum_preferences_action.php

David  19 Sept 2006
    - removed references to Janus' 'download network',
        which he's phasing out.
        Instead, just keep a list of addons in doc/addons.php

    html/
        inc/
            download.inc (removed)
            download_network.inc (removed)
        user/
            download_network.php (removed)
            sample_index.php

Walt   20 Sept 2006
    - Bug fix: fix task status text when the manager connects to an
        older client that doesn't support <get_cc_status>.

    clientgui/
        ViewWork.cpp

Charlie 21 Sept 2006
    - Mac: fix compiler warning.
    - Mac: Set PROCINFO user_time to cpu time from ps command; use rsz 
        instead of rss for working_set_size; set page_fault_count to 
        pagein value from ps command.  Unfortunately, none of these 
        selectors work correctly in OS X version of ps command: pagein, 
        majflt and minflt. 
    - Mac: modify release script to include these files in distribution: 
        switcher/switcher, switcher/setprojectgrp, Mac_SA_Secure.sh and 
        Mac_SA_Insecure.sh.
    - Mac: improvements to Mac_SA_Secure.sh, Mac_SA_Insecure.sh scripts.

    clientgui/
        BOINCDialupManager.cpp
    lib/
        procinfo_mac.C
    mac_installer/
        release_boinc.sh
    mac_build/
        Mac_SA_Insecure.sh
        Mac_SA_Secure.sh

Charlie 25 Sept 2006
    - Mac: Use pipe to new helper application AppStats instead of 'ps' 
        command to get process info for project applications and their 
        descendants.  On OS X, most of this info is available only to 
        the super-user, so AppStats runs setuid root (as do 'ps' and 
        'top'.)  This allows us to completely fill in PROCINFO struct.
    - Mac: Also set host_info.m_swap in procinfo_setup(), because 
        sysctl(vm.vmmeter) doesn't work on OS X, so hostinfo_unix.C 
        function HOST_INFO::get_host_info() can't get total swap space. 

    client/
        app_stats_mac.C (new)
        check_security.C
        file_names.h
        hostinfo_unix.C
    clientgui/
        mac/
            SetupSecurity.cpp
    lib/
        procinfo_mac.C
    mac_installer/
        release_boinc.sh
        release_GridRepublic.sh
    mac_build/
        Mac_SA_Insecure.sh
        Mac_SA_Secure.sh
        boinc.xcodeproj/
            project.pbxproj

David  25 Sept 2006
    - core client, Mac: if file ownership not secure, describe
        -insecure option in error message

    client/
        main.C

David  25 Sept 2006
    - revise forum post rules to include 'kid friendly'

    html/inc/
        forum.inc

Eric K 26 Sept 2006
    - new functions in util.[Ch]  remove_duplicate_words(char * or string &).
      removes duplicate words from a space or comma delimited string.
    
    lib/
        util.[Ch]

David  26 Sept 2006
    - user web: if user has a compound language (like en-us) in their list,
        and there's a translation file for the base language (en), use it.

    html/inc/
        translation.inc

Eric K 26 Sept 2006
    - Changes to configure.ac
      Added check for header sys/auxv.h (Solaris)
      Added check for function getisax() (Solaris 10)
      Added check for libcups (MacOS command line build)
      Added check for libSystemStubs (MacOS command line build)

    configure.ac

David  26 Sept 2006
    - fix FCGI compile error

    lib/
        miofile.h

Kevin  25 Sept 2006
    - BSG
        - Fixed an bug that prevented the message dialogue from closing when the X button was clicked.
        - Add a link to the home page for all projects in the drop down
        - Change label in menu in the advanced view read 'Switch to Simple View'
        - Fix bug that occurs when the notebook is rendered while a dialogue box is open         
        
    clientgui/
        AdvancedFrame.cpp
        sg_BoincSimpleGUI.cpp/h
        sg_DlgMessages.cpp
        sg_ProjectsComponent.cpp
        sg_StatImageLoader.cpp
        sg_ViewTabPage.cpp/h

Charlie 26 Sept 2006
    - Mac: AppStats helper application gets info only for descendants of 
        BOINC, which substantially improves speed & efficiency. (PROCINFO 
        totals for other processes are not currently used anywhere.)
    - Mac: Set host_info.m_swap to total free disk space, because OS X 
        uses all of the available space on the machineÕs boot partition
        for swap space if needed.

    client/
        app_stats_mac.C
        hostinfo_unix.C

David  27 Sept 2006
    - fix compile of FCGI scheduler and file upload handler
        NOTE: I did this by manually putting in a #ifdef _USING_FCGI_
        in miofile.C
        I don't understand why this was necessary.

    lib/
        miofile.C,h
        parse.C
    sched/
        Makefile.am

Kevin  27 Sept 2006
    - BSG
        - Fix bug that caused an occasional error in the BSG when switching skins
        
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_ProgressBar.cpp/h

Charlie 27 Sept 2006
    - Mac: Use full-duplex pipes so AppStats helper application can stay open 
        for better efficiency.  Note: the code in app_stats_mac.C and 
        procinfo_mac.C uses standard BSD calls and so should work for any 
        BSD Unix system (BSD 4.3 or above).
    - Mac: Update host_info.m_swap on each PROCINFO update.
    - Comment out bogus memory usage exceeded message if mem_usage_debug log 
        flag is set.
    
    client/
        app_control.C
        app_stats_mac.C
    lib/
        procinfo_mac.C
        
Kevin  27 Sept 2006
    - BSG
        - Add support for additional file types for the skin
          (GIF and ICO - in addition to the BMP, XPM and PNG 
          that were already available)
           - Remember where the BSG was positioned last time it was open
           - Position the messages dialogue so that the most recent message is displayed
           - Add text to the preferences dialogue
           - Reduce size of some of the skin images
        
    clientgui/
        BOINCGUIApp.cpp
        sg_BoincSimpleGUI.cpp
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp

Charlie 28 Sept 2006
    - Mac: Add safety features and fix bugs in procinfo_setup().

    lib/
        procinfo_mac.C

David  28 Sept 2006
    - user web: add page for "Certificate of Computation"
        (mostly borrowed from SETI@home; needs to be
        customized by the project)

    html/
        inc/
            cert.inc (new)
        user/
            cert1.php (new)
            sample_index.php

David  28 Sept 2006
    - Change first line of various scripts from
        #!/usr/local/bin/php (which seems to be Solaris-specific)
        to
        #!/usr/bin/php (which seems to be more standard)

        It would be nice to have this not hardwired.
        One solution would be to omit the first line
        (make these files into PHP files rather than scripts)
        and require the <command> tags in config.xml to specify the PHP path.
        But this would disrupt some projects, so I'll defer this.

    html/ops/
        db_update.php
        update_forum_activities.php
        update_profile_pages.php
        update_uotd.php
        watchdogs.php
        wd_nresults_changing.php

David  28 Sept 2006
    - Redo the above, using
        #!/usr/bin/env php
        (suggested by Eric Myers)

    html/ops/
        db_update.php
        update_forum_activities.php
        update_profile_pages.php
        update_uotd.php
        watchdogs.php
        wd_nresults_changing.php

Kevin  29 Sept 2006
    - BSG
        - Changed workunit area to use a static image rather then an animiated gif
        - Center the image within the space and resize it dyanmically if necessary to fit
          within the allocated space
           - Fix bug that makes sure that the BSG will be displayed on the screen if the 
             values of the previous location are corrupted for some reason
    
    clientgui/
        BOINCGUIApp.cpp
        sg_BoincSimpleGUI.cpp
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp

David  29 Sept 2006
    - include cpu_usage_limit in prefs XML
        (in get_state GUI RPC reply, and in app init file)

    lib/
        prefs.C

Rom    1 Oct 2006
    - Update libcurl for Windows to version 7.15.5 so that curl
        can handle bandwidth throttling.
        
    curl/
        <Various Files>

David  2 Oct 2006
    - Add code that sets upload/download bandwidth limits
        using new Curl functions.
        Curl's limits are per connection.
        So whenever we make a new connection or close an old one,
        and the prefs have a limit defined,
        divide it uniformly among connections in that direction
        and call libCurl to set the limit.

    client/
        file_xfer.C,h
        gui_http.C
        http_curl.C,h

David  2 Oct 2006
    - core client: bug fix in bandwidth-limiting code
    - core client bug fix: when reset or detach a project,
        sometimes would get a crash when deleting FILE_INFOs.
        This is because instead of
            iter = foo.erase(iter);
        we just had
            foo.erase(iter);
        Clean up all code to always use the former.
    client/
        app.C
        client_state.C
        cpu_sched.C
        file_xfer.C
        http_curl.C,h
        pers_file_xfer.C

David  2 Oct 2006
    - core client: implement memory management system, as described in
        http://boinc.berkeley.edu/memory.h
    - core client: fix erroneous speed calculation
        when a file xfer is resumed

    TODO:
        - export memory usage into to apps
        - change scheduler to use memory prefs

    client/
        app.h
        app_control.C
        client_state.h
        cpu_sched.C
        cs_prefs.C
        http_curl.C,h
    lib/
        prefs.C,h
        procinfo.h
        procinfo_win.C

Charlie 2 Oct 2006
    - Mac: Changes for libcurl 7.15.5.

    mac_build/
        buildcurl.sh
        HowToBuildBOINC_XCode.rtf
        boinc.xcodeproj/
            project.pbxproj

David  3 Oct 2006
    - API: pass working set size and max WSS from core client to app.
        This lets "memory-aware" applications change their memory usage
        (e.g. by disabling/enabling graphics) in response to
        changing requirements.
    - User web: add preferences for max RAM usage while busy and idle
    - Do WSS averaging at higher level

    api/
        boinc_api.C,h
    client/
        app.C
    html/inc/
        prefs.inc
    lib/
        procinfo_unix.C
        procinfo_win.C

David  3 Oct 2006
    - core client: memory management bug fixes and debug messages
    - core client: include memory-related info (wss, max_wss)
        in heartbeat messages to apps
    - core client: change memory-related messages to use MB notation
    - core client: remove old bandwidth-limiting code

    Intermediate checkin.  Still to do:
    - save/restore smoothed WSS
    - change RR simulator to reflect memory management

    client/
        app.C
        app_control.C
        cpu_sched.C
        cs_prefs.C
        http_curl.C,h
    lib/
        prefs.C
        util.h
    win_build/
        boinc_cli_curl.vcproj

David  3 Oct 2006
    - core client: save/restore smoothed WSS

    api/
        boinc_api.C
    client/
        app.C
    html/inc/
        prefs.inc

David  3 Oct 2006
    - In a situation where project A as a result that uses too
        much RAM to run right now, and is in deadline trouble,
        the work-fetch policy wouldn't get more work,
        even if project B has small-RAM jobs.  This is bad.

        Fix (kludge): rr_simulator() doesn't count a result
        as being a deadline miss if it uses too much RAM
        to run right now.
    - Changes to compute_work_requests():
        - if a contactable non-CPU-intensive project needs work,
            return immediately
        - use p->rr_sim_deadlines_missed, NOT p->deadlines_missed
            (the latter is a temp variable,
            with no defined value at this point)

    client/
        client_state.h
        cpu_sched.C
        cs_scheduler.C

David  3 Oct 2006
    - core client: fixed bug that could cause Curl to be
        passed a null pointer (bandwidth limiting)

    client/
        file_xfer.C
        http_curl.C,h

David  3 Oct 2006
    - core client and manager: set things up so that if
         a result isn't running because it requires too much RAM,
         an appropriate message ("Waiting for memory")
         is shown in the Manager

    client/
        app.C,h
        cpu_sched.C
    clientgui/
        ViewWork.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C
        gui_rpc_client_print.C

Charlie 4 Oct 2006
    - Mac: Update XCode project for simple gui (new files, etc.)

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  4 Oct 2006
    - scheduler: if request has RAM usage limits preferences,
        take them into account in deciding whether to send work.
        Return appropriate message depending on whether
        1) machine doesn't have enough RAM period, or
        2) machine has enough RAM, but limits are too low
    - XML parser: fix bug where empty string (<foo></foo>)
        wasn't being parsed correctly

    lib/
        parse.C
    sched/
        sched_send.C
        server_types.C,h

David  4 Oct 2006
    - core client: initialize ACTIVE_TASK::too_large
        (eliminate spurious "waiting for memory" message)

    client/
        app.C

David  4 Oct 2006
    - db_dump: fix crashing bug
    - XML parser: fix yet another bug

    lib/
        parse.C
    sched/
        db_dump.C

Charlie 4 Oct 2006
    - Mac: Update XCode project for simple gui.

    mac_build/
        sg_Info.plist (new)
        boinc.xcodeproj/
            project.pbxproj

Charlie & Rom 4 Oct 2006
    Rom fixed a Mac compiler error in SimpleGUI code.

    clientgui/
        sg_ViewTabPage.cpp
        
Kevin  5 Oct 2006
    - BSG
        - Changed workunit area to use a static image rather then an animiated gif
        - Center the image within the space and resize it dyanmically if necessary to fit
          within the allocated space
        - These changes should have been checked in with my changes on Sept 29
 
    clientgui/
        sg_ImageButton.cpp
        sg_ViewTabPage.cpp/h

David  6 Oct 2006
    There's a problem with the current global prefs design:
    A client has two different forms of global prefs:
    - the "master prefs", which are stored on disk (in global_prefs.xml),
        which have a mod time, and which can include <venue> elements.
    - the "working prefs", which are formed by taking the
        master prefs (using the venue variant for this host)
        and then modifying it by the contents of the prefs override file.
        The working prefs determine what the core client actually does,
        i.e. how much memory/disk it uses.
    When the client makes a scheduler RPC, the request message includes
    global prefs, which are used for two purposes:
        1) so that the scheduler can take the prefs into account in making
        scheduling decisions;
        2) to propagate preferences between projects, so that users
        see consistent prefs, and can edit them on any project site.
    The problem is: for 1), the scheduler needs the working prefs.
    For 2), it needs the master prefs.
    Currently the client sends the master prefs.
    So in some cases, scheduling decisions are now based
    on the wrong information.

    Fix: include both master prefs and working prefs in request msg.
    New server logic:

    if request message includes <working_global_preferences>
        P = <working_global_prefs>
    else
        if req msg includes <global_preferences>
            if newer than DB
                P = <global_prefs>
            else
                P = DB prefs

    use P for sched decisions

    If request message includes <global_preferences>,
        and mod time is later than DB version,
        and email hash is the same,
        update DB

    Reply: if DB prefs have later mod time than P
        send DB prefs in reply

    -----------------------
    - prefs: bandwidth limits default to zero (unenforced) rather than 1e12

    lib/
        prefs.C,h
    sched/
        handle_request.C
        sched_send.C
        server_types.C,h

David  6 Oct 2006
    Client-side part of above fix,
        and support for "host-specific" global preferences
    - include <working_global_preferences> in scheduler requests.
        In combination with the above server changes,
        this will fix the design problem described above.
    - include <global_preferences> in scheduler requests
        only if master prefs are not host-specific.
        When a host with host-specific prefs talks to an old scheduler,
        the scheduler won't know its current prefs.
        This problem will go away as projects upgrade their software.
    - if we get <global_preferences> in a scheduler RPC reply,
        ignore it if it's from an old server (pre-5.7)
        and we have host-specific prefs

    client/
        app_control.C
        cs_scheduler.C

David  6 Oct 2006
    - core client: add the ability to hardwire the host venue.
        Put <host_venue>X</host_venue> in your
        global_prefs_override.xml file
        (outside the <global_preferences> element)

    client/
        cs_prefs.C

David  9 Oct 2006
    - core client: when parsing list of project files in sched reply,
        delete the old sym link files first

    client/
        client_types.C

David  9 Oct 2006
    - Manager: add code that shows disk usage
        (total and project) as pie chart rather than text.
        From Frank Weiler

    clientgui/
        Events.h
        ViewResources.cpp,h
        common/
            wxPieCtrl.cpp,h (new)
    win_build/
        boincmgr_curl.vcproj

Rom    9 Oct 2006
    - Prepare for the default skin to be embedded within the BOINC manager.
    
    clientgui/res/skins/default
        <Added Files>
    clientgui/res/templates/skins
        <Added Files>
    clientgui/skins/default
        <Remove Files>

David  9 Oct 2006
    - core client: when parsing project files, delete old symlink files
        only on scheduler RPC (not when read state file)

    client/
        client_types.C,h
        cs_statefile.C
        scheduler_op.C

David  9 Oct 2006
    - debug the above
    client/
        client_types.C,h
        cs_scheduler.C
        cs_statefile.C

Kevin  9 Oct 2006
    - BSG
         - Make sure project section renders even if the manager cannot connect to the core client
        - Eliminate dual timer issue if you change skins and have a slide show running
        - Extend the wxFlatNotebook and moved all code related to the notebook and workunits into the new class (WorkunitNotebook)
        - Change the height of the BSG to 570 pixels (from 600)
        - Change the display area for the slide show to eliminate black border except where required by text for show graphics.  New dimensions are width = 290, height = 126 
        - Check for updated slideshows after a project RPC and any files finish downloading  

    clientgui/
        sg_BoincSimpleGUI.cpp/h
        sg_ClientStateIndicator.cpp
        sg_ProjectsComponent.cpp
        sg_StatImageLoader.cpp/h
        sg_ViewTabPage.cpp/h

Charlie 10 Oct 2006
    - Mac: Update XCode project for wxPieCtrl.  NOTE: new ViewResources.cpp 
        causes very serious crash on Mac (totally crashes system, requires 
        restarting computer.)  wxPieCtrl web site says it has been tested 
        only for wxMSW and wxGTK.  So as a temporary workaround I have 
        added "#ifndef __WXMAC__" in 2 places in ViewResources.cpp
    - Mac: Update release scripts to include COPYRIGHT and COPYING LGPL 
        files in distributions.

    clientgui/
        ViewResources.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        release_boinc.sh
        Postinstall.cpp

David  11 Oct 2006
    - core client: add project dir to LD_LIBRARY_PATH env var
        when running apps on Linux.
        This is a first step towards letting apps dynamically
        link to .so files without having to use <copy_file/>
        to put them in the slot dir.
        NOTE: not quite there yet; need to avoid creating
        symlink file in slot dir.
    - core client: bug fix so that output file references
        with <copy_file/> set are handled correctly.
    - core client: #ifdef Curl bandwidth-limit calls
        (workaround until I can get libcurl 7.15.5 installed on isaac)
    client/
        app_start.C
        http_curl.C
    sched/
        trickle_handler.C

        
Kevin  11 Oct 2006
    - BSG
         - Pause slide show for workunits that are not running
        - Add message to space below slide show images to explain status of the workunit (running, paused)
        - Fixed bug that sometimes caused slide shows to not load properly when first downloaded
          or after they have been updated by the project
        - Prevent workunit name from overflowing the side of BSG
        - Play with tabs to make the selected tab stand out
        - Fixed bug which caused a crash when switching between simple and advanced views
        - Fixed a significant memory leak 
        - Eliminate some compiler warnings 

    clientgui/
        sg_BoincSimpleGUI.cpp/h
        sg_ClientStateIndicator.cpp
        sg_ImageButton.cpp/h
        sg_ProjectsComponent.cpp
        sg_SGUIListControl.cpp/h
        sg_StatImageLoader.cpp
        sg_ViewTabPage.cpp/h

Charlie 11 Oct 2006
    - Fix compiler warnings and errors.
    - Changes to wxPieCtrl to fix crashes, compiler warnings on Mac.

    client/
        app_start.C
        http_curl.C
    clientgui/
        ViewResources.cpp
        common/
            wxPieCtrl.cpp,h

David  12 Oct 2006
    - scheduler: fix bug that prevented prefs propagation

    sched/
        handle_request.C

David  12 Oct 2006
    - core client: keep track of (per project):
        - the last time a scheduler RPC finished
        - the last time the final project file download finished
        These are not maintained in the state file;
        i.e. when the core client starts up,
        they'll be zero until the respective event occurs.
    - Include these in the GUI RPCs that return projects
        (i.e. get_simple_gui_info(), get_state(), get_project_status())

    client/
        client_types.C,h
        cs_files.C
        cs_scheduler.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C
        gui_rpc_client_print.C

Charlie 12 Oct 2006
    - More fixes to wxPieCtrl for Mac.

    clientgui/
        ViewResources.cpp
        common/
            wxPieCtrl.cpp,h

Rom    12 Oct 2006
    - Bug Fix: CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE
        are apart of an enum and not a preprocessor define. Check for 
        compatibility by using LIBCURL_VERSION_NUM instead.
    - Bug Fix: When switching from the simple GUI to the advanced GUI be sure
        to restore the window size correctly.
        
    client/
        http_curl.C
    clientgui/
        AdvancedFrame.cpp

Rom    13 Oct 2006
    - If we have received the authenticator via a setup cookie then run the
        wizard in a completely automated fashion. Only stop if there was an
        error.
        
    clientgui/
        BOINCBaseWizard.cpp, .h
        CompletionPage.cpp
        WizardAttachProject.cpp

Kevin   16 Oct 2006
    - BSG
         - Update Project GUI urls when a rpc has completed with a project
        - Update User Stats when a rpc has completed with a project
        - Update project slide show when new downloads have been received from the project

    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_ProjectsComponent.cpp/h
        sg_StatImageLoader.cpp/h
        sg_ViewTabPage.cpp/h

David  16 Oct 2006
    - removed db/mysql.h.  Not sure why it was there,
        but apparently it caused big problems for projects using MySQL 5
        (reported by Carl C)

    db/
        mysql.h (removed)

Charlie 16 Oct 2006
    - New colors for wxPieCtrl from Frank Weiler.

    clientgui/
        ViewResources.cpp,h

Rom    16 Oct 2006
    - Bug Fix: Benchmarks should be run using an idle thread priority instead of the
        normal thread priority.
        
    client/
        cs_benchmark.C

Charlie 17 Oct 2006
    - Additional fixes for wxPieCtrl from Frank Weiler.

    clientgui/
        ViewResources.cpp
        common/
            wxPieCtrl.cpp

Matt 17 Oct 2006
    - Updated forum code so that only project administrators can banish users, not
      moderators

    html/
      user/
        forum_moderate_post_action.php
      inc/
        forum.inc
        forum_moderators.inc
        
Kevin 18 Oct 2006
    - BSG
         - Added a state to inform the user when the client is communicating with a project
        - Added a 'change' button to the preferences to change just the skin
        - Fixed bug that caused the skin to crash when a invalid skin was selected
        - Do not flash the 'messages' between red and black for messages that arrive while
          the messages dialogue is open
        - Set the selected tab when the BSG is first opened to be a workunit that is currently running

    clientgui/
        sg_ClientStateIndicator.cpp/h
        sg_DlgPreferences.cpp
        sg_ProjectsComponent.cpp/h
        sg_SkinClass.cpp/h
        sg_ViewTabPage.cpp

David  18 Oct 2006
    - let project show addons page with their own header/footer

    html/user/
        download_network.php

Rom    18 Oct 2006
    - Bug Fix: Fix license snafus
    
    api/
        reduce_main.C

David  18 Oct 2006
    - fix line endings

    clientgui/
        ViewResources.cpp,h

Rom    18 Oct 2006
    - Bug Fix: Change the regex that validates email addresses in the manager to a 5 star rated
        expression. See http://regexlib.com/REDetails.aspx?regexp_id=328
        
    clientgui/
        ValidateEmailAddress.cpp

Kevin 18 Oct 2006
    - BSG
         - Modify the pause/resume button to correctly set both execution and network settings

    clientgui/
        sg_ProjectsComponent.cpp

David  19 Oct 2006
    - core client: if can't rename state file, show "check permissions" message
    - user web: certificate numeric units off by 1000 (from Carl C)

    client/
        cs_statefile.C
    html/inc/
        cert.inc

Rytis  19 Oct 2006
    - user web: allow account creation via an RPC when invitation code is
        required.
        
    html/
        user/
            create_account.php
        inc/
            xml.inc

David  19 Oct 2006
    - project back end: add mechanism so that PHP scripts can be
        run from the 'start' script in a way that works
        with both PHP4 and PHP5.
        To run html/ops/update_profile_pages.php, for example, put
            <cmd>run_in_ops update_profile_pages.php</cmd>
        in your config.xml file <task> entry.

        (run_in_ops is a script that lives in bin/,
        cds into ../html/ops, and executes its args)

    py/Boinc/
        setup_project.py
    tools/
        run_in_ops (new)

Rom    19 Oct 2006
    - Bug Fix: Last regex didn't work right. Reverting back to the regex before yesterday's
        bug fix and just adding in the other valid characters. What a pain in the butt.
        
    clientgui/
        ValidateEmailAddress.cpp

Rom    19 Oct 2006
    - Bug Fix: When a BOINC rename operation failed we were returning -1 no matter what the
        real error code was. rename only returns a -1 and then you are supposed to lookup
        the real error code by using errno.
    - Add some additional information to the message log in case a state file rename 
        operation fails.
    - Tweak boinc_rename, boinc_mkdir, boinc_rmdir, boinc_delete, and boinc_copy so that
        they return Win32 error codes instead of just -1. We can now use the
        windows_error_string and windows_format_error_string functions when those fail
        to give us and the community more useful information about what has gone wrong.
    - Log additional information in case a rename operation fails for account_*.xml files
        and stat files.

    client/
        cs_account.C
        cs_statefile.C
    lib/
        filesys.C

Rom    20 Oct 2006
    - MGR: CBrandingScheme is now dead.
        All references in the advanced GUI have been changed
        to CSkinManager. Simple GUI to follow.
        
    clientgui/
        <*.cpp>

David  20 Oct 2006
    - core client: if remote_hosts.cfg is present,
        reread it (and resolve host names) on each GUI RPC connection,
        in case IP addresses have changed

    client/
        client_state.h
        gui_rpc_server.C
    lib/
        filesys.C

David  20 Oct 2006
    - Output files can be tagged as "optional".
        If the application doesn't generate an optional output file,
        the client treats it as normal
        (i.e. doesn't flag it as an error)
        NOTES:
        1) to make an output file optional,
            put <optional/> in its <file_ref>
            element in the result template file
        2) clients earlier than 5.8 don't recognize this attribute;
            they will mark results as "compute error" if
            any of their output files are missing

    client/
        client_types.C,h
        cs_apps.C

David  20 Oct 2006
    - user web: use regexp-based check for email validity
        (from Frank Thomas)
    - user web: on CPU throttle preference, say that
        it works only with 5.6+

    html/inc/
        email.inc
        prefs.inc

David  20 Oct 2006
    - fix potential buffer overrun in db_dump.C (from Carl)

    sched/
        db_dump.C

Charlie 21 Oct 2006
    - Mac: FIx new compile error by including "BOINCBaseFrame.h".
    - Added SkinManager.cpp to XCode project.

    clientgui/
        mac/
            MacSysMenu.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  21 Oct 2006
    - Server: apps can be labeled as "beta",
        and jobs for them will be sent only to users with
        "<allow_beta_work>1</allow_beta_work>" in their project preferences.
        This lets you do application testing without
        creating a separate project,
        which has advantages both for you (1 projects instead of 2)
        and for testers (their testing gives them points
        in your main project)
    - Scheduler: refined the criteria for "reliable" hosts
        to which old results are sent,
        and added a param for reducing delay bound
        when sending results to reliable hosts
    - add -sleep_interval option to assimilator
    - move -reliable flag from feeder
    - add to sched config:
        reliable_min_avg_credit
        reliable_min_avg_turnaround
        reliable_time
        reliable_reduced_delay_bound

    (from Kevin Reed)

    NOTES: updating your server software to this version or later requires
        a small database change (see html/ops/db_update.php)

    db/
        boinc_db.C,h
    lib/
        parse.C
    sched/
        assimilator.C
        feeder.C
        sched_array.C
        sched_config.C,h
        sched_locality.C
        sched_send.C,h
        server_types.h

David  21 Oct 2006
    - small cleanups to the above

    db/
        boinc_db.C,h
        schema.sql
    html/ops/
        db_update.php
    py/Boinc/
        database.py
    sched/
        sched_send.C
        server_types.h

Rom    22 Oct 2006
    - MGR: CSkinClass is now dead.
        All references in the simple GUI have been changed to CSkinManager.
    - Cleaned up a bunch of warnings.
        
    clientgui/
        <*.cpp>

Charlie 21 Oct 2006
    - Mac: Removed sg_SkinClass.cpp/h from XCode project.
    - Fixed incorrect assignments of m_iconApplicationDisconnectedIcon and 
        m_iconApplicationSnoozeIcon.

    clientgui/
        SkinManager.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  22 Oct 2006
    - scheduler: rename "reliable_min_avg_turnaround"
        to "reliable_max_avg_turnaround"
    - add some doc for new reliable-host scheme

    sched/
        sched_config.C,h
        sched_send.C

David  23 Oct 2006
    - core client: AMS replies can include <resource_share>
        elements in <account> elements.
        These override the resource shares reported by projects.
        Account managers can thus provide host-level control of resource share.

    client/
        acct_mgr.C,h
        client_state.C
        client_types.C,h

David  23 Oct 2006
    - core client: limit # of simultaneous net xfers to 8
    - core client: if there was an HTTP error on download,
        we were truncating the file back to its original size
        because of fear that
        "error-reporting HTML may have been appended"
        (I'm not sure if this actually every happens).
        In any case, I changed to logic so that, on HTTP error,
        we remove at most 5KB from the end of the file.
    - removed SkinManager.cpp from VS2005 project file

    client/
        cs_files.C
        file_xfer.C
        http_curl.C
    win_build/
        boincmgr_curl.vcproj

David  24 Oct 2006
    - core client: use CPU shortfall instead of time_until_work_done()
        in a couple of places; should slightly improve work fetch

    client/
        cs_scheduler.C
    html/inc/
        prefs.inc

David  24 Oct 2006
    - core client: when get new global prefs, enforce
        network bandwidth limits (in case they changed)

    client/
        cs_prefs.C

Rom    25 Oct 2006
    - MGR: Both the simple GUI and advanced GUI respond to skin changes
    - MGR: Skins can now include different languages. Searches for the
        canonical locale id first (pt_BR) and then will fall back to the
        root language (pt). If both fail it'll try english before loading
        the default resources.
    - MGR: Wizards can now use skinned resources
            
    clientgui/
        BOINCBaseFrame.cpp, .h
        BOINCGUIApp.cpp, .h
        DlgOptions.cpp
        Events.h
        sg_BoincSimpleGUI.cpp, .h
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp, .h
        sg_ProjectsComponent.cpp, .h
        sg_SGUIListControl.cpp
        SkinManager.cpp, .h
        stdwx.h

David  25 Oct 2006
    - core client: added config options for
        max # file transfers, global and per_project

    client/
        cs_files.C
        file_xfer.h
        log_flags.C,h

Rom    25 Oct 2006
    - MGR: Fix crashing bug where the simple GUI is the initial state and
        the skin just finished loading. After a new skin is loaded the
        ReloadSkin event is fired so each frame needs to make sure it
        doesn't try to deref it's own null pointers.
        
    clientgui/
        sg_BoincSimpleGUI.cpp, .h

David  25 Oct 2006
    - User web: added support for "run beta applications" preference.
        This is enabled if project has
            $project_has_beta = true;
        in its html/project/project_specific_prefs.inc file.

    html/
        inc/
            prefs.inc
        user/
            add_venue.php
            prefs_edit.php
            project_specific_prefs.inc.sample
    sched/
        sched_send.C

Rom    25 Oct 2006
    - MGR: Check to see if the clientindictor timer pointer is valid before 
        stopping and deleting it.
        
    clientgui/
        BOINCGUIApp.cpp
        sg_BoincSimpleGUI.cpp, .h
        sg_ClientStateIndicator.cpp

Kevin    25 Oct 2006
     - MSG: Fixed issues with BSG (pointer issues)
     
     clientgui/
        sg_BoincSimpleGUI.cpp/h
        sg_ClientStateIndicator.cpp
        
Rom    25 Oct 2006
    - MGR: Make sure that after we clear out all the old skin resources we at
        least reset the skin name back to the one the user wants, otherwise
        we'll end up with a blank combo box item.
        
    clientgui/
        sg_BoincSimpleGUI.cpp
        SkinManager.cpp, .h

David  26 Oct 2006
    - core client: fix a couple of bugs that could cause
        the host to use the wrong venue when reading prefs
        Also, print log message showing host location

    client/
        cs_prefs.C
        cs_scheduler.C

Kevin    26 Oct 2006
    - MGR:
        * Fire ReloadSkin after changing to the default skin (this properly redraws the 
        * Move all logic for reloading a project/stat icon into the StatImageLoader class
        * Fix bug that prevented the default stat icons from being updated with reskining
        
    clientgui/
        sg_ProjectsComponent.cpp/h
        sg_StatImageLoader.cpp/h
        SkinManager.cpp, .h

Rom    27 Oct 2006
    - MGR: Use the new (2.6) ::wxLaunchDefaultBrowser API to launch the users default web
        browser, we should get better results with it.
    - MGR: Add 'CPU throttle' to the preferences dialog.
    - MGR: Add 'run on battery' to the preferences dialog.
    - MGR: Fix reading and storing all preference values
    - MGR: Add web customized values to the list of selections for any of the user 
        configurable settings.
    - MGR: Partial Fix for Large Font/High DPI issues. Now we just have to figure out
        if we want the dialog to grow or the text to shrink.
        
    clientgui/
        hyperlink.cpp
        sg_DlgPreferences.cpp, .h
        sg_ProjectsComponent.cpp
        sg_StaticLine.cpp, .h
        sg_StaticText.cpp, .h (Added)
        sg_ViewTabPage.cpp
        SkinManager.cpp
        stdwx.h
    win_build/
        boincmgr_curl_2003.vcproj

Rytis  27 Oct 2006
    - user web: allow team founder position to be transfered to another team member
        in case the original founder is missing. Also updating "your account" page
        to show multiple teams if the user is the founder of more than one.
        
        NOTE: requires DB update (html/ops/db_update.php).
        
    html/
        user/
            team_change_founder_action.php
            team_change_founder_form.php
            team_founder_transfer_action.php (new)
            team_founder_transfer_form.php (new)
        inc/
            inc/email.inc
            inc/team.inc
            inc/user.inc
        ops/
            db_update.php
    db/
        schema.sql
        constraints.sql
        
        
Kevin    27 Oct 2006
    - MGR:
        * Fix bug that caused the workunit icon to flash when the cpu throttle is utilized 
        
    clientgui/
        sg_ViewTabPage.cpp

Charlie 27 Oct 2006
    - Mac: Fix bug that prevented screensaver from launching BOINC client 
        properly under sandbox security if manager is not running.
    - Mac: added sg_StaticText.cpp,.h to XCode project.
    
    clientgui/
        mac/
            mac_saver_module.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    27 Oct 2006
    - MGR: Adjust the preferences dialog so that the change and clear buttons can
        be removed. People are just pre-programmed to look for buttons on the right-hand
        side or bottom of the dialog to save changes. With the new scheme there will
        just be a save and cancel button.
        
        NOTE: The dialog looks a little funky right now, but that should be cleared up
          soon.
    - MGR: Make sure we don't try and load the skin we have already loaded.

    clientgui/
        sg_DlgPreferences.cpp, .h
        sg_StaticLine.cpp
        SkinManager.cpp

Rom    27 Oct 2006
    - Tag for 5.7.0 release, all platforms
      boinc_core_release_5_7_0

Rom    27 Oct 2006
    - MGR: 
        Okay, last fixup to the preferences dialog. 
        
        Had to change the static group box into just a regular static text control 
        with a larger font since I couldn't figure out a way to make the text area
        transparent.
        
        The "Use custom preferences" check box is kind of a fake check box, the
        check box itself is real, but the text off to the right is a static text
        control. Trying to make the check box transparent was like beating your
        head against the wall, I got as far as initial display being transparent
        and a complete redraw cased it to be transparent, but moving the mouse over
        the label caused a 1 pixel shift in the display of text which caused it
        to blur.
        
    clientgui/
        BOINCGUI.pjd
        sg_CustomControls.cpp, .h (Added)
        sg_DlgPreferences.cpp, .h
        sg_ProjectsComponent.cpp, .h
        sg_ViewTabPage.cpp, .h
        sg_StaticLine.cpp, .h (Removed)
        sg_StaticText.cpp, .h (Removed)

Charlie 28 Oct 2006
    - Mac: Fix bugs in screensaver when launching BOINC Client with branding:
        - BOINC Data directory name does not change with branding.
        - If screensaver can't locate BOINC Manager bundle using creator and 
            bundle ID, get branding file from BOINC Data directory.
        - Branded (Grid Republic) installer places a copy of Branding file in 
            BOINC Data directory for use by screensaver.
        - PostInstall app removes Branding file from BOINC Data directory if 
            performing an unbranded intall.
        - Update XCode project for added and removed source files.

    clientgui/
        mac/
            mac_saver_module.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        PostInstall.cpp
        release_GridRepublic.sh

David  28 Oct 2006
    - back end: add function get_output_file_paths()
        for getting the paths of multiple output files.

    lib/
        common_defs.h
    sched/
        validate_util.C,h

Rom    28 Oct 2006
    - MGR: Enlarge the combo boxes on the preferences on the preferences dialog
        so that they'll be able to contain the right text even on David's notebook.
    - MGR: Fix the static text box associcated with the "Use custom preferences"
        checkbox so that clicking on it checks/unchecks the the checkbox.
    - MGR: Only change the background color to Magenta in debug builds so that
        we don't flicker during control repaints on release builds.
        
    clientgui/
        sg_CustomControls.cpp, .h
        sg_DlgPreferences.cpp, .h
        sg_ProjectsComponent.cpp

Rom    28 Oct 2006
    - MGR: Implement lazy loads for Simple GUI resources to try and speed things up.
    
    clientgui/
        SkinManager.cpp, .h

Rom    29 Oct 2006
    - MGR: If the background image is smaller than the perferences dialog it'll
        center the background image on the dialog. If the background image is larger
        than the dialog it'll take a chunk out of the center of the bitmap and
        paint that on the dialog.
        
    clientgui/
        sg_DlgPreferences.cpp

Charlie 29 Oct 2006
    - Added link to Mac Installer page under "Installing BOINC" on 
        "Participating" page.

    doc/
        participate.php

Rom    29 Oct 2006
    - MGR: Remove the change and clear buttons from the SkinManager.
    - MGR: Fix the transparency problem for the Cancel, Close, and Save buttons.
    - MGR: Fix the transparency problem for the active task icon.
    - MGR: Fix a problem with a full repaint of the preferences dialog, it would paint
        part of the dialog with the default grey color.
        
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_CustomControls.cpp, .h
        sg_ViewTabPage.cpp, .h
        SkinManager.cpp, .h

Rom    29 Oct 2006
    - MGR: When the skin changes, have the taskbar update its icon set.
    - MGR: Code cleanup for various Simple GUI classes.
    
    clientgui/
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp, .h
        sg_BoincSimpleGUI.cpp
        sg_ProjectsComponent.cpp, .h
        sg_StatImageLoader.cpp, .h
        SkinManager.cpp

Charlie 29 Oct 2006
    - Mac: fix some Mac-specific Simple GUI bugs. 
    - NOTE: wxNO_BORDER is not a valid style argument for wxBitmapButton 
        constructors; use wxBU_NOAUTODRAW instead.
    - Mac: Don't run confirmation dialog on QUIT AppleEvent so dialog 
        doesn't prevent logout / shutdown.
    - Mac: fix crash on Mac when creating SG preferences dialog: create 
        window before setting background color. 

    clientgui/
        AdvancedFrame.cpp, h
        BOINCBaseFrame.cpp, .h
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp
        sg_BoincSimpleGUI.cpp
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp
        sg_ProjectsComponent.cpp
        mac/
            MacSysMenu.cpp, h
            SystemMenu.m
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    30 Oct 2006
    - MGR: Fix another round of window height, width, top, left, maximize, minimize
        issues on Windows.
    - MGR: Consolidate all window save and restore state to two functions instead
        of four, for all platforms.
        
        NOTE: Charlie, could you look over the changes for the Mac? I think I got them
          right.

    clientgui/
        AdvancedFrame.cpp, .h

David  30 Oct 2006
    - API: moved the __HrLoadAllImportsForDll() calls out of
        boinc_samples/uppercase/uppercase.C
        (what were they doing there??)
        and put them into a function boinc_graphics_possible().
        Applications that can potentially do graphics should call this,
        and if it returns false don't try to do graphics
        (this means the needed DLLs are not there (Win)
        or the DISPLAY env var is not set (Unix))
    - API: make the graphics callbacks (e.g. mouse movement)
        C++ rather than C functions.
        This was breaking the example applications (upper_case).
        Bruce et al: if this causes problems, let me know.
    - API, X graphics: use fprintf(stderr) instead of app_debug_msg(0

    api/
        boinc_api.C
        graphics_api.h
        x_opengl.C
    html/inc/
        team.inc

Rom    30 Oct 2006
    - MGR: Wizard "Account Info" page, fix the control sizing problems when changing
        between new account vs. existing account.
        
        In the future use Layout() instead of Fit().
        
    clientgui/
        AccountInfoPage.cpp

Rom    20 Oct 2006
    - MGR: Use a buffered device context to draw the background on the preferences
        dialog which reduces the amount of flicker even further.
    - MGR: Make sure the workunit text does not exceed the tab area when using
        large fonts.
        
    clientgui/
        sg_DlgPreferences.cpp
        sg_ViewTabPage.cpp, .h

Charlie 29 Oct 2006
    - Mac: Work around Simple GUI problem drawing background bitmaps on 
        Erase events; use a wxStaticBitmap instead. 
    - Mac: more changes to XCode project to better build Simple GUI.
    
    clientgui/
        BOINCGUIApp.cpp
        sg_BoincSimpleGUI.cpp, h
        sg_DlgPreferences.cpp, h
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Kevin    31 Oct 2006 (Boo!)
    - MGR: Modify how the project icons are displayed. Fix multiple bugs and only 
           allocate space for the arrows if they are needed.
        
    clientgui/
        sg_ProjectsComponent.cpp/h
        sg_StatImageLoader.cpp/h
        
Kevin    31 Oct 2006 (Spooky!)
    - MGR: Change button behavior so that it uses the wxBU_AUTODRAW setting.
           This causes buttons to look more 'button' like when clicked.
        
    clientgui/
        sg_ProjectsComponent.cpp/h
        sg_StatImageLoader.cpp/h
        
David  31 Oct 2006
    - Win compile fixes

    client/
        cs_files.C
    win_build/
        boincmgr_curl.vcproj

David  31 Oct 2006
    - scheduler: parse mod_time correctly from global prefs
    - user web: max CPUs defaults to 16

    html/inc/
        prefs.inc
        util.inc
    sched/
        server_types.C

Rom    31 Oct 2006
    - MGR: Remove CB_SORT style bit for first combo box.
    
    clientgui/
        sg_DlgPreferences.cpp
        
Kevin    31 Oct 2006
    - MGR: Changed the wu tab back to using wxPaintDC from wxBufferedPaintDC.  The
           buffered version caused a noticable delay in rendering the display.
        
    clientgui/
        sg_ViewTabPage.cpp
        
Kevin    31 Oct 2006
    - MGR: Fixed bug that prevented recently downloaded stat icons from being displayed
        
    clientgui/
        sg_StatImageLoader.cpp/h
        
Rom    31 Oct 2006
    - MGR: When the background skinned image is too small in the preferences dialog,
        scale it up.
        
    clientgui/
        sg_DlgPreferences.cpp

David  31 Oct 2006
    - user web: use existing DB init function for forums too

    html/inc/
        forum_mysql_dbh.inc

David  31 Oct 2006
    - compile fix: include mysql.h, not mysql/mysql.h

    db/
        db_base.C

Kevin    31 Oct 2006
    - MGR: Changed the way that active_task_state
        
    clientgui/
        sg_ViewTabPage.cpp

Rom    31 Oct 2006
    - Update the curl distro for windows to include the SOCKS 5 Auth path Walt put together.
    
    curl/
        <Numerious files>

Rom    31 Oct 2006
    - Tag for 5.7.1 release, all platforms
      boinc_core_release_5_7_1

Charlie 1 Nov 2006
    - Mac: Work around Simple GUI hang due to bug in Mac version of 
        wxBufferedDC.GetTextExtent().
    - Mac: Fix transparent text.
    - Mac: Fix Message dialog background.
    - Mac: more changes to XCode project to better build Simple GUI.
    
    clientgui/
        sg_CustomControls.cpp, .h
        sg_DlgMessages.cpp
        sg_ViewTabPage.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Kevin    1 Nov 2006
    - MGR: Finally fixed the problems with the active task icon displaying properly when the
           cpu throttle is being utilized
        
    clientgui/
        sg_ViewTabPage.cpp

Rom    1 Nov 2006
    - MGR: The preferences override struct feature should observe locale conventions.
    
    lib/
        gui_rpc_client_ops.C

David  1 Nov 2006
    - core client: check error returns in Win code to
        find app memory usage.

    client/
        app.C
    lib/
        procinfo_win.C

David  1 Nov 2006
    - core client: attempt to fix bug where core client locks up
        when aborting jobs.
        If a job is aborted, and its 5-second grace period elapses,
        mark it as PROCESS_ABORTED so that we'll remove its ACTIVE_TASK record.
        Also, if a GetExitCodeProcess() call fails, mark it as PROCESS_ABORTED.

    client/
        app.C
        app_control.C

David  1 Nov 2006
    - core client: account manager reply parsing was broken

    client/
        acct_mgr.C

Rom    1 Nov 2006
    - CC: Somebody kernel side is fooling around with return values from
        NtQuerySystemInformation, this caused us to get stuck in a loop.
        
        Cache the buffer size and restore it if the API zeros it out. That
        way we'll be able to double it correctly before the next call.
    - CC: Set the initial buffer size for NtQuerySystemInformation to
        128k from the original 32k.
        
    lib/
        procinfo_win.C

Rom    1 Nov 2006
    - MGR: Fix the MB -> GB translation bug for disk usage.
    
    clientgui/
        sg_DlgPreferences.cpp

Rom    31 Oct 2006
    - Tag for 5.7.2 release, all platforms
      boinc_core_release_5_7_2

Charlie 2 Nov 2006
    - Mac: Fix more bugs on Main SimpleGUI window.  
    
    clientgui/
        sg_ImageButton.cpp
        sg_ProjectsComponent.cpp
        sg_ViewTabPage.cpp, h

David  2 Nov 2006
    - manager: tone down colors in disk display

    clientgui/
        ViewResources.cpp

David  2 Nov 2006
    - Added a function GLOBAL_PREFS::write_subset()
        that writes XML for a selected subset of prefs
        (for simple GUI prefs dialog)

    lib/
        prefs.C,h

David  2 Nov 2006
    - core client: get rid of attempts to keep track of
        network connected fraction,
        since we don't have a reliable way of seeing
        if there's a physical connection

    client/
        time_stats.C
    lib/
        network.C

Charlie 2 Nov 2006
    - Mac SimpleGUI: Move project icon popup menus down 40 pixels 
        so they are not obscured by tooltip (Mac only.)
    - Mac SimpleGUI: Don't select each tab as it is added.  This caused 
        problems at launch if there were more tabs than fit at once and 
        BOINC was suspended, because tab was not visible for currently 
        displayed page.  The result was that tabs did not respond to 
        mouse clicks until after arrow key was pressed to refresh the  
        tabs.
    - Fix Mac compiler warnings.
    
    client/
        http_curl.C
        prefs.C
    clientgui/
        sg_StatImageLoader.cpp
        sg_ProgressBar.cpp
        sg_ProjectsComponent.cpp
        sg_ViewTabPage.cpp

David  2 Nov 2006
    - core client: don't print errors in prefs venues

    html/
        inc/
            team.inc
        user/
            top_teams.php
    lib/
        prefs.C

Rom   3 Nov 2006
    - MGR: The preferences dialog should only allow somebody to override
       settings that they have changed.
    - MGR: Adjust the advanced view resources tab so that it'll use the
       free and total space on a remote pc instead of calling the wxWidget
       GetFreeDiskSpace API.
       
    clientgui/
        sg_DlgPreferences.cpp, .h
        ViewResources.cpp
    lib/
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C

Charlie 3 Nov 2006
    - Mac: Rework Exit Confirmation logic so dialog is presented when 
        user exits Manager from system tray icon or any other means.
        Rewrote dialog text to be more clear, and changed it back to a 
        fixed string because strings read in from skins.xml file are 
        not easily localized.  The project and application names are 
        still read from skins.xml and inserted in dialog text.

        Note to Rom: I guarded al references to m_strExitMessage with "
        #if 0" rather than removing them so you can easily restore them 
        if you feel it is important to have it customizable for branding 
        at the expense of easier localization.

    clientgui/
        AdvancedFrame.cpp, h
        BOINCBaseFrame.cpp, h
        BOINCGUIApp.cpp, h
        BOINCTaskBar.cpp
        sg_BoincSimpleGUI.cpp
        SkinManager.cpp, .h

David  3 Nov 2006
    - GUI RPC: change <get_disk_usage> RPC so it returns
        the total and free disk space, as well as per-project usage.
        This allows GUIs to display total/free disk for remote systems
    - Manager: get total/free disk from RPC info, not WxWidgets calls
    - Manager: change function names to make more sense

    client/
        gui_rpc_server_ops.C
    clientgui/
        MainDocument.cpp,h
        ViewResources.cpp
    lib/
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C
        gui_rpc_client_print.C

David  3 Nov 2006
    - debug the above

    clientgui/
        MainDocument.cpp,h
        ViewResources.cpp,h

David  3 Nov 2006
    - build fix for Gentoo

    Makefile.incl

David  3 Nov 2006
    - fix gcc compile warnings

    client/
        acct_mgr.C,h
    lib/
        boinc_cmd.C
        parse.C,h

David  3 Nov 2006
    - Manager: improvements to Statistics tab
        1) wxPaintDC changed on wxBufferedPaintDC - no flicker when redraw 
        2) CPaintStatistics::OnLeftMouseDown() -
           select project (now it work only in "One project" mode)
        3) save/read "last" settings (Mode View, Type Statistic ,Project).
            I used CViewStatistics::OnSaveState(wxConfigBase* pConfig)
            and CViewStatistics::OnRestoreState(wxConfigBase* pConfig)
        (from Mifistor)

    clientgui/
        ViewStatistics.cpp,h

David  3 Nov 2006
    - server tools: change a few programs to support the convention
        that any programs intended to be run manually
        (e.g., start, get_file, create_work, dir_hier_path)
        are to be run in the project root directory
        (i.e., they look for config.xml in the current directory)
    - update_versions: create the reread_db trigger file
        in current dir, not parent

    sched/
        delete_file.C
        get_file.C
        request_file_list.C
        send_file.C
        show_shmem.C
    tools/
        update_versions

Rom    3 Nov 2006
    - MGR: Fixup the exit message and get rid of the call to sprintf, our
        xml parsing technologies keep track of their buffers and don't
        overflow. If somebody does try to overflow the buffer a null
        string is the result.
    - MGR: The new skin manager does know how to deal with localization.
    - MGR: Bring the email validator inline with the php email validation
        regular expression. (From Frank S. Thomas)
    
    clientgui/
        BOINCGUIApp.cpp
        SkinManager.cpp, .h
        ValidateEmailAddress.cpp
        
David  3 Nov 2006
    - User web: remove "team account create" mechanism;
        Since accounts are created via GUI,
        this is no longer relevant.

    html/
        inc/
            team.inc
        user/
            clone.php (removed)
            team.php
            
Rytis  4 Nov 2006
    - User web: allow emails to be sent to multiple moderators when a post is
        reported in the forums.
        
        NOTE: requires project.inc update with a new moderator email list value.

    html/
        inc/
            forum_email.inc
        project.sample/
            project.inc

David  4 Nov 2006
    - Fix systemic bug where clean-install client requests work
        before doing benchmarks, and uses default benchmarks,
        which are extremely low (1e7 flops).
        The scheduler says "you're not fast enough" and
        tells it to back off for an extremely long time
        (20% of its estimated_delay, as calculated based on the low benchmarks).
        Fixed this by:
        1) client: change default benchmarks to 1e9 (1 GFLOPS)
        2) server: don't request backoff in this case
    - This led to an examination of server-requested backoff.
        In some cases the server was requesting ridiculous backoff.
        E.g. if a client didn't have enough available RAM
        (a function of both actual RAM and RAM-related prefs)
        it would always request a 48-hour backoff.
        The naive user changes their prefs, and then waits for 47.9 hours.
        I think it's better to err on the side of not requesting backoff,
        and relying on the client's exponential backoff
        in situations where it asks for work and doesn't get any.

        Also, the backoff values were hardwired throughout the
        scheduler source code - bad programming practice.
        So, I collected all the backoff values as #defines in main.h.
        Mostly these are the same, but for the case where
        we didn't send work because of CPU/disk/mem inadequacy,
        the server now doesn't request additional backoff
        (i.e., rely on the client's backoff mechanism)

    client/
        cs_benchmark.C
    sched/
        handle_request.C
        main.h
        sched_locality.C
        sched_send.C

Charlie 5 Nov 2006
    - MGR: Fix new Exit Confirmation Dialog bugs:
        - Use Fit() not Layout(), which did not work on Windows or Mac.
        - Use printf project & application name substitution only for default 
            exit message; custom exit messages neither want nor need it.
        - Remove bogus test Exit Confirmation Message from WCG skin.xml file.
        - Modal dialogs should not be resizable on Mac.
    - MGR: Use a wxPanel for background of SG Dialogs because using EraseBackground 
        events to paint background directly to a window doesn't work on the Mac.  
        The extra panel allows the same centering logic to work on both Windows and 
        Mac.  Adjusted font sizes in Preferences dialog for Mac.

    clientgui/
        BOINCGUIApp.cpp
        DlgGenericMessage.h
        sg_BoincSimpleGUI.cpp, h
        sg_ClientStateIndicator.cpp, h
        sg_DlgMessages.cpp, h
        sg_DlgPreferences.cpp, h
        sg_ProjectsComponent.cpp, h
        sg_SGUIListControl.cpp, h
        SkinManager.cpp
        skins/
            World Community Grid/
                skin.xml

David  6 Nov 2006
    - BOINC web site: change the way the add-ons page works

    doc/
        addons.php
        addon_data.php
    html/inc/
        team.inc

Rom    6 Nov 2006
    - MGR: Fix build breaks on Windows.
    
    clientgui/
        sg_BoincSimpleGUI.cpp
        sg_ProjectsComponent.cpp

David  6 Nov 2006
    - core client: if sched_op_debug flag is set,
        show delay requests from server
    - core client: set too_large flag whenever job is too big to run now
        (so "Waiting for memory" will be shown in manager)

    client/
        cpu_sched.C
        cs_scheduler.C

Rom    6 Nov 2006
    - Initialize the default values for GLOBAL_PREFS_MASK to false.
        Object's without constructors are initialized to the default values
        defined/redefined in the environment. wxWidgets redefines bools' default
        to value to true when running under a debug build.
        
    lib/
        prefs.C, .h

David  6 Nov 2006
    - MIOFILE buffer variant wasn't doing output correctly;
        would overwrite instead of appending.
        Caused simple GUI prefs dialog to not work.

    client/
        gui_rpc_server_ops.C
    lib/
        gui_rpc_client.C
        gui_rpc_client_ops.C
        miofile.C,h

Rom    6 Nov 2006
    - MGR: When deciding if two combo box's values are the same convert them to
        there native data type and compare those as well. Sometimes comparing
        just the strings isn't enough.
        
    clientgi/
        sg_DlgPreferences.cpp

Rom    6 Nov 2006
    - MGR: When caching data, make sure it is cached to the right location.
    
    clientgui/
        sg_DlgPreferences.cpp, .h

David  6 Nov 2006
    - compile fix

    sched/
        validate_util.C

Rom    6 Nov 2006
    - MGR: After implementing preference masking we ended up in a situation where
        we were comparing what values to override against the values specified in
        a previous override. If only one value was changed on the second interation
        all other values were forgotten.
        
        The new logic is to compare the current selected dialog values against the 
        current global preferences to decide what is stored in the preferences
        override file.
        
    clientgui/
        sg_DlgPreferences.cpp

David  7 Nov 2006
    - validate_util.C: fix tag ("file_info", not "file")
    - MIOFILE: when we're reading from a buffer,
        make it a const char* instead of char*.
        Doing this requires limiting ungetc() to push only
        the character that was previously read (which is OK).
    - scheduler: removed SCHED_SHMEM& arg from wu_is_infeasible()
    - fix compile warnings

    lib/
        gui_rpc_client_ops.C
        miofile.C,h
        parse.C,h
    sched/
        handle_request.C
        sched_array.C
        sched_locality.C
        sched_send.C,h
        server_types.C,h
        validate_util.C

Rom    7 Nov 2006
    - MGR: David and I got our wires cross,
        the global prefs mask is now set for all
        values in the preferences dialog when the selection
        has been made to override anything.
        
    clientgui/
        sg_DlgPreferences.cpp, .h

David  7 Nov 2006
    - core client: call request_work_fetch() whenever a
        process becomes contactable
        (i.e. when its min_rpc_time times out).
        This can avoid 10-minute periods of waiting
        for the work fetch function to get called

        Implementation: add bool PROJECT::possibly_backed_off;
        set to true in set_min_rpc_time();
        check for timeout in check_project_timeout()

    client/
        client_state.C,h
        client_types.C,h
        cpu_sched.C
        cs_scheduler.C
    lib/
        miofile.C

David  8 Nov 2006
    - core client: change XML parser to handle tags of the form <foo />,
        treating it as <foo/> (i.e. skip the space)

   lib/
    parse.C
    
Kevin  8 Nov 2006
    - BSG:  Add tool tip to slide show when graphics are available
    - BSG:  Remove workunit name
    - BSG:  Formatting changes to text on main screen
    - BSG:  Re-arrange the layout on the main screen
    
David  8 Nov 2006
    - API: move is_graphics_possible() from boinc_api.C to graphics_lib.C

    api/
        boinc_api.C
        graphics_lib.C

David  8 Nov 2006
    - make_work: when duplicating a WU, don't bother creating hard links
        to 'duplicate' its input files on the server.
        Send different file names to the client (so they'll download again)
        but use the same URL.
        This fixes a bug where, on some filesystems,
        there's a limit of 32K hard links to a file.

        Only use make_work to duplicate a WU with "nodelete"
        in its name; this ensures that neither the WU nor its
        input files will get deleted out from under you.

    sched/
        file_deleter.C
        make_work.C

David  8 Nov 2006
    - core client: work fetch fixes for non-CPU-intensive projects
        (from John McLeod)

    client/
        cs_scheduler.C

David  9 Nov 2006
    - core client: ignore zero benchmark results

    client/
        client_state.h
        cs_benchmark.C

David  9 Nov 2006
    - manager: fix URL for help

    clientgui/
        AdvancedFrame.cpp
        ViewResources.cpp

David  9 Nov 2006
    - manager: fix regexp for email address check
        (remove / at start and end).

    clientgui/
        ValidateEmailAddress.cpp

Kevin  9 Nov 2006
    - BSG:  Fix bug that didn't allow the messages window
            to close when the red X was clicked
    - BSG:  Added better text to status messages and tooltips
    - BSG:  Increased slide show timer to 10 seconds

    clientgui/
        sg_DlgMessages.cpp
        sg_ImageButton.cpp
        sg_ProjectsComponent.cpp
        sg_ViewTabPage.cpp


David  9 Nov 2006
    Core client:
    - request CPU reschedule and work fetch when global prefs change,
        since RAM limits may have changed,
        work_buf_min_days might have changed, etc.
        This fixes (I hope) a bug reported by Heinrich Feldmueller
    - do enforce_schedule() and compute_work_requests() every 60 seconds,
        as a safety net in case we forgot to trigger it in some case.
        Doesn't hurt - should be a fraction of a millisecond.
    - do a CPU reschedule on transitions from host busy
        to host idle, since RAM usage limits might have changed
    - a few more log messages for cpu_sched_debug

    client/
        cpu_sched.C
        cs_prefs.C
        cs_scheduler.C
            
Rytis  10 Nov 2006
    - User web: forum thread locking.
        
        NOTE: requires DB update.

    html/
        inc/
            forum.inc
            forum_thread.inc
        user/
            forum_forum.php
            forum_reply.php
            forum_moderate_thread_action.php
            forum_thread.php
        ops/
            db_update.php

David  10 Nov 2006
    - GUI RPC: extended set_run_mode() and set_network_mode()
        to take an additional "duration" argument.
        If duration is zero, the mode becomes permanent.
        Otherwise, the mode takes effect but after "duration" seconds
        the client reverts to the last permanent mode.

        By moving the timeout into the core client,
        the Manager (or other GUIs) can provide a "snooze"
        feature without the danger of perma-snooze
        if the Manager crashes or exits.
    - core client: added MODE class which encapsulates the above logic.
        Also fixed names, e.g. "MODE run_mode" replaces "int user_run_request".
    - GUI RPC: added task_mode_perm and network_mode_perm fields to CC_STATUS.
        This lets the GUI see if core client is snoozing
        (i.e. if task_mode != task_mode_perm)
    - GUI RPC: removed deprecated get_run_mode(), get_network_mode(),
        network_status(), and get_activity_state() RPCs

    client/
        acct_mgr.C
        app_start.C
        client_state.C,h
        client_types.C,h
        cs_cmdline/C
        cs_prefs.C
        cs_statefile.C
        gui_rpc_server_ops.C
        main.C
    html/inc/
        translation.inc
    lib/
        boinc_cmd.C
        common_defs.h
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  10 Nov 2006
    - Get the above to work on Win; fix compile warnings

    client/
        app_control.C
        main.C
        win/
            hostinfo_win.cpp
    clientgui/
        MainDocument.cpp
        ViewStatistics.cpp

David  10 Nov 2006
    - core client: condition Curl speed-limit error message on http_debug

    client/
        http_curl.C

Rom    14 Nov 2006
    - MGR: Get rid of the transparent 5px gap around the background image.
    - MGR: Store the preferences override and mask for later use.
    - MGR: Fix message dialog title.
    - MGR: Incorporate new default background image and adjust the WCG skin
             file to match.
             
    clientgui/
        sg_DlgMessages.cpp, .h
        sg_DlgPreferences.cpp, .h
        SkinManager.cpp, .h
    lib/
        app_ipc.C
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C
        prefs.C, .h

Rom    14 Nov 2006
    - Tag for 5.7.3 release, all platforms
      boinc_core_release_5_7_3

David  14 Nov 2006
    - scheduler: fix bug that caused global prefs not to get sent
    - changed user friendly platform names in default project.xml

    sched/
        handle_request.C
    tools/
        projects.xml

David  14 Nov 2006
    - core client: put if() around "compute_work_request(): start" msg

    client/
        cs_scheduler.C

Rom    15 Nov 2006
    - MGR: Add "Anytime" to the list of start times for the simple preferences
        dialog.
    - MGR: Fix instructions when a connection failure happens.
    - MGR: Let the core client manage the snooze timer. Changes for both the
        advanced gui and simple gui.
    
    clientgui/
        AdvancedFrame.cpp
        BOINCBaseFrame.cpp
        BOINCTaskBar.cpp, .h
        MainDocument.cpp, .h
        sg_DlgPreferences.cpp, .h
        sg_ProjectsComponent.cpp, .h

Rom    16 Nov 2006
    - MGR: Handle the clear preferences case better by setting the mask flags to
        false instead of just calling set preferences override with an empty
        string.
    - MGR: Make sure we grab the correct localized dialog name during construction.
    
    clientgui/
        sg_DlgPreferences.cpp, .h

Rom    16 Nov 2006
    - MGR: Revamp the messages dialog so that it is resizable.
    - MGR: Remember the size of the various message columns.
    - MGR: Remember the size of the dialog.
    - MGR: Add clipboard functionality.
    - MGR: Cleanup code in various other places.
    
    clientgui/
        AdvancedFrame.cpp
        sg_DlgMessages.cpp, .h
        sg_DlgPreferences.cpp, .h
        sg_ProjectsComponent.cpp
        sg_SGUIListControl.cpp, .h

Rom    16 Nov 2006
    - MGR: Change points to credits.
    
    clientgui/
        sg_StatImageLoader.cpp

Rom    16 Nov 2006
    - Tag for 5.7.4 release, all platforms
      boinc_core_release_5_7_4

Charlie 17 Nov 2006
    - MGR: Fix restore of SG Message Dialog size and position on Mac: call 
        RestoreState() _after_ calling GetSizer()->Fit(), GetSizer()->SetSizeHints() 
        and Center().
    - Mac MGR: Adjust position of SG Message Dialog buttons on Mac so Close button 
        doesn't overlap window's grow icon
    - MGR: Save state if close box on SG Message Dialog window frame clicked.
    - MGR: Fix crashing bug if Exit selected from System Tray icon (Quit on Mac)
        while SG Message Dialog is open.
    - Mac MGR: Fix ToolTip / Help Message for Mac: substitute "command key" for 
        "control key".

    clientgui/
        sg_DlgMessages.cpp, h
        sg_ProjectsComponent.cpp
        ViewMessages.cpp

Bruce 19 Nov 2006
    - server: file_deleter would turn off -delete_antiques if it encountered a
      stale .nfs* lockfile which was more than 60 days older than the oldest WU.
      This should not happen! After these modifications, antique deletion
      will not be turned off, but a CRITICAL error message will be logged.

    sched/
        file_deleter.C

Charlie 19 Nov 2006
    - MGR: Fix windows compile errors.
    - Mac: Ignore Quit AppleEvents if a modal dialog is open (to prevent 
        crashes if the user selects Quit from the Manager's Dock menu.)

    clientgui/
        BOINCGUIApp.cpp
        sg_ProjectsComponent.cpp
        ViewMessages.cpp

Rom    20 Nov 2006
    - Update the Windows SKU detection code so that it can identify Win2k3 R2,
        tell the difference between Vista and Longhorn Server, IA32/IA64, and 
        AMD64
    - MGR: Remove the last code path which might still call
        InternetGetConnectedState.
    - Reenable the network detection stuff if the newer IsNetworkAlive API
        can be found.
        
    client/win/
        hostinfo_win.cpp
    clientlib/win/
        NetworkTracker.cpp
    lib/
        network.C

David  20 Nov 2006
    - GUI RPC: return task and network mode delays in get_cc_status().
        This tells the GUI how long the current snooze is going to last.

    client/
        client_types.C,h
        gui_rpc_server_ops.C
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  20 Nov 2006
    - core client: fix win compile warnings

    client/
        app_start.C
        cs_cmdline.C
        win/
            win_service.cpp

Rom    20 Nov 2006
    - MGR: Move the switch to simple GUI menu item to the View menu.
    
    clientgui/
        AdvancedFrame.cpp

Rom    20 Nov 2006
    - MGR: Display the hand cursor when the mouse hovers over the BSG link
        bitmaps.
    - MGR: When the suspend reason is becuase of CPU throttling do not
        display a balloon showing that we are suspended.
        
    clientgui/
        BOINCTaskBar.cpp
        sg_CustomControls.cpp, .h
        sg_ProjectsComponent.cpp

David  20 Nov 2006
    - core client: fix a bug in the shared-memory message passing code.
        Each message channel has a one-message buffer in shared mem.
        The send_msg() function checks if this is full.
        If not it puts the message there.
        If so it stores the message in a queue.
        Once a second, a poll function moves a message
        from the queue to the buffer (if it's empty).

        What's wrong with this? (let's not always see the same hands).
        Well, the send_msg() needs to handle the situation
        where there's a message in the queue but none in the buffer.

        This results in a bug in the CPU throttling mechanism
        that can cause a task to sleep forever.
    - core client: a SECOND significant bug in the shmem msg passing code.
        In general, the API library consumes at most one message per second
        from a given channel.
        That means that if you write more than one message/sec
        (even for a short period) it creates a queue that never goes away.
        If you write more than one message/sec indefinitely,
        it creates an unbounded queue.

        At this point, the only channel that uses queuing and can
        have more than one msg/sec is process control
        (because of CPU throttling).
        I put in kludge that handles this case:
        if we want to send a <resume/> and there's already
        a <suspend/> in the queue,
        remove the <suspend/> and don't send anything.
        And conversely.
    - core client: to debug all the above, added <app_msg_send>
        and <app_msg_receive> log flags.
        Also added some commented-out printfs in the API library.

    NOTE: in the course of debugging this I realized that, in the Windows
        version of the API, <suspend/> and <resume/> message result
        in calls to SuspendThread() and ResumeThread(),
        which inc and dec a "suspend counter".
        ResumeThread() decrements the counter, and resumes the thread
        only if the counter is then zero.
        This makes the process-control message-passing scheme fragile.
        If for some reason you send two <suspend/>s and a <resume/>,
        the result is that the job is suspended.
        At some point we should change to API to do the right thing.

    api/
        boinc_api.C
    client/
        app.C
        app_control.C
        log_flags.C,h
    lib/
        app_ipc.h

Charlie 21 Nov 2006
    - Mac: Fix compiler warning.
    - MGR: Don't put an empty View menu in menu bar if not SimpleGUI.
    
    clientgui/
        AdvancedFrame.cpp
    client/
        app.C

David  21 Nov 2006
    - core client: if we're preempting a job because total RAM
        usage is too high, preempt by quitting.
        
        This has a downside: it wastes CPU time for apps that
        don't checkpoint often.
        However, if we don't do it, the core client might
        try running dozens of queued apps, looking for one that fits in RAM.
        That might use too much swap space.

    client/
        client_state.h
        client_types.C
        cpu_sched.C
        cs_files.C
    lib/
        gui_rpc_client.h

David  21 Nov 2006
    - core client: don't get work from a project with a backed-off download
        (from John McLeod)

    client/
        client_types.C,h
        cs_scheduler.h

David  21 Nov 2006
    - GUI RPC: add a run mode, RUN_MODE_RESTORE,
        whose function is to set the mode back to its permanent value
        (i.e. to end a "snooze").
        The GUI now doesn't have to remember the original value.

    client/
        client_types.C
        gui_rpc_server_ops.C
    lib/
        common_defs.h
        gui_rpc_client_ops.C
        util.C

Rom    22 Nov 2006
    - MGR: It turns out that wxWidgets exposes searching for a window by ID and
        by default dialogs all have an id of 10000, so if we can find a window
        with an ID of 10000 and it is of wxDialog type then disable the "Exit" 
        menu item.
    - MGR: Clean out a bunch of the #ifdef's that were littered across the
        taskbar implementation, the compiler can take care of removing the dead 
        code during the optimization phase. It is just to cluttered otherwise.
    - MGR: Change the BSG static project icon tooltip to read 
        "%s. Work done by %s: %0.2f" and make it localizable.
    - MGR: Change CDlgMessages to be a regular wxDialog derived class.
    - MGR: Change all dialogs so that they are declared as stack based items
        instead of heap based items.
    - MGR: Use the snooze restore feature that was just introduced into the
        core client.
    - MGR: Commit Frank's changes to properly support Unicode in the SkinManager
        for Debian based distros.

    client/
        client_types.C
    clientgui/
        AdvancedFrame.cpp
        BOINCGUIApp.cpp, .h
        BOINCTaskBar.cpp, .h
        Events.h
        MainDocument.cpp, .h
        sg_DlgMessages.cpp, .h
        sg_ProjectsComponent.cpp, .h
        sg_StatImageLoader.cpp
        SkinManager.cpp

Charlie 22 Nov 2006
    - MGR: Fix bugs in adjusting taskbar menu items when modal dialog open:
        - Disable wxID_ABOUT item to prevent opening multiple copies of 
            About dialog (a problem on the Mac, not on Windows.)
        - Re-enable items when modal dialog is closed.
    - MGR: Fix broken messages, Pause, Resume buttons on Simple GUI.
    - Mac: Fix compiler errors and warnings.
    - Mac: Use new modal dialog detection logic to block Quit from Dock.

    clientgui/
        BOINCGUIApp.cpp
        BOINCTaskBar.cpp
        Events.h
        sg_ProjectsComponent.cpp

Rom    22 Nov 2006
    - MGR: A little bit more cleanup work.
    - MGR: Use the shorthand "%d hr %d min %d sec" on the BSG for people
        who use large fonts.
        
    clientgui/
        BOINCTaskBar.cpp
        sg_ProjectsComponent.cpp, .h
        sg_ViewTabPage.cpp

Charlie 22 Nov 2006
    - MGR: Change extra event ID ID_TB_EXIT back to wxID_EXIT.
    - MGR: Disable all items in taskbar menu when modal dialog open.
    - Mac MGR: Clear Help Menu when switching from Advanced GUI to  
        Simple GUI.
    - Mac MGR: Enable keyboard shortcut to close main SG window.        

    clientgui/
        BOINCTaskBar.cpp
        Events.h
        sg_BoincSimpleGUI.cpp, h

Rom    22 Nov 2006
    - Tag for 5.7.5 release, all platforms
      boinc_core_release_5_7_5

David  23 Nov 2006
    - don't allow work_buf_min_days less than 0.1

    lib/
        prefs.C

Rom    23 Nov 2006
    - MGR: Snooze timeout is in seconds, not minutes, what was I thinking?
    
    clientgui/
        BOINCTaskBar.cpp
        sg_ProjectsComponent.cpp

Rom    24 Nov 2006
    - MGR: Fix another preference bug. get_global_prefs_override_struct should
        not return success unless one of the preference values in the preference
        mask are true.
        
    lib/
        gui_rpc_client_ops.C
        prefs.C, .h

David  25 Nov 2006
    - core client: if the user has suspended a result for a project,
        don't fetch more work from it.
    - core client: in work fetch and CPU sched policies,
        if a result has a stalled download,
        don't treat it as nearly runnable
    - core client: don't allow work_buf_min_days less than 0.01.
        The scheduler and work fetch policies demand that it be > 0

    client/
        client_types.C,h
        cpu_sched.C
        cs_scheduler.C
    lib/
        prefs.C

David  25 Nov 2006
    - simple validator framework: bug fix, prevent crash
        if output file missing
        (from Hendrik Verhoek)

    sched/
        validate_util2.C

Charlie 26 Nov 2006
    - Mac MGR: Modify XCode Project so default Manager build is 
        SimpleGUI(i.e., targets Build_All and mgr_boinc now build 
        Manager with Simple GUI).

    mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  26 Nov 2006
    - validator: clean up check_pair() (from validate_util2.C) a little:
        The function now returns void.
        Either it returns with retry == true (in case of a transient error)
        or it sets r1.validate_state to either VALID or INVALID.
    - validator.C: handle_wu() now returns zero if the WU
        was actually handled (i.e. there wasn't a transient error)
        Sleep if nothing was actually handled
        (i.e. either there were none, or they all had transient errors)
    (from M.F. Somers, much belated)

    sched/
        validate_util.C
        validate_util2.C
        validator.C

Charlie 26 Nov 2006
    - MGR: Fix 2 preferences dialog bugs:
        - Set checkbox only if mask is set for one or more items on the 
            dialog (i.e., ignore masks for items not on dialog).
        - Add the value 3 to the idle time choices.  This makes the dialog's 
            default value the same as the web-based preferences default.
        - Fix logic to properly delete empty override file.
            
    clientgui/
        sg_DlgPreferences.cpp, h
    lib/
        prefs.C

David  27 Nov 2006
    - manager: improve appearance of disk tab

    clientgui/
        ViewResources.cpp

David  27 Nov 2006
    - validator: removed <max_claimed_credit> and <grant_claimed_credit>
        from config file, and add command-line args to validator:
        -max_claimed_credit X (invalidate any result that claims more than this)
        -max_granted_credit X (grant at most this)
        -grant_claimed_credit (always grant claimed credit)

        By making these params of the validator,
        they can vary from between applications

        (from Hendrick Verhoek)

    sched/
        sched_config.C,h
        validate_util2.C
        validator.C,h

David  28 Nov 2006
    - Manager: ask for disk usage at most every 60 sec

    clientgui/
        ViewResources.cpp

Charlie 30 Nov 2006
    - Mac: Add WCG skin to Mac installer.
    
    mac_installer/
        release_boinc.sh
        preinstall

David  1 Dec 2006
    - New features for Statistics tab:
        1) Zoom (LeftMouseDown + Move Mouse) 
           "AutoZoom" - Rigth Mouse Click or change "Project", "ModeView"...
           + Marker (LeftMouseClick)
        2) "Legend" scroll  (button "< Next project" "Prev project >").
            When very many projects and 15" monitor
        (from Mifistor)

        COMMENT: the zoom features are not obvious.
        Can we document them in the interface somehow?

    clientgui/
        ViewStatistics.cpp,h

David  1 Dec 2006
    - a bunch of changes to BOINC Help

    doc/
        help_*

Rom    2 Dec 2006
    - Check in WCG project files.
    
    client/win/
        *.rc
    clientgui/
        *.rc
    win_build/
        wcg_*.sln
        wcg_*.vcproj

Bruce 4 Dec 2006
    - If browser contacts scheduler CGI, redirect to project home page

    sched/
        server_types.C

David  4 Dec 2006
    - if browser contacts scheduler, link to homepage but don't redirect

    sched/
        main.C
        server_types.C

David  4 Dec 2006
    - scheduler: don't send anything special to browsers.
        Send reply as XML.
    - simple GUI: work is done by a user, not for a user

    sched/
        server_types.C
    clientgui/
        sg_StatImageLoader.cpp

Reinhard 6 Dec 2006
    configure.ac
    increased transparancy for glut-test: added extra tests for libXmu and
    libXi which are prerequisites to the glut-test 
    ==> if glut-test fails because of one of these libs missing, give a warning.

Rom    5 Dec 2006
    - BSG: Change the copy and copy all buttons to bitmaps.
    
    clientgui/
        sg_DlgMessages.cpp
        SkinManager.cpp, .h

David  6 Dec 2006
    - maybe fixed crash bug in core client:
        If an app was doing screensaver graphics
        and didn't respond for 4 seconds to message to hide graphics,
        we were calling kill_task() but not setting
        ACTIVE_TASK::task_state = PROCESS_ABORTED.
        As a result, the ACTIVE_TASK wasn't getting removed.
        Further attempts to reference its shared-mem segment
        or its handle would produce errors;
        eventually the core client crashes.
        Solution: set task_state to ABORTED in kill_task();
        Note: actually we don't want to kill the task in this case.
        I'll do this later.
    - core client: print separate message when killing non-responding
        screensaver app
    - core client: prepend [file_xfer] to messages where needed
    - server DB code: add ping_user, ping_time fields to TEAM
        (not used in C++ code, but should be here for good form)

    client/
        app.C,h
        app_control.C
        app_graphics.C
        pers_file_xfer.C
        ss_logic.C
    db/
        boinc_db.C,h

Rom    7 Dec 2006
    - Add clicked bitmaps for the copy/copy all buttons.
    - Remove old installer version check from the newer MSI installer
        package.
        
    clientgui/
        SkinManager.cpp

David  7 Dec 2006
    - core client: add "bool restart" arg to kill_task.
        If true, the process is killed but we arrange to
        restart it again, instead of erroring out the result.
        (used when the app is killed because it doesn't respond
        to stop-screensaver-graphics message)
        This completes the fix from yesterday.
    - core client: changed screensaver-mode ack timeout
        from 2 sec to 3 sec;
        added some debug messages
    - API: add bool g_sleep: if you set this to true,
        timer activities stop (simulate application freezing up).

    api/
        boinc_api.C,h
        windows_opengl.C
    client/
        app.C,h
        app_control.C
        app_graphics.C
        gui_rpc_server_ops.C

Rom    7 Dec 2006
    - MGR: Add support for the help button to the skin manager.
    
    clientgui/
        SkinManager.cpp, .h

David  7 Dec 2006
    - change sample_get_project_config.php so that it can be used
        to get project status.  Its reply will have
        <sched_stopped>1</sched_stopped>
            if the scheduler is disabled
            (note: the project may have no work; no API tells you that)
        <web_stopped>1</web_stopped>
            if web access to the DB is disabled
        (renamed project_is_stopped() to web_stopped() in util.inc;
        some projects may need to update their home pages accordingly)
    - core client: use vsnprintf() instead of vsprintf()
        to protect against buffer overrun

    COPYRIGHT
    client/
        cs_scheduler.C
    html/
        inc/
            util.inc
            xml.inc
        user/
            sample_get_project_config.phhp
            sample_index.php
    lib/
        mfile.C

Rom    7 Dec 2006
    - MGR: Merge the run_if_user_active and idle_time_to_run prefernces.
    
    clientgui/
        sg_DlgPreferences.cpp, .h

David  8 Dec 2006
    - API: fixed nasty bug that can result in application
        being both suspended (worker thread not running)
        and in a critical section (timer thread
        ignores messages to wake up worker thread).
        This is a deadlock; the app will never progress.
        The problem: bool in_critical_section
        needs to be declared volatile because it's used by both threads.
        Why didn't I listen to Bruce Allen when
        he told me to do this a long time ago?
    - Core client: deal with apps that stop accepting
        process control messages (due to the above bug).
        Several parts to this:
        - Add a timeout to process control message queue.
            If 180 seconds elapse with an unread process control
            message in the send buffer, kill and restart the app.
            Note: when a process is checkpointing it doesn't
            handle process control messages,
            so this timeout needs to be large enough to handle
            the longest possible checkpoint.
            I think 180 should be large enough.
        - Initialize message queues on app (re)start.
        - MSG_QUEUE::msg_queue_purge() was conceptually messed up.
            We don't want to purge ALL the messages of the opposite type,
            just the one at the tail of the queue.
    Whew!  This one was exhausting.

    api/
        boinc_api.C
    client/
        app.C
        app_control.C
        app_start.C
    lib/
        app_ipc.h

Charlie  8 Dec 2006
    MGR: Make width of preferences dialog combo boxes size automatically 
        to fit menu items on different platforms.
        
    clientgui/
        sg_DlgPreferences.cpp

Charlie  9 Dec 2006
    MGR: Fix a (probably rare) crash bug.

    clientgui/
        SkinManager.cpp

David 11 Dec 2006
    - core client: preliminary checkin for auto-update functionality.
        (Note: this feature will not be enabled by default)

    client/
		Makefile.am
        auto_update.C,h (new)
        client_state.C,h
        client_types.C
        cs_scheduler.C
        cs_statefile.C
        file_names.C,h
        scheduler_op.C,h
    html/user/
        language_select.php
        sample_get_project_config.php
    lib/
        common_defs.h
        gui_rpc_client.h
	win_build/
		boinc_cli_curl.vcproj

Rom    11 Dec 2006
    - MGR: Setup 'Help' so that it'll go to a 'manager_links.php' page which
        can redirect the browser to the correct page based on which view is
        requested.
    - MGR: Use wxDefaultSize instead of wxSize(-1, -1) to future proof the
        code against future versions of wxWidgets.
    - MGR: Enable the accelerator table in the Simple GUI for all platforms.
    
    clientgui/
        AdvancedFrame.cpp, .h
        BOINCBaseFrame.cpp, .h
        sg_BoincSimpleGUI.cpp, .h
        sg_DlgPreferences.cpp

Charlie 11 Dec 2006
    - Mac: update XCode project for new auto_update source files.
    - MGR: fix anomaly in wxMac handling of accelerator table.

    clientgui/
        sg_BoincSimpleGUI.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    12 Dec 2006 (Forked from HEAD)
    - Branch boinc_core_release_5_8 created for the BOINC 5.8 client release.

David  12 Dec 2006
    - add updater program

    configure.ac
    lib/
        Makefile.am
        updater.C (new)

David  12 Dec 2006
	- bug fixes to auto-update
	- don't print spurious error message in mfile.C

	client/
		auto_update.C
		client_types.C,h
		file_names.C,h
		scheduler_op.C
	lib/
		mfile.C
	win_build/
		updater.vcproj (new)
		boinc.sln

David  12 Dec 2006
    auto-update stuff:
    - core client: add -launched_by_manager option
        (so that it knows what to do after auto-update)
    - GUI RPC: add bool CC_STATUS::manager_must_quit
        so core client can tell manager to quit
    - Manager: quit if get the above
        Note: quit by exit(0); should probably show the user something

    client/
        client_state.C,h
        cs_cmdline.C
    clientgui/
        BOINCGUIApp.cpp
        MainDocument.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.C

Charlie 13 Dec 2006
    - MGR: Fix Compiler warnings.
    - Mac: Add user preferences file to list of BOINC files in 
        documentation.

    client/
        auto_update.C
    clientgui/
        ViewStatistics.cpp
    doc/
        mac_advanced.php
        release_notes.php
    mac_installer/
        GR-ReadMe.rtf
        ReadMe.rtf

David  13 Dec 2006
    - moved updater from lib/ to tools/

    configure.ac
    lib/
        Makefile.am
    tools/
        Makefile.am
        updater.C (moved from lib/)

David  13 Dec 2006
    - more debugging of auto-update
        WOO HOO!  It works in a basic way on Linux.
    - moved check_unique_instance() (client/main.C)
        to wait_client_mutex() (lib/util.C)
        and gave it a timeout argument.
        Updater needs mutex to wait for client to exit and vice-versa.
    - added run_program() to util.C.
    - core client: changed version number vars to VERSION_INFO
        
    client/
        acct_mgr.C
        acct_setup.C
        auto_update.C
        client_state.C,h
        client_types.C
        cs_scheduler.C
        cs_statefile.C
        main.C
    lib/
        Makefile.am
        common_defs.h
        util.C,h
    tools/
        updater.C
	win_build/
		updater.vcproj
    tools/
        updater.C

Charlie 13 Dec 2006
    - Mac: remove WCG skin from Mac installer (undo change of 30 Nov.)

    mac_installer/
        release_boinc.sh

David  14 Dec 2006
    - moved clientlib/win/Identification.cpp to lib/win_util.C

David  14 Dec 2006
	- got stuff to compile on Windows again

	client/
		main.C
	clientlib/win/
		AuthenticatorDetection.cpp
		IdleTracker.cpp
		boinc_dll.cpp
	lib/
		util.C
		win_util.C
	win_build/
		boinc_dll.vcproj
		boinc_ss.vcproj
		boincmgr_curl.vcproj
		libboinc.vcproj

David  14 Dec 2006
    Further work on auto-update:
    - add synchronization so that the core client,
        when it's ready to do an auto-update,
        arranges for any local Manager and screensaver to exit first.
        This is done in a slighly kludgy way:
        any GUI RPC connection that has done a get_screensaver_mode()
        is assumed to be a screensaver,
        and we send it a SS_STATUS_QUIT on its next request.
        Any connection that has done a get_cc_status() is assumed to
        be a Manager, and we set <manager_must_quit> on the next request.
        The core client waits until these have been sent,
        and waits an additional 10 seconds to let the other program exit.
    - updater: add a mandatory --install_dir argument (don't assume ../../..)
    - wait_client_mutex(): add a directory argument;
        the updater needs to acquire the mutex while it's
        running in a different directory
    - FILE_LOCK: don't use lots of file descriptors if called repeatedly
    - util.C: add boinc_getcwd()

    client/
        auto_update.C
        gui_rpc_server.C,h
        gui_rpc_server_ops.C
        main.C
    lib/
        filesys.C,h
        util.C
    tools/
        updater.C

Charlie  14 Dec 2006
    - Fix compiler warning.

    lib/
        util.C

Charlie 15 Dec 2006
    - Mac BSG: We can't completely eliminate the Mac menu bar or 
        the Help menu, so we might as well make them useful.
    - Mac MGR: implement the Mac's Help keyboard shortcut.
    
    clientgui/
        AdvancedFrame.cpp, .h
        sg_BoincSimpleGUI.cpp, .h

David  15 Dec 2006
    - core client: add GUI RPCs to get/set/read cc_config.xml
    - boinc_cmd: add command to read cc_config.xml
    (from Sebastian Masch)

    client/
        gui_rpc_server_ops.C
        log_flags.C,h
    lib/
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  15 Dec 2006
	- Manager: add "read prefs file", "read config file"
		entries to Advanced menu

	clientgui/
		AdvancedFrame.cpp,h
		Events.h

David  15 Dec 2006
	- core client: disable auto update with compile flag

	client/
		cs_scheduler.C

Rom    18 Dec 2006
    - MGR: Make the advanced gui build in Unicode again.
      (From: Ron Parker)
    
    clientgui/
        AdvancedFrame.cpp
        

Charlie 19 Dec 2006
    - Mac: Fix bug in setupForBOINC build script handling of -clean 
        option.
    mac_build/
        setupForBOINC.sh

David  19 Dec 2006
	- core client: add "<http_1_0/>" config flag for
		people with proxies that require HTTP 1.0.
		Curl's default is 1.1

	client/
		http_curl.C
		log_flags.C,h
		scheduler_op.C

David  19 Dec 2006
    - boinc_cmd: fix help()
    - get rid of some unused error codes

    lib/
        boinc_cmd.C
        crypt.C
        error_numbers.h
        util.C

David  19 Dec 2006
    - boinc_cmd: make "duration" argument optional in
        --set_run_mode and --set_network_mode

    lib/
        boinc_cmd.C

David  19 Dec 2006
    - API: change boinc_write_init_data_file()
        to take a APP_INIT_DATA& argument.
        This makes it usable to compound applications.
    - API: change defaults to zero and empty strings
        when parsing app init data.

    api/
        boinc_api.C,h
    lib/
        app_ipc.h

Walt   19 Dec 2006
    - MGR: Fix compile errors with Unicode builds

    clientgui/
        AdvancedFrame.cpp
        sg_BoincSimpleGUI.cpp
        sg_ClientStateIndicator.cpp, h
        sg_ImageButton.cpp
        sg_StatImageLoader.cpp
        sg_ViewTabPage.cpp


Walt   19 Dec 2006
    - MGR: Add simple GUI files to makefile

    clientgui/
        Makefile.am

Charlie 20 Dec 2006
    - MGR: Fix compile warning due to a coding error.
    
    clientgui/
        sg_BoincSimpleGUI.cpp

David  21 Dec 2006
    - core client: improve error messages on RPC deferral

    client/
        client_types.h
        cs_scheduler.C
        scheduler_op.C
    html/inc/
        stats_sites.inc
    lib/
        util.C

Rom    21 Dec 2006
    - MGR: Simplify snooze so that it only applies to CPU usage.
    - MGR: Remember message dialog size and list view column widths
        for all platforms.
    - MGR: Fix an annoying bug when the advanced gui suspended all
        tasks and then you tried to resume from the simple gui.
        
        Restore didn't work when the task_mode_perm was equal to
        never and their was no timeout.
        
        We should probably move this logic down into the CC.
    - LIB: Don't display foreground window information unless the
        user has agreed to allow it to happen via the registry.
        
        Their was concern about privacy issues with window titles.
        
    clientgui/
        BOINCTaskBar.cpp
        MainDocument.cpp, .h
        sg_DlgMessages.cpp
    lib/
        diagnostics_win.C

Rom    21 Dec 2006
    - MGR: Add context help to the BSG.
    
    clientgui/
        sg_DlgMessages.cpp, .h
        sg_DlgPreferences.cpp
        sg_ProjectsComponent.cpp, .h
        stdwx.h

Charlie 22 Dec 2006
    -MGR: Fix crash bugs: don't call SetBackgroundColour() or 
        SetForegroundColour() before wxDialog::Create().
        
    clientgui/
        sg_DlgMessages.cpp
        sg_DlgPreferences.cpp
        
David  23 Dec 2006
    - core client: add missing error message case on attach failure
    - DB: user "tinyint not null default 0" for bools;
        no need to single-quote table and column names in queries

    client/
        cs_account.C
    db/
        schema.sql
    html/ops/
        db_update.php

Rytis  23 Dec 2006
    - User web: fix loophole where users could put
        arbitrary HTML in forum messages
        
    html/
        inc/
            forum.inc
            text_transform.inc
        user/
            edit_forum_preferences_action.php
            forum_edit.php
            forum_forum.php
            forum_moderate_thread.php
            forum_reply.php

David  25 Dec 2006
    - Various changes to deal with the situation where someone
        attaches to a project while its scheduler is down.
        Currently the attach fails.
        This is a relic of the attach-using-account-key era.
        Change it so that:
        1) the project_attach GUI RPC has a project_name argument
            (so that we can show the project name even before
            we've done a scheduler RPC)
        2) the attach succeeds even if the initial RPC fails
        Note: we can probably get rid of the PROJECT::tentative flag.
    Note: the logic for attaching to a project with an init file
    (or with "cached credentials", as confusingly described in the Manager
    code) is messed up, or at least poorly documented.

    client/
        acct_mgr.C
        client_state.h
        cs_account.C
        cs_cmdline.C
		cs_scheduler.C
		scheduler_op.C
    clientgui/
        MainDocument.cpp
        ProjectProcessingPage.cpp
		ProjectPropertiesPage.cpp
    lib/
        boinc_cmd.C
        gui_rpc_client.h
        gui_rpc_client_ops.C

David  27 Dec 2006
    - deprecate the email_validated field of user table.
        This isn't used for anything, and confuses users.

    db/
        boinc_db.h
    html/
        inc/
            db_ops.inc
            email.inc
        user/
            am_set_info.php
            edit_email_action.php
            validate_email.php (removed)

David  27 Dec 2006
	- Manager: new version of Work tab with progress bar.
		This is a work in progress; for now, include both old and new tabs.
		(from Frank Weiler)

	clientgui/
		AdvancedFrame.cpp
		BOINCGridCtrl.cpp,h (new)
		Events.h
		ViewWorkGrid.cpp,h (new)
		stdwx.h
	win_build/
		boincmgr_curl.vcproj

David  27 Dec 2006
    - db_dump: add <archive_dir> option in config file;
        check for existence of output_dir, final_output_dir in config file

    sched/
        db_dump.C

David  27 Dec 2006
    - comment out Windows logic in graphics_possible.C
        (as implemented, requires MS linker)

    api/
        graphics_api.C

David  27 Dec 2006
    - core client: remove handle leak in extremely rare case

    client/
        file_name.C

David  28 Dec 2006
	- core client: fix bugs in calculation of network status
	- Manager: add ellipses to menu items that bring up dialogs,
		tweak wizard text

	client/
		acct_setup.C,h
		net_stats.C,h
	clientgui/
		AdvancedFrame.cpp
		ProxyInfoPage.cpp

Rom    28 Dec 2006
    - SCRSAV: Use RegisterSystemMessage instead of using WM_USER for the
        WM_INTERRUPTSAVER and WM_SETTIMER events.
    - SCRSAV: Clarify which window is receiving the WM_INTERRUPTSAVER
        event from the DataProc Thread.
        
    client/win/
        win_screensaver.cpp, .h

David  28 Dec 2006
    - User web: on user page, show list of their other projects.
        This uses the XML RPC being exported by James Drews.

    html/
        user/
            show_user.php
            white.css
        inc/
            cache.inc
            util.inc

Rom    29 Dec 2006
    - SCRSAV: Fix build break.
    - MGR: Refactor the timer management code whithin the advanced frame.

    client/win/
        win_screensaver.cpp
    clientgui/
        AdvancedFrame.cpp, .h
        BOINCBaseFrame.cpp, .h
        BOINCBaseView.cpp, .h
        BOINCDialupManager.cpp, .h
        ViewStatistics.cpp, .h

David  29 Dec 2006
    - user web: add project list to private use page also;
        sort projects by descending avg credit;
        don't link to user page on WCG (they don't have them)
    - start script: say "not running", not "not found"

    html/
        inc/
            user.inc
        user/
            home.php
            show_user.php
    sched/
        start

Rytis  29 Dec 2006
    User web:
    - Fix forum thread locking notification issues.
    - Disallow post editing if the thread is locked.
    - Fix post_str to remove PHP notices.
    - Fix post ratings (who put exit(0) in the code?)
        
    html/
        inc/
            forum.inc
            forum_forum.inc
            forum_post.inc
            util.inc
        user/
            forum_edit.php
            forum_rate.php
            forum_thread.php

David  29 Dec 2006
    - web site: made the help page and the "Volunteer" part
        of the front page translatable.

    languages/
        translations/en.po

David  29 Dec 2006
	- Manager: grid-based variant of Transfers tab
		(from Frank Weiler)
		Note: for this to work correctly,
		you need to modify grid.h in the wxWidgets source,
		and recompile it.
		We'll try to figure out how to get around this.

	clientgui/
		AdvancedFrame.cpp
		BOINCGridCtrl.cpp,h
		Events.h
		ViewTransfersGrid.cpp,h (new)
		ViewWorkGrid.cpp
	win_build/
		boincmgr_curl.vcproj

David   29 Dec 2006
    - validator: fixed bug that caused max_granted_credit
        to not be enforced in some cases
        (from Hendrik Vorhoek)

    sched/
        validator.C

David   29 Dec 2006
    - user web: when showing team email list,
        add option (&plain=1) to show it as plain text
        that you can copy and paste into an email client

    html/
        inc/
            user.inc
        user/
            team_email_list.php

David   29 Dec 2006
    - fix compile warnings in sched code

    db/
        db_base.h

Rom    29 Dec 2006
    - MGR: Make the simple preferences and messages dialogs have their
        own help handler, apparently when the event bubbles up to the
        frame the control ID's were being remapped to the frame window
        ID.
        
    clientgui/
        sg_DlgMessages.cpp, .h
        sg_DlgPreferences.cpp, .h

David   30 Dec 2006
    - Manager: forgot to add new files to Makefile.am

    clientgui/
        Makefile.am

David   30 Dec 2006
    - start script: use lockf() instead of flock()
        see http://www.python.org/doc/2.3/lib/module-fcntl.html
        (from Eric Myers)

    sched/
        start

Rytis   30 Dec 2006
    - Forum: do not show hidden threads when the user is logged out.
    
    html/user/
        forum_thread.php
