Date: Mon, 27 Aug 2012 18:22:55 +0000 (UTC) From: Rene Ladan <rene@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r303241 - in head/astro/boinc-astropulse: . files Message-ID: <201208271822.q7RIMtX9037708@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rene Date: Mon Aug 27 18:22:55 2012 New Revision: 303241 URL: http://svn.freebsd.org/changeset/ports/303241 Log: - Fix build with WITHOUT_X11, adjust pkg-descr - Activate OPTIONS, convert to optionsNG while here - Replace pkgconfig by pkgconf - Bump PORTREVISION - Added svn keywords with psvn Added: head/astro/boinc-astropulse/files/patch-client__ap_client_main.cpp (contents, props changed) head/astro/boinc-astropulse/files/patch-client__ap_gfx_main.cpp (contents, props changed) head/astro/boinc-astropulse/files/patch-client__ap_remove_radar.cpp (contents, props changed) Modified: head/astro/boinc-astropulse/Makefile (contents, props changed) head/astro/boinc-astropulse/pkg-descr (contents, props changed) Modified: head/astro/boinc-astropulse/Makefile ============================================================================== --- head/astro/boinc-astropulse/Makefile Mon Aug 27 18:02:21 2012 (r303240) +++ head/astro/boinc-astropulse/Makefile Mon Aug 27 18:22:55 2012 (r303241) @@ -6,7 +6,7 @@ PORTNAME= boinc-astropulse PORTVERSION= 6.01 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= astro MASTER_SITES= ftp://rene-ladan.nl/pub/distfiles/ DISTNAME= astropulse-svn-1280 @@ -26,7 +26,7 @@ USE_XZ= yes USE_AUTOTOOLS= autoconf:env automake:env libtool GNU_CONFIGURE= yes USE_GMAKE= yes -USE_GNOME= pkgconfig +USE_PKGCONFIG= build WRKSRC= ${WRKDIR}/${DISTNAME}/client CFLAGS+= -O2 -I${LOCALBASE}/include/boinc -I${LOCALBASE}/include \ @@ -40,7 +40,11 @@ BOINC_CLIENT_USER?= boinc BOINC_CLIENT_GROUP?= nobody BOINC_CLIENT_HOME?= /var/db/boinc -#OPTIONS= X11 "Build screensaver (requires net/boinc-client with X11)" on +OPTIONS_DEFINE= X11 + +X11_DESC= Build screensaver (requires net/boinc-client with X11) + +OPTIONS_DEFAULT= .include <bsd.port.pre.mk> # stolen and adapted from bsd.port.mk @@ -48,12 +52,7 @@ BOINC_CLIENT_HOME?= /var/db/boinc BUILD_DEPENDS+= ${LOCALBASE}/bin/xz:${PORTSDIR}/archivers/xz .endif -# TODO fix upstream -.if defined(WITHOUT_X11) -BROKEN=Currently Astropulse requires X11 to build -.endif - -.if !defined(WITHOUT_X11) +.if ${PORT_OPTIONS:MX11} LIB_DEPENDS+= jpeg:${PORTSDIR}/graphics/jpeg \ xcb:${PORTSDIR}/x11/libxcb USE_GL= gl glu glut @@ -101,7 +100,7 @@ do-install: ${BOINC_CLIENT_HOME}/projects/${SETI_SITE} ${INSTALL_PROGRAM} -o ${BOINC_CLIENT_USER} -g ${BOINC_CLIENT_GROUP} \ ${WRKSRC}/${AP_BINARY} ${BOINC_CLIENT_HOME}/projects/${SETI_SITE}/ -.if !defined(WITHOUT_X11) +.if ${PORT_OPTIONS:MX11} ${INSTALL_PROGRAM} -o ${BOINC_CLIENT_USER} -g ${BOINC_CLIENT_GROUP} \ ${WRKSRC}/ap_graphics ${BOINC_CLIENT_HOME}/projects/${SETI_SITE}/ .endif Added: head/astro/boinc-astropulse/files/patch-client__ap_client_main.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/astro/boinc-astropulse/files/patch-client__ap_client_main.cpp Mon Aug 27 18:22:55 2012 (r303241) @@ -0,0 +1,107 @@ +--- ap_client_main.cpp.orig 2009-04-01 02:11:24.000000000 +0200 ++++ ap_client_main.cpp 2012-06-23 00:27:10.000000000 +0200 +@@ -19,6 +19,8 @@ + #include "ap_config.h" + #ifdef _WIN32 + #include "boinc_win.h" ++#elif !defined(__EMX__) ++#include <sys/stat.h> + #endif + + #ifdef HAVE_UNISTD_H +@@ -37,6 +39,7 @@ + #include "boinc_api.h" + #include "util.h" + #include "str_util.h" ++#include "shmem.h" + + #include "astropulse.h" + #include "diagnostics.h" +@@ -276,6 +279,56 @@ + + APP_INIT_DATA app_init_data; + ++#ifndef BOINC_APP_GRAPHICS ++/* copy some code from boinc-client */ ++ ++#ifdef __EMX__ ++static key_t get_shmem_name(const char* prog_name) { ++ char cwd[256], path[256]; ++ boinc_getcwd(cwd); ++ sprintf(path, "%s/init_data.xml", cwd); ++ return ftok(path, 2); ++} ++#else ++// Unix/Linux/Mac applications always use mmap() for gfx communication ++// ++static void get_shmem_name(const char* prog_name, char* shmem_name) { ++ APP_INIT_DATA aid; ++ int retval = boinc_get_init_data(aid); ++ if (retval) aid.slot = 0; ++ sprintf(shmem_name, "boinc_%s_%d", prog_name, aid.slot); ++} ++#endif ++ ++void* boinc_graphics_make_shmem(const char* prog_name, int size) { ++#ifdef _WIN32 ++ HANDLE shmem_handle; ++ char shmem_name[256]; ++ void* p; ++ get_shmem_name(prog_name, shmem_name); ++ shmem_handle = create_shmem(shmem_name, size, &p); ++ if (shmem_handle == NULL) return 0; ++ return p; ++#else ++ void* p; ++#ifdef __EMX__ ++ key_t key = get_shmem_name(prog_name); ++ int retval = create_shmem(key, size, 0, &p); ++#else ++ // V6 Unix/Linux/Mac applications always use mmap() shared memory for graphics communication ++ char shmem_name[256]; ++ get_shmem_name(prog_name, shmem_name); ++ int retval = create_shmem_mmap(shmem_name, size, &p); ++ // Graphics app may be run by a different user & group than worker app ++ // Although create_shmem passed 0666 to open(), it was modified by umask ++ if (retval == 0) chmod(shmem_name, 0666); ++#endif ++ if (retval) return 0; ++ return p; ++#endif ++} ++#endif /* !BOINC_APP_GRAPHICS */ ++ + /* Main Program */ + int main(int argc, char *argv[]) { + +@@ -315,7 +368,30 @@ + boinc_get_init_data(app_init_data); + // We've moved the state variable into the graphics shmem segment, + // so we always need to initialize graphics. ++#ifdef BOINC_APP_GRAPHICS + ap_graphics_init(app_init_data); ++#else /* BOINC_APP_GRAPHICS */ ++ // Checking for blank statefile ++ AP_SHMEM* &ap_shmem=Astropulse::client.ap_shmem; ++ // ap_shmem is defined extern in ap_gfx_main.h XXX ++ ap_shmem = (AP_SHMEM *)(boinc_graphics_make_shmem("astropulse", sizeof(AP_SHMEM)));//XXX ++ if (!ap_shmem) { ++ fprintf(stderr, "boinc_graphics_make_shmem failed: %d\n", errno); ++ exit(ERR_SHMEM_NAME); ++ } ++ ++ // initialize ap_shmem with placement new. ++ // VC++ doesn't support placement new in debug mode!?!?! What the hell? ++#if !defined(_DEBUG) || !defined(_MSC_VER) ++ ap_shmem = new (ap_shmem) AP_SHMEM(); ++#else ++ // VC++ doesn't support placement new in debug mode!?!?! What the hell? ++ // Fortunately AP_SHMEM doesn't contain any self-referential pointers. ++ AP_SHMEM *tmp=new AP_SHMEM(); ++ memcpy(ap_shmem,tmp,sizeof(AP_SHMEM)); ++ delete tmp; ++#endif ++#endif /* BOINC_APP_GRAPHICS no case */ + + + /* Possible arguments: Added: head/astro/boinc-astropulse/files/patch-client__ap_gfx_main.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/astro/boinc-astropulse/files/patch-client__ap_gfx_main.cpp Mon Aug 27 18:22:55 2012 (r303241) @@ -0,0 +1,14 @@ +--- ap_gfx_main.cpp 2008-07-22 00:47:52.000000000 +0200 ++++ ap_gfx_main.cpp 2012-05-12 22:28:57.000000000 +0200 +@@ -34,7 +34,11 @@ + + REDUCED_ARRAY_GEN rarray; + AP_GDATA* ap_gdata; ++#ifdef BOINC_APP_GRAPHICS + bool nographics_flag = false; ++#else ++bool nographics_flag = true; ++#endif + + void update_shmem() { + } Added: head/astro/boinc-astropulse/files/patch-client__ap_remove_radar.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/astro/boinc-astropulse/files/patch-client__ap_remove_radar.cpp Mon Aug 27 18:22:55 2012 (r303241) @@ -0,0 +1,8 @@ +--- ap_remove_radar.cpp.orig 2012-01-26 07:53:16.000000000 +0100 ++++ ap_remove_radar.cpp 2012-08-12 00:14:40.000000000 +0200 +@@ -1,5 +1,4 @@ + #include "astropulse.h" +-#include "ap_graphics.h" + #include "fftw3.h" + #include "sbtf.h" + #include "ap_debug.h" Modified: head/astro/boinc-astropulse/pkg-descr ============================================================================== --- head/astro/boinc-astropulse/pkg-descr Mon Aug 27 18:02:21 2012 (r303240) +++ head/astro/boinc-astropulse/pkg-descr Mon Aug 27 18:22:55 2012 (r303241) @@ -7,8 +7,4 @@ pulsars or exploding primordial black ho The port automatically optimizes for the host CPU using the CPUTYPE variable in /etc/make.conf -Currently it requires X to build, but at runtime X is only required for the -screen saver. This requirement is an artifact of the current upstream design -of the port. - WWW: http://setiathome.berkeley.edu/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208271822.q7RIMtX9037708>