Commit Graph

726 Commits

Author SHA1 Message Date
David Anderson 9d2ba11e09 - back end: extend the access control system for remote job submission
and other operations.
    You can now designate a user as "manager" for a particular app.
    They can then:
    - control job-submit permissions for that app
    - deprecate/undeprecate versions of the app.
    - abort jobs for that app

    You can also designate a user a manage for the project.
    They can then edit permissions and quotas,
    as well as performing the app-specific functions for all apps.

    This is described here:
    http://boinc.berkeley.edu/trac/wiki/MultiUser#Accesscontrol

    This required some changes to the DB schema.


svn path=/trunk/boinc/; revision=24250
2011-09-21 21:26:00 +00:00
David Anderson 8c49c174c3 - preliminary stuff for mechanism where privileged users
can create apps and app versions
- crontab commands should be preceded by cd to project root


svn path=/trunk/boinc/; revision=24137
2011-09-07 06:54:44 +00:00
David Anderson f75ffd88f2 - server: factor process_input_template() into smaller pieces
svn path=/trunk/boinc/; revision=24108
2011-09-01 20:26:12 +00:00
David Anderson c529c3c50d - server: rename process_wu_template() to process_input_template(),
and move it to its own file


svn path=/trunk/boinc/; revision=24107
2011-09-01 19:58:27 +00:00
David Anderson abdb603bc4 - job creation: handling of extra XML in input templates didn't work.
- job creation: fix stripping of <output_template> tags
- client: fix off-by-1 error in buffer overflow logic for scanning keys.


svn path=/trunk/boinc/; revision=24057
2011-08-27 16:52:04 +00:00
David Anderson 49205acfd9 - job submission: fix bug where parameters specified in the
input template (e.g., delay bound) were ignored
- web: fix PHP warning


svn path=/trunk/boinc/; revision=24039
2011-08-25 05:08:47 +00:00
David Anderson c5c5975b44 - Improve interface of XML_PARSER.
Add parsed_tag and is_tag to the class,
    so that parsing functions don't need to declare them
    and pass them around.
- Complete the task of using XML_PARSER as the argument
    to all parsing functions.
    (Internally, many of these functions still use the old XML parser;
    that's the next step.)


svn path=/trunk/boinc/; revision=23978
2011-08-10 17:11:08 +00:00
David Anderson dec057eaab - update_versions: fix bug where files not listed in version.xml
are not processed correctly
- remote job submission: debug
- create_work: --rsc_fpops_est etc. should override the template file


svn path=/trunk/boinc/; revision=23942
2011-08-07 04:32:02 +00:00
David Anderson 5a8fd0afc7 - client: add optional <file_prefix> to APP_VERSION>.
If present, "file_prefix/" is prepended to the logical names
    of input and output files of jobs using that app version.
    I.e. for Vbox wrapper based app versions, file_prefix is "share",
    so that I/O files are put in a "share" subdirectory of the slot dir.
- update_versions: add support for
    <dont_throttle>
    <file_prefix>x</file_prefix>
    in version.xml


svn path=/trunk/boinc/; revision=23924
2011-08-03 18:14:45 +00:00
David Anderson 0004f43937 - update_versions: bug fixes
svn path=/trunk/boinc/; revision=23921
2011-08-02 17:20:18 +00:00
David Anderson 135c549475 - update_versions: add optional <gzip> element to
<file> element in version.xml.
    If present, update_versions will gzip the file in the download dir.
    Use this only if you have gzip-encoding enabled in Apache.


svn path=/trunk/boinc/; revision=23915
2011-08-02 07:38:45 +00:00
David Anderson 5ad821df21 - server: some remote job submission code. Not finished.
svn path=/trunk/boinc/; revision=23868
2011-07-22 22:47:41 +00:00
David Anderson 3c70004c5c - server: debug distributed storage functions
- generate upload signatures if needed
    - assign deadlines to file xfer jobs (default 1 week)
    - scheduler: ack completed file xfer results


svn path=/trunk/boinc/; revision=23866
2011-07-20 22:27:01 +00:00
David Anderson 9a4140ae30 - client/server: change the implementation of upload signatures
as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
    Compatibility: if your project is using upload signatures:
        - set ignore_upload_certificates
        - disable job creation
        - let your job queue drain
        - upgrade to new server software
        - clear ignore_upload_certificates
        - enable job creation


svn path=/trunk/boinc/; revision=23863
2011-07-20 20:08:05 +00:00
David Anderson 27e05a3da9 - server: some stuff to prepare for distributed storage
- don't create result records for uploads and downloads.
        Just create a msg_to_client record.
    - the scheduler handles file-transfer results specially;
        it makes a vector of them, then calls a project-supplied function
        handle_file_xfer_results()
    - change the interface and implementation of put_file and get_file
- client write project sched priority in GUI RPC replies,
    but not to the state file


svn path=/trunk/boinc/; revision=23857
2011-07-19 20:52:41 +00:00
David Anderson cc0ab61b96 - update_versions: fix typo that produced bad XML
svn path=/trunk/boinc/; revision=23793
2011-07-05 17:45:24 +00:00
David Anderson bfc04f03eb - back end: fix bugs in [23648] which caused create_work
to mess up input templates containing
    <copy_file/> or other attribute tags.
    XML_PARSER now contains a member element() for when
    you want to copy an element without knowing its structure.


svn path=/trunk/boinc/; revision=23790
2011-07-04 23:51:00 +00:00
David Anderson da74e5caf2 - back end: strip <output_template> tags from output templates
- web: main RSS feed should include all news items, even non-notices


svn path=/trunk/boinc/; revision=23783
2011-06-29 22:26:45 +00:00
David Anderson 8a9605e48c - web: add a web-service interface for remotely submitting, querying
and controlling batches of jobs
- web: add an administrative interface for controlling
    user permissions for submitting jobs
- web: add an interface where users can view and control
    their submitted jobs
See: http://boinc.berkeley.edu/trac/wiki/RemoteJobs
This is at a functional but rough stage.


svn path=/trunk/boinc/; revision=23762
2011-06-21 22:56:15 +00:00
David Anderson 6c29473890 - update_versions: read from stdin a different way
svn path=/trunk/boinc/; revision=23708
2011-06-11 15:30:10 +00:00
David Anderson 93add14614 - backend: use new XML parser for input template files
(so that they don't have to be 1 element/line)
    and also allow optional <input_template> root element
- fix bug in WORKUNIT DB interface


svn path=/trunk/boinc/; revision=23648
2011-06-07 04:12:49 +00:00
David Anderson 31faa14c43 - update_versions: flag main program as executable,
otherwise client will reject it


svn path=/trunk/boinc/; revision=23594
2011-05-24 19:16:54 +00:00
David Anderson b6140088e3 - update_versions: trim XML strings
svn path=/trunk/boinc/; revision=23569
2011-05-21 06:22:15 +00:00
David Anderson e861df4ba2 - update_versions: make <copy_file> work
svn path=/trunk/boinc/; revision=23559
2011-05-18 16:59:15 +00:00
David Anderson 649c094804 - another update_versions fix
svn path=/trunk/boinc/; revision=23553
2011-05-17 16:00:23 +00:00
David Anderson d9920ba520 - update_versions: fix bug in version number parsing (from Kevin)
svn path=/trunk/boinc/; revision=23552
2011-05-17 15:53:06 +00:00
David Anderson 51c652640f - create_work: allow multiple URLs for non-local input files
(from Zoltan Farkas)
- scheduler: fix message describing per-app limits


svn path=/trunk/boinc/; revision=23546
2011-05-13 18:40:10 +00:00
David Anderson 99525396ad - update_versions fix
svn path=/trunk/boinc/; revision=23527
2011-05-12 04:39:13 +00:00
David Anderson 606cf30667 - fix to update_versions
svn path=/trunk/boinc/; revision=23526
2011-05-12 04:14:53 +00:00
David Anderson e4f104f917 - Change the way update_versions works, and reimplement it in PHP.
Problems with the old version:
    - Lots of info encoded in file and directory names: messy kludge
    - The convention that directory name == main program name
        created a bad situation when using the wrapper:
        if you made a new version of your application,
        you were forced make a new version of the wrapper
        just so it could have a different name.
    The new version is described here:
    http://boinc.berkeley.edu/trac/wiki/AppVersionNew
- Remove some Python code that suppored the old version
- client: some fixes to dir_size() that might fox
    a buffer overflow when using symbolic links


svn path=/trunk/boinc/; revision=23525
2011-05-12 04:11:40 +00:00
David Anderson 2385c00b67 - wrapper: tell the client when we checkpoint
(else checkpoint_elapsed_time etc. don't get set)
- make_project: enable update_stats by default
- update_stats: add --min_age option


svn path=/trunk/boinc/; revision=23509
2011-05-06 12:33:12 +00:00
David Anderson c70cd934b4 - server: rename send_file to put_file.
Factor out put_file() and get_file() functions
    so they have a C++ API as well as command-line


svn path=/trunk/boinc/; revision=23425
2011-04-24 02:00:27 +00:00
David Anderson 6b0eba4641 - create_work and other tools: verify that the current dir,
parent dir, or BOINC_PROJECT_DIR actually is a project dir.
- client simulator: improvements


svn path=/trunk/boinc/; revision=23415
2011-04-21 17:04:42 +00:00
David Anderson 98b4c79e36 - client: if an app version has a missing GPU,
we still need to keep track of the usage
    and write it to the state file.
- get client simulator working again


svn path=/trunk/boinc/; revision=23413
2011-04-20 23:32:14 +00:00
David Anderson 9de5f69e39 - "upgrade" script: remove --project_root option,
and allow full path of project root dir
    instead of the short name


svn path=/trunk/boinc/; revision=23358
2011-04-09 03:10:29 +00:00
David Anderson ded867aa25 - create_work and possibly other back-end programs:
fix bug that corrupted WU command lines.
    The problem: we were using strcpy(p, p+n) to delete the
    first n characters of p.
    This is incorrect - the behavior of strcpy() is undefined
    if its args overlap.
    On some systems (e.q. AQUA's server) it does wacky things.


svn path=/trunk/boinc/; revision=23007
2011-02-09 00:21:40 +00:00
David Anderson 91c251c103 - user web: add "delete account" feature.
This allows a user to delete all traces of themselves from a project.
    Namely:
    - clear fields of user record: email_addr, authenticator,
        name, country, postal_code
        Note: record is not deleted
    - clear the domain_name and last_ip_addr fields of hosts
        Note: records are not deleted
    - quit team
    - delete private messages sent and received
    - delete forum posts, subscriptions, and forum prefs
    - delete profile and associated images
- server: compile fix


svn path=/trunk/boinc/; revision=23006
2011-02-08 21:38:16 +00:00
David Anderson 8145cb86b0 - create_work: add some debugging printfs for Kamran
svn path=/trunk/boinc/; revision=22993
2011-02-03 23:27:30 +00:00
David Anderson 8c3ce79b2a - create_work: add -d option
svn path=/trunk/boinc/; revision=22979
2011-02-02 00:42:46 +00:00
David Anderson 7baddb24e3 - Fix bugs in Rappture wrapper
- Add README file and templates for Rappture wrapper
- create_work: create defaults for --wu_name, --wu_template, --result_template
- user web: fix typo on workunit.php

svn path=/trunk/boinc/; revision=22826
2010-12-07 19:28:08 +00:00
David Anderson 70e523acbf svn path=/trunk/boinc/; revision=22677 2010-11-10 23:01:32 +00:00
David Anderson 723c764963 - server: add scripts to submit jobs for demo application
svn path=/trunk/boinc/; revision=22676
2010-11-10 22:54:56 +00:00
David Anderson 2840281c56 - boinccmd: --get_cc_status now prints its result
- feeder: don't panic if can't find app for result;
    if the app is deprecated, it won't be in shmem

svn path=/trunk/boinc/; revision=22674
2010-11-10 18:17:20 +00:00
David Anderson c0612ab77f - make_project: with --test_app, copy all the executables
(for many platforms) from samples/example_app/bin
- make_project: change name of example app from uppercase to example_app.
- update_versions: allow version numbers to not have decimal points
- sample work generator: make app name and template files
    command-line options;
    default to "example_app", "example_app_in.xml", "example_app_out.xml"

svn path=/trunk/boinc/; revision=22667
2010-11-10 00:10:32 +00:00
David Anderson 7fcd20e020 - make_project, upgrade scripts:
create a symbolic link from html/user/user_profile to html/user_profile
    (needed to make profiles work)

svn path=/trunk/boinc/; revision=22622
2010-11-03 22:42:01 +00:00
David Anderson 7ac7bdcb04 - scheduler: message tweak
svn path=/trunk/boinc/; revision=22384
2010-09-17 22:01:42 +00:00
David Anderson 1e363ba46d - server (job submission): allow input templates to specify the
URL, size, and MD5 of input files.
    This supports "non-local" input files,
    i.e. files not present on the project server.

    NOTE: as implemented,
    this requires a separate input template for each job.
    It would be slightly better to let you specify the
    URL/size/MD5 in the create_work() call.

    From Zoltan Farkas (SZTAKI)
    

svn path=/trunk/boinc/; revision=22320
2010-09-07 20:18:58 +00:00
David Anderson d6315c7112 - fix various XSS vulnerabilities reported by the
Acunetix Web Vulnerability Scanner (free edition)


svn path=/trunk/boinc/; revision=22315
2010-09-04 22:13:27 +00:00
David Anderson bf56e80bce - tweaks
svn path=/trunk/boinc/; revision=22306
2010-08-29 08:43:40 +00:00
David Anderson d44e403fbf - admin: fix bug with "upgrade --server_only".
It wasn't copying html/ops/db_update.php,
    so it wasn't doing necessary DB updates.
    Fixed this by always copying html/ops/*.

    Even with this fix, there is a problem when using
    the --server_only or --web_only options of upgrade:
    if any DB updates are done, they may affect the
    server code that's not being updated, resulting in crashes.

    I added a warning message in this case,
    recommending that a full upgrade be done.

svn path=/trunk/boinc/; revision=22200
2010-08-11 20:08:13 +00:00
David Anderson 969100a00c - feeder: error out if an ordering option (e.g. --priority)
is used in combination with homogeneous redundancy.
    HR requires a cyclic scan of all sendable results.

svn path=/trunk/boinc/; revision=21973
2010-07-16 18:38:14 +00:00
David Anderson 7e121f35bf - fix gcc 4 compiler warnings
svn path=/trunk/boinc/; revision=21882
2010-07-08 18:02:07 +00:00
David Anderson 7c51512cbf - transitioner: the format string for a DB query had %.15d instead of %.15e.
That produced a messed-up query that assigned garbage values to:
        host_app_version.turnaround_var
        host_app_version.turnaround_q
        host_app_version.max_jobs_per_day
        host_app_version.consecutive_valid
    To repair these:
        - set turnaround_var and turnaround_q to zero
        - if max_jobs_per_day is outside of
            (0..config.daily_result_quota)
            set it to config.daily_result_quota
        - if consecutive_valid is outside (0..1000), set it to zero
    I added a script, html/ops/repair_21812.php, that does this;
    if you ran server code between [21181] and [21812], run this script.
- scheduler/transitioner: add <debug_quota> log flag
- changed the build system to always use -Wall
    (if we'd done this before, this bug wouldn't have happened)
- fixed a bunch of other compile warnings


svn path=/trunk/boinc/; revision=21812
2010-06-25 18:54:37 +00:00
David Anderson fb851311e0 - server: various changes;
see http://boinc.berkeley.edu/trac/wiki/CreditNew

    Projects will need to update DB and recompile all back-end programs.

    Summary:
    - new way of computing credit
    - "reliable host" mechanism is per app version
    - "host punishment" mechanism is per app version
    - adjustment of wu.rsc_fpops_est provides the
        equivalent of per app version DCF
    - max jobs in progress is now per app
    - max jobs per RPC is now per app

    TODO:
    - reliable mechanism:
        - populate and use host_app_version.error_rate
        - populate host_app_version.turnaround
    - host punishment:
        - populate host_app_version.max_jobs_per_day
        - populate host_app_version.n_jobs_today
        - use app.max_jobs_per_day_init
    - job limits:
        - use app.max_jobs_in_progress, max_gpu_jobs_in_progress
        - use app.max_jobs_per_rpc
    - adjust wu.rsc_fpops_est
    - remove old credit stuff
        fpops_cumulative, credit_multiplier
        credit computation in scheduler

- AVERAGE class: use the Knuth algorithm (Wikipedia)


svn path=/trunk/boinc/; revision=21021
2010-03-29 22:28:20 +00:00
David Anderson a11e452c31 svn path=/trunk/boinc/; revision=20737 2010-02-26 00:30:09 +00:00
David Anderson 575cec858c - admin web: a project must provide an .htaccess file
or an auth_ops() function (not necessarily both).
    New projects are given an .htaccess file with no .htpasswd,
    so they must either create a .htpasswd file
    or define auth_ops() in order to use admin web pages.

svn path=/trunk/boinc/; revision=20671
2010-02-21 04:45:52 +00:00
Bernd Machenschalk fbf3ca1450 a couple of locality scheduling fixes:
- remove obsolete and buggy code from transitioner (create_result() in backend_lib)
    - account for 'mixed' scheduling in explain_to_user() in sched_send.cpp
    - finish transition to configurable patterns for distinguishing files reported by the client
      in the Einstein@home-specific part of send_work_locality in sched_locality
      (removed previous hardcoded strcmps)

svn path=/trunk/boinc/; revision=20074
2010-01-05 11:03:10 +00:00
David Anderson 437087a053 - upgrade: add --server_only option
(updates scheduler and back-end programs, but not web code)
    fixes #968

svn path=/trunk/boinc/; revision=20052
2009-12-31 02:37:16 +00:00
David Anderson e1bdfc0ee8 - web: change the way project news is stored.
Old: in a flat file (html/project/project_news.inc)
    New: in a forum (called "News" by default)
    The script html/ops/news_convert.php copies news from
    old to new format.
    You'll also need to edit your index.php and use
    "show_news(0, 5)" to show news.
- web: added a "message of the day" mechanism.
    Edit html/user/motd.php to show a message.
    This will be shown as the first news item,
    but it's not archived (i.e., it's not a forum post)


svn path=/trunk/boinc/; revision=19949
2009-12-16 22:35:08 +00:00
David Anderson 381a15c724 - create_work function and script:
check for valid ordering among max_success_results,
    max_total_results, max_error_results, and target_nresults

svn path=/trunk/boinc/; revision=19054
2009-09-16 03:10:22 +00:00
David Anderson b631ce3fe6 - make_project: create html/ops/.htaccess;
secure admin web access by default

svn path=/trunk/boinc/; revision=19013
2009-09-08 04:55:48 +00:00
David Anderson 3f9f76f5c2 - add "appmgr" script for managing apps and versions (from Gabor Gombas)
svn path=/trunk/boinc/; revision=18938
2009-08-28 18:25:26 +00:00
David Anderson d14527f79d - update_versions: if app version files already exist in download dir,
make sure they're the same (i.e., enforce file immutability).
    TODO: do this for input files too
- client: check return values from CUDA device detection functions

svn path=/trunk/boinc/; revision=18903
2009-08-24 19:08:05 +00:00
David Anderson 10f9e11ee6 - lib: created a new file for declaring "replacements"
for functions like strlcpy() etc.
    config.h is included here rather than in str_util.h


svn path=/trunk/boinc/; revision=18437
2009-06-16 20:54:44 +00:00
David Anderson 08e4ba3df6 - server: suppress verbosity of update_translations in make_project and upgrade
svn path=/trunk/boinc/; revision=18381
2009-06-11 17:25:01 +00:00
David Anderson 65d52137ec - server: Tools that should run by hand are installed under $(bindir).
Daemons that are managed by 'start' go to $(libexecdir)/sched.
    The (F)CGI stuff goes to $(libexecdir)/cgi-bin.
    Finally, example applications go under $(libexecdir)/examples.

svn path=/trunk/boinc/; revision=18378
2009-06-11 16:11:45 +00:00
David Anderson b7406ef57c - server: make the python code honor BOINC_PROJECT_PATH.
It is now possible to use the same set of tools for multiple
    projects by setting BOINC_PROJECT_PATH.
    From Gabor Gombas.

svn path=/trunk/boinc/; revision=18376
2009-06-11 16:06:25 +00:00
David Anderson 4cf6b7793c - server: move python modules from PROJECT/bin to PROJECT/py/Boinc.
make_project now generates PROJECT/bin/boinc_path_config.py
    to ensure that the interpreter will find the modules.
    From Gabor Gombas.

svn path=/trunk/boinc/; revision=18374
2009-06-11 15:38:48 +00:00
David Anderson 144c106e19 - make_project and upgrade: add --srcdir option so you
can run these commands from any directory
    (mostly from Gabor Gombas; added a fix for svnversion)

svn path=/trunk/boinc/; revision=18356
2009-06-10 22:38:33 +00:00
David Anderson e86ab69b7d - update_versions: add --sign and --force options to enable automation
(from Jeremy Cowles)


svn path=/trunk/boinc/; revision=18355
2009-06-10 22:04:57 +00:00
David Anderson 289bc6d692 - fix python scripts; fixes #770 (from Nicolas)
svn path=/trunk/boinc/; revision=18282
2009-06-03 22:14:12 +00:00
David Anderson 667bc8fba8 - make update_translations.php executable; fixes #770
svn path=/trunk/boinc/; revision=18279
2009-06-03 21:02:00 +00:00
David Anderson 12eb6057e5 - client, Mac: don't do res_init(). It causes a crash.
- client (Unix): if client crashes while benchmark processes are going,
    make sure they detect this and exit.
- back-end programs: remove hardwired assumptions about
    what directory they run in, and hence where config.xml is.
    E.g., daemons look for it in "..", others expect it in current dir.
    New approach: all the programs look for the project dir as follows:
    1) the environment var BOINC_PROJECT_DIR, if defined
    2) the current dir, if config.xml is there.
    3) else ".."
    This means you can run programs in either proj/bin/ or proj/,
    or (using BOINC_PROJECT_DIR) you can keep executables
    outside of the project dir.


svn path=/trunk/boinc/; revision=18042
2009-05-07 13:54:51 +00:00
David Anderson 9f33d4db27 - web and client: change the default for "run_gpu_if_user_active"
from true to false.
    Currently running CUDA apps on NVIDIA GPUs causes
    a significant slowdown in GUI response.


svn path=/trunk/boinc/; revision=17740
2009-04-07 18:21:39 +00:00
David Anderson 9dc7ecb22a - make_project: get rid of verbosity-level stuff
and fancy overwriting of stdout lines


svn path=/trunk/boinc/; revision=17736
2009-04-06 18:27:02 +00:00
David Anderson f90871a141 - boinc_submit (single-job submission):
set the job params to reasonable values (see below),
    and make it easy to change these values in the script
- create_work (function and script): change default job params:
    FLOPs est: 1e9 => 3600e9
    FLOPs bound: 1e10 => 86400e9
    mem bound 100MB => 500MB,
    disk bound 100MB => 1GB
    delay bound: 100000s => 1 week

svn path=/trunk/boinc/; revision=17703
2009-03-30 18:38:11 +00:00
David Anderson 0f6de2ea58 - upgrade and make_project scripts: run update_translations.php,
which compiles the translation files into the form
    used by the web code.
    Projects that don't use "upgrade" will need to do this manually
    whenever translation files change.

svn path=/trunk/boinc/; revision=17652
2009-03-24 21:24:57 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00
David Anderson b4bac32d75 - client: if "no more work" checked, don't request more work (duh!)
svn path=/trunk/boinc/; revision=17290
2009-02-18 16:21:30 +00:00
Eric J. Korpela 9a2868e715 -Made static linkage of BOINC libraries the default for client,
manager, and server components


svn path=/trunk/boinc/; revision=16928
2009-01-16 00:24:44 +00:00
Eric J. Korpela 4e60ef3003 - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!!
- Update to libtool 1.5.24
- build environment:  Major automake changes that I've been warning about
  for some time.
- Now uses libtool to build libraries.
- Builds separate boinc_fcgi and sched_fcgi libraries for use with 
  FCGI server components.
- New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on
  a library only if --with-libname[=DIR] is specified on the configure
  command line.  This is to allow inclusion of libraries when the 
  ssl, gtk, wxWidgets, or other configuration is incorrect for static
  libraries.
- Added a lot of "--with-*" for some libraries that might be required for
  static builds.
- The sea directory has been moved to packages/generic.  Changes to sea
  and the associated scripts might be required to better make use of the
  staging mechanism and shared libraries.
- Fixed includes of boinc_fcgi.h in many files.
- Fixed places where FCGI_FILE needs to be used implicitly.
- Fixed missing define of _SC_PAGESIZE on hosts that define only
  _SC_PAGE_SIZE.
- Moved build of boinc_cmd (and source file) from lib to client



svn path=/trunk/boinc/; revision=16904
2009-01-13 23:06:02 +00:00
David Anderson ed924f90a1 - upgrade script: don't stop/start project if --web_only
svn path=/trunk/boinc/; revision=16553
2008-11-24 23:16:40 +00:00
David Anderson 0248c3552a - upgrade: run "upgrade_db.php" correctly when "." not in search path
Fixes #769;  from Nicolas


svn path=/trunk/boinc/; revision=16481
2008-11-11 23:45:55 +00:00
David Anderson ebe3b090e8 - add a script "upgrade_db.php" that updates project DB structure
(after user confirmation).
    This is called from "upgrade", and can also be run by itself.

    NOTE: this mechanism will handle all DB updates going forward.
    Older updates must be done the old way (edit and run db_update.php)

- Web: let teams determine whether they're accepting new members


svn path=/trunk/boinc/; revision=16160
2008-10-08 16:48:11 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00
David Anderson f17a800807 - API: in boinc_exit(), release the lockfile only if
we're the main program (otherwise we didn't lock it in
    the first place, and a crash results).  From Artyom Sharov.
- scheduler: add support for the GCL simulator,
    which uses special versions of backend programs
    that use virtual time,
    and that wait for signals instead of sleep()ing.

    To compile:
        make clean
        configure CXXFLAGS="-DGCL_SIMULATOR"
        make

svn path=/trunk/boinc/; revision=16038
2008-09-22 20:33:59 +00:00
Eric J. Korpela 40e243412d - Fixed fcgi builds to use an installed version of fcgi_stdio.h rather than
a modified boinc version.
    - Added new header "boinc_fcgi.h" to be used instead of "fcgi_stdio.h".
      This header defines I/O functions in the namespace FCGI rather than using
      redefined functions the way "fcgi_stdio.h" does.  This was causing a lot
      of headaches when both <cstdio> and "fcgi_stdio.h" was called.  Using
      overloaded functions fixes this problem, except when the only difference
      between functions is the return type (for example ::fopen() returns FILE*
      and FCGI::fopen() returns FCGI_FILE*).
    - Fixed some missing "#ifdef _WIN32" blocks in filesys.C



svn path=/trunk/boinc/; revision=15984
2008-09-09 19:10:42 +00:00
Eric J. Korpela ad8350b961 - fixed bug that caused credit multiplier overshoot.
- Added check of replica database gap,  use main database if
            replica is more than a day behind.

svn path=/trunk/boinc/; revision=15947
2008-09-02 17:51:24 +00:00
David Anderson dded9ec2e5 - make_project: fix --test_app
- fix formatting (no long indents)

svn path=/trunk/boinc/; revision=15911
2008-08-20 22:09:51 +00:00
Rom Walton bba5980102 - web: fix a parsing error in sample_index.php which would
cause new projects to report an error when they first
        attempt to start up.
    - tools: Add the missing x86_64-apple-darwin platform type
        used for 64-bit Mac OS X applications.  I used the
        description from the alpha project.
    - MGR: delete obselete make files.
    

    clientgui/
        Makefile.linux.fedora
        Makefile.linux.suse
        Makefile.linux.ubuntu
    html/user/
        sample_index.php
    tools/
        project.xml

svn path=/trunk/boinc/; revision=15906
2008-08-20 18:32:32 +00:00
David Anderson 4f66bb4c95 - added copyright and license info to .C, .cpp, .h files
- scheduler: fix bug in adaptive replication:
    if send an unreplicated job to untrusted host,
    set both wu.target_nresults and wu.min_quorum to app.target_nresults.

svn path=/trunk/boinc/; revision=15762
2008-08-06 18:36:30 +00:00
Bruce Allen 349f27a39e scheduler: in resending lost results, must copy core
client version.  David -- this can probably be done
better and might indicate that some other info is not
being properly copied.  Please review and fix if needed.
Before this fix, scheduler was complaining about
outdated core clients version 0 < min needed core 413.

tools for scheduler logging: change cgi.log.X to scheduler.log.X
in script that creates on-line logs for users to read
to help diagnose problems.

svn path=/trunk/boinc/; revision=15751
2008-08-04 23:30:37 +00:00
Rytis Slatkevičius 6ec2152b0a Tiny fix to build_po.pl
svn path=/trunk/boinc/; revision=15746
2008-08-04 09:27:22 +00:00
Rytis Slatkevičius 2b8a9e9bba developer tools: a script to build en.po from PHP files to ease translation. Usage: build_po.pl [PROJECT_PATH]
svn path=/trunk/boinc/; revision=15745
2008-08-04 09:04:49 +00:00
Eric J. Korpela c686684c60 Altered calculate_credit_multiplier to make multiplier calculation more stable.
svn path=/trunk/boinc/; revision=15701
2008-07-28 22:49:27 +00:00
David Anderson 283a785c0f - back-end stuff to support Python MW (from Adam Kornafeld)
Not complete.

svn path=/trunk/boinc/; revision=15679
2008-07-25 22:13:41 +00:00
Eric J. Korpela a5a6f693cd - Implementation of automatic credit leveling for cpu based projects that
wish to use it.
- The script calculate_credit_multiplier (expected to be run daily as
      a config.xml task) looks at the ratio of granted credit to CPU time 
      for recent results for each app.  Multiplier is calculated to cause 
      median hosts granted credit per cpu second to equal to equal that 
      expected from its benchmarks.  This is 30-day exponentially averaged 
      with the previous value of the multplier and stored in the table 
      credit_multplier.
- When a result is received the server adjusts claimed credit by the
      value the multiplier had when the result was sent.


svn path=/trunk/boinc/; revision=15661
2008-07-22 23:36:55 +00:00
Adam Kornafeld 603929be7c Renamed pymw_setup script
svn path=/workspaces/kadam/; revision=15659
2008-07-22 21:36:26 +00:00
Adam Kornafeld 1d3349b4b0 Moved pymw setup script in tools dir
svn path=/workspaces/kadam/; revision=15656
2008-07-22 20:55:56 +00:00
David Anderson 234234569b - Improvements to single-job submission:
1) the assimilator creates a job_summary_WUID file saying
        - what host did the job
        - error status if any
        - info about missing output files
    2) all output files are now optional.
    3) the assimilator deletes temp files (templates, job dir file)

svn path=/trunk/boinc/; revision=15551
2008-07-04 19:41:58 +00:00
David Anderson a5a7332b6e svn path=/trunk/boinc/; revision=15549 2008-07-03 20:17:51 +00:00
David Anderson e9fe83cf8b - boinc_submit: add --jobs and --abort options
svn path=/trunk/boinc/; revision=15547
2008-07-03 18:41:13 +00:00
David Anderson 9299d34c20 svn path=/trunk/boinc/; revision=15545 2008-07-03 18:08:28 +00:00
David Anderson 540513fc7e - typo in make_project
svn path=/trunk/boinc/; revision=15542
2008-07-02 21:59:40 +00:00
David Anderson 16b1305db7 - server code: at some point I made a global var "SCHED_CONFIG config",
mostly so that the parse function could assume
    that everything was initially zero.
    However, various back-end functions pass around SCHED_CONFIG&
    as an argument (also named "config").
    This creates a shadow, which is always bad.
    Worse is the possibility that some projects have back-end programs
    that have a SCHED_CONFIG variable that's automatic,
    and therefore isn't zero initially,
    and therefore isn't parsing correctly.

    To fix this, I changed the 2 vectors in SCHED_CONFIG into pointers,
    and have the parse routine zero the structure.
    I was tempted to remove the SCHED_CONFIG& args to back-end functions,
    but this would have broken some projects' code.
    I did, however, change the name from config to config_loc
    to avoid shadowing.

    Also fixed various other compiler warnings.

svn path=/trunk/boinc/; revision=15541
2008-07-02 17:24:53 +00:00
David Anderson 72639010cd - create_work: couldn't connect to database because it had
an automatic var SCHED_CONFIG (hence nonzero)
- make_project: include xadd in list of instructions
- boinc_submit: fix bugs in --stdin

svn path=/trunk/boinc/; revision=15536
2008-07-01 23:40:46 +00:00
David Anderson 0f60f0d42b - scheduler: fix bug where a pointer to a 32-bit time field
was being cast to a pointer to 64-bit time field
    (this caused wrong results on 64-bit servers)
    From Sharov Artyom.

svn path=/trunk/boinc/; revision=15517
2008-06-30 23:05:16 +00:00
David Anderson 70eefb4828 - make_project: change the --test_app option so that it gets the
app executable from boinc_samples/example_app/uc2,
    rather than boinc/apps/upper_case.
    (boinc_samples must be installed in the same dir as boinc).

    The reason: the BOINC autoconf-based build process
    produces executables that have zillions of shared library dependencies,
    and generally won't run on machines other than
    the one where they were built.
    Executables built in boinc_samples/ don't have this problem.

svn path=/trunk/boinc/; revision=15509
2008-06-27 18:59:33 +00:00
David Anderson 4387e4491b - Fix emacs mode line in Makefile.am's
svn path=/trunk/boinc/; revision=15375
2008-06-08 22:18:52 +00:00
David Anderson 3054a5f6b3 - validator/assimilator: fix bug in 2 June checkin
(xml_doc_in wasn't included in DB query)

svn path=/trunk/boinc/; revision=15363
2008-06-05 18:36:31 +00:00
David Anderson 47d29e2b76 - make_project: when it's done it prints out a bunch of instructions.
These are more than 24 lines, so in the VMWare BOINC VM
    they scroll off the window and are lost.
    Instead, write them to a file (project/project.readme).
    Also, only write the message about example app if -test_app

svn path=/trunk/boinc/; revision=15358
2008-06-04 23:27:01 +00:00
Eric J. Korpela 70baf36e93 - Added database table credit_multiplier and script to be run daily
(calculate_credit_multiplier) to determine what factor to multiply
   claimed credit by before insertion into the database.  Changes to scheduler
   to implement have not yet been checked in.


svn path=/trunk/boinc/; revision=15309
2008-05-28 17:28:19 +00:00
David Anderson b33276bee3 - compile fixes for gcc 4.x; fixes #592
svn path=/trunk/boinc/; revision=15007
2008-04-02 19:33:12 +00:00
David Anderson 6af9f66b4e - DB/feeder/scheduler: change app_version.xml_doc from blob to mediumblob,
and change the correspending structure field from 64KB to 256KB
    (could increase this if needed).
    This is needed to handle app versions with lots (> 100) of files
- change LARGE_BLOB_SIZE to BLOB_SIZE a bunch of places
- Change COPROCS from vector<COPROC> to vector<COPROC*>.
    Otherwise the right virtual functions of COPROCs don't get called

svn path=/trunk/boinc/; revision=14986
2008-03-31 16:19:45 +00:00
David Anderson 13400c9516 Changes for multithread app support:
- update_versions: use __ (not :) as separator for plan class
- client: add plan_class to APP_VERSION;
    an app version is now identified by platform/version/plan_class
- client CPU scheduler: don't assume apps use 1 CPU
- client: add avg_ncpus, max_cpus, flops, cmdline to RESULT
- scheduler: implement app planning scheme

Other changes:

- client: if symlink() fails, make a XML soft link instead
    (for Unix running off a FAT32 FS)
- client: don't accept nonpositive resource share from AMS
- daemons and DB: check for error returns from enumerations,
    and exit if so.  Thus, if the MySQL server goes down,
    all the daemons will soon exit.
    The cron script will restart them every 5 min,
    so when the DB server comes back up so will the project.
- web: show empty max CPU % as ---
- API: get rid of all_threads_cpu_time option (always the case now)


svn path=/trunk/boinc/; revision=14966
2008-03-27 18:25:29 +00:00
David Anderson 6ba8928537 - client (Unix): use symbolic links instead of XML link files.
This will allow applications to access shared libraries
    by their logical names,
    which simplifies things when you have multiple platforms,
    and the apps (or libraries) refer to shared libraries
    by names that don't include the platform.
    This shouldn't impact the API - boinc_resolve_filename()
    will open the file, see that it's not an XML link file,
    and the symbolic link will be used directly.
    At some point we can change boinc_resolve_filename() on Unix
    to be a no-op if the client is 6.2+
- client (Unix):
    Append the slot dir to LD_LIBRARY_PATH.

svn path=/trunk/boinc/; revision=14944
2008-03-19 16:54:36 +00:00
Reinhard Prix ebcbbb657e fixed internal library dependencies in Makefile.am's
svn path=/trunk/boinc/; revision=14918
2008-03-15 03:26:14 +00:00
David Anderson 815b8fc043 Various preparation for handling multithreaded apps
and apps that use coprocessors.
There now can be several app_versions for the same
(app, platform, version_num) combination.
This changes a number of things.

- Added app_version.plan_class field to DB
- update_versions now looks for a :plan-class in the
    file or directory name, and puts it in the app_version's DB record
- Change uniqueness constraint to include plan_class
- Feeder: the feeder was putting non-deprecated app_versions
    in shared mem, and leaving it to the scheduler to
    find the latest version for a given platform.
    This is dumb.
    Instead, for each app/platform pair the feeder now
    finds the highest version number of a non-deprecated app version,
    and enumerates all non-deprecated app_versions with that
    app/platform/version
- Scheduler: add a BEST_APP_VERSION data structure that keeps track,
    for each app, what the best app_version is for this host.
    This saves the work of recomputing it for each job.

svn path=/trunk/boinc/; revision=14906
2008-03-13 22:57:24 +00:00
David Anderson 95772cba77 - removed boinc_ncpus_available() and boinc_nthreads() calls.
The design has been changed to constant #threads per app version
    Various changes from Kevin Reed/WCG:
    - server: add workunit.rsc_bandwidth_bound: if nonzero,
        send this WU only to hosts with that much download bandwidth
    - assimilators: if a handler returns DEFER_ASSIMILATION,
        the WU remains in INIT state and will be handled when the
        next instance completes.
        Useful if you want the assimilator to see all instances.
    - scheduler: when setting result.outcome = DETACHED,
        set received_time to now
    - scheduler: removed the reliable_time and reliable_min_avg_credit
        options
    - scheduler/web: add optional <allow_non_preferred_projects>
        in project preferences.
        If present, user will accept work from non-selected apps
        if no work is available for selected apps
    - scheduler: improved messages for projects with multiple apps
    - scheduler: added config options
        <granted_credit_weight> and <granted_credit_ramp_up>.
        Used in calculating host.claimed_credit_per_cpu_sec,
        but I'm not sure how.
    - Added two new credit-granting formulas (validate_util.C):
        stddev_credit() and two_credit()
    - server DB: add rollback_transaction() and affected_rows() to DB_CONN

    NOTE: DB update required

svn path=/trunk/boinc/; revision=14870
2008-03-07 21:13:01 +00:00
David Anderson 4e3764df34 - server: debugged single-job submission feature.
It works, at least in my test case.
- boinc_submit script:
    show status every 10 seconds until completed
    add --wait option to show status for previous submission
- Added get_logical_name() in validate_util.C
- create_work: change default target_nresults from 5 to 2,
    max_error_results from 10 to 3,
    max_total_results from 20 to 10,
    max_success_results from 10 to 6
- boinc_cmd: show full usage if no args
- project setup: copy single_job_assimilator

svn path=/trunk/boinc/; revision=14847
2008-03-05 20:16:10 +00:00
David Anderson b20f2d915c - server: added a mechanism for submitting jobs as:
> boinc_submit --infile foo --outfile blah program --args
    This will run "program" on a remote host,
    with the given input, output files, and command-line args

    It manages everything for you.
    You don't have to worry about apps, app_versions,
    template files, wrapper job files, etc.
    See: http://boinc.berkeley.edu/trac/wiki/SingleJob

    Initial checkin - not debugged yet.

svn path=/trunk/boinc/; revision=14842
2008-03-04 23:50:38 +00:00
David Anderson 1106da6ec6 - transitioner: we're not supposed to ever see "assigned" WUs.
But if we do, set their transitioner time to plus infinity
    so that we don't see them again.
    (otherwise we go into an infinite loop)
- DB code: remove "high_priority" from queries not from scheduler
    (should probably remove them from there too)
- file_deleter: print error msg if apache user doesn't exist

svn path=/trunk/boinc/; revision=14835
2008-03-03 19:33:32 +00:00
David Anderson c8384113e4 - changes to many files to fix gcc4.3 compile
svn path=/trunk/boinc/; revision=14811
2008-02-27 23:26:38 +00:00
David Anderson 86857a5452 - Scheduler: fix bugs in work assignment feature
svn path=/trunk/boinc/; revision=14810
2008-02-27 22:26:37 +00:00
David Anderson b6cc885abf - server: make the special substring for assigned WUs
into a #define's symbol (ASSIGNED_WU_STR)
- scheduler: when send client command to abort a WU,
    include a reason code in the scheduler log

svn path=/trunk/boinc/; revision=14798
2008-02-26 17:24:29 +00:00
David Anderson 54519a4ee1 - Server: add "job assignment" feature.
Lets you assign a WU to a particular host,
    to one or all hosts belonging to a user or team, or to all hosts.
    See http://boinc.berkeley.edu/trac/wiki/AssignedWork
    Disabled unless you include <enable_assignment> in config.xml
    Uses a new DB table.
    Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
    and removed the PLATFORM_LIST arg to everything
    (put it in SCHEDULER_REQUEST instead)

svn path=/trunk/boinc/; revision=14767
2008-02-21 00:47:50 +00:00
David Anderson 69cfcebef4 - file upload handler: the FCGI version wasn't handling signatures,
because the code to read keys in FCGI was commented out
    (and was in fact wrong).
    I fixed it and uncommented it.
- make_project and upgrade: copy lib/crypt_prog to project/bin/

svn path=/trunk/boinc/; revision=14693
2008-02-06 19:32:51 +00:00
David Anderson a1664cc070 - scheduler: simplified Carl's checkin (avoid virtual destructors)
- API: small tweak for standalone

svn path=/trunk/boinc/; revision=14679
2008-02-05 21:26:43 +00:00
David Anderson 94fdec8b70 - scheduler: send log messages to file, rather than httpd error log,
when using FCGI (from Carl Christensen)

svn path=/trunk/boinc/; revision=14678
2008-02-05 20:16:57 +00:00
David Anderson daac96c05f - create_work: added -opaque option (to specify workunit.opaque)
svn path=/trunk/boinc/; revision=14605
2008-01-21 14:02:22 +00:00
David Anderson 5104b76439 - XML fix in backend lib
svn path=/trunk/boinc/; revision=14482
2008-01-07 22:04:54 +00:00
David Anderson 757c41b1fa - web: add RSS feed for notifications
- make_project: disable community-related periodic tasks
    for newly-created projects

svn path=/trunk/boinc/; revision=14468
2008-01-04 22:59:21 +00:00
David Anderson 57f0bbc6e5 - make_project: prepend "./" to config.xml script names in case "." is not
in Apache's search path
- web: show UOTD text correctly
- web: memoize profile_screening() in attempt to fix out-of-memory error
    when building profile pages on S@h
- web: move gallery.inc into update_profile_pages and remove it

svn path=/trunk/boinc/; revision=14460
2008-01-03 17:24:28 +00:00
David Anderson dddd1fc501 - fixed bug in upgrade
svn path=/trunk/boinc/; revision=14451
2008-01-01 18:07:13 +00:00
David Anderson f183b6f47f - web: add general-purpose notification mechanism.
Users can choose whether to get 1 email per notification,
    a daily "digest" email, or no email.
    (All notifications are shown on the Account page).
    Currently used for:
    - Friend requests and confirmations
    - Posts to subscribed threads
    - Private messages

    NOTE: To implement the "daily digest" feature, projects must add
    a periodic task for html/ops/notify.php to config.xml
- web: have project_footer() generate links for
    Account Page and Message Boards as well as Home
    NOTE: projects that want this change
    will have to modify their own project.inc.

svn path=/trunk/boinc/; revision=14447
2007-12-30 22:02:16 +00:00
David Anderson 40f594b07c - upgrade script: fix it, and add --web_only option (fixes #527)
- web: replace "Result" by "Task" a couple of places

svn path=/trunk/boinc/; revision=14446
2007-12-28 05:23:52 +00:00
David Anderson 11dac5e80c - make_project: add --web_only option.
This lets you create a project for Bossa or Bolt
    without compiling the C++ stuff, which is not used by Bossa or Bolt.
- DB schema: change type= to engine= to avoid MySQL warning messages

svn path=/trunk/boinc/; revision=14437
2007-12-21 23:39:25 +00:00
David Anderson b42c68e5dd - API: switch back to structure where the worker thread
calls getrusage() in a signal handler to find its CPU time.
    Apparently there are some kernels and/or thread libraries
    where getrusage() does NOT return the total CPU time of
    all threads in the process,
    so in these cases calling it from the timer thread doesn't work.
    
    This was originally changed because of concerns that
    calling getrusage() in a signal handler was dangerous;
    we'll see if any problems re-emerge.

    The alternative of reading /proc/PID/stats doesn't seem viable;
    format may not be standardized.

svn path=/trunk/boinc/; revision=14433
2007-12-21 19:23:22 +00:00
Eric J. Korpela fea4674524 Fix sql bug in vote_monitor
svn path=/trunk/boinc/; revision=13949
2007-10-24 20:14:20 +00:00
Eric J. Korpela 706b283b19 Added ability for forum moderators to vote for banishment of a poster
New db tables banishment_vote and banishment_votes
Daemon script vote_monitor for timing the votes
New configuration option <moderators_vote_to_ban/>



svn path=/trunk/boinc/; revision=13917
2007-10-19 20:01:36 +00:00
Frank Thomas fbcfeaf456 - Removed the svn:executable property from files that should not be executable,
like source code and text files. I skipped to check most files in html/
  and mac_*/ though.
- Added svn:executable to tools/watch_tcp because it has a shebang.


svn path=/trunk/boinc/; revision=13819
2007-10-10 09:25:40 +00:00
David Anderson 383b21dd5a - update_versions now generates <api_version> for all app versions
- user web: don't XML-escape team names in DB
- deleted obsolete files
- calloc() return check, fixes #277

svn path=/trunk/boinc/; revision=13817
2007-10-09 22:58:49 +00:00
David Anderson d50a183dcb - remove "updater" from tools/ Makefile
svn path=/trunk/boinc/; revision=13815
2007-10-09 18:29:51 +00:00
Rom Walton 38d4aecc0b Delete outdated .cvsignore files
svn path=/trunk/boinc/; revision=13814
2007-10-09 18:03:21 +00:00
Charlie Fenton f0aff10b8e Fix updater build on Windows after sandbox reorganization
svn path=/trunk/boinc/; revision=13810
2007-10-09 13:28:00 +00:00
Frank Thomas 3bfc78b511 Updated the postal address of the Free Software Foundation in all license headers. See http://lists.ssl.berkeley.edu/pipermail/boinc_dev/2007-October/008939.html for reference.
svn path=/trunk/boinc/; revision=13804
2007-10-09 11:35:47 +00:00
David Anderson c260a46b0d - update_versions_v6 doesn't set min_core_version
svn path=/trunk/boinc/; revision=13653
2007-09-25 17:13:38 +00:00
David Anderson bc5b979afb - Added new script "update_versions_v6"; use this instead of
update_versions to add version 6 apps.
    It looks for API_VERSION string in main executable,
    adds the API version to the app_version XML,
    and sets min_core_version to 6 for version 6+ apps
- API: include API_VERSION string
- convert tabs to spaces here and there
- scheduler: parse unused elements in <net_stats>
- ops/show_log.php: if no URL args, just show form (fixes #415)
- client: parse and store api_version (not used yet)

svn path=/trunk/boinc/; revision=13627
2007-09-21 18:10:54 +00:00
David Anderson 14bc500cab - user web: added mechanism for recording team membership changes.
These are stored in a new DB table, "team_delta".
    The team founder can view the history in HTML or XML
    (links on Management Functions page)

svn path=/trunk/boinc/; revision=13231
2007-07-27 18:30:10 +00:00
David Anderson 7594e57b05 - update_versions: don't accept a multi-file application
unless there's a main program with same name as dir
    (previously it was treating the first executable file found
    as the main program, with occasionally disastrous consequences).

svn path=/trunk/boinc/; revision=13201
2007-07-20 20:19:35 +00:00
David Anderson e1a0c552e2 - compile fixes for Win
client/
		acct_setup.C
		cs_prefs.C
		cs_trickle.C
	lib/
		filesys.C
		str_util.C,h
		util.C,h
	tools/
		updater.C
	win_build/
		sim.vcproj

svn path=/trunk/boinc/; revision=12985
2007-06-22 20:17:08 +00:00
David Anderson 6b4e912b27 - random compile warning fixes
client/
    auto_update.C
    file_names.h
    scheduler_op.C
    time_stats.C
lib/
    util.C,h
tools/
    create_work.C
    updater.C

svn path=/trunk/boinc/; revision=12971
2007-06-20 23:16:30 +00:00
David Anderson 45f04aa04b - back end: make it possible to run multiple instances of make_work,
for WUs of different applications
    (need to count unsent results separately by app)
- feeder: major code cleanup
    - application interleaving (for -allapps) is now done
        by building a static slot-to-app array "app_indices".
        Fractional weights now work correctly.
    - enum sizes (for -allapps) are now precomputed
        in an array "enum_sizes"
    - rename "found" (confusing!!) to "collision"
    - swapped the names of mod_select_clause and select_clause,
        to reflect what they actually are
- file deleter: in finding oldest WU, order by id instead of create_time
    (there's no index on create_time)
- user web: show "merge by name" only to host owner
- add cpu_scheduler_period() member to GLOBAL_PREFS
    (so you don't have to multiply by 60 everywhere)
- infinite() fix for HPUX

client/
    cpu_sched.C
    cs_cmdline.C
    cs_scheduler.C
    rrsim_test.C
    sim.C
    work_fetch.C
html/user/
    hosts_user.php
lib/
    parse.h
    prefs.h
sched/
    feeder.C
    file_deleter.C
    make_work.C
    sample_work_generator.C
    sched_util.C,h
tools/
    updater.C

svn path=/trunk/boinc/; revision=12968
2007-06-20 16:27:27 +00:00
David Anderson 46f999f0ba - Added project.xml entry for Playstation 3 / Linux
- Server status page: if the scheduler isn't running,
    it's almost certainly because "stop_sched" is present,
    not because Apache isn't running.
    Get rid of the use of "sched_pid".
    
tools/
    project.xml
html/ops/
    sample_server_status.php

svn path=/trunk/boinc/; revision=12931
2007-06-13 21:16:27 +00:00
David Anderson 58b39390b1 - Python tools:
- removed "add" (long deprecated)
    - version.py is needed only in test/;
        remove references to it in boinc_path_config.py,
        and don't copy it to project/bin

py/Boinc/
    boinc_path_config.py.in
    setup_project.py
tools/
    add (removed)

svn path=/trunk/boinc/; revision=12658
2007-05-11 22:24:14 +00:00
David Anderson c72634456d - make_project and upgrade now write a file 'local.revision'
in the project home directory.
        It contains the output of /usr/bin/svnversion,
        i.e. the code revision from which the server software was built.
    - Web files that create directories now give them g+rwx permissions

    html/inc/
        cache.inc
        translation.inc
    sched/
        edf_sim.C
    tools/
        make_project
        upgrade

svn path=/trunk/boinc/; revision=12521
2007-05-01 21:21:13 +00:00
David Anderson 5184dedb1e David 26 Apr 2007
- core client: set config settings to default values before
        parsing cc_config.xml.
        Otherwise, if you have a lot of log flags set,
        and tell the client to reread a config file that
        doesn't specify ANY log flags,
        you'll end up with all the flags still set.
        (from Sebastian Masch)
    - make_project: add cmdline args for update_stats in initial config

    tools/
        make_project
    client/
        log_flags.C,h

svn path=/trunk/boinc/; revision=12490
2007-04-26 21:57:42 +00:00
David Anderson b5b155e557 David 26 Apr 2007
- server: fix bug that causes PHP scripts not to run from Cron
        Fixes #129.  From Christian Beer.

    html/ops/
        update_profile_pages.php
    tools/
        run_in_ops

svn path=/trunk/boinc/; revision=12488
2007-04-26 20:24:47 +00:00
David Anderson bd06f5ae09 David 25 Apr 2007
- fixes #126 - generate cronjob file in make_project

    tools/
        make_project

svn path=/trunk/boinc/; revision=12480
2007-04-25 20:38:01 +00:00
David Anderson fe32380dcf David 23 Apr 2007
- make_project: remove --no_test_app option, add --test_app option
    - make_project: initial config in all cases has
        one_result_per_user_per_wu = 0
    - sample_assimilator: make it able to handle > 1 output file
    - boinc_cmd: make --help output more readable
    - User web: fix some undefined vars in translation.inc
        Rytis: let's try to fix PHP runtime warnings
    - DB: add default values for app table (avoid MySQL warnings)

    db/
        schema.sql
    html/
        inc/
            translation.inc
            uotd.inc
        ops/
            update_forum_activities.php
    lib/
        str_util.C
        boinc_cmd.C
    py/Boinc/
        setup_project.py
    sched/
        sample_work_generator.C
        sample_assimilator.C
    tools/
        make_project
        uc_wu, uc_result (new)

svn path=/trunk/boinc/; revision=12450
2007-04-23 16:14:47 +00:00
David Anderson b686f89d85 David 20 Apr 2007
- make_project: add periodic tasks to default config.xml:
        dp_dump, update_uotd, update_forum_activities, update_stats,
        update_profile_pages
    - backend_lib.C: refuse to create a job for which some necessary
        parameter (rsc_fpops_est, rsc_fpops_bound, etc.) is missing
    - Unix build: don't include std_fixes.h in config.h.
        std_fixes.h is (I think) deprecated
    - sched_util: default sched log level is MSG_NORMAL
    - client: add ".txt" to job log filename
    - compile fixes

    configure.ac
    api/
        reduce_main.C
    client/
        file_names.C
    lib/
        str_util.h
    sched/
        sample_work_generator.C
        sched_msgs.h
    tools/
        backend_lib.C

svn path=/trunk/boinc/; revision=12430
2007-04-20 17:14:08 +00:00
David Anderson 1880a50cc5 David 19 Apr 2007
- Change things so that make_project installs a test application
        (uppercase) and the daemons to go along with it
        (sample_work_generator, sample_bitwise_validator, sample_assimilator).
        This is mostly working, not completely.

    apps
        upper_case.C
    html/ops/
        mass_email_script.php
    py/Boinc/
        setup_project.py
    sched/
        sched_config.C,h
        sample_work_generator.C
    tools/
        make_project
        project.xml
        Makefile.am

svn path=/trunk/boinc/; revision=12422
2007-04-19 22:11:25 +00:00
David Anderson 11869bc0be *** empty log message ***
svn path=/trunk/boinc/; revision=12333
2007-04-09 02:17:26 +00:00
David Anderson 75a2b2c55b *** empty log message ***
svn path=/trunk/boinc/; revision=12322
2007-04-05 17:02:01 +00:00
David Anderson 81effa6a7b *** empty log message ***
svn path=/trunk/boinc/; revision=12127
2007-02-21 16:26:51 +00:00
David Anderson f7d648e350 *** empty log message ***
svn path=/trunk/boinc/; revision=12075
2007-02-13 21:41:07 +00:00
David Anderson ff91c8450f *** empty log message ***
svn path=/trunk/boinc/; revision=12004
2007-01-30 18:19:30 +00:00
Reinhard Prix d377d47a6e make dir_hier_move and dir_hier_path output a help-string
svn path=/trunk/boinc/; revision=11857
2007-01-14 23:04:27 +00:00
David Anderson 46695c2155 *** empty log message ***
svn path=/trunk/boinc/; revision=11683
2006-12-14 20:44:39 +00:00
David Anderson 86ad19ce5f *** empty log message ***
svn path=/trunk/boinc/; revision=11672
2006-12-14 00:42:43 +00:00
David Anderson 36517491f2 *** empty log message ***
svn path=/trunk/boinc/; revision=11669
2006-12-13 18:48:12 +00:00
David Anderson 899db9e8d3 *** empty log message ***
svn path=/trunk/boinc/; revision=11668
2006-12-13 16:04:50 +00:00
David Anderson 6e3925cefc *** empty log message ***
svn path=/trunk/boinc/; revision=11524
2006-11-14 17:30:59 +00:00
David Anderson 0cb8434d75 *** empty log message ***
svn path=/trunk/boinc/; revision=11466
2006-11-03 21:42:49 +00:00
David Anderson 083000ad62 *** empty log message ***
svn path=/trunk/boinc/; revision=11315
2006-10-19 18:42:31 +00:00
David Anderson cb583ae458 *** empty log message ***
svn path=/trunk/boinc/; revision=11116
2006-09-06 17:18:51 +00:00
Bruce Allen 66485155f1 On-line scheduler logs (readable by project participants): increase the
efficiency of the script that produces these log files by eliminating
un-necessary grepping of cgi.log.0

svn path=/trunk/boinc/; revision=10691
2006-07-20 10:54:40 +00:00
David Anderson 51c8c62fa3 *** empty log message ***
svn path=/trunk/boinc/; revision=10348
2006-06-14 20:17:35 +00:00
David Anderson f78b851b64 *** empty log message ***
svn path=/trunk/boinc/; revision=10221
2006-05-30 17:02:46 +00:00
David Anderson 805c004eb2 *** empty log message ***
svn path=/trunk/boinc/; revision=10129
2006-05-15 00:27:15 +00:00
David Anderson 5617df5f47 *** empty log message ***
svn path=/trunk/boinc/; revision=10118
2006-05-09 18:25:15 +00:00
David Anderson a9ebba7ca1 *** empty log message ***
svn path=/trunk/boinc/; revision=10057
2006-04-28 18:31:32 +00:00
David Anderson 22853c9ab6 command line in template
svn path=/trunk/boinc/; revision=10053
2006-04-28 16:59:53 +00:00
David Anderson 706078dad8 dir_hier_path
svn path=/trunk/boinc/; revision=9794
2006-04-04 20:03:59 +00:00
David Anderson 208f47e4e8 make_project
svn path=/trunk/boinc/; revision=9721
2006-03-24 06:54:49 +00:00
David Anderson 710be691c3 LTD calculation
svn path=/trunk/boinc/; revision=9397
2006-02-02 23:59:47 +00:00
David Anderson f471b89bf9 propagate batch to result
svn path=/trunk/boinc/; revision=9318
2006-01-26 00:19:05 +00:00
David Anderson 9edb1c083f *** empty log message ***
svn path=/trunk/boinc/; revision=9170
2006-01-05 06:42:45 +00:00
Bruce Allen 7eae628fc8 Compile fix
svn path=/trunk/boinc/; revision=9130
2005-12-23 04:12:24 +00:00
David Anderson 53919051a9 -command_line arg to create_work
svn path=/trunk/boinc/; revision=9112
2005-12-21 21:46:22 +00:00
Bruce Allen c88787d169 Make update_versions touch ../reread_db to force the
feeder to notice new app versions.

svn path=/trunk/boinc/; revision=9104
2005-12-20 22:36:31 +00:00
Bruce Allen d40a80fde4 To address some concerns about security, strip USER # from the
online scheduler logs.  The only info that appears in these
online logs is then the HOSTID.  If the user has chosen to hide
their hosts, then there is no way to figure out which user a
given hostid belongs to.

Note that this is exactly the same as the current approach of
displaying the results by hostid, but hiding the identity of the
user who owns a given host.

Also, increase default time for retaining logs to two weeks.

svn path=/trunk/boinc/; revision=9082
2005-12-17 15:51:18 +00:00
David Anderson 86855fc26d *** empty log message ***
svn path=/trunk/boinc/; revision=9068
2005-12-14 23:43:50 +00:00
Bruce Allen c5ed94a649 Fix to script that cleans 'user-visible' scheduler logs, to prevent
it from inadvertently leaving old files hanging around.

svn path=/trunk/boinc/; revision=9067
2005-12-14 23:25:25 +00:00
Bruce Allen 6d7199af08 Added a script that maintains a set of sanatized scheduler logs
for users, helpers, and admins to view on the web.
A second script removes these log files if more than one week
      old.
The logs are 'sanatized' by removing IP addresses and authenticators.
These scripts should be controlled by using the standard start/stop
      scripts.  To do this, make entries in config.xml.  The files both
      contain comments at the top detailing how to do this.

svn path=/trunk/boinc/; revision=9049
2005-12-07 04:19:17 +00:00
Eric J. Korpela d9ee426071 Added explicit includes of "config.h" in many files to enable use of compilers
without a -include command line option.

svn path=/trunk/boinc/; revision=8896
2005-11-21 18:34:44 +00:00
David Anderson 72ad81d930 command_line arg to create_work()
svn path=/trunk/boinc/; revision=8773
2005-10-29 20:16:07 +00:00
David Anderson 270c583dcf app version in window title
svn path=/trunk/boinc/; revision=8663
2005-10-12 18:40:53 +00:00
Reinhard Prix df4bc39cad removed spurious dependencies in tool to avoid pointless re-linking
svn path=/trunk/boinc/; revision=8346
2005-09-30 00:19:42 +00:00
Jeff Cobb 5218ad9bdf Jeff - pull out old hier dir/url hash function
svn path=/trunk/boinc/; revision=8163
2005-09-23 21:09:00 +00:00
David Anderson 63d3310d8b *** empty log message ***
svn path=/trunk/boinc/; revision=7001
2005-08-03 06:04:07 +00:00
David Anderson 511429769c *** empty log message ***
svn path=/trunk/boinc/; revision=6712
2005-07-21 08:24:09 +00:00
Bruce Allen f221e6bd89 If we've created new results for a file, remove filename from the
'working_set_removal' list.

svn path=/trunk/boinc/; revision=6459
2005-06-27 17:06:29 +00:00
Bruce Allen 042bfde576 when using locality scheduler, have transitioner or backend
lib advertise data file when new result is created.
code organization: create new lib function boinc_touch_file()
      from code that was in locality scheduler module.

svn path=/trunk/boinc/; revision=6456
2005-06-27 16:31:49 +00:00
David Anderson 28cc1fb011 *** empty log message ***
svn path=/trunk/boinc/; revision=6343
2005-06-14 20:31:15 +00:00
David Anderson 7eaac3296c *** empty log message ***
svn path=/trunk/boinc/; revision=5634
2005-03-11 23:13:27 +00:00
David Anderson 494ee90567 *** empty log message ***
svn path=/trunk/boinc/; revision=5548
2005-03-01 21:00:06 +00:00
David Anderson 308a6abe8d *** empty log message ***
svn path=/trunk/boinc/; revision=5460
2005-02-17 20:35:41 +00:00
David Anderson 8d0ab453b3 *** empty log message ***
svn path=/trunk/boinc/; revision=5443
2005-02-16 23:17:43 +00:00
Bruce Allen 87d0753b1a Add CVS-id RCS tags to files.
svn path=/trunk/boinc/; revision=5398
2005-02-11 04:46:01 +00:00
Eric J. Korpela c05d6d23a0 Because FCGI doesn't support fscanf() and fgetc(), the FILE pointers need to be
wrapped in a call to FCGI_ToFILE().  In the case where FCGI isn't being used
FCGI_ToFILE(x) is defined to (x).

svn path=/trunk/boinc/; revision=5387
2005-02-10 19:39:37 +00:00
David Anderson 36ed6019c2 *** empty log message ***
svn path=/trunk/boinc/; revision=5380
2005-02-09 23:49:46 +00:00
David Anderson 5a2a60ad91 *** empty log message ***
svn path=/trunk/boinc/; revision=5367
2005-02-08 22:07:40 +00:00
Bruce Allen 21e1990508 Made the caching of md5 info for source files a configuration option in
config.xml.  Use the boolean tag <cache_md5_info> to enable it.
This prevents the work generation library from having to go back and
continuously regenerate the md5 sums of your input data files.  Note
that reading these from disk can be expensive if you have many such files
that are large and that you re-use. See check-in notes from 30/31 Dec 2004
for some details.

svn path=/trunk/boinc/; revision=5281
2005-02-02 21:57:11 +00:00
David Anderson 09d0878732 *** empty log message ***
svn path=/trunk/boinc/; revision=5244
2005-01-29 23:29:54 +00:00
David Anderson e342603db0 *** empty log message ***
svn path=/trunk/boinc/; revision=5231
2005-01-28 01:07:16 +00:00
David Anderson e1c65eb341 *** empty log message ***
svn path=/trunk/boinc/; revision=5228
2005-01-27 23:09:19 +00:00
David Anderson 24a1bb1abf *** empty log message ***
svn path=/trunk/boinc/; revision=5227
2005-01-27 22:29:06 +00:00
David Anderson 435f8edd47 *** empty log message ***
svn path=/trunk/boinc/; revision=5161
2005-01-20 23:22:22 +00:00
Karl Chen 8d3e716729 added support for make_project --db_user --db_passwd
svn path=/trunk/boinc/; revision=5127
2005-01-17 00:21:19 +00:00
David Anderson 205d90a11d *** empty log message ***
svn path=/trunk/boinc/; revision=5040
2005-01-09 08:44:41 +00:00
David Anderson 4e294d1e5a *** empty log message ***
svn path=/trunk/boinc/; revision=5030
2005-01-08 07:44:22 +00:00
Bruce Allen f31b244f90 Modified CVS id strings. After some fussing with different versions
of gcc to try and force them to not complain with -Wall but to always
include this, I decided to take a simpler approach.  All these strings
now have global linkage.  To prevent namespace conflicts they all
have different names.  For the record, the variable extension is a hash made of the first ten characters of the md5sum of the file path, eg:
    md5hash=`boinc/api/x_opengl.C | md5sum | cut -c 1-10`

svn path=/trunk/boinc/; revision=4979
2005-01-02 18:29:53 +00:00
David Anderson 2a337abeb0 *** empty log message ***
svn path=/trunk/boinc/; revision=4976
2005-01-02 08:01:27 +00:00
David Anderson 66950e2822 replace bad filename hashing function
svn path=/trunk/boinc/; revision=4975
2005-01-02 07:44:40 +00:00
Bruce Allen 5ce5d79c0f Some improvements on the md5-info caching. If the 'data' file is
more recent than the 'md5info', then ignore md5info.  If md5info
has *exactly* the right format (no extra or missing characters) then
remove it in this case (only).  Don't write an md5info file if
another file is found with the same name.  Thus if someone has two
data files called X and X.md5, unless X.md5 has the exact correct
syntax for an md5-info cache file, it won't be removed or used.
Still disabled by default.  Use -DBOINC_CACHE_MD5 to enable it.

svn path=/trunk/boinc/; revision=4973
2004-12-31 15:39:05 +00:00
Bruce Allen e009537167 When creating large numbers of WU which have large input files,
the cost of computing the md5 sums becomes expensive.  Inserted
a simple caching mechanism into the utility function
process_wu_template().  For a given filename FILENAME, this looks
for a file called FILENAME.md5, which contains the md5sum and
length.  If the file exists, these values are used.  If not, such
a file is created.  Since (I think) David is planning to have a
database for files, this mechanism will eventually be obsolete.
Right now it disabled by default.  Use -DBOINC_CACHE_MD5 to
enable it.

svn path=/trunk/boinc/; revision=4965
2004-12-30 04:16:00 +00:00
David Anderson 6f66c759c8 *** empty log message ***
svn path=/trunk/boinc/; revision=4947
2004-12-27 22:49:25 +00:00
David Anderson 072d84e238 *** empty log message ***
svn path=/trunk/boinc/; revision=4937
2004-12-26 02:55:31 +00:00
David Anderson 164c643695 *** empty log message ***
svn path=/trunk/boinc/; revision=4788
2004-12-08 07:03:43 +00:00
Bruce Allen a24afe2b67 Moved RCSID strings to the end of all .c, .C and .cpp files as per
David's request.

svn path=/trunk/boinc/; revision=4787
2004-12-08 00:40:19 +00:00
David Anderson 20eb2f30b2 *** empty log message ***
svn path=/trunk/boinc/; revision=4785
2004-12-08 00:14:52 +00:00
David Anderson 2c5f1d1a5b *** empty log message ***
svn path=/trunk/boinc/; revision=4772
2004-12-06 22:41:19 +00:00
David Anderson 9492a0106f *** empty log message ***
svn path=/trunk/boinc/; revision=4685
2004-11-30 07:17:05 +00:00
David Anderson d3ea793175 *** empty log message ***
svn path=/trunk/boinc/; revision=4648
2004-11-24 19:17:50 +00:00
David Anderson f246536c6b *** empty log message ***
svn path=/trunk/boinc/; revision=4645
2004-11-24 07:17:46 +00:00
David Anderson 319328e169 *** empty log message ***
svn path=/trunk/boinc/; revision=4620
2004-11-22 19:17:13 +00:00
Bruce Allen 45525eade1 - Added static volatile const char *BOINCrcsid="$Id$"; string to
the top of all .C files.  This means that 'string' or 'ident'
run on an executable will tell you the exact file versions used
in building it, since CVS replaces $Id$ with a complete version ID
string.  Declaration is volatile so that the compiler won't remove
it even under agressive optimizations.

svn path=/trunk/boinc/; revision=4610
2004-11-20 07:32:32 +00:00
Bruce Allen 7c5faae35b Cleaned up .cvsignore files
svn path=/trunk/boinc/; revision=4608
2004-11-19 16:27:06 +00:00
Karl Chen 501c05623b *** empty log message ***
svn path=/trunk/boinc/; revision=4478
2004-11-02 22:33:41 +00:00
David Anderson e4215d8f72 *** empty log message ***
svn path=/trunk/boinc/; revision=4458
2004-10-29 18:18:53 +00:00
Eric J. Korpela 483ceaca0b *** empty log message ***
svn path=/trunk/boinc/; revision=4456
2004-10-29 04:42:37 +00:00
David Anderson 57be0ccde2 *** empty log message ***
svn path=/trunk/boinc/; revision=4339
2004-10-18 01:54:28 +00:00
David Anderson 22f1a1093a *** empty log message ***
svn path=/trunk/boinc/; revision=4285
2004-10-01 23:46:22 +00:00
David Anderson 41a92be355 *** empty log message ***
svn path=/trunk/boinc/; revision=4271
2004-09-30 20:32:16 +00:00
David Anderson 6e94de0a6c *** empty log message ***
svn path=/trunk/boinc/; revision=4240
2004-09-24 21:28:12 +00:00
Lana Alber 154b132c24 *** empty log message ***
svn path=/trunk/boinc/; revision=4211
2004-09-20 23:03:47 +00:00
David Anderson f7c026df21 *** empty log message ***
svn path=/trunk/boinc/; revision=4201
2004-09-14 22:24:58 +00:00
David Anderson e3f186a330 *** empty log message ***
svn path=/trunk/boinc/; revision=4164
2004-09-07 20:56:08 +00:00
David Anderson 036cfa8a1d *** empty log message ***
svn path=/trunk/boinc/; revision=4120
2004-08-27 22:31:02 +00:00