Commit c1c9e5ae authored by Oliver Behnke's avatar Oliver Behnke

Merge branch 'master' into drupal-eah-einstein

parents a33aa6d3 2024c8e2
......@@ -5,14 +5,17 @@ codecov:
coverage:
status:
project: off
patch: on
patch:
default:
threshold: 0.01
comment:
layout: "diff, files"
behavior: default
require_changes: false # if true: only post the comment if coverage changes
require_changes: yes # if true: only post the comment if coverage changes
require_base: no # [yes :: must have a base report to post]
require_head: yes # [yes :: must have a head report to post]
branch: master
flags:
# filter the folder(s) you wish to measure by that flag
......
......@@ -3,60 +3,47 @@
## How Can I Contribute?
### Helping translate
### Get Connected
Want to connect with contributors?
* Join us on [Slack](https://join.slack.com/t/boincworkspace/shared_invite/enQtNzA3MTQ4NDA0Njc4LTM4NTEyZTY1MWEwZjAyNTVmOTg3NDA2NjVjZDQzMWQ3NmFjYTc4MTNkNTEyNjRkOTQ4MWU5Nzk3NzRhNTg0NDI)
* Join the email lists:
* [BOINC Overall](https://groups.google.com/forum/#!forum/boinc_admin)
* [BOINC Projects](https://groups.google.com/a/ssl.berkeley.edu/forum/#!forum/boinc_projects)
* [BOINC Development](https://groups.google.com/a/ssl.berkeley.edu/forum/#!forum/boinc_dev)
* [BOINC Alpha Testing](https://groups.google.com/a/ssl.berkeley.edu/forum/#!forum/boinc_alpha)
* Join one of the community calls:
* The BOINC Projects call occurs quarterly and is announced on the [BOINC Projects email list](https://groups.google.com/a/ssl.berkeley.edu/forum/#!forum/boinc_projects)
* The BOINC Contributor call occurs every other week and is announced on the [BOINC Development email list](https://groups.google.com/a/ssl.berkeley.edu/forum/#!forum/boinc_dev)
### Promote Volunteer Computing
Want to help promote volunteer computing and work on ways to attract new users? Join the #communications channel on [Slack](https://join.slack.com/t/boincworkspace/shared_invite/enQtNzA3MTQ4NDA0Njc4LTM4NTEyZTY1MWEwZjAyNTVmOTg3NDA2NjVjZDQzMWQ3NmFjYTc4MTNkNTEyNjRkOTQ4MWU5Nzk3NzRhNTg0NDI)
### Help Translate
See: https://boinc.berkeley.edu/trac/wiki/TranslateIntro
### Reporting Bugs
### Help Test
You can help new versions of the client.
* Become an [Alpha Tester](https://boinc.berkeley.edu/trac/wiki/AlphaInstructions)
* Signup to be a [BOINC Android Tester](https://groups.google.com/forum/#!forum/boinc-android-testing)
### Report Bugs
Did you find a bug? Make a Bug report.
* Ensure the bug was not already reported by searching on GitHub under [Issues](https://github.com/BOINC/boinc/issues).
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/BOINC/boinc/issues/new).
### Suggesting Enhancements
Do you have a feture idea? Make a Feature request.
### Suggest Enhancements
Do you have a feature idea? Make a feature request.
* Ensure the feature was not already requested by searching on GitHub under [Issues](https://github.com/BOINC/boinc/issues).
* If you're unable to find an open issue addressing the idea, [open a new one](https://github.com/BOINC/boinc/issues/new).
### Making Pull Requests
**1. Fork & create a branch**
[Fork BOINC](https://help.github.com/articles/fork-a-repo/) and create a branch with a descriptive name.
A good branch name would be:
```
git checkout -b update-code-of-conduct
```
**2. Implement your fix or feature**
At this point, you're ready to make your changes! Feel free to ask for help, everyone is a beginner at first. :wink:
Development Practices:
* Code has followed the [style guide for BOINC](http://boinc.berkeley.edu/trac/wiki/CodingStyle)
* Commit does not contain unrelated code changes
* Code uses [atomic commits](https://www.freshconsulting.com/atomic-commits/)
**3. Sync changes made in the original repository with your fork**
At this point, you should switch back to your master branch and [make sure it's up to date with BOINC's master branch](https://help.github.com/articles/configuring-a-remote-for-a-fork/):
```
git remote add upstream https://github.com/BOINC/boinc.git
git checkout master
git pull upstream master
```
Then update your branch from your local copy of master, and push it!
```
git checkout update-code-of-conduct
git rebase master
git push --set-upstream origin update-code-of-conduct
```
**4. Make a Pull Request**
Finally, go to GitHub and [make a Pull Request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/).
### Contribute Code
Do you want to fix a bug or implement a new feature? Read about how to [implement a code contribution](https://github.com/BOINC/boinc-policy/blob/master/Development_Documents/Development_Workflow.md#2-implementation).
## Styleguides
### BOINC Coding Styles
See https://boinc.berkeley.edu/trac/wiki/CodingStyle
### Git Commit Messages
* Use the present tense ("Add feature" not "Added feature")
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
......
......@@ -2,6 +2,10 @@
[![Build Status](https://travis-ci.org/BOINC/boinc.svg?branch=master)](https://travis-ci.org/BOINC/boinc) [![Build status](https://ci.appveyor.com/api/projects/status/9dgoc9h5ppos8vcy/branch/master?svg=true)](https://ci.appveyor.com/project/BOINC/boinc/branch/master) [![Coverity Scan Build Status](https://scan.coverity.com/projects/4226/badge.svg)](https://scan.coverity.com/projects/boinc-boinc) [![codecov](https://codecov.io/gh/BOINC/boinc/branch/master/graph/badge.svg)](https://codecov.io/gh/BOINC/boinc) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/BOINC/boinc/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/BOINC/boinc/?branch=master)
# Social
[![Slack](https://img.shields.io/badge/slack-boincworkspace-blue?logo=slack)](https://join.slack.com/t/boincworkspace/shared_invite/enQtNzA3MTQ4NDA0Njc4LTM4NTEyZTY1MWEwZjAyNTVmOTg3NDA2NjVjZDQzMWQ3NmFjYTc4MTNkNTEyNjRkOTQ4MWU5Nzk3NzRhNTg0NDI) [![Discord](https://img.shields.io/badge/discord-boincnetwork-blue?logo=discord)](https://discord.gg/kebpfnr)
# BOINC
Project Website: https://boinc.berkeley.edu
......@@ -9,11 +13,8 @@ Project Website: https://boinc.berkeley.edu
## Want to create a project
See: https://boinc.berkeley.edu/trac/wiki
## Want to help translate
See: https://boinc.berkeley.edu/trac/wiki/TranslateIntro
## Want to contribute
See: https://boinc.berkeley.edu/trac/wiki/SoftwareDevelopment
## Want to help
Read about all the [ways you can help](CONTRIBUTING.md)
### Note
......@@ -23,6 +24,12 @@ title, and interest, including copyright and all copyright rights, in such
contributions to The Regents of the University of California, who may then
use the code for any purpose that it desires.
## Reporting Security Issues
We strongly encourage you to report security problems to our private mailing
list and not by posting an issue. You can do this by sending an email to
boinc_pmc@googlegroups.com. This will be privately sent to the members of the
BOINC Project Management Committee.
# License
BOINC is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
......
......@@ -187,7 +187,7 @@ public class ClientNotification {
nb.setPriority(Notification.PRIORITY_HIGH);
}
else {
nb.setPriority(Notification.PRIORITY_MIN);
nb.setPriority(Notification.PRIORITY_LOW);
}
// set action based on computing status
......
......@@ -90,6 +90,7 @@ public class Monitor extends Service {
private String fileNameClientConfig;
private String fileNameGuiAuthentication;
private String fileNameAllProjectsList;
private String fileNameNoMedia;
private String boincWorkingDir;
private Integer clientStatusInterval;
private Integer deviceStatusIntervalScreenOff;
......@@ -124,6 +125,7 @@ public class Monitor extends Service {
fileNameClientConfig = getString(R.string.client_config);
fileNameGuiAuthentication = getString(R.string.auth_file_name);
fileNameAllProjectsList = getString(R.string.all_projects_list);
fileNameNoMedia = getString(R.string.nomedia);
clientStatusInterval = getResources().getInteger(R.integer.status_update_interval_ms);
deviceStatusIntervalScreenOff = getResources().getInteger(R.integer.device_status_update_screen_off_every_X_loop);
clientSocketAddress = getString(R.string.client_socket_address);
......@@ -682,26 +684,30 @@ public class Monitor extends Service {
*/
private Boolean installClient() {
if (!installFile(fileNameClient, true, true)) {
if (!installFile(fileNameClient, true, true, "")) {
if (Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameClient);
return false;
}
if (!installFile(fileNameCLI, true, true)) {
if (!installFile(fileNameCLI, true, true, "")) {
if (Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameCLI);
return false;
}
if (!installFile(fileNameCABundle, true, false)) {
if (!installFile(fileNameCABundle, true, false, "")) {
if (Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameCABundle);
return false;
}
if (!installFile(fileNameClientConfig, true, false)) {
if (!installFile(fileNameClientConfig, true, false, "")) {
if (Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameClientConfig);
return false;
}
if (!installFile(fileNameAllProjectsList, true, false)) {
if (!installFile(fileNameAllProjectsList, true, false, "")) {
if (Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameAllProjectsList);
return false;
}
if (!installFile(fileNameNoMedia, false, false, "." + fileNameNoMedia)) {
if (Logging.ERROR) Log.d(Logging.TAG, "Failed to install: " + fileNameNoMedia);
return false;
}
return true;
}
......@@ -712,9 +718,10 @@ public class Monitor extends Service {
* @param file name of file as it appears in assets directory
* @param override define override, if already present in internal storage
* @param executable set executable flag of file in internal storage
* @param targetFile name of target file
* @return Boolean success
*/
private Boolean installFile(String file, Boolean override, Boolean executable) {
private Boolean installFile(String file, Boolean override, Boolean executable, String targetFile) {
Boolean success = false;
byte[] b = new byte[1024];
int count;
......@@ -728,7 +735,12 @@ public class Monitor extends Service {
try {
if (Logging.ERROR) Log.d(Logging.TAG, "installing: " + source);
File target = new File(boincWorkingDir + file);
File target;
if (!targetFile.isEmpty()) {
target = new File(boincWorkingDir + targetFile);
} else {
target = new File(boincWorkingDir + file);
}
// Check path and create it
File installDir = new File(boincWorkingDir);
......
......@@ -142,6 +142,7 @@ public class NoticeNotification {
projectName = this.currentlyNotifiedNotices.get(0).project_name,
notices)).
setSmallIcon(R.drawable.mailw).
setAutoCancel(true).
setContentIntent(this.contentIntent);
if(notices == 1) {
// single notice view
......
......@@ -57,9 +57,7 @@ public class GlobalPreferencesParser extends BaseParser {
mPreferences = new GlobalPreferences();
}
else if(localName.equalsIgnoreCase("day_prefs")) {
if(mInsideDayPrefs) {
mInsideDayPrefs = true;
}
mInsideDayPrefs = true;
}
else {
// Another element, hopefully primitive and not constructor
......
......@@ -151,16 +151,9 @@ public class ProjectConfigReplyParser extends BaseParser {
platformName = "";
platformPlanClass = "";
}
else if(localName.equalsIgnoreCase("platform") && withinPlatforms) { // finish platforms
withinPlatforms = false;
mProjectConfig.platforms = mPlatforms;
}
else if(localName.equalsIgnoreCase("error_num")) { // reply is not present yet
mProjectConfig.error_num = Integer.parseInt(mCurrentElement.toString());
}
else if(localName.equalsIgnoreCase("client_account_creation_disabled")) {
mProjectConfig.clientAccountCreationDisabled = true;
}
else if(localName.equalsIgnoreCase("account_manager")) {
mProjectConfig.accountManager = true;
}
......
......@@ -341,7 +341,6 @@
<string name="about_name">BOINC</string>
<string name="about_version">Version</string>
<string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
<string name="about_copyright">\u00A9 2003–2018 Universität von Kalifornien in Berkeley.</string>
<string name="about_copyright_reserved">Alle Rechte vorbehalten.</string>
<string name="about_credits">Dank dem Max Planck Institut für Gravitationsphysik, IBM und HTC, für die Unterstützung.</string>
<!--notice notification e.g. New notice from SETI@HOME OR 3 new notices-->
......
......@@ -362,7 +362,6 @@ gehigarria
<string name="about_name">BOINC</string>
<string name="about_version">Bertsioa</string>
<string name="about_name_long">Sare bidezko Konputaziorako Berkeleyko Azpiegitura Irekia</string>
<string name="about_copyright">\u00A9 2003–2018 Kaliforniako Unibertsitatea Berkeleyn.</string>
<string name="about_copyright_reserved">Eskubide guztiak erreserbatuta.</string>
<string name="about_credits">Eskerrik asko Max Planck-en Grabitazioaren Fisikako Institutuari, IBM Korporazioari eta HTC
Korporazioari beraien laguntzagatik.
......@@ -388,6 +387,5 @@ aplikazioa hemendik: %2$s
<!--first parameter: device manufacturer, second: URL-->
<string name="social_invite_content_url_google">https://play.google.com/store/apps/details?id=edu.berkeley.boinc
</string>
<string name="social_invite_content_url_amazon">http://www.amazon.com/gp/mas/dl/android?p=edu.berkeley.boinc
</string>
<string name="social_invite_content_url_amazon">https://www.amazon.com/gp/product/B00DCCGLAG</string>
</resources>
......@@ -362,7 +362,6 @@
<string name="about_name">BOINC</string>
<string name="about_version">Version</string>
<string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
<string name="about_copyright">\u00A9 2003–2018 Université de Californie, Berkeley.</string>
<string name="about_copyright_reserved">Tous droits réservés.</string>
<string name="about_credits">Merci à l\'Institut de Physique Gravitationnelle Max Planck
et aux entreprises IBM et HTC pour leur soutien.
......
......@@ -346,7 +346,6 @@ Nerekomenduojama keisti šios reikšmės.</string>
<string name="about_name">BOINC</string>
<string name="about_version">Versija</string>
<string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
<string name="about_copyright">\u00A9 2003–2018 University of California, Berkeley.</string>
<string name="about_copyright_reserved">Visos teisės saugomos</string>
<string name="about_credits">Dėkojame Max Planck Institute for Gravitational Physics, IBM Corporation ir HTC
Corporation už jų pagalbą.
......
......@@ -341,7 +341,6 @@
<string name="about_name">BOINC</string>
<string name="about_version">Versie</string>
<string name="about_name_long">Berkeley Open Infrastructure for Network Computing</string>
<string name="about_copyright">\u00A9 2003–2018 University of California, Berkeley.</string>
<string name="about_copyright_reserved">Alle rechten voorbehouden.</string>
<string name="about_credits">Met dank aan het Max Planck Instituut voor Gravitationele Natuurkunde, IBM Corporation en HTC Corporation voor hun steun.</string>
<!--notice notification e.g. New notice from SETI@HOME OR 3 new notices-->
......
......@@ -341,7 +341,6 @@
<string name="about_name">BOINC</string>
<string name="about_version">Версия</string>
<string name="about_name_long">BOINC - Berkeley Open Infrastructure for Network Computing\nОткрытая Инфраструктура для Распределенных Вычислений университета Беркли</string>
<string name="about_copyright">\u00A9 2003–2018 Калифорнийский университет, Беркли.</string>
<string name="about_copyright_reserved">Все права защищены.</string>
<string name="about_credits">Спасибо за поддержку Институту гравитационной физики Макса Планка, Корпорации IBM и Корпорации HTC.</string>
<!--notice notification e.g. New notice from SETI@HOME OR 3 new notices-->
......
......@@ -349,7 +349,6 @@
<string name="about_version">Verzia</string>
<string name="about_name_long">(Otvorená infraštruktúra pre sieťové výpočty z Berkeley)
(Berkeley Open Infrastructure for Network Computing)</string>
<string name="about_copyright">\u00A9 2003–2018 University of California, Berkeley.</string>
<string name="about_copyright_reserved">Všetky práva vyhradené.</string>
<string name="about_credits">Vďaka Inštitútu gravitačnej fyziky Maxa Plancka, IBM Corporation a HTC Corporation za ich podporu.</string>
<!--notice notification e.g. New notice from SETI@HOME OR 3 new notices-->
......
......@@ -363,7 +363,6 @@
<string name="about_name">BOINC</string>
<string name="about_version">Версія</string>
<string name="about_name_long">Відкрита інфраструктура для розподілених обчислень університету Берклі</string>
<string name="about_copyright">\u00A9 2003–2018 Каліфорнійський університет, Берклі.</string>
<string name="about_copyright_reserved">Всі права захищені.</string>
<string name="about_credits">Дякуємо Max Planck Institute for Gravitational Physics, IBM Corporation та HTC
Corporation за їх підтримку.
......
......@@ -343,7 +343,6 @@
<string name="about_name">BOINC</string>
<string name="about_version">版本</string>
<string name="about_name_long">柏克萊開放式網路運算平台</string>
<string name="about_copyright">\u00A9 2003–2018 美國加州大學柏克萊分校</string>
<string name="about_copyright_reserved">All Rights Reserved.</string>
<string name="about_credits">感謝 Max Planck 引力物理研究所,IBM 公司和 HTC 公司的幫助</string>
<!--notice notification e.g. New notice from SETI@HOME OR 3 new notices-->
......
......@@ -25,6 +25,7 @@
<string name="client_config" translatable="false">cc_config.xml</string>
<string name="auth_file_name" translatable="false">gui_rpc_auth.cfg</string>
<string name="all_projects_list" translatable="false">all_projects_list.xml</string>
<string name="nomedia" translatable="false">nomedia</string>
<string name="global_prefs_override" translatable="false">global_prefs_override.xml</string>
<string name="assets_dir_arm64" translatable="false">arm64-v8a/</string>
<string name="assets_dir_arm" translatable="false">armeabi-v7a/</string>
......
......@@ -116,7 +116,7 @@ Vagrant.configure("2") do |config|
apt-get --assume-yes update
apt-get --assume-yes dist-upgrade -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef --allow-downgrades --allow-remove-essential --allow-change-held-packages
apt-get --assume-yes install lubuntu-core virtualbox-guest-x11
apt-get --assume-yes install ubuntu-make git automake libtool pkg-config
apt-get --assume-yes install ubuntu-make git automake libtool pkg-config unzip
update-locale LC_ALL=en_US.UTF-8
SHELL
......@@ -127,8 +127,6 @@ Vagrant.configure("2") do |config|
umake --verbose android android-studio --accept-license $HOME/Android/Android-Studio
printf "\n# umake fix-up\nexport ANDROID_HOME=\$HOME/Android/Sdk\n" >> $HOME/.profile
umake --verbose android android-sdk --accept-license $HOME/Android/Sdk
printf "\n# umake fix-up\nexport NDK_ROOT=\$HOME/Android/Ndk\n" >> $HOME/.profile
umake --verbose android android-ndk --accept-license $HOME/Android/Ndk
yes | $HOME/Android/Sdk/tools/bin/sdkmanager --update
yes | $HOME/Android/Sdk/tools/bin/sdkmanager "extras;android;m2repository" "extras;google;m2repository"
mkdir $HOME/Desktop
......@@ -141,21 +139,12 @@ Vagrant.configure("2") do |config|
s.name = "Cloning BOINC repository and configuring toolchain..."
s.privileged = false
s.inline = <<-SHELL
export OPENSSL_VERSION=1.0.2q
export CURL_VERSION=7.62.0
git clone https://github.com/BOINC/boinc.git $HOME/BOINC
export BUILD_TOOLS=`sed -n "s/.*buildToolsVersion\\s*\\"\\(.*\\)\\"/\\1/p" $HOME/BOINC/android/BOINC/app/build.gradle`
export COMPILE_SDK=`sed -n "s/.*compileSdkVersion\\s*\\(\\d*\\)/\\1/p" $HOME/BOINC/android/BOINC/app/build.gradle`
yes | $HOME/Android/Sdk/tools/bin/sdkmanager "build-tools;${BUILD_TOOLS}"
yes | $HOME/Android/Sdk/tools/bin/sdkmanager "platforms;android-${COMPILE_SDK}"
printf "\n# Build toolchains\nexport ANDROID_TC=\$HOME/Android/Toolchains\n" >> $HOME/.profile
mkdir $HOME/3rdParty
wget -O /tmp/openssl.tgz https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
tar xzf /tmp/openssl.tgz --directory=$HOME/3rdParty
printf "\n# OpenSSL sources\nexport OPENSSL_SRC=\$HOME/3rdParty/openssl-${OPENSSL_VERSION}\n" >> $HOME/.profile
wget -O /tmp/curl.tgz https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz
tar xzf /tmp/curl.tgz --directory=$HOME/3rdParty
printf "\n# cURL sources\nexport CURL_SRC=\$HOME/3rdParty/curl-${CURL_VERSION}\n" >> $HOME/.profile
SHELL
end
......
......@@ -91,7 +91,7 @@ fi
if [ "x$build_dir" != "x" ]; then
if isPathCanonical "$build_dir" && [ "$build_dir" != "/" ]; then
PREFIX="$build_dir"
BUILD_DIR="$build_dir"
else
echo "build_dir must be an absolute path without ./ or ../ in it"
exit 1
......
......@@ -7,19 +7,7 @@ set -e
# Script to compile everything BOINC needs for Android
./build_androidtc_arm.sh
./build_androidtc_arm64.sh
./build_androidtc_x86.sh
./build_androidtc_x86_64.sh
./build_openssl_arm.sh
./build_openssl_arm64.sh
./build_openssl_x86.sh
./build_openssl_x86_64.sh
./build_curl_arm.sh
./build_curl_arm64.sh
./build_curl_x86.sh
./build_curl_x86_64.sh
./build_boinc_arm.sh
./build_boinc_arm64.sh
./build_boinc_x86.sh
./build_boinc_x86_64.sh
./buildAndroidBOINC-CI.sh --cache_dir $ANDROID_TC --build_dir $HOME/3rdParty --arch arm
./buildAndroidBOINC-CI.sh --cache_dir $ANDROID_TC --build_dir $HOME/3rdParty --arch arm64
./buildAndroidBOINC-CI.sh --cache_dir $ANDROID_TC --build_dir $HOME/3rdParty --arch x86
./buildAndroidBOINC-CI.sh --cache_dir $ANDROID_TC --build_dir $HOME/3rdParty --arch x86_64
......@@ -103,10 +103,22 @@ void boinc_checkpoint_completed_() {
boinc_checkpoint_completed();
}
void boinc_begin_critical_section_() {
boinc_begin_critical_section();
}
void boinc_end_critical_section_() {
boinc_end_critical_section();
}
void boinc_fraction_done_(double* d) {
boinc_fraction_done(*d);
}
void boinc_get_fraction_done_(double* d) {
*d = boinc_get_fraction_done();
}
void boinc_wu_cpu_time_(double* d_out) {
boinc_wu_cpu_time(*d_out);
}
......
......@@ -61,7 +61,7 @@ char MacPListData[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
/* checks for an OS error, reports the line number and returns */
#define CHECK_OSERR(e) {\
if (e) {\
fprintf(stderr,"MacOS Error %d occured in %s line %d\n",e,__FILE__,__LINE__);\
fprintf(stderr,"MacOS Error %d occurred in %s line %d\n",e,__FILE__,__LINE__);\
return(e); } }
// Adds the specified resource to the file given as an argument.
......
......@@ -60,7 +60,7 @@ environment:
matrix:
- TOOLCHAIN_VERSION: 12.0
solution_name: win_build\boinc_vs2013.sln
depends_git_path: http://boinc.berkeley.edu/git/boinc_depends_win_vs2013.git
depends_git_path: https://boinc.berkeley.edu/git/boinc_depends_win_vs2013.git
depends_path: C:\projects\boinc_depends_win_vs2013
BINTRAY_API_KEY:
secure: kZI9k0Kh2bFSCbXfkz+J16fGNAee1ToRMl10D8QPQsKpC2PqhF/uVMpd6gRC+OSI
......@@ -71,6 +71,7 @@ cache:
before_build:
- call win_build\load_dependencies.bat %depends_git_path% %depends_path% %platform% %configuration%
- if %TOOLCHAIN_VERSION%==12.0 call "%VS120COMNTOOLS%\vsvars32.bat"
- rmdir /S /Q %localappdata%\Microsoft\VisualStudio\%TOOLCHAIN_VERSION%\ComponentModelCache
build_script:
- devenv %solution_name% /Build "%configuration%|%platform%"
......
......@@ -46,6 +46,7 @@ void ACCOUNT_IN::parse(XML_PARSER& xp) {
server_cookie = "";
ldap_auth = false;
server_assigned_cookie = false;
consented_to_terms = false;
while (!xp.get_tag()) {
if (xp.parse_string("url", url)) continue;
......@@ -56,6 +57,7 @@ void ACCOUNT_IN::parse(XML_PARSER& xp) {
if (xp.parse_string("server_cookie", server_cookie)) continue;
if (xp.parse_bool("ldap_auth", ldap_auth)) continue;
if (xp.parse_bool("server_assigned_cookie", server_assigned_cookie)) continue;
if (xp.parse_bool("consented_to_terms", consented_to_terms)) continue;
}
canonicalize_master_url(url);
}
......@@ -152,7 +154,7 @@ void LOOKUP_ACCOUNT_OP::handle_reply(int http_op_retval) {
}
}
int CREATE_ACCOUNT_OP::do_rpc(ACCOUNT_IN& ai) {
int CREATE_ACCOUNT_OP::do_rpc(ACCOUNT_IN& ai, string rpc_client_name) {
int retval;
string url;
string parameter;
......@@ -181,6 +183,13 @@ int CREATE_ACCOUNT_OP::do_rpc(ACCOUNT_IN& ai) {
escape_url(parameter);
url += parameter;
}
if (ai.consented_to_terms) {
parameter = rpc_client_name;
escape_url(parameter);
url += "&consent_flag=1&source=" + parameter;
}
retval = gui_http->do_rpc(
this, url.c_str(), CREATE_ACCOUNT_FILENAME, false
);
......
......@@ -33,6 +33,7 @@ struct ACCOUNT_IN {
std::string server_cookie;
bool ldap_auth;
bool server_assigned_cookie;
bool consented_to_terms;
void parse(XML_PARSER&);
};
......@@ -72,7 +73,7 @@ struct CREATE_ACCOUNT_OP: public GUI_HTTP_OP {
gui_http = p;
}
virtual ~CREATE_ACCOUNT_OP(){}
int do_rpc(ACCOUNT_IN&);
int do_rpc(ACCOUNT_IN&, std::string rpc_client_name);
virtual void handle_reply(int http_op_retval);
};
......
......@@ -283,6 +283,13 @@ int ACTIVE_TASK::init(RESULT* rp) {
wup = rp->wup;
app_version = rp->avp;
max_elapsed_time = rp->wup->rsc_fpops_bound/rp->avp->flops;
if (max_elapsed_time < MIN_TIME_BOUND) {
msg_printf(wup->project, MSG_INFO,
"Elapsed time limit %f < %f; setting to %f",
max_elapsed_time, MIN_TIME_BOUND, DEFAULT_TIME_BOUND
);
max_elapsed_time = DEFAULT_TIME_BOUND;
}
max_disk_usage = rp->wup->rsc_disk_bound;
max_mem_usage = rp->wup->rsc_memory_bound;
get_slot_dir(slot, slot_dir, sizeof(slot_dir));
......
......@@ -280,7 +280,8 @@ int main(int argc, char** argv) {
char* cmd = next_arg(argc, argv, i);
if (!strcmp(cmd, "--client_version")) {
VERSION_INFO vi;
retval = rpc.exchange_versions(vi);
string rpc_client_name = "boinccmd " BOINC_VERSION_STRING;
retval = rpc.exchange_versions(rpc_client_name, vi);
if (!retval) {
printf("Client version: %d.%d.%d\n", vi.major, vi.minor, vi.release);
}
......
......@@ -624,6 +624,13 @@ int CLIENT_STATE::init() {
// domain_name for Android
//
host_info.get_host_info(true);
// clear the VM extensions disabled flag.
// It's possible that the user enabled them since the last VM failure,
// or that the last failure was specious.
//
host_info.p_vm_extensions_disabled = false;
set_ncpus();
show_host_info();
......
......@@ -380,7 +380,7 @@ struct CLIENT_STATE {
void check_if_need_benchmarks();
bool can_run_cpu_benchmarks();
void start_cpu_benchmarks();
void start_cpu_benchmarks(bool force = false);
bool cpu_benchmarks_poll();
void abort_cpu_benchmarks();
bool cpu_benchmarks_done();
......@@ -624,6 +624,14 @@ extern THREAD throttle_thread;
#define MAX_STARTUP_TIME 10
// if app startup takes longer than this, quit loop
#define MIN_TIME_BOUND 120.
#define DEFAULT_TIME_BOUND (12*3600.)
// if ACTIVE_TASK::max_elapsed_time is < MIN, set it to DEFAULT
// This is a sanity check, so that bad values for
// wup->rsc_fpops_bound or avp->flops won't cause jobs
// to get aborted after a few seconds
// The values are a bit arbitrary.
#define FINISH_FILE_TIMEOUT 300
// if app process exists this long after writing finish file, abort it.
// NOTE: this used to be 10 sec and it wasn't enough,
......
......@@ -236,7 +236,7 @@ DWORD WINAPI win_cpu_benchmarks(LPVOID p) {
}
#endif
void CLIENT_STATE::start_cpu_benchmarks() {
void CLIENT_STATE::start_cpu_benchmarks(bool force) {
int i;
if (benchmarks_running) {
......@@ -246,7 +246,7 @@ void CLIENT_STATE::start_cpu_benchmarks() {
return;
}
if (cc_config.skip_cpu_benchmarks) {
if (cc_config.skip_cpu_benchmarks && !force) {
if (log_flags.benchmark_debug) {