Menu

Configuration

Adri Verhoef

Configuration

There are two ways to configure the programs.

  1. Via the file ~/.wcginitrc
  2. Via the individual programs

We'll discuss these two possiblities now.


Configuring the programs via the file ~/.wcginitrc

To put this to use, you need to supply several variables (and their values, of course) and store these items into the file ~/.wcginitrc.
(That is to say, if you follow the direction WCGINITRC=~/.wcginitrc in each individual program of the WCGtools package. This is where the filename ~/.wcginitrc is determined. If you desire to use a different filename there, then this documentation applies to that different filename.)

wcgformat

For wcgformat there is no special variable to configure.
Nonetheless …
This is a good moment to create the file ~/.wcginitrc and to limit access to it as it may contain vulnerable information:

$ touch ~/.wcginitrc && chmod 600 ~/.wcginitrc

wcglog

For wcglog there are two special variables to configure:

Variable-name Default value Explanation
SEARCHDIRS .BOINC BOINC WCG wcg www tmp This variable indicates the subdirectories to search when trying to locate the logfile
SEARCHNAMS wcgresults results WCG wcg This variable indicates the prefixes of the filename to search when trying to locate the logfile

The final location and name of the logfile is constructed by wcglog from one of the words in each individual value of $SEARCHDIRS and $SEARCHNAMS, so $SEARCHDIRS/$SEARCHNAMS may yield "tmp/wcg" in the end, as an example. The words in each individual value, like e.g. "WCG" and "wcg", are separated by spaces only.

Note: Since wcglog doesn't know the exact location of the logfile, therefore there are two ways to specify the location of the logfile; one way is to specify its path/name on the commandline, the other way is through the configuration, using the variables SEARCHDIRS and SEARCHNAMS. In the latter case, wcglog will add the string ".log" to the end of the name of the logfile.

You could also specify an alternative value of the variable WCGRESULTS here. Its default value is "wcgresults", i.e. the name of the program [wcgresults]. You will only need it if you want to call [wcglog] with the option -i. The variable WCGRESULTS must then point to (the alternative name of) the program [wcgresults] (from the page WCGtools). If the program [wcgresults] is not in your $PATH, you must specify the full path of [wcgresults].

Variable-name Default value Explanation
WCGRESULTS wcgresults The name of the program wcgresults (from WCGtools) in your $PATH

wcgmembercmp

For wcgmembercmp there are two special variables to configure:

Variable-name Default value Explanation
USERNAME (none) This variable indicates the name of your account with which you're crunching
TEAMNAME (none) This variable indicates the name of the team in which you're participating

wcgresults

For wcgresults there are at least two special variables to configure:

Variable-name Default value Explanation
MEMBER (none) This variable is used to specify the name of your account with which you're crunching
VERIFY (none) This variable is used to specify your verificationcode

You will need these variables if you want to download data from your results from the BOINC-server of World Community Grid.

Other variables are:

Variable-name Default value Explanation
RETRY_EXCLUDING_PATTERN (empty) This variable defines a pattern pertaining to option -x; its value says to not retry the filenames that adhere to the specified pattern. (An empty pattern will allow retrying any filename.)
RETRY_SLEEPING_TIMER 90 This variable pertains to option -x, too; it defines the number of seconds between subsequent iterations of retries; one iteration handles all filenames (all files that are in transfer) once

Some examples when using RETRY_EXCLUDING_PATTERN are:
Example 1: a value of "\.7z$" would skip retrying a file when its name ends in ".7z".
Example 2: a value of "^ARP1_|\.job$" would skip any filename that begins with "ARP1_" or ends in ".job".
Example 3: a value of "^(OPN[G1]_)|\.txt$" would skip retrying a file when its name begins with "OPNG_" or "OPN1_" or ends in ".txt".

wcgstats

For wcgstats there are at least two special variables to configure, in addition you can also add variables for your device(s):

Variable-name Default value Explanation
MAILADDR (none) This variable is used to specify your e-mailaddress
PASSWORD (none) This variable is used to specify the password of your account
DEVICE_ID[1] (none) This variable indicates the numerical ID of your first device
DEVICENAME[1] (none) This variable indicates the name of your first device
DEVICES 0 This variable indicates the number of devices that you have configured

Note: Once you have configured the variables MAILADDR and PASSWORD successfully, you'll be able to generate a list of your devices, like so as an example:

$ wcgstats -ZZZ
DEVICES=0; let n=0; # Start counting the number of devices.
let n++; DEVICE_ID[$n]=1234567; DEVICENAME[$n]="desktop"
let n++; DEVICE_ID[$n]=2345678; DEVICENAME[$n]="laptop"
let n++; DEVICE_ID[$n]=3456789; DEVICENAME[$n]="smartphone"
DEVICES=$n  # The total number of devices.

This will also give you the opportunity to add the output to your configuration file:

$ wcgstats -ZZZ >> ~/.wcginitrc

Note that the special variable-names are in capitals.

In the end, the contents of your file ~/.wcginitrc may look something like this:

SEARCHDIRS="BOINC data logdir misc"
SEARCHNAMS="WCG wcg results"
USERNAME=my_username
TEAMNAME=my_teamname
MEMBER=my_username
VERIFY=c0de1234567890987654321ed0c
MAILADDR=my_address@example.com
PASSWORD=Impossible2Guess
DEVICES=0; let n=0; # Start counting the number of devices.
let n++; DEVICE_ID[$n]=1234567; DEVICENAME[$n]="desktop"
let n++; DEVICE_ID[$n]=2345678; DEVICENAME[$n]="laptop"
let n++; DEVICE_ID[$n]=3456789; DEVICENAME[$n]="smartphone"
DEVICES=$n  # The total number of devices.

Configuring the programs individually

In this case you will have to edit each individual program that you want to put to good use.
There is a section designated by the word "CONFIGURE" surrounded by hashtags in each program where you can edit the values of the variables.
It might also be a good idea to limit access to the individual programs as they may contain vulnerable information, e.g. like so:

$ for s in format log membercmp results stats; do f=~/bin/wcg$s; [ -f $f ] && chmod 700 $f; done

After configuring each individual program there is no need to configure it again when you download a newer version of the program: each executable program that needs configuring has an option -U to update the old version of the program to the new version.


More than one account

If you have more than one account to administer, then there are ways to take care of this when using variables in the configuration.
Probably best practice is to number your other accounts 1, 2, 3, etc., so that you can use the options -u1, -u2, -u3, etc. for the programs [wcglog], [wcgresults] and [wcgstats]. (For [wcgmembercmp] you'll have to use the full name of other members' accountnames.)

wcglog

The name of the logfile for other accounts corresponds with the value of the option -u (see also option -u of [wcgresults]), so it is most useful to tune the names of the logfiles used bywcgresults and wcglog to each other. As mentioned above, wcglog uses two special variables.

wcgresults

If you number your other accounts 1, 2, 3, etc., you can use the names of the variables MEMBER and VERIFY and append a 1, 2, 3, etc.:

MEMBER1="your_other_account"
VERIFY1="some_other_verificationcode"

wcgstats

If you number your other accounts 1, 2, 3, etc., you can use the names of the variables MAILADDR, PASSWORD, DEVICE_ID, DEVICENAME and DEVICES and append a 1, 2, 3, etc.:

MAILADDR1="e-mailaddress_of_account_1"
PASSWORD1="password_for_account_1"

Note: once you have configured the variables MAILADDR1 and PASSWORD1 for account 1 successfully, you'll be able to generate a list of devices for that account, like so: wcgstats -u1 -ZZZ. The output could look something like this:

DEVICES1=0; let n=0;
let n++; DEVICE_ID1[$n]=2345678; DEVICENAME1[$n]="computer_of_account_1"
DEVICES1=$n

You can add that to the configuration then.


Related

Blog: 2022/11/recent-revisions-for-wcgresults
Wiki: wcglog
Wiki: wcgmembercmp
Wiki: wcgresults
Wiki: wcgstats

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.