aboutsummaryrefslogtreecommitdiffstats
path: root/net/boinc-client
diff options
context:
space:
mode:
authorpav <pav@FreeBSD.org>2005-04-12 06:33:38 +0800
committerpav <pav@FreeBSD.org>2005-04-12 06:33:38 +0800
commitbda6507b4d8e046fea649b54dc439cd4f4974d0c (patch)
tree0067d8e37574bab3713706be7beef4c03227aa65 /net/boinc-client
parentf9468ad4182141b88782d6240c83e8891d64cada (diff)
downloadfreebsd-ports-gnome-bda6507b4d8e046fea649b54dc439cd4f4974d0c.tar.gz
freebsd-ports-gnome-bda6507b4d8e046fea649b54dc439cd4f4974d0c.tar.zst
freebsd-ports-gnome-bda6507b4d8e046fea649b54dc439cd4f4974d0c.zip
- Update to 4.67, now with GUI
Use WITHOUT_X11 to disable it if you don't want it PR: ports/79348 Submitted by: J.R. Oldroyd <fbsd@opal.com> (maintainer)
Diffstat (limited to 'net/boinc-client')
-rw-r--r--net/boinc-client/Makefile142
-rw-r--r--net/boinc-client/distinfo4
-rw-r--r--net/boinc-client/files/alt-patch-api-boinc_api.C49
-rw-r--r--net/boinc-client/files/boinc-client6
-rw-r--r--net/boinc-client/files/boinc.1 (renamed from net/boinc-client/files/boinc-client.1)113
-rw-r--r--net/boinc-client/files/boinc.sh60
-rw-r--r--net/boinc-client/files/extra-patch-api::boinc_api.C11
-rw-r--r--net/boinc-client/files/extra-patch-client::gui_rpc_server.C11
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-MainDocument.cpp551
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-MainFrame.cpp20
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-ViewProjects.cpp20
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-ViewResources.cpp20
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-ViewTransfers.cpp20
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-ViewWork.cpp31
-rw-r--r--net/boinc-client/files/extra-patch-clientgui-stdwx.h10
-rw-r--r--net/boinc-client/files/extra-patch-lib-acct_mgr_client.C24
-rw-r--r--net/boinc-client/files/extra-patch-lib-gui_rpc_client.C125
-rw-r--r--net/boinc-client/files/extra-patch-lib-network.h (renamed from net/boinc-client/files/extra-patch-client::net_xfer.C)10
-rw-r--r--net/boinc-client/files/extra-patch-lib-parse.C32
-rw-r--r--net/boinc-client/files/extra-patch-zip-boinc_zip.cpp20
-rw-r--r--net/boinc-client/files/patch-api-boinc_api.C55
-rw-r--r--net/boinc-client/files/patch-api::boinc_gl.h19
-rw-r--r--net/boinc-client/files/patch-client::gui_rpc_server.C17
-rw-r--r--net/boinc-client/files/patch-client::net_xfer.C17
-rw-r--r--net/boinc-client/files/patch-clientgui-BOINCGUIApp.cpp11
-rw-r--r--net/boinc-client/files/rc-boinc.sh (renamed from net/boinc-client/files/boinc.sh-4.x)22
-rw-r--r--net/boinc-client/pkg-message20
-rw-r--r--net/boinc-client/pkg-plist100
28 files changed, 1252 insertions, 288 deletions
diff --git a/net/boinc-client/Makefile b/net/boinc-client/Makefile
index fcf68841eff7..086c9c2e2e35 100644
--- a/net/boinc-client/Makefile
+++ b/net/boinc-client/Makefile
@@ -6,113 +6,131 @@
#
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@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 \
+ glut:${PORTSDIR}/graphics/libglut
+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
+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
-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
-.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 --git a/net/boinc-client/distinfo b/net/boinc-client/distinfo
index 2d7ef172c6c6..de5cd3d4bf8a 100644
--- a/net/boinc-client/distinfo
+++ b/net/boinc-client/distinfo
@@ -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 --git a/net/boinc-client/files/alt-patch-api-boinc_api.C b/net/boinc-client/files/alt-patch-api-boinc_api.C
new file mode 100644
index 000000000000..77ca0d152e03
--- /dev/null
+++ b/net/boinc-client/files/alt-patch-api-boinc_api.C
@@ -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 --git a/net/boinc-client/files/boinc-client b/net/boinc-client/files/boinc-client
deleted file mode 100644
index 43b01c2a39d3..000000000000
--- a/net/boinc-client/files/boinc-client
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-args="$@"
-
-exec idprio 31 su - %%BOINC_USER%% -c "%%BOINC_DATADIR%%/client/%%BOINC_BINARY%% $args"
-
diff --git a/net/boinc-client/files/boinc-client.1 b/net/boinc-client/files/boinc.1
index 7f712dc506a9..36f901d7bda6 100644
--- a/net/boinc-client/files/boinc-client.1
+++ b/net/boinc-client/files/boinc.1
@@ -1,12 +1,14 @@
-.TH boinc-client 1 "October 1, 2004" "" "BOINC"
+.TH boinc 1 "October 1, 2004" "" "BOINC"
.SH NAME
-boinc-client \- client for Berkeley Open Infrastructure for Network Computing
+boinc \- client for Berkeley Open Infrastructure for Network Computing
.SH SYNOPSIS
-boinc-client [ options ]
+boinc [ options ]
+.PP
+boincmgr
.PP
sh /usr/local/etc/rc.d/boinc.sh start|stop|restart|status
.SH DESCRIPTION
-.I boinc-client
+.I boinc
is the client for the Berkeley Open Infrastructure for Network
Computing (BOINC) service. It is used by projects such as SETI@HOME
and ClimatePredictor to offer your spare CPU cycles to such projects.
@@ -22,9 +24,9 @@ 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
+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
@@ -33,7 +35,7 @@ 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"
+.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
@@ -47,7 +49,7 @@ available. In such cases, you will not be able to participate in
that project from FreeBSD.
.PP
Running
-.I boinc-client
+.I boinc
with no arguments starts the service and any configured projects.
.PP
You can edit both BOINC general preferences and project-specific
@@ -56,19 +58,9 @@ 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
+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
@@ -83,6 +75,78 @@ 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
@@ -112,6 +176,8 @@ 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
@@ -140,16 +206,14 @@ default home directory for
.I %%BOINC_USER%%
user
.IP %%BOINC_HOME%%/*
-boinc-client configuration files
+boinc 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
+.I boinc
using ^Z works, but resuming using
.I fg
or
@@ -167,4 +231,5 @@ further restrict the size of its project or slot directories.
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 --git a/net/boinc-client/files/boinc.sh b/net/boinc-client/files/boinc.sh
index 77fc535ab612..e8ab909b7fe7 100644
--- a/net/boinc-client/files/boinc.sh
+++ b/net/boinc-client/files/boinc.sh
@@ -1,61 +1,7 @@
#!/bin/sh
-#
-# $FreeBSD: /tmp/pcvs/ports/net/boinc-client/files/Attic/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 --git a/net/boinc-client/files/extra-patch-api::boinc_api.C b/net/boinc-client/files/extra-patch-api::boinc_api.C
deleted file mode 100644
index 49f74d3977df..000000000000
--- a/net/boinc-client/files/extra-patch-api::boinc_api.C
+++ /dev/null
@@ -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 --git a/net/boinc-client/files/extra-patch-client::gui_rpc_server.C b/net/boinc-client/files/extra-patch-client::gui_rpc_server.C
deleted file mode 100644
index 056b9b8d185c..000000000000
--- a/net/boinc-client/files/extra-patch-client::gui_rpc_server.C
+++ /dev/null
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-MainDocument.cpp b/net/boinc-client/files/extra-patch-clientgui-MainDocument.cpp
new file mode 100644
index 000000000000..edeff97cf7c3
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-MainDocument.cpp
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-MainFrame.cpp b/net/boinc-client/files/extra-patch-clientgui-MainFrame.cpp
new file mode 100644
index 000000000000..398ee67c2592
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-MainFrame.cpp
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-ViewProjects.cpp b/net/boinc-client/files/extra-patch-clientgui-ViewProjects.cpp
new file mode 100644
index 000000000000..575c995fc858
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-ViewProjects.cpp
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-ViewResources.cpp b/net/boinc-client/files/extra-patch-clientgui-ViewResources.cpp
new file mode 100644
index 000000000000..6ec969a9fbdf
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-ViewResources.cpp
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-ViewTransfers.cpp b/net/boinc-client/files/extra-patch-clientgui-ViewTransfers.cpp
new file mode 100644
index 000000000000..083497a90e9d
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-ViewTransfers.cpp
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-ViewWork.cpp b/net/boinc-client/files/extra-patch-clientgui-ViewWork.cpp
new file mode 100644
index 000000000000..c64cd91e253a
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-ViewWork.cpp
@@ -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 --git a/net/boinc-client/files/extra-patch-clientgui-stdwx.h b/net/boinc-client/files/extra-patch-clientgui-stdwx.h
new file mode 100644
index 000000000000..3b56a240fc48
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-clientgui-stdwx.h
@@ -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 --git a/net/boinc-client/files/extra-patch-lib-acct_mgr_client.C b/net/boinc-client/files/extra-patch-lib-acct_mgr_client.C
new file mode 100644
index 000000000000..6e69b41ec146
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-lib-acct_mgr_client.C
@@ -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 --git a/net/boinc-client/files/extra-patch-lib-gui_rpc_client.C b/net/boinc-client/files/extra-patch-lib-gui_rpc_client.C
new file mode 100644
index 000000000000..86cdd6891518
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-lib-gui_rpc_client.C
@@ -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 --git a/net/boinc-client/files/extra-patch-client::net_xfer.C b/net/boinc-client/files/extra-patch-lib-network.h
index 17a0d272c49a..618a136a2ab1 100644
--- a/net/boinc-client/files/extra-patch-client::net_xfer.C
+++ b/net/boinc-client/files/extra-patch-lib-network.h
@@ -1,8 +1,8 @@
---- 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__)
+--- 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__)
diff --git a/net/boinc-client/files/extra-patch-lib-parse.C b/net/boinc-client/files/extra-patch-lib-parse.C
new file mode 100644
index 000000000000..fddba8b3bcad
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-lib-parse.C
@@ -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 --git a/net/boinc-client/files/extra-patch-zip-boinc_zip.cpp b/net/boinc-client/files/extra-patch-zip-boinc_zip.cpp
new file mode 100644
index 000000000000..f09ba3d5cc5f
--- /dev/null
+++ b/net/boinc-client/files/extra-patch-zip-boinc_zip.cpp
@@ -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 --git a/net/boinc-client/files/patch-api-boinc_api.C b/net/boinc-client/files/patch-api-boinc_api.C
new file mode 100644
index 000000000000..bead07207718
--- /dev/null
+++ b/net/boinc-client/files/patch-api-boinc_api.C
@@ -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 --git a/net/boinc-client/files/patch-api::boinc_gl.h b/net/boinc-client/files/patch-api::boinc_gl.h
deleted file mode 100644
index a9c41321c9cc..000000000000
--- a/net/boinc-client/files/patch-api::boinc_gl.h
+++ /dev/null
@@ -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 --git a/net/boinc-client/files/patch-client::gui_rpc_server.C b/net/boinc-client/files/patch-client::gui_rpc_server.C
deleted file mode 100644
index ead91b71a12d..000000000000
--- a/net/boinc-client/files/patch-client::gui_rpc_server.C
+++ /dev/null
@@ -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 --git a/net/boinc-client/files/patch-client::net_xfer.C b/net/boinc-client/files/patch-client::net_xfer.C
deleted file mode 100644
index 8d34dc5b2561..000000000000
--- a/net/boinc-client/files/patch-client::net_xfer.C
+++ /dev/null
@@ -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 --git a/net/boinc-client/files/patch-clientgui-BOINCGUIApp.cpp b/net/boinc-client/files/patch-clientgui-BOINCGUIApp.cpp
new file mode 100644
index 000000000000..6a7bed46aca2
--- /dev/null
+++ b/net/boinc-client/files/patch-clientgui-BOINCGUIApp.cpp
@@ -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 --git a/net/boinc-client/files/boinc.sh-4.x b/net/boinc-client/files/rc-boinc.sh
index 82ada6fea9a3..d90e8a697414 100644
--- a/net/boinc-client/files/boinc.sh-4.x
+++ b/net/boinc-client/files/rc-boinc.sh
@@ -1,11 +1,18 @@
#!/bin/sh
#
-# $FreeBSD: /tmp/pcvs/ports/net/boinc-client/files/Attic/boinc.sh-4.x,v 1.1 2004-12-15 05:14:36 edwin Exp $
+# $FreeBSD$
#
# Start or stop BOINC
#
-. /usr/local/etc/rc.subr
+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`
@@ -13,7 +20,8 @@ rcvar=`set_rcvar`
boinc_user=%%BOINC_USER%%
boinc_home=%%BOINC_HOME%%
program_file=%%BOINC_BINARY%%
-program_path=%%BOINC_DATADIR%%/client/${program_file}
+program_path=%%LOCALBASE%%/lib/boinc/${program_file}
+syslog_facility=daemon.err
[ -z "$boinc_enable" ] && boinc_enable="NO"
@@ -34,14 +42,14 @@ start)
"unable to start: ${program_file} is already running."
exit 72
fi
- echo -n "BOINC "
- idprio 31 su - ${boinc_user} -c "${program_path} >/dev/null &"
+ 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)
- program=`expr ${program_file} : '^\(................\).*$'`
- killall ${program} 2> /dev/null
+ killall ${program_file} 2> /dev/null
;;
restart)
diff --git a/net/boinc-client/pkg-message b/net/boinc-client/pkg-message
index 503e472e858e..1dc15cd7b26c 100644
--- a/net/boinc-client/pkg-message
+++ b/net/boinc-client/pkg-message
@@ -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 @@ you download the client source code to install yourself, and some
don't work on FreeBSD at all.
SETI@HOME for FreeBSD is available in port astro/boinc-setiathome.
+
+Einstein@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 --git a/net/boinc-client/pkg-plist b/net/boinc-client/pkg-plist
index c0eea75db1c5..ed28863f65eb 100644
--- a/net/boinc-client/pkg-plist
+++ b/net/boinc-client/pkg-plist
@@ -1,51 +1,57 @@
-@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
-@dirrm boinc/api
-@dirrm boinc/client
-@dirrm boinc/lib
-@dirrm boinc/projects
-@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
+@dirrm include/BOINC
+@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."