summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorOlivier Cessenat <cessenat@gmail.com>2021-06-25 09:25:18 +0200
committerGitHub <noreply@github.com>2021-06-25 09:25:18 +0200
commitec2d4c07b31f82942feb5ad3bb39b6c6f822952e (patch)
tree971322859444923d55c5850a3948a47a1416f4be /var
parent7dafc827a7e87eccc5882251cf64662257b24b4f (diff)
downloadspack-ec2d4c07b31f82942feb5ad3bb39b6c6f822952e.tar.gz
spack-ec2d4c07b31f82942feb5ad3bb39b6c6f822952e.tar.bz2
spack-ec2d4c07b31f82942feb5ad3bb39b6c6f822952e.tar.xz
spack-ec2d4c07b31f82942feb5ad3bb39b6c6f822952e.zip
texlive: add support for external find (#24460)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/texlive/package.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py
index a5fd6b8261..6bb46dc75c 100644
--- a/var/spack/repos/builtin/packages/texlive/package.py
+++ b/var/spack/repos/builtin/packages/texlive/package.py
@@ -7,6 +7,7 @@ from spack import *
import os
import platform
import tempfile
+import re
class Texlive(AutotoolsPackage):
@@ -221,3 +222,39 @@ class Texlive(AutotoolsPackage):
'-portable', '-profile', tmp_profile.name)
tmp_profile.close()
+
+ executables = [r'^tex$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ # https://askubuntu.com/questions/100406/finding-the-tex-live-version
+ # Thanks to @michaelkuhn that told how to reuse the package releases
+ # variable.
+ # Added 3 older releases: 2018 (CentOS-8), 2017 (Ubuntu-18.04), 2013 (CentOS-7).
+ releases = cls.releases
+ releases.extend([
+ {
+ 'version': '20180414',
+ 'year': '2018',
+ },
+ {
+ 'version': '20170524',
+ 'year': '2017',
+ },
+ {
+ 'version': '20130530',
+ 'year': '2013',
+ },
+ ])
+ # tex indicates the year only
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'TeX Live (\d+)', output)
+ ver = match.group(1) if match else None
+ # We search for the repo actual release
+ if ver is not None:
+ for release in releases:
+ year = release['year']
+ if year == ver:
+ ver = release['version']
+ break
+ return ver