summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2022-11-15 14:36:16 +0100
committerGitHub <noreply@github.com>2022-11-15 14:36:16 +0100
commitd36c7b20d290ef0f151733ce2a431f703c2082fa (patch)
tree2a7348501e1809352eef82446121b6bef7f6f1de /var
parent2948248d7a05820c21b7edb57bdb8570e350b170 (diff)
downloadspack-d36c7b20d290ef0f151733ce2a431f703c2082fa.tar.gz
spack-d36c7b20d290ef0f151733ce2a431f703c2082fa.tar.bz2
spack-d36c7b20d290ef0f151733ce2a431f703c2082fa.tar.xz
spack-d36c7b20d290ef0f151733ce2a431f703c2082fa.zip
python: missing libxcrypt dep (#33847)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/python/package.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py
index 91e635b38a..55bbde3182 100644
--- a/var/spack/repos/builtin/packages/python/package.py
+++ b/var/spack/repos/builtin/packages/python/package.py
@@ -370,6 +370,9 @@ class Python(Package):
variant("tkinter", default=False, description="Build tkinter module")
variant("uuid", default=True, description="Build uuid module")
variant("tix", default=False, description="Build Tix module")
+ variant("crypt", default=True, description="Build crypt module", when="@:3.12 platform=linux")
+ variant("crypt", default=True, description="Build crypt module", when="@:3.12 platform=darwin")
+ variant("crypt", default=True, description="Build crypt module", when="@:3.12 platform=cray")
if not is_windows:
depends_on("pkgconfig@0.9.0:", type="build")
@@ -405,6 +408,7 @@ class Python(Package):
depends_on("tcl", when="+tkinter")
depends_on("uuid", when="+uuid")
depends_on("tix", when="+tix")
+ depends_on("libxcrypt", when="+crypt")
# Python needs to be patched to build extensions w/ mixed C/C++ code:
# https://github.com/NixOS/nixpkgs/pull/19585/files
@@ -560,6 +564,14 @@ class Python(Package):
except ProcessError:
variants += "~tix"
+ # Some modules are platform-dependent
+ if not self.spec.satisfies("platform=windows"):
+ try:
+ python("-c", "import crypt", error=os.devnull)
+ variants += "+crypt"
+ except ProcessError:
+ variants += "~crypt"
+
return variants
def url_for_version(self, version):
@@ -1017,6 +1029,10 @@ class Python(Package):
else:
self.command("-c", "import Tix")
+ # Ensure that crypt module works
+ if "+crypt" in spec:
+ self.command("-c", "import crypt")
+
# ========================================================================
# Set up environment to make install easy for python extensions.
# ========================================================================