geopm-runtime: New package (#42737)
* Add systemd
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* gobject-introspection: Correct glib versions
- The meson.build requirement that the glib version
  is >= the gobject-introspective version is not in place
  until v1.76.1.
- Prior to that, the requirement was glib >= 2.58.0.
- Bug introduced in acbf0d99c4, PR #42222.
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* util-linux: add v2.39.3
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* py-natsort: add new versions
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* geopm-service: default systemd support to true
- Make the dependency sticky to force a failure
  if systemd compilation fails, or force
  the user to disable the option.
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* geopm-service: Add initial multi-architecture support
- Restrict arch conflicts to 3.0.1
- Disable cpuid at configure time on non-x86_64 platforms.
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* geopm-service: update docstrings
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* Add py-geopmdpy
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
* Add geopm-runtime recipe
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
---------
Signed-off-by: Brad Geltz <brad.geltz@intel.com>
			
			
This commit is contained in:
		
							
								
								
									
										143
									
								
								var/spack/repos/builtin/packages/geopm-runtime/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								var/spack/repos/builtin/packages/geopm-runtime/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,143 @@ | ||||
| # Copyright 2013-2023 Lawrence Livermore National Security, LLC and other | ||||
| # Spack Project Developers. See the top-level COPYRIGHT file for details. | ||||
| # | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| import os | ||||
| 
 | ||||
| from spack.package import * | ||||
| 
 | ||||
| 
 | ||||
| class GeopmRuntime(AutotoolsPackage): | ||||
|     """The Global Extensible Open Power Manager (GEOPM) Runtime is designed to | ||||
|     enhance energy efficiency of applications through active hardware | ||||
|     configuration.""" | ||||
| 
 | ||||
|     homepage = "https://geopm.github.io" | ||||
|     git = "https://github.com/geopm/geopm.git" | ||||
|     url = "https://github.com/geopm/geopm/tarball/v3.0.1" | ||||
| 
 | ||||
|     maintainers("bgeltz", "cmcantalupo") | ||||
|     license("BSD-3-Clause") | ||||
|     tags = ["e4s"] | ||||
| 
 | ||||
|     version("develop", branch="dev", get_full_repo=True) | ||||
|     version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234") | ||||
| 
 | ||||
|     variant("debug", default=False, description="Enable debug") | ||||
|     variant("docs", default=False, description="Create man pages with Sphinx") | ||||
|     variant("overhead", default=False, description="Track time spent in GEOPM API calls") | ||||
|     variant("beta", default=False, description="Enable beta features") | ||||
|     variant("mpi", default=True, description="Enable MPI dependent components") | ||||
|     variant("fortran", default=True, description="Build fortran interface") | ||||
|     variant("openmp", default=True, description="Build with OpenMP") | ||||
|     variant("ompt", default=True, description="Use OpenMP Tools Interface") | ||||
|     variant("gnu-ld", default=False, description="Assume C compiler uses gnu-ld") | ||||
|     variant("intel-mkl", default=True, description="Build with Intel MKL support") | ||||
|     variant( | ||||
|         "checkprogs", | ||||
|         default=False, | ||||
|         description='Build tests (use with "devbuild" or "install --keep-stage")', | ||||
|     ) | ||||
| 
 | ||||
|     conflicts("%gcc@:7.2", msg="Requires C++17 support") | ||||
|     conflicts("%clang@:4", msg="Requires C++17 support") | ||||
|     conflicts("%gcc", when="+ompt") | ||||
| 
 | ||||
|     conflicts("platform=darwin", msg="Darwin is not supported") | ||||
|     conflicts("platform=windows", msg="Windows is not supported") | ||||
| 
 | ||||
|     conflicts("target=aarch64:", msg="Only available on x86_64", when="@3.0.1") | ||||
|     conflicts("target=ppc64:", msg="Only available on x86_64", when="@3.0.1") | ||||
|     conflicts("target=ppc64le:", msg="Only available on x86_64", when="@3.0.1") | ||||
| 
 | ||||
|     # Autotools dependencies | ||||
|     depends_on("automake", type="build") | ||||
|     depends_on("libtool", type="build") | ||||
|     depends_on("file") | ||||
| 
 | ||||
|     # Docs dependencies | ||||
|     depends_on("doxygen", type="build", when="+docs") | ||||
|     depends_on("py-sphinx", type="build", when="+docs") | ||||
|     depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs") | ||||
|     depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs") | ||||
|     depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs") | ||||
|     depends_on("py-pygments@2.13.0:", type="build", when="+docs") | ||||
| 
 | ||||
|     # Other Python dependencies - from scripts/setup.py | ||||
|     depends_on("python@3.6:3", type=("build", "run")) | ||||
|     depends_on("py-setuptools@53.0.0:", type="build") | ||||
|     depends_on("py-cffi@1.14.5:", type="run") | ||||
|     depends_on("py-natsort@8.2.0:", type="run") | ||||
|     depends_on("py-numpy@1.19.5:", type="run") | ||||
|     depends_on("py-pandas@1.1.5:", type="run") | ||||
|     depends_on("py-tables@3.7.0:", type="run") | ||||
|     depends_on("py-psutil@5.8.0:", type="run") | ||||
|     depends_on("py-pyyaml@6.0:", type="run") | ||||
|     depends_on("py-docutils@0.18:", type="run", when="+checkprogs") | ||||
| 
 | ||||
|     # Other dependencies | ||||
|     for ver in ["3.0.1", "develop"]: | ||||
|         depends_on(f"geopm-service@{ver}", type="build", when=f"@{ver}") | ||||
|         depends_on(f"py-geopmdpy@{ver}", type="run", when=f"@{ver}") | ||||
|     depends_on("bash-completion") | ||||
|     depends_on("unzip") | ||||
|     depends_on("mpi@2.2:", when="+mpi") | ||||
|     depends_on("libelf") | ||||
|     depends_on("numactl", type="run", when="+checkprogs") | ||||
|     depends_on("stress-ng", type="run", when="+checkprogs") | ||||
| 
 | ||||
|     # Intel dependencies | ||||
|     depends_on("intel-oneapi-mkl%oneapi", when="+intel-mkl") | ||||
| 
 | ||||
|     extends("python") | ||||
| 
 | ||||
|     @property | ||||
|     def install_targets(self): | ||||
|         target = ["install"] | ||||
|         if "+checkprogs" in self.spec: | ||||
|             target += ["checkprogs"] | ||||
|         return target | ||||
| 
 | ||||
|     def autoreconf(self, spec, prefix): | ||||
|         bash = which("bash") | ||||
|         if not spec.version.isdevelop(): | ||||
|             # Required to workaround missing VERSION files | ||||
|             # from GitHub generated source tarballs | ||||
|             with open("VERSION_OVERRIDE", "w") as fd: | ||||
|                 fd.write(f"{spec.version}") | ||||
|         bash("./autogen.sh") | ||||
| 
 | ||||
|     def configure_args(self): | ||||
|         args = [ | ||||
|             "--with-bash-completion-dir=" | ||||
|             + join_path(self.spec.prefix, "share", "bash-completion", "completions"), | ||||
|             "--disable-geopmd-local", | ||||
|             f"--with-geopmd={self.spec['geopm-service'].prefix}", | ||||
|         ] | ||||
| 
 | ||||
|         args += self.enable_or_disable("debug") | ||||
|         args += self.enable_or_disable("docs") | ||||
|         args += self.enable_or_disable("overhead") | ||||
|         args += self.enable_or_disable("beta") | ||||
|         args += self.enable_or_disable("mpi") | ||||
|         args += self.enable_or_disable("fortran") | ||||
|         args += self.enable_or_disable("openmp") | ||||
|         args += self.enable_or_disable("ompt") | ||||
|         args += self.with_or_without("gnu-ld") | ||||
| 
 | ||||
|         return args | ||||
| 
 | ||||
|     def setup_run_environment(self, env): | ||||
|         # Required to ensure libgeopm.so | ||||
|         # can be used with LD_PRELOAD | ||||
|         if os.path.isdir(self.prefix.lib64): | ||||
|             lib_dir = self.prefix.lib64 | ||||
|         else: | ||||
|             lib_dir = self.prefix.lib | ||||
|         env.prepend_path("LD_LIBRARY_PATH", lib_dir) | ||||
| 
 | ||||
|         if "+checkprogs" in self.spec: | ||||
|             env.set("GEOPM_SOURCE", self.stage.source_path) | ||||
|             env.prepend_path("PYTHONPATH", self.stage.source_path) | ||||
|         env.set("GEOPM_INSTALL", self.prefix) | ||||
| @@ -9,14 +9,8 @@ | ||||
| 
 | ||||
| 
 | ||||
| class GeopmService(AutotoolsPackage): | ||||
|     """The Global Extensible Open Power Manager (GEOPM) is a framework for | ||||
|     exploring power and energy optimizations targeting heterogeneous platforms. | ||||
|     The GEOPM package provides many built-in features. A simple use case is | ||||
|     reading hardware counters and setting hardware controls with platform | ||||
|     independent syntax using a command line tool on a particular compute node. | ||||
|     An advanced use case is dynamically coordinating hardware settings across | ||||
|     all compute nodes used by a distributed application is response to the | ||||
|     application's behavior and requests from the resource manager. | ||||
|     """The Global Extensible Open Power Manager (GEOPM) Service provides a | ||||
|     user interface for accessing hardware telemetry and settings securely. | ||||
| 
 | ||||
|     Note: GEOPM interfaces with hardware using Model Specific Registers (MSRs). | ||||
|     For proper usage make sure MSRs are made available via the msr or | ||||
| @@ -35,11 +29,7 @@ class GeopmService(AutotoolsPackage): | ||||
| 
 | ||||
|     variant("debug", default=False, description="Enable debug") | ||||
|     variant("docs", default=True, description="Create man pages with Sphinx") | ||||
|     variant( | ||||
|         "systemd", | ||||
|         default=False, | ||||
|         description="Enable use of systemd (systemd development libraries required)", | ||||
|     ) | ||||
|     variant("systemd", default=True, description="Enable use of systemd/DBus") | ||||
|     variant("liburing", default=True, description="Enables the use of liburing for batch I/O") | ||||
|     variant( | ||||
|         "libcap", default=True, description="Enables the use of libcap to do capabilities checks" | ||||
| @@ -64,9 +54,9 @@ class GeopmService(AutotoolsPackage): | ||||
|     conflicts("platform=darwin", msg="Darwin is not supported") | ||||
|     conflicts("platform=windows", msg="Windows is not supported") | ||||
| 
 | ||||
|     conflicts("target=aarch64:", msg="Only available on x86_64") | ||||
|     conflicts("target=ppc64:", msg="Only available on x86_64") | ||||
|     conflicts("target=ppc64le:", msg="Only available on x86_64") | ||||
|     conflicts("target=aarch64:", msg="Only available on x86_64", when="@3.0.1") | ||||
|     conflicts("target=ppc64:", msg="Only available on x86_64", when="@3.0.1") | ||||
|     conflicts("target=ppc64le:", msg="Only available on x86_64", when="@3.0.1") | ||||
| 
 | ||||
|     patch("0001-Support-NVML-via-CUDA-installation.patch", when="+nvml") | ||||
| 
 | ||||
| @@ -78,7 +68,7 @@ class GeopmService(AutotoolsPackage): | ||||
|     # Docs dependencies | ||||
|     depends_on("doxygen", type="build", when="+docs") | ||||
|     depends_on("py-docstring-parser@0.13.0:", type="build", when="+docs") | ||||
|     depends_on("py-sphinx@4.5:", type="build", when="+docs") | ||||
|     depends_on("py-sphinx", type="build", when="+docs") | ||||
|     depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs") | ||||
|     depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs") | ||||
|     depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs") | ||||
| @@ -95,6 +85,7 @@ class GeopmService(AutotoolsPackage): | ||||
|     # Other dependencies | ||||
|     depends_on("bash-completion") | ||||
|     depends_on("unzip") | ||||
|     depends_on("systemd", when="+systemd") | ||||
|     depends_on("libcap", when="+libcap") | ||||
|     depends_on("liburing", when="+liburing") | ||||
|     depends_on("oneapi-level-zero", when="+levelzero") | ||||
| @@ -132,10 +123,16 @@ def configure_args(self): | ||||
|         args += self.enable_or_disable("nvml") | ||||
|         if "+nvml" in self.spec: | ||||
|             args += [ | ||||
|                 "--with-nvml=" + join_path(self.spec["cuda"].prefix, "targets", "x86_64-linux") | ||||
|                 "--with-nvml=" | ||||
|                 + join_path( | ||||
|                     self.spec["cuda"].prefix, "targets", f"{self.spec.target.family}-linux" | ||||
|                 ) | ||||
|             ] | ||||
| 
 | ||||
|         args += self.enable_or_disable("rawmsr") | ||||
|         with when("@develop"): | ||||
|             if self.spec.target.family != "x86_64": | ||||
|                 args += ["--disable-cpuid"] | ||||
|         return args | ||||
| 
 | ||||
|     def setup_run_environment(self, env): | ||||
|   | ||||
| @@ -44,9 +44,9 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage): | ||||
|     depends_on("cairo+gobject") | ||||
|     depends_on("glib@2.78:", when="@1.78") | ||||
|     depends_on("glib@2.76:", when="@1.76") | ||||
|     depends_on("glib@2.72:", when="@1.72") | ||||
|     depends_on("glib@2.58:", when="@1.72") | ||||
|     depends_on("glib@2.56:", when="@1.56") | ||||
|     depends_on("glib@2.49.2:", when="@1.49.2:") | ||||
|     depends_on("glib@2.49.2:", when="@1.49.2") | ||||
|     depends_on("glib@2.48.1", when="@1.48.0") | ||||
| 
 | ||||
|     depends_on("libffi") | ||||
|   | ||||
							
								
								
									
										39
									
								
								var/spack/repos/builtin/packages/py-geopmdpy/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								var/spack/repos/builtin/packages/py-geopmdpy/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| # Copyright 2013-2024 Lawrence Livermore National Security, LLC and other | ||||
| # Spack Project Developers. See the top-level COPYRIGHT file for details. | ||||
| # | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| from spack.package import * | ||||
| 
 | ||||
| 
 | ||||
| class PyGeopmdpy(PythonPackage): | ||||
|     """The Global Extensible Open Power Manager (GEOPM) Service provides a | ||||
|     user interface for accessing hardware telemetry and settings securely.""" | ||||
| 
 | ||||
|     homepage = "https://geopm.github.io" | ||||
|     git = "https://github.com/geopm/geopm.git" | ||||
|     url = "https://github.com/geopm/geopm/tarball/v3.0.1" | ||||
| 
 | ||||
|     maintainers("bgeltz", "cmcantalupo") | ||||
|     license("BSD-3-Clause") | ||||
|     tags = ["e4s"] | ||||
| 
 | ||||
|     version("develop", branch="dev") | ||||
|     version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234") | ||||
| 
 | ||||
|     depends_on("py-dasbus@1.6.0:", type=("build", "run")) | ||||
|     depends_on("py-cffi@1.14.5:", type="run") | ||||
|     depends_on("py-psutil@5.8.0:", type="run") | ||||
|     depends_on("py-jsonschema@3.2.0:", type="run") | ||||
|     depends_on("py-pyyaml@6.0:", type="run") | ||||
|     depends_on("py-setuptools@53.0.0:", type="build") | ||||
| 
 | ||||
|     build_directory = "service" | ||||
| 
 | ||||
|     @run_before("install") | ||||
|     def populate_version(self): | ||||
|         # @develop builds will have a version of 0.0.0 | ||||
|         if not self.spec.version.isdevelop(): | ||||
|             with working_dir(join_path("service", "geopmdpy")): | ||||
|                 with open("version.py", "w") as fd: | ||||
|                     fd.write(f"__version__ = '{self.spec.version}'") | ||||
| @@ -14,6 +14,8 @@ class PyNatsort(PythonPackage): | ||||
| 
 | ||||
|     license("MIT") | ||||
| 
 | ||||
|     version("8.4.0", sha256="e42c6730e93382f743e09eb24b8d48034d81d089bd259183a88e2c4190e3db90") | ||||
|     version("8.2.0", sha256="0ce4562913d89a6f413fc68c9937cb0fc32be1268f73ac4b68e2646aeae458c6") | ||||
|     version("7.1.1", sha256="ada96d9ca0db0d44b891718ff7baff5ac34cf5b6d9def356c0f7a8ea67ae2113") | ||||
|     version("7.1.0", sha256="c3de32c8e5e91cf4f2dd1655b4c167ca4676cc28ce397050fc8d229582a71f0d") | ||||
|     version("7.0.1", sha256="1a422a344d089f7a2acba788087ca6253ca47a544bda677721f99516cdfd8668") | ||||
|   | ||||
							
								
								
									
										141
									
								
								var/spack/repos/builtin/packages/systemd/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								var/spack/repos/builtin/packages/systemd/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,141 @@ | ||||
| # Copyright 2013-2023 Lawrence Livermore National Security, LLC and other | ||||
| # Spack Project Developers. See the top-level COPYRIGHT file for details. | ||||
| # | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| import os | ||||
| 
 | ||||
| from spack.package import * | ||||
| 
 | ||||
| 
 | ||||
| class Systemd(MesonPackage): | ||||
|     """systemd is a suite of basic building blocks for a Linux system. | ||||
|     It provides a system and service manager that runs as PID 1 and | ||||
|     starts the rest of the system.""" | ||||
| 
 | ||||
|     homepage = "https://systemd.io/" | ||||
|     url = "https://github.com/systemd/systemd/archive/refs/tags/v255.tar.gz" | ||||
|     license("GPL-2.0-only") | ||||
| 
 | ||||
|     version("255", sha256="28854ffb2cb5f9e07fcbdbaf1e03a80b3462a12edeef84893ca2f37b22e4491e") | ||||
| 
 | ||||
|     depends_on("meson@0.60.0:", type="build") | ||||
|     depends_on("ninja", type="build") | ||||
|     depends_on("py-jinja2", type="build") | ||||
|     depends_on("util-linux@2.30:")  # libmount | ||||
|     depends_on("gperf") | ||||
|     depends_on("libcap") | ||||
|     depends_on("pkgconfig") | ||||
| 
 | ||||
|     conflicts("%gcc@:8.4") | ||||
|     conflicts("%clang@:7") | ||||
| 
 | ||||
|     def meson_args(self): | ||||
|         # Setting prefix is required here because without this the installation | ||||
|         # prefix would be repeated twice because of the required use of DESTDIR | ||||
|         # during the install phase. | ||||
|         # Similarly libdir must be set to prevent the regular prefix path from | ||||
|         # influencing the placement of the installed files. | ||||
|         args = [ | ||||
|             "-Dprefix=/", | ||||
|             "-Dlibdir=/lib", | ||||
|             "-Dlibidn2=disabled", | ||||
|             "-Dopenssl=disabled", | ||||
|             "-Dpcre2=disabled", | ||||
|             "-Dinitrd=false", | ||||
|             "-Dresolve=false", | ||||
|             "-Defi=false", | ||||
|             "-Dtpm=false", | ||||
|             "-Dcreate-log-dirs=false", | ||||
|             "-Dseccomp=disabled", | ||||
|             "-Dselinux=disabled", | ||||
|             "-Dapparmor=disabled", | ||||
|             "-Dsmack=false", | ||||
|             "-Dpolkit=disabled", | ||||
|             "-Dima=false", | ||||
|             "-Dacl=disabled", | ||||
|             "-Daudit=disabled", | ||||
|             "-Dblkid=disabled", | ||||
|             "-Dfdisk=disabled", | ||||
|             "-Dkmod=false", | ||||
|             "-Dpam=disabled", | ||||
|             "-Dpasswdqc=disabled", | ||||
|             "-Dpwquality=disabled", | ||||
|             "-Dmicrohttpd=disabled", | ||||
|             "-Dlibcryptsetup=disabled", | ||||
|             "-Dlibcurl=disabled", | ||||
|             "-Dlibiptc=disabled", | ||||
|             "-Dqrencode=disabled", | ||||
|             "-Dgcrypt=disabled", | ||||
|             "-Dgnutls=disabled", | ||||
|             "-Dp11kit=disabled", | ||||
|             "-Dlibfido2=disabled", | ||||
|             "-Dtpm2=disabled", | ||||
|             "-Delfutils=disabled", | ||||
|             "-Dzlib=disabled", | ||||
|             "-Dbzip2=disabled", | ||||
|             "-Dxz=disabled", | ||||
|             "-Dlz4=disabled", | ||||
|             "-Dzstd=disabled", | ||||
|             "-Dxkbcommon=disabled", | ||||
|             "-Dbootloader=disabled", | ||||
|             "-Dnscd=false",  # support for... | ||||
|             "-Dutmp=false", | ||||
|             "-Dhibernate=false", | ||||
|             "-Dldconfig=false", | ||||
|             "-Denvironment-d=false", | ||||
|             "-Dbinfmt=false", | ||||
|             "-Dremote=disabled", | ||||
|             "-Dfirstboot=false", | ||||
|             "-Drandomseed=false", | ||||
|             "-Dbacklight=false", | ||||
|             "-Dvconsole=false", | ||||
|             "-Dvmspawn=disabled", | ||||
|             "-Dquotacheck=false", | ||||
|             "-Dsysusers=false", | ||||
|             "-Dstoragetm=false", | ||||
|             "-Dtmpfiles=false", | ||||
|             "-Dimportd=disabled", | ||||
|             "-Dhwdb=false", | ||||
|             "-Drfkill=false", | ||||
|             "-Dgshadow=false", | ||||
|             "-Dkmod=disabled", | ||||
|             "-Dxenctrl=disabled", | ||||
|             "-Drepart=disabled",  # install the... | ||||
|             "-Dsysupdate=disabled", | ||||
|             "-Dcoredump=false", | ||||
|             "-Dpstore=false", | ||||
|             "-Doomd=false", | ||||
|             "-Dlogind=false", | ||||
|             "-Dhostnamed=false", | ||||
|             "-Dlocaled=false", | ||||
|             "-Dmachined=false", | ||||
|             "-Dportabled=false", | ||||
|             "-Dsysext=false", | ||||
|             "-Duserdb=false", | ||||
|             "-Dhomed=disabled", | ||||
|             "-Dnetworkd=false", | ||||
|             "-Dtimedated=false", | ||||
|             "-Dtimesyncd=false", | ||||
|             "-Dxdg-autostart=false", | ||||
|             "-Ddefault-network=false",  # install... | ||||
|             "-Dnss-myhostname=false", | ||||
|             "-Dnss-mymachines=disabled", | ||||
|             "-Dnss-resolve=disabled", | ||||
|             "-Dnss-systemd=false", | ||||
|             "-Dhtml=disabled", | ||||
|             "-Dtranslations=false", | ||||
|             "-Dinstall-sysconfdir=false", | ||||
|             "-Dkernel-install=false", | ||||
|             "-Dukify=disabled", | ||||
|             "-Danalyze=false", | ||||
|         ] | ||||
| 
 | ||||
|         return args | ||||
| 
 | ||||
|     def install(self, spec, prefix): | ||||
|         # DESTDIR is required because without it the install phase will attempt | ||||
|         # to install files in the root file system by default. | ||||
|         os.environ["DESTDIR"] = prefix | ||||
|         with working_dir(self.build_directory): | ||||
|             ninja("install") | ||||
| @@ -18,6 +18,7 @@ class UtilLinux(AutotoolsPackage): | ||||
| 
 | ||||
|     license("GPL-2.0-only") | ||||
| 
 | ||||
|     version("2.39.3", sha256="40ea07584d56c310455471afa92c119ec259776a561af7159cc802344c2c370d") | ||||
|     version("2.39.1", sha256="d7c8a58eb2c7248a32754eb3a3b6772e368b984d9907ada834c2cf3e13024270") | ||||
|     version("2.38.1", sha256="0820eb8eea90408047e3715424bc6be771417047f683950fecb4bdd2e2cbbc6e") | ||||
|     version("2.38", sha256="c31d4e54f30b56b0f7ec8b342658c07de81378f2c067941c2b886da356f8ad42") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Brad Geltz
					Brad Geltz