Various updates to wget and dependencies (#4116)

* Various updates to wget and dependencies

* Add newer version of gnutls
This commit is contained in:
Adam J. Stewart 2017-06-19 15:13:18 -05:00 committed by GitHub
parent cf2178f416
commit 9b89272ae0
4 changed files with 161 additions and 38 deletions

View File

@ -26,25 +26,30 @@
class Gnutls(AutotoolsPackage): class Gnutls(AutotoolsPackage):
"""GnuTLS is a secure communications library implementing the SSL, """GnuTLS is a secure communications library implementing the SSL, TLS
TLS and DTLS protocols and technologies around them. It and DTLS protocols and technologies around them. It provides a simple C
provides a simple C language application programming interface language application programming interface (API) to access the secure
(API) to access the secure communications protocols as well as communications protocols as well as APIs to parse and write X.509, PKCS
APIs to parse and write X.509, PKCS #12, OpenPGP and other #12, OpenPGP and other required structures. It is aimed to be portable
required structures. It is aimed to be portable and efficient and efficient with focus on security and interoperability."""
with focus on security and interoperability."""
homepage = "http://www.gnutls.org" homepage = "http://www.gnutls.org"
url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.10.tar.xz" url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.13.tar.xz"
version('3.5.13', '4fd41ad86572933c2379b4cc321a0959')
version('3.5.10', '336c03a71ba90184ffd0388075dde504') version('3.5.10', '336c03a71ba90184ffd0388075dde504')
version('3.5.9', '0ab25eb6a1509345dd085bc21a387951') version('3.5.9', '0ab25eb6a1509345dd085bc21a387951')
version('3.3.9', 'ff61b77e39d09f1140ab5a9cf52c58b6') version('3.3.9', 'ff61b77e39d09f1140ab5a9cf52c58b6')
variant('zlib', default=True, description='Enable zlib compression support')
# Note that version 3.3.9 of gnutls doesn't support nettle 3.0. # Note that version 3.3.9 of gnutls doesn't support nettle 3.0.
depends_on("nettle@:2.9", when='@3.3.9') depends_on('nettle@:2.9', when='@3.3.9')
depends_on("nettle", when='@3.5:') depends_on('nettle', when='@3.5:')
depends_on("zlib", when='@3.5:') depends_on('zlib', when='+zlib')
depends_on('gettext')
depends_on('pkg-config@0.9.0:', type='build')
build_directory = 'spack-build' build_directory = 'spack-build'
@ -53,10 +58,33 @@ def url_for_version(self, version):
return url.format(version.up_to(2), version) return url.format(version.up_to(2), version)
def configure_args(self): def configure_args(self):
args = [] spec = self.spec
if self.spec.satisfies('@3.5:'): args = [
'--enable-static',
]
if spec.satisfies('@3.5:'):
# use shipped libraries, might be turned into variants # use shipped libraries, might be turned into variants
args.append('--with-included-libtasn1') args.append('--with-included-libtasn1')
args.append('--with-included-unistring') args.append('--with-included-unistring')
args.append('--without-p11-kit') # p11-kit@0.23.1: ... args.append('--without-p11-kit') # p11-kit@0.23.1: ...
if '+zlib' in spec:
args.append('--with-zlib')
else:
args.append('--without-zlib')
if self.run_tests:
args.extend([
'--enable-tests',
'--enable-valgrind-tests',
'--enable-full-test-suite',
])
else:
args.extend([
'--disable-tests',
'--disable-valgrind-tests',
'--disable-full-test-suite',
])
return args return args

View File

@ -0,0 +1,57 @@
##############################################################################
# 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 LICENSE file 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 Libpsl(AutotoolsPackage):
"""libpsl - C library to handle the Public Suffix List."""
homepage = "https://github.com/rockdaboot/libpsl"
url = "https://github.com/rockdaboot/libpsl/releases/download/libpsl-0.17.0/libpsl-0.17.0.tar.gz"
version('0.17.0', 'fed13f33d0d6dc13ef24de255630bfcb')
depends_on('icu4c')
depends_on('gettext', type='build')
depends_on('pkg-config@0.9.0:', type='build')
depends_on('python@2.7:', type='build')
# TODO: Add a 'test' deptype
# depends_on('valgrind', type='test')
def configure_args(self):
spec = self.spec
args = [
'PYTHON={0}'.format(spec['python'].command.path),
]
if self.run_tests:
args.append('--enable-valgrind-tests')
else:
args.append('--disable-valgrind-tests')
return args

View File

@ -30,8 +30,9 @@ class Nettle(AutotoolsPackage):
that is designed to fit easily in many contexts.""" that is designed to fit easily in many contexts."""
homepage = "https://www.lysator.liu.se/~nisse/nettle/" homepage = "https://www.lysator.liu.se/~nisse/nettle/"
url = "http://ftp.gnu.org/gnu/nettle/nettle-3.2.tar.gz" url = "http://ftp.gnu.org/gnu/nettle/nettle-3.3.tar.gz"
version('3.3', '10f969f78a463704ae73529978148dbe')
version('3.2', 'afb15b4764ebf1b4e6d06c62bd4d29e4') version('3.2', 'afb15b4764ebf1b4e6d06c62bd4d29e4')
version('2.7.1', '003d5147911317931dd453520eb234a5') version('2.7.1', '003d5147911317931dd453520eb234a5')
version('2.7', '2caa1bd667c35db71becb93c5d89737f') version('2.7', '2caa1bd667c35db71becb93c5d89737f')

View File

@ -25,36 +25,73 @@
from spack import * from spack import *
class Wget(Package): class Wget(AutotoolsPackage):
"""GNU Wget is a free software package for retrieving files using """GNU Wget is a free software package for retrieving files using
HTTP, HTTPS and FTP, the most widely-used Internet protocols. It HTTP, HTTPS and FTP, the most widely-used Internet protocols. It is a
is a non-interactive commandline tool, so it may easily be called non-interactive commandline tool, so it may easily be called from scripts,
from scripts, cron jobs, terminals without X-Windows support, cron jobs, terminals without X-Windows support, etc."""
etc."""
homepage = "http://www.gnu.org/software/wget/" homepage = "http://www.gnu.org/software/wget/"
url = "http://ftp.gnu.org/gnu/wget/wget-1.16.tar.gz" url = "http://ftp.gnu.org/gnu/wget/wget-1.19.1.tar.gz"
version('1.19.1', '87cea36b7161fd43e3fd51a4e8b89689')
version('1.17', 'c4c4727766f24ac716936275014a0536') version('1.17', 'c4c4727766f24ac716936275014a0536')
version('1.16', '293a37977c41b5522f781d3a3a078426') version('1.16', '293a37977c41b5522f781d3a3a078426')
variant( variant('ssl', default='openssl', values=('gnutls', 'openssl'),
'ssl', description='Specify SSL backend')
default='openssl', variant('zlib', default=True,
values=('gnutls', 'openssl'), description='Enable zlib support')
description='Specify SSL backend' variant('libpsl', default=False,
) description='Enable support for libpsl cookie checking')
variant('pcre', default=False,
description='Enable PCRE style regular expressions')
variant('python', default=False,
description='Enable Python support')
depends_on('gnutls', when='ssl=gnutls') depends_on('gnutls', when='ssl=gnutls')
depends_on('openssl', when='ssl=openssl') depends_on('openssl', when='ssl=openssl')
depends_on("perl@5.12.0:", type='build')
def install(self, spec, prefix): depends_on('gettext', type='build')
configure( depends_on('python@3:', type='build', when='+python')
"--prefix=%s" % prefix,
"--with-ssl=openssl", depends_on('zlib', when='+zlib')
"OPENSSL_CFLAGS=-I%s" % spec['openssl'].prefix.include, depends_on('libpsl', when='+libpsl')
"OPENSSL_LIBS=-L%s -lssl -lcrypto -lz" % spec[ depends_on('pcre', when='+pcre')
'openssl'].prefix.lib)
make() depends_on('perl@5.12.0:', type='build')
make("install") depends_on('pkg-config@0.9.0:', type='build')
# TODO: Add a 'test' deptype
# depends_on('valgrind', type='test')
build_directory = 'spack-build'
def configure_args(self):
spec = self.spec
args = [
'--with-ssl={0}'.format(spec.variants['ssl'].value),
]
if '+zlib' in spec:
args.append('--with-zlib')
else:
args.append('--without-zlib')
if '+libpsl' in spec:
args.append('--with-libpsl')
else:
args.append('--without-libpsl')
if '+pcre' in spec:
args.append('--enable-pcre')
else:
args.append('--disable-pcre')
if self.run_tests:
args.append('--enable-valgrind-tests')
else:
args.append('--disable-valgrind-tests')
return args