spack/var/spack/repos/builtin/packages/systemd/package.py
2024-10-13 21:54:38 +02:00

145 lines
4.8 KiB
Python

# 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("256.7", sha256="896d76ff65c88f5fd9e42f90d152b0579049158a163431dd77cdc57748b1d7b0")
version("255", sha256="28854ffb2cb5f9e07fcbdbaf1e03a80b3462a12edeef84893ca2f37b22e4491e")
depends_on("c", type="build") # generated
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")