Skip to content
69 changes: 69 additions & 0 deletions easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2022a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
easyblock = 'CMakeMake'

name = 'Arrow'
version = '8.0.0'

homepage = 'https://arrow.apache.org'
description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
for in-memory data."""

toolchain = {'name': 'foss', 'version': '2022a'}

source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
sources = ['apache-arrow-%(version)s.tar.gz']
checksums = ['ad9a05705117c989c116bae9ac70492fe015050e1b80fb0e38fde4b5d863aaa3']

builddependencies = [
('CMake', '3.23.1'),
('Autotools', '20220317'),
('flex', '2.6.4'),
('Bison', '3.8.2'),
('pkgconf', '1.8.0'),
]

# Arrow strongly prefers included jemalloc, so not including it as a dependency
dependencies = [
('Python', '3.10.4'),
('SciPy-bundle', '2022.05'), # for numpy
('Boost', '1.79.0'),
('lz4', '1.9.3'),
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
('zstd', '1.5.2'),
('snappy', '1.1.9'),
('RapidJSON', '1.1.0'),
('RE2', '2022-06-01'),
('utf8proc', '2.7.0'),
]

start_dir = 'cpp'

# see https://arrow.apache.org/docs/developers/python.html
configopts = "-DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON "
configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON "
configopts += "-DZSTD_ROOT=$EBROOTZSTD "

# also install Python bindings
local_install_pyarrow_cmds = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
local_install_pyarrow_cmds += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && "
local_install_pyarrow_cmds += "cd %(builddir)s/*arrow-%(version)s/python && export XDG_CACHE_HOME=$TMPDIR && "
local_install_pyarrow_cmds += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
local_install_pyarrow_cmds += "Python3_ROOT_DIR=$EBROOTPYTHON "
local_install_pyarrow_cmds += "PYARROW_WITH_PARQUET=1 pip install --prefix %(installdir)s ."
postinstallcmds = [local_install_pyarrow_cmds]

modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}

sanity_check_paths = {
'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
'lib/libarrow_python.a', 'lib/libarrow_python.%s' % SHLIB_EXT],
'dirs': ['include/arrow', 'lib/cmake/arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
}

sanity_check_commands = [
"python -c 'import pyarrow'",
"python -c 'import pyarrow.parquet'",
]

moduleclass = 'data'
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
easyblock = 'RPackage'

name = 'arrow-R'
version = '8.0.0'
versionsuffix = '-R-%(rver)s'

homepage = 'https://cran.r-project.org/web/packages/arrow'
description = "R interface to the Apache Arrow C++ library"

toolchain = {'name': 'foss', 'version': '2022a'}

source_urls = [
'https://cran.r-project.org/src/contrib/Archive/arrow', # package archive
'https://cran.r-project.org/src/contrib/', # current version of packages
'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
]
sources = ['arrow_%(version)s.tar.gz']
checksums = ['6c9aa08c68b7b39cb7d6b9394c0b94a566c0fe9a85cea61f5ed19e460bdb05ad']

dependencies = [
('R', '4.2.1'),
('Arrow', '8.0.0'),
]

preinstallopts = "export LIBARROW_BINARY=true && "

sanity_check_paths = {
'files': [],
'dirs': ['arrow'],
}

options = {'modulename': 'arrow'}

moduleclass = 'tools'
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# pkgconf should be used in preference to pkg-config
# This is included for use only in software that fails to build when using pkgconf
easyblock = 'ConfigureMake'

name = 'pkg-config'
version = '0.29.2'

homepage = 'https://www.freedesktop.org/wiki/Software/pkg-config/'

description = """
pkg-config is a helper tool used when compiling applications and libraries.
It helps you insert the correct compiler options on the command line so an
application can use gcc -o test test.c `pkg-config --libs --cflags glib-2.0`
for instance, rather than hard-coding values on where to find glib (or other
libraries).
"""

toolchain = {'name': 'GCCcore', 'version': '11.3.0'}

source_urls = ['https://pkg-config.freedesktop.org/releases/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591']

builddependencies = [('binutils', '2.38')]

# don't use PAX, it might break.
tar_config_opts = True

configopts = " --with-internal-glib"

sanity_check_paths = {
'files': ['bin/pkg-config'],
'dirs': [],
}

moduleclass = 'devel'
Loading