summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGeorge Hartzell <hartzell@alerce.com>2017-08-03 12:57:58 -0700
committerAdam J. Stewart <ajstewart426@gmail.com>2017-08-03 14:57:58 -0500
commitf24398cde6902ae7871d7bd1992a0e1a08c47ab0 (patch)
tree6a85c01736715e3d9bc525a2398161ee3f5abe29 /var
parent4e269510c565ad7be52bd9c290af19c7115e67af (diff)
downloadspack-f24398cde6902ae7871d7bd1992a0e1a08c47ab0.tar.gz
spack-f24398cde6902ae7871d7bd1992a0e1a08c47ab0.tar.bz2
spack-f24398cde6902ae7871d7bd1992a0e1a08c47ab0.tar.xz
spack-f24398cde6902ae7871d7bd1992a0e1a08c47ab0.zip
Add package for libbsd, add variant to expat for libbsd (#4945)
* Add package for libbsd, add variant to expat for libbsd The recent expat release requires a high quality source of randomness. CentOS 7 does not seem to have one, but one is available in libbsd. This commit adds a package for libbsd and adds a variant to expat to use it (defaults to False). * Make libbsd default for newer, conflict for older Make the libbsd variant default to true. Conflict if you're asking for libbsd and an older version of expat. This means that in order to install an older version of expat you'll need to specify `~libbsd`. * Rework so that 2.2.0 and 2.2.2 work by default Get rid of the conflicts and use better constraints/tests in the `depends_on` and the `configure_args` bits.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/expat/package.py19
-rw-r--r--var/spack/repos/builtin/packages/libbsd/package.py38
2 files changed, 57 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py
index 66b04419b0..091c1f462e 100644
--- a/var/spack/repos/builtin/packages/expat/package.py
+++ b/var/spack/repos/builtin/packages/expat/package.py
@@ -31,5 +31,24 @@ class Expat(AutotoolsPackage):
homepage = "http://expat.sourceforge.net/"
url = "https://sourceforge.net/projects/expat/files/expat/2.2.2/expat-2.2.2.tar.bz2"
+ # Version 2.2.2 introduced a requirement for a high quality
+ # entropy source. "Older" linux systems (aka CentOS 7) do not
+ # support get_random so we'll provide a high quality source via
+ # libbsd.
+ # There's no need for it in earlier versions, so 'conflict' if
+ # someone's asking for an older version and also libbsd.
+ # In order to install an older version, you'll need to add
+ # `~libbsd`.
+ variant('libbsd', default=True,
+ description="Use libbsd (for high quality randomness)")
+ depends_on('libbsd', when="@2.2.1:+libbsd")
+
version('2.2.2', '1ede9a41223c78528b8c5d23e69a2667')
version('2.2.0', '2f47841c829facb346eb6e3fab5212e2')
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+ if '+libbsd' in spec and '@2.2.1:' in spec:
+ args = ['--with-libbsd']
+ return args
diff --git a/var/spack/repos/builtin/packages/libbsd/package.py b/var/spack/repos/builtin/packages/libbsd/package.py
new file mode 100644
index 0000000000..ab64c4babd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libbsd/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libbsd(AutotoolsPackage):
+ """This library provides useful functions commonly found on BSD
+ systems, and lacking on others like GNU systems, thus making it easier
+ to port projects with strong BSD origins, without needing to embed the
+ same code over and over again on each project.
+ """
+
+ homepage = "https://libbsd.freedesktop.org/wiki/"
+ url = "https://libbsd.freedesktop.org/releases/libbsd-0.8.6.tar.xz"
+
+ version('0.8.6', '4ab7bec639af17d0aacb50222b479110')