Skip to content
Snippets Groups Projects
Commit c124b1f4 authored by Chris Green's avatar Chris Green Committed by Peter Scheibel
Browse files

postgresql package: build enhancements. (#10877)

We add new variants to handle readline vs libedit, a client-only
build and install, and bindings to TCL, Python and Perl. We also add
new versions and the ability to detect remote versions not otherwise
dealt with.
parent 6478a325
No related branches found
No related tags found
No related merge requests found
...@@ -14,22 +14,98 @@ class Postgresql(AutotoolsPackage): ...@@ -14,22 +14,98 @@ class Postgresql(AutotoolsPackage):
homepage = "http://www.postgresql.org/" homepage = "http://www.postgresql.org/"
url = "http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2" url = "http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2"
list_url = "http://ftp.postgresql.org/pub/source"
list_depth = 1
version('11.2', sha256='2676b9ce09c21978032070b6794696e0aa5a476e3d21d60afc036dc0a9c09405')
version('11.1', sha256='90815e812874831e9a4bf6e1136bf73bc2c5a0464ef142e2dfea40cda206db08')
version('11.0', sha256='bf9bba03d0c3902c188af12e454b35343c4a9bf9e377ec2fe50132efb44ef36b')
version('10.7', sha256='bfed1065380c1bba927bfe51f23168471373f26e3324cbad859269cc32733ede')
version('10.6', sha256='68a8276f08bda8fbefe562faaf8831cb20664a7a1d3ffdbbcc5b83e08637624b')
version('10.5', sha256='6c8e616c91a45142b85c0aeb1f29ebba4a361309e86469e0fb4617b6a73c4011')
version('10.4', sha256='1b60812310bd5756c62d93a9f93de8c28ea63b0df254f428cd1cf1a4d9020048')
version('10.3', '506498796a314c549388cafb3d5c717a') version('10.3', '506498796a314c549388cafb3d5c717a')
version('10.2', 'e97c3cc72bdf661441f29069299b260a') version('10.2', 'e97c3cc72bdf661441f29069299b260a')
version('9.3.4', 'd0a41f54c377b2d2fab4a003b0dac762') version('10.1', sha256='3ccb4e25fe7a7ea6308dea103cac202963e6b746697366d72ec2900449a5e713')
version('10.0', sha256='712f5592e27b81c5b454df96b258c14d94b6b03836831e015c65d6deeae57fd1')
version('9.6.12', sha256='2e8c8446ba94767bda8a26cf5a2152bf0ae68a86aaebf894132a763084579d84')
version('9.6.11', sha256='38250adc69a1e8613fb926c894cda1d01031391a03648894b9a6e13ff354a530')
version('9.5.3', '3f0c388566c688c82b01a0edf1e6b7a0') version('9.5.3', '3f0c388566c688c82b01a0edf1e6b7a0')
version('9.3.4', 'd0a41f54c377b2d2fab4a003b0dac762')
depends_on('openssl') variant('client_only', default=False,
depends_on('readline') description='Build and install client only.')
variant('threadsafe', default=False, description='Build with thread safe.') variant('threadsafe', default=False, description='Build with thread safe.')
variant('lineedit', default='readline',
values=('readline', 'libedit', 'none'), multi=False,
description='Line editing library')
variant('python', default=False, description='Enable Python bindings.')
variant('perl', default=False, description='Enable Perl bindings.')
variant('tcl', default=False, description='Enable Tcl bindings.')
variant('gssapi', default=False,
description='Build with GSSAPI functionality.')
def configure_arg(self): depends_on('readline', when='lineedit=readline')
depends_on('libedit', when='lineedit=libedit')
depends_on('openssl')
depends_on('tcl', when='+tcl')
depends_on('perl', when='+perl')
depends_on('python', when='+python')
def configure_args(self):
config_args = ["--with-openssl"] config_args = ["--with-openssl"]
if '+threadsafe' in self.spec: if '+threadsafe' in self.spec:
config_args.append("--enable-thread-safety") config_args.append('--enable-thread-safety')
else: else:
config_args.append("--disable-thread-safety") config_args.append('--disable-thread-safety')
if self.spec.variants['lineedit'].value == 'libedit':
config_args.append('--with-libedit-preferred')
elif self.spec.variants['lineedit'].value == 'none':
config_args.append('--without-readline')
if '+gssapi' in self.spec:
config_args.append('--with-gssapi')
if '+python' in self.spec:
config_args.append('--with-python')
if '+perl' in self.spec:
config_args.append('--with-perl')
if '+tcl' in self.spec:
config_args.append('--with-tcl')
return config_args return config_args
def install(self, spec, prefix):
if '+client-only' in self.spec:
for subdir in ('bin', 'include', 'interfaces', 'pl'):
with working_dir(os.path.join('src', subdir)):
make('install')
else:
AutotoolsPackage.install(self, spec, prefix)
def setup_environment(self, spack_env, run_env):
spec = self.spec
if '+perl' in spec:
run_env.prepend_path('PERL5LIB', self.prefix.lib)
if '+tcl' in spec:
run_env.prepend_path('TCLLIBPATH', self.prefix.lib)
if '+python' in spec:
run_env.prepend_path('PYTHONPATH', self.prefix.lib)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spec = self.spec
if '+perl' in spec:
spack_env.prepend_path('PERL5LIB', self.prefix.lib)
run_env.prepend_path('PERL5LIB', self.prefix.lib)
if '+tcl' in spec:
spack_env.prepend_path('TCLLIBPATH', self.prefix.lib)
run_env.prepend_path('TCLLIBPATH', self.prefix.lib)
if '+python' in spec:
spack_env.prepend_path('PYTHONPATH', self.prefix.lib)
run_env.prepend_path('PYTHONPATH', self.prefix.lib)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment