From bcae9e354b05f34c0972632cf8ce019a3ff0e498 Mon Sep 17 00:00:00 2001
From: Robert Blake <blake14@llnl.gov>
Date: Thu, 13 Aug 2020 23:43:27 -0700
Subject: [PATCH] Adding external package support for tar. (#18002)

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
---
 var/spack/repos/builtin/packages/tar/package.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py
index 15c2e4bc0e..8dd0c190a4 100644
--- a/var/spack/repos/builtin/packages/tar/package.py
+++ b/var/spack/repos/builtin/packages/tar/package.py
@@ -13,6 +13,8 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
     homepage = "https://www.gnu.org/software/tar/"
     gnu_mirror_path = "tar/tar-1.32.tar.gz"
 
+    executables = [r'^tar$']
+
     version('1.32', sha256='b59549594d91d84ee00c99cf2541a3330fed3a42c440503326dab767f2fbb96c')
     version('1.31', sha256='b471be6cb68fd13c4878297d856aebd50551646f4e3074906b1a74549c40d5a2')
     version('1.30', sha256='4725cc2c2f5a274b12b39d1f78b3545ec9ebb06a6e48e8845e1995ac8513b088')
@@ -27,6 +29,12 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
     patch('argp-pgi.patch',   when='@:1.29')
     patch('gnutar-configure-xattrs.patch', when='@1.28')
 
+    @classmethod
+    def determine_version(cls, exe):
+        output = Executable(exe)('--version', output=str, error=str)
+        match = re.search(r'tar \(GNU tar\) (\S+)', output)
+        return match.group(1) if match else None
+
     def configure_args(self):
         return [
             '--with-libiconv-prefix={0}'.format(self.spec['iconv'].prefix),
-- 
GitLab