Commit Graph

491 Commits

Author SHA1 Message Date
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 

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 (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
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 ;  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