From 9d936a2a756298a540f1c25fab46ccdc716980a4 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 29 Dec 2022 02:24:41 -0600 Subject: singularity, apptainer: --without-conmon into @property config_options (#34474) Per https://github.com/spack/spack/issues/34192, apptainer does not support `--without-conmon`, so we introduce a base class `config_options` property that can be overridden in the `apptainer` package. --- var/spack/repos/builtin/packages/apptainer/package.py | 16 ++++------------ .../repos/builtin/packages/singularityce/package.py | 9 +++++++-- 2 files changed, 11 insertions(+), 14 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/apptainer/package.py b/var/spack/repos/builtin/packages/apptainer/package.py index 9d07bcde0b..92410cb3ce 100644 --- a/var/spack/repos/builtin/packages/apptainer/package.py +++ b/var/spack/repos/builtin/packages/apptainer/package.py @@ -39,15 +39,7 @@ class Apptainer(SingularityBase): "https://apptainer.org/docs/admin/main/admin_quickstart.html#apptainer-security", ) - # This overrides SingularityBase (found in ../singularityce/package.py) - # Because Apptainer's mconfig has no option `--without-conmon` - # https://github.com/apptainer/apptainer/blob/v1.0.2/mconfig - def edit(self, spec, prefix): - with working_dir(self.build_directory): - confstring = "./mconfig --prefix=%s" % prefix - if "~suid" in spec: - confstring += " --without-suid" - if "~network" in spec: - confstring += " --without-network" - configure = Executable(confstring) - configure() + # Override config options from SingularityBase + @property + def config_options(self): + return [] diff --git a/var/spack/repos/builtin/packages/singularityce/package.py b/var/spack/repos/builtin/packages/singularityce/package.py index baf707bf2b..82374ac5b7 100644 --- a/var/spack/repos/builtin/packages/singularityce/package.py +++ b/var/spack/repos/builtin/packages/singularityce/package.py @@ -70,12 +70,17 @@ class SingularityBase(MakefilePackage): def build_directory(self): return self.singularity_gopath_dir + # Allow overriding config options + @property + def config_options(self): + # Using conmon from spack + return ["--without-conmon"] + # Hijack the edit stage to run mconfig. def edit(self, spec, prefix): with working_dir(self.build_directory): confstring = "./mconfig --prefix=%s" % prefix - # Using conmon from spack - confstring += " --without-conmon" + confstring += " ".join(config_options) if "~suid" in spec: confstring += " --without-suid" if "~network" in spec: -- cgit v1.2.3-70-g09d2