From 0e4e7d05e4f93fa46df2b6b7d1958cbef624706b Mon Sep 17 00:00:00 2001 From: Geoffrey Oxberry <goxberry@gmail.com> Date: Thu, 12 Apr 2018 07:14:38 -0700 Subject: opengl: make error throw on install, not fetch (#7063) * opengl: make error throw on install, not fetch * opengl: add configuration advice for darwin * opengl: add more versions of GL/OpenGL * opengl: improve documentation in comments * [OpenGL] Fix formatting --- var/spack/repos/builtin/packages/opengl/package.py | 38 ++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/opengl/package.py b/var/spack/repos/builtin/packages/opengl/package.py index b2c234ee6f..2859cf9138 100644 --- a/var/spack/repos/builtin/packages/opengl/package.py +++ b/var/spack/repos/builtin/packages/opengl/package.py @@ -31,13 +31,23 @@ class Opengl(Package): homepage = "https://www.opengl.org/" url = "https://www.opengl.org/" - version('3.2', 'N/A') + # A second argument (usually the hash) must be supplied to the + # version directive, but 'n/a' is used here because this package + # is a placeholder for a system/vendor installation of OpenGL + version('3.2', 'n/a') provides('gl@:4.5', when='@4.5:') provides('gl@:4.4', when='@4.4:') provides('gl@:4.3', when='@4.3:') + provides('gl@:4.2', when='@4.2:') + provides('gl@:4.1', when='@4.1:') + provides('gl@:3.3', when='@3.3:') - def install(self, spec, prefix): + # Override the fetcher method to throw a useful error message; + # fixes GitHub issue (#7061) in which this package threw a + # generic, uninformative error during the `fetch` step, + @property + def fetcher(self): msg = """This package is intended to be a placeholder for system-provided OpenGL libraries from hardware vendors. Please download and install OpenGL drivers/libraries for your graphics @@ -53,6 +63,28 @@ class Opengl(Package): In that case, /opt/opengl/ should contain these two folders: include/GL/ (opengl headers, including "gl.h") - lib (opengl libraries, including "libGL.so")""" + lib (opengl libraries, including "libGL.so") + + On Apple Darwin (e.g., OS X, macOS) systems, this package is + normally installed as part of the XCode Command Line Tools in + /usr/X11R6, so a working packages.yaml would be + packages: + opengl: + paths: + opengl@4.1: /usr/X11R6 + buildable: False + + In that case, /usr/X11R6 should contain + + include/GL/ (OpenGL headers, including "gl.h") + lib (OpenGL libraries, including "libGL.dylib") + + On OS X/macOS, note that the version of OpenGL provided + depends on your hardware. Look at + https://support.apple.com/en-us/HT202823 to see what version + of OpenGL your Mac uses.""" raise InstallError(msg) + + def install(self, spec, prefix): + pass -- cgit v1.2.3-70-g09d2