Date: Tue, 29 Mar 2005 20:52:28 -0500 (EST) From: "J.R. Oldroyd" <fbsd@opal.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/79348: net/boinc-client: update port to 4.67, now with GUI support Message-ID: <200503300152.j2U1qSVi012972@linwhf.opal.com> Resent-Message-ID: <200503300200.j2U20Dau035335@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 79348 >Category: ports >Synopsis: net/boinc-client: update port to 4.67, now with GUI support >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Mar 30 02:00:12 GMT 2005 >Closed-Date: >Last-Modified: >Originator: J.R. Oldroyd >Release: FreeBSD 6.0-CURRENT i386 >Organization: >Environment: System: FreeBSD linwhf.opal.com 6.0-CURRENT FreeBSD 6.0-CURRENT #77: Tue Mar 29 12:02:15 EST 2005 jr@linwhf.opal.com:/usr/src-current/sys/i386/compile/LINWHF i386 >Description: Update port to BOINC 4.67. The BOINC versions 4.19/20/21 are now relegated to bug fixes only. New development is in the 4.65/66/67 track. I am therefore switching the port to this track. This version supports the GUI. Details of additional changes at: http://opal.com/boinc/ Note that there may problems with the GUI on FreeBSD 4.x. If so, compile with "make -DWITHOUT_X11" to disable the GUI. Notes to committer: Files deleted: boinc-client boinc-client.1 boinc.sh-4.x extra-patch-api::boinc_api.C extra-patch-client::gui_rpc_server.C extra-patch-client::net_xfer.C patch-api::boinc_gl.h patch-client::gui_rpc_server.C patch-client::net_xfer.C Files added: alt-patch-api::boinc_api.C boinc.1 extra-patch-clientgui::MainDocument.cpp extra-patch-clientgui::MainFrame.cpp extra-patch-clientgui::ViewProjects.cpp extra-patch-clientgui::ViewResources.cpp extra-patch-clientgui::ViewTransfers.cpp extra-patch-clientgui::ViewWork.cpp extra-patch-clientgui::stdwx.h extra-patch-lib::acct_mgr_client.C extra-patch-lib::gui_rpc_client.C extra-patch-lib::network.h extra-patch-lib::parse.C extra-patch-zip::boinc_zip.cpp patch-api::boinc_api.C patch-clientgui::BOINCGUIApp.cpp rc::boinc.sh >How-To-Repeat: >Fix: diff -ruN /usr/ports/net/boinc-client/Makefile net/boinc-client/Makefile --- /usr/ports/net/boinc-client/Makefile Mon Jan 31 15:15:10 2005 +++ net/boinc-client/Makefile Tue Mar 29 17:18:29 2005 @@ -6,113 +6,130 @@ # PORTNAME= boinc-client -PORTVERSION= 4.19 +PORTVERSION= 4.67.20050320 CATEGORIES= net MASTER_SITES= http://boinc.berkeley.edu/source/nightly/ -DISTNAME= boinc_public-cvs-2005-01-26 +DISTNAME= boinc-cvs-2005-03-20 MAINTAINER= fbsd@opal.com COMMENT= Berkeley Open Infrastructure for Network Computing client +.include <bsd.port.pre.mk> + +# Build with "make -DWITHOUT_X11" if you don't want the boincmgr +# GUI management interface or the "screensaver" status displays +# from any of the client applications. +# +# Defining WITHOUT_X11 removes the dependencies on the X11 libs +# and the wxgtk2 toolkit and jpeg graphics lib. + +.if !defined(WITHOUT_X11) +LIB_DEPENDS= iconv:${PORTSDIR}/converters/libiconv \ + wx_gtk2:${PORTSDIR}/x11-toolkits/wxgtk2 \ + jpeg:${PORTSDIR}/graphics/jpeg +USE_XLIBS= yes +.endif + +USE_AUTOMAKE_VER= 19 +USE_AUTOCONF_VER= 259 +USE_AUTOHEADER_VER= 259 +USE_LIBTOOL_VER= 15 + USE_REINPLACE= yes GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-server -CONFIGURE_ENV= CPPFLAGS=-I${X11BASE}/include CXXFLAGS=-I${X11BASE}/include +.if defined(WITHOUT_X11) +CONFIGURE_ARGS+= --with-wx-config=false +.endif +CONFIGURE_ENV= CPPFLAGS=-I${X11BASE}/include CXXFLAGS="-I${X11BASE}/include -I${LOCALBASE}/include" -WRKSRC= ${WRKDIR}/boinc_public +WRKSRC= ${WRKDIR}/boinc PKGINSTALL= ${WRKDIR}/pkg-install PKGPLIST= ${WRKDIR}/pkg-plist -MAN1= boinc-client.1 +MAN1= boinc.1 +.if !defined(WITHOUT_X11) +MLINKS= boinc.1 boincmgr.1 +.endif -FIND_BOINC_BINARY=(cd ${WRKDIR}/boinc_public/client; make -V CLIENT_BIN_FILENAME) +FIND_BOINC_BINARY=(cd ${WRKSRC}/client; make -V CLIENT_BIN_FILENAME) +FIND_BOINCMGR_BINARY=(cd ${WRKSRC}/client; make -V CLIENT_GUI_BIN_FILENAME) +BOINC_BINARY= boinc-client BOINC_USER= boinc BOINC_GROUP= nobody BOINC_HOME= /var/db/boinc -BOINC_DATADIR= ${PREFIX}/boinc - -.include <bsd.port.pre.mk> - -.if ${OSVERSION} < 500000 -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-api::boinc_api.C -.endif -post-patch: .if ${OSVERSION} < 500000 - ${PATCH} -d ${WRKSRC} <${FILESDIR}/extra-patch-client::gui_rpc_server.C - ${PATCH} -d ${WRKSRC} <${FILESDIR}/extra-patch-client::net_xfer.C +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::MainDocument.cpp +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::MainFrame.cpp +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewProjects.cpp +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewResources.cpp +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewTransfers.cpp +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::ViewWork.cpp +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clientgui::stdwx.h +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::acct_mgr_client.C +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::network.h +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::gui_rpc_client.C +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-lib::parse.C +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-zip::boinc_zip.cpp .endif - ${CHMOD} +x ${WRKDIR}/boinc_public/configure -do-build: - @(cd ${WRKDIR}/boinc_public/client; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) - @(cd ${WRKDIR}/boinc_public/api; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) - @(cd ${WRKDIR}/boinc_public/lib; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) +pre-configure: + cd ${WRKSRC}; ${ACLOCAL} -I ${LOCALBASE}/share/libtool${USE_LIBTOOL_VER}/libltdl -I m4 post-build: - BBIN=`${FIND_BOINC_BINARY}`; \ - ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \ - -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \ + ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \ -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \ -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \ -e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \ - < ${FILESDIR}/boinc-client > ${WRKDIR}/boinc-client; \ - ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \ - -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \ + -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \ + < ${FILESDIR}/boinc.sh > ${WRKDIR}/boinc.sh + ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \ -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \ -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \ -e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \ - < ${FILESDIR}/boinc-client.1 > ${WRKDIR}/boinc-client.1; \ - ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \ - -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \ + -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \ + < ${FILESDIR}/boinc.1 > ${WRKDIR}/boinc.1 + ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \ -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \ -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \ -e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \ + -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \ < ${PKGDIR}/pkg-install > ${WRKDIR}/pkg-install -.if ${OSVERSION} >= 500000 - BBIN=`${FIND_BOINC_BINARY}`; \ - ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \ - -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \ - -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \ - -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \ - -e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \ - < ${FILESDIR}/boinc.sh > ${WRKDIR}/boinc.sh -.else - BBIN=`${FIND_BOINC_BINARY}`; \ - ${SED} -e "s:%%BOINC_BINARY%%:$$BBIN:g" \ - -e "s:%%BOINC_DATADIR%%:${BOINC_DATADIR}:g" \ + ${SED} -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \ -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \ -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \ -e "s:%%BOINC_GROUP%%:${BOINC_GROUP}:g" \ - < ${FILESDIR}/boinc.sh-4.x > ${WRKDIR}/boinc.sh -.endif + -e "s:%%LOCALBASE%%:${LOCALBASE}:g" \ + < ${FILESDIR}/rc::boinc.sh > ${WRKDIR}/rc::boinc.sh do-install: - ${INSTALL_SCRIPT} ${WRKDIR}/boinc-client ${PREFIX}/bin - ${INSTALL_MAN} ${WRKDIR}/boinc-client.1 ${PREFIX}/man/man1 - ${MKDIR} ${PREFIX}/boinc/client - ${INSTALL_PROGRAM} ${WRKDIR}/boinc_public/client/`${FIND_BOINC_BINARY}` ${PREFIX}/boinc/client - ${MKDIR} ${PREFIX}/boinc/lib - ${INSTALL} ${WRKDIR}/boinc_public/lib/*.h ${PREFIX}/boinc/lib - ${INSTALL} ${WRKDIR}/boinc_public/lib/libboinc.a ${PREFIX}/boinc/lib - ${INSTALL} ${WRKDIR}/boinc_public/RSAEuro/source/librsaeuro.a ${PREFIX}/boinc/lib - ${MKDIR} ${PREFIX}/boinc/api - ${INSTALL} ${WRKDIR}/boinc_public/api/*.h ${PREFIX}/boinc/api - ${TOUCH} ${PREFIX}/boinc/api/Makefile.am - ${TOUCH} ${PREFIX}/boinc/lib/Makefile.am - ${TOUCH} ${PREFIX}/boinc/Makefile.am - ${MKDIR} ${PREFIX}/boinc/projects - ${MKDIR} ${PREFIX}/etc/rc.d - ${INSTALL_SCRIPT} ${WRKDIR}/boinc.sh ${PREFIX}/etc/rc.d - ${CAT} ${PKGMESSAGE} + ${MKDIR} ${PREFIX}/lib/boinc + ${INSTALL_PROGRAM} ${WRKSRC}/client/`${FIND_BOINC_BINARY}` ${PREFIX}/lib/boinc/${BOINC_BINARY} +.if !defined(WITHOUT_X11) + ${INSTALL_PROGRAM} ${WRKSRC}/clientgui/`${FIND_BOINCMGR_BINARY}` ${PREFIX}/bin +.endif + ${MKDIR} ${PREFIX}/include/BOINC + ${INSTALL} ${WRKSRC}/api/*.h ${PREFIX}/include/BOINC + ${INSTALL} ${WRKSRC}/lib/*.h ${PREFIX}/include/BOINC + ${INSTALL} ${WRKSRC}/zip/*.h ${PREFIX}/include/BOINC + ${INSTALL} ${WRKSRC}/api/*.a ${PREFIX}/lib + ${INSTALL} ${WRKSRC}/lib/*.a ${PREFIX}/lib + ${INSTALL} ${WRKSRC}/zip/*.a ${PREFIX}/lib + ${INSTALL} ${WRKSRC}/RSAEuro/source/librsaeuro.a ${PREFIX}/lib post-install: + ${INSTALL_SCRIPT} ${WRKDIR}/boinc.sh ${PREFIX}/bin/boinc + ${INSTALL_MAN} ${WRKDIR}/boinc.1 ${PREFIX}/man/man1 + ${MKDIR} ${PREFIX}/etc/rc.d + ${INSTALL_SCRIPT} ${WRKDIR}/rc::boinc.sh ${PREFIX}/etc/rc.d/boinc.sh ${REINPLACE_CMD} \ - -e "s:%%BOINC_BINARY%%:`${FIND_BOINC_BINARY}`:g" \ + -e "s:%%BOINC_BINARY%%:${BOINC_BINARY}:g" \ -e "s:%%BOINC_HOME%%:${BOINC_HOME}:g" \ -e "s:%%BOINC_USER%%:${BOINC_USER}:g" \ ${TMPPLIST} + ${CAT} ${PKGMESSAGE} @${SETENV} ${SCRIPTS_ENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL .include <bsd.port.post.mk> diff -ruN /usr/ports/net/boinc-client/distinfo net/boinc-client/distinfo --- /usr/ports/net/boinc-client/distinfo Mon Jan 31 15:15:10 2005 +++ net/boinc-client/distinfo Sun Mar 20 20:37:57 2005 @@ -1,2 +1,2 @@ -MD5 (boinc_public-cvs-2005-01-26.tar.gz) = 59c8ca1810bd83f58d57ea54c8c27615 -SIZE (boinc_public-cvs-2004-01-26.tar.gz) = 3845012 +MD5 (boinc-cvs-2005-03-20.tar.gz) = 48ff80bf1839af0a744560f1eb4a858e +SIZE (boinc-cvs-2004-03-20.tar.gz) = 4755507 diff -ruN /usr/ports/net/boinc-client/files/alt-patch-api::boinc_api.C net/boinc-client/files/alt-patch-api::boinc_api.C --- /usr/ports/net/boinc-client/files/alt-patch-api::boinc_api.C Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/alt-patch-api::boinc_api.C Mon Mar 21 12:28:55 2005 @@ -0,0 +1,49 @@ +--- api/boinc_api.C.orig Sat Mar 19 16:39:16 2005 ++++ api/boinc_api.C Mon Mar 21 11:08:09 2005 +@@ -59,7 +59,7 @@ + static APP_INIT_DATA aid; + static FILE_LOCK file_lock; + APP_CLIENT_SHM* app_client_shm = 0; +-static volatile double time_until_checkpoint; ++static volatile int time_until_checkpoint; + // time until enable checkpoint + static volatile double time_until_fraction_done_update; + // time until report fraction done to core client +@@ -79,7 +79,7 @@ + static volatile int nrunning_ticks = 0; + #endif + +-#define TIMER_PERIOD 1.0 ++#define TIMER_PERIOD 1 + // period of API timer + // This determines the resolution of fraction done and CPU time reporting + // to the core client, and of checkpoint enabling. +@@ -164,7 +164,7 @@ + // the following may not be needed, but do it anyway + // + fraction_done = -1; +- time_until_checkpoint = aid.checkpoint_period; ++ time_until_checkpoint = (int) aid.checkpoint_period; + last_checkpoint_cpu_time = aid.wu_cpu_time; + time_until_fraction_done_update = aid.fraction_done_update_period; + last_wu_cpu_time = aid.wu_cpu_time; +@@ -548,8 +548,8 @@ + perror("boinc set_worker_timer() sigaction"); + return retval; + } +- value.it_value.tv_sec = (int)TIMER_PERIOD; +- value.it_value.tv_usec = ((int)(TIMER_PERIOD*1000000))%1000000; ++ value.it_value.tv_sec = TIMER_PERIOD; ++ value.it_value.tv_usec = 0; + value.it_interval = value.it_value; + retval = setitimer(ITIMER_REAL, &value, NULL); + if (retval) { +@@ -616,7 +616,7 @@ + last_checkpoint_cpu_time = last_wu_cpu_time; + update_app_progress(last_checkpoint_cpu_time, last_checkpoint_cpu_time, 0); + ready_to_checkpoint = false; +- time_until_checkpoint = aid.checkpoint_period; ++ time_until_checkpoint = (int) aid.checkpoint_period; + + return 0; + } diff -ruN /usr/ports/net/boinc-client/files/boinc-client net/boinc-client/files/boinc-client --- /usr/ports/net/boinc-client/files/boinc-client Sat Oct 16 15:29:30 2004 +++ net/boinc-client/files/boinc-client Wed Dec 31 19:00:00 1969 @@ -1,6 +0,0 @@ -#!/bin/sh - -args="$@" - -exec idprio 31 su - %%BOINC_USER%% -c "%%BOINC_DATADIR%%/client/%%BOINC_BINARY%% $args" - diff -ruN /usr/ports/net/boinc-client/files/boinc-client.1 net/boinc-client/files/boinc-client.1 --- /usr/ports/net/boinc-client/files/boinc-client.1 Sat Oct 16 15:29:30 2004 +++ net/boinc-client/files/boinc-client.1 Wed Dec 31 19:00:00 1969 @@ -1,170 +0,0 @@ -.TH boinc-client 1 "October 1, 2004" "" "BOINC" -.SH NAME -boinc-client \- client for Berkeley Open Infrastructure for Network Computing -.SH SYNOPSIS -boinc-client [ options ] -.PP -sh /usr/local/etc/rc.d/boinc.sh start|stop|restart|status -.SH DESCRIPTION -.I boinc-client -is the client for the Berkeley Open Infrastructure for Network -Computing (BOINC) service. It is used by projects such as SETI@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 Tue Mar 1 11:06:10 2005 @@ -0,0 +1,235 @@ +.TH boinc 1 "October 1, 2004" "" "BOINC" +.SH NAME +boinc \- client for Berkeley Open Infrastructure for Network Computing +.SH SYNOPSIS +boinc [ options ] +.PP +boincmgr +.PP +sh /usr/local/etc/rc.d/boinc.sh start|stop|restart|status +.SH DESCRIPTION +.I boinc +is the client for the Berkeley Open Infrastructure for Network +Computing (BOINC) service. It is used by projects such as SETI@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 +.SH BUGS +Suspending +.I boinc +using ^Z works, but resuming using +.I fg +or +.I bg +does not resume any client processes (e.g., SETI). These need to be +restarted using +.I "kill -CONT" +for each process. +.PP +Placing files in %%BOINC_HOME%% or its subdirectories can cause work +to fail as those files will be counted in disk usage limit checks. In +addition to configurable overall disk usage limits, each client may +further restrict the size of its project or slot directories. +.PP +On a hyperthreadded processor, performance may be limited due to shared +use of processor modules such as the FPU. +.SH "SEE ALSO" +.IR xhost (1), +http://boinc.berkeley.edu/ diff -ruN /usr/ports/net/boinc-client/files/boinc.sh net/boinc-client/files/boinc.sh --- /usr/ports/net/boinc-client/files/boinc.sh Sat Oct 16 15:29:30 2004 +++ net/boinc-client/files/boinc.sh Wed Mar 2 16:39:03 2005 @@ -1,61 +1,7 @@ #!/bin/sh -# -# $FreeBSD: ports/net/boinc-client/files/boinc.sh,v 1.1 2004/10/16 19:29:30 pav Exp $ -# -# Start or stop BOINC -# -. /etc/rc.subr +export LD_LIBRARY_PATH=%%LOCALBASE%%/lib/boinc -name="boinc" -rcvar=`set_rcvar` - -boinc_user=%%BOINC_USER%% -boinc_home=%%BOINC_HOME%% -program_file=%%BOINC_BINARY%% -program_path=%%BOINC_DATADIR%%/client/${program_file} - -[ -z "$boinc_enable" ] && boinc_enable="NO" - -load_rc_config $name - -case "$1" in -start) - if checkyesno boinc_enable - then - if [ ! -x ${program_path} ] - then - logger -sp ${syslog_facility} -t ${program_file} \ - "unable to start: ${program_path} is missing." - exit 72 - fi - if ps axo ucomm | egrep ${program_file}; then - logger -sp ${syslog_facility} -t ${program_file} \ - "unable to start: ${program_file} is already running." - exit 72 - fi - echo -n "BOINC " - idprio 31 su - ${boinc_user} -c "${program_path} >/dev/null &" - fi - ;; - -stop) - program=`expr ${program_file} : '^\(...................\).*$'` - killall ${program} 2> /dev/null - ;; - -restart) - $0 stop - $0 start - ;; - -status) - ps auxww | egrep ${program_file} | egrep -v "($0|egrep)" - ;; - -*) - echo "usage: ${name} {start|stop|restart|status}" >&2 - exit 64 - ;; -esac +args=${@+"$@"} +exec idprio 31 su - %%BOINC_USER%% -c "%%LOCALBASE%%/lib/boinc/%%BOINC_BINARY%% $args" diff -ruN /usr/ports/net/boinc-client/files/boinc.sh-4.x net/boinc-client/files/boinc.sh-4.x --- /usr/ports/net/boinc-client/files/boinc.sh-4.x Wed Dec 15 00:14:36 2004 +++ net/boinc-client/files/boinc.sh-4.x Wed Dec 31 19:00:00 1969 @@ -1,61 +0,0 @@ -#!/bin/sh -# -# $FreeBSD: ports/net/boinc-client/files/boinc.sh-4.x,v 1.1 2004/12/15 05:14:36 edwin Exp $ -# -# Start or stop BOINC -# - -. /usr/local/etc/rc.subr - -name="boinc" -rcvar=`set_rcvar` - -boinc_user=%%BOINC_USER%% -boinc_home=%%BOINC_HOME%% -program_file=%%BOINC_BINARY%% -program_path=%%BOINC_DATADIR%%/client/${program_file} - -[ -z "$boinc_enable" ] && boinc_enable="NO" - -load_rc_config $name - -case "$1" in -start) - if checkyesno boinc_enable - then - if [ ! -x ${program_path} ] - then - logger -sp ${syslog_facility} -t ${program_file} \ - "unable to start: ${program_path} is missing." - exit 72 - fi - if ps axo ucomm | egrep ${program_file}; then - logger -sp ${syslog_facility} -t ${program_file} \ - "unable to start: ${program_file} is already running." - exit 72 - fi - echo -n "BOINC " - idprio 31 su - ${boinc_user} -c "${program_path} >/dev/null &" - fi - ;; - -stop) - program=`expr ${program_file} : '^\(................\).*$'` - killall ${program} 2> /dev/null - ;; - -restart) - $0 stop - $0 start - ;; - -status) - ps auxww | egrep ${program_file} | egrep -v "($0|egrep)" - ;; - -*) - echo "usage: ${name} {start|stop|restart|status}" >&2 - exit 64 - ;; -esac - diff -ruN /usr/ports/net/boinc-client/files/extra-patch-api::boinc_api.C net/boinc-client/files/extra-patch-api::boinc_api.C --- /usr/ports/net/boinc-client/files/extra-patch-api::boinc_api.C Wed Dec 15 00:14:36 2004 +++ net/boinc-client/files/extra-patch-api::boinc_api.C Wed Dec 31 19:00:00 1969 @@ -1,11 +0,0 @@ ---- api/boinc_api.C.orig Sun Sep 5 19:28:46 2004 -+++ api/boinc_api.C Thu Dec 9 10:22:30 2004 -@@ -116,7 +116,7 @@ - options.handle_trickle_ups = true; - options.handle_trickle_downs = true; - options.handle_process_control = true; -- options.send_status_msgs = true; -+ options.send_status_msgs = false; - options.direct_process_action = true; - return boinc_init_options(options); - } diff -ruN /usr/ports/net/boinc-client/files/extra-patch-client::gui_rpc_server.C net/boinc-client/files/extra-patch-client::gui_rpc_server.C --- /usr/ports/net/boinc-client/files/extra-patch-client::gui_rpc_server.C Tue Jan 25 19:13:43 2005 +++ net/boinc-client/files/extra-patch-client::gui_rpc_server.C Wed Dec 31 19:00:00 1969 @@ -1,11 +0,0 @@ ---- client/gui_rpc_server.C.orig Tue Dec 21 13:25:39 2004 -+++ client/gui_rpc_server.C Tue Dec 21 13:27:04 2004 -@@ -49,7 +49,7 @@ - typedef int socklen_t; - #elif defined(__APPLE__) - typedef int32_t socklen_t; --#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t) -+#elif !defined(__FreeBSD__) - typedef size_t socklen_t; - #endif - diff -ruN /usr/ports/net/boinc-client/files/extra-patch-client::net_xfer.C net/boinc-client/files/extra-patch-client::net_xfer.C --- /usr/ports/net/boinc-client/files/extra-patch-client::net_xfer.C Tue Jan 25 19:13:43 2005 +++ net/boinc-client/files/extra-patch-client::net_xfer.C Wed Dec 31 19:00:00 1969 @@ -1,11 +0,0 @@ ---- client/net_xfer.C.orig Tue Dec 21 13:25:39 2004 -+++ client/net_xfer.C Tue Dec 21 13:28:15 2004 -@@ -80,7 +80,7 @@ - typedef int socklen_t; - #elif defined(__APPLE__) - typedef int32_t socklen_t; --#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t) -+#elif !defined(__FreeBSD__) - typedef size_t socklen_t; - #endif - diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::MainDocument.cpp Sun Mar 20 21:59:21 2005 @@ -0,0 +1,551 @@ +--- clientgui/MainDocument.cpp.orig Tue Mar 15 16:53:12 2005 ++++ clientgui/MainDocument.cpp Sun Mar 20 21:59:15 2005 +@@ -178,7 +178,7 @@ + if ( IsConnected() ) + return BOINC_SUCCESS; + +- str.clear(); ++ str = ""; + + if ( strMachine.empty() && !m_strConnectedComputerName.empty() ) + str = m_strConnectedComputerName.c_str(); +@@ -416,7 +416,7 @@ + + m_fProjectTotalResourceShare = 0.0; + for (i=0; i < (long)project_status.projects.size(); i++) { +- m_fProjectTotalResourceShare += project_status.projects.at( i )->resource_share; ++ m_fProjectTotalResourceShare += project_status.projects[i]->resource_share; + } + + return iRetVal; +@@ -445,7 +445,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -470,7 +470,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -491,7 +491,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -512,7 +512,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -533,7 +533,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -554,7 +554,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -575,7 +575,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -603,7 +603,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -653,7 +653,7 @@ + + if ( NULL != pProject ) + { +- Url = pProject->gui_urls.at( iWebsiteIndex ); ++ Url = pProject->gui_urls[iWebsiteIndex]; + strBuffer = Url.name.c_str(); + } + +@@ -676,7 +676,7 @@ + + if ( NULL != pProject ) + { +- Url = pProject->gui_urls.at( iWebsiteIndex ); ++ Url = pProject->gui_urls[iWebsiteIndex]; + strBuffer = Url.description.c_str(); + } + +@@ -699,7 +699,7 @@ + + if ( NULL != pProject ) + { +- Url = pProject->gui_urls.at( iWebsiteIndex ); ++ Url = pProject->gui_urls[iWebsiteIndex]; + strBuffer = Url.url.c_str(); + } + +@@ -715,7 +715,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -737,7 +737,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -765,7 +765,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -787,7 +787,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -809,7 +809,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -832,7 +832,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -866,7 +866,7 @@ + try + { + if ( !project_status.projects.empty() ) +- pProject = project_status.projects.at( iIndex ); ++ pProject = project_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -930,7 +930,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -963,7 +963,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -987,7 +987,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1027,7 +1027,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1064,7 +1064,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1085,7 +1085,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1106,7 +1106,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1127,7 +1127,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1148,7 +1148,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1169,7 +1169,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1191,7 +1191,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1213,7 +1213,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1235,7 +1235,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1257,7 +1257,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1279,7 +1279,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1301,7 +1301,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1323,7 +1323,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1345,7 +1345,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1368,7 +1368,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1404,7 +1404,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1440,7 +1440,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1472,7 +1472,7 @@ + try + { + if ( !results.results.empty() ) +- pResult = results.results.at( iIndex ); ++ pResult = results.results[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1512,7 +1512,7 @@ + } + + if ( messages.messages.size() != 0 ) +- m_iMessageSequenceNumber = messages.messages.at( messages.messages.size()-1 )->seqno; ++ m_iMessageSequenceNumber = messages.messages[messages.messages.size()-1]->seqno; + + return iRetVal; + } +@@ -1539,7 +1539,7 @@ + try + { + if ( !messages.messages.empty() ) +- pMessage = messages.messages.at( iIndex ); ++ pMessage = messages.messages[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1560,7 +1560,7 @@ + try + { + if ( !messages.messages.empty() ) +- pMessage = messages.messages.at( iIndex ); ++ pMessage = messages.messages[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1584,7 +1584,7 @@ + try + { + if ( !messages.messages.empty() ) +- pMessage = messages.messages.at( iIndex ); ++ pMessage = messages.messages[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1605,7 +1605,7 @@ + try + { + if ( !messages.messages.empty() ) +- pMessage = messages.messages.at( iIndex ); ++ pMessage = messages.messages[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1663,7 +1663,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1684,7 +1684,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1705,7 +1705,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1726,7 +1726,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1747,7 +1747,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1768,7 +1768,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1789,7 +1789,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1810,7 +1810,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1832,7 +1832,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1853,7 +1853,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1875,7 +1875,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1897,7 +1897,7 @@ + try + { + if ( !ft.file_transfers.empty() ) +- pFT = ft.file_transfers.at( iIndex ); ++ pFT = ft.file_transfers[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1949,7 +1949,7 @@ + try + { + if ( !resource_status.projects.empty() ) +- pProject = resource_status.projects.at( iIndex ); ++ pProject = resource_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { +@@ -1978,7 +1978,7 @@ + try + { + if ( !resource_status.projects.empty() ) +- pProject = resource_status.projects.at( iIndex ); ++ pProject = resource_status.projects[iIndex]; + } + catch ( std::out_of_range e ) + { diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::MainFrame.cpp Thu Mar 24 11:13:44 2005 @@ -0,0 +1,20 @@ +--- clientgui/MainFrame.cpp.orig Sat Mar 12 01:51:31 2005 ++++ clientgui/MainFrame.cpp Thu Mar 24 11:12:36 2005 +@@ -1106,7 +1106,6 @@ + wxString strConnectedMachine = wxEmptyString; + wxString strStatusText = wxEmptyString; + wxString strTitle = m_strBaseTitle; +- wxString strLocale = setlocale(LC_NUMERIC, NULL); + + pDoc->GetConnectedComputerName( strConnectedMachine ); + if ( strConnectedMachine.empty() ) +@@ -1119,9 +1118,7 @@ + strStatusText += strConnectedMachine; + } + +- setlocale(LC_NUMERIC, "C"); + strBuffer.Printf(wxT("%.2f"), pDoc->GetCoreClientVersion()/100.0); +- setlocale(LC_NUMERIC, strLocale.c_str()); + + strTitle.Printf(_("%s - (%s)"), m_strBaseTitle.c_str(), strConnectedMachine.c_str()); + strStatusText.Printf(_("Connected to %s (%s)"), strConnectedMachine.c_str(), strBuffer.c_str()); diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::ViewProjects.cpp Sun Mar 20 21:29:09 2005 @@ -0,0 +1,20 @@ +--- clientgui/ViewProjects.cpp.orig Tue Mar 15 18:44:48 2005 ++++ clientgui/ViewProjects.cpp Sun Mar 20 21:29:09 2005 +@@ -230,7 +230,7 @@ + + wxString CViewProjects::OnListGetItemText(long item, long column) const + { +- CProject* project = m_ProjectCache.at( item ); ++ CProject* project = m_ProjectCache[item]; + wxString strBuffer = wxEmptyString; + + switch(column) +@@ -536,7 +536,7 @@ + + wxInt32 CViewProjects::UpdateCache( long item, long column, wxString& strNewData ) + { +- CProject* project = m_ProjectCache.at( item ); ++ CProject* project = m_ProjectCache[item]; + + switch(column) + { diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::ViewResources.cpp Sun Mar 20 21:31:22 2005 @@ -0,0 +1,20 @@ +--- clientgui/ViewResources.cpp.orig Tue Mar 15 18:44:48 2005 ++++ clientgui/ViewResources.cpp Sun Mar 20 21:31:22 2005 +@@ -145,7 +145,7 @@ + + wxString CViewResources::OnListGetItemText( long item, long column ) const + { +- CResource* resource = m_ResourceCache.at( item ); ++ CResource* resource = m_ResourceCache[item]; + wxString strBuffer = wxEmptyString; + + switch(column) +@@ -270,7 +270,7 @@ + + wxInt32 CViewResources::UpdateCache( long item, long column, wxString& strNewData ) + { +- CResource* resource = m_ResourceCache.at( item ); ++ CResource* resource = m_ResourceCache[item]; + + switch(column) + { diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::ViewTransfers.cpp Sun Mar 20 21:32:00 2005 @@ -0,0 +1,20 @@ +--- clientgui/ViewTransfers.cpp.orig Tue Mar 15 18:44:48 2005 ++++ clientgui/ViewTransfers.cpp Sun Mar 20 21:32:00 2005 +@@ -177,7 +177,7 @@ + + wxString CViewTransfers::OnListGetItemText(long item, long column) const + { +- CTransfer* transfer = m_TransferCache.at( item ); ++ CTransfer* transfer = m_TransferCache[item]; + wxString strBuffer = wxEmptyString; + + switch(column) +@@ -372,7 +372,7 @@ + + wxInt32 CViewTransfers::UpdateCache( long item, long column, wxString& strNewData ) + { +- CTransfer* transfer = m_TransferCache.at( item ); ++ CTransfer* transfer = m_TransferCache[item]; + + switch(column) + { diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::ViewWork.cpp Sun Mar 20 21:35:51 2005 @@ -0,0 +1,31 @@ +--- clientgui/ViewWork.cpp.orig Tue Mar 15 18:44:48 2005 ++++ clientgui/ViewWork.cpp Sun Mar 20 21:35:22 2005 +@@ -190,7 +190,7 @@ + + wxString CViewWork::OnListGetItemText( long item, long column ) const + { +- CWork* work = m_WorkCache.at( item ); ++ CWork* work = m_WorkCache[item]; + wxString strBuffer = wxEmptyString; + + switch(column) +@@ -436,7 +436,7 @@ + + wxInt32 CViewWork::UpdateCache( long item, long column, wxString& strNewData ) + { +- CWork* work = m_WorkCache.at( item ); ++ CWork* work = m_WorkCache[item]; + + switch(column) + { +@@ -589,10 +589,7 @@ + pDoc->GetWorkApplicationName(item, strTempName); + pDoc->GetWorkApplicationVersion(item, iBuffer); + +- wxString strLocale = setlocale(LC_NUMERIC, NULL); +- setlocale(LC_NUMERIC, "C"); + strBuffer.Printf(wxT("%s %.2f"), strTempName.c_str(), iBuffer/100.0); +- setlocale(LC_NUMERIC, strLocale.c_str()); + + return 0; + } diff -ruN /usr/ports/net/boinc-client/files/extra-patch-clientgui::stdwx.h net/boinc-client/files/extra-patch-clientgui::stdwx.h --- /usr/ports/net/boinc-client/files/extra-patch-clientgui::stdwx.h Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-clientgui::stdwx.h Sun Mar 20 21:38:45 2005 @@ -0,0 +1,10 @@ +--- clientgui/stdwx.h.orig Thu Feb 17 18:44:35 2005 ++++ clientgui/stdwx.h Sun Mar 20 21:38:15 2005 +@@ -136,7 +136,6 @@ + #include <sstream> + #include <vector> + #include <list> +-#include <locale> + + + #ifdef __WXMSW__ diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::acct_mgr_client.C net/boinc-client/files/extra-patch-lib::acct_mgr_client.C --- /usr/ports/net/boinc-client/files/extra-patch-lib::acct_mgr_client.C Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-lib::acct_mgr_client.C Thu Mar 24 10:14:11 2005 @@ -0,0 +1,24 @@ +--- lib/acct_mgr_client.C.orig Sat Mar 12 01:51:33 2005 ++++ lib/acct_mgr_client.C Thu Mar 24 10:12:20 2005 +@@ -65,8 +65,8 @@ + } + + void ACCT_MGR::clear() { +- name.clear(); +- url.clear(); ++ name = ""; ++ url = ""; + } + + ACCT_MGR_LOGIN::ACCT_MGR_LOGIN() { +@@ -93,8 +93,8 @@ + } + + void ACCT_MGR_LOGIN::clear() { +- login.clear(); +- password.clear(); ++ login = ""; ++ password = ""; + } + + diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::gui_rpc_client.C net/boinc-client/files/extra-patch-lib::gui_rpc_client.C --- /usr/ports/net/boinc-client/files/extra-patch-lib::gui_rpc_client.C Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-lib::gui_rpc_client.C Sun Mar 20 22:32:18 2005 @@ -0,0 +1,125 @@ +--- lib/gui_rpc_client.C.orig Thu Mar 17 16:04:53 2005 ++++ lib/gui_rpc_client.C Sun Mar 20 22:32:04 2005 +@@ -164,11 +164,11 @@ + } + + void PROJECT::clear() { +- master_url.clear(); ++ master_url = ""; + resource_share = 0.0; +- project_name.clear(); +- user_name.clear(); +- team_name.clear(); ++ project_name = ""; ++ user_name = ""; ++ team_name = ""; + user_total_credit = 0.0; + user_expavg_credit = 0.0; + host_total_credit = 0.0; +@@ -209,7 +209,7 @@ + } + + void APP::clear() { +- name.clear(); ++ name = ""; + project = NULL; + } + +@@ -238,7 +238,7 @@ + } + + void APP_VERSION::clear() { +- app_name.clear(); ++ app_name = ""; + version_num = 0; + app = NULL; + project = NULL; +@@ -276,8 +276,8 @@ + } + + void WORKUNIT::clear() { +- name.clear(); +- app_name.clear(); ++ name = ""; ++ app_name = ""; + version_num = 0; + rsc_fpops_est = 0.0; + rsc_fpops_bound = 0.0; +@@ -376,9 +376,9 @@ + } + + void RESULT::clear() { +- name.clear(); +- wu_name.clear(); +- project_url.clear(); ++ name = ""; ++ wu_name = ""; ++ project_url = ""; + report_deadline = 0; + ready_to_report = false; + got_server_ack = false; +@@ -389,7 +389,7 @@ + signal = 0; + active_task_state = 0; + active_task = false; +- stderr_out.clear(); ++ stderr_out = ""; + app_version_num = 0; + checkpoint_cpu_time = 0.0; + current_cpu_time = 0.0; +@@ -463,9 +463,9 @@ + } + + void FILE_TRANSFER::clear() { +- name.clear(); +- project_url.clear(); +- project_name.clear(); ++ name = ""; ++ project_url = ""; ++ project_name = ""; + nbytes = 0.0; + generated_locally = false; + uploaded = false; +@@ -481,7 +481,7 @@ + bytes_xferred = 0.0; + file_offset = 0.0; + xfer_speed = 0.0; +- hostname.clear(); ++ hostname = ""; + project = NULL; + } + +@@ -516,10 +516,10 @@ + } + + void MESSAGE::clear() { +- project.clear(); ++ project = ""; + priority = 0; + timestamp = 0; +- body.clear(); ++ body = ""; + } + + PROXY_INFO::PROXY_INFO() { +@@ -570,14 +570,14 @@ + use_socks_proxy = false; + use_http_authentication = false; + socks_version = 0; +- socks_server_name.clear(); +- http_server_name.clear(); ++ socks_server_name = ""; ++ http_server_name = ""; + socks_server_port = 0; + http_server_port = 0; +- http_user_name.clear(); +- http_user_passwd.clear(); +- socks5_user_name.clear(); +- socks5_user_passwd.clear(); ++ http_user_name = ""; ++ http_user_passwd = ""; ++ socks5_user_name = ""; ++ socks5_user_passwd = ""; + } + + HOST_INFO::HOST_INFO() { diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::network.h net/boinc-client/files/extra-patch-lib::network.h --- /usr/ports/net/boinc-client/files/extra-patch-lib::network.h Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-lib::network.h Sun Mar 20 22:36:08 2005 @@ -0,0 +1,11 @@ +--- lib/network.h.orig Mon Mar 7 16:19:09 2005 ++++ lib/network.h Sun Mar 20 22:35:20 2005 +@@ -25,7 +25,7 @@ + #define SHUT_WR SD_SEND + #elif defined( __APPLE__) + typedef int32_t socklen_t; +-#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t) ++#elif !defined(__FreeBSD__) + typedef size_t socklen_t; + #endif + diff -ruN /usr/ports/net/boinc-client/files/extra-patch-lib::parse.C net/boinc-client/files/extra-patch-lib::parse.C --- /usr/ports/net/boinc-client/files/extra-patch-lib::parse.C Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-lib::parse.C Sun Mar 20 21:45:49 2005 @@ -0,0 +1,32 @@ +--- lib/parse.C.orig Tue Mar 15 15:23:24 2005 ++++ lib/parse.C Sun Mar 20 21:45:20 2005 +@@ -31,7 +31,6 @@ + #ifndef _WIN32 + #include <cstring> + #include <cstdlib> +-#include <locale> + #include <string> + #endif + +@@ -63,10 +62,7 @@ + bool parse_int(const char* buf, const char* tag, int& x) { + char* p = strstr(buf, tag); + if (!p) return false; +- std::string strLocale = setlocale(LC_NUMERIC, NULL); +- setlocale(LC_NUMERIC, "C"); + x = strtol(p+strlen(tag), 0, 0); // this parses 0xabcd correctly +- setlocale(LC_NUMERIC, strLocale.c_str()); + return true; + } + +@@ -75,10 +71,7 @@ + bool parse_double(const char* buf, const char* tag, double& x) { + char* p = strstr(buf, tag); + if (!p) return false; +- std::string strLocale = setlocale(LC_NUMERIC, NULL); +- setlocale(LC_NUMERIC, "C"); + x = atof(p+strlen(tag)); +- setlocale(LC_NUMERIC, strLocale.c_str()); + return true; + } + diff -ruN /usr/ports/net/boinc-client/files/extra-patch-zip::boinc_zip.cpp net/boinc-client/files/extra-patch-zip::boinc_zip.cpp --- /usr/ports/net/boinc-client/files/extra-patch-zip::boinc_zip.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/extra-patch-zip::boinc_zip.cpp Sun Mar 20 21:49:33 2005 @@ -0,0 +1,20 @@ +--- zip/boinc_zip.cpp.orig Sun Jan 2 13:29:37 2005 ++++ zip/boinc_zip.cpp Sun Mar 20 21:49:07 2005 +@@ -129,7 +129,7 @@ + //sz 3 onward will be each vector + int jj; + for (jj=0; jj<nVecSize; jj++) +- strcpy(av[3+jj], pvectszFileIn->at(jj).c_str()); ++ strcpy(av[3+jj], (*pvectszFileIn)[jj].c_str()); + } + else + { +@@ -141,7 +141,7 @@ + + // if they passed in a directory unzip there + if (carg == 4) +- sprintf(av[3], "-d%s", pvectszFileIn->at(0).c_str()); ++ sprintf(av[3], "-d%s", (*pvectszFileIn)[0].c_str()); + } + // strcpy(av[carg-1], ""); // null arg + // printf("args: %s %s %s %s\n", av[0], av[1], av[2], av[3]); diff -ruN /usr/ports/net/boinc-client/files/patch-api::boinc_api.C net/boinc-client/files/patch-api::boinc_api.C --- /usr/ports/net/boinc-client/files/patch-api::boinc_api.C Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/patch-api::boinc_api.C Wed Mar 23 15:49:52 2005 @@ -0,0 +1,55 @@ +--- api/boinc_api.C.orig Sat Mar 19 16:39:16 2005 ++++ api/boinc_api.C Wed Mar 23 15:49:01 2005 +@@ -56,6 +56,8 @@ + // Unless otherwise noted, "CPU time" refers to the sum over all episodes + // (not counting the part after the last checkpoint in an episode). + ++pthread_t timer_thread_handle; ++ + static APP_INIT_DATA aid; + static FILE_LOCK file_lock; + APP_CLIENT_SHM* app_client_shm = 0; +@@ -506,6 +508,19 @@ + #endif + } + ++#ifndef _USECONDS_T_DECLARED ++typedef unsigned int useconds_t; ++#endif ++ ++void * ++timer_thread(void *) ++{ ++ while(1) { ++ usleep((useconds_t)(TIMER_PERIOD*1000000)); ++ worker_timer(0); ++ } ++ /*NOTREACHED*/ ++} + + // set up a periodic timer interrupt for the worker thread. + // This is called only and always by the worker thread +@@ -539,21 +554,9 @@ + // + SetThreadPriority(worker_thread_handle, THREAD_PRIORITY_LOWEST); + #else +- struct sigaction sa; +- itimerval value; +- sa.sa_handler = worker_timer; +- sa.sa_flags = SA_RESTART; +- retval = sigaction(SIGALRM, &sa, NULL); +- if (retval) { +- perror("boinc set_worker_timer() sigaction"); +- return retval; +- } +- value.it_value.tv_sec = (int)TIMER_PERIOD; +- value.it_value.tv_usec = ((int)(TIMER_PERIOD*1000000))%1000000; +- value.it_interval = value.it_value; +- retval = setitimer(ITIMER_REAL, &value, NULL); ++ retval = pthread_create(&timer_thread_handle, NULL, timer_thread, NULL); + if (retval) { +- perror("boinc set_worker_timer() setitimer"); ++ perror("boinc set_worker_timer() pthread_create(timer_thread)"); + } + #endif + return retval; diff -ruN /usr/ports/net/boinc-client/files/patch-api::boinc_gl.h net/boinc-client/files/patch-api::boinc_gl.h --- /usr/ports/net/boinc-client/files/patch-api::boinc_gl.h Sat Oct 16 15:29:30 2004 +++ net/boinc-client/files/patch-api::boinc_gl.h Wed Dec 31 19:00:00 1969 @@ -1,19 +0,0 @@ ---- api/boinc_gl.h.orig Wed Sep 1 19:15:30 2004 -+++ api/boinc_gl.h Fri Oct 1 12:06:47 2004 -@@ -54,8 +54,6 @@ - # include <OpenGL/glu.h> - # endif - --# include "GL/glut.h" --/* - # if defined(HAVE_GLUT_H) - # include "glut.h" - # elif defined(HAVE_GL_GLUT_H) -@@ -65,7 +63,6 @@ - # elif defined(HAVE_GLUT_GLUT_H) - # include <GLUT/glut.h> - # endif --*/ - - #endif // _WIN32 - diff -ruN /usr/ports/net/boinc-client/files/patch-client::gui_rpc_server.C net/boinc-client/files/patch-client::gui_rpc_server.C --- /usr/ports/net/boinc-client/files/patch-client::gui_rpc_server.C Wed Dec 15 00:14:36 2004 +++ net/boinc-client/files/patch-client::gui_rpc_server.C Wed Dec 31 19:00:00 1969 @@ -1,17 +0,0 @@ ---- client/gui_rpc_server.C.orig Mon Sep 27 15:07:29 2004 -+++ client/gui_rpc_server.C Thu Dec 2 20:59:58 2004 -@@ -47,12 +47,10 @@ - - #if defined(_WIN32) - typedef int socklen_t; --#elif defined ( __APPLE__) -+#elif defined(__APPLE__) - typedef int32_t socklen_t; --#elif !GETSOCKOPT_SOCKLEN_T --#ifndef socklen_t -+#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t) - typedef size_t socklen_t; --#endif - #endif - - static void boinc_close_socket(int sock) { diff -ruN /usr/ports/net/boinc-client/files/patch-client::net_xfer.C net/boinc-client/files/patch-client::net_xfer.C --- /usr/ports/net/boinc-client/files/patch-client::net_xfer.C Wed Dec 15 00:14:36 2004 +++ net/boinc-client/files/patch-client::net_xfer.C Wed Dec 31 19:00:00 1969 @@ -1,17 +0,0 @@ ---- client/net_xfer.C.orig Mon Sep 27 15:07:30 2004 -+++ client/net_xfer.C Thu Dec 2 21:00:11 2004 -@@ -78,12 +78,10 @@ - - #if defined(_WIN32) - typedef int socklen_t; --#elif defined ( __APPLE__) -+#elif defined(__APPLE__) - typedef int32_t socklen_t; --#elif !GETSOCKOPT_SOCKLEN_T --#ifndef socklen_t -+#elif !defined(GETSOCKOPT_SOCKLEN_T) && !defined(_SOCKLEN_T_DECLARED) && !defined(socklen_t) - typedef size_t socklen_t; --#endif - #endif - - using std::vector; diff -ruN /usr/ports/net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp --- /usr/ports/net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/patch-clientgui::BOINCGUIApp.cpp Tue Mar 22 14:06:09 2005 @@ -0,0 +1,11 @@ +--- clientgui/BOINCGUIApp.cpp.orig Fri Mar 11 08:08:50 2005 ++++ clientgui/BOINCGUIApp.cpp Tue Mar 22 14:05:34 2005 +@@ -81,8 +81,6 @@ + BOINC_DIAG_DUMPCALLSTACKENABLED | + BOINC_DIAG_HEAPCHECKENABLED | + BOINC_DIAG_MEMORYLEAKCHECKENABLED | +- BOINC_DIAG_REDIRECTSTDERR | +- BOINC_DIAG_REDIRECTSTDOUT | + BOINC_DIAG_TRACETOSTDOUT; + + diagnostics_init( diff -ruN /usr/ports/net/boinc-client/files/rc::boinc.sh net/boinc-client/files/rc::boinc.sh --- /usr/ports/net/boinc-client/files/rc::boinc.sh Wed Dec 31 19:00:00 1969 +++ net/boinc-client/files/rc::boinc.sh Wed Mar 2 16:39:38 2005 @@ -0,0 +1,69 @@ +#!/bin/sh +# +# $FreeBSD: ports/net/boinc-client/files/boinc.sh,v 1.1 2004/10/16 19:29:30 pav Exp $ +# +# Start or stop BOINC +# + +if [ -f /etc/rc.subr ] +then + . /etc/rc.subr +elif [ -f /usr/local/etc/rc.subr ] +then + # FreeBSD 4.x + . /usr/local/etc/rc.subr +fi + +name="boinc" +rcvar=`set_rcvar` + +boinc_user=%%BOINC_USER%% +boinc_home=%%BOINC_HOME%% +program_file=%%BOINC_BINARY%% +program_path=%%LOCALBASE%%/lib/boinc/${program_file} +syslog_facility=daemon.err + +[ -z "$boinc_enable" ] && boinc_enable="NO" + +load_rc_config $name + +case "$1" in +start) + if checkyesno boinc_enable + then + if [ ! -x ${program_path} ] + then + logger -sp ${syslog_facility} -t ${program_file} \ + "unable to start: ${program_path} is missing." + exit 72 + fi + if ps axo ucomm | egrep ${program_file}; then + logger -sp ${syslog_facility} -t ${program_file} \ + "unable to start: ${program_file} is already running." + exit 72 + fi + echo "Starting BOINC client." + export LD_LIBRARY_PATH=%%LOCALBASE%%/lib/boinc + idprio 31 su - ${boinc_user} -c "${program_path} ${boinc_flags} >/dev/null &" + fi + ;; + +stop) + killall ${program_file} 2> /dev/null + ;; + +restart) + $0 stop + $0 start + ;; + +status) + ps auxww | egrep ${program_file} | egrep -v "($0|egrep)" + ;; + +*) + echo "usage: ${name} {start|stop|restart|status}" >&2 + exit 64 + ;; +esac + diff -ruN /usr/ports/net/boinc-client/pkg-message net/boinc-client/pkg-message --- /usr/ports/net/boinc-client/pkg-message Sat Oct 16 15:29:30 2004 +++ net/boinc-client/pkg-message Wed Mar 23 12:32:42 2005 @@ -1,8 +1,8 @@ ------------------------------------------------------------------- -BOINC's boinc-client is now installed. You now need to register -with and install one or more projects. +The BOINC client is now installed. You now need to register with +and install one or more projects. -Refer to the BOINC web page at +Refer to the BOINC web page at: http://boinc.berkeley.edu/ for a list of projects and refer to each of their sites for info on how to register with them and how to use them on FreeBSD. @@ -11,4 +11,18 @@ don't work on FreeBSD at all. SETI@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 -ruN /usr/ports/net/boinc-client/pkg-plist net/boinc-client/pkg-plist --- /usr/ports/net/boinc-client/pkg-plist Wed Dec 15 17:51:43 2004 +++ net/boinc-client/pkg-plist Mon Mar 21 10:49:52 2005 @@ -1,51 +1,57 @@ -@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." >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503300152.j2U1qSVi012972>