summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/maker/MpiChunk.patch20
-rw-r--r--var/spack/repos/builtin/packages/maker/install.patch10
-rw-r--r--var/spack/repos/builtin/packages/maker/mpi.patch38
-rw-r--r--var/spack/repos/builtin/packages/maker/package.py91
-rw-r--r--var/spack/repos/builtin/packages/perl-acme-damn/package.py17
-rw-r--r--var/spack/repos/builtin/packages/perl-alien-build/package.py23
-rw-r--r--var/spack/repos/builtin/packages/perl-alien-libxml2/package.py18
-rw-r--r--var/spack/repos/builtin/packages/perl-bio-perl/package.py70
-rw-r--r--var/spack/repos/builtin/packages/perl-dbd-pg/package.py19
-rw-r--r--var/spack/repos/builtin/packages/perl-devel-symdump/package.py15
-rw-r--r--var/spack/repos/builtin/packages/perl-error/package.py20
-rw-r--r--var/spack/repos/builtin/packages/perl-ffi-checklib/package.py20
-rw-r--r--var/spack/repos/builtin/packages/perl-file-chdir/package.py23
-rw-r--r--var/spack/repos/builtin/packages/perl-forks/package.py21
-rw-r--r--var/spack/repos/builtin/packages/perl-io-all/package.py30
-rw-r--r--var/spack/repos/builtin/packages/perl-io-prompt/package.py35
-rw-r--r--var/spack/repos/builtin/packages/perl-io-stringy/package.py26
-rw-r--r--var/spack/repos/builtin/packages/perl-io-tty/package.py17
-rw-r--r--var/spack/repos/builtin/packages/perl-ipc-run/package.py21
-rw-r--r--var/spack/repos/builtin/packages/perl-libxml-perl/package.py17
-rw-r--r--var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py18
-rw-r--r--var/spack/repos/builtin/packages/perl-mailtools/package.py17
-rw-r--r--var/spack/repos/builtin/packages/perl-path-tiny/package.py19
-rw-r--r--var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py35
-rw-r--r--var/spack/repos/builtin/packages/perl-set-scalar/package.py15
-rw-r--r--var/spack/repos/builtin/packages/perl-sys-sigaction/package.py28
-rw-r--r--var/spack/repos/builtin/packages/perl-term-readkey/package.py1
-rw-r--r--var/spack/repos/builtin/packages/perl-timedate/package.py17
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py19
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-dom/package.py22
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py19
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-libxml/package.py26
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py17
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-quote/package.py18
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-regexp/package.py18
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-sax-base/package.py19
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py22
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-sax/package.py20
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-twig/non_interactive.patch27
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-twig/package.py32
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-writer/package.py27
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py16
42 files changed, 997 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/maker/MpiChunk.patch b/var/spack/repos/builtin/packages/maker/MpiChunk.patch
new file mode 100644
index 0000000000..cbb447741f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/maker/MpiChunk.patch
@@ -0,0 +1,20 @@
+--- a/lib/Process/MpiChunk.pm 2014-12-01 16:40:29.000000000 -0600
++++ b/lib/Process/MpiChunk.pm 2019-09-23 13:23:19.779213006 -0500
+@@ -744,7 +744,7 @@
+ my $safe_seq_id = $VARS->{safe_seq_id};
+ my $q_seq_length = $VARS->{q_seq_length};
+
+- my $TMP = GI::get_global_temp;
++ my $TMP = GI::get_global_temp::;
+ if($CTL_OPT{go_gffdb} && GI::is_NFS_mount($dbfile) && !GI::is_NFS_mount($TMP)){
+ $dbfile = GI::localize_file($dbfile);
+ }
+@@ -3167,7 +3167,7 @@
+ my $LOG = $VARS->{LOG};
+ my %CTL_OPT = %{$VARS->{CTL_OPT}};
+
+- my $TMP = GI::get_global_temp;
++ my $TMP = GI::get_global_temp::;
+ if($CTL_OPT{go_gffdb} && GI::is_NFS_mount($dbfile) && !GI::is_NFS_mount($TMP)){
+ $dbfile = GI::localize_file($dbfile);
+ }
diff --git a/var/spack/repos/builtin/packages/maker/install.patch b/var/spack/repos/builtin/packages/maker/install.patch
new file mode 100644
index 0000000000..30d8ad3640
--- /dev/null
+++ b/var/spack/repos/builtin/packages/maker/install.patch
@@ -0,0 +1,10 @@
+--- a/src/Build.PL 2019-09-18 21:00:16.900047731 -0500
++++ b/src/Build.PL 2019-09-18 21:10:41.058957500 -0500
+@@ -91,7 +91,6 @@
+ 'Carp' => '1.24',
+ #'Other::Module' => '>= 1.2, != 1.5, < 2.0',
+ },
+- install_base => "$FindBin::RealBin/../",
+ install_base_relpaths => {
+ arch => [qw(perl/lib)],
+ lib => [qw(perl/lib)],
diff --git a/var/spack/repos/builtin/packages/maker/mpi.patch b/var/spack/repos/builtin/packages/maker/mpi.patch
new file mode 100644
index 0000000000..92cbebf87d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/maker/mpi.patch
@@ -0,0 +1,38 @@
+diff -ruN a/src/Build.PL b/src/Build.PL
+--- a/src/Build.PL 2014-12-01 16:37:10.000000000 -0600
++++ b/src/Build.PL 2019-09-15 18:30:56.940787669 -0500
+@@ -129,9 +129,10 @@
+ }
+
+ #ask for MPI
+-my $go = $build->y_n("\nMAKER supports distributed parallelization via MPI.\n".
+- "Would you like to configure MAKER for MPI (This\n".
+- "requires that you have an MPI client installed)?", 'N');
++#my $go = $build->y_n("\nMAKER supports distributed parallelization via MPI.\n".
++# "Would you like to configure MAKER for MPI (This\n".
++# "requires that you have an MPI client installed)?", 'N');
++my $go = 0;
+ $build->feature(mpi_support => $go);
+ $build->config_mpi() if($go);
+
+diff -ruN a/src/inc/lib/MAKER/Build.pm b/src/inc/lib/MAKER/Build.pm
+--- a/src/inc/lib/MAKER/Build.pm 2014-12-01 16:37:10.000000000 -0600
++++ b/src/inc/lib/MAKER/Build.pm 2019-09-15 18:30:25.439863837 -0500
+@@ -108,7 +108,7 @@
+ $mpicc = $self->config('cc') if(! $mpicc && $self->config('cc') =~ /(^|[\/])mpicc$/);
+ ($mpicc) = File::Which::where('mpicc') if(!$mpicc || ! -f $mpicc);
+
+- $mpicc = $self->prompt("\nPlease specify the path to 'mpicc' on your system:", $mpicc);
++ #$mpicc = $self->prompt("\nPlease specify the path to 'mpicc' on your system:", $mpicc);
+
+ while(!$mpicc || $mpicc !~ /(^|[\/])mpicc$/ || ! -f $mpicc){
+ $mpicc = $self->prompt("\nCannot find 'mpicc'.\n".
+@@ -139,7 +139,7 @@
+
+ my ($MPIDIR) = grep {-f "$_/mpi.h"} @includes;
+
+- $MPIDIR = $self->prompt("\nPlease specify the path to the directory containing 'mpi.h':", $MPIDIR);
++ #$MPIDIR = $self->prompt("\nPlease specify the path to the directory containing 'mpi.h':", $MPIDIR);
+
+ while(!$MPIDIR || ! -f "$MPIDIR/mpi.h"){
+ $MPIDIR = $self->prompt("\nCannot find 'mpi.h'\n.".
diff --git a/var/spack/repos/builtin/packages/maker/package.py b/var/spack/repos/builtin/packages/maker/package.py
new file mode 100644
index 0000000000..41363ec0a1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/maker/package.py
@@ -0,0 +1,91 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+
+
+class Maker(Package):
+ """MAKER is a portable and easily configurable genome annotation pipeline.
+ It's purpose is to allow smaller eukaryotic and prokaryotic genomeprojects
+ to independently annotate their genomes and to create genome databases.
+ MAKER identifies repeats, aligns ESTs and proteins to a genome, produces
+ ab-initio gene predictions and automatically synthesizes these data into
+ gene annotations having evidence-based quality values. MAKER is also easily
+ trainable: outputs of preliminary runs can be used to automatically retrain
+ its gene prediction algorithm, producing higher quality gene-models on
+ subsequent runs. MAKER's inputs are minimal and its ouputs can be directly
+ loaded into a GMOD database. They can also be viewed in the Apollo genome
+ browser; this feature of MAKER provides an easy means to annotate, view and
+ edit individual contigs and BACs without the overhead of a database. MAKER
+ should prove especially useful for emerging model organism projects with
+ minimal bioinformatics expertise and computer resources.
+
+ Note: MAKER requires registration. Fill out the form at
+ http://yandell.topaz.genetics.utah.edu/cgi-bin/maker_license.cgi to get a
+ download link. Spack will search your current directory for the download
+ file. Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "http://www.yandell-lab.org/software/maker.html"
+
+ version('2.31.10', sha256='d3979af9710d61754a3b53f6682d0e2052c6c3f36be6f2df2286d2587406f07d')
+
+ def url_for_version(self, version):
+ return "file://{0}/maker-{1}.tgz".format(os.getcwd(), version)
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ patch('install.patch')
+ patch('mpi.patch')
+ patch('MpiChunk.patch')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('perl-module-build', type='build')
+ depends_on('perl-dbi', type=('build', 'run'))
+ depends_on('perl-dbd-pg', type=('build', 'run'))
+ depends_on('perl-dbd-sqlite', type=('build', 'run'))
+ depends_on('perl-forks', type=('build', 'run'))
+ depends_on('perl-file-which', type=('build', 'run'))
+ depends_on('perl-perl-unsafe-signals', type=('build', 'run'))
+ depends_on('perl-bit-vector', type=('build', 'run'))
+ depends_on('perl-inline-c', type=('build', 'run'))
+ depends_on('perl-io-all', type=('build', 'run'))
+ depends_on('perl-io-prompt', type=('build', 'run'))
+ depends_on('perl-bio-perl', type=('build', 'run'))
+ depends_on('blast-plus')
+ depends_on('snap-korf')
+ depends_on('repeatmasker')
+ depends_on('exonerate')
+ depends_on('augustus')
+ depends_on('interproscan@:4.8')
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ if '+mpi' in spec:
+ with working_dir('src'):
+ pattern = r'my \$go = 0;'
+ repl = 'my $go = 1;'
+ filter_file(pattern, repl, 'Build.PL', backup=False)
+
+ perl = which('perl')
+ rm = which('rm')
+ with working_dir('src'):
+ perl('Build.PL', '--install_base', prefix)
+ perl('Build', 'install')
+
+ install_tree('lib', join_path(prefix, 'perl', 'lib'))
+
+ # Remove scripts that do not work. The 'mpi_evaluator' and
+ # 'mpi_iprscan' scripts depend on a custom perl module that is not
+ # shipped with maker. The 'maker2chado' script depends on setting up a
+ # CHADO database which is out of scope here.
+ for package in ('maker2chado', 'maker2jbrowse', 'maker2wap',
+ 'mpi_evaluator', 'mpi_iprscan'):
+ rm('-f', join_path(prefix.bin, package))
+
+ # Remove old IO::Prompt perl module
+ rm('-r', '-f', join_path(prefix, 'perl', 'lib', 'IO'))
diff --git a/var/spack/repos/builtin/packages/perl-acme-damn/package.py b/var/spack/repos/builtin/packages/perl-acme-damn/package.py
new file mode 100644
index 0000000000..62fbd15301
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-acme-damn/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlAcmeDamn(PerlPackage):
+ """Acme::Damn provides a single routine, damn(), which takes a blessed
+ reference (a Perl object), and unblesses it, to return the original
+ reference."""
+
+ homepage = "https://metacpan.org/pod/Acme::Damn"
+ url = "https://cpan.metacpan.org/authors/id/I/IB/IBB/Acme-Damn-0.08.tar.gz"
+
+ version('0.08', sha256='310d2d03ff912dcd42e4d946174099f41fe3a2dd57a497d6bd65baf1759b7e0e')
diff --git a/var/spack/repos/builtin/packages/perl-alien-build/package.py b/var/spack/repos/builtin/packages/perl-alien-build/package.py
new file mode 100644
index 0000000000..db96518659
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-alien-build/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlAlienBuild(PerlPackage):
+ """This module provides tools for building external (non-CPAN) dependencies
+ for CPAN. It is mainly designed to be used at install time of a CPAN
+ client, and work closely with Alien::Base which is used at runtime."""
+
+ homepage = "https://metacpan.org/pod/Alien::Build"
+ url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Build-1.86.tar.gz"
+
+ version('1.86', sha256='f856a46aea72fe77daea5b1788b4ea0dc215f5704f5a35fa063171be8523e4e9')
+
+ depends_on('perl-capture-tiny', type=('build', 'run'))
+ depends_on('perl-ffi-checklib', type=('build', 'run'))
+ depends_on('perl-file-which', type=('build', 'run'))
+ depends_on('perl-file-chdir', type=('build', 'run'))
+ depends_on('perl-path-tiny', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py
new file mode 100644
index 0000000000..98c0a488d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlAlienLibxml2(PerlPackage):
+ """This module provides libxml2 for other modules to use."""
+
+ homepage = "https://metacpan.org/pod/Alien::Libxml2"
+ url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.09.tar.gz"
+
+ version('0.10_01', sha256='2f45b308b33503292f48bf46a75fe1e653d6b209ba5caf0628d8cc103f8d61ac')
+
+ depends_on('libxml2')
+ depends_on('perl-alien-build', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-bio-perl/package.py b/var/spack/repos/builtin/packages/perl-bio-perl/package.py
index 92d0e29222..0529402901 100644
--- a/var/spack/repos/builtin/packages/perl-bio-perl/package.py
+++ b/var/spack/repos/builtin/packages/perl-bio-perl/package.py
@@ -8,19 +8,65 @@ import inspect
class PerlBioPerl(PerlPackage):
- """Functional access to BioPerl for people who don't know objects"""
+ """BioPerl is the product of a community effort to produce Perl code which
+ is useful in biology. Examples include Sequence objects, Alignment objects
+ and database searching objects. These objects not only do what they are
+ advertised to do in the documentation, but they also interact - Alignment
+ objects are made from the Sequence objects, Sequence objects have access to
+ Annotation and SeqFeature objects and databases, Blast objects can be
+ converted to Alignment objects, and so on. This means that the objects
+ provide a coordinated and extensible framework to do computational biology.
- homepage = "http://search.cpan.org/~cjfields/BioPerl-1.007002/Bio/Perl.pm"
- url = "http://search.cpan.org/CPAN/authors/id/C/CJ/CJFIELDS/BioPerl-1.007002.tar.gz"
+ BioPerl development focuses on Perl classes, or code that is used to create
+ objects representing biological entities. There are scripts provided in the
+ scripts/ and examples/ directories but scripts are not the main focus of
+ the BioPerl developers. Of course, as the objects do most of the hard work
+ for you, all you have to do is combine a number of objects together
+ sensibly to make useful scripts.
- version('1.007002', 'a912c92b56d009198f1786b4cf560d5c')
+ The intent of the BioPerl development effort is to make reusable tools that
+ aid people in creating their own sites or job-specific applications.
- depends_on('perl-module-build', type='build')
- depends_on('perl-uri-escape', type=('build', 'run'))
+ The BioPerl website at http://bioperl.org also attempts to maintain links
+ and archives of standalone bio-related Perl tools that are not affiliated
+ or related to the core BioPerl effort. Check the site for useful code ideas
+ and contribute your own if possible."""
+
+ homepage = "https://metacpan.org/pod/BioPerl"
+ url = "https://cpan.metacpan.org/authors/id/C/CD/CDRAUG/BioPerl-1.7.6.tar.gz"
+
+ version('1.7.6', sha256='df2a3efc991b9b5d7cc9d038a1452c6dac910c9ad2a0e47e408dd692c111688d')
+ version('1.7.2', 'a912c92b56d009198f1786b4cf560d5c',
+ url="http://search.cpan.org/CPAN/authors/id/C/CJ/CJFIELDS/BioPerl-1.007002.tar.gz")
+
+ # According to cpandeps.grinnz.com Module-Build is both a build and run
+ # time dependency for BioPerl
+ depends_on('perl-module-build', type=('build', 'run'))
+ depends_on('perl-uri', type=('build', 'run'))
depends_on('perl-io-string', type=('build', 'run'))
depends_on('perl-data-stag', type=('build', 'run'))
depends_on('perl-test-most', type=('build', 'run'))
+ depends_on('perl-error', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-graph', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-http-message', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-io-stringy', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-ipc-run', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-list-moreutils', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-set-scalar', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-test-requiresinternet', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-dom', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-dom-xpath', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-libxml', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-sax', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-sax-base', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-sax-writer', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-twig', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-xml-writer', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-yaml', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-libwww-perl', when='@1.7.6:', type=('build', 'run'))
+ depends_on('perl-libxml-perl', when='@1.7.6:', type=('build', 'run'))
+ @when('@1.7.2')
def configure(self, spec, prefix):
# Overriding default configure method in order to cater to interactive
# Build.pl
@@ -50,3 +96,15 @@ class PerlBioPerl(PerlPackage):
with open(config_answers_filename, 'r') as f:
inspect.getmodule(self).perl('Build.PL', '--install_base=%s' %
self.prefix, input=f)
+
+ # Need to also override the build and install methods to make sure that the
+ # Build script is run through perl and not use the shebang, as it might be
+ # too long. This is needed because this does not pick up the
+ # `@run_after(configure)` step defined in `PerlPackage`.
+ @when('@1.7.2')
+ def build(self, spec, prefix):
+ inspect.getmodule(self).perl('Build')
+
+ @when('@1.7.2')
+ def install(self, spec, prefix):
+ inspect.getmodule(self).perl('Build', 'install')
diff --git a/var/spack/repos/builtin/packages/perl-dbd-pg/package.py b/var/spack/repos/builtin/packages/perl-dbd-pg/package.py
new file mode 100644
index 0000000000..b54b7864b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-dbd-pg/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlDbdPg(PerlPackage):
+ """DBD::Pg is a Perl module that works with the DBI module to provide
+ access to PostgreSQL databases."""
+
+ homepage = "https://metacpan.org/pod/DBD::Pg"
+ url = "https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-3.10.0.tar.gz"
+
+ version('3.10.0', sha256='e103268a63e2828e3d43659bdba5f743446cbbe047a766f843112eedae105f80')
+
+ depends_on('postgresql')
+ depends_on('perl-dbi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-devel-symdump/package.py b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py
new file mode 100644
index 0000000000..9dfdc5ae98
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlDevelSymdump(PerlPackage):
+ """Devel::Symdump - dump symbol names or the symbol table"""
+
+ homepage = "https://metacpan.org/pod/Devel::Symdump"
+ url = "https://cpan.metacpan.org/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz"
+
+ version('2.0604', sha256='1f9eaa557733f775ccaa852e846566274c017e6fee380aeb8d08e425cfa86d3e')
diff --git a/var/spack/repos/builtin/packages/perl-error/package.py b/var/spack/repos/builtin/packages/perl-error/package.py
new file mode 100644
index 0000000000..0289506bc7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-error/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlError(PerlPackage):
+ """The Error package provides two interfaces. Firstly Error provides a
+ procedural interface to exception handling. Secondly Error is a base class
+ for errors/exceptions that can either be thrown, for subsequent catch, or
+ can simply be recorded."""
+
+ homepage = "https://metacpan.org/pod/Error"
+ url = "https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-0.17028.tar.gz"
+
+ version('0.17028', sha256='3ad85c5e58b31c8903006298424a51bba39f1840e324f5ae612eabc8b935e960')
+
+ depends_on('perl-module-build', type='build')
diff --git a/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py b/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py
new file mode 100644
index 0000000000..461259ead0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlFfiChecklib(PerlPackage):
+ """This module checks whether a particular dynamic library is available for
+ FFI to use. It is modeled heavily on Devel::CheckLib, but will find dynamic
+ libraries even when development packages are not installed. It also
+ provides a find_lib function that will return the full path to the found
+ dynamic library, which can be feed directly into FFI::Platypus or another
+ FFI system."""
+
+ homepage = "https://metacpan.org/pod/FFI::CheckLib"
+ url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.25.tar.gz"
+
+ version('0.25', sha256='eb36b9a7cff1764a65b1b77e01e92c26207c558a3f986d0d17d2b110fa366ba4')
diff --git a/var/spack/repos/builtin/packages/perl-file-chdir/package.py b/var/spack/repos/builtin/packages/perl-file-chdir/package.py
new file mode 100644
index 0000000000..b628ca12e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-file-chdir/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlFileChdir(PerlPackage):
+ """Perl's chdir() has the unfortunate problem of being very, very, very
+ global. If any part of your program calls chdir() or if any library you use
+ calls chdir(), it changes the current working directory for the *whole*
+ program.
+
+ This sucks.
+
+ File::chdir gives you an alternative, $CWD and @CWD. These two variables
+ combine all the power of chdir(), File::Spec and Cwd."""
+
+ homepage = "https://metacpan.org/pod/File::chdir"
+ url = "https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1010.tar.gz"
+
+ version('0.1011', sha256='31ebf912df48d5d681def74b9880d78b1f3aca4351a0ed1fe3570b8e03af6c79')
diff --git a/var/spack/repos/builtin/packages/perl-forks/package.py b/var/spack/repos/builtin/packages/perl-forks/package.py
new file mode 100644
index 0000000000..51fe7762db
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-forks/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlForks(PerlPackage):
+ """The "forks" pragma allows a developer to use threads without having to
+ have a threaded perl, or to even run 5.8.0 or higher."""
+
+ homepage = "https://metacpan.org/pod/forks"
+ url = "https://cpan.metacpan.org/authors/id/R/RY/RYBSKEJ/forks-0.36.tar.gz"
+
+ version('0.36', sha256='61be24e44f4c6fea230e8354678beb5b7adcfefd909a47db8f0a251b0ab65993')
+
+ depends_on('perl-acme-damn', type=('build', 'run'))
+ depends_on('perl-devel-symdump', type=('build', 'run'))
+ depends_on('perl-list-moreutils', type=('build', 'run'))
+ depends_on('perl-sys-sigaction', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-io-all/package.py b/var/spack/repos/builtin/packages/perl-io-all/package.py
new file mode 100644
index 0000000000..6d45ed5b8a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-io-all/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlIoAll(PerlPackage):
+ """IO::All combines all of the best Perl IO modules into a single nifty
+ object oriented interface to greatly simplify your everyday Perl IO idioms.
+ It exports a single function called io, which returns a new IO::All object.
+ And that object can do it all!
+
+ The IO::All object is a proxy for IO::File, IO::Dir, IO::Socket, Tie::File,
+ File::Spec, File::Path, File::MimeInfo and File::ReadBackwards; as well as
+ all the DBM and MLDBM modules. You can use most of the methods found in
+ these classes and in IO::Handle (which they inherit from). IO::All adds
+ dozens of other helpful idiomatic methods including file stat and
+ manipulation functions.
+
+ IO::All is pluggable, and modules like IO::All::LWP and IO::All::Mailto add
+ even more functionality. Optionally, every IO::All object can be tied to
+ itself. This means that you can use most perl IO builtins on it: readline,
+ <>, getc, print, printf, syswrite, sysread, close."""
+
+ homepage = "https://metacpan.org/pod/distribution/IO-All/lib/IO/All.pod"
+ url = "https://cpan.metacpan.org/authors/id/F/FR/FREW/IO-All-0.87.tar.gz"
+
+ version('0.87', sha256='54e21d250c0229127e30b77a3461e10077854ec244f26fb670f1b445ed4c4d5b')
diff --git a/var/spack/repos/builtin/packages/perl-io-prompt/package.py b/var/spack/repos/builtin/packages/perl-io-prompt/package.py
new file mode 100644
index 0000000000..2bf4144990
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-io-prompt/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlIoPrompt(PerlPackage):
+ """By default, this module exports a single function prompt. It prompts the
+ user to enter some input, and returns an object that represents the user
+ input.
+
+ You may specify various flags to the function to affect its behaviour; most
+ notably, it defaults to automatically chomp the input, unless the -line
+ flag is specified.
+
+ Two other functions are exported at request: hand_print, which simulates
+ hand-typing to the console; and get_input, which is the lower-level
+ function that actually prompts the user for a suitable input.
+
+ Note that this is an interim re-release. A full release with better
+ documentation will follow in the near future. Meanwhile, please consult the
+ examples directory from this module's CPAN distribution to better
+ understand how to make use of this module."""
+
+ homepage = "https://metacpan.org/pod/IO::Prompt"
+ url = "https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/IO-Prompt-0.997004.tar.gz"
+
+ version('0.997004', sha256='f17bb305ee6ac8b5b203e6d826eb940c4f3f6d6f4bfe719c3b3a225f46f58615')
+
+ depends_on('perl-module-build', type='build')
+
+ depends_on('perl-term-readkey', type=('build', 'run'))
+ depends_on('perl-want', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-io-stringy/package.py b/var/spack/repos/builtin/packages/perl-io-stringy/package.py
new file mode 100644
index 0000000000..826414418b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-io-stringy/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlIoStringy(PerlPackage):
+ """This toolkit primarily provides modules for performing both traditional
+ and object-oriented i/o) on things other than normal filehandles; in
+ particular, IO::Scalar, IO::ScalarArray, and IO::Lines.
+
+ In the more-traditional IO::Handle front, we have IO::AtomicFile which may
+ be used to painlessly create files which are updated atomically.
+
+ And in the "this-may-prove-useful" corner, we have IO::Wrap, whose exported
+ wraphandle() function will clothe anything that's not a blessed object in
+ an IO::Handle-like wrapper... so you can just use OO syntax and stop
+ worrying about whether your function's caller handed you a string, a
+ globref, or a FileHandle."""
+
+ homepage = "https://metacpan.org/pod/IO::Stringy"
+ url = "https://cpan.metacpan.org/authors/id/D/DS/DSKOLL/IO-stringy-2.111.tar.gz"
+
+ version('2.111', sha256='8c67fd6608c3c4e74f7324f1404a856c331dbf48d9deda6aaa8296ea41bf199d')
diff --git a/var/spack/repos/builtin/packages/perl-io-tty/package.py b/var/spack/repos/builtin/packages/perl-io-tty/package.py
new file mode 100644
index 0000000000..217b4fb71b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-io-tty/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlIoTty(PerlPackage):
+ """IO::Tty is used internally by IO::Pty to create a pseudo-tty. You
+ wouldn't want to use it directly except to import constants, use IO::Pty.
+ For a list of importable constants, see IO::Tty::Constant."""
+
+ homepage = "https://metacpan.org/pod/IO::Tty"
+ url = "https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-1.12.tar.gz"
+
+ version('1.13_01', sha256='89798eba7c31d9c169ef2f38ff49490aa769b1d9a68033de365595cfaf9cc258')
diff --git a/var/spack/repos/builtin/packages/perl-ipc-run/package.py b/var/spack/repos/builtin/packages/perl-ipc-run/package.py
new file mode 100644
index 0000000000..228d76877f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-ipc-run/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlIpcRun(PerlPackage):
+ """IPC::Run allows you to run and interact with child processes using
+ files, pipes, and pseudo-ttys. Both system()-style and scripted usages are
+ supported and may be mixed. Likewise, functional and OO API styles are both
+ supported and may be mixed."""
+
+ homepage = "https://metacpan.org/pod/IPC::Run"
+ url = "https://cpan.metacpan.org/authors/id/T/TO/TODDR/IPC-Run-20180523.0.tar.gz"
+
+ version('20180523.0', sha256='3850d7edf8a4671391c6e99bb770698e1c45da55b323b31c76310913349b6c2f')
+
+ depends_on('perl-io-tty', type=('build', 'run'))
+ depends_on('perl-readonly', type='build')
diff --git a/var/spack/repos/builtin/packages/perl-libxml-perl/package.py b/var/spack/repos/builtin/packages/perl-libxml-perl/package.py
new file mode 100644
index 0000000000..70fbfda3ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-libxml-perl/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlLibxmlPerl(PerlPackage):
+ """libxml-perl is a collection of smaller Perl modules, scripts, and
+ documents for working with XML in Perl. libxml-perl software works in
+ combination with XML::Parser, PerlSAX, XML::DOM, XML::Grove and others."""
+
+ homepage = "https://metacpan.org/release/libxml-perl"
+ url = "https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz"
+
+ version('0.08', sha256='4571059b7b5d48b7ce52b01389e95d798bf5cf2020523c153ff27b498153c9cb')
diff --git a/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py b/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py
new file mode 100644
index 0000000000..0020e88313
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlListMoreutilsXs(PerlPackage):
+ """List::MoreUtils::XS is a backend for List::MoreUtils. Even if it's
+ possible (because of user wishes) to have it practically independent from
+ List::MoreUtils, it technically depend on List::MoreUtils. Since it's only
+ a backend, the API is not public and can change without any warning."""
+
+ homepage = "https://metacpan.org/pod/List::MoreUtils::XS"
+ url = "https://cpan.metacpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.428.tar.gz"
+
+ version('0.428', sha256='9d9fe621429dfe7cf2eb1299c192699ddebf060953e5ebdc1b4e293c6d6dd62d')
diff --git a/var/spack/repos/builtin/packages/perl-mailtools/package.py b/var/spack/repos/builtin/packages/perl-mailtools/package.py
new file mode 100644
index 0000000000..9c4237c2e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-mailtools/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlMailtools(PerlPackage):
+ """Perl module for handling mail"""
+
+ homepage = "https://metacpan.org/release/MailTools"
+ url = "https://cpan.metacpan.org/authors/id/M/MA/MARKOV/MailTools-2.21.tar.gz"
+
+ version('2.21', sha256='4ad9bd6826b6f03a2727332466b1b7d29890c8d99a32b4b3b0a8d926ee1a44cb')
+
+ depends_on('perl-timedate', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-path-tiny/package.py b/var/spack/repos/builtin/packages/perl-path-tiny/package.py
new file mode 100644
index 0000000000..e721884387
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-path-tiny/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlPathTiny(PerlPackage):
+ """This module provides a small, fast utility for working with file paths.
+ It is friendlier to use than File::Spec and provides easy access to
+ functions from several other core file handling modules. It aims to be
+ smaller and faster than many alternatives on CPAN, while helping people do
+ many common things in consistent and less error-prone ways."""
+
+ homepage = "https://metacpan.org/pod/Path::Tiny"
+ url = "https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.108.tar.gz"
+
+ version('0.108', sha256='3c49482be2b3eb7ddd7e73a5b90cff648393f5d5de334ff126ce7a3632723ff5')
diff --git a/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py b/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py
new file mode 100644
index 0000000000..4efa679d62
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlPerlUnsafeSignals(PerlPackage):
+ """Quoting perl581delta:
+
+ In Perl 5.8.0 the so-called "safe signals" were introduced. This means
+ that Perl no longer handles signals immediately but instead "between
+ opcodes", when it is safe to do so. The earlier immediate handling
+ easily could corrupt the internal state of Perl, resulting in
+ mysterious crashes.
+
+ It's possible since perl 5.8.1 to globally disable this feature by
+ using the PERL_SIGNALS environment variables (as specified in
+ "PERL_SIGNALS" in perlrun); but there's no way to disable it locally,
+ for a short period of time. That's however something you might want to
+ do, if, for example, your Perl program calls a C routine that will
+ potentially run for a long time and for which you want to set a
+ timeout.
+
+ This module therefore allows you to define UNSAFE_SIGNALS blocks in
+ which signals will be handled "unsafely".
+
+ Note that, no matter how short you make the unsafe block, it will still
+ be unsafe. Use with caution."""
+
+ homepage = "https://metacpan.org/pod/Perl::Unsafe::Signals"
+ url = "https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/Perl-Unsafe-Signals-0.03.tar.gz"
+
+ version('0.03', sha256='d311ae7d73e8d0c2346dfacb82aa952322e70cd928b09d502d739e60e35f829d')
diff --git a/var/spack/repos/builtin/packages/perl-set-scalar/package.py b/var/spack/repos/builtin/packages/perl-set-scalar/package.py
new file mode 100644
index 0000000000..9ea860541e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-set-scalar/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlSetScalar(PerlPackage):
+ """Set::Scalar - basic set operations"""
+
+ homepage = "https://metacpan.org/pod/Set::Scalar"
+ url = "https://cpan.metacpan.org/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz"
+
+ version('1.29', sha256='a3dc1526f3dde72d3c64ea00007b86ce608cdcd93567cf6e6e42dc10fdc4511d')
diff --git a/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py b/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py
new file mode 100644
index 0000000000..50118db548
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlSysSigaction(PerlPackage):
+ """Prior to version 5.8.0 perl implemented 'unsafe' signal handling. The
+ reason it is consider unsafe, is that there is a risk that a signal will
+ arrive, and be handled while perl is changing internal data structures.
+ This can result in all kinds of subtle and not so subtle problems. For this
+ reason it has always been recommended that one do as little as possible in
+ a signal handler, and only variables that already exist be manipulated.
+
+ Perl 5.8.0 and later versions implements 'safe' signal handling on
+ platforms which support the POSIX sigaction() function. This is
+ accomplished by having perl note that a signal has arrived, but deferring
+ the execution of the signal handler until such time as it is safe to do so.
+ Unfortunately these changes can break some existing scripts, if they
+ depended on a system routine being interrupted by the signal's arrival. The
+ perl 5.8.0 implementation was modified further in version 5.8.2"""
+
+ homepage = "https://metacpan.org/pod/Sys::SigAction"
+ url = "https://cpan.metacpan.org/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz"
+
+ version('0.23', sha256='c4ef6c9345534031fcbbe2adc347fc7194d47afc945e7a44fac7e9563095d353')
diff --git a/var/spack/repos/builtin/packages/perl-term-readkey/package.py b/var/spack/repos/builtin/packages/perl-term-readkey/package.py
index d672cf6f5b..93317e3bf7 100644
--- a/var/spack/repos/builtin/packages/perl-term-readkey/package.py
+++ b/var/spack/repos/builtin/packages/perl-term-readkey/package.py
@@ -18,4 +18,5 @@ class PerlTermReadkey(PerlPackage):
homepage = "http://search.cpan.org/perldoc/Term::ReadKey"
url = "http://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz"
+ version('2.38', sha256='5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290')
version('2.37', 'e8ea15c16333ac4f8d146d702e83cc0c')
diff --git a/var/spack/repos/builtin/packages/perl-timedate/package.py b/var/spack/repos/builtin/packages/perl-timedate/package.py
new file mode 100644
index 0000000000..b887ce8513
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-timedate/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlTimedate(PerlPackage):
+ """The parser contained here will only parse absolute dates, if you want a
+ date parser that can parse relative dates then take a look at the Time
+ modules by David Muir on CPAN."""
+
+ homepage = "https://metacpan.org/release/TimeDate"
+ url = "https://cpan.metacpan.org/authors/id/G/GB/GBARR/TimeDate-2.30.tar.gz"
+
+ version('2.30', sha256='75bd254871cb5853a6aa0403ac0be270cdd75c9d1b6639f18ecba63c15298e86')
diff --git a/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py b/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py
new file mode 100644
index 0000000000..0227d4e509
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlDomXpath(PerlPackage):
+ """XML::DOM::XPath allows you to use XML::XPath methods to query a DOM.
+ This is often much easier than relying only on getElementsByTagName."""
+
+ homepage = "https://metacpan.org/pod/XML::DOM::XPath"
+ url = "https://cpan.metacpan.org/authors/id/M/MI/MIROD/XML-DOM-XPath-0.14.tar.gz"
+
+ version('0.14', sha256='0173a74a515211997a3117a47e7b9ea43594a04b865b69da5a71c0886fa829ea')
+
+ depends_on('perl-xml-dom', type=('build', 'run'))
+ depends_on('perl-xml-xpathengine', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-xml-dom/package.py b/var/spack/repos/builtin/packages/perl-xml-dom/package.py
new file mode 100644
index 0000000000..e0c3d97d11
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-dom/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlDom(PerlPackage):
+ """This module extends the XML::Parser module by Clark Cooper. The
+ XML::Parser module is built on top of XML::Parser::Expat, which is a lower
+ level interface to James Clark's expat library."""
+
+ homepage = "https://metacpan.org/pod/XML::DOM"
+ url = "https://cpan.metacpan.org/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz"
+
+ version('1.46', sha256='8ba24b0b459b01d6c5e5b0408829c7d5dfe47ff79b3548c813759048099b175e')
+
+ depends_on('perl-xml-parser', type=('build', 'run'))
+ depends_on('perl-xml-regexp', type=('build', 'run'))
+ depends_on('perl-libwww-perl', type=('build', 'run'))
+ depends_on('perl-libxml-perl', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py b/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py
new file mode 100644
index 0000000000..59950576f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlFilterBuffertext(PerlPackage):
+ """This is a very simple filter. One common cause of grief (and programmer
+ error) is that XML parsers aren't required to provide character events in
+ one chunk. They can, but are not forced to, and most don't. This filter
+ does the trivial but oft-repeated task of putting all characters into a
+ single event."""
+
+ homepage = "https://metacpan.org/pod/XML::Filter::BufferText"
+ url = "https://cpan.metacpan.org/authors/id/R/RB/RBERJON/XML-Filter-BufferText-1.01.tar.gz"
+
+ version('1.01', sha256='8fd2126d3beec554df852919f4739e689202cbba6a17506e9b66ea165841a75c')
diff --git a/var/spack/repos/builtin/packages/perl-xml-libxml/package.py b/var/spack/repos/builtin/packages/perl-xml-libxml/package.py
new file mode 100644
index 0000000000..bc6d4f4c05
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-libxml/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlLibxml(PerlPackage):
+ """This module is an interface to libxml2, providing XML and HTML parsers
+ with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3
+ interface and a XML::XPath-like interface to XPath API of libxml2. The
+ module is split into several packages which are not described in this
+ section; unless stated otherwise, you only need to use XML::LibXML; in your
+ programs."""
+
+ homepage = "https://metacpan.org/pod/XML::LibXML"
+ url = "https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0201.tar.gz"
+
+ version('2.0201', sha256='e008700732502b3f1f0890696ec6e2dc70abf526cd710efd9ab7675cae199bc2')
+
+ depends_on('libxml2')
+ depends_on('perl-xml-namespacesupport', type=('build', 'run'))
+ depends_on('perl-xml-sax', type=('build', 'run'))
+ depends_on('perl-xml-sax-base', type=('build', 'run'))
+ depends_on('perl-alien-libxml2', type='build')
diff --git a/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py
new file mode 100644
index 0000000000..cb7e58bcd1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlNamespacesupport(PerlPackage):
+ """This module offers a simple to process namespaced XML names (unames)
+ from within any application that may need them. It also helps maintain a
+ prefix to namespace URI map, and provides a number of basic checks."""
+
+ homepage = "https://metacpan.org/pod/XML::NamespaceSupport"
+ url = "https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz"
+
+ version('1.12_9', sha256='2e84a057f0a8c845a612d212742cb94fca4fc8a433150b5721bd448f77d1e4a9')
diff --git a/var/spack/repos/builtin/packages/perl-xml-quote/package.py b/var/spack/repos/builtin/packages/perl-xml-quote/package.py
new file mode 100644
index 0000000000..2c6702225e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-quote/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlQuote(PerlPackage):
+ """This module provides functions to quote/dequote strings in "xml"-way.
+
+ All functions are written in XS and are very fast; they correctly process
+ utf8, tied, overloaded variables and all the rest of perl "magic"."""
+
+ homepage = "https://metacpan.org/pod/XML::Quote"
+ url = "https://cpan.metacpan.org/authors/id/G/GD/GDSL/XML-Quote-1.02.tar.gz"
+
+ version('1.02', sha256='4705b86a8dcc002bffc6ff154ec5c55f0bfb6e99a3f744d1e77ae6541c6af228')
diff --git a/var/spack/repos/builtin/packages/perl-xml-regexp/package.py b/var/spack/repos/builtin/packages/perl-xml-regexp/package.py
new file mode 100644
index 0000000000..30ecb45a67
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-regexp/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlRegexp(PerlPackage):
+ """This package contains regular expressions for the following XML tokens:
+ BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar,
+ NameChar, EntityRef, CharRef, Reference, Name, NmToken, and
+ AttValue."""
+
+ homepage = "https://metacpan.org/pod/XML::RegExp"
+ url = "https://cpan.metacpan.org/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz"
+
+ version('0.04', sha256='df1990096036085c8e2d45904fe180f82bfed40f1a7e05243f334ea10090fc54')
diff --git a/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py b/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py
new file mode 100644
index 0000000000..b9943e6d0d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlSaxBase(PerlPackage):
+ """This module has a very simple task - to be a base class for PerlSAX
+ drivers and filters. It's default behaviour is to pass the input directly
+ to the output unchanged. It can be useful to use this module as a base
+ class so you don't have to, for example, implement the characters()
+ callback."""
+
+ homepage = "https://metacpan.org/pod/XML::SAX::Base"
+ url = "https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz"
+
+ version('1.09', sha256='66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0')
diff --git a/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py b/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py
new file mode 100644
index 0000000000..6de6611f09
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlSaxWriter(PerlPackage):
+ """A new XML Writer was needed to match the SAX2 effort because quite
+ naturally no existing writer understood SAX2. My first intention had been
+ to start patching XML::Handler::YAWriter as it had previously been my
+ favourite writer in the SAX1 world."""
+
+ homepage = "https://metacpan.org/pod/XML::SAX::Writer"
+ url = "https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-0.57.tar.gz"
+
+ version('0.57', sha256='3d61d07ef43b0126f5b4de4f415a256fa859fa88dc4fdabaad70b7be7c682cf0')
+
+ depends_on('perl-xml-filter-buffertext', type=('build', 'run'))
+ depends_on('perl-xml-namespacesupport', type=('build', 'run'))
+ depends_on('perl-xml-sax-base', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-xml-sax/package.py b/var/spack/repos/builtin/packages/perl-xml-sax/package.py
new file mode 100644
index 0000000000..78138fca65
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-sax/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlSax(PerlPackage):
+ """XML::SAX is a SAX parser access API for Perl. It includes classes and
+ APIs required for implementing SAX drivers, along with a factory class for
+ returning any SAX parser installed on the user's system."""
+
+ homepage = "https://metacpan.org/pod/XML::SAX"
+ url = "https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz"
+
+ version('1.02', sha256='4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a')
+
+ depends_on('perl-xml-namespacesupport', type=('build', 'run'))
+ depends_on('perl-xml-sax-base', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/perl-xml-twig/non_interactive.patch b/var/spack/repos/builtin/packages/perl-xml-twig/non_interactive.patch
new file mode 100644
index 0000000000..0c246215e7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-twig/non_interactive.patch
@@ -0,0 +1,27 @@
+--- a/Makefile.PL 2016-06-21 05:50:27.000000000 -0500
++++ b/Makefile.PL 2019-09-16 10:51:28.436352022 -0500
+@@ -15,23 +15,7 @@
+
+ my $opt= $ARGV[0] ? $ARGV[0] : '';
+
+-if( $opt eq "-n")
+- { @programs=(); }
+-elsif( $opt eq "-y")
+- { @programs= map { $_->[0] } @prompts; }
+-elsif( $opt eq "-d")
+- { @programs= map { $_->[0] if( $_->[1] eq 'y') } @prompts; }
+-elsif( $ENV{AUTOMATED_TESTING} || $ENV{NONINTERACTIVE_TESTING})
+- { @programs=(); }
+-else
+- { print "run 'perl Makefile.PL -y' to install all tools,\n",
+- " 'perl Makefile.PL -n' to skip installation\n";
+- foreach my $prompt (@prompts)
+- { my ($program, $default, $description) = @$prompt;
+- if( prompt("Do you want to install '$program' ($description)?", $default) =~ /^y/i)
+- { push(@programs, $program); }
+- }
+- }
++@programs= map { $_->[0] } @prompts;
+
+ MyWriteMakefile(
+ META_MERGE => {
diff --git a/var/spack/repos/builtin/packages/perl-xml-twig/package.py b/var/spack/repos/builtin/packages/perl-xml-twig/package.py
new file mode 100644
index 0000000000..e2c81fef04
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-twig/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlTwig(PerlPackage):
+ """This module provides a way to process XML documents. It is build on top
+ of XML::Parser.
+
+ The module offers a tree interface to the document, while allowing you to
+ output the parts of it that have been completely processed.
+
+ It allows minimal resource (CPU and memory) usage by building the tree only
+ for the parts of the documents that need actual processing, through the use
+ of the twig_roots and twig_print_outside_roots options. The finish and
+ finish_print methods also help to increase performances.
+
+ XML::Twig tries to make simple things easy so it tries its best to takes
+ care of a lot of the (usually) annoying (but sometimes necessary) features
+ that come with XML and XML::Parser."""
+
+ homepage = "https://metacpan.org/pod/XML::Twig"
+ url = "https://cpan.metacpan.org/authors/id/M/MI/MIROD/XML-Twig-3.52.tar.gz"
+
+ version('3.52', sha256='fef75826c24f2b877d0a0d2645212fc4fb9756ed4d2711614ac15c497e8680ad')
+
+ depends_on('perl-xml-parser', type=('build', 'run'))
+
+ patch('non_interactive.patch')
diff --git a/var/spack/repos/builtin/packages/perl-xml-writer/package.py b/var/spack/repos/builtin/packages/perl-xml-writer/package.py
new file mode 100644
index 0000000000..29c39ca8f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-writer/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlWriter(PerlPackage):
+ """XML::Writer is a helper module for Perl programs that write an XML
+ document. The module handles all escaping for attribute values and
+ character data and constructs different types of markup, such as tags,
+ comments, and processing instructions.
+
+ By default, the module performs several well-formedness checks to catch
+ errors during output. This behaviour can be extremely useful during
+ development and debugging, but it can be turned off for production-grade
+ code.
+
+ The module can operate either in regular mode in or Namespace processing
+ mode. In Namespace mode, the module will generate Namespace Declarations
+ itself, and will perform additional checks on the output."""
+
+ homepage = "https://metacpan.org/pod/XML::Writer"
+ url = "https://cpan.metacpan.org/authors/id/J/JO/JOSEPHW/XML-Writer-0.625.tar.gz"
+
+ version('0.625', sha256='e080522c6ce050397af482665f3965a93c5d16f5e81d93f6e2fe98084ed15fbe')
diff --git a/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py b/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py
new file mode 100644
index 0000000000..241d806d6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PerlXmlXpathengine(PerlPackage):
+ """This module provides an XPath engine, that can be re-used by other
+ module/classes that implement trees."""
+
+ homepage = "https://metacpan.org/pod/XML::XPathEngine"
+ url = "https://cpan.metacpan.org/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz"
+
+ version('0.14', sha256='d2fe7bcbbd0beba1444f4a733401e7b8aa5282fad4266d42735dd74582b2e264')