Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Feb 2005 18:48:34 -0500 (EST)
From:      "J.R. Oldroyd" <fbsd@opal.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/77997: update to boinc-client 4.66 with GUI support
Message-ID:  <200502232348.j1NNmYx5005976@linwhf.opal.com>
Resent-Message-ID: <200502232350.j1NNoRHE095950@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         77997
>Category:       ports
>Synopsis:       update to boinc-client 4.66 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 Feb 23 23:50:26 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 #74: Tue Feb 22 18:07:40 EST 2005 jr@linwhf.opal.com:/usr/src-current/sys/i386/compile/LINWHF i386
>Description:
This update brings the port to version 4.66.

Notes for committer:
This update renames and deletes several files:
	files/boinc.sh				renamed to files/rc::boinc.sh
	files/boinc.sh-4.x			deleted
	files/boinc-client			renamed to files/boinc.sh
	files/boinc-client.1			renamed to files/boinc.1
	files/extra-patch-api::boinc_api.C	deleted
	files/extra-patch-clientgui::ViewWork.cpp	added
	files/extra-patch-clientgui::stdwx.h	added
	files/extra-patch-lib::parse.C		added
	files/patch-api::boinc_gl.h		deleted
	files/patch-client::gui_rpc_server.C	deleted
	files/patch-client::net_xfer.C		deleted

Notes for users:
Version 4.66 is the latest in the boinc-client 4.5x/4.6x branch.
This was branched from the 4.1x branch some time ago and new
development has been done here, with 4.1x only receiving bug fixes.
The 4.6x branch is now stable enough that I am switching the port
to this.

The biggest change in 4.66 is that the GUI support now works.  There
is both a GUI management tool, boincmgr, and also a GUI status
screen can be viewed for each client app (this works for
astro/boinc-setiathome-4.07.20050218).

The FreeBSD wrapper script "boinc-client" and its man page have been
renamed to "boinc".

Unfortunately, the folks at Berkeley have taken to committing changes
to their CVS without incrementing their version number, so I have
added the date suffix to the port version here.

>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	Mon Feb 21 11:24:50 2005
@@ -6,110 +6,97 @@
 #
 
 PORTNAME=	boinc-client
-PORTVERSION=	4.19
+PORTVERSION=	4.66.20050216
 CATEGORIES=	net
 MASTER_SITES=	http://boinc.berkeley.edu/source/nightly/
-DISTNAME=	boinc_public-cvs-2005-01-26
+DISTNAME=	boinc-cvs-2005-02-16
 
 MAINTAINER=	fbsd@opal.com
 COMMENT=	Berkeley Open Infrastructure for Network Computing client
 
+LIB_DEPENDS=	iconv:${PORTSDIR}/converters/libiconv \
+		wx_gtk2:${PORTSDIR}/x11-toolkits/wxgtk2 \
+		jpeg:${PORTSDIR}/graphics/jpeg
+USE_XLIBS=	yes
+
 USE_REINPLACE=	yes
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--disable-server
-CONFIGURE_ENV=	CPPFLAGS=-I${X11BASE}/include CXXFLAGS=-I${X11BASE}/include
+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
+MLINKS=		boinc.1 boincmgr.1
 
-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_USER=	boinc
 BOINC_GROUP=	nobody
 BOINC_HOME=	/var/db/boinc
 BOINC_DATADIR=	${PREFIX}/boinc
+BOINC_BINARY=	boinc-client
 
 .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-client::gui_rpc_server.C
+EXTRA_PATCHES+=	${FILESDIR}/extra-patch-client::net_xfer.C
+EXTRA_PATCHES+=	${FILESDIR}/extra-patch-clientgui::ViewWork.cpp
+EXTRA_PATCHES+=	${FILESDIR}/extra-patch-clientgui::stdwx.h
+EXTRA_PATCHES+=	${FILESDIR}/extra-patch-lib::parse.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})
 
 post-build:
-	BBIN=`${FIND_BOINC_BINARY}`; \
-	${SED}  -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
+	${SED}  -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}: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-client > ${WRKDIR}/boinc-client; \
-	${SED}  -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
+		< ${FILESDIR}/boinc.sh > ${WRKDIR}/boinc.sh
+	${SED}  -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}: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-client.1 > ${WRKDIR}/boinc-client.1; \
-	${SED}  -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
+		< ${FILESDIR}/boinc.1 > ${WRKDIR}/boinc.1
+	${SED}  -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}: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" \
 		< ${PKGDIR}/pkg-install > ${WRKDIR}/pkg-install
-.if ${OSVERSION} >= 500000
-	BBIN=`${FIND_BOINC_BINARY}`; \
-	${SED}  -e "s:%%BOINC_BINARY%%:$$BBIN:g" \
+	${SED}  -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}: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" \
-		-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
+		< ${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
+	${INSTALL_SCRIPT} ${WRKDIR}/boinc.sh ${PREFIX}/bin/boinc
+	${INSTALL_PROGRAM} ${WRKSRC}/clientgui/`${FIND_BOINCMGR_BINARY}` ${PREFIX}/bin
+	${INSTALL_MAN} ${WRKDIR}/boinc.1 ${PREFIX}/man/man1
+	${MKDIR} ${PREFIX}/boinc/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/client/`${FIND_BOINC_BINARY}` ${PREFIX}/boinc/bin/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
+	${INSTALL} ${WRKSRC}/lib/*.[ah] ${PREFIX}/boinc/lib
+	${INSTALL} ${WRKSRC}/RSAEuro/source/librsaeuro.a ${PREFIX}/boinc/lib
 	${MKDIR} ${PREFIX}/boinc/api
-	${INSTALL} ${WRKDIR}/boinc_public/api/*.h ${PREFIX}/boinc/api
+	${INSTALL} ${WRKSRC}/api/*.[ah] ${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
+	${INSTALL_SCRIPT} ${WRKDIR}/rc-boinc.sh ${PREFIX}/etc/rc.d/boinc.sh
 	${CAT} ${PKGMESSAGE}
 
 post-install:
 	${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}
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	Wed Feb 16 10:35:13 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-02-16.tar.gz) = 262ca2e6d3114bd8be734e525fb8a48c
+SIZE (boinc-cvs-2004-02-16.tar.gz) = 5983640
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@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@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	Mon Feb 14 21:38:28 2005
@@ -0,0 +1,237 @@
+.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@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@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
+.IP %%BOINC_DATADIR%%
+boinc and BOINC project programs
+.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	Mon Feb 14 20:12:19 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=$LD_LIBRARY_PATH:%%BOINC_DATADIR%%/lib
 
-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 "%%BOINC_DATADIR%%/bin/%%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	Tue Feb 15 13:16:48 2005
@@ -1,8 +1,8 @@
---- 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 @@
+--- client/gui_rpc_server.C.orig	Tue Feb 15 02:30:44 2005
++++ client/gui_rpc_server.C	Tue Feb 15 13:55:04 2005
+@@ -48,7 +48,7 @@
  typedef int socklen_t;
- #elif defined(__APPLE__)
+ #elif defined( __APPLE__)
  typedef int32_t socklen_t;
 -#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
 +#elif !defined(__FreeBSD__)
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	Tue Feb 15 13:15:13 2005
@@ -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 @@
+--- client/net_xfer.C.orig	Fri Feb 11 18:39:38 2005
++++ client/net_xfer.C	Tue Feb 15 13:14:15 2005
+@@ -82,7 +82,7 @@
  typedef int socklen_t;
- #elif defined(__APPLE__)
+ #elif defined( __APPLE__)
  typedef int32_t socklen_t;
 -#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t)
 +#elif !defined(__FreeBSD__)
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	Tue Feb 15 20:46:53 2005
@@ -0,0 +1,17 @@
+--- clientgui/ViewWork.cpp.orig	Tue Feb 15 01:32:42 2005
++++ clientgui/ViewWork.cpp	Tue Feb 15 20:44:59 2005
+@@ -701,10 +701,14 @@
+     pDoc->GetWorkApplicationName(item, strTempName);
+     pDoc->GetWorkApplicationVersion(item, iBuffer);
+ 
++#ifndef __FreeBSD__
+     wxString strLocale = setlocale(LC_NUMERIC, NULL);
+     setlocale(LC_NUMERIC, "C");
++#endif
+     strBuffer.Printf(wxT("%s %.2f"), strTempName.c_str(), iBuffer/100.0);
++#ifndef __FreeBSD__
+     setlocale(LC_NUMERIC, strLocale.c_str());
++#endif
+ 
+     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	Tue Feb 15 20:46:19 2005
@@ -0,0 +1,12 @@
+--- clientgui/stdwx.h.orig	Mon Jan 31 19:54:04 2005
++++ clientgui/stdwx.h	Tue Feb 15 20:44:21 2005
+@@ -136,7 +136,9 @@
+ #include <sstream>
+ #include <vector>
+ #include <list>
++#ifndef __FreeBSD__
+ #include <locale>
++#endif
+ 
+ 
+ #define vsnprintf               _vsnprintf
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	Tue Feb 15 20:41:44 2005
@@ -0,0 +1,42 @@
+--- lib/parse.C.orig	Mon Feb  7 01:24:12 2005
++++ lib/parse.C	Tue Feb 15 20:41:05 2005
+@@ -31,7 +31,9 @@
+ #ifndef _WIN32
+ #include <cstring>
+ #include <cstdlib>
++#ifndef __FreeBSD__
+ #include <locale>
++#endif
+ #include <string>
+ #endif
+ 
+@@ -63,10 +65,14 @@
+ bool parse_int(const char* buf, const char* tag, int& x) {
+     char* p = strstr(buf, tag);
+     if (!p) return false;
++#ifndef __FreeBSD__
+     std::string strLocale = setlocale(LC_NUMERIC, NULL);
+     setlocale(LC_NUMERIC, "C");
++#endif
+     x = strtol(p+strlen(tag), 0, 0);        // this parses 0xabcd correctly
++#ifndef __FreeBSD__
+     setlocale(LC_NUMERIC, strLocale.c_str());
++#endif
+     return true;
+ }
+ 
+@@ -75,10 +81,14 @@
+ bool parse_double(const char* buf, const char* tag, double& x) {
+     char* p = strstr(buf, tag);
+     if (!p) return false;
++#ifndef __FreeBSD__
+     std::string strLocale = setlocale(LC_NUMERIC, NULL);
+     setlocale(LC_NUMERIC, "C");
++#endif
+     x = atof(p+strlen(tag));
++#ifndef __FreeBSD__
+     setlocale(LC_NUMERIC, strLocale.c_str());
++#endif
+     return true;
+ }
+ 
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/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	Mon Feb 14 20:10:47 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=%%BOINC_DATADIR%%/bin/${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=$LD_LIBRARY_PATH:%%BOINC_DATADIR%%/lib
+		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-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	Sat Feb 12 14:30:29 2005
@@ -1,6 +1,6 @@
-@exec mkdir -p %D/boinc/projects
-bin/boinc-client
-boinc/client/%%BOINC_BINARY%%
+bin/boinc
+bin/boincmgr
+boinc/bin/%%BOINC_BINARY%%
 etc/rc.d/boinc.sh
 boinc/Makefile.am
 boinc/lib/Makefile.am
@@ -19,11 +19,13 @@
 boinc/lib/librsaeuro.a
 boinc/lib/md5.h
 boinc/lib/md5_file.h
+boinc/lib/mem_usage.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/prefs.h
 boinc/lib/proxy_info.h
 boinc/lib/result_state.h
 boinc/lib/shmem.h
@@ -32,19 +34,24 @@
 boinc/lib/synch.h
 boinc/lib/util.h
 boinc/api/Makefile.am
+boinc/api/bmplib.h
 boinc/api/boinc_api.h
 boinc/api/boinc_gl.h
 boinc/api/graphics_api.h
 boinc/api/graphics_data.h
+boinc/api/graphics_impl.h
+boinc/api/graphics_lib.h
 boinc/api/gutil.h
-boinc/api/mac_app_opengl.h
-boinc/api/mac_carbon_gl.h
+boinc/api/libboinc_api.a
+boinc/api/libboinc_graphics_api.a
+boinc/api/libboinc_graphics_impl.a
+boinc/api/libboinc_graphics_lib.a
 boinc/api/reduce.h
+boinc/api/tgalib.h
 boinc/api/x_opengl.h
+@dirrm boinc/bin
 @dirrm boinc/api
-@dirrm boinc/client
 @dirrm boinc/lib
-@dirrm boinc/projects
 @dirrm 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
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200502232348.j1NNmYx5005976>