Commit Graph

585 Commits

Author SHA1 Message Date
David Anderson 44f173605e - 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.


svn path=/trunk/boinc/; revision=25112
2012-01-20 23:34:15 +00:00
David Anderson 33b607dab1 - 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


svn path=/trunk/boinc/; revision=24969
2012-01-02 07:33:08 +00:00
David Anderson bba4ce24ce - 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


svn path=/trunk/boinc/; revision=24968
2012-01-02 05:53:42 +00:00
David Anderson 4e50e4b852 - update_versions: support <needs_network> flag in version.xml
svn path=/trunk/boinc/; revision=24901
2011-12-26 06:03:50 +00:00
David Anderson fa3f5a945e - bug fixes in remote job submission tools
(manage_privileges and get_output.php).
    From Nico Schlitter.
- change things so that
    make_project --test_app
    will produce input/output templates that are compatible
    with the remote job submission tools


svn path=/trunk/boinc/; revision=24774
2011-12-10 22:03:43 +00:00
David Anderson 8e689c7434 - update_versions: touch trigger file so that feeder rereads DB
svn path=/trunk/boinc/; revision=24458
2011-10-21 20:14:54 +00:00
David Anderson 53af2ae778 - client/API: pass bool using_sandbox in APP_INIT_DATA;
says whether the client is using account-based sandboxing.
    Needed by vboxwrapper.
- web: don't show authenticator in Your Account page.
    The problem with authenticators is that if a bad guys gets yours,
    they can log in to your account even if you change your password.
    Eventually we should not use them at all
    (i.e. in cookies and sent to client).
- make_project: copy python stuff (e.g. bin/start) for web-only projects;
    generate appropriate project.readme file for web-only projects.


svn path=/trunk/boinc/; revision=24447
2011-10-21 06:58:35 +00:00
David Anderson 3410abef6f - backend API: added function cancel_jobs(minid, maxid)
for canceling jobs
- added program cancel_jobs for canceling jobs
- DB interface: it's not an error if update_fields_noid()
    affects != 1 rows


svn path=/trunk/boinc/; revision=24413
2011-10-18 07:15:04 +00:00
David Anderson c4f234931e - fix typo in manage_privileges
svn path=/trunk/boinc/; revision=24276
2011-09-23 17:04:22 +00:00
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