From bbdf586d14ef9c5d873bcce8a8a872f629be5062 Mon Sep 17 00:00:00 2001 From: Geoffrey Oxberry Date: Thu, 12 Apr 2018 07:16:16 -0700 Subject: glu: new virtual package; openglu: new package (#7162) * mesa-glu: now provides 'glu' (GL Utility library) * openglu: add package, provides glu * openglu: add custom fetcher, remove nonsense url Change openglu package to look like the opengl package in GitHub PR * [OpenGLU] Fix a typo --- .../repos/builtin/packages/mesa-glu/package.py | 2 + .../repos/builtin/packages/openglu/package.py | 86 ++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 var/spack/repos/builtin/packages/openglu/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mesa-glu/package.py b/var/spack/repos/builtin/packages/mesa-glu/package.py index 9d8125242e..608a23cd8b 100644 --- a/var/spack/repos/builtin/packages/mesa-glu/package.py +++ b/var/spack/repos/builtin/packages/mesa-glu/package.py @@ -37,3 +37,5 @@ class MesaGlu(AutotoolsPackage): variant('mesa', default=True, description='Usually depends on mesa, disable for accelerated OpenGL') depends_on('mesa', when='+mesa') + + provides('glu@1.3') diff --git a/var/spack/repos/builtin/packages/openglu/package.py b/var/spack/repos/builtin/packages/openglu/package.py new file mode 100644 index 0000000000..a27441f901 --- /dev/null +++ b/var/spack/repos/builtin/packages/openglu/package.py @@ -0,0 +1,86 @@ +############################################################################## +# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/spack/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Openglu(Package): + """Placeholder for external OpenGL utility library (GLU) from hardware + vendors""" + + homepage = "https://www.opengl.org/resources/libraries" + url = "https://www.opengl.org/resources/libraries" + + # A second argument (usually the has) 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('1.3', 'n/a') + + provides('glu@:1.3', when='@1.3:') + provides('glu@:1.2', when='@1.2:') + provides('glu@:1.1', when='@1.1:') + provides('glu@:1.0', when='@1.0:') + + # Override the fetcher method to throw a useful error message; + # fixes an issue similar to Github issue (#7061), in which the + # opengl package threw a generic, uninformative error message + # during the `fetch` step + @property + def fetcher(self): + msg = """This package is intended to be a placeholder for + system-provided OpenGL utility (GLU) libraries from hardware vendors. + Please download and install the GLU drivers/libraries for your + graphics hardware separately, and then set that up as an external + package. An example of a working packages.yaml: + + packages: + openglu: + paths: + openglu@1.3: /opt/opengl + buildable: False + + In that case, /opt/opengl/ should contain these two folders: + + include/GL/ (opengl headers, including "glu.h") + lib (opengl libraries, including "libGLU.so") + + On Apple Darwin (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: + openglu: + paths: + openglu@1.3: /usr/X11R6 + buildable: False + + In that case, /usr/X11R6 should contain + + include/GL (GLU headers, including "glu.h") + lib (GLU libraries, including "libGLU.dylib")""" + + raise InstallError(msg) + + def install(self, spec, prefix): + pass -- cgit v1.2.3-70-g09d2