summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPranav Sivaraman <pranavsivaraman@gmail.com>2024-08-06 09:50:29 -0700
committerGitHub <noreply@github.com>2024-08-06 18:50:29 +0200
commitf3c21b0177ea1bd69b5fea5b2e785e9d23292e4e (patch)
tree84c8712219a74eccb3b888c80b038872781adafa
parent51ac4686b477e1afdb78dbaf22ba09b802f444b5 (diff)
downloadspack-f3c21b0177ea1bd69b5fea5b2e785e9d23292e4e.tar.gz
spack-f3c21b0177ea1bd69b5fea5b2e785e9d23292e4e.tar.bz2
spack-f3c21b0177ea1bd69b5fea5b2e785e9d23292e4e.tar.xz
spack-f3c21b0177ea1bd69b5fea5b2e785e9d23292e4e.zip
libdwarf: remove old versions with 0.10.1 (#45306)
-rw-r--r--var/spack/repos/builtin/packages/libdwarf/package.py92
1 files changed, 80 insertions, 12 deletions
diff --git a/var/spack/repos/builtin/packages/libdwarf/package.py b/var/spack/repos/builtin/packages/libdwarf/package.py
index bdb570ef13..a55d24b6e0 100644
--- a/var/spack/repos/builtin/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin/packages/libdwarf/package.py
@@ -12,7 +12,7 @@ from spack.package import *
dwarf_dirs = ["libdwarf", "dwarfdump2"]
-class Libdwarf(Package):
+class Libdwarf(CMakePackage, Package):
"""The DWARF Debugging Information Format is of interest to
programmers working on compilers and debuggers (and any one
interested in reading or writing DWARF information). It was
@@ -25,29 +25,97 @@ class Libdwarf(Package):
MIPS/IRIX C compiler."""
homepage = "https://www.prevanders.net/dwarf.html"
- url = "https://www.prevanders.net/libdwarf-20160507.tar.gz"
+ url = "https://www.prevanders.net/libdwarf-0.10.1.tar.xz"
list_url = homepage
license("LGPL-2.1-only")
- version("20180129", sha256="8bd91b57064b0c14ade5a009d3a1ce819f1b6ec0e189fc876eb8f42a8720d8a6")
- version("20160507", sha256="12ae39376e3915bf8fa92555989f3ad5f2f4f332b590a628541ce68987b337af")
- version("20130729", sha256="b6455d8616baf2883e2af91f006d6cbd583128fdfff46e3d1fae460bc223bb7b")
- version("20130207", sha256="5cb81459f0a1f6a2a10ef4635faddc2fa5e1a9e36901018c017759e491e708b8")
- version("20130126", sha256="c23c847935f8612f4fcdcfa0b3311f1553dcbd95bb683d3d5e030440201192fe")
+ version("0.10.1", sha256="b511a2dc78b98786064889deaa2c1bc48a0c70115c187900dd838474ded1cc19")
+ with default_args(deprecated=True):
+ version(
+ "20180129", sha256="8bd91b57064b0c14ade5a009d3a1ce819f1b6ec0e189fc876eb8f42a8720d8a6"
+ )
+ version(
+ "20160507", sha256="12ae39376e3915bf8fa92555989f3ad5f2f4f332b590a628541ce68987b337af"
+ )
+ version(
+ "20130729", sha256="b6455d8616baf2883e2af91f006d6cbd583128fdfff46e3d1fae460bc223bb7b"
+ )
+ version(
+ "20130207", sha256="5cb81459f0a1f6a2a10ef4635faddc2fa5e1a9e36901018c017759e491e708b8"
+ )
+ version(
+ "20130126", sha256="c23c847935f8612f4fcdcfa0b3311f1553dcbd95bb683d3d5e030440201192fe"
+ )
+
+ build_system(
+ conditional("generic", when="@20130126:20180130"),
+ conditional("cmake", when="@0:"),
+ default="generic",
+ )
+
+ with when("@:20130126"):
+ variant("shared", default=True, description="Build shared libs")
+ variant("examples", default=False, description="Build examples")
+ variant("pic", default=True, description="Build with position independent code")
+ variant("dwarfdump", default=True, description="Build dwarfdump")
+ variant("dwarfgen", default=False, description="Build dwarfgen")
+ variant(
+ "decompression",
+ default=True,
+ description="Enables support for compressed debug sections",
+ )
+
+ conflicts("+shared ~pic")
+
+ depends_on("c", type="build")
+ depends_on("cxx", type="build")
+
+ depends_on("cmake@3.5:", type="build", when="@:20130126")
+ depends_on("gmake", type="build", when="@20130126:")
- depends_on("c", type="build") # generated
- depends_on("cxx", type="build") # generated
depends_on("elfutils@0.163", when="@20160507", type="link")
- depends_on("elf", type="link")
- depends_on("zlib-api", type="link")
+ depends_on("elf", when="@20130126:", type="link")
+
+ depends_on("zlib-api", when="@20130126:", type="link")
+
+ with when("@:20130126 +decompression"):
+ depends_on("zlib-api", type="link")
+ depends_on("zstd", type="link")
parallel = False
+ def url_for_version(self, version):
+ if version < Version("20130126"):
+ return super().url_for_version(version)
+ return f"https://www.prevanders.net/libdwarf-{version}.tar.gz"
+
+
+class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
+ def cmake_args(self):
+ spec = self.spec
+ define = self.define
+ from_variant = self.define_from_variant
+
+ args = [
+ from_variant("BUILD_SHARED", "shared"),
+ from_variant("BUILD_DWARFEXAMPLE", "examples"),
+ from_variant("PIC_ALWAYS", "pic"),
+ from_variant("BUILD_DWARFDUMP", "dwarfdump"),
+ from_variant("BUILD_DWARFGEN", "dwarfgen"),
+ from_variant("ENABLE_DECOMPRESSION", "decompression"),
+ define("BUILD_NON_SHARED", spec.satisfies("~shared")),
+ define("DO_TESTING", self.pkg.run_tests),
+ ]
+
+ return args
+
+
+class GenericBuilder(spack.build_systems.generic.GenericBuilder):
def patch(self):
filter_file(r"^typedef struct Elf Elf;$", "", "libdwarf/libdwarf.h.in")
- def install(self, spec, prefix):
+ def install(self, pkg, spec, prefix):
# dwarf build does not set arguments for ar properly
make.add_default_arg("ARFLAGS=rcs")