From 9a3acea759b2d36a10cab92c7e08fa7d59cdb281 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 2 May 2017 09:45:10 -0500 Subject: Allow ghostscript to build with Spack dependencies (#4065) --- .../repos/builtin/packages/ghostscript/package.py | 43 +++++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py index 2e884b4278..255abaa6bd 100644 --- a/var/spack/repos/builtin/packages/ghostscript/package.py +++ b/var/spack/repos/builtin/packages/ghostscript/package.py @@ -23,28 +23,59 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import shutil -class Ghostscript(Package): +class Ghostscript(AutotoolsPackage): """An interpreter for the PostScript language and for PDF.""" homepage = "http://ghostscript.com/" url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs921/ghostscript-9.21.tar.gz" - version('9.21', '6f60d7fcb5eef6a8bec5abedf21c6a7008a8c0c7') + version('9.21', '5f213281761d2750fcf27476c404d17f') version('9.18', '33a47567d7a591c00a253caddd12a88a') - parallel = False + depends_on('pkg-config', type='build') + depends_on('freetype@2.4.2:') + depends_on('jpeg') + depends_on('lcms') + depends_on('libpng') depends_on('libtiff') + depends_on('zlib') def url_for_version(self, version): baseurl = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs{0}/ghostscript-{1}.tar.gz" return baseurl.format(version.joined, version.dotted) - def install(self, spec, prefix): - configure('--prefix={0}'.format(prefix), - '--with-system-libtiff') + def patch(self): + """Ghostscript comes with all of its dependencies vendored. + In order to build with Spack versions of these dependencies, + we have to remove these vendored dependencies. + + Note that this approach is also recommended by Linux from Scratch: + http://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html + """ + directories = ['freetype', 'jpeg', 'lcms2', 'libpng', 'zlib'] + for directory in directories: + shutil.rmtree(directory) + + filter_file('ZLIBDIR=src', + 'ZLIBDIR={0}'.format(self.spec['zlib'].prefix.include), + 'configure.ac', 'configure', + string=True) + def configure_args(self): + return [ + '--disable-compile-inits', + '--enable-dynamic', + '--with-system-libtiff', + ] + + def build(self, spec, prefix): make() + make('so') + + def install(self, spec, prefix): make('install') + make('soinstall') -- cgit v1.2.3-60-g2f50