ports/79348: net/boinc-client: update port to 4.67, now with GUI support
J.R. Oldroyd
fbsd at opal.com
Wed Mar 30 02:00:15 UTC 2005
>Number: 79348
>Category: ports
>Synopsis: net/boinc-client: update port to 4.67, now with GUI support
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Mar 30 02:00:12 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: J.R. Oldroyd
>Release: FreeBSD 6.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD linwhf.opal.com 6.0-CURRENT FreeBSD 6.0-CURRENT #77: Tue Mar 29 12:02:15 EST 2005 jr at linwhf.opal.com:/usr/src-current/sys/i386/compile/LINWHF i386
>Description:
Update port to BOINC 4.67.
The BOINC versions 4.19/20/21 are now relegated to bug fixes only.
New development is in the 4.65/66/67 track. I am therefore switching
the port to this track.
This version supports the GUI. Details of additional changes at:
http://opal.com/boinc/
Note that there may problems with the GUI on FreeBSD 4.x. If so,
compile with "make -DWITHOUT_X11" to disable the GUI.
Notes to committer:
Files deleted:
boinc-client
boinc-client.1
boinc.sh-4.x
extra-patch-api::boinc_api.C
extra-patch-client::gui_rpc_server.C
extra-patch-client::net_xfer.C
patch-api::boinc_gl.h
patch-client::gui_rpc_server.C
patch-client::net_xfer.C
Files added:
alt-patch-api::boinc_api.C
boinc.1
extra-patch-clientgui::MainDocument.cpp
extra-patch-clientgui::MainFrame.cpp
extra-patch-clientgui::ViewProjects.cpp
extra-patch-clientgui::ViewResources.cpp
extra-patch-clientgui::ViewTransfers.cpp
extra-patch-clientgui::ViewWork.cpp
extra-patch-clientgui::stdwx.h
extra-patch-lib::acct_mgr_client.C
extra-patch-lib::gui_rpc_client.C
extra-patch-lib::network.h
extra-patch-lib::parse.C
extra-patch-zip::boinc_zip.cpp
patch-api::boinc_api.C
patch-clientgui::BOINCGUIApp.cpp
rc::boinc.sh
>How-To-Repeat:
>Fix:
diff -ruN /usr/ports/net/boinc-client/Makefile net/boinc-client/Makefile
--- /usr/ports/net/boinc-client/Makefile Mon Jan 31 15:15:10 2005
+++ net/boinc-client/Makefile Tue Mar 29 17:18:29 2005
@@ -6,113 +6,130 @@
#
PORTNAME= boinc-client
-PORTVERSION= 4.19
+PORTVERSION= 4.67.20050320
CATEGORIES= net
MASTER_SITES= http://boinc.berkeley.edu/source/nightly/
-DISTNAME= boinc_public-cvs-2005-01-26
+DISTNAME= boinc-cvs-2005-03-20
MAINTAINER= fbsd at opal.com
COMMENT= Berkeley Open Infrastructure for Network Computing client
+.include <bsd.port.pre.mk>
+
+# Build with "make -DWITHOUT_X11" if you don't want the boincmgr
+# GUI management interface or the "screensaver" status displays
+# from any of the client applications.
+#
+# Defining WITHOUT_X11 removes the dependencies on the X11 libs
+# and the wxgtk2 toolkit and jpeg graphics lib.
+
+.if !defined(WITHOUT_X11)
+LIB_DEPENDS= iconv:${PORTSDIR}/converters/libiconv \
+ wx_gtk2:${PORTSDIR}/x11-toolkits/wxgtk2 \
+ jpeg:${PORTSDIR}/graphics/jpeg
+USE_XLIBS= yes
+.endif
+
+USE_AUTOMAKE_VER= 19
+USE_AUTOCONF_VER= 259
+USE_AUTOHEADER_VER= 259
+USE_LIBTOOL_VER= 15
+
USE_REINPLACE= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-server
-CONFIGURE_ENV= CPPFLAGS=-I${X11BASE}/include CXXFLAGS=-I${X11BASE}/include
+.if defined(WITHOUT_X11)
+CONFIGURE_ARGS+= --with-wx-config=false
+.endif
+CONFIGURE_ENV= CPPFLAGS=-I${X11BASE}/include CXXFLAGS="-I${X11BASE}/include -I${LOCALBASE}/include"
-WRKSRC= ${WRKDIR}/boinc_public
+WRKSRC= ${WRKDIR}/boinc
PKGINSTALL= ${WRKDIR}/pkg-install
PKGPLIST= ${WRKDIR}/pkg-plist
-MAN1= boinc-client.1
+MAN1= boinc.1
+.if !defined(WITHOUT_X11)
+MLINKS= boinc.1 boincmgr.1
+.endif
-FIND_BOINC_BINARY=(cd ${WRKDIR}/boinc_public/client; make -V CLIENT_BIN_FILENAME)
+FIND_BOINC_BINARY=(cd ${WRKSRC}/client; make -V CLIENT_BIN_FILENAME)
+FIND_BOINCMGR_BINARY=(cd ${WRKSRC}/client; make -V CLIENT_GUI_BIN_FILENAME)
+BOINC_BINARY= boinc-client
BOINC_USER= boinc
BOINC_GROUP= nobody
BOINC_HOME= /var/db/boinc
-BOINC_DATADIR= ${PREFIX}/boinc
-
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} < 500000
-EXTRA_PATCHES+= ${FILESDIR}/extra-patch-api::boinc_api.C
-.endif
-post-patch:
.if ${OSVERSION} < 500000
- ${PATCH} -d ${WRKSRC} <${FILESDIR}/extra-patch-client::gui_rpc_server.C
- ${PATCH} -d ${WRKSRC} <${FILESDIR}/extra-patch-client::net_xfer.C
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::MainDocument.cpp
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::MainFrame.cpp
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewProjects.cpp
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewResources.cpp
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewTransfers.cpp
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewWork.cpp
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::stdwx.h
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::acct_mgr_client.C
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::network.h
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::gui_rpc_client.C
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::parse.C
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-zip::boinc_zip.cpp
.endif
- ${CHMOD} +x ${WRKDIR}/boinc_public/configure
-do-build:
- @(cd ${WRKDIR}/boinc_public/client; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
- @(cd ${WRKDIR}/boinc_public/api; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
- @(cd ${WRKDIR}/boinc_public/lib; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
+pre-configure:
+ cd ${WRKSRC}; ${ACLOCAL} -I ${LOCALBASE}/share/libtool${USE_LIBTOOL_VER}/libltdl -I m4
post-build:
- BBIN=`${FIND_BOINC_BINARY}`; \
- ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
- -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \
+ ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \
-e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \
-e "s:%%BOINC_USER%%:${BOINC_USER}:g" \
-e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \
- < ${FILESDIR}/boinc-client > ${WRKDIR}/boinc-client; \
- ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
- -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \
+ -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \
+ < ${FILESDIR}/boinc.sh > ${WRKDIR}/boinc.sh
+ ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \
-e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \
-e "s:%%BOINC_USER%%:${BOINC_USER}:g" \
-e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \
- < ${FILESDIR}/boinc-client.1 > ${WRKDIR}/boinc-client.1; \
- ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
- -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \
+ -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \
+ < ${FILESDIR}/boinc.1 > ${WRKDIR}/boinc.1
+ ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \
-e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \
-e "s:%%BOINC_USER%%:${BOINC_USER}:g" \
-e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \
+ -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \
< ${PKGDIR}/pkg-install > ${WRKDIR}/pkg-install
-.if ${OSVERSION} >= 500000
- BBIN=`${FIND_BOINC_BINARY}`; \
- ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
- -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \
- -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \
- -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \
- -e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \
- < ${FILESDIR}/boinc.sh > ${WRKDIR}/boinc.sh
-.else
- BBIN=`${FIND_BOINC_BINARY}`; \
- ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
- -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \
+ ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \
-e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \
-e "s:%%BOINC_USER%%:${BOINC_USER}:g" \
-e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \
- < ${FILESDIR}/boinc.sh-4.x > ${WRKDIR}/boinc.sh
-.endif
+ -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \
+ < ${FILESDIR}/rc::boinc.sh > ${WRKDIR}/rc::boinc.sh
do-install:
- ${INSTALL_SCRIPT} ${WRKDIR}/boinc-client ${PREFIX}/bin
- ${INSTALL_MAN} ${WRKDIR}/boinc-client.1 ${PREFIX}/man/man1
- ${MKDIR} ${PREFIX}/boinc/client
- ${INSTALL_PROGRAM} ${WRKDIR}/boinc_public/client/`${FIND_BOINC_BINARY}` ${PREFIX}/boinc/client
- ${MKDIR} ${PREFIX}/boinc/lib
- ${INSTALL} ${WRKDIR}/boinc_public/lib/*.h ${PREFIX}/boinc/lib
- ${INSTALL} ${WRKDIR}/boinc_public/lib/libboinc.a ${PREFIX}/boinc/lib
- ${INSTALL} ${WRKDIR}/boinc_public/RSAEuro/source/librsaeuro.a ${PREFIX}/boinc/lib
- ${MKDIR} ${PREFIX}/boinc/api
- ${INSTALL} ${WRKDIR}/boinc_public/api/*.h ${PREFIX}/boinc/api
- ${TOUCH} ${PREFIX}/boinc/api/Makefile.am
- ${TOUCH} ${PREFIX}/boinc/lib/Makefile.am
- ${TOUCH} ${PREFIX}/boinc/Makefile.am
- ${MKDIR} ${PREFIX}/boinc/projects
- ${MKDIR} ${PREFIX}/etc/rc.d
- ${INSTALL_SCRIPT} ${WRKDIR}/boinc.sh ${PREFIX}/etc/rc.d
- ${CAT} ${PKGMESSAGE}
+ ${MKDIR} ${PREFIX}/lib/boinc
+ ${INSTALL_PROGRAM} ${WRKSRC}/client/`${FIND_BOINC_BINARY}` ${PREFIX}/lib/boinc/${BOINC_BINARY}
+.if !defined(WITHOUT_X11)
+ ${INSTALL_PROGRAM} ${WRKSRC}/clientgui/`${FIND_BOINCMGR_BINARY}` ${PREFIX}/bin
+.endif
+ ${MKDIR} ${PREFIX}/include/BOINC
+ ${INSTALL} ${WRKSRC}/api/*.h ${PREFIX}/include/BOINC
+ ${INSTALL} ${WRKSRC}/lib/*.h ${PREFIX}/include/BOINC
+ ${INSTALL} ${WRKSRC}/zip/*.h ${PREFIX}/include/BOINC
+ ${INSTALL} ${WRKSRC}/api/*.a ${PREFIX}/lib
+ ${INSTALL} ${WRKSRC}/lib/*.a ${PREFIX}/lib
+ ${INSTALL} ${WRKSRC}/zip/*.a ${PREFIX}/lib
+ ${INSTALL} ${WRKSRC}/RSAEuro/source/librsaeuro.a ${PREFIX}/lib
post-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/boinc.sh ${PREFIX}/bin/boinc
+ ${INSTALL_MAN} ${WRKDIR}/boinc.1 ${PREFIX}/man/man1
+ ${MKDIR} ${PREFIX}/etc/rc.d
+ ${INSTALL_SCRIPT} ${WRKDIR}/rc::boinc.sh ${PREFIX}/etc/rc.d/boinc.sh
${REINPLACE_CMD} \
- -e "s:%%BOINC_BINARY%%:`${FIND_BOINC_BINARY}`:g" \
+ -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \
-e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \
-e "s:%%BOINC_USER%%:${BOINC_USER}:g" \
${TMPPLIST}
+ ${CAT} ${PKGMESSAGE}
@${SETENV} ${SCRIPTS_ENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.include <bsd.port.post.mk>
diff -ruN /usr/ports/net/boinc-client/distinfo net/boinc-client/distinfo
--- /usr/ports/net/boinc-client/distinfo Mon Jan 31 15:15:10 2005
+++ net/boinc-client/distinfo Sun Mar 20 20:37:57 2005
@@ -1,2 +1,2 @@
-MD5 (boinc_public-cvs-2005-01-26.tar.gz) = 59c8ca1810bd83f58d57ea54c8c27615
-SIZE (boinc_public-cvs-2004-01-26.tar.gz) = 3845012
+MD5 (boinc-cvs-2005-03-20.tar.gz) = 48ff80bf1839af0a744560f1eb4a858e
+SIZE (boinc-cvs-2004-03-20.tar.gz) = 4755507
diff -ruN /usr/ports/net/boinc-client/files/alt-patch-api::boinc_api.C net/boinc-client/files/alt-patch-api::boinc_api.C
--- /usr/ports/net/boinc-client/files/alt-patch-api::boinc_api.C Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/alt-patch-api::boinc_api.C Mon Mar 21 12:28:55 2005
@@ -0,0 +1,49 @@
+--- api/boinc_api.C.orig Sat Mar 19 16:39:16 2005
++++ api/boinc_api.C Mon Mar 21 11:08:09 2005
+@@ -59,7 +59,7 @@
+ static APP_INIT_DATA aid;
+ static FILE_LOCK file_lock;
+ APP_CLIENT_SHM* app_client_shm = 0;
+-static volatile double time_until_checkpoint;
++static volatile int time_until_checkpoint;
+ // time until enable checkpoint
+ static volatile double time_until_fraction_done_update;
+ // time until report fraction done to core client
+@@ -79,7 +79,7 @@
+ static volatile int nrunning_ticks = 0;
+ #endif
+
+-#define TIMER_PERIOD 1.0
++#define TIMER_PERIOD 1
+ // period of API timer
+ // This determines the resolution of fraction done and CPU time reporting
+ // to the core client, and of checkpoint enabling.
+@@ -164,7 +164,7 @@
+ // the following may not be needed, but do it anyway
+ //
+ fraction_done = -1;
+- time_until_checkpoint = aid.checkpoint_period;
++ time_until_checkpoint = (int) aid.checkpoint_period;
+ last_checkpoint_cpu_time = aid.wu_cpu_time;
+ time_until_fraction_done_update = aid.fraction_done_update_period;
+ last_wu_cpu_time = aid.wu_cpu_time;
+@@ -548,8 +548,8 @@
+ perror("boinc set_worker_timer() sigaction");
+ return retval;
+ }
+- value.it_value.tv_sec = (int)TIMER_PERIOD;
+- value.it_value.tv_usec = ((int)(TIMER_PERIOD*1000000))%1000000;
++ value.it_value.tv_sec = TIMER_PERIOD;
++ value.it_value.tv_usec = 0;
+ value.it_interval = value.it_value;
+ retval = setitimer(ITIMER_REAL, &value, NULL);
+ if (retval) {
+@@ -616,7 +616,7 @@
+ last_checkpoint_cpu_time = last_wu_cpu_time;
+ update_app_progress(last_checkpoint_cpu_time, last_checkpoint_cpu_time, 0);
+ ready_to_checkpoint = false;
+- time_until_checkpoint = aid.checkpoint_period;
++ time_until_checkpoint = (int) aid.checkpoint_period;
+
+ return 0;
+ }
diff -ruN /usr/ports/net/boinc-client/files/boinc-client net/boinc-client/files/boinc-client
--- /usr/ports/net/boinc-client/files/boinc-client Sat Oct 16 15:29:30 2004
+++ net/boinc-client/files/boinc-client Wed Dec 31 19:00:00 1969
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-args="$@"
-
-exec idprio 31 su - %%BOINC_USER%% -c "%%BOINC_DATADIR%%/client/%%BOINC_BINARY%% $args"
-
diff -ruN /usr/ports/net/boinc-client/files/boinc-client.1 net/boinc-client/files/boinc-client.1
--- /usr/ports/net/boinc-client/files/boinc-client.1 Sat Oct 16 15:29:30 2004
+++ net/boinc-client/files/boinc-client.1 Wed Dec 31 19:00:00 1969
@@ -1,170 +0,0 @@
-.TH boinc-client 1 "October 1, 2004" "" "BOINC"
-.SH NAME
-boinc-client \- client for Berkeley Open Infrastructure for Network Computing
-.SH SYNOPSIS
-boinc-client [ options ]
-.PP
-sh /usr/local/etc/rc.d/boinc.sh start|stop|restart|status
-.SH DESCRIPTION
-.I boinc-client
-is the client for the Berkeley Open Infrastructure for Network
-Computing (BOINC) service. It is used by projects such as SETI at HOME
-and ClimatePredictor to offer your spare CPU cycles to such projects.
-BOINC allows you to configure one or more projects to which you offer
-your spare CPU cycles for their computations.
-.PP
-BOINC is a scheduler; you configure projects under BOINC and BOINC
-then runs each one according to what percentage of time you have
-specified for that project.
-When a project is run, BOINC runs the project's client program to
-download computational work units from the project, then perform the
-work unit computation, and finally upload the results back to the
-project. If no work is available for one of your projects, BOINC
-will run another of your projects.
-.PP
-BOINC runs project clients at low priority, with a
-.IR nice (1)
-value of 19, to ensure that as soon as you need your computer for
-any other work, BOINC projects stop so that you are not delayed
-by them.
-.PP
-After choosing which projects to participate in, you must register
-with each on the project's website. You can find out about BOINC
-projects on the BOINC website. Upon registering with a project,
-you will receive an account ID for the project.
-Run
-.I "boinc-client -attach_project"
-to add new projects to your BOINC configuration using the project
-URL and your account ID.
-Depending on what operating system platforms the project supports
-you may be able to immediately start the project or you may need to
-download the project client's source code and compile it. For
-further information, see the BOINC web site and the project's own
-website. Some projects are already available as FreeBSD ports
-(e.g., SETI at HOME in port astro/boinc-setiathome). Not all projects
-support FreeBSD and some do not make their client's source code
-available. In such cases, you will not be able to participate in
-that project from FreeBSD.
-.PP
-Running
-.I boinc-client
-with no arguments starts the service and any configured projects.
-.PP
-You can edit both BOINC general preferences and project-specific
-preferences on the website of any BOINC projects which you are
-registered with. Preferences will take effect next time BOINC
-contacts that project's server, e.g., to download more work or
-to upload results.
-.PP
-.I /usr/local/etc/rc.d/boinc.sh
-script is run automatically at system boot time.
-The
-.I /etc/rc.conf
-variable
-.I boinc_enable
-must be set to
-.I boinc_enable="YES"
-for this script to start BOINC at boot time.
-.PP
-The user
-.I %%BOINC_USER%%
-needs to exist; all invocations of boinc-client will run as this
-user. If you want users other than root to be able to start
-BOINC, set a password on this account so that anyone can run
-.I boinc_client
-and supply the password.
-.PP
-IMPORTANT NOTE: The project clients are programs running
-on your computer with full access (as the user
-.IR %%BOINC_USER%% )
-to all files and resources of your computer. Before running any
-project client, you should establish for yourself that the
-program is trustworthy and will not abuse your computer. The
-BOINC scheduler does not restrict clients in any way other than to
-run them as the user
-.IR %%BOINC_USER%% .
-.SH OPTIONS
-The command-line client has the following command-line options:
-.IP -attach_project
-Attach this computer to a new project.
-You must have an account with that project.
-You will be asked for the project URL and the account ID.
-.IP -show_projects
-Print a list of projects to which this computer is attached.
-.IP -detach_project URL
-Detach this computer from a project.
-.IP -reset_project URL
-Clear pending work for a project.
-Use this if there is a problem that is preventing
-your computer from working.
-.IP -update_prefs URL
-Contact a project's server to obtain new preferences.
-This will also report completed results
-and get new work if needed.
-.IP -return_results_immediately
-Contact scheduler as soon as any result done.
-.IP -run_cpu_benchmarks
-Run CPU benchmarks.
-Do this if you have modified your computer's hardware.
-.IP -check_all_logins
-If 'run if user active' preference is off,
-check for input activity on all current logins;
-default is to check only local mouse/keyboard
-.IP -exit_when_idle
-Get, process and report work, then exit.
-.IP -allow_remote_gui_rpc
-Allow GUI RPCs from remote hosts
-.IP -help
-Show client options.
-.IP -version
-Show client version.
-.SH "ENVIRONMENT VARIABLES"
-The command-line client has the following optional environment variables:
-.IP HTTP_PROXY
-URL of HTTP proxy
-.IP HTTP_USER_NAME
-User name for proxy authentication
-.IP HTTP_USER_PASSWD
-Password for proxy authentication
-.IP SOCKS4_SERVER
-URL of SOCKS 4 server
-.IP SOCKS5_SERVER
-URL of SOCKS 5 server
-.IP SOCKS5_USER
-User name for SOCKS authentication
-.IP SOCKS5_PASSWD
-Password for SOCKS authentication
-.SH FILES
-.IP %%BOINC_HOME%%
-default home directory for
-.I %%BOINC_USER%%
-user
-.IP %%BOINC_HOME%%/*
-boinc-client configuration files
-.IP %%BOINC_HOME%%/projects/*
-BOINC projects
-.IP %%BOINC_HOME%%/projects/*/*
-BOINC project work unit files
-.IP %%BOINC_DATADIR%%
-boinc-client and BOINC project programs
-.SH BUGS
-Suspending
-.I boinc-client
-using ^Z works, but resuming using
-.I fg
-or
-.I bg
-does not resume any client processes (e.g., SETI). These need to be
-restarted using
-.I "kill -CONT"
-for each process.
-.PP
-Placing files in %%BOINC_HOME%% or its subdirectories can cause work
-to fail as those files will be counted in disk usage limit checks. In
-addition to configurable overall disk usage limits, each client may
-further restrict the size of its project or slot directories.
-.PP
-On a hyperthreadded processor, performance may be limited due to shared
-use of processor modules such as the FPU.
-.SH "SEE ALSO"
-http://boinc.berkeley.edu/
diff -ruN /usr/ports/net/boinc-client/files/boinc.1 net/boinc-client/files/boinc.1
--- /usr/ports/net/boinc-client/files/boinc.1 Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/boinc.1 Tue Mar 1 11:06:10 2005
@@ -0,0 +1,235 @@
+.TH boinc 1 "October 1, 2004" "" "BOINC"
+.SH NAME
+boinc \- client for Berkeley Open Infrastructure for Network Computing
+.SH SYNOPSIS
+boinc [ options ]
+.PP
+boincmgr
+.PP
+sh /usr/local/etc/rc.d/boinc.sh start|stop|restart|status
+.SH DESCRIPTION
+.I boinc
+is the client for the Berkeley Open Infrastructure for Network
+Computing (BOINC) service. It is used by projects such as SETI at HOME
+and ClimatePredictor to offer your spare CPU cycles to such projects.
+BOINC allows you to configure one or more projects to which you offer
+your spare CPU cycles for their computations.
+.PP
+BOINC is a scheduler; you configure projects under BOINC and BOINC
+then runs each one according to what percentage of time you have
+specified for that project.
+When a project is run, BOINC runs the project's client program to
+download computational work units from the project, then perform the
+work unit computation, and finally upload the results back to the
+project. If no work is available for one of your projects, BOINC
+will run another of your projects.
+.PP
+BOINC runs project clients at low priority, with an
+.IR idprio (1)
+value of 31, to ensure that as soon as you need your computer for
+any other work, BOINC projects stop so that you are not delayed
+by them.
+.PP
+After choosing which projects to participate in, you must register
+with each on the project's website. You can find out about BOINC
+projects on the BOINC website. Upon registering with a project,
+you will receive an account ID for the project.
+Run
+.I "boinc -attach_project"
+to add new projects to your BOINC configuration using the project
+URL and your account ID.
+Depending on what operating system platforms the project supports
+you may be able to immediately start the project or you may need to
+download the project client's source code and compile it. For
+further information, see the BOINC web site and the project's own
+website. Some projects are already available as FreeBSD ports
+(e.g., SETI at HOME in port astro/boinc-setiathome). Not all projects
+support FreeBSD and some do not make their client's source code
+available. In such cases, you will not be able to participate in
+that project from FreeBSD.
+.PP
+Running
+.I boinc
+with no arguments starts the service and any configured projects.
+.PP
+You can edit both BOINC general preferences and project-specific
+preferences on the website of any BOINC projects which you are
+registered with. Preferences will take effect next time BOINC
+contacts that project's server, e.g., to download more work or
+to upload results.
+.PP
+The user
+.I %%BOINC_USER%%
+needs to exist; all invocations of boinc will run as this
+user. If you want users other than root to be able to start
+BOINC, set a password on this account so that anyone can run
+.I boinc_client
+and supply the password.
+.PP
+IMPORTANT NOTE: The project clients are programs running
+on your computer with full access (as the user
+.IR %%BOINC_USER%% )
+to all files and resources of your computer. Before running any
+project client, you should establish for yourself that the
+program is trustworthy and will not abuse your computer. The
+BOINC scheduler does not restrict clients in any way other than to
+run them as the user
+.IR %%BOINC_USER%% .
+.SH "GRAPHICAL MANAGEMENT INTERFACE"
+Running
+.I "boinc -allow_remote_gui_rpc"
+allows the
+.I boincmgr
+graphical management interface to interact with the client.
+.PP
+The
+.I boincmgr
+program provides a graphical management interface to the core
+boinc. After
+.I boinc
+has been started, run
+.I boincmgr
+to add new projects, to see the status of existing projects'
+work units, and to control the client.
+.PP
+.I boincmgr
+can also be used to monitor and manage BOINC clients on other
+hosts.
+.PP
+On the
+.I Work
+tab, there is a
+.I "Show graphics"
+button which displays a graphical status window from the client
+application.
+For the
+.I "Show graphics"
+option to have effect, it must be understood that it is the
+client application that opens up the status window. The value
+of the
+.I DISPLAY
+environment variable of the
+.I boincmgr
+process is passed to the BOINC core and then to the client
+application, and must have meaning to that client. A value
+of
+.I ":0.0"
+will work for local clients, but for clients on remote hosts,
+a value such as
+.I "hostname:0.0"
+or
+.I "hostname.domain.com:0.0"
+will be needed.
+In addition, the local X-server host access permissions must
+allow access to the display by the client.
+For local clients, the simplest way to allow this is to use
+.IR xhost (1),
+e.g.,
+.IR "xhost\ +local:" .
+.PP
+Full documentation of
+.I boincmgr
+is not provided here, but may be added in a future release.
+.SH "STARTING BOINC AT BOOT TIME"
+The
+.I /usr/local/etc/rc.d/boinc.sh
+script is run automatically at system boot time.
+Several variables can be set in
+.I /etc/rc.conf
+to control the BOINC client's behavior.
+.IP boinc_enable
+set to
+.I "YES"
+to start BOINC at boot time
+.IP boinc_flags
+passed to the BOINC client, e.g.,
+.I boinc_flags="-allow_remote_gui_rpc"
+to allow access from the
+.I boincmgr
+graphical management interface.
+.SH OPTIONS
+The command-line client has the following command-line options:
+.IP -attach_project
+Attach this computer to a new project.
+You must have an account with that project.
+You will be asked for the project URL and the account ID.
+.IP -show_projects
+Print a list of projects to which this computer is attached.
+.IP -detach_project URL
+Detach this computer from a project.
+.IP -reset_project URL
+Clear pending work for a project.
+Use this if there is a problem that is preventing
+your computer from working.
+.IP -update_prefs URL
+Contact a project's server to obtain new preferences.
+This will also report completed results
+and get new work if needed.
+.IP -return_results_immediately
+Contact scheduler as soon as any result done.
+.IP -run_cpu_benchmarks
+Run CPU benchmarks.
+Do this if you have modified your computer's hardware.
+.IP -check_all_logins
+If 'run if user active' preference is off,
+check for input activity on all current logins;
+default is to check only local mouse/keyboard
+.IP -exit_when_idle
+Get, process and report work, then exit.
+.IP -redirectio
+Redirect stdout and stderr to log files.
+.IP -allow_remote_gui_rpc
+Allow GUI RPCs from remote hosts
+.IP -help
+Show client options.
+.IP -version
+Show client version.
+.SH "ENVIRONMENT VARIABLES"
+The command-line client has the following optional environment variables:
+.IP HTTP_PROXY
+URL of HTTP proxy
+.IP HTTP_USER_NAME
+User name for proxy authentication
+.IP HTTP_USER_PASSWD
+Password for proxy authentication
+.IP SOCKS4_SERVER
+URL of SOCKS 4 server
+.IP SOCKS5_SERVER
+URL of SOCKS 5 server
+.IP SOCKS5_USER
+User name for SOCKS authentication
+.IP SOCKS5_PASSWD
+Password for SOCKS authentication
+.SH FILES
+.IP %%BOINC_HOME%%
+default home directory for
+.I %%BOINC_USER%%
+user
+.IP %%BOINC_HOME%%/*
+boinc configuration files
+.IP %%BOINC_HOME%%/projects/*
+BOINC projects
+.IP %%BOINC_HOME%%/projects/*/*
+BOINC project work unit files
+.SH BUGS
+Suspending
+.I boinc
+using ^Z works, but resuming using
+.I fg
+or
+.I bg
+does not resume any client processes (e.g., SETI). These need to be
+restarted using
+.I "kill -CONT"
+for each process.
+.PP
+Placing files in %%BOINC_HOME%% or its subdirectories can cause work
+to fail as those files will be counted in disk usage limit checks. In
+addition to configurable overall disk usage limits, each client may
+further restrict the size of its project or slot directories.
+.PP
+On a hyperthreadded processor, performance may be limited due to shared
+use of processor modules such as the FPU.
+.SH "SEE ALSO"
+.IR xhost (1),
+http://boinc.berkeley.edu/
diff -ruN /usr/ports/net/boinc-client/files/boinc.sh net/boinc-client/files/boinc.sh
--- /usr/ports/net/boinc-client/files/boinc.sh Sat Oct 16 15:29:30 2004
+++ net/boinc-client/files/boinc.sh Wed Mar 2 16:39:03 2005
@@ -1,61 +1,7 @@
#!/bin/sh
-#
-# $FreeBSD: ports/net/boinc-client/files/boinc.sh,v 1.1 2004/10/16 19:29:30 pav Exp $
-#
-# Start or stop BOINC
-#
-. /etc/rc.subr
+export LD_LIBRARY_PATH=%%LOCALBASE%%/lib/boinc
-name="boinc"
-rcvar=`set_rcvar`
-
-boinc_user=%%BOINC_USER%%
-boinc_home=%%BOINC_HOME%%
-program_file=%%BOINC_BINARY%%
-program_path=%%BOINC_DATADIR%%/client/${program_file}
-
-[ -z "$boinc_enable" ] && boinc_enable="NO"
-
-load_rc_config $name
-
-case "$1" in
-start)
- if checkyesno boinc_enable
- then
- if [ ! -x ${program_path} ]
- then
- logger -sp ${syslog_facility} -t ${program_file} \
- "unable to start: ${program_path} is missing."
- exit 72
- fi
- if ps axo ucomm | egrep ${program_file}; then
- logger -sp ${syslog_facility} -t ${program_file} \
- "unable to start: ${program_file} is already running."
- exit 72
- fi
- echo -n "BOINC "
- idprio 31 su - ${boinc_user} -c "${program_path} >/dev/null &"
- fi
- ;;
-
-stop)
- program=`expr ${program_file} : '^\(...................\).*$'`
- killall ${program} 2> /dev/null
- ;;
-
-restart)
- $0 stop
- $0 start
- ;;
-
-status)
- ps auxww | egrep ${program_file} | egrep -v "($0|egrep)"
- ;;
-
-*)
- echo "usage: ${name} {start|stop|restart|status}" >&2
- exit 64
- ;;
-esac
+args=${@+"$@"}
+exec idprio 31 su - %%BOINC_USER%% -c "%%LOCALBASE%%/lib/boinc/%%BOINC_BINARY%% $args"
diff -ruN /usr/ports/net/boinc-client/files/boinc.sh-4.x net/boinc-client/files/boinc.sh-4.x
--- /usr/ports/net/boinc-client/files/boinc.sh-4.x Wed Dec 15 00:14:36 2004
+++ net/boinc-client/files/boinc.sh-4.x Wed Dec 31 19:00:00 1969
@@ -1,61 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: ports/net/boinc-client/files/boinc.sh-4.x,v 1.1 2004/12/15 05:14:36 edwin Exp $
-#
-# Start or stop BOINC
-#
-
-. /usr/local/etc/rc.subr
-
-name="boinc"
-rcvar=`set_rcvar`
-
-boinc_user=%%BOINC_USER%%
-boinc_home=%%BOINC_HOME%%
-program_file=%%BOINC_BINARY%%
-program_path=%%BOINC_DATADIR%%/client/${program_file}
-
-[ -z "$boinc_enable" ] && boinc_enable="NO"
-
-load_rc_config $name
-
-case "$1" in
-start)
- if checkyesno boinc_enable
- then
- if [ ! -x ${program_path} ]
- then
- logger -sp ${syslog_facility} -t ${program_file} \
- "unable to start: ${program_path} is missing."
- exit 72
- fi
- if ps axo ucomm | egrep ${program_file}; then
- logger -sp ${syslog_facility} -t ${program_file} \
- "unable to start: ${program_file} is already running."
- exit 72
- fi
- echo -n "BOINC "
- idprio 31 su - ${boinc_user} -c "${program_path} >/dev/null &"
- fi
- ;;
-
-stop)
- program=`expr ${program_file} : '^\(................\).*$'`
- killall ${program} 2> /dev/null
- ;;
-
-restart)
- $0 stop
- $0 start
- ;;
-
-status)
- ps auxww | egrep ${program_file} | egrep -v "($0|egrep)"
- ;;
-
-*)
- echo "usage: ${name} {start|stop|restart|status}" >&2
- exit 64
- ;;
-esac
-
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-api::boinc_api.C net/boinc-client/files/extra-patch-api::boinc_api.C
--- /usr/ports/net/boinc-client/files/extra-patch-api::boinc_api.C Wed Dec 15 00:14:36 2004
+++ net/boinc-client/files/extra-patch-api::boinc_api.C Wed Dec 31 19:00:00 1969
@@ -1,11 +0,0 @@
---- api/boinc_api.C.orig Sun Sep 5 19:28:46 2004
-+++ api/boinc_api.C Thu Dec 9 10:22:30 2004
-@@ -116,7 +116,7 @@
- options.handle_trickle_ups = true;
- options.handle_trickle_downs = true;
- options.handle_process_control = true;
-- options.send_status_msgs = true;
-+ options.send_status_msgs = false;
- options.direct_process_action = true;
- return boinc_init_options(options);
- }
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-client::gui_rpc_server.C net/boinc-client/files/extra-patch-client::gui_rpc_server.C
--- /usr/ports/net/boinc-client/files/extra-patch-client::gui_rpc_server.C Tue Jan 25 19:13:43 2005
+++ net/boinc-client/files/extra-patch-client::gui_rpc_server.C Wed Dec 31 19:00:00 1969
@@ -1,11 +0,0 @@
---- client/gui_rpc_server.C.orig Tue Dec 21 13:25:39 2004
-+++ client/gui_rpc_server.C Tue Dec 21 13:27:04 2004
-@@ -49,7 +49,7 @@
- typedef int socklen_t;
- #elif defined(__APPLE__)
- typedef int32_t socklen_t;
--#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
-+#elif !defined(__FreeBSD__)
- typedef size_t socklen_t;
- #endif
-
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-client::net_xfer.C net/boinc-client/files/extra-patch-client::net_xfer.C
--- /usr/ports/net/boinc-client/files/extra-patch-client::net_xfer.C Tue Jan 25 19:13:43 2005
+++ net/boinc-client/files/extra-patch-client::net_xfer.C Wed Dec 31 19:00:00 1969
@@ -1,11 +0,0 @@
---- client/net_xfer.C.orig Tue Dec 21 13:25:39 2004
-+++ client/net_xfer.C Tue Dec 21 13:28:15 2004
-@@ -80,7 +80,7 @@
- typedef int socklen_t;
- #elif defined(__APPLE__)
- typedef int32_t socklen_t;
--#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
-+#elif !defined(__FreeBSD__)
- typedef size_t socklen_t;
- #endif
-
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp Sun Mar 20 21:59:21 2005
@@ -0,0 +1,551 @@
+--- clientgui/MainDocument.cpp.orig Tue Mar 15 16:53:12 2005
++++ clientgui/MainDocument.cpp Sun Mar 20 21:59:15 2005
+@@ -178,7 +178,7 @@
+ if ( IsConnected() )
+ return BOINC_SUCCESS;
+
+- str.clear();
++ str = "";
+
+ if ( strMachine.empty() && !m_strConnectedComputerName.empty() )
+ str = m_strConnectedComputerName.c_str();
+@@ -416,7 +416,7 @@
+
+ m_fProjectTotalResourceShare = 0.0;
+ for (i=0; i < (long)project_status.projects.size(); i++) {
+- m_fProjectTotalResourceShare += project_status.projects.at( i )->resource_share;
++ m_fProjectTotalResourceShare += project_status.projects[i]->resource_share;
+ }
+
+ return iRetVal;
+@@ -445,7 +445,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -470,7 +470,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -491,7 +491,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -512,7 +512,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -533,7 +533,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -554,7 +554,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -575,7 +575,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -603,7 +603,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -653,7 +653,7 @@
+
+ if ( NULL != pProject )
+ {
+- Url = pProject->gui_urls.at( iWebsiteIndex );
++ Url = pProject->gui_urls[iWebsiteIndex];
+ strBuffer = Url.name.c_str();
+ }
+
+@@ -676,7 +676,7 @@
+
+ if ( NULL != pProject )
+ {
+- Url = pProject->gui_urls.at( iWebsiteIndex );
++ Url = pProject->gui_urls[iWebsiteIndex];
+ strBuffer = Url.description.c_str();
+ }
+
+@@ -699,7 +699,7 @@
+
+ if ( NULL != pProject )
+ {
+- Url = pProject->gui_urls.at( iWebsiteIndex );
++ Url = pProject->gui_urls[iWebsiteIndex];
+ strBuffer = Url.url.c_str();
+ }
+
+@@ -715,7 +715,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -737,7 +737,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -765,7 +765,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -787,7 +787,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -809,7 +809,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -832,7 +832,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -866,7 +866,7 @@
+ try
+ {
+ if ( !project_status.projects.empty() )
+- pProject = project_status.projects.at( iIndex );
++ pProject = project_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -930,7 +930,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -963,7 +963,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -987,7 +987,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1027,7 +1027,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1064,7 +1064,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1085,7 +1085,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1106,7 +1106,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1127,7 +1127,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1148,7 +1148,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1169,7 +1169,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1191,7 +1191,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1213,7 +1213,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1235,7 +1235,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1257,7 +1257,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1279,7 +1279,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1301,7 +1301,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1323,7 +1323,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1345,7 +1345,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1368,7 +1368,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1404,7 +1404,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1440,7 +1440,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1472,7 +1472,7 @@
+ try
+ {
+ if ( !results.results.empty() )
+- pResult = results.results.at( iIndex );
++ pResult = results.results[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1512,7 +1512,7 @@
+ }
+
+ if ( messages.messages.size() != 0 )
+- m_iMessageSequenceNumber = messages.messages.at( messages.messages.size()-1 )->seqno;
++ m_iMessageSequenceNumber = messages.messages[messages.messages.size()-1]->seqno;
+
+ return iRetVal;
+ }
+@@ -1539,7 +1539,7 @@
+ try
+ {
+ if ( !messages.messages.empty() )
+- pMessage = messages.messages.at( iIndex );
++ pMessage = messages.messages[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1560,7 +1560,7 @@
+ try
+ {
+ if ( !messages.messages.empty() )
+- pMessage = messages.messages.at( iIndex );
++ pMessage = messages.messages[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1584,7 +1584,7 @@
+ try
+ {
+ if ( !messages.messages.empty() )
+- pMessage = messages.messages.at( iIndex );
++ pMessage = messages.messages[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1605,7 +1605,7 @@
+ try
+ {
+ if ( !messages.messages.empty() )
+- pMessage = messages.messages.at( iIndex );
++ pMessage = messages.messages[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1663,7 +1663,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1684,7 +1684,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1705,7 +1705,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1726,7 +1726,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1747,7 +1747,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1768,7 +1768,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1789,7 +1789,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1810,7 +1810,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1832,7 +1832,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1853,7 +1853,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1875,7 +1875,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1897,7 +1897,7 @@
+ try
+ {
+ if ( !ft.file_transfers.empty() )
+- pFT = ft.file_transfers.at( iIndex );
++ pFT = ft.file_transfers[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1949,7 +1949,7 @@
+ try
+ {
+ if ( !resource_status.projects.empty() )
+- pProject = resource_status.projects.at( iIndex );
++ pProject = resource_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
+@@ -1978,7 +1978,7 @@
+ try
+ {
+ if ( !resource_status.projects.empty() )
+- pProject = resource_status.projects.at( iIndex );
++ pProject = resource_status.projects[iIndex];
+ }
+ catch ( std::out_of_range e )
+ {
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp Thu Mar 24 11:13:44 2005
@@ -0,0 +1,20 @@
+--- clientgui/MainFrame.cpp.orig Sat Mar 12 01:51:31 2005
++++ clientgui/MainFrame.cpp Thu Mar 24 11:12:36 2005
+@@ -1106,7 +1106,6 @@
+ wxString strConnectedMachine = wxEmptyString;
+ wxString strStatusText = wxEmptyString;
+ wxString strTitle = m_strBaseTitle;
+- wxString strLocale = setlocale(LC_NUMERIC, NULL);
+
+ pDoc->GetConnectedComputerName( strConnectedMachine );
+ if ( strConnectedMachine.empty() )
+@@ -1119,9 +1118,7 @@
+ strStatusText += strConnectedMachine;
+ }
+
+- setlocale(LC_NUMERIC, "C");
+ strBuffer.Printf(wxT("%.2f"), pDoc->GetCoreClientVersion()/100.0);
+- setlocale(LC_NUMERIC, strLocale.c_str());
+
+ strTitle.Printf(_("%s - (%s)"), m_strBaseTitle.c_str(), strConnectedMachine.c_str());
+ strStatusText.Printf(_("Connected to %s (%s)"), strConnectedMachine.c_str(), strBuffer.c_str());
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp Sun Mar 20 21:29:09 2005
@@ -0,0 +1,20 @@
+--- clientgui/ViewProjects.cpp.orig Tue Mar 15 18:44:48 2005
++++ clientgui/ViewProjects.cpp Sun Mar 20 21:29:09 2005
+@@ -230,7 +230,7 @@
+
+ wxString CViewProjects::OnListGetItemText(long item, long column) const
+ {
+- CProject* project = m_ProjectCache.at( item );
++ CProject* project = m_ProjectCache[item];
+ wxString strBuffer = wxEmptyString;
+
+ switch(column)
+@@ -536,7 +536,7 @@
+
+ wxInt32 CViewProjects::UpdateCache( long item, long column, wxString& strNewData )
+ {
+- CProject* project = m_ProjectCache.at( item );
++ CProject* project = m_ProjectCache[item];
+
+ switch(column)
+ {
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp Sun Mar 20 21:31:22 2005
@@ -0,0 +1,20 @@
+--- clientgui/ViewResources.cpp.orig Tue Mar 15 18:44:48 2005
++++ clientgui/ViewResources.cpp Sun Mar 20 21:31:22 2005
+@@ -145,7 +145,7 @@
+
+ wxString CViewResources::OnListGetItemText( long item, long column ) const
+ {
+- CResource* resource = m_ResourceCache.at( item );
++ CResource* resource = m_ResourceCache[item];
+ wxString strBuffer = wxEmptyString;
+
+ switch(column)
+@@ -270,7 +270,7 @@
+
+ wxInt32 CViewResources::UpdateCache( long item, long column, wxString& strNewData )
+ {
+- CResource* resource = m_ResourceCache.at( item );
++ CResource* resource = m_ResourceCache[item];
+
+ switch(column)
+ {
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp Sun Mar 20 21:32:00 2005
@@ -0,0 +1,20 @@
+--- clientgui/ViewTransfers.cpp.orig Tue Mar 15 18:44:48 2005
++++ clientgui/ViewTransfers.cpp Sun Mar 20 21:32:00 2005
+@@ -177,7 +177,7 @@
+
+ wxString CViewTransfers::OnListGetItemText(long item, long column) const
+ {
+- CTransfer* transfer = m_TransferCache.at( item );
++ CTransfer* transfer = m_TransferCache[item];
+ wxString strBuffer = wxEmptyString;
+
+ switch(column)
+@@ -372,7 +372,7 @@
+
+ wxInt32 CViewTransfers::UpdateCache( long item, long column, wxString& strNewData )
+ {
+- CTransfer* transfer = m_TransferCache.at( item );
++ CTransfer* transfer = m_TransferCache[item];
+
+ switch(column)
+ {
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp Sun Mar 20 21:35:51 2005
@@ -0,0 +1,31 @@
+--- clientgui/ViewWork.cpp.orig Tue Mar 15 18:44:48 2005
++++ clientgui/ViewWork.cpp Sun Mar 20 21:35:22 2005
+@@ -190,7 +190,7 @@
+
+ wxString CViewWork::OnListGetItemText( long item, long column ) const
+ {
+- CWork* work = m_WorkCache.at( item );
++ CWork* work = m_WorkCache[item];
+ wxString strBuffer = wxEmptyString;
+
+ switch(column)
+@@ -436,7 +436,7 @@
+
+ wxInt32 CViewWork::UpdateCache( long item, long column, wxString& strNewData )
+ {
+- CWork* work = m_WorkCache.at( item );
++ CWork* work = m_WorkCache[item];
+
+ switch(column)
+ {
+@@ -589,10 +589,7 @@
+ pDoc->GetWorkApplicationName(item, strTempName);
+ pDoc->GetWorkApplicationVersion(item, iBuffer);
+
+- wxString strLocale = setlocale(LC_NUMERIC, NULL);
+- setlocale(LC_NUMERIC, "C");
+ strBuffer.Printf(wxT("%s %.2f"), strTempName.c_str(), iBuffer/100.0);
+- setlocale(LC_NUMERIC, strLocale.c_str());
+
+ return 0;
+ }
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::stdwx.h net/boinc-client/files/extra-patch-clientgui::stdwx.h
--- /usr/ports/net/boinc-client/files/extra-patch-clientgui::stdwx.h Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-clientgui::stdwx.h Sun Mar 20 21:38:45 2005
@@ -0,0 +1,10 @@
+--- clientgui/stdwx.h.orig Thu Feb 17 18:44:35 2005
++++ clientgui/stdwx.h Sun Mar 20 21:38:15 2005
+@@ -136,7 +136,6 @@
+ #include <sstream>
+ #include <vector>
+ #include <list>
+-#include <locale>
+
+
+ #ifdef __WXMSW__
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::acct_mgr_client.C net/boinc-client/files/extra-patch-lib::acct_mgr_client.C
--- /usr/ports/net/boinc-client/files/extra-patch-lib::acct_mgr_client.C Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-lib::acct_mgr_client.C Thu Mar 24 10:14:11 2005
@@ -0,0 +1,24 @@
+--- lib/acct_mgr_client.C.orig Sat Mar 12 01:51:33 2005
++++ lib/acct_mgr_client.C Thu Mar 24 10:12:20 2005
+@@ -65,8 +65,8 @@
+ }
+
+ void ACCT_MGR::clear() {
+- name.clear();
+- url.clear();
++ name = "";
++ url = "";
+ }
+
+ ACCT_MGR_LOGIN::ACCT_MGR_LOGIN() {
+@@ -93,8 +93,8 @@
+ }
+
+ void ACCT_MGR_LOGIN::clear() {
+- login.clear();
+- password.clear();
++ login = "";
++ password = "";
+ }
+
+
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::gui_rpc_client.C net/boinc-client/files/extra-patch-lib::gui_rpc_client.C
--- /usr/ports/net/boinc-client/files/extra-patch-lib::gui_rpc_client.C Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-lib::gui_rpc_client.C Sun Mar 20 22:32:18 2005
@@ -0,0 +1,125 @@
+--- lib/gui_rpc_client.C.orig Thu Mar 17 16:04:53 2005
++++ lib/gui_rpc_client.C Sun Mar 20 22:32:04 2005
+@@ -164,11 +164,11 @@
+ }
+
+ void PROJECT::clear() {
+- master_url.clear();
++ master_url = "";
+ resource_share = 0.0;
+- project_name.clear();
+- user_name.clear();
+- team_name.clear();
++ project_name = "";
++ user_name = "";
++ team_name = "";
+ user_total_credit = 0.0;
+ user_expavg_credit = 0.0;
+ host_total_credit = 0.0;
+@@ -209,7 +209,7 @@
+ }
+
+ void APP::clear() {
+- name.clear();
++ name = "";
+ project = NULL;
+ }
+
+@@ -238,7 +238,7 @@
+ }
+
+ void APP_VERSION::clear() {
+- app_name.clear();
++ app_name = "";
+ version_num = 0;
+ app = NULL;
+ project = NULL;
+@@ -276,8 +276,8 @@
+ }
+
+ void WORKUNIT::clear() {
+- name.clear();
+- app_name.clear();
++ name = "";
++ app_name = "";
+ version_num = 0;
+ rsc_fpops_est = 0.0;
+ rsc_fpops_bound = 0.0;
+@@ -376,9 +376,9 @@
+ }
+
+ void RESULT::clear() {
+- name.clear();
+- wu_name.clear();
+- project_url.clear();
++ name = "";
++ wu_name = "";
++ project_url = "";
+ report_deadline = 0;
+ ready_to_report = false;
+ got_server_ack = false;
+@@ -389,7 +389,7 @@
+ signal = 0;
+ active_task_state = 0;
+ active_task = false;
+- stderr_out.clear();
++ stderr_out = "";
+ app_version_num = 0;
+ checkpoint_cpu_time = 0.0;
+ current_cpu_time = 0.0;
+@@ -463,9 +463,9 @@
+ }
+
+ void FILE_TRANSFER::clear() {
+- name.clear();
+- project_url.clear();
+- project_name.clear();
++ name = "";
++ project_url = "";
++ project_name = "";
+ nbytes = 0.0;
+ generated_locally = false;
+ uploaded = false;
+@@ -481,7 +481,7 @@
+ bytes_xferred = 0.0;
+ file_offset = 0.0;
+ xfer_speed = 0.0;
+- hostname.clear();
++ hostname = "";
+ project = NULL;
+ }
+
+@@ -516,10 +516,10 @@
+ }
+
+ void MESSAGE::clear() {
+- project.clear();
++ project = "";
+ priority = 0;
+ timestamp = 0;
+- body.clear();
++ body = "";
+ }
+
+ PROXY_INFO::PROXY_INFO() {
+@@ -570,14 +570,14 @@
+ use_socks_proxy = false;
+ use_http_authentication = false;
+ socks_version = 0;
+- socks_server_name.clear();
+- http_server_name.clear();
++ socks_server_name = "";
++ http_server_name = "";
+ socks_server_port = 0;
+ http_server_port = 0;
+- http_user_name.clear();
+- http_user_passwd.clear();
+- socks5_user_name.clear();
+- socks5_user_passwd.clear();
++ http_user_name = "";
++ http_user_passwd = "";
++ socks5_user_name = "";
++ socks5_user_passwd = "";
+ }
+
+ HOST_INFO::HOST_INFO() {
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::network.h net/boinc-client/files/extra-patch-lib::network.h
--- /usr/ports/net/boinc-client/files/extra-patch-lib::network.h Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-lib::network.h Sun Mar 20 22:36:08 2005
@@ -0,0 +1,11 @@
+--- lib/network.h.orig Mon Mar 7 16:19:09 2005
++++ lib/network.h Sun Mar 20 22:35:20 2005
+@@ -25,7 +25,7 @@
+ #define SHUT_WR SD_SEND
+ #elif defined( __APPLE__)
+ typedef int32_t socklen_t;
+-#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
++#elif !defined(__FreeBSD__)
+ typedef size_t socklen_t;
+ #endif
+
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::parse.C net/boinc-client/files/extra-patch-lib::parse.C
--- /usr/ports/net/boinc-client/files/extra-patch-lib::parse.C Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-lib::parse.C Sun Mar 20 21:45:49 2005
@@ -0,0 +1,32 @@
+--- lib/parse.C.orig Tue Mar 15 15:23:24 2005
++++ lib/parse.C Sun Mar 20 21:45:20 2005
+@@ -31,7 +31,6 @@
+ #ifndef _WIN32
+ #include <cstring>
+ #include <cstdlib>
+-#include <locale>
+ #include <string>
+ #endif
+
+@@ -63,10 +62,7 @@
+ bool parse_int(const char* buf, const char* tag, int& x) {
+ char* p = strstr(buf, tag);
+ if (!p) return false;
+- std::string strLocale = setlocale(LC_NUMERIC, NULL);
+- setlocale(LC_NUMERIC, "C");
+ x = strtol(p+strlen(tag), 0, 0); // this parses 0xabcd correctly
+- setlocale(LC_NUMERIC, strLocale.c_str());
+ return true;
+ }
+
+@@ -75,10 +71,7 @@
+ bool parse_double(const char* buf, const char* tag, double& x) {
+ char* p = strstr(buf, tag);
+ if (!p) return false;
+- std::string strLocale = setlocale(LC_NUMERIC, NULL);
+- setlocale(LC_NUMERIC, "C");
+ x = atof(p+strlen(tag));
+- setlocale(LC_NUMERIC, strLocale.c_str());
+ return true;
+ }
+
diff -ruN /usr/ports/net/boinc-client/files/extra-patch-zip::boinc_zip.cpp net/boinc-client/files/extra-patch-zip::boinc_zip.cpp
--- /usr/ports/net/boinc-client/files/extra-patch-zip::boinc_zip.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/extra-patch-zip::boinc_zip.cpp Sun Mar 20 21:49:33 2005
@@ -0,0 +1,20 @@
+--- zip/boinc_zip.cpp.orig Sun Jan 2 13:29:37 2005
++++ zip/boinc_zip.cpp Sun Mar 20 21:49:07 2005
+@@ -129,7 +129,7 @@
+ //sz 3 onward will be each vector
+ int jj;
+ for (jj=0; jj<nVecSize; jj++)
+- strcpy(av[3+jj], pvectszFileIn->at(jj).c_str());
++ strcpy(av[3+jj], (*pvectszFileIn)[jj].c_str());
+ }
+ else
+ {
+@@ -141,7 +141,7 @@
+
+ // if they passed in a directory unzip there
+ if (carg == 4)
+- sprintf(av[3], "-d%s", pvectszFileIn->at(0).c_str());
++ sprintf(av[3], "-d%s", (*pvectszFileIn)[0].c_str());
+ }
+ // strcpy(av[carg-1], ""); // null arg
+ // printf("args: %s %s %s %s\n", av[0], av[1], av[2], av[3]);
diff -ruN /usr/ports/net/boinc-client/files/patch-api::boinc_api.C net/boinc-client/files/patch-api::boinc_api.C
--- /usr/ports/net/boinc-client/files/patch-api::boinc_api.C Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/patch-api::boinc_api.C Wed Mar 23 15:49:52 2005
@@ -0,0 +1,55 @@
+--- api/boinc_api.C.orig Sat Mar 19 16:39:16 2005
++++ api/boinc_api.C Wed Mar 23 15:49:01 2005
+@@ -56,6 +56,8 @@
+ // Unless otherwise noted, "CPU time" refers to the sum over all episodes
+ // (not counting the part after the last checkpoint in an episode).
+
++pthread_t timer_thread_handle;
++
+ static APP_INIT_DATA aid;
+ static FILE_LOCK file_lock;
+ APP_CLIENT_SHM* app_client_shm = 0;
+@@ -506,6 +508,19 @@
+ #endif
+ }
+
++#ifndef _USECONDS_T_DECLARED
++typedef unsigned int useconds_t;
++#endif
++
++void *
++timer_thread(void *)
++{
++ while(1) {
++ usleep((useconds_t)(TIMER_PERIOD*1000000));
++ worker_timer(0);
++ }
++ /*NOTREACHED*/
++}
+
+ // set up a periodic timer interrupt for the worker thread.
+ // This is called only and always by the worker thread
+@@ -539,21 +554,9 @@
+ //
+ SetThreadPriority(worker_thread_handle, THREAD_PRIORITY_LOWEST);
+ #else
+- struct sigaction sa;
+- itimerval value;
+- sa.sa_handler = worker_timer;
+- sa.sa_flags = SA_RESTART;
+- retval = sigaction(SIGALRM, &sa, NULL);
+- if (retval) {
+- perror("boinc set_worker_timer() sigaction");
+- return retval;
+- }
+- value.it_value.tv_sec = (int)TIMER_PERIOD;
+- value.it_value.tv_usec = ((int)(TIMER_PERIOD*1000000))%1000000;
+- value.it_interval = value.it_value;
+- retval = setitimer(ITIMER_REAL, &value, NULL);
++ retval = pthread_create(&timer_thread_handle, NULL, timer_thread, NULL);
+ if (retval) {
+- perror("boinc set_worker_timer() setitimer");
++ perror("boinc set_worker_timer() pthread_create(timer_thread)");
+ }
+ #endif
+ return retval;
diff -ruN /usr/ports/net/boinc-client/files/patch-api::boinc_gl.h net/boinc-client/files/patch-api::boinc_gl.h
--- /usr/ports/net/boinc-client/files/patch-api::boinc_gl.h Sat Oct 16 15:29:30 2004
+++ net/boinc-client/files/patch-api::boinc_gl.h Wed Dec 31 19:00:00 1969
@@ -1,19 +0,0 @@
---- api/boinc_gl.h.orig Wed Sep 1 19:15:30 2004
-+++ api/boinc_gl.h Fri Oct 1 12:06:47 2004
-@@ -54,8 +54,6 @@
- # include <OpenGL/glu.h>
- # endif
-
--# include "GL/glut.h"
--/*
- # if defined(HAVE_GLUT_H)
- # include "glut.h"
- # elif defined(HAVE_GL_GLUT_H)
-@@ -65,7 +63,6 @@
- # elif defined(HAVE_GLUT_GLUT_H)
- # include <GLUT/glut.h>
- # endif
--*/
-
- #endif // _WIN32
-
diff -ruN /usr/ports/net/boinc-client/files/patch-client::gui_rpc_server.C net/boinc-client/files/patch-client::gui_rpc_server.C
--- /usr/ports/net/boinc-client/files/patch-client::gui_rpc_server.C Wed Dec 15 00:14:36 2004
+++ net/boinc-client/files/patch-client::gui_rpc_server.C Wed Dec 31 19:00:00 1969
@@ -1,17 +0,0 @@
---- client/gui_rpc_server.C.orig Mon Sep 27 15:07:29 2004
-+++ client/gui_rpc_server.C Thu Dec 2 20:59:58 2004
-@@ -47,12 +47,10 @@
-
- #if defined(_WIN32)
- typedef int socklen_t;
--#elif defined ( __APPLE__)
-+#elif defined(__APPLE__)
- typedef int32_t socklen_t;
--#elif !GETSOCKOPT_SOCKLEN_T
--#ifndef socklen_t
-+#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
- typedef size_t socklen_t;
--#endif
- #endif
-
- static void boinc_close_socket(int sock) {
diff -ruN /usr/ports/net/boinc-client/files/patch-client::net_xfer.C net/boinc-client/files/patch-client::net_xfer.C
--- /usr/ports/net/boinc-client/files/patch-client::net_xfer.C Wed Dec 15 00:14:36 2004
+++ net/boinc-client/files/patch-client::net_xfer.C Wed Dec 31 19:00:00 1969
@@ -1,17 +0,0 @@
---- client/net_xfer.C.orig Mon Sep 27 15:07:30 2004
-+++ client/net_xfer.C Thu Dec 2 21:00:11 2004
-@@ -78,12 +78,10 @@
-
- #if defined(_WIN32)
- typedef int socklen_t;
--#elif defined ( __APPLE__)
-+#elif defined(__APPLE__)
- typedef int32_t socklen_t;
--#elif !GETSOCKOPT_SOCKLEN_T
--#ifndef socklen_t
-+#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
- typedef size_t socklen_t;
--#endif
- #endif
-
- using std::vector;
diff -ruN /usr/ports/net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp
--- /usr/ports/net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp Tue Mar 22 14:06:09 2005
@@ -0,0 +1,11 @@
+--- clientgui/BOINCGUIApp.cpp.orig Fri Mar 11 08:08:50 2005
++++ clientgui/BOINCGUIApp.cpp Tue Mar 22 14:05:34 2005
+@@ -81,8 +81,6 @@
+ BOINC_DIAG_DUMPCALLSTACKENABLED |
+ BOINC_DIAG_HEAPCHECKENABLED |
+ BOINC_DIAG_MEMORYLEAKCHECKENABLED |
+- BOINC_DIAG_REDIRECTSTDERR |
+- BOINC_DIAG_REDIRECTSTDOUT |
+ BOINC_DIAG_TRACETOSTDOUT;
+
+ diagnostics_init(
diff -ruN /usr/ports/net/boinc-client/files/rc::boinc.sh net/boinc-client/files/rc::boinc.sh
--- /usr/ports/net/boinc-client/files/rc::boinc.sh Wed Dec 31 19:00:00 1969
+++ net/boinc-client/files/rc::boinc.sh Wed Mar 2 16:39:38 2005
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# $FreeBSD: ports/net/boinc-client/files/boinc.sh,v 1.1 2004/10/16 19:29:30 pav Exp $
+#
+# Start or stop BOINC
+#
+
+if [ -f /etc/rc.subr ]
+then
+ . /etc/rc.subr
+elif [ -f /usr/local/etc/rc.subr ]
+then
+ # FreeBSD 4.x
+ . /usr/local/etc/rc.subr
+fi
+
+name="boinc"
+rcvar=`set_rcvar`
+
+boinc_user=%%BOINC_USER%%
+boinc_home=%%BOINC_HOME%%
+program_file=%%BOINC_BINARY%%
+program_path=%%LOCALBASE%%/lib/boinc/${program_file}
+syslog_facility=daemon.err
+
+[ -z "$boinc_enable" ] && boinc_enable="NO"
+
+load_rc_config $name
+
+case "$1" in
+start)
+ if checkyesno boinc_enable
+ then
+ if [ ! -x ${program_path} ]
+ then
+ logger -sp ${syslog_facility} -t ${program_file} \
+ "unable to start: ${program_path} is missing."
+ exit 72
+ fi
+ if ps axo ucomm | egrep ${program_file}; then
+ logger -sp ${syslog_facility} -t ${program_file} \
+ "unable to start: ${program_file} is already running."
+ exit 72
+ fi
+ echo "Starting BOINC client."
+ export LD_LIBRARY_PATH=%%LOCALBASE%%/lib/boinc
+ idprio 31 su - ${boinc_user} -c "${program_path} ${boinc_flags} >/dev/null &"
+ fi
+ ;;
+
+stop)
+ killall ${program_file} 2> /dev/null
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+status)
+ ps auxww | egrep ${program_file} | egrep -v "($0|egrep)"
+ ;;
+
+*)
+ echo "usage: ${name} {start|stop|restart|status}" >&2
+ exit 64
+ ;;
+esac
+
diff -ruN /usr/ports/net/boinc-client/pkg-message net/boinc-client/pkg-message
--- /usr/ports/net/boinc-client/pkg-message Sat Oct 16 15:29:30 2004
+++ net/boinc-client/pkg-message Wed Mar 23 12:32:42 2005
@@ -1,8 +1,8 @@
-------------------------------------------------------------------
-BOINC's boinc-client is now installed. You now need to register
-with and install one or more projects.
+The BOINC client is now installed. You now need to register with
+and install one or more projects.
-Refer to the BOINC web page at
+Refer to the BOINC web page at:
http://boinc.berkeley.edu/
for a list of projects and refer to each of their sites for info
on how to register with them and how to use them on FreeBSD.
@@ -11,4 +11,18 @@
don't work on FreeBSD at all.
SETI at HOME for FreeBSD is available in port astro/boinc-setiathome.
+
+Einstein at Home will soon be available as a binary port for
+ FreeBSD/i386 users; it may also be available as an
+ automatic BOINC download.
+
+Read the "boinc" man page for more info on running BOINC and
+attaching projects.
+
+This version of the port includes the "boincmgr" GUI management
+interface and support for the client application status screens.
+Read the "boincmgr" man page for info on setting up your DISPLAY
+environment variable and xhost access permissions to use this.
+NB: Due to bugs in the x11-toolkits/wxgtk port on FreeBSD 4.x/alpha
+boincmgr may not work on that platform.
-------------------------------------------------------------------
diff -ruN /usr/ports/net/boinc-client/pkg-plist net/boinc-client/pkg-plist
--- /usr/ports/net/boinc-client/pkg-plist Wed Dec 15 17:51:43 2004
+++ net/boinc-client/pkg-plist Mon Mar 21 10:49:52 2005
@@ -1,51 +1,57 @@
- at exec mkdir -p %D/boinc/projects
-bin/boinc-client
-boinc/client/%%BOINC_BINARY%%
+bin/boinc
+bin/boincmgr
etc/rc.d/boinc.sh
-boinc/Makefile.am
-boinc/lib/Makefile.am
-boinc/lib/app_ipc.h
-boinc/lib/base64.h
-boinc/lib/boinc_win.h
-boinc/lib/crypt.h
-boinc/lib/diagnostics.h
-boinc/lib/error_numbers.h
-boinc/lib/exception.h
-boinc/lib/filesys.h
-boinc/lib/gui_rpc_client.h
-boinc/lib/hostinfo.h
-boinc/lib/language.h
-boinc/lib/libboinc.a
-boinc/lib/librsaeuro.a
-boinc/lib/md5.h
-boinc/lib/md5_file.h
-boinc/lib/mfile.h
-boinc/lib/miofile.h
-boinc/lib/msg_log.h
-boinc/lib/msg_queue.h
-boinc/lib/parse.h
-boinc/lib/proxy_info.h
-boinc/lib/result_state.h
-boinc/lib/shmem.h
-boinc/lib/stackwalker_win.h
-boinc/lib/std_fixes.h
-boinc/lib/synch.h
-boinc/lib/util.h
-boinc/api/Makefile.am
-boinc/api/boinc_api.h
-boinc/api/boinc_gl.h
-boinc/api/graphics_api.h
-boinc/api/graphics_data.h
-boinc/api/gutil.h
-boinc/api/mac_app_opengl.h
-boinc/api/mac_carbon_gl.h
-boinc/api/reduce.h
-boinc/api/x_opengl.h
- at dirrm boinc/api
- at dirrm boinc/client
- at dirrm boinc/lib
- at dirrm boinc/projects
- at dirrm boinc
+include/BOINC/acct_mgr_client.h
+include/BOINC/app_ipc.h
+include/BOINC/base64.h
+include/BOINC/bmplib.h
+include/BOINC/boinc_api.h
+include/BOINC/boinc_gl.h
+include/BOINC/boinc_win.h
+include/BOINC/boinc_zip.h
+include/BOINC/crypt.h
+include/BOINC/diagnostics.h
+include/BOINC/error_numbers.h
+include/BOINC/exception.h
+include/BOINC/filesys.h
+include/BOINC/graphics_api.h
+include/BOINC/graphics_data.h
+include/BOINC/graphics_impl.h
+include/BOINC/graphics_lib.h
+include/BOINC/gui_rpc_client.h
+include/BOINC/gutil.h
+include/BOINC/hostinfo.h
+include/BOINC/language.h
+include/BOINC/md5.h
+include/BOINC/md5_file.h
+include/BOINC/mem_usage.h
+include/BOINC/mfile.h
+include/BOINC/miofile.h
+include/BOINC/msg_log.h
+include/BOINC/msg_queue.h
+include/BOINC/network.h
+include/BOINC/parse.h
+include/BOINC/prefs.h
+include/BOINC/proxy_info.h
+include/BOINC/reduce.h
+include/BOINC/result_state.h
+include/BOINC/shmem.h
+include/BOINC/stackwalker_win.h
+include/BOINC/std_fixes.h
+include/BOINC/synch.h
+include/BOINC/tgalib.h
+include/BOINC/util.h
+include/BOINC/x_opengl.h
+lib/boinc/%%BOINC_BINARY%%
+lib/libboinc.a
+lib/libboinc_api.a
+lib/libboinc_graphics_api.a
+lib/libboinc_graphics_impl.a
+lib/libboinc_graphics_lib.a
+lib/librsaeuro.a
+lib/libboinc_zip.a
+ at dirrm include/BOINC
+ at dirrm lib/boinc
@unexec if [ -d %%BOINC_HOME%% ]; then echo "If you are deinstalling boinc completely, remove the %%BOINC_HOME%% directory."; fi
@unexec if [ -d %%BOINC_HOME%% ]; then echo -n "Also, d"; else echo -n "D"; fi
@unexec echo "on't forget to remove the \"%%BOINC_USER%%\" user."
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list