Date: Tue, 14 Dec 2004 12:17:21 -0500 (EST) From: "J.R. Oldroyd" <fbsd@opal.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/75062: update port: net/boinc-client - fixes for FreeBSD 4.X and for 64-bit archs Message-ID: <200412141717.iBEHHLtF016833@linwhf.opal.com> Resent-Message-ID: <200412141730.iBEHUSN7036013@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 75062 >Category: ports >Synopsis: update port: net/boinc-client - fixes for FreeBSD 4.X and for 64-bit archs >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: Tue Dec 14 17:30:28 GMT 2004 >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 #67: Fri Oct 8 14:11:54 EDT 2004 jr@linwhf.opal.com:/usr/src-current/sys/i386/compile/LINWHF i386 >Description: Update of boinc-client port to address issues with reentrancy problems on FreeBSD 4.x (malloc() called recursively) and also to address differences in rc.d files on 4.X. Update also fixes compilation problems on 64-bit architectures. Files added to port: files/boinc.sh-4.x files/extra-patch-api::boinc_api.C files/patch-client::gui_rpc_server.C files/patch-client::net_xfer.C >How-To-Repeat: >Fix: diff -ruN /usr/ports/net/boinc-client/Makefile boinc-client/Makefile --- /usr/ports/net/boinc-client/Makefile Thu Oct 21 09:05:46 2004 +++ boinc-client/Makefile Tue Dec 14 11:55:48 2004 @@ -7,6 +7,7 @@ PORTNAME= boinc-client PORTVERSION= 4.13 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= http://boinc.berkeley.edu/source/nightly/ DISTNAME= boinc_public-cvs-2004-10-14 @@ -25,7 +26,7 @@ MAN1= boinc-client.1 -FIND_BOINC_BINARY=(cd ${WRKDIR}/boinc_public/client; make -V CLIENT_BIN_FILENAME)) +FIND_BOINC_BINARY=(cd ${WRKDIR}/boinc_public/client; make -V CLIENT_BIN_FILENAME) BOINC_USER= boinc BOINC_GROUP= nobody @@ -34,8 +35,8 @@ .include <bsd.port.pre.mk> -.if ${ARCH} != "i386" -BROKEN= Does not compile on 64-bit architectures +.if ${OSVERSION} < 500000 +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-api::boinc_api.C .endif post-patch: @@ -61,17 +62,28 @@ -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%%:${PREFIX}/boinc: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" \ -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%%:${PREFIX}/boinc: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 + < ${FILESDIR}/boinc.sh-4.x > ${WRKDIR}/boinc.sh +.endif do-install: ${INSTALL_SCRIPT} ${WRKDIR}/boinc-client ${PREFIX}/bin @@ -90,7 +102,7 @@ ${MKDIR} ${PREFIX}/boinc/projects ${MKDIR} ${PREFIX}/etc/rc.d ${INSTALL_SCRIPT} ${WRKDIR}/boinc.sh ${PREFIX}/etc/rc.d - ${CAT} pkg-message + ${CAT} ${PKGMESSAGE} post-install: ${REINPLACE_CMD} \ diff -ruN /usr/ports/net/boinc-client/files/boinc.sh-4.x boinc-client/files/boinc.sh-4.x --- /usr/ports/net/boinc-client/files/boinc.sh-4.x Wed Dec 31 19:00:00 1969 +++ boinc-client/files/boinc.sh-4.x Thu Dec 9 10:50:23 2004 @@ -0,0 +1,61 @@ +#!/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 +# + +. /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 boinc-client/files/extra-patch-api::boinc_api.C --- /usr/ports/net/boinc-client/files/extra-patch-api::boinc_api.C Wed Dec 31 19:00:00 1969 +++ boinc-client/files/extra-patch-api::boinc_api.C Thu Dec 9 10:24:14 2004 @@ -0,0 +1,11 @@ +--- 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/patch-client::gui_rpc_server.C boinc-client/files/patch-client::gui_rpc_server.C --- /usr/ports/net/boinc-client/files/patch-client::gui_rpc_server.C Wed Dec 31 19:00:00 1969 +++ boinc-client/files/patch-client::gui_rpc_server.C Thu Dec 2 21:08:31 2004 @@ -0,0 +1,17 @@ +--- 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 boinc-client/files/patch-client::net_xfer.C --- /usr/ports/net/boinc-client/files/patch-client::net_xfer.C Wed Dec 31 19:00:00 1969 +++ boinc-client/files/patch-client::net_xfer.C Thu Dec 2 21:08:37 2004 @@ -0,0 +1,17 @@ +--- 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; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412141717.iBEHHLtF016833>