From 890213d5c2cb1d2701099478b5023cd3da605f39 Mon Sep 17 00:00:00 2001 From: Milton Woods Date: Fri, 31 Mar 2017 18:48:18 +1000 Subject: [PATCH] Subversion with perl bindings (#3644) * perl-term-readkey: add perl Term::ReadKey package * subversion: add variant with perl bindings * subversion: use `which('perl')` to find perl executable in package.py --- .../packages/perl-term-readkey/package.py | 41 +++++++++++++++++++ .../builtin/packages/subversion/package.py | 34 +++++++++++---- 2 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 var/spack/repos/builtin/packages/perl-term-readkey/package.py diff --git a/var/spack/repos/builtin/packages/perl-term-readkey/package.py b/var/spack/repos/builtin/packages/perl-term-readkey/package.py new file mode 100644 index 0000000000..2b1f93cbc0 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-term-readkey/package.py @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2013-2016, 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/llnl/spack +# Please also see the LICENSE file 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 PerlTermReadkey(PerlPackage): + """Term::ReadKey is a compiled perl module dedicated to providing simple + control over terminal driver modes (cbreak, raw, cooked, etc.,) support + for non-blocking reads, if the architecture allows, and some generalized + handy functions for working with terminals. One of the main goals is to + have the functions as portable as possible, so you can just plug in + "use Term::ReadKey" on any architecture and have a good likelihood of it + working.""" + + homepage = "http://search.cpan.org/perldoc/Term::ReadKey" + url = "http://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz" + list_url = "http://www.cpan.org/authors/id/J/JS/JSTOWE" + + version('2.37', 'e8ea15c16333ac4f8d146d702e83cc0c') diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py index 02b7d96378..7752528b43 100644 --- a/var/spack/repos/builtin/packages/subversion/package.py +++ b/var/spack/repos/builtin/packages/subversion/package.py @@ -27,18 +27,24 @@ class Subversion(Package): """Apache Subversion - an open source version control system.""" - homepage = 'https://subversion.apache.org/' - url = 'http://archive.apache.org/dist/subversion/subversion-1.8.13.tar.gz' + homepage = 'https://subversion.apache.org/' + url = 'http://archive.apache.org/dist/subversion/subversion-1.8.13.tar.gz' version('1.8.13', '8065b3698d799507fb72dd7926ed32b6') version('1.9.3', 'a92bcfaec4e5038f82c74a7b5bbd2f46') + variant('perl', default=False, description='Build with Perl bindings') + depends_on('apr') depends_on('apr-util') depends_on('zlib') depends_on('sqlite') depends_on('serf') + extends('perl', when='+perl') + depends_on('swig@1.3.24:3.0.0', when='+perl') + depends_on('perl-term-readkey', when='+perl') + # Optional: We need swig if we want the Perl, Python or Ruby # bindings. # depends_on('swig') @@ -60,12 +66,30 @@ def install(self, spec, prefix): options.append('--with-zlib=%s' % spec['zlib'].prefix) options.append('--with-sqlite=%s' % spec['sqlite'].prefix) options.append('--with-serf=%s' % spec['serf'].prefix) - # options.append('--with-swig=%s' % spec['swig'].prefix) + + if spec.satisfies('^swig'): + options.append('--with-swig=%s' % spec['swig'].prefix) + if spec.satisfies('+perl'): + options.append( + 'PERL=%s' % join_path(spec['perl'].prefix.bin, 'perl')) configure(*options) make() + if self.run_tests: + make('check') make('install') + if spec.satisfies('+perl'): + make('swig-pl') + if self.run_tests: + make('check-swig-pl') + make('install-swig-pl-lib') + with working_dir(join_path( + 'subversion', 'bindings', 'swig', 'perl', 'native')): + perl = which('perl') + perl('Makefile.PL', 'INSTALL_BASE=%s' % prefix) + make('install') + # python bindings # make('swig-py', # 'swig-pydir=/usr/lib/python2.7/site-packages/libsvn', @@ -74,10 +98,6 @@ def install(self, spec, prefix): # 'swig-pydir=/usr/lib/python2.7/site-packages/libsvn', # 'swig_pydir_extra=/usr/lib/python2.7/site-packages/svn') - # perl bindings - # make('swig-pl') - # make('install-swig-pl') - # ruby bindings # make('swig-rb') # make('isntall-swig-rb')