summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/botan/package.py
blob: e768fa7395c17d6912e33d8d7ed08c557ddacf70 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 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 Botan(MakefilePackage):
    """Crypto and TLS for Modern C++"""

    homepage = "https://botan.randombit.net/"
    url = "https://botan.randombit.net/releases/Botan-2.13.0.tar.xz"

    maintainers("aumuell")

    license("BSD-2-Clause")

    version("3.2.0", sha256="049c847835fcf6ef3a9e206b33de05dd38999c325e247482772a5598d9e5ece3")
    version("3.1.1", sha256="30c84fe919936a98fef5331f246c62aa2c0e4d2085b2d4511207f6a20afa3a6b")
    version("3.1.0", sha256="4e18e755a8bbc6bf96fac916fbf072ecd06740c72a72017c27162e4c0b4725fe")
    version("3.0.0", sha256="5da552e00fa1c047a90c22eb5f0247ec27e7432b68b78e10a7ce0955269ccad7")
    version("2.19.3", sha256="dae047f399c5a47f087db5d3d9d9e8f11ae4985d14c928d71da1aff801802d55")
    version("2.19.2", sha256="3af5f17615c6b5cd8b832d269fb6cb4d54ec64f9eb09ddbf1add5093941b4d75")
    version("2.19.1", sha256="e26e00cfefda64082afdd540d3c537924f645d6a674afed2cd171005deff5560")
    version("2.19.0", sha256="240d9e56e6acb91ef4cf06a8a1c6c0f101c61d40cf48cccf139faef821d7040b")
    version("2.18.2", sha256="541a3b13f1b9d30f977c6c1ae4c7bfdfda763cda6e44de807369dce79f42307e")
    version("2.18.1", sha256="f8c7b46222a857168a754a5cc329bb780504122b270018dda5304c98db28ae29")
    version("2.18.0", sha256="cc64852e1e0c5bb30ecd052e4a12d5136125a8ce5c3be2efb6fb061c8677e327")
    version("2.17.3", sha256="79123b654445a4abba486e09a431788545c708237382a3e765664c9f55b03b88")
    version("2.17.2", sha256="ebe27dfe2b55d7e02bf520e926606c48b76b22facb483256b13ab38e018e1e6c")
    version("2.17.1", sha256="741358b3f1638ed7d9b2f59b4e344aa46f4966b15958b5434c0ac1580df0c0c1")
    version("2.17.0", sha256="b97044b312aa718349af7851331b064bc7bd5352400d5f80793bace427d01343")
    version("2.16.0", sha256="92ed6ebc918d86bd1b04221ca518af4cf29cc326c4760740bd2d22e61cea2628")
    version("2.15.0", sha256="d88af1307f1fefac79aa4f2f524699478d69ce15a857cf2d0a90ac6bf2a50009")
    version("2.14.0", sha256="0c10f12b424a40ee19bde00292098e201d7498535c062d8d5b586d07861a54b5")
    version("2.13.0", sha256="f57ae42a41e1091bca58f44f41addebd9a390b651603952c881ec89d50187e90")
    version("2.12.1", sha256="7e035f142a51fca1359705792627a282456d49749bf62a37a8e48375d41baaa9")
    version("2.12.0", sha256="1eaefd459d52f27de1805cff8c68792e0610919648ee98e101980e94edb90a63")
    version("2.11.0", sha256="f7874da2aeb8c018fd77df40b2137879bf90b66f5589490c991e83fb3e8094be")

    variant("doc", default=False, description="Build documentation")

    executables = ["^botan$"]

    depends_on("python", type="build")
    depends_on("py-sphinx@1.2:", type="build", when="+doc")

    conflicts("%gcc@:10", when="@3:")

    def edit(self, spec, prefix):
        configure = Executable("./configure.py")
        configure(*self.configure_args())

    def configure_args(self):
        spec = self.spec
        args = ["--prefix={0}".format(self.prefix)]
        if "+doc" in spec:
            args.append("--with-documentation")
        else:
            args.append("--without-documentation")
        return args

    @classmethod
    def determine_version(cls, exe):
        output = Executable(exe)("--version", output=str, error=str)
        return output