Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > a1ce5aaf57779e2e15af0164a1a3f938 > files > 2

boinc-client-doc-7.0.36-3.mga4.noarch.rpm

David  1 Jan 2012
    - remote job stuff

    html/
        inc/
            sandbox.inc
        user/
            lammps.php
            submit.php

Rom    1 Jan 2012
    - OPS: Update failure_result_summary_by_platform.php to include
        plan class information.
    - OPS: Update error code translation table
    
    html/inc
        result.inc
    html/ops
        failure_result_summary_by_platform.php

David  2 Jan 2012
    - ops: fix link in index page

    html/
        ops/
            index.php
        user/
            sandbox.php

Rom    2 Jan 2012
    - VBOX: If VirtualBox reports an error snag both the hypervisor system
        log as well as the VM execution log.  Maybe the hypervisor log
        will tell us what is up with the virtual floppy device.
    - VBOX: Don't retry commands that are expected to fail in normal use
        cases.  It slows down getting the VM up and running.
    - VBOX: After starting the VM, use a timed loop waiting for the initial
        VM state change instead of just waiting for 5 seconds.  Older
        machines can take longer than 5 seconds to switch from poweroff
        to starting.  If we hit the main poll loop in that state the wrapper
        thinks we have crashed.
    - VBOX: Strip carriage returns from all the vboxmanage output on
        Windows.
    
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

David  2 Jan 2012
    - client: compute projects' disk share (based on resource share).
        Report it (along with disk usage) in scheduler request messages.
        This will allow the scheduler to send file-delete commands
        if the project is using more than its share.
    - client: add <disk_usage_debug> log flag
    - create_work: add --help, show --command_line option

    tools/
        create_work.cpp
    html/
        inc/
            util.inc
        user/
            sandbox.php
    lib/
        cc_config.cpp,h
    client/
        client_types.h
        client_state.h
        cs_prefs.cpp
        cs_scheduler.cpp
        cpu_sched.cpp

David  2 Jan 2012
    - upgrade script:
        - prompt user for DB user/passwd if DB updates needed
        - error out immediately if any DB update fails
        Fixes #1169, #1170
    - create_work: check for duplicate <file_info>s in input template
        NOTE: the input template syntax is pretty clunky

    tools/
        process_input_template.cpp
    html/
        ops/
            upgrade_db.php
        inc/
            util_ops.inc

Rom    2 Jan 2012
    - VBOX: Fix crashing issue I introduced last night attempting to
        extract the hypervisor system log.
    - VBOX: Report the hypervisor system log with any failed vboxmanage
        command that happens during the phase where we setup the VM.
    
    samples/vboxwrapper/
        vbox.cpp, .h

David  3 Jan 2012
    - remote job submission: show input file links
    - ops: fix message: app.min_version applies to HR app versions,
        not client version

    html/
        ops/
            manage_apps.php
        user/
            submit.php
            sandbox.php

David  3 Jan 2012
    - LAMMPS

    html/user/
        lammps.php

David  3 Jan 2012
    - client: calculate disk share for zero-priority projects correctly

    client/
        cs_prefs.cpp

Rom    3 Jan 2012
    - client: Remove scaling factor for AMD OpenCL devices.  Latest
        generation of drivers now report the correct memory size.
        They didn't wait for the next OpenCL spec change.

    client/
        coproc_detect.cpp
    
Rom    3 Jan 2012
    - VBOX: Per tester feedback, at an hourly status report to track
        network usage.
    - VBOX: For errors where an error code is specified in the output,
        use that value when returning from vbm_open().  Make it easier
        to track failure rates by problem type in the ops pages.
        (Windows Only)
    - VBOX: Try making the process of extracting the hypervisor system
        log more robust, make a temp copy of it in the slot directory.
        Avoid exclusive file lock issues since VboxSvc will still be
        logging to it.
    - VBOX: Change the session lock text to make it clearer that the
        use of other VirtualBox management tools can cause a problem.

    
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

Rom    3 Jan 2012
    - VBOX: Restore the elapsed time from the checkpoint file instead of
        aid.starting_elapsed_time.  It appears some older client versions
        are giving erratic results.
    
    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    4 Jan 2012
    - VBOX: Use strtol instead of atol to parse Vbox error codes from
        stderr/stdout output.
    - VBOX: Undo my reorg yesterday with regards to report_vm_pid and
        report_net_usage.
    - VBOX: Only report network usage in the status report if
        aid.global_prefs.daily_xfer_limit_mb is non-zero
    - VBOX: Add the VM log to the list of things reported on a start
        failure.  Hypervisor log suggests that it launched the VM but
        it failed unexpectedly.  So there might be cases where it
        actually exists.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

Rom    4 Jan 2012
    - VBOX: Move start state change detection code from run() function to
        start() function and use similar code to handle stop as well.
    
        Weird stuff happens when people start/stop BOINC quickly,
        it looks as though the previous VM instance isn't shutdown before we
        attempt to start it again.  Hopefully enough of a wait is in there
        for the VM to fully halt before the wrapper is terminated.
    
    samples/vboxwrapper/
        vbox.cpp

Rom    4 Jan 2012
    - VBOX: Fix a crash bug if multiple virtual NICs are defined for a VM.
        I'm not sure what the heck happened.  It probably has something to
        do with my \r removal code on Windows.  Bugs hidden by other bugs
        I suppose.

    samples/vboxwrapper/
        vbox.cpp

Rom    5 Jan 2012
    - VBOX: Extract the various logs before attempting to cleanup if the
        registration process fails.
    
    samples/vboxwrapper/
        vboxwrapper.cpp

David  5 Jan 2012
    - GUI RPC: use new XML parser

    lib/
        gui_rpc_client_ops.cpp

Charlie 5 Jan 2012
    - client: Restore scaling factor for AMD OpenCL devices on Macs with 
        OpenCL version < 1.2.

    client/
        coproc_detect.cpp

Charlie 6 Jan 2012
    - Mac Installer: Changes for integrated BOINC+VirtualBox Mac installer.

    clientgui/
        mac/
            SetVersion.cpp
    mac_installer/
        Description.plist
        Installer.cpp
        release_boinc.sh

Rom    6 Jan 2012
    - MGR: Remove sash window divider between the task panel and list panel
        in the advanced view. Retain the ability to dynamically adjust the
        width of the task panel based on widest button.
    - LIB: Use parse string instead of copy contents for messages RPC.

    clientgui/
        BOINCBaseView.cpp, .h
        ViewNotices.cpp
        ViewResources.cpp
        ViewStatistics.cpp
    lib/
        gui_rpc_client_ops.cpp

Rom    6 Jan 2012
    - VBOX: Use sscanf instead of strtol to convert a hex string.
    - VBOX: Use new FloppyIO implementation that reports image
        creation errors.

    samples/vboxwrapper/
        floppyio.cpp, .h
        vbox.cpp

David  6 Jan 2012
    - manager: parse message contents with XML_PARSER::element_content().

    lib/
        gui_rpc_client_ops.cpp

David  6 Jan 2012
    - validator: for credit_from_runtime,
        use result.flops_estimate rather than host.p_fpops;
        otherwise it doesn't work for multicore apps.
        TODO: cheat-proofing

    sched/
        validator.cpp
    html/user/
        forum_thread.php

Rom    6 Jan 2012
    - MGR: Derive from the correct base class to make the sizers work
        properly.
    
    clientgui/
        BOINCBaseView.cpp, .h
        ViewNotices.cpp
        ViewResources.cpp

Rom    7 Jan 2012
    - VBOX: Sleep for the remainder of the polling period and not the
        whole poll period.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp, .h

David  7 Jan 2012
    - scheduler: change vbox_mt app plan function to use 1, 2 or 3 CPUs
        depending on how many the host has,
        and whether CPU VM extensions are present
        (this reflects the requirements of CernVM).

    db/
        boinc_db.h
    sched/
        sched_types.h
        sched_customize.cpp
        validator.cpp

Rom    8 Jan 2012
    - VBOX: Fix regression where the ERR_CPU_VM_EXTENSIONS_DISABLED error
        message wasn't being written to stderr when the VM extensions
        were disabled via the BIOS.
    
    samples/vboxwrapper/
        vboxwrapper.cpp

David  8 Jan 2012
    - scheduler: change vbox_mt plan function to use at most 2 cores, not 3
        (CERN doesn't actually need 3)

    sched/
        sched_customize.cpp

David  8 Jan 2012
    - client: reset ACTIVE_TASK::bytes_sent and bytes_received
        when the task is started or restarted

    client/
        app_start.cpp

Charlie 9 Jan 2012
    - client: OpenCL 1.1 has no API for determining available GPU RAM, so if 
        CAL is not present for ATI / AMD GPU or if CUDA is not present for 
        NVIDIA GPU, set available GPU RAM equal to total GPU RAM.

    client/
        coproc_detect.cpp

Rom    9 Jan 2012
    - VBOX: Fix one last regression related to failed start detection.  If
        only one CPU is allocated, manually disable VM hardware acceleration.
    
    samples/vboxwrapper/
        vbox.cpp

David  9 Jan 2012
    - scheduler: the p_fpops value reported by clients can't be trusted.
        Some credit cheats (e.g. with credit_by_runtime) can be done
        by reporting a huge value.
        Fix this by capping the value at 1.1 times the 95th percentile
        of host.p_fpops, taken over active hosts.

    db/
        boinc_db.cpp,h
    sched/
        census.cpp
        sched_types.cpp,h
        sched_shmem.cpp,h
        sched_util.cpp,h
        sched_customize.cpp
        feeder.cpp
        sched_version.cpp
        hr_info.cpp,h

Charlie 10 Jan 2012
    - client: Fix idle detection for Apple Remote Desktop and screen sharing 
        (VNC) under Mac OS 10.7.  See comments in HOST_INFO::users_idle() for 
        details.

    client/
        hostinfo_unix.cpp

David  10 Jan 2012
    - first stab at improving Disk View colors

    clientgui/
        ViewResources.cpp

Charlie 11 Jan 2012
    - Mgr: When launching Mac client as a daemon, allow time for it to start. 

    clientgui/
        BOINCClientManager.cpp

David  11 Jan 2012
    - vboxwrapper: add <pf_host_port> element to config file.
        Specifies host port # for port forwarding.
        If absent or zero, assign a port.

    samples/vboxwrapper
        vbox.cpp,h
        floppyio.cpp,h
        vboxwrapper.cpp

David  11 Jan 2012
    - API: respect direct_process_action even if multi_process is set

    api/
        boinc_api.cpp

David  12 Jan 2012
    - LAMMPS job submission: improve completion estimate

    html/
        inc/
            boinc_db.inc
        user/
            lammps.php

Rom    12 Jan 2012
    - VBOX: Enable remote desktop functionality for a VM that has
        <enable_remotedesktop/> specified in its vbox_job.xml file.
    
      NOTE: It does require the VirtualBox extension pack, but that
        is freely available on the VirtualBox download page.
    
    samples/vboxwrapper
        vbox.cpp, .h
        vboxwrapper.cpp, .h

Rom    12 Jan 2012
    - VBOX: Report the remote desktop connection information to the
        core client.  Next commit will create an extra "VM Console"
        button in the manager when detected.  Volunteers will just have
        to click the button to see what is going on with the VM.

    api/
        boinc_api.cpp, .h
    samples/vboxwrapper
        vbox.cpp, .h
        vboxwrapper.cpp, .h

Rom    12 Jan 2012
    - client: Add plumbing to support passing the remote desktop
        connection information to the manager
    - MGR: Add a "Show VM Console" button for those tasks which
        report a remote desktop port number.

    client/
        app.cpp, .h
        app_control.cpp
    clientgui/
        Events.h
        MainDocument.cpp, .h
        ViewWork.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

Rom    12 Jan 2012
    - VBOX: Make sure the configured port numbers persist across
        restarts of the client software.  Remote desktop stopped
        working if the client software was restarted.

    samples/vboxwrapper
        vboxwrapper.cpp

Charlie 13 Jan 2012
    - client: Due to my changes of 10 Jan 2012, idle detection did not work 
        when BOINC was run as a pre-login daemon.  So use the old method 
        when running as a daemon.  This means that idle detection for Apple 
        Remote Desktop and screen sharing (VNC) under Mac OS 10.7 works only 
        when not running BOINC as a daemon.

    client/
        hostinfo_unix.cpp

Rom    13 Jan 2012
    - VBOX: Cleanup a few messages stating port numbers in the stderr spew.
    - VBOX: Send configuration settings in one message instead of piece meal.

    api/
        boinc_api.cpp, .h
    samples/vboxwrapper
        vboxwrapper.cpp

Rom    13 Jan 2012
    - VBOX: It helps to remove the older send msg routines. Oooops.

    samples/vboxwrapper
        vboxwrapper.cpp

David  13 Jan 2012
    - API: fix queueing problem for graphics-related messages
        (web graphics URL and remote desktop addr)
    - GUI RPC and API:
        change "remote_desktop_connection" to "remote_desktop_addr" everywhere.
        It's an address, not a connection.
    - vboxwrapper: log message cleanup

    api/
        boinc_api.cpp,h
    client/
        app.cpp,h
        app_control.cpp
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
        app_ipc.cpp,h
    samples/
        vboxwrapper.cpp

Rom    13 Jan 2012
    - MGR: Add RDP client support for Linux.

    clientgui/
        MainDocument.cpp

David  13 Jan 2012
    - file deleter: improved logging; from Oliver

    sched/
        file_deleter.cpp

Rom    13 Jan 2012
    - MGR: Launch the RDP client on Windows in full-screen mode to avoid
        a bug where the screen doesn't refresh and keyboard/mouse events
        don't manifest until you close down the client and restart it.
    
    clientgui/
        MainDocument.cpp

Charlie 13 Jan 2012
    - MGR: Add RDP client support for the Mac.  I have found no reliable way 
        to pass the IP address and port to Microsoft's Remote Desktop 
        Connection application for the Mac, so I'm using CoRD.  Unfortunately, 
        CoRD does not seem to be as reliable as I would like either.
    
    clientgui/
        MainDocument.cpp

Rom    13 Jan 2012
    NOTE: Some previously experimental features in the client software are
      now important to have for the 7.0 release.  The existing 7.0 branch
      will no longer be maintained, we'll create a new branch for the 7.0
      client line at a later date.

    - Tag for 7.0.8 release, all platforms
      boinc_core_release_7_0_8

    /
        configure.ac
        version.h

David  13 Jan 2012
    - The zip library was moved to a directory (project_depends)
        outside of BOINC, but the build files weren't made to work.
        Move the library back where it was before.

    configure.ac
    Makefile.am
    zip/*

David  13 Jan 2012
    - GUI RPC: add <xml> tag to the start of HTTP replies.

    client/
        gui_rpc_server_ops.cpp

David  14 Jan 2012
    - client: identify ATI 97x0 GPUs (from Jord)

    client/
        coproc_detect.cpp

David  14 Jan 2012
    - GUI RPC client: don't write spurious messages to stderr

    lib/
        gui_rpc_client_ops.cpp

Rom    14 Jan 2012
    - VBOX: Fix regression where the vm_name wasn't reset back to the
        current wu name after deregistering a stale VM.

    samples/vboxwrapper
        vbox.cpp, .h
        vboxwrapper.cpp

Rom    15 Jan 2012
    - VBOX: Add User ID and Host ID to the CERN data format.

    samples/vboxwrapper
        vboxwrapper.cpp

Rom    15 Jan 2012
    - MGR: Use rdesktop-vrdp on Linux, it is included with VirtualBox
        and meant for what we are trying to do.
    - MGR: Remove the fullscreen flag on Windows.  It might only be
        my machine which has refresh problems when launching in
        windowed mode.
    
    clientgui/
        MainDocument.cpp

David  15 Jan 2012
    - optimize strip_whitespace(); from Steffen Moller
    - storage simulator: generalize so you can use different
        coding parameters at different levels

    lib/
        str_util.cpp
    ssim/
        ssim.cpp

David  15 Jan 2012
    - storage simulator: compute fault tolerance correctly

    ssim/
        ssim.cpp

Charlie 16 Jan 2012
    - client, lib: Improve available GPU RAM detection, include it in 
        display of GPU description.
    
    client/
        coproc_detect.cpp
    lib/
        coproc.cpp,.h

Charlie 16 Jan 2012
    - client: Add logging message for insufficient GPU RAM details to 
        coproc_debug flag.

    client/
        cpu_sched.cpp

Rom    16 Jan 2012
    - Tag for 7.0.9 release, all platforms
      boinc_core_release_7_0_9

    /
        configure.ac
        version.h

Charlie 17 Jan 2012
    - Mac: In permissions error alert: show branded name; if permissions 
        error is in a subdirectory, show path to bad file or subdirectory.

    client/
        check_security.cpp
        sandbox.h
    clientgui/
        BOINCGUIApp.cpp
    mac_installer/
        PosInstall.cpp

Charlie 17 Jan 2012
    - client: Save all CUDA and CAL GPU info until done with OpenCL detection 
        so we have available GPU RAM for all OpenCL GPU descriptions.
    
    client/
        coproc_detect.cpp

Charlie 17 Jan 2012
    - Tag for 7.0.10 release, all platforms
      boinc_core_release_7_0_10

    /
        configure.ac
        version.h

Rom    17 Jan 2012
    - VBOX: Fix a regression I introduced on Saturday, is_vm_registered shouldn't
        be called when vm_name is empty.  Change it so that is references
        vm_master_name instead to get the correct name of the VM.
    - VBOX: Fix the logic that scan for the CR character and removes it.  Also fix
        the partial line inclusion when the various log files are greater than 16k.
        string.erase returns what the iterator value should be.
 
     samples/vboxwrapper
        vbox.cpp

David  17 Jan 2012
    - storage simulator work
    - lib: recent checkin broke strip_whitespace(string&).

    ssim/
        ssim.cpp
        plot
        ssim.php
    lib/
        str_util.cpp

David  18 Jan 2012
    - web: link between LAMMPS job submission page and file sandbox page

    html/user/
        lammps.php
        sandbox.php

Charlie 18 Jan 2012
    - client: add debugging aids to coproc_detect logic.
    
    client/
        coproc_detect.cpp

Charlie 18 Jan 2012
    - Tag for 7.0.11 release, all platforms
      boinc_core_release_7_0_11

    /
        configure.ac
        version.h

Charlie 18 Jan 2012
    - client: ATI available RAM is in bytes, not MB; if no CAL, don't divide 
        OpenCL global_mem_size by MEGA to fill in ATI available RAM.
        (Checked in to 7.0.11 tag.)
    
    client/
        coproc_detect.cpp

Rom    18 Jan 2012
    - VBOX: Fix another issue that was a result of Saturdays commit.  Make
        sure that the vm_name variable is populated with something useful if
        resuming from a previous execution of the wrapper.
 
     samples/vboxwrapper
        vbox.cpp

David  18 Jan 2012
    - WAP interface to credit info: return correct timestamp,
        and don't bother with caching.

    html/
        inc/
            wap.inc
        user/
            userw.php

Rom    18 Jan 2012
    - VBOX: Use the documented way to reset the UUID of a virtual hard
        disk.  Thanks Daniel.
    
     samples/vboxwrapper
        vbox.cpp

David  18 Jan 2012
    - Manager: in project web links, use "Home Page" instead of the
        project name (which could be very long)

    clientgui/
        BOINCBaseView.cpp

David  19 Jan 2012
    - client: parse HOST_INFO::p_vm_extensions_disabled correctly

    lib/
        hostinfo.cpp
        proxy_info.cpp
        gui_rpc_client_ops.cpp
        coproc.cpp
    version.h
    ssim/
        ssim.php

Charlie 19 Jan 2012
    - Mac installer: If installing under OS 10.4, create users and groups 
        boinc_master and boinc_project at first available UserIDs and 
        GroupIDs starting at 25 instead of 501 to prevent problems with 
        Accounts pane of System Preferences.

    clientgui/
        mac/
            SetupSecurity.cpp

David  19 Jan 2012
    - storage simulator work

    ssim/
        ssim.cpp
        ssim.php

Charlie 20 Jan 2012
    - client: Show GPU number in "GPU is OpenCL-capable" message.

    client/
        client_state.cpp

Charlie 20 Jan 2012
    - OpenCL: 
        Problem: Mac OpenCL does not recognize all NVIDIA GPUs returned 
        by CUDA.  Since there is no CAL for Mac, this is not an issue 
        for ATI / AMD GPUs.  On other platforms, the CUDA and CAL drivers 
        also provide OpenCL support, so we don't expect the problem there.
    
        Solution: I believe that CUDA and OpenCL return identical GPU 
        model names for the same GPU, and that both return the GPUs in the 
        same order (but with some possibly omitted from the OpenCL sequence.)
        We use that information to correlate the OpenCL data with CUDA data. 
        We use our internal CUDA device_num for the corresponding OpenCL 
        device, but add a new field opencl_device_index; the two fields are 
        equal unless we have CUDA devices not recognized by OpenCL.  We 
        add a new array opencl_device_indexes[] to the COPROC struct, 
        corresponding to the entries in device_nums[].
    
        The init_data.xml file now has a new field gpu_opencl_device_index.  
        If this field exists, the boinc_get_opencl_ids() API uses this to 
        find the cl_device_id and cl_platform_id, otherwise it continues 
        to use the value in gpu_device_num.
    
    api/
        boinc_opencl.cpp
    client/
        app_start.cpp
        coproc_detect.cpp
    lib/
        app_ipc.cpp,.h
        coproc.h

David  20 Jan 2012
    - volunteer data archival stuff

    ssim/
        vda.cpp,h (new)
        ssim.cpp
        makefile

David  20 Jan 2012
    - client: add a mechanism for restartable download of compressed files.
        (It turns out that the compression schemes supported by
        Apache and libcurl, suprisingly, aren't restartable.)

        if a <file_info> from the server contains <gzipped_url> tags,
        use those instead of the <url> tags,
        and flag the file as "download_gzipped".
        If this is the case, download NAME.gz and save it as NAME.gzt.
        When the download is complete, rename NAME.gzt to NAME.gz,
        and uncompress it to NAME.
        (this ensures that if NAME.gz is present, it's complete).
        Also do the uncompression, if needed, in verify_file().
        This ensures that the uncompression will eventually get done
        even if the client quits are crashes in the middle.

    - update_versions: if <gzip> is present in a <file_info>,
        add a gzipped copy in the download directory
        and add a <gzipped_url> elements to the app version's xml_doc.

    client/
        client_types.cpp,h
        file_xfer.cpp
        cs_files.cpp
    tools/
        update_versions

David  20 Jan 2012
    - feeder: if we're rereading the DB because of trigger file,
        do PERF_INFO::get_from_db() also.
        From Teemu Mannermaa.

    sched/
        feeder.cpp

David  20 Jan 2012
    - admin web: if change app or app version params,
        advise user to stop/restart the project

    html/ops/
        manage_apps.php
        manage_app_versions.php

Rom    21 Jan 2012
    - VBOX: Enable the wrapper to handle fractional CPU usage.  If
        the server specifies 1.1 CPUs used, allocate 2 CPUs to be used
        in VirtualBox.
    
    samples/vboxwrapper
        vboxwrapper.cpp

Rom    21 Jan 2012
    - sched: adjust the vbox??_mt plan classes to use 1.5 CPUs instead
        of the full 2 CPUs. Vboxwrapper uses ceil() to allocate enough
        whole CPUs for Virtualbox.  Ideally this will cause the BOINC
        client-side scheduler to use the remaining fraction of the CPU
        for GPU data transfer which will then free up one whole CPU for
        another job.  All without over-commiting anything.
    
    sched/
        sched_customize.cpp

David  22 Jan 2012
    - GUI RPC: switching to the new XML parser
        (which won't parse a double as an int)
        revealed a type mismatch in FILE_TRANSFER::next_request_time
        between client and server.

    db/
        boinc_db.cpp,h
        schema_vda.sql (new)
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
    ssim/
        vda.cpp
        vda_lib.cpp,h
        vda_transitioner.cpp
        makefile
    client/
        net_stats.cpp

David  22 Jan 2012
    - client: fix divide-by-zero bug in calculation of priority
        of projects with zero resource share

    client/
        cpu_sched.cpp

Rom    23 Jan 2012
    - MGR: Tweak the z-order of BOINC Manager owned windows a little bit.
        Image a case where BOINC Manager and the BOINC Manager event log
        live side-by-side or only slightly overlapped, and the user wants
        to use a full screen/maximized window.  If the bring the BOINC
        manager window back into focus while that app is still running
        make sure the event log comes forward as well.  The event log
        should appear behind the main window in the case they are
        overlapped.
    
    clientgui/
        BOINCGUIApp.cpp, .h

Rom    23 Jan 2012
    - client - Remove Mac OSX 10.3.9 hack, it is no longer needed.

    client/
        http_curl.cpp

David  23 Jan 2012
    - scheduler: initialize COPROC_ATI::version to zero;
        avoid sending spurious "update driver" messages

    lib/
        coproc.cpp
    db/
        boinc_db.cpp,h
        schema_vda.sql
    vda/
        vdad.cpp
        makefile

Charlie 23 Jan 2012
    - Mac: If permissions error because unable to opendir() a subdirectory, 
        show path to that subdirectory.

    client/
        check_security.cpp

Rom    23 Jan 2012
    - VBOX: Demote the priority level of the VM process to try and prevent
        latency issues for volunteers.
    - VBOX: If the port forwarding preferred port isn't usable, try asking
        the OS for one.
    - VBOX: On a failure, get the VM process exit code and report it with
        the rest of the stderr spew.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

David  23 Jan 2012
    - web: use et_n instead of pfc_n for #jobs completed
        in host app details page
        (pfc_n is not populated for hosts running old clients)

    html/user/
        host_app_versions.php

Rom    24 Jan 2012
    - client: treat the gzt file extension like we do for the gz file extension.
        Disable libcurls ability to decompress on-the-fly and let the CC decompress
        it after it has been fully downloaded.
    
    client/
        http_curl.cpp

David  24 Jan 2012
    - client: when deleting a file, check for .gzt and .gz variants as well

    client/
        client_types.cpp

David  24 Jan 2012
    - client: bug fixes in gzipped download code

    client/
        client_types.cpp
        cs_files.cpp

Rom    24 Jan 2012
    - client: undo my previous commit.  We request .gz from the server and write
        the contents to a .gzt file.
 
    client/
        http_curl.cpp

Rom    24 Jan 2012
    - VBOX: Fix build breaks for Linux and Mac.

    samples/vboxwrapper/
        vbox.cpp

Rom    24 Jan 2012
    - client: Fix long standing issue with the .gz extension automatically being
        decompressed on-the-fly when it wasn't supposed to be.

    client/
        http_curl.cpp

David  24 Jan 2012
    - volunteer storage
    client/
        client_types.h
    vda/
        vdad.cpp

Charlie 25 Jan 2012
    - VBOX: Fix compiler warnings on Mac.

    samples/vboxwrapper/
        vboxwrapper.cpp

Charlie 25 Jan 2012
    - MGR: Make the task pane in the advanced view and its buttons fixed sizes; 
        ellipse the button contents if needed; show full button text plus 
        description in button tooltips; don't set button labels if unchanged.

    clientgui/
        BOINCBaseView.cpp, .h
        BOINCTaskCtrl.cpp, .h
        stdwx.h

David  26 Jan 2012
    - update_versions: for gzipped files,
        send the size of the compressed file as well.
    - client: parse and write the compressed size (FILE_INFO::gzipped_nbytes).
        For get_transfer GUI RPCs, if it's a compressed download send
        the compressed size.
        That way the manager will show the fraction done correctly.

    tools/
        update_versions
    lib/
        gui_rpc_client.h
    vda/
        vdad.cpp
    client/
        client_types.cpp,h
        acct_setup.cpp

Charlie 26 Jan 2012
    - client: disable temporary debugging aids in coproc_detect logic.
    
    client/
        coproc_detect.cpp

David  26 Jan 2012
    - client: fix write of gzipped_nbytes

    client/
        client_types.cpp

Rom    26 Jan 2012
    - Tag for 7.0.12 release, all platforms
      boinc_core_release_7_0_12

    /
        configure.ac
        version.h

David  26 Jan 2012
    - client: after a gzipped file is downloaded,
        we uncompress it and then verify it.
        The latter involves computing its MD5, which reads the entire file.
        Combine these 2 steps so that the MD5 is computed
        as the file is uncompressed,
        eliminating the need to read the file again.

    lib/
        crypt.cpp,h
        crypt_prog.cpp
    client/
        client_types.cpp,h
        cs_files.cpp

Charlie 26 Jan 2012
    - Mac: Update the build instructions with the current URL for c-ares-1.7.4.

    mac_build/
        HowToBuildBOINC_XCode.rtf

Charlie 27 Jan 2012
    - MGR: If CPU or GPU is suspended from Activity Menu, change "Snooze" items 
        to "Resume" in system tray menu.
    - client: Always remember previous CPU and GPU activity settings.

    client/
        client_types.cpp,h
        cs_statefile.cpp
    clientgui/
        BOINCTaskBar.cpp,.h
        mac/
            macSysMenu.cpp

David  27 Jan 2012
    - manager: in Disk View, try to make colors more distinct.
        In addition to varying the hue,
        cycle through 3 different luminance values (.5, .7, .9)
    - web: update the wording of buffer-size preferences

    clientgui/
        ViewResources.cpp
    html/inc/
        prefs.inc

David  27 Jan 2012
    - manager: in tooltips for Project/Task buttons,
        don't prepend "button name: ";
        add a tooltip for Home Page button.

    clientgui/
        BOINCBaseView.cpp
        BOINCTaskCtrl.cpp

Charlie 27 Jan 2012
    - MGR: Disable new "Resume" items in system tray menu if modal dialog is open.

    clientgui/
        BOINCTaskBar.cpp

David  28 Jan 2012
    - web: msg tweak
    - screensaver coordinator: use new XML parser

    clientscr/
        screensaver.cpp
    html/user/
        forum_report_post.php

Charlie 30 Jan 2012
    - client: because available GPU RAM value is unreliable, don't defer 
        scheduling a task based on insufficient GPU RAM.  For now, the 
        relevant code is guarded by a "#define DEFER_ON_GPU_AVAIL_RAM 0" 
        so we can easily restore it if we find a reliable way to get the 
        value of available GPU RAM periodically. 
    
        NOTE: we are still sending this unreliable value to project 
        servers in the sched_request file.  Does it make sense to do so?
    
    client/
        cpu_sched.cpp
    lib/
        coproc.h

David  30 Jan 2012
    - manager: change text for buffer-size fields in advanced prefs dialog

    clientgui/
        DlgAdvPreferencesBase.cpp

David  30 Jan 2012
    - server: revamp the "assigned job" mechanism.
        This now supports two main use cases:
        1) there's a job that you want to run once on all hosts,
            present and future
            (or all hosts belonging to a user, or to a team).
            The job is never transitioned, validated, or assimilated.
        2) There's a normal job for which you want to use only
            hosts belonging to a specific user (e.g. cluster or cloud hosts).
            This restriction can be made either when the job is created,
            or on the fly,
            e.g. as part of a scheme for accelerating batch completion.
            For the latter purposes we now provide a function
                restrict_wu_to_user(DB_WORKUNIT&, int userid);

            The job goes through the standard
            transitioner/validator/assimilator path.

        These cases are enabled by config flags
            <enable_assignment_multi/>
            <enable_assignment/>
        respectively.

        Assignment of type 2) are no longer stored in shared mem,
        so there is no limit on their number.

        There is no longer a rule that assigned job names must contain "asgn".

        NOTE: this requires a database update.

    db/
        boinc_db.cpp,h
        constraints.sql
        schema.sql
    sched/
        sched_util.cpp,h
        sched_shmem.cpp
        transitioner.cpp
        sched_assign.cpp
    tools/
        backend_lib.cpp
        create_work.cpp
    html/ops/
        db_update.php
    lib/
        common_defs.h

David  30 Jan 2012
    - admin web: improvements to the pages for investigating result failures
        (though considerable funkiness remains)

    html/
        ops/
            failure_result_summary_by_platform.php
            failure_result_summary_by_host.php
            index.php
            pass_percentage_by_platform.php
        inc/
            db_ops.inc

David  31 Jan 2012
    - admin web: fixes and clarifications to failure summaries

    html/
        ops/
            failure_result_summary_by_platform.php
            failure_result_summary_by_host.php
            index.php
            pass_percentage_by_platform.php
        inc/
            boinc_db.inc
            db_ops.inc
        user/
            apps.php

David  31 Jan 2012
    - create_work tool: change option names for assigned jobs
    - admin web: show actual platform name in result summary page

    tools/
        create_work.cpp
    html/ops/
        pass_percentage_by_platform.php

David  31 Jan 2012
    - web: fix the user search feature
    - scheduler: parse d_project_share
    - scheduler: if vbox and vbox_mt are both available,
        use vbox for a 1-CPU machine

    db/
        boinc_db.h
    sched/
        sched_customize.cpp
        sched_types.cpp
    html/user/
        user_search.php

David  1 Feb 2012
    - scheduler: add log messages to show VM-related request items
    - fix typos in db_update script

    sched/
        sched_send.cpp
    html/ops/
        db_update.php

Charlie 2 Feb 2012
    - Tag for 7.0.13 release, all platforms
      boinc_core_release_7_0_13

    /
        configure.ac
        version.h

David  2 Feb 2012
    - client: fix job scheduler problem:
        old: RR simulation marks some jobs as missing their deadline,
            and the job scheduler runs those jobs as "high priority".
        problem: those generally aren't the ones we should run.
            E.g. if the client has a lot of jobs from a project,
            typically the ones with later deadlines are the ones
            whose deadlines are missed in the simulation.
            But in this case the EDF policy says we should run
            the ones with earliest deadlines.
        new: if a project has N deadline misses,
            run its N earliest-deadline jobs,
            regardless of whether they missed their deadline in the sim.
        Note: this is how it used to be (as designed by John McLeod).
            I attempted to improve it, and got it wrong.

    client/
        cpu_sched.cpp

Rom    2 Feb 2012
    - MGR: Fix cookie detection problem when using the
        IEGetProtectedModeCookie API.  Function prototype changed from the
        InternetGetCookieEx function.  HRESULT != BOOL.
    
    clientgui/
        browser.cpp

Rom    2 Feb 2012
    - Tag for 7.0.14 release, all platforms
      boinc_core_release_7_0_14

    /
        configure.ac
        version.h

David  3 Feb 2012
    - client: first pass at async file copy feature.
        When a large file is copied from a project dir to a slot dir,
        it's copied in chunks,
        interleaved with other polling activities such as GUI RPCs.
        That way the manager doesn't freeze while large copies
        (e.g. VM images) are happening

    client/
        async_file.cpp,h (new)
        client_types.h
        client_state.cpp
        app.cpp,h
        app_start.cpp
        Makefile.am

Rom    3 Feb 2012
    - client: add async file copy stuff to Windows project file.

    client/
        async_file.cpp
    win_build/
        boinc_cli.vcproj

David  3 Feb 2012
    - client: debug async file copy.  Seems to be working.

    client/
        app.cpp
        app_start.cpp
        async_file.cpp
    lib/
        common_defs.h

Charlie 3 Feb 2012
    - client: add async file copy stuff to Xcode project.

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  3 Feb 2012
    - transitioner: fix bug that cause invalid SQL query

    db/
        boinc_db.cpp

Charlie 3 Feb 2012
    - SCR: Fix Xcode editor problems from recent screensaver.cpp changes.

    clientscr/
        screensaver.cpp

David  5 Feb 2012
    - client: intermediate checkin for async file verification

    lib/
        crypt.cpp,h
        crypt_prog.cpp
    client/
        client_types.cpp,h
        async_file.cpp,h
        pers_file_xfer.cpp
        cs_apps.cpp
        cs_scheduler.cpp
        acct_mgr.cpp
        cs_files.cpp

Charlie 6 Feb 2012
    - client: Fix compiler warning generated by above checkin.

    client/
        pers_file_xfer.cpp

Rom    6 Feb 2012
    - client: Undo my change of 24 Jan 2012 which broke WCG's use of the
        .gzb file extension.  I was wrong in how I read the conditional and
        it turns out that libcurl does not attempt to honor the content-encoding
        if it was disabled as part of the request. My bad.
    
    client/
        http_curl.cpp

David  6 Feb 2012
    - client: tweaks to AMD GPU detection msgs
    - client: async file stuff

    client/
        async_file.cpp
        coproc_detect.cpp
        cs_files.cpp

David  6 Feb 2012
    - client: async file stuff

    client/
        async_file.cpp,h
        cs_files.cpp
    lib/
        crypt.cpp,h
        crypt_prog.cpp

David  6 Feb 2012
    - client: async file stuff

    client/
        client_types.cpp,h
        app_start.cpp
        async_file.cpp
        cs_files.cpp

David  6 Feb 2012
    - client: async file stuff.
        async decompress/verify seems to be working

    client/
        async_file.cpp,h
        gui_http.cpp

Charlie 6 Feb 2012
    - client: remove "GPU n is OpenCL-capable" messages.  They were 
        redundant with new OPENCL_DEVICE_PROP::description() and were 
        confusing because they only listed the "best" CUDA / CAL GPUs.
    
    client/
        client_state.cpp

David  7 Feb 2012
    - client: HTTP range request errors are permanent.

    client/
        http_curl.cpp,h
        pers_file_xfer.cpp
        file_xfer.cpp
    lib/
        gui_rpc_client_ops.cpp
        error_numbers.h
        str_util.cpp
    html/ops/
        bolt_refresh.php

David  7 Feb 2012
    - async file stuff.  mostly working.  still a few bugs

    client/
        cs_apps.cpp
        http_curl.cpp
    clientgui/
        AccountManagerPropertiesPage.cpp
        ProjectPropertiesPage.cpp
    lib/
        str_util.h

David  7 Feb 2012
    - client: async file stuff
        - set threshold at 10 MB for doing things asynchronously
        - don't count VERIFY_PENDING as failure

    client/
        async_file.h
        client_state.cpp
        client_types.cpp,h
        cs_apps.cpp

Charlie 7 Feb 2012
    - client: Fix bug in setting opencl_device_index.

    client/
        coproc_detect.cpp

David  7 Feb 2012
    - client/Manager/GUI RPC: clean up RPC stuff involving
        resource-specific backoff and exclusion

        Old: client writes
                <rsc_backoff_time>
                <rsc_backoff_interval>
                <no_rsc_ams>
                <no_rsc_apps>
                <no_rsc_pref>
            in GUI RPC entries for projects.
            Manager (GUI RPC client): PROJECT struct has
                cpu_backoff_time
                cpu_backoff_interval
                ... cuda, ati
                no_cpu_pref
                ... cuda, ati
            and it parses tags of these names.
            In other words, no information is being conveyed
            from client to Manager.

        New:
            manager parses both forms

    clientgui/
        DlgItemProperties.cpp
        lib/
            gui_rpc_client_ops.cpp
            gui_rpc_client.h

David  8 Feb 2012
    - client: fix bug in async file verify.
        File verify is done in 4 places:
        - after a download finishes
        - transition result to DOWNLOADED
        - if project->verify_files_on_app_start, on app start
        Use asynchrony only in the first 2 cases,
        since the async logic is set up to mark the file as PRESENT
        when done, not to restart a task

    client/
        client_types.h
        app_start.cpp
        pers_file_xfer.cpp
        cs_apps.cpp
        cs_files.cpp

Rom    8 Feb 2012
    - VBOX: Remove the renaming of the vm disk image code. It isn't needed
        and it complicates things in the CC.
    
    samples/vboxwrapper/
        vboxwrapper.cpp

David  8 Feb 2012
    - client: bug fix for async file ops:
        set up files in slot dir when starting an app,
        whether or not it's the first time

    client/
        app.h
        app_control.cpp
        app_start.cpp
        async_file.cpp,h

David  8 Feb 2012
    - client: on startup, check file size as well as existence
    - client: add <async_file_debug> log flag
    - client: do decompress (both sync and async) to a temp file,
        then rename
    - client: if a file's status is VERIFY_PENDING on startup,
        set it to NOT_PRESENT; that will trigger a verify
    - client: do async copy only if size is above threshold

    lib/
        cc_config.cpp,h
    client/
        client_state.cpp
        async_file.cpp,h
        sim.cpp
        app_start.cpp
        client_types.cpp
        cs_files.cpp

David  8 Feb 2012
    - client: fixed a bug in procinfo_app() that would cause processes
        to be treated as non-BOINC when they actually are,
        thus falsely triggering CPU-busy suspensions

    lib/
        procinfo.cpp

David  9 Feb 2012
    - client: only check file size if the FILE_INFO specifies it.

    client/
        cs_files.cpp

David  9 Feb 2012
    - scheduler: don't send "update GPU driver" messages if
        the client didn't report a driver version #

    sched/
        sched_customize.cpp
        file_upload_handler.cpp

Rom    9 Feb 2012
    - Tag for 7.0.15 release, all platforms
      boinc_core_release_7_0_15

    /
        configure.ac
        version.h

David  9 Feb 2012
    - client (Unix): don't print misleading "task exited with no finish file"
        message if task actually called boinc_temporary_exit().

    client/
        app_start.cpp
        app_control.cpp

David  9 Feb 2012
    - storage stuff

    vda/
        vdad.cpp
        vdad_lib.cpp,h
        ssim.cpp
        makefile

Charlie 10 Feb 2012
    - client: If OpenCL but no CAL or no CUDA, copy GPU model name from OpenCL so 
        it will apppear in the host table's serialnum attributes (requested by 
        Oliver Bock.)

    client/
        coproc_detect.cpp

Charlie 11 Feb 2012
    - MGR: Fix a bug which pushed modal dialogs (Attach Wizard) to rear when 
        Manager process was brought to front from behind (Mac only.)  This 
        bug was probably introduced in Z-order tweak of 23 Jan 2012.

    clientgui/
        BOINCGUIApp.cpp

David  12 Feb 2012
    - client: zero PROJECT::last_upload_start on reset,
        so that we can fetch work immediately
    - client: in PERS_FILE_XFER::create_xfer(),
        check for already-existing file before seeing we're allowed to start a new xfer
    - client: in PERS_FILE_XFER::create_xfer(),
        if an async verify is in progress, mark PERS_FILE_XFER as done.

    client/
        client_state.cpp
        log_flags.cpp
        pers_file_xfer.cpp

David  12 Feb 2012
    - storage stuff
    - client: message tweak

    lib/
        crypt_prog.cpp
        susp.cpp (deleted)
    vda/
        vda_lib2.cpp (new)
        vda_lib.h
        ssim.cpp
        makefile
    client/
        cpu_sched.cpp

Charlie 13 Feb 2012
    - MGR: Fix bad <organization_help_url> in Progress Through Processor's 
        skin files provided by Matt Blumberg on 9 December 2011.

    clientgui/skins/Progress Thru Processors/
        skin.xml

Charlie 13 Feb 2012
    - client: Try to fix incorrect NVIDIA device number in OpenCL descriptions. 

    client/
        coproc_detect.cpp

Charlie 13 Feb 2012
    - MGR: Update <organization_*> tags in 3 branded skins (GR, PtP, CE) to 
        new values from Matt Blumberg.

    clientgui/skins/
        GridRepublic/
            skin.xml
        Progress Thru Processors/
            skin.xml
        Charity Engine/
            skin.xml

Charlie 13 Feb 2012
    - Mac sandbox: In initial permissions check when launching Manager or Client, 
        don't check project-created subdirectories under project or slot 
        directories because we have not told projects these must be readable and 
        executable by group.
    
    client/
        check_security.cpp

David  14 Feb 2012
    - scheduler: fix bug that broke broadcast jobs (from Kevin)

    sched/
        sched_shmem.cpp

David  14 Feb 2012
    - assimilator: when enumerating results for a WU, check retval.
        Otherwise we might get a partial list,
        which screws up assimilation logic.

    sched/
        assimilator.cpp
    lib/
        hostinfo.h

David  14 Feb 2012
    - admin web: fix error when showing unsent results

    html/inc/
        db_ops.inc

Charlie 14 Feb 2012
    - API: Remove apparently unnecessary include of carbon.h (requested 
        by Bernd Machenschalk.)

    api/
        boinc_api.h
    clientscr/
        gfx_switcher.cpp

David  14 Feb 2012
    - storage stuff

    vda/
        vdad.cpp
        vda_lib.h

David  14 Feb 2012
    - client: instead of saying "comm deferred",
        say "project backoff XXX.XX".

    client/
        work_fetch.cpp

David  14 Feb 2012
    - client: more tweaks to work-fetch messages

    client/
        work_fetch.cpp

David  15 Feb 2012
    - web: in user search, show most recent rather than oldest users
    - web: don't show URL in account page if expavg_credit < 1.
        This discourages a type of spam.

    html/
        inc/
            user.inc
        user/
            user_search.php

David  15 Feb 2012
    - client: msg tweak

    client/
        work_fetch.cpp

David  15 Feb 2012
    - lib: change get_mac_address() to avoid sprintf(buf, "%s...", buf);
        use strcat instead
    - client: don't use get_mac_address() to create host CPIDs
        (we have plenty of other info to make them unique)
    - storage stuff

    db/
        schema_vda.sql
    lib/
        mac_address.cpp
        Makefile.am
    vda/
        vda_lib2.cpp
        vda_lib.h
    client/
        hostinfo_network.cpp

David  16 Feb 2012
    - client: fetch work from backup (zero resource share) projects
        only if a device instance is idle

    client/
        work_fetch.cpp

David  16 Feb 2012
    - web: change wording of buffer-size prefs

    html/inc/
        prefs.inc
    sched/
        sched_types.h
    vda/
        sched_vda.cpp

Charlie 16 Feb 2012
    - client: Remove some temporary debugging code.

    client/
        coproc_detect.cpp

David  16 Feb 2012
    - storage stuff (work in progress)
    - small code shuffle

    db/
        boinc_db.h
    sched/
        delete_file.cpp
    tools/
        backend_lib.cpp,h
    lib/
        str_util.h
    vda/
        sched_vda.cpp
        makefile

Charlie 16 Feb 2012
    - client: Always use GPU model name from OpenCL if available for ATI / AMD 
        GPUs because (we believe) it is more reliable and user-friendly.

    client/
        coproc_detect.cpp

David  17 Feb 2012
    - client: fix bug where WCG downloads were getting wrong size errors.
        To be honest, I don't know that the problem was or why my change fixed it.
    client/
        http_curl.cpp

Charlie 17 Feb 2012
    - client: Prevent an unlikely but possible crash.

    client/
        coproc_detect.cpp

Charlie 17 Feb 2012
    - MGR: Fix a Mac-only bug which showed Event Log if About BOINC is selected 
        from task bar menu when BOINC is hidden.

    clientgui/
        BOINCGUIApp.cpp
        BOINCTaskBar.cpp

Rom    17 Feb 2012
    - Tag for 7.0.16 release, all platforms
      boinc_core_release_7_0_16

    /
        configure.ac
        version.h

David  17 Feb 2012
    - db_purge: when deleting a workunit record,
        delete any assignments that refer to it

    db/
        db_base.cpp,h
    sched/
        db_purge.cpp

David  17 Feb 2012
    - server: add volunteer data archival to the build system

    sched/
        sched_config.cpp,h
        Makefile.am
    configure.ac
    Makefile.am
    vda/
        Makefile.am new
        makefile (renamed to makefile_orig)

Charlie 17 Feb 2012
    - Mac: Fix back trace to work under OS > 10.5.
    (Checked in to boinc_core_release_7_0_16 tag)

    lib/
        mac/
            mac_backtrace.cpp

Charlie 18 Feb 2012
    - client: Fix OpenCL NVIDIA GPU detection when CUDA is not present.

    client/
        coproc_detect.cpp

David  18 Feb 2012
    - client: tweak to work-fetch policy:
        if we're making a scheduler RPC to a project for reasons
        other than work fetch,
        and we're deciding whether to ask for work, ignore hysteresis;
        i.e. ask for work even if we're above the min buffer
        (idea from John McLeod).

    client/
        work_fetch.cpp,h
        cs_scheduler.cpp
    sched/
        feeder.cpp
    vda/
        vdad.cpp

David  19 Feb 2012
    - client: fix bug in notices where, after a notice is deleted,
        the notices tab refreshes once/second forever after

    client/
        cs_notice.cpp

Rom    20 Feb 2012
    - Tag for 7.0.17 release, all platforms
      boinc_core_release_7_0_17

    /
        configure.ac
        version.h

David  20 Feb 2012
    - client: message tweaks
    - scheduler: fix crash when use <enable_assignment>

    sched/
        db_purge.cpp
        sched_assign.cpp
    client/
        work_fetch.cpp

David  20 Feb 2012
    - Manager/Client: fix bugs in GUI RPC that prevented
        updates to proxy info from being saved by client

    lib/
        gui_rpc_client_print.cpp
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
    client/
        boinc_cmd.cpp

David  20 Feb 2012
    - Manager: compile fix

    clientgui/
        MainDocument.cpp

David  20 Feb 2012
    - scheduler: fix a couple of assigned-job bugs
        (need "where" at start of enumerate() clause!)

    sched/
        sched_util.cpp
        sched_assign.cpp

David  20 Feb 2012
    - client: define a "arrived-first" order on results
        in which the tiebreaker is MD5 of name.
        That way the order is stable
        (it doesn't change from one run of the client to the next)
        and it doesn't grep results with similar names
        (and hence for the same app).
        This ordering is used for
        1) the order of display in the manager
        2) the job scheduler's notion of FIFO

    client/
        client_types.h
        cs_statefile.cpp
        cpu_sched.cpp

Charlie 20 Feb 2012
    - client: Fix OpenCL NVIDIA GPU enumeration bug I introduced 
        with last checkin.

    client/
        coproc_detect.cpp

Charlie 20 Feb 2012
    - Tag for 7.0.18 release, all platforms
      boinc_core_release_7_0_18

    /
        configure.ac
        version.h

Charlie 20 Feb 2012
    - Mac installer: Update copyright notice from 2009 to 2012.

    clientgui/
        mac/
        SetVersion.cpp

David  21 Feb 2012
    - storage stuff

    db/
        schema_vda.sql
    py/Boinc/
        setup_project.py
    vda/
        vda.cpp
        vda_lib.cpp,h
        vda_lib2.cpp
        vdad.cpp
        ssim.cpp

Rom    21 Feb 2012
    - Vbox: Include date component in log messages to ease debugging long
        running VM tasks.
    
    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp, .h

David  22 Feb 2012
    - scheduler: in version selection, when deciding which version is fastest,
        we multiple projected FLOPS by a normal random var
        with mean 1 and stddev 0.1.
        Make the stddev configurable; in particular it can be zero.

    db/
        boinc_db.h
        schema_vda.sql
    sched/
        sched_config.cpp,h
        sched_version.cpp
    vda/
        vdad.cpp

David  22 Feb 2012
    - client: change the job scheduling policy for MT jobs.
        The old policy avoided running an N-CPU job unless N CPUs were free.
        This could result in idle CPUs for long periods; for example:
        on a 4-CPU machine, suppose you have a long 1-CPU job in EDF mode,
        and some 4-CPU jobs.
        3 CPUs will be idle until the 1-CPU job finishes.
        Furthermore, the work fetch mechanism won't try to get
        jobs (possibly non-MT) from other projects,
        because the RR simulation doesn't reflect the scheduling
        policy's exclusion principle.

        The change: schedule jobs until ncpus_used >= ncpus.
        E.g. in the above situation run the 1- and 4-CPU jobs together.
        In extreme cases we might run 3 1-CPU jobs and the 4-CPU job.
        This will degrade the performance of the 4-CPU job,
        but that's probably better than having idle CPUs.

    client/
        cpu_sched.cpp

David  22 Feb 2012
    - scheduler: tell the user if we're not sending work because
        VirtualBox is not installed

    sched/
        sched_customize.cpp

David  22 Feb 2012
    - scheduler and create_work: fix bugs that caused targeted jobs
        to be sent to non-targeted hosts.
        The feeder was erroneously putting targeted jobs
        in the shared mem cache.
        Changes:
        - The feeder only enumerates jobs for which
            workunit.transitioner_flags is zero.
            NOTE: this field is nonzero iff the job is assigned.
        - create_work: when creating an assigned jobs,
            set workunit.transitioner_flags appropriately

    db/
        boinc_db.cpp,h
        schema.sql
    sched/
        sched_array.cpp
    tools/
        create_work.cpp

David  22 Feb 2012
    - API, client, and Manager: add an optional "reason" argument to
        boinc_temporary_exit(),
        explaining why the app is exiting.
        Convey this to the client, and then to the Manager,
        and display it there and in the log.

    clientgui/
        MainDocument.cpp
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h
    api/
        boinc_api.cpp,h
    client/
        client_types.cpp,h
        app.h
        app_control.cpp

David  22 Feb 2012
    - client: fix an instance of
        sprintf(buf, "%s...", buf)
        on Unix

    client/
        hostinfo_unix.cpp

Charlie 22 Feb 2012
    - API: fix compile error on Mac.

    api/
        macglutfix.m

Charlie 22 Feb 2012
    - client: When available, use total RAM value from CAL for all ATI 
        OpenCL GPUs, not only for the "best" GPU, so the descriptions 
        show this value.
    
    client/
        coproc_detect.cpp

David  22 Feb 2012
    - server: split out the "antique file deletion" feature of
        file_deleter.cpp into a separate program,
        since it blocks normal file deletion while it's running.
        From Bernd.
    - storage stuff

    db/
        boinc_db.cpp,h
        schema_vda.sql
    sched/
        file_deleter.cpp
        antique_file_deleter.cpp (new)
        Makefile.am
    vda/
        vdad.cpp
        vda_lib.cpp
        vda_lib2.cpp
        vda.cpp

David  22 Feb 2012
    - install antique file deleter as periodic task (24 hours)
        when create new project

    sched/
        antique_file_deleter.cpp
    tools/
        make_project
    py/Boinc/
        setup_project.py

Charlie 23 Feb 2012
    - MGR: Update <organization_help_url> in Progress Through Processor's 
        skin file again as requested by Matt Blumberg on 17 February 2012.

    clientgui/skins/Progress Thru Processors/
        skin.xml

Charlie 24 Feb 2012
    - Mac installer: Create RealName field for users boinc_master and 
        boinc_project and set it to empty string (following new advice from 
        Apple Developer technical Suport.)

    clientgui/
        mac/
            SetupSecurity.cpp

Rom    24 Feb 2012
    - MGR: Rename the "Remaining" column to "Remaining (Estimated)" in the
        Advanced GUI/Work view.
    
    clientgui/
        ViewWork.cpp

David  24 Feb 2012
    - client: amend checkin of 18 Feb to not request work if
        work buffer is above upper limit

    client/
        work_fetch.cpp

David  24 Feb 2012
    - storage stuff

    vda/
        vdad.cpp
        vda.cpp
        vda_lib2.cpp
        vda_lib.h

David  24 Feb 2012
    - storage stuff

    db/
        boinc_db.h
        schema_vda.sql
    sched/
        delete_file.cpp
        put_file.cpp
        get_file.cpp
    tools/
        backend_lib.cpp,h
    vda/
        vda.cpp
        vda_policy.cpp,h (new)
        vda_lib.cpp,h
        Makefile.am
        ssim.cpp

David  24 Feb 2012
    - scheduler: when choosing the best app version,
        by default we skip app versions that use a resource
        for which work has not been requested.
        This is determined by the "check_req" arg to get_app_version().
        This flag is cleared whenever we want to send a job
        regardless of whether a requested resource can be used:
        namely, when resending lost jobs, and when sending assigned jobs.

        Fix a bug that could skip unrequested versions even
        when check_req is false.

        NOTES:

        1) The current semantics aren't right.
        When check_req is false, we selected the fastest of all app versions,
        including those for which no work is requested.
        Instead, we should select the fastest of the versions
        for which work is requested if there are any;
        otherwise, select the fastest version.

        2) The mechanism isn't implemented for anonymous platform.
        It should be.

        3) If we've cached an answer (including NULL) for a given
        value of check_req, that answer may be wrong for a different value.

    sched/
        sched_version.cpp

Bernd  27 feb 2012
    - db_purge: record result and workunit name in index file

    sched/
        db_purge.cpp

Bernd  27 feb 2012
    - validator: output the version string even when not in project directory

    sched/
        validator.cpp

Bernd  27 feb 2012
    - scheduler: allow to configure userids for which the scheduler should
        not scan the host table. This was previously hardcoded for
        Einstein@home to prevent some users with many (identical) hosts
        from flooding the DB with slow queries. Now add
        <dont_search_host_for_userid>userid</dont_search_host_for_userid>
        to the project config (in config.xml) for each such userid.

    sched/
        sched_config.h
        sched_config.cpp
        handle_request.cpp

Bernd  27 Feb 2012
    - scheduler: fix typo in previous commit (patch was using old parser)

    sched/
        sched_config.cpp

Bernd  27 Feb 2012
    - scheduler: the scheduler (stderr) log is buffered to keep the output of
        one instance together in the scheduler.log when multiple instances are
        running. Currently the buffer has a fixed size of 32768 charaters.
        On one hand with much debug output this buffer may turn out to be
        too small. OTOH the log of this instance is completely lost in case
        of a crash, which doesn't help with debugging. Thus make the
        scheduler log buffer size configurable using the tag
        <scheduler_log_buffer> in project config. The default value is
        still the old size (32768), set it to 0 to disable buffering
        completely, e.g. for debugging.

    sched/
        sched_config.h
        sched_config.cpp
        sched_main.cpp

Bernd  27 Feb 2012
    - scheduler: Another feature for debugging the scheduler.
        Previously (little known) the scheduler could be hacked to preserve
        the sched_request.xml and sched_reply.xml in own directories
        (you had to modify the initial value of use_files in sched_main.cpp).
        This feature could now be switched on and off on the fly just by
        changing the project config.
        When there is an (existing) directory configured as
        <debug_req_reply_dir>, each schduler instance will write three
        files in there: PID_C_sched.log, PID_C_sched_request.xml and (if all
        goes well) PID_C_sched_reply.xml. PID is the process id of this
        scheduler instance, C is an internal counter within the process if
        FCGI is used. The sched.log will contain nothing else than the
        pid and the IP address of the client. This should allow for
        identifying the scheduler instance responsible for a given
        apache error log message ("premature end of script headers") when
        a scheduler crashed. sched_request.xml (obviously) is the scheduler
        request, and if the scheduler doesn't crash in between, there will
        also be the reply to the client kept in sched_reply.xml
        Remove the <debug_req_reply_dir> tag from the project config
        to turn this feature off.

    sched/
        sched_config.h
        sched_config.cpp
        sched_main.cpp

Rytis  27 Feb 2012
    - change antique_file_deleter logic not to delete files that still have
        workunit records

    sched/
        antique_file_deleter.cpp

David  27 Feb 2012
    - VDA: add some log messages
    - scheduler: add VDA
    - client, web: change default prefs to min_buf=.1 days, max_buf=.5 days
    - scheduler: app plan function for vbox requires 7.0+ client

    Makefile.incl
    sched/
        antique_file_deleter.cpp
        sched_config.cpp,h
        sched_customize.cpp
        handle_request.cpp
    html/inc/
        prefs.inc
    lib/
        prefs.cpp
    vda/
        vda.cpp
        sched_vda.cpp,h

Charlie 28 Feb 2012
    - MGR: Change strings in Simple View to match changes in Advanced View: 
        "Remaining" -> "Remaining (Estimated)", "Home page" instead of project 
        name in web links.

    clientgui/
        sg_ProjectWebSitesPopup.cpp
        sg_TaskPanel.cpp

David  28 Feb 2012
    - storage stuff

    db/
        boinc_db.cpp,h
        schema_vda.sql
    sched/
        sched_types.cpp,h
    vda/
        sched_vda.cpp

David  28 Feb 2012
    - storage stuff.  Getting there.

    db/
        boinc_db.cpp
    sched/
        handle_request.cpp
    vda/
        vdad.cpp
        vda_policy.h
        sched_vda.cpp
        vda.cpp

David  29 Feb 2012
    - wrapper: compute final CPU time correctly for multi-process apps
    - storage stuff

    db/
        boinc_db.cpp,h
        schema_vda.sql
    samples/wrapper/
        wrapper.cpp
    vda/
        vda_lib.cpp,h
        sched_vda.cpp
        vda.cpp
        ssim.cpp

Charlie 29 Feb 2012
    - client: On Mac only, get ATI RAM sizes from OpenGL.

    client/
        coproc_detect.cpp
    lib/
        coproc.h
     mac_build/
        boinc.xcodeproj/
            project.pbxproj

Rom    29 Feb 2012
    - VBOX: Implement an exponential backoff scheme of sleeping between
        commands if a session lock error has been detected.  Cap the overall
        delay to 30 seconds total for a single command.

        Experiments performed by jujube(T4T) suggest changing the sleep interval
        to an exponential style backoff would increase our chances of recovering in
        situations where the previous lock is held by a previous instance of
        vboxmanage whos instance data hasn't been cleaned up within vboxsvc yet.

    client/
        vbox.cpp

David  1 Mar 2012
    - client: fix crashing bug when there is 1 instance of a resources.
        I'm not sure how this every worked.

    client/
        work_fetch.h
    sched/
        feeder.cpp
    vda/
        storage.txt

Rom    2 Mar 2012
    - Tag for 7.0.19 release, all platforms
      boinc_core_release_7_0_19

    /
        configure.ac
        version.h

Charlie 3 Mar 2012
    - Mac installer: Utility shell script creates users & groups boinc_master 
        and boinc_project with IDs at 501 or above; also creates RealName field 
        for users boinc_master and boinc_project and sets it to empty string 
        (following advice from Apple Developer technical Suport.)

    mac_build/
        Mac_SA_Secure.sh

David  3 Mar 2012
    - Manager: small code cleanup
    client/
        client_state.cpp
    clientgui/
        DltItemProperties.cpp,h

David  3 Mar 2012
    - Manager: in Project Properties page,
        show if a GPU type is excluded by configuration
    - client: don't fetch work for a resource type if all instances
        of that type are excluded
    - web: don't use filter_var(, FILTER_SANITIZE_STRING)
        to strip HTML tags from a string.
        This escapes singles quotes also.
        Use strip_tags() instead.

    clientgui/
        DltItemProperties.cpp
    html/inc/
        util.inc
    lib/
        gui_rpc_client_ops.cpp
        gui_rpc_client.h

David  3 Mar 2012
    - LAMMPS job submission: set rsc_fpops_bound to 20 times rsc_fpops_est
    html/user/
        lammps.php

David  4 Mar 2012
    - web: open BBCode instructions in new window (or tab).
        Otherwise, on IE, you lose the text you already entered
        when you go back.

    html/inc/
        util.inc

Bernd  5 Mar 2012
    - scheduler: fix/augment file_deleter usage message

    sched/
        file_deleter.cpp

David  5 Mar 2012
    - LAMMPS: fix code formatting

    html/user/
        lammps.php

David  8 Mar 2012
    - API: fix various bugs related to process control and critical sections.
    - client: code cleanup (no functional change)

    api/
        boinc_api.cpp
        windows_opengl.cpp
    client/
        app.cpp
        app_control.cpp
    vda/
        *
    
Rom    8 Mar 2012
    - VBOX: Parse the vboxmanage error code for *nix as well.
    - VBOX: Switch to using status.suspend_request instead of status.suspend
        when determining when to suspend/resume a VM.  status.suspended is
        now only changed when direct_process_action is set to true.

    samples/vboxwrapper/
        vboxwrapper.cpp
        vbox.cpp

David  9 Mar 2012
    - API: remove BOINC_STATUS::suspend_request;
        it's an implementation thing, not intended for export.
        Fix a related bug.

    samples/vboxwrapper/
        vboxwrapper.cpp
    api/
        boinc_api.cpp
    vda/
        vda_lib.cpp

Rom    9 Mar 2012
    - VBOX: Setting the CPU Execution Cap should be done with the controlvm
        command after the VM has entered a running state instead of using
        modifyvm.
    
    samples/vboxwrapper/
        vbox.cpp

David  9 Mar 2012
    - web: allow a project to specify 2 stylesheets

    html/
        inc/
            util.inc
        project.sample/
            project.inc

Rom    9 Mar 2012
    - VBOX: Allow the CPU execution cap to be set back to 100% after it had
        alreadly been set lower.

    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

David  10 Mar 2012
    - storage: add some code

    vda/
        vda_lib.cpp,h
        ssim.cpp
        vdad.cpp

David  10 Mar 2012
    - forgot to add files

    vda/
        stats.cpp,h (new)

Bernd  12 Mar 2012
    - scheduler: remove lock file when scheduler caught SIGTERM

    sched/
        handle_request.h
        sched_main.cpp

Rom    12 Mar 2012
    - VBOX: Only attempt to reset throttle values if the VM is in
        a running state, otherwise controlvm throws an error.
    
    samples/vboxsamples/
        vboxwrapper.cpp

Rom    12 Mar 2012
    - VBOX: If a VM fails to start because the machine is low on memory,
        temporarily exit so BOINC can reschedule it for a later time.
        If the problem doesn't go away it'll just time out eventually anyway.
    
    samples/vboxsamples/
        vboxwrapper.cpp

David  12 Mar 2012
    - server: allow <db_host> to include a :port

    db/
        db_base.cpp

David  12 Mar 2012
    - client: msg tweak and fix compile warnings

    client/
        client_types.cpp
        coproc_detect.cpp
        work_fetch.h
    lib/
        coproc.h
        str_util.cpp

Charlie 12 Mar 2012
    - client: fix compile errors.

    client/
        client_types.cpp

Charlie 12 Mar 2012
    - client: In COPROCS::get_ati_mem_size_from_opengl() on Mac, compare ATI 
        model names from OpenGL with those from IOKit only if coproc_debug 
        flag is set.

    client/
        coproc_detect.cpp

Charlie 12 Mar 2012
    - VBOX: Fix typo in Mac wrapper name (1686 -> i686).

    samples/vboxwrapper/
        vboxwrapper.xcodeproj
            project.pbxproj

David  13 Mar 2012
    - scheduler: do homogeneous app version check before rereading WU
        as well as after.

    sched/
        sched_send.cpp,h

David  13 Mar 2012
    - transitioner: don't clear a WU's HR and HAV class if there are
        timed-out instances; they could still be returned.

    sched/
        transitioner.cpp

Charlie 14 Mar 2012
    - MGR: fix French translations of Remaining (estimated).

    locale/fr/
        BOINC_Manager.po

Charlie 14 Mar 2012
    - client: When comparing ATI model names from OpenCL and IOKit on a 
        Mac, substitute "AMD" for "ATI" because sometimes one API returns 
        "ATI" but the other API returns "AMD".

    client/
        coproc_detect.cpp

Rom    14 Mar 2012
    - VBOX: Use the boinc_temporary_exit API properly.  Wait for 5 minutes
       before allowing another attempt to start the VM when the hypervisor
       cannot allocate enough memory.
    - VBOX: Print out a trace statement about the suspend/resume directive
       from the vboxwrapper perspective.  This in conjuction with the
       BOINC API trace statements should provide a better idea with
       what is going on.
   
    samples/vboxwrapper
        vboxwrapper.cpp

David  14 Mar 2012
    - scheduler: add an alternative way of defining app plan functions
        that uses an XML configuration file;
        see http://boinc.berkeley.edu/trac/wiki/AppPlanConfig
        From Bernd.

    sched/
        sched_customize.cpp
        plan_class_spec.cpp,h
        Makefile.am

David  14 Mar 2012
    - scheduler: code cleanup for the above

    sched/
        plan_class_spec.cpp,h

Charlie 14 Mar 2012
    - client: On Mac only, update ATI available RAM after getting ATI total 
        RAM size from OpenGL.

    client/
        coproc_detect.cpp

David  14 Mar 2012
    - scheduler: fix FCGI compile

    vda/
        sched_vda.cpp

David  14 Mar 2012
    - client: on each scheduler RPC,
        make sure that files flagged as executable in the reply,
        and that are present, are actually executable.

    client/
        client_types.cpp

David  15 Mar 2012
    - client: when killing a task, don't delete its shmem or change its state.
        These mess up the logic for dealing with exited processes,
        resulting in incorrect log messages.

    client/
        app.cpp
        app_control.cpp

David  15 Mar 2012
    - scheduler: when HR is being used,
        make per-HR slot allocation an option rather than the default.
        Kevin reported that slot allocation wasn't working for WCG.
        The default is now no slot allocation,
        and use the regular result enumeration function
        rather than the once that scans the entire table.
        The config flag for enabling slot allocation is <hr_allocate_slots/>.

    sched/
        sched_config.cpp,h
        feeder.cpp
        hr_info.cpp

Rom    15 Mar 2012
    - VBOX: Give the VM process a short priority boost when responding
        to a quit request.  On older XP machines it might speed up the memory
        dump to disk.
    - client: Increase the quit request timeout from 10 seconds to 60 seconds for
        machines running VMs and slow disk drives.  It should give the VM enough
        time to gracefully shutdown and not give boinc reason to kill the wrapper.

    client/
        app.h
    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

Rom    16 Mar 2012
    - Tag for 7.0.21 release, all platforms
      boinc_core_release_7_0_21

    /
        configure.ac
        version.h

David  17 Mar 2012
    - client: use %g to format job resources (#CPUs, #GPUs).
        This suppresses trailing zeroes and (if integer) the .

    client/
        client_types.cpp

David  17 Mar 2012
    - client: changes to job scheduling policy:
        - fix bug that could greatly overcommit CPUs
            if there are several EDF jobs and several non-EDF GPU jobs.
        - don't overcommit CPUs if any job is MT (MT means avg_ncpus > 1).
            For example, on a 4-CPU machine we will run:
                a 0.5-CPU GPU job and 4 1-CPU jobs
                but not
                a 0.5-CPU GPU job and 1 4-CPU job
    client/
        cpu_sched.cpp

Charlie 18 Mar 2012
    - MGR: Fix a Mac-only bug which sometimes failed to show the snooze icon 
        after closing and opening the Manager windows.  This was caused by  
        having a second instance of CTaskBarIcon.

    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.cpp,.h
        mac/
            MacSysMenu.cpp

Rom    19 Mar 2012
    - Tag for 7.0.22 release, all platforms
      boinc_core_release_7_0_22

    /
        configure.ac
        version.h

David  16 Mar 2012
    - client: small changes to make client compile on Android,
        and to report the platform as "arm-android".
        From Carl Christensen.
    - Add a script for building BOINC and library dependencies on Android
        From Peter Hanappe.

    lib/
        mac_address.cpp
    client/
        android/
            AndroidBuild.sh (new)
        cs_platforms.cpp
        hostinfo_unix.cpp

David  19 Mar 2011
    - client: job scheduling policy tweak:
        if CPUs are fully committed (e.g. with EDF jobs)
        allow GPU jobs but only up to CPU usage of ncpus+1

    client/
        cpu_sched.cpp

David  19 Mar 2011
    - client: Don't include VBox executive processes as non-BOINC CPU time.
        On some systems they use significant CPU time while VMs are running.
        TODO: do this only if we're actually running a VBox app

    lib/
        procinfo.cpp

David  19 Mar 2011
    - client: if an app process exits because of a signal,
        don't show the "no finish file" message;
        not sure why this was there in the first place.
    - client: if an app process exits because of a signal,
        show the signal correctly

    client/
        app_control.cpp

David  20 Mar 2012
    - client: report completed results if a time-of-day network suspend is
        scheduled within the next 30 minutes

    client/
        app.h
        client_state.h
        cs_prefs.cpp
        cs_scheduler.cpp
        app_control.cpp
    lib/
        prefs.cpp,h

Rom    20 Mar 2012
    - client: Initialize buffer which is used to hold the temporary exit reason.
        If somebody didn't populate the reason when calling boinc_temporary_exit
        the buffer contained junk.

    client/
        app_control.cpp

David  21 Mar 2012
    - client: set file ownership and permissions after an async verify.
        This was presumably the cause of the recent Einstein@home problem.
    - client: set file ownership and permissions after an async copy.
    - client: set file ownership and permissions after a
        regular (non-async) copy.

        The latter 2 bugs would affect a VM app that copies
        its executable to slot/x/shared

    client/
        client_types.cpp,h
        async_file.cpp,h
        app_start.cpp

Rom    21 Mar 2012
    - VBOX: Introduce the use of VM snapshots as a form of checkpoint.
        - Perform snapshots at most once every ten minutes.
        - Client suspend/resume messages behave the same.
        - Client no heartbeat/quit messages cause the wrapper to just
          poweroff the VM.
    
        On startup check to see if the last checkpoint time is greater than 0,
        if so, start from the most recent snapshot.
    - VBOX: If we receieve the status message of no heartbeat or quit, set
        the temporary delay to 5 minutes.  If the wrapper is terminated during
        the middle of a snapshot, hopefully this will give VirtualBox enough
        time to complete the snapshot.  Restarting the BOINC job should then
        poweroff the VM and restore from the last snapshot.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

David  21 Mar 2012
    - client: change timeout for job quit/abort from 60 back to 15
        (time between sending app a quit/abort message
        and, if not exited yet, killing it)
    - client: if app has reported an "other PID"
        (e.g., vboxwrapper reports the VBoxHeadless PID)
        then include it (along with descendants) in the
        list of processes we kill when killing the job.

    client/
        app.h
        app_control.cpp

Rom    23 Mar 2012
    - Tag for 7.0.23 release, all platforms
      boinc_core_release_7_0_23

    /
        configure.ac
        version.h

Rom    21 Mar 2012
    - VBOX: Before attempting to take the snapshot for a VM, pause it first.
        This changes the snapshot type from a live snapshot to an online
        snapshot.  Presumably difference might make it easier to do and
        prevent the VM from asserting.
    
    samples/vboxwrapper/
        vbox.cpp, .h

Rom    22 Mar 2012
    - VBOX: Detect another form of out of memory error from VirtualBox.
        Reschedule the job for some time in the future when there might
        be enough memory.
    - VBOX: Resume the VM's execution after the creation of the snapshot
        but before we attempt to delete the previous, now stale, snapshot.
    - VBOX: Treat the 'livesnapshotting', 'deletingsnapshotlive', and
        'deletingsnapshotlivepaused' states as online states.
    
    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

Rom    22 Mar 2012
    - VBOX: Do not treat the timeout error as a fatal error when attempting
        to delete stale snapshots.  Slower machines can take longer than
        45 seconds to complete the deletion of old snapshots.

    samples/vboxwrapper/
        vbox.cpp

David  22 Mar 2012
    - client/server: add optional <dont_use_dcf/> to schedule reply.
        If set, client won't use DCF for this project.
        Make this the default in server code;
        we now do runtime estimation entirely on the server side,
        and the client-side mechanism is counterproductive.

    sched/
        sched_types.cpp,h
    client/
        client_types.cpp,h
        scheduler_op.cpp,h
        work_fetch.cpp
        cs_scheduler.cpp
        cpu_sched.cpp

David  23 Mar 2012
    - server: is_project_dir() was checking that cgi-bin is a directory.
        This doesn't work if it's a symlink to a dir.
        Check for that too.

    lib/
        filesys.cpp,h
    sched/
        sched_config.cpp

David  23 Mar 2012
    - client: if a job calls boinc_temporary_exit() 100 times, abort it.
        Otherwise it could keep doing it forever
        (e.g. if there's not ever enough available GPU RAM)

    client/
        app.h
        app_control.cpp

David  23 Mar 2012
    - scheduler: fix bug that could cause zero credit for
        the first few jobs of a new application
        (in wu_estimated_pfc(), only multiply by app.min_avg_pfc
        if it's nonzero).

    sched/
        credit.cpp

David  23 Mar 2012
    - client/server: estimate FLOPS for NVIDIA GPUs with
        compute capability 3.x.
        Not sure if the parameters are right
        (128 cores/proc, 2 flops/clock)
        but they're better than nothing.
    - web: don't allow user names that have leading or trailing white space,
        or HTML tags, or are empty

    html/
        inc/
            user.inc
        user/
            openid_login.php
            create_account_action.php
            edit_user_info_action.php
            create_account.php
    lib/
        coproc.cpp
        error_numbers.h
    client/
        coproc_detect.cpp

Rytis  24 Mar 2012
    - web: fix previous commit.

    html/
        inc/
            user.inc

David  25 Mar 2012
    - compile fix for redhat, from Steffen Moller

    clientgui/gtk/
        taskbarex.cpp,h

David  26 Mar 2012
    - scheduler: enforce app_version.max_core_version

    sched/
        sched_version.cpp

David  26 Mar 2012
    - client: report results if CPU suspend pending in next 30 min

    client/
        cs_scheduler.cpp

David  26 Mar 2012
    - client: set PROJECT::last_upload_start whenever an upload starts,
        not just when a result becomes ready to upload.
        Fix bug where a scheduler RPC to report results is done
        even though uploads are active.
    - client: cpu_sched_debug enables messages about not scheduling jobs
        because of insufficient RAM
    
    client/
        pers_file_xfer.cpp
        cpu_sched.cpp

David  26 Mar 2012
    - web: add script for replacing blank user names with the user ID

    html/ops/
        fix_blank_user_names.php

David  26 Mar 2012
    - client/server: set cores/proc for NVIDIA compute capability 3.0 to 192
        Why can't NVIDIA provide an API for this?????

    lib/
        coproc.cpp

David  27 Mar 2012
    - client: fix typo that prevented GPU jobs from running
        if CPUs were filled with EDF jobs

    client/
        cpu_sched.cpp

David  27 Mar 2012
    - client: fix bug where if we sent app a <quit> message,
        and it timed out and we killed it, we'd treat it as a job error.
        (This was a major bug).
    - API: remove BOINC_STATUS::suspend_request.
        I meant to do this before.

    api/
        boinc_api.h
    client/
        app_control.cpp

David  27 Mar 2012
    - client: fix bug in reading reason for temporary exit
    - lib: fix a valgrind warning

    lib/
        parse.cpp
    client/
        app_control.cpp

David  27 Mar 2012
    - scheduler: zero host.nsame_ip_addr if IP addr differs from previous

    sched/
        handle_request.cpp

David  27 Mar 2012
    - client/scheduler: fix error in NVIDIA peak flops calculation

    lib/
        coproc.cpp


Charlie 29 Mar 2012
    - Mac installer: When checking for duplicate group membership entries, 
        count only whole words (preceded and followed by white space) so
        that if we have both 'jon' and 'jones' we don't count 'jon' twice.
    - Mac uninstaller: Use Directory Services to find the user names of 
        all human users instead of stepping through the entries in the 
        /Users directory.

    mac_installer/
        PostInstall.cpp
        Uninstall.cpp

Charlie 29 Mar 2012
    - client: Fix idle detection during fast user switching.  See comments 
        in HOST_INFO::users_idle() for details.

    client/
        hostinfo_unix.cpp

Rom    30 Mar 2012
    - Tag for 7.0.24 release, all platforms
      boinc_core_release_7_0_24

    /
        configure.ac
        version.h

Charlie 31 Mar 2012
    - MGR: Revert my changes of 18 March to Mac Task Bar Icon because the 
        second instance is needed to handle our Dock menu.  Fix the earlier 
        problem of losing the suspended icon by ensuring that we always 
        call the same instance of CTaskBarIcon::SetIcon().

    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.cpp,.h
        BOINCTaskBar.cpp,.h
        mac/
            MacSysMenu.cpp,.h

Charlie 31 Mar 2012
    - Tag for 7.0.25 release, all platforms
      boinc_core_release_7_0_25

    /
        configure.ac
        version.h

David  30 Mar 2012
    - client simulator: compile fixes

    client/
        sim.cpp
        sim_util.cpp
        client_types.cpp
        cs_scheduler.cpp
        app.cpp

David  2 Apr 2012
    - client: change some unsigned int to size_t in our versions
        of NVIDIA APIs.  This apparently caused crashes
        (in app, not client, which I don't understand) for Einstein@Home.
        From Steffen Moller.

    lib/
        coproc.h
    client/
        coproc_detect.cpp

David  2 Apr 2012
    - client: don't write deviceHandle to NVIDIA XML description.
        Um, pointers don't have any meaning outside the process

    lib/
        coproc.cpp

David  9 Apr 2012
    - client: if we fetch a master file and it contains no scheduler URLs,
        show a message of class INTERNAL_ERROR
    - client/scheduler: make CUDA_DEVICE_PROP.totalGlobalMem a double,
        and remove dtotalGlobalMem.
        Although NVIDIA reports RAM size as a size_t,
        there's no reason to store it as an integer after that.

    lib/
        coproc.cpp,h
    client/
        coproc_detect.cpp
        scheduler_op.cpp

Charlie 12 Apr 2012
    - web: separate Intel-only from Universal (PowerPC & Intel) clients 
        on download-all page so that PowerPC clients don't tell users 
        to upgrade to intel-only version.

    doc/
        versions.inc

David  13 Apr 2012
    - client: add PID to random stuff used to make host CPID,
        in case running multiple clients on same host

    client/
        hostinfo_network.cpp

Rom    16 Apr 2012
    - Tag for 7.0.26 release, all platforms
      boinc_core_release_7_0_26

    /
        configure.ac
        version.h

David  17 Apr 2012
    - client: only send active tasks in get_simple_gui_info GUI RPC

    client/
        client_types.h
        gui_rpc_server_ops.cpp

David  19 Apr 2012
    - client: remove <std_debug> log flag
    - client: remove <zero_debts> config option

    lib/
        cc_config.cpp,h
    client/
        log_flags.cpp

Rom    19 Apr 2012
    - Update copyrights.

    client/win/
        boinc_cli.rc
        boinc_cmd.rc
        boinc_log.rc
    clientctrl/
        boincsvcctrl.rc
    clientgui/
        BOINCGUIApp.rc
        DlgAbout.cpp
    clientscr/
        boinc_ss.rc
        boinc_ss_opengl.rc
    clienttray/
        boinc_tray.rc

David  20 Apr 2012
    - client: add <suspend_debug> log flag

	client/
		cs_prefs.cpp
    lib/
        cc_config.cpp,h

David  20 Apr 2012
    - client: add <suspend_debug> log flag

    client/
        cs_prefs.cpp

David  20 Apr 2012
    - client/server: remove assert()s from message log code

    lib/
        msg_log.cpp

Rom    20 Apr 2012
    - MGR: Show() does not restore the window state from a minimized state.  Use
        maximize(false) to handle that situation.
    
    clientgui/
        BOINCBaseFrame.cpp
        BOINCGUIApp.cpp

David  20 Apr 2012
    - client: if we're contacting a project to ask it for work
        of a particular processor type,
        ask it for work of other types only if we're below
        max buffer for those types.

    client/
        work_fetch.cpp
        cs_prefs.cpp

David  21 Apr 2012
    - client: fix bug that could erroneously cause a GPU to
        be "blocked by config file".

    client/
        work_fetch.cpp
        coproc_detect.cpp

Rom    23 Apr 2012
    - client: fix function prototypes for CUDA detection.

    client/
        coproc_detect.cpp

David  23 Apr 2012
    - client: fix bug that caused a project's jobs to all be run EDF
        if the project has the <dont_use_dcf> flag set.

    client/
        cpu_sched.cpp

Rom    24 Apr 2012
    - WINSETUP: Fix long standing installer bug where we were attempting
        to add the boinc_master account to the boinc_admins group when
        installing in the non-service install mode.  boinc_master is only
        created during service installs.  This was causing a setup failure
        on Windows 8. As far as I can tell it should have also been failing
        on Win7 and WinVista.
    
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

David  25 Apr 2012
    - client: when showing how much work a scheduler request returned,
        scale by availability (as is done to show the amount of the request)
    - client in account manager request, <not_started_dur> and
        <in_progress_dur> are in wall time, not run time
        (i.e. scale them by availability)

    Note: there's some confusion in the code between runtime and wall time,
        where in general wall time = runtime / availability.
        New convention: let's use "runtime" for the former,
        and "duration" for the latter.

    client/
        client_types.cpp,h
        time_stats.h
        work_fetch.cpp
        rr_sim.cpp
        cs_scheduler.cpp
        cpu_sched.cpp

David  25 Apr 2012
    - client: fix crashing bug that happened when a scheduler reply
        had a parse error, and it included project files.
        While parsing the scheduler reply we'd add FILE_REFs to
        PROJECT::project_files,
        but wouldn't link them to FILE_INFOs since this is done
        only if the reply parses correctly.
        The next garbage_collect() would dereference these NULL pointers.

        Solution: parse the FILE_REFS into SCHEDULER_REPLY::project_files.
        Copy this to PROJECT::project_files only if the reply parses.

    client/
        client_types.cpp,h
        scheduler_op.cpp,h
        cs_scheduler.cpp
        cs_statefile.cpp

David  25 Apr 2012
    - Bad logic in Win code:
        if you have
            *pbuf = HeapAlloc(...)
        then you need
            if (*pbuf == NULL)
        not
            if (pbuf == NULL)
    - various code cleanups

    from Steffen Moeller

    lib/
        diagnostics_win.cpp
        procinfo_win.cpp
    client/
        coproc_detect.cpp
        client_types.cpp

David  26 Apr 2012
    - client: enforce <no_gpus> in config file not just at startup,
        but also when config file is re-read.

    client/
        log_flags.cpp

David  26 Apr 2012
    - A first attempt to fix the bug where apps die with exit(1)
        (whereas they didn't do this w/ older clients).
        On Windows, the client uses TerminateProcess(h, 1) to kill processes;
        the 1 is the exit code the process will appear to have.

        So instead, add a "will_restart" bool arg to the various kill
        functions, and if set use 0 (= STATUS_SUCCESS),
        otherwise use EXIT_ABORTED_BY_CLIENT.

        Note: in principle this shouldn't make any difference
        for quitting tasks,
        since handle_exited_app() checks for task state QUIT_PENDING
        and ignores the exit code in that case.
        The only place I can see where it would make any difference
        is when we kill a process because it hasn't been handling
        queued shared-memory messages for 180 seconds.

    - client: add more info to the message about an exited app

    - client: function return values (ERR_*) are different from
        process exit codes (EXIT_*).
        But in many places we were using return values as exit codes.
        Fix these.
        Also, break out the different types of limits a job can exceed
        (time, disk, memory) into difference exit codes.

    lib/
        error_numbers.h
    client/
        client_state.cpp
        app.h
        gui_rpc_server_ops.cpp
        cs_apps.cpp
        client_types.cpp
        cs_scheduler.cpp
        app_control.cpp

David  27 Apr 2012
    - compile fix

    lib/
        str_util.cpp

Rom    27 Apr 2012
    - WINSCR: Use the DefProcHandler function when processing WM_CLOSE/WM_DESTROY
        window messages.  In effect, let Windows do the default thing.  This removes
        the hacks which kept the screensaver running with old versions of
        Microsoft's keyboard/mouse driver software installed.
    
    clientscr/
        screensaver_win.cpp, .h

David  30 Apr 2012
    - client: if acct mgr sends us an account with no authenticator,
        show an error message instead of trying to attach

    client/
        acct_mgr.cpp

David  30 Apr 2012
    - client: code cleanup.  Move RESULT and PROJECT to separate files

    client/
        project.cpp,h (new)
        result.cpp,h (new)
        *.cpp

David  30 Apr 2012
    - client: minor code shuffle

    client/
        project.cpp
        result.cpp
        client_state.h
        cs_scheduler.cpp
        cpu_sched.cpp

David  30 Apr 2012
    - client: if an app version needs OpenCL/CUDA/CAL,
        make sure that the GPU supports it
        (fix bug where sometimes, e.g. CUDA detection fails
        but OpenCL succeeds, and we have a CUDA app).

    client/
        client_types.cpp

Charlie 30 Apr 2012
    - lib: Fix compile break on Mac.

    lib/
        str_replace.h

Charlie 30 Apr 2012
    - Mac: Update XCode project with new source files.

       mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  1 May 2012
    - Manager: message tweak
    - add new files to Win project

    clientgui/
        MainDocument.cpp
    win_build/
        boinc_cli.vcproj

Rom    2 May 2012
    - Tag for 7.0.27 release, all platforms
      boinc_core_release_7_0_27

    /
        configure.ac
        version.h

Charlie 3 May 2012
    - Mac installer: changes for OS 10.8 compatibility.

    mac_installer/
        PostInstall.cpp
        Uninstall.cpp

Charlie 6 May 2012
    - Mac installer: changes for OS 10.8 compatibility.

    mac_installer/
        PostInstall.cpp
        Uninstall.cpp

Charlie 10 May 2012
    - MGR: Eliminate QuickDraw calls for OS 10.8 compatibility.

    clientgui/
        BOINCGUIApp.cpp
        DlgEventLog.cpp
        DlgitemProperties.cpp
        sg_DlgMessages.cpp
        mac/
            MacGUI.cpp,.h

David  6 May 2012
    - client: fix bug where coproc name could be set incorrectly when:
        a) there are multiple GPU vendors
        b) one of them is detected via OpenCL but not "native" (CUDA/CAL)

    client/
        coproc_detect.cpp

Bernd  7 May 2012
    - lib: added function secs_to_hmsf() which converts (double) seconds
        to a string 0h00m00s00

    lib/
        str_util.cpp, .h

David  9 May 2012
    - C++ code: use MAXPATHLEN for char arrays that hold paths

    (many .cpp files)

David  9 May 2012
    - compile fix

    api/
        boinc_opencl.cpp,h

David  9 May 2012
    - Win compile fixes

    lib/
        boinc_win.h
        filesys.cpp
    samples/vboxwrapper/
        vboxwrapper.cpp

Rom    9 May 2012
    - lib: Fix a bug where information that was meant for stdout was
        being written to stderr instead.
    - lib: Keep track of the rough estimate of stdout and stderr by
        incrementing internal variables instead of doing a stat on
        each log write.  stat() on Windows is converted to a FindFirstFile()
        call which in turn looks up the file size information in the
        directory structure file system entry.  The directory structure 
        information is only updated periodically.  This lead to larger
        than expected log file for both the manager and core client.
        
        This has the added advantage of reducing the overall number of
        file I/O operations when logging information.
        
    lib/
        diagnostics.cpp

David  10 May 2012
    - diagnostics lib:
        - store file sizes as double rather than int
        - if we're appending to log files, initialize the
            size variables to the current size
        - check return value of fprintf, only increment size if it's +
        - when rotate log file, reset size var to zero

    lib/
        diagnostics.cpp

David  13 May 2012
    - lib: down case processor features

    lib/
        hostinfo.cpp

Rom    15 May 2012
    - MGR: Add OpenCL icon to the ProjectInfo wizard page.

    clientgui/
        ProjectInfoPage.cpp, .h
    clientgui/res/
        openclicon.xpm
    clientgui/res/templates/
        openclicon.png
    lib/
        diagnostics.cpp

Rom    15 May 2012
    - MGR: Fix the icon we use to represent OpenCL.
    - client: Update the stock all_project_list.xml file we send out
        with new client software.

    clientgui/res/
        openclicon.xpm
    win_build/installerv2/redist/
        all_projects_list.xml

Rom    2 May 2012
    - Tag for 7.0.28 release, all platforms
      boinc_core_release_7_0_28

    /
        configure.ac
        version.h

Charlie 13 June 2012
    - client: Reverse my logic of 16 Feb 2012: we now always use GPU model 
        name determined from CAL TargetID (if available) for OpenCL model  
        name of ATI / AMD GPUs because (we believe) it is more user-friendly.

    client/
        coproc_detect.cpp

Charlie 16 June 2012
    - Mac installer: Fix bugs I introduced on May 3 and May 6.

    mac_installer/
        PostInstall.cpp
        Uninstall.cpp

Charlie 18 June 2012
    - Mac installer: Create or delete Login Items and set screensaver 
        properly when installing for multiple users on OS 10.7, 10.8.

    mac_installer/
        PostInstall.cpp
        Uninstall.cpp

Charlie 18 June 2012
    - Tag for 7.0.29 release, Macintosh only
      boinc_core_release_7_0_29

    /
        configure.ac
        version.h

Rom    18 May 2012
    - MGR: Remove the visuals in the wizard for multi-core and opencl.  This area
        will get a bunch of work in a future commit.
        
    clientgui/
        ProjectInfoPage.cpp, .h
    clientgui/res/
        openclicon.xpm (deleted)
        multicore.xpm (deleted)

Rom    18 May 2012
    - MGR: Fix build breaks
    
    clientgui/
        AccountManagerInfoPage.cpp
    clientgui/
        ProjectListCtrl.cpp, .h

Rom    21 May 2012
    - MGR: Fix menu redraw issue under Ubuntu's new interface.
      fixes #1180
      (From Huibert)

    clientgui/
        AdvancedFrame.cpp

Rom    30 May 2012
    - MGR: Wait until there is valid data in the list box before processing
        the OnProjectSelected() event.
        
    clientgui/
        ProjectInfoPage.cpp

David  14 June 2012
    - client: 
        - added the definitions for the new Windows 7/2008r2 preSP1
            and Windows 8/2012 SKUs based on the winnt.h
            from the Windows 8 RC SKD (also added as proof)
        - added the detection for some more Windows SKU

    client/
        hostinfo_win.cpp

David  18 June 2012
    - client: split GPU detection code into separate files

    lib/
        coproc.h
    client/
        gpu.h (new)
        gpu_opencl.cpp (new)
        gpu_amd.cpp (new)
        gpu_nvidia.cpp (new)
        coproc_detect.cpp
        Makefile.am

David  18 June 2012
    - client: rename coproc_detect.cpp to gpu_detect.cpp

    client/
        gpu_detect.cpp,h
        Makefile.am

David  18 June 2012
    - client: compile fixes

    client/
        gpu_opencl.cpp
        gpu_amd.cpp
        gpu_nvidia.cpp
    lib/
        coproc.cpp,h

David  18 June 2012
    - win compile fixes

    client/
        gpu_nvidia.cpp
    win_build/
        boinc_cli.vcproj

David  18 June 2012
    - client: for NVIDIA, make an array of the PCI info
        for all usable GPUs

    client/
        gpu_nvidia.cpp

David  18 June 2012
    - client: it's possible for a host to get app versions for
        a given app that have different platforms and different version #s.
        The client was erroneously deleting the one w/ the lower version
        when it was no longer in use.
        Fix: in garbage collection, consider one version to supercede another
        only if they have the same platform

    client/
        client_state.cpp
    vda/
        ssim.cpp

David  19 June 2012
	- client: AMD GPU detection addition (from [P3D] Crashtest)

	client/
		gpu_amd.cpp

Charlie 20 June 2012
    - Mac: Update XCode project with new source files.

       mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 21 June 2012
    - Mac: Fix displayed names of BOINC installer, uninstaller, etc.

    clientgui/
        mac/
            SetVersion.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj

Charlie 22 June 2012
    - Mac: Code sign the BOINC installer and uninstaller if we have a 
        valid code signing identity.  Code signing using a registered 
        Apple Developer ID is necessary for GateKeeper with default 
        settings to allow running downloaded applications under OS 10.8.
    
    mac_installer/
        release_boinc.sh

David  22 June 2012
	- client: AMD GPU detection addition (from [P3D] Crashtest)

	client/
		gpu_amd.cpp

Charlie 26 June 2012
    - Mac client: Upgrade to curl 7.26.60 and c-ares 1.9.1.
    
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
        buildc_ares.sh
        buildcurl.sh
        HowToBuildBOINC_XCode.rtf
        setupforBOINC.sh

Rom    27 June 2012
    - Tag for 7.0.30 release, all platforms
      boinc_core_release_7_0_30

    /
        configure.ac
        version.h

Charlie 28 June 2012
    - Mac client: Update wxMac build script for partial compatibility 
        with OS 10.8 and XCode 4.5. See comments in script for details.

     mac_build/
        buildWxMac.sh

David  29 June 2012
    - client: add missing end tag for <pci_info>.  Doh!

    lib/
        coproc.cpp

David  1 July 2012
    - When the client makes a scheduler RPC without requesting work,
        and there's a simple reason
        (e.g. the project is suspended, no-new-tasks, downloads stalled, etc.)
        show it in the event lot.
        If the reason is more complex, don't try to explain.

    client/
        work_fetch.cpp,h
        scheduler_op.cpp

David  2 July 2012
    - client: in the job scheduler, there's a check to prevent
        overcommitting the CPUs if an MT is scheduled.
        Skip this check for GPU jobs.

    client/
        cpu_sched.cpp

Rom    2 July 2012
    - Tag for 7.0.31 release, all platforms
      boinc_core_release_7_0_31

    /
        configure.ac
        version.h

David  26 June 2012
    - client: keep track of the fraction of time that
        1) a network connection is available and
        2) network communication is allowed and
        3) CPU computation is allowed
    - If an app version is marked as needs_network,
        use the above fraction in estimating its rate of progress
    - replace "core client" with "client" in comments.

    client/
        client_state.h
        cs_files.cpp
        rr_sim.cpp
        app_start.cpp
        gui_rpc_server_ops.cpp
        boinc_cmd.cpp
        app_control.cpp
        time_state.cpp,h
        boinc_log.cpp
        sandbox.cpp
        check_state.cpp
        main.cpp
        work_fetch.cpp
        gui_rpc_server.cpp
    lib/
        coproc.cpp

Charlie 26 June 2012
    - Mac client: build libssl.a and libcrypto.a from openssl 1.0.1c and 
        do static links instead of a dynamic links with Apple-supplied 
        dynamic libraries.
    
     mac_build/
        boinc.xcodeproj/
            project.pbxproj
        buildopenssl.sh (new)
        HowToBuildBOINC_XCode.rtf
        setupforBOINC.sh

David  28 June 2012
    - client: when estimating FLOPS for an anonymous-platform app version
        for which no estimate has been supplied by user,
        use (CPU speed)*(cpu_usage + 10*gpu_usage)
        (add the 10*)

    lib/
        common_defs.h
        str_util.cpp
    client/
        client_state.cpp

David  2 July 2012
    - Compile fixes for Fedora core 17.  From Christian B.  Fixes #1194.
    - Fix various #include issues.

    CODING STYLE LAW (minimal inclusion principle):
        If foo.cpp requires <blah.h>,
        #include <blah.h> in foo.cpp, NOT foo.h

    various/
        various

David  2 July 2012
    - more code cleanup

    lib/
        various

Charlie 3 July 2012
    - Mac: fix build break.

    client/
        cpu_sched.cpp

David  3 July 2012
	- Client (Win): in file_size(), use _stat64() instead of stat().
		Otherwise it doesn't work for files >= 2GB
	- Client: TIME_STATS::trim_stats_log() wasn't working because
		it's called in the constructor of TIME_STATS,
		which is called before we've done a chdir() to the data dir.

	Note: for this reason, no disk access should be done in constructors
	of global objects.  A quick scan found no instances of this.

	client/
		client_state.cpp
		time_stats.cpp,h
	lib/
		filesys.cpp

Charlie 3 July 2012
    - Mac client: Update Xcode project for compatibility with Xcode 4.3.2 
        and Xcode 4.5.  (Checked into 7.0.31 tag.)

     mac_build/
        boinc.xcodeproj/
            project.pbxproj

David  5 July 2012
    - client: remove "device" entry from CUDA_DEVICE_PROP,
        and change types of mem-size fields from int to double.
        These fields are size_t in NVIDIA's version of this;
        however, cuDeviceGetAttribute() returns them as int,
        so I don't see where this makes any difference.
    - client: fix bug in handling of <no_rsc_apps> element.


    lib/
        coproc.cpp,h
    client/
        gui_nvidia.cpp
        work_fetch.cpp
        scheduler_op.cpp

Charlie 5 July 2012
    - Mac: update script which builds our installer to work with Xcode 4.3 
        for Lion and later.  Because PackageMaker is now distributed 
        separately from Xcode, we emulate it using low-level tools.
        
    mac_installer/
        release_boinc.sh

Charlie 5 July 2012
    - Mac: update build script to work with Xcode 4.3 for Lion and later.  
        Xcode and the Mac OS X SDKs are no longer installed at fixed locations.
        
    mac_build/
        buildWxMac.sh

David  10 July 2012
    - client: small code cleanup, no functional change

    client/
        time_stats.cpp

Charlie 10 July 2012
    - Mac: update build scripts, source files and Xcode project to allow 
        building with Xcode 4.3 under OS 10.7.x Lion and Xcode 4.4GM under 
        OS 10.8 Mountain Lion and Xcode 4.5 under OS 10.8 Mountain Lion.
        Xcode and the Mac OS X SDKs are no longer installed at fixed locations.

    clientgui/
        mac/
            MacBitmapCompboBox.cpp
            MacSysMenu.cpp
    clientscr/
        Mac_Saver_ModuleView.m
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
        buildc_ares.sh
        buildcurl.sh
        buildopenssl.sh
        BuildMacBOINC.sh
        HowToBuildBOINC_XCode.rtf

Charlie 12 July 2012
    - Mac: update sample code to allow building with Xcode 4.3 under 
	OS 10.7.x Lion and with Xcode 4.4 GM seed under OS 10.8 Mountain 
	Lion GM seed and to eliminate compiler warnings.

    samples/
        example_app/
            MakeMacExample.sh
            Makefile_mac
            Makefile_mac2
            uc_graphics.cpp
        mac_build/
            UpperCase2.xcodeproj/
                project.pbxproj
        vboxwrapper/
            BuildMacVboxWrapper.sh (new)
            Makefile_mac (new)
            vboxwrapper.xcodeproj/
                project.pbxproj
        wrapper/
            BuildMacWrapper.sh

David  16 July 2012
    - lib: treat MINGW32 like CYGWIN32 (in 1 place - should do everywhere?)
        from Oliver

    lib/
        filesys.cpp

David  17 July 2012
    - client: delete sticky files when reset project

    client/
        client_state.cpp

David  17 July 2012
	- client: if we get a job for which a GPU is missing,
		keep the RESULT record so that we can report it to the scheduler.
		Otherwise we'll keep getting the same job if the project has
		<resend_lost_results> set.

	client/
		cs_scheduler.cpp

Charlie 17 July 2012
    - Mac: Minor corrections to documentation and sample code.
    
    mac_build/
        HowToBuildBOINC_XCode.rtf
    samples/
        example_app/
            Makefile_mac2

Rom    18 July 2012
    - client: Re-introduce the WM_QUERYENDSESSION window message handler to
        the power management window proc, it was removed during one of the Win9x
        code scrubs.  When we see it, inform the client it is time to shutdown.

    client/
        sysmon_win.cpp

Charlie 18 July 2012
    - lib: Adjust #include files as requested by Oliver Bock.
    
    lib/
        procinfo_mac.cpp

David  21 July 2012
    - lib: fix typo

    lib/
        coproc.cpp

David  21 July 2012
    - client: don't request work for backup project for a processor type
        unless there are idle instances of that type
        
    client/
        work_fetch.cpp

David  23 July 2012
	- client: improve "new version available" notice

	client/
		current_version.cpp

Charlie 27 July 2012
    - Mac: Eliminate extra output from wxMac build script.
    
     mac_build/
        buildWxMac.sh

Rom    30 July 2012
    - MGR: Use the same fix for the simple gui that we used on the advanced
        gui with regards to the menu on Ubuntu's interface.

    clientgui/
        sg_BoincSimpleFrame.cpp

Rom    30 July 2012
    - Tag for 7.0.32 release, all platforms
      boinc_core_release_7_0_32

    /
        configure.ac
        version.h

Rom    1 Aug 2012
    - Fix build breaks for server components.
    
    db/
        boinc_db.h
        boinc_db_types.h
    sched/
        plan_class_spec.cpp
    vda/
        ssim.cpp

Rom    1 Aug 2012
    - Tag for 7.0.33 release, all platforms
      boinc_core_release_7_0_33

    /
        configure.ac
        version.h

Charlie 1 Aug 2012
    - API, SCR: Switch from *.txf fonts to TrueType fonts in graphics 
        applications, ensuring that all related files have no licensing 
        issues.
        
    /
        COPYRIGHT
    api/
        gutil/cpp,.h
        ttfont.cpp,.h
        texfont.cpp,.h (deleted)
        texture.cpp,.h (deleted)
        txf_util.cpp,.h (deleted)
        txf/
            *.txf (deleted)
        ttf/
            courier_bold (deleted)
            helvetica (deleted)
            README (deleted)
            liberation-fonts-ttf-2.00.0/ (added)
                AUTHORS (added)
                CHANGELOG (added)
                LICENSE (added)
                README (added)
                *.ttf (added)
    clientscr/
        ss_app.cpp
    mac_build/
        boinc.xcodeproj/
            project.pbxproj
    mac_installer/
        release_boinc.sh

Charlie 2 Aug 2012
    - Mac: Update scripts for building branded installers to allow 
        building with Xcode 4.3 under OS 10.7.x Lion; change names of 
        branded installers from "*macOSX_universal" to "*macOSX_i686" 
        since we no longer support PowerPC Macs.
        
    mac_installer/
        make_CharityEngine.sh
        make_GridRepublic.sh
        make_ProgThruProc.sh

Rom    2 Aug 2012
    - SS: Update project files to use FreeType and FTGL on Windows.

    api/
        ttfont.cpp, .h
    clientscr/
        ss_app.cpp
    win_build/
        boinc_ss.vcproj
        libgraphics2.vcproj

Charlie 3 Aug 2012
    - Sample Graphics app: Switch from *.txf fonts to TrueType fonts.
    samples/
        example_app/
            MakeMacExample.sh
            Makefile_mac
            Makefile_mac2
            uc2_graphics.cpp
        mac_build/
            UpperCase2.xcodeproj/
                project.pbxproj

Charlie 3 Aug 2012
    - Mac: Update build instructions and build script.

    mac_build/
        HowToBuildBOINC_XCode.rtf
        setupforBOINC.sh

Rom    3 Aug 2012
    - WIN: Make the example graphics application build again.
    - WIN: Get rid of the linker warnings for both the default screensaver and
        the example graphics application

    win_build/
        boinc_ss.vcproj
        uc2_graphics.vcproj

David  3 Aug 2012
    - API: remove support for BMP and TGA image files;
        the code to parse these had no license info.
        Only JPEG is supported now.

    api/
        Makefile.am
        bmplib.cpp,h (removed)
        tgalib.cpp,h (removed)
        gutil.cpp

David  6 Aug 2012
	- client: fix error in runtime estimation for active tasks

	client/
		work_fetch.cpp

Rom    7 Aug 2012
    - MGR: Enforce the 0..10 day limit on the connect interval for the
        advanced preferences dialog.  At some point we should rename
        it.

    clientgui/
        DlgAdvPreferences.cpp

Rom    7 Aug 2012
    - API: Remove ttfont.cpp from Makefile.am.  Apps should include it
        in there Makefile as needed.

    api/
        Makefile.am

Rom    7 Aug 2012
    - WINSCR: Fix problem with the screensaver needlessly cycling in
        preview mode.  Ugh.

    clientscr/
        screensaver_win.cpp

Charlie 7 Aug 2012
    - WIN: Remove reference to deleted tgalib.cpp file.

    win_build/
        libgraphics2.vcproj

David  8 Aug 2012
    - Client/manager: there was a bug because some code was writing
        "cpu" in XML, and other code was looking for "CPU".
        To fix this and prevent similar problems,
        processor type names are now encapsulated in proc_type_name_xml().
        Code should use this rather than having hard-wired names.
        Redefine: GPU_TYPE_* as macros that call proc_type_name_xml().

    client/
        client_types.cpp
        client_state.cpp
    clientgui/
        DlgItemProperties.cpp
    sched/
        sched_version.cpp
    lib/
        gui_rpc_client_ops.cpp
        coproc.cpp,h

Charlie 8 Aug 2012
    - MGR: Fix build break.
    
     clientgui/
        DlgItemProperties.cpp

David  10 Aug 2012
    - client: when we're making a scheduler RPC
        for a reason other than work fetch,
        and we're deciding whether to piggyback a work request,
        skip the checks for hysteresis (buffer < min)
        and for per-resource backoff time.
        These checks are there only to limit the rate of RPCs,
        which is not relevant since we're doing one any.

        This fixes a bug where a project w/ sporadic jobs specifies
        a next_rpc_delay to ensure regular polling from clients.
        When these polls occur they should request work regardless of backoff.

    client/
        work_fetch.cpp,h

David  10 Aug 2012
    - client: tweak to the above: never ask for work if buffer > max.
        This is needed to prevent projects that use next_rpc_delay
        from queuing unbounded work.

    client/
        work_fetch.cpp

David  13 Aug 2012
    - client: treat all 4xx HTTP errors as permanent
    - code cleanup

    lib/
        msg_log.cpp,h
    client/
        http_curl.cpp

Rom    13 Aug 2012
    - WINSETUP: Provide the ability to create the acct_mgr_login.xml from
        from the command line.  Useful for mass deployments within companies
        and charities.

    win_build/installerv2/redist/Windows/src/boinccas/
        boinccas.rc
        boinccas95.def
        boinccas95.vcproj
        CACreateAcctMgrLoginFile.cpp, .h
        CACreateProjectInitFile.cpp
    win_build/installerv2/redist/Windows/Win32/
        boinccas.dll
        boinccas95.dll
    win_build/installerv2/redist/Windows/x64/
        boinccas.dll
        boinccas95.dll

Charlie 14 Aug 2012
    - Mac installer: Fixes for short (posix) user names containing spaces.
    
    mac_installer/
        PostInstall.cpp
        release_boinc.sh
        Uninstall.cpp

Rom    16 Aug 2012
    - Tag for 7.0.34 release, all platforms
      boinc_core_release_7_0_34

    /
        configure.ac
        version.h

Charlie 20 Aug 2012
    - client: If OpenCL detection gets an error for a platform or device, 
        finish detection of the remaining platforms and / or devices.
        Move OpenCL memory size workaround back into OpenCL source file. 
        
    client/
        gpu_opencl.cpp
        gpu_amd.cpp
    lib/
        coproc.h

David  20 Aug 2012
    - client: put some casts to double in NVIDIA detect code.
        Shouldn't make any difference.

    client/
        gpu_nvidia.cpp

<<<<<<< .working
Charlie 8 Sep 2012
    - client: work around a nasty bug which crashes OSX (!) on some 
        dual-gpu MacBooks with CUDA installed if we call cuInit() 
        unless we force use of the discrete (NVIDIA) GPU.
        
    client/
        gpu_opencl.cpp

Rom    10 Sept 2012
    - client: initialize memfree and memtotal before use for Nvidia
        cards.  It appears that the Nvidia API was only setting 32-bits
        of the 64-bit value.  The remaining 32-bits were whatever
        was on the stack.
        
    client/
        gpu_nvidia.cpp

Charlie 12 Sep 2012
    - client: Don't support CUDA on dual-GPU MacBooks with automatic 
        GPU switching but continue to support OpenCL for NVIDIA GPUs.
        This prevents forcing use of the discrete (NVIDIA) GPU, which 
        greatly decreases time the computer can run on battery power.
        
    client/
        hostinfo_unix.cpp
        gpu_nvidia.cpp
        gpu_opencl.cpp
    lib/
        hostinfo.h

Charlie 12 Sep 2012
    - Tag for 7.0.35 release, all platforms
      boinc_core_release_7_0_35

    /
        configure.ac
        version.h

David  17 Aug 2012
    - client: if a project has excluded GPUs of a given type,
        allow it to fetch work of that type if the # of runnable
        jobs it <= the # of non-excluded instances (rather than 0).

    client/
        work_fetch.cpp,h
        rr_sim.cpp

David  20 Aug 2012
    - client: print log msgs (enabled by task_debug) if the client
        times out on quitting or aborting a task, and has to kill it.

    client/
        app_control.cpp

David  20 Aug 2012
    - client: take GPU exclusions into account when making
        initial work request to a project
    - client: put some casts to double in NVIDIA detect code.
        Shouldn't make any difference.

    client/
        work_fetch.cpp,h
        gpu_nvidia.cpp
        scheduler_op.cpp

David  2 Sept 2012
    - client: fix bug that broke file signing with X.509 certificates.
        From matszpk.  Fixes #1168.

    lib/
        filesys.cpp,h
        crypt.cpp
    client/
        cs_files.cpp

Rom    12 Sept 2012
    - Tag for 7.0.36 release, all platforms
      boinc_core_release_7_0_36

    /
        configure.ac
        version.h