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:
		
							
								
								
									
										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() | ||||
		Reference in New Issue
	
	Block a user
	 Sinan
					Sinan