From c2778d8898e99581d7ea0974dc61fb8463286f5f Mon Sep 17 00:00:00 2001
From: Michael Kuhn <michael.kuhn@informatik.uni-hamburg.de>
Date: Wed, 15 Jan 2020 21:12:51 +0100
Subject: [PATCH] perl: Add 5.30.1 (and 5.31.7) (#14509)

This also fixes actually building the development releases.
---
 .../repos/builtin/packages/perl/package.py    | 25 ++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py
index b51d65961b..176dea0495 100644
--- a/var/spack/repos/builtin/packages/perl/package.py
+++ b/var/spack/repos/builtin/packages/perl/package.py
@@ -31,10 +31,12 @@ class Perl(Package):  # Perl doesn't use Autotools, it should subclass Package
     # explanation of version numbering scheme
 
     # Development releases (odd numbers)
+    version('5.31.7', sha256='d05c4e72128f95ef6ffad42728ecbbd0d9437290bf0f88268b51af011f26b57d')
     version('5.31.4', sha256='418a7e6fe6485cc713a86d1227ef112f0bb3f80322e3b715ffe42851d97804a5')
 
     # Maintenance releases (even numbers, recommended)
-    version('5.30.0', sha256='851213c754d98ccff042caa40ba7a796b2cee88c5325f121be5cbb61bbf975f2', preferred=True)
+    version('5.30.1', sha256='bf3d25571ff1ee94186177c2cdef87867fd6a14aa5a84f0b1fb7bf798f42f964', preferred=True)
+    version('5.30.0', sha256='851213c754d98ccff042caa40ba7a796b2cee88c5325f121be5cbb61bbf975f2')
 
     # End of life releases
     version('5.28.0', sha256='7e929f64d4cb0e9d1159d4a59fc89394e27fa1f7004d0836ca0d514685406ea8')
@@ -137,6 +139,9 @@ def configure_args(self):
         if '+threads' in spec:
             config_args.append('-Dusethreads')
 
+        if spec.satisfies('@5.31'):
+            config_args.append('-Dusedevel')
+
         return config_args
 
     def configure(self, spec, prefix):
@@ -290,3 +295,21 @@ def deactivate(self, ext_pkg, view, **args):
         # Make deactivate idempotent
         if ext_pkg.name in exts:
             del exts[ext_pkg.name]
+
+    @property
+    def command(self):
+        """Returns the Perl command, which may vary depending on the version
+        of Perl. In general, Perl comes with a ``perl`` command. However,
+        development releases have a ``perlX.Y.Z`` command.
+
+        Returns:
+            Executable: the Perl command
+        """
+        for ver in (self.spec.version, ''):
+            path = os.path.join(self.prefix.bin, '{0}{1}'.format(
+                self.spec.name, ver))
+            if os.path.exists(path):
+                return Executable(path)
+        else:
+            msg = 'Unable to locate {0} command in {1}'
+            raise RuntimeError(msg.format(self.spec.name, self.prefix.bin))
-- 
GitLab