new package: openldap (#12748)
* new package: openldap * fix mistake * remove template text * fix build error involving perl * flake8 * improvements * introduce multi valued variant for tls support * improve tls variant * overwrite build phase as opposed install * improve style
This commit is contained in:
parent
1550d5cae6
commit
afca223b3d
1 changed files with 92 additions and 0 deletions
92
var/spack/repos/builtin/packages/openldap/package.py
Normal file
92
var/spack/repos/builtin/packages/openldap/package.py
Normal file
|
@ -0,0 +1,92 @@
|
|||
# Copyright 2013-2019 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 import *
|
||||
|
||||
|
||||
class Openldap(AutotoolsPackage):
|
||||
"""
|
||||
OpenLDAP Software is an open source implementation of the Lightweight
|
||||
Directory Access Protocol. The suite includes:
|
||||
|
||||
slapd - stand-alone LDAP daemon (server)
|
||||
libraries implementing the LDAP protocol, and
|
||||
utilities, tools, and sample clients.
|
||||
"""
|
||||
|
||||
homepage = "https://www.openldap.org/"
|
||||
url = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.9.tgz"
|
||||
|
||||
version('2.4.48', sha256='d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d')
|
||||
|
||||
variant('client_only', default=True, description='Client only installation')
|
||||
variant('icu', default=False, description='Build with unicode support')
|
||||
# Below, tls=none is not an option from programming point of view
|
||||
# If +client_only, configure arguments for tls won't be enabled
|
||||
variant('tls', default='gnutls', description='Build with TLS support',
|
||||
values=('gnutls', 'openssl'), multi=False)
|
||||
|
||||
variant('perl', default=False, description='Perl backend to Slapd')
|
||||
|
||||
depends_on('icu4c', when='+icu')
|
||||
depends_on('gnutls', when='~client_only tls=gnutls')
|
||||
depends_on('openssl', when='~client_only tls=openssl')
|
||||
depends_on('unixodbc', when='~client_only')
|
||||
depends_on('postgresql', when='~client_only')
|
||||
depends_on('berkeley-db', when='~client_only') # for slapd
|
||||
# Recommended dependencies by Linux From Scratch
|
||||
# depends_on('cyrus-sasl', when='~client_only') # not avail. in spack yet
|
||||
# depends_on('openslp', when='~client_only') # not avail. in spack yet
|
||||
# depends_on('Pth', when='~client_only') # not avail. in spack yet
|
||||
depends_on('perl', when='~client_only+perl') # for slapd
|
||||
|
||||
# Ref: http://www.linuxfromscratch.org/blfs/view/svn/server/openldap.html
|
||||
@when('+client_only')
|
||||
def configure_args(self):
|
||||
return ['CPPFLAGS=-D_GNU_SOURCE',
|
||||
'--disable-static',
|
||||
'--enable-dynamic',
|
||||
'--disable-debug',
|
||||
'--disable-slapd',
|
||||
]
|
||||
|
||||
@when('~client_only')
|
||||
def configure_args(self):
|
||||
# Ref: https://www.openldap.org/lists/openldap-technical/201009/msg00304.html
|
||||
args = ['CPPFLAGS=-D_GNU_SOURCE', # fixes a build error, see Ref above
|
||||
'--disable-static',
|
||||
'--disable-debug',
|
||||
'--with-cyrus-sasl',
|
||||
'--enable-dynamic',
|
||||
'--enable-crypt',
|
||||
'--enable-spasswd',
|
||||
'--enable-slapd',
|
||||
'--enable-modules',
|
||||
'--enable-rlookups',
|
||||
'--enable-backends=mod',
|
||||
'--disable-ndb',
|
||||
'--disable-sql',
|
||||
'--disable-shell',
|
||||
'--disable-bdb',
|
||||
'--disable-hdb',
|
||||
'--enable-overlays=mod',
|
||||
]
|
||||
|
||||
if '~client_only' in self.spec:
|
||||
if 'tls=gnutls' in self.spec:
|
||||
args.append('--with-tls=gnutls')
|
||||
if 'tls=openssl' in self.spec:
|
||||
args.append('--with-tls=openssl')
|
||||
|
||||
if '+perl' in self.spec:
|
||||
args.append('--enable-perl')
|
||||
else:
|
||||
args.append('--disable-perl')
|
||||
|
||||
return args
|
||||
|
||||
def build(self, spec, prefix):
|
||||
make('depend')
|
||||
make()
|
Loading…
Reference in a new issue