diff options
author | Chris Green <greenc@fnal.gov> | 2019-03-25 19:51:51 -0500 |
---|---|---|
committer | Peter Scheibel <scheibel1@llnl.gov> | 2019-03-25 19:51:51 -0500 |
commit | c124b1f47142be406834ff80a4ddb43007818b84 (patch) | |
tree | 86174b8cf512ac8b4fa5145b22278b8b5d23c4b3 /var | |
parent | 6478a32598135508ae87caa467ba2392530e885c (diff) | |
download | spack-c124b1f47142be406834ff80a4ddb43007818b84.tar.gz spack-c124b1f47142be406834ff80a4ddb43007818b84.tar.bz2 spack-c124b1f47142be406834ff80a4ddb43007818b84.tar.xz spack-c124b1f47142be406834ff80a4ddb43007818b84.zip |
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.
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/postgresql/package.py | 90 |
1 files changed, 83 insertions, 7 deletions
diff --git a/var/spack/repos/builtin/packages/postgresql/package.py b/var/spack/repos/builtin/packages/postgresql/package.py index bd92288d0d..ec0ea848c8 100644 --- a/var/spack/repos/builtin/packages/postgresql/package.py +++ b/var/spack/repos/builtin/packages/postgresql/package.py @@ -14,22 +14,98 @@ class Postgresql(AutotoolsPackage): homepage = "http://www.postgresql.org/" 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.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.3.4', 'd0a41f54c377b2d2fab4a003b0dac762') - depends_on('openssl') - depends_on('readline') - + variant('client_only', default=False, + description='Build and install client only.') 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"] + if '+threadsafe' in self.spec: - config_args.append("--enable-thread-safety") + config_args.append('--enable-thread-safety') 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 + + 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) |