summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2018-08-29 12:35:56 -0500
committerGitHub <noreply@github.com>2018-08-29 12:35:56 -0500
commit1383834d155479131fe1a845592652aa31713034 (patch)
treeb543fe20714d9f26b637fdf9a6ebf064a993a3a9
parent1e0c337fe9398cfd41e247dfc1caf2fb095cabc7 (diff)
downloadspack-1383834d155479131fe1a845592652aa31713034.tar.gz
spack-1383834d155479131fe1a845592652aa31713034.tar.bz2
spack-1383834d155479131fe1a845592652aa31713034.tar.xz
spack-1383834d155479131fe1a845592652aa31713034.zip
Add MDB driver support to GDAL (#8614)
-rw-r--r--var/spack/repos/builtin/packages/commons-lang/package.py50
-rw-r--r--var/spack/repos/builtin/packages/commons-lang3/package.py49
-rw-r--r--var/spack/repos/builtin/packages/commons-logging/package.py51
-rw-r--r--var/spack/repos/builtin/packages/gdal/package.py25
-rw-r--r--var/spack/repos/builtin/packages/jackcess/package.py46
5 files changed, 216 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/commons-lang/package.py b/var/spack/repos/builtin/packages/commons-lang/package.py
new file mode 100644
index 0000000000..cdb1316c44
--- /dev/null
+++ b/var/spack/repos/builtin/packages/commons-lang/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2018, 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/spack/spack
+# Please also see the NOTICE and LICENSE files 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 CommonsLang(Package):
+ """The standard Java libraries fail to provide enough methods for
+ manipulation of its core classes. Apache Commons Lang provides these
+ extra methods.
+
+ Lang provides a host of helper utilities for the java.lang API, notably
+ String manipulation methods, basic numerical methods, object reflection,
+ concurrency, creation and serialization and System properties. Additionally
+ it contains basic enhancements to java.util.Date and a series of utilities
+ dedicated to help with building methods, such as hashCode, toString and
+ equals."""
+
+ homepage = "http://commons.apache.org/proper/commons-lang/"
+ url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang-2.6-bin.tar.gz"
+
+ version('2.6', '444075803459bffebfb5e28877861d23')
+ version('2.4', '5ff5d890e46021a2dbd77caba80f90f2')
+
+ extends('jdk')
+ depends_on('java@2:', type='run')
+
+ def install(self, spec, prefix):
+ install('commons-lang-{0}.jar'.format(self.version), prefix)
diff --git a/var/spack/repos/builtin/packages/commons-lang3/package.py b/var/spack/repos/builtin/packages/commons-lang3/package.py
new file mode 100644
index 0000000000..21959b3a61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/commons-lang3/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2018, 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/spack/spack
+# Please also see the NOTICE and LICENSE files 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 CommonsLang3(Package):
+ """The standard Java libraries fail to provide enough methods for
+ manipulation of its core classes. Apache Commons Lang provides these
+ extra methods.
+
+ Lang provides a host of helper utilities for the java.lang API, notably
+ String manipulation methods, basic numerical methods, object reflection,
+ concurrency, creation and serialization and System properties. Additionally
+ it contains basic enhancements to java.util.Date and a series of utilities
+ dedicated to help with building methods, such as hashCode, toString and
+ equals."""
+
+ homepage = "http://commons.apache.org/proper/commons-lang/"
+ url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang3-3.7-bin.tar.gz"
+
+ version('3.7', 'c7577443639dc6efadc80f1cbc7fced5')
+
+ extends('jdk')
+ depends_on('java@7:', type='run')
+
+ def install(self, spec, prefix):
+ install('commons-lang3-{0}.jar'.format(self.version), prefix)
diff --git a/var/spack/repos/builtin/packages/commons-logging/package.py b/var/spack/repos/builtin/packages/commons-logging/package.py
new file mode 100644
index 0000000000..f634a98773
--- /dev/null
+++ b/var/spack/repos/builtin/packages/commons-logging/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2018, 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/spack/spack
+# Please also see the NOTICE and LICENSE files 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 CommonsLogging(Package):
+ """When writing a library it is very useful to log information. However
+ there are many logging implementations out there, and a library cannot
+ impose the use of a particular one on the overall application that the
+ library is a part of.
+
+ The Logging package is an ultra-thin bridge between different logging
+ implementations. A library that uses the commons-logging API can be used
+ with any logging implementation at runtime. Commons-logging comes with
+ support for a number of popular logging implementations, and writing
+ adapters for others is a reasonably simple task."""
+
+ homepage = "http://commons.apache.org/proper/commons-logging/"
+ url = "http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin.tar.gz"
+
+ version('1.2', 'ac043ce7ab3374eb4ed58354a6b2c3de')
+ version('1.1.3', 'b132f9a1e875677ae6b449406cff2a78')
+ version('1.1.1', 'e5de09672af9b386c30a311654d8541a')
+
+ extends('jdk')
+ depends_on('java', type='run')
+
+ def install(self, spec, prefix):
+ install('commons-logging-{0}.jar'.format(self.version), prefix)
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index cce78ae22d..f29d4b8709 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -83,6 +83,7 @@ class Gdal(AutotoolsPackage):
variant('perl', default=False, description='Enable perl bindings')
variant('python', default=False, description='Enable python bindings')
variant('java', default=False, description='Include Java support')
+ variant('mdb', default=False, description='Include MDB driver')
variant('armadillo', default=False, description='Include Armadillo support for faster TPS transform computation')
variant('cryptopp', default=False, description='Include cryptopp support')
variant('crypto', default=False, description='Include crypto (from openssl) support')
@@ -117,7 +118,7 @@ class Gdal(AutotoolsPackage):
depends_on('hdf5', when='+hdf5')
depends_on('kealib', when='+kea @2:')
depends_on('netcdf', when='+netcdf')
- depends_on('jasper@1.900.1', patches=patch('uuid.patch'), when='+jasper')
+ depends_on('jasper@1.900.1', patches='uuid.patch', when='+jasper')
depends_on('openjpeg', when='+openjpeg')
depends_on('xerces-c', when='+xerces')
depends_on('expat', when='+expat')
@@ -136,7 +137,8 @@ class Gdal(AutotoolsPackage):
# swig/python/setup.py
depends_on('py-setuptools', type='build', when='+python')
depends_on('py-numpy@1.0.0:', type=('build', 'run'), when='+python')
- depends_on('java', type=('build', 'run'), when='+java')
+ depends_on('java', type=('build', 'link', 'run'), when='+java')
+ depends_on('jackcess@1.2.0:1.2.999', type='run', when='+mdb')
depends_on('armadillo', when='+armadillo')
depends_on('cryptopp', when='+cryptopp @2.1:')
depends_on('openssl', when='+crypto @2.3:')
@@ -149,6 +151,8 @@ class Gdal(AutotoolsPackage):
conflicts('%xl@:13.0', msg=msg)
conflicts('%xl_r@:13.0', msg=msg)
+ conflicts('+mdb', when='~java', msg='MDB driver requires Java')
+
def setup_environment(self, spack_env, run_env):
# Needed to install Python bindings to GDAL installation
# prefix instead of Python installation prefix.
@@ -355,11 +359,24 @@ class Gdal(AutotoolsPackage):
else:
args.append('--with-python=no')
+ # https://trac.osgeo.org/gdal/wiki/GdalOgrInJava
if '+java' in spec:
- args.append('--with-java={0}'.format(spec['java'].prefix))
+ args.extend([
+ '--with-java={0}'.format(spec['java'].home),
+ '--with-jvm-lib={0}'.format(
+ spec['java'].libs.directories[0]),
+ '--with-jvm-lib-add-rpath'
+ ])
else:
args.append('--with-java=no')
+ # https://trac.osgeo.org/gdal/wiki/mdbtools
+ # http://www.gdal.org/drv_mdb.html
+ if '+mdb' in spec:
+ args.append('--with-mdb=yes')
+ else:
+ args.append('--with-mdb=no')
+
if '+armadillo' in spec:
args.append('--with-armadillo={0}'.format(
spec['armadillo'].prefix))
@@ -410,8 +427,6 @@ class Gdal(AutotoolsPackage):
'--with-pam=no',
'--with-podofo=no',
'--with-php=no',
- # https://trac.osgeo.org/gdal/wiki/mdbtools
- '--with-mdb=no',
'--with-rasdaman=no',
])
diff --git a/var/spack/repos/builtin/packages/jackcess/package.py b/var/spack/repos/builtin/packages/jackcess/package.py
new file mode 100644
index 0000000000..62b7279c11
--- /dev/null
+++ b/var/spack/repos/builtin/packages/jackcess/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2018, 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/spack/spack
+# Please also see the NOTICE and LICENSE files 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 Jackcess(Package):
+ """Jackcess is a pure Java library for reading from and writing to
+ MS Access databases (currently supporting versions 2000-2016)."""
+
+ homepage = "http://jackcess.sourceforge.net/"
+ url = "https://sourceforge.net/projects/jackcess/files/jackcess/2.1.12/jackcess-2.1.12.jar"
+
+ version('2.1.12', '7d051d8dd93f2fe7e5e86389ea380619', expand=False)
+ version('1.2.14.3', 'ef778421c1385ac9ab4aa7edfb954caa', expand=False)
+
+ extends('jdk')
+ depends_on('java', type='run')
+ depends_on('commons-lang@2.6', when='@2.1.12', type='run')
+ depends_on('commons-lang@2.4', when='@1.2.14.3', type='run')
+ depends_on('commons-logging@1.1.3', when='@2.1.12', type='run')
+ depends_on('commons-logging@1.1.1', when='@1.2.14.3', type='run')
+
+ def install(self, spec, prefix):
+ install('jackcess-{0}.jar'.format(self.version), prefix)