Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Aug 2004 17:25:41 -0500 (CDT)
From:      Stephen Montgomery-Smith <stephen@cauchy.math.missouri.edu>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/71052: vmd port does not compile if nvidia-driver port installed
Message-ID:  <200408272225.i7RMPf7J005704@cauchy.math.missouri.edu>
Resent-Message-ID: <200408272230.i7RMUTli046172@freefall.freebsd.org>

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

>Number:         71052
>Category:       ports
>Synopsis:       vmd port does not compile if nvidia-driver port installed
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Aug 27 22:30:29 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Stephen Montgomery-Smith
>Release:        FreeBSD 4.10-STABLE i386
>Organization:
>Environment:
System: FreeBSD cauchy 4.10-STABLE FreeBSD 4.10-STABLE #0: Thu Aug 26 21:23:59 CDT 2004 stephen@cauchy:/usr/src-copy/sys/compile/gx270 i386


	
>Description:

The science/vmd port does not compile if the x11/nvidia-driver port is
installed.

>How-To-Repeat:

cd /usr/ports/x11/nvidia-driver
make install clean
cd /usr/ports/science/vmd
make

>Fix:

This fix is a bit "hackish" but the resulting code seems to compile
and work whether or not the nvidia-driver port is installed.

diff -ur --new-file vmd-orig/Makefile vmd/Makefile
--- vmd-orig/Makefile	Fri Aug 27 16:23:24 2004
+++ vmd/Makefile	Fri Aug 27 17:11:59 2004
@@ -7,6 +7,7 @@
 
 PORTNAME=		vmd
 PORTVERSION=		1.8.2
+PORTREVISION=		1
 CATEGORIES=		science graphics python tcl84 tk84
 MASTER_SITES=		#
 DISTFILES=		${PORTNAME}-${PORTVERSION}.src.tar.gz
diff -ur --new-file vmd-orig/files/patch-OpenGLExtensions.C vmd/files/patch-OpenGLExtensions.C
--- vmd-orig/files/patch-OpenGLExtensions.C	Wed Dec 31 18:00:00 1969
+++ vmd/files/patch-OpenGLExtensions.C	Fri Aug 27 17:04:20 2004
@@ -0,0 +1,21 @@
+--- src/OpenGLExtensions.C-xxx	Fri Dec  5 13:21:59 2003
++++ src/OpenGLExtensions.C	Fri Aug 27 16:42:14 2004
+@@ -117,7 +117,17 @@
+ #endif
+ 
+ #if !defined(_MSC_VER) && !defined(__APPLE__)
+-#if !defined(ARCH_LINUX) && !defined(ARCH_LINUXALPHA) && !defined(ARCH_LINUXAMD64) && !defined(ARCH_LINUXPPC) && (defined(GLX_VERSION_1_4) || defined(ARCH_SOLARIS2))
++/*
++   Why the !defined(ARCH_FREEBSD)?  Typically the X libraries that
++   come with FreeBSD work with glXGetProcAddress.  However, if the
++   nvidia-driver port is installed, it seems not to work.  But using
++   glXGetProcAddressARB seems to work whether or not the nvidia-driver
++   port is installed.  (To be honest, I do feel that this is a bit hackish,
++   and maybe this will break something in other environments, but lets face
++   that bridge when we come to it - email me at stephen@math.missouri.edu
++   about it.)
++*/
++#if !defined(ARCH_FREEBSD) && !defined(ARCH_LINUX) && !defined(ARCH_LINUXALPHA) && !defined(ARCH_LINUXAMD64) && !defined(ARCH_LINUXPPC) && (defined(GLX_VERSION_1_4) || defined(ARCH_SOLARIS2))
+   // GLX 1.4 form found on commercial Unix systems that
+   // don't bother providing the ARB extension version that Linux prefers.
+   return glXGetProcAddress((const GLubyte *) procname);
diff -ur --new-file vmd-orig/files/patch-configure vmd/files/patch-configure
--- vmd-orig/files/patch-configure	Fri Aug 27 16:23:24 2004
+++ vmd/files/patch-configure	Fri Aug 27 17:08:39 2004
@@ -1,15 +1,19 @@
 --- configure-xxx	Fri Dec  5 13:20:58 2003
 +++ configure	Thu Aug 12 00:22:30 2004
-@@ -1175,7 +1175,7 @@
+@@ -1174,8 +1174,10 @@
+ 
      # XFree 4.0 Direct Rendering Interface and GLX 
      $opengl_dir         = "/usr/X11R6";
-     $opengl_include     = "-I$opengl_dir/include";
+-    $opengl_include     = "-I$opengl_dir/include";
 -    $opengl_library     = "-L$opengl_dir/lib";
++# -DGLX_GLXEXT_LEGACY is required for patched OpenGLExtensions.C to compile.
++# See patched OpenGLExtensions.C for explanation.
++    $opengl_include     = "-DGLX_GLXEXT_LEGACY -I$opengl_dir/include";
 +    $opengl_library     = "-L$opengl_dir/lib -L/usr/local/lib";
      $opengl_libs        = "-lGL -lGLU"; 
  
      $arch_lex      = "flex";
-@@ -1209,7 +1209,7 @@
+@@ -1209,7 +1211,7 @@
  
      # this is to make tcl happy,
      # also needed for plugins


>Release-Note:
>Audit-Trail:
>Unformatted:



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