Skip to content

Commit

Permalink
Merge pull request #20060 from lazariv/20240307090339_new_pr_SOCI403
Browse files Browse the repository at this point in the history
{lang}[GCC/13.2.0,GCCcore/13.2.0,gfbf/2023b] SOCI v4.0.3, yaml-cpp v0.8.0, RStudio-Server v2023.12.1+402 w/ Java 11 R 4.3.3
  • Loading branch information
lexming authored May 27, 2024
2 parents 0d603ec + 00e717e commit 2c26f2f
Show file tree
Hide file tree
Showing 3 changed files with 179 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
easyblock = 'CMakeNinja'

name = 'RStudio-Server'
version = "2023.12.1+402"
versionsuffix = '-Java-%(javaver)s-R-%(rver)s'
local_git_rev = '4da58325ffcff29d157d9264087d4b1ab27f7204'

homepage = 'https://www.rstudio.com/'
description = """This is the RStudio Server version.
RStudio is a set of integrated tools designed to help you be more productive with R.
The server can be started with:
rserver --server-daemonize=0 --www-port=8787
If you need a database config one can be created with:
MYTMP=`mktemp -d` && echo -e "provider=sqlite\\ndirectory=${MYTMP}/sqlite" > "${MYTMP}/db.conf"
and then used with:
rserver ... --database-config-file="${MYTMP}/db.conf"
"""

toolchain = {'name': 'gfbf', 'version': '2023b'}

source_urls = ['https://github.com/rstudio/rstudio/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['196d31094d580a74737fbf689d2d0b302da5fec13694aa1d63f8875d3e45e4dd']

builddependencies = [
('ant', '1.10.14', '-Java-%(javaver)s', SYSTEM),
('CMake', '3.27.6'),
('Ninja', '1.11.1'),
('pkgconf', '2.0.3'),
('nodejs', '20.9.0'),
]

dependencies = [
('Boost', '1.83.0'),
('Java', '11', '', SYSTEM),
('R', '4.3.3'),
('SOCI', '4.0.3'),
('yaml-cpp', '0.8.0'),
]

osdependencies = [
('pam-devel', 'libpam0g-dev')
]

preconfigopts = " && ".join([
# Install dependencies via scripts. Done in subshell to preserve PWD
"(export RSTUDIO_TOOLS_ROOT='%(builddir)s'",
"cd '%(start_dir)s/dependencies/common'",
"./install-cef",
"./install-dictionaries",
"./install-mathjax",
"./install-pandoc",
"./install-packages",
"./install-panmirror",
"./install-npm-dependencies)",
""
])

configopts = " ".join([
"-DRSTUDIO_TOOLS_ROOT='%(builddir)s'",
"-DRSTUDIO_TARGET=Server",
"-DRSTUDIO_USE_SYSTEM_BOOST=ON",
"-DRSTUDIO_USE_SYSTEM_SOCI=ON",
"-DRSTUDIO_USE_SYSTEM_YAML_CPP=ON",
"-DQUARTO_ENABLED=OFF", # Not available on all archs, use pandoc fallback
"-DRSTUDIO_GIT_REVISION_HASH=" + local_git_rev
])

sanity_check_commands = [
# RSession requires environment variables R_HOME and R_DOC_DIR
'R_HOME="$EBROOTR/lib64/R" R_DOC_DIR="$R_HOME/doc" rsession --verify-installation=1',
# RServer requires a db conf (this may also be needed for live use)
# Also create and set a soem dirs so it doesn't try to use $HOME
' '.join([
'MYTMP=`mktemp -d`',
'&& export RSTUDIO_CONFIG_DIR="$MYTMP"',
'&& export XDG_DATA_HOME="$MYTMP/.data"',
'&& export XDG_CACHE_HOME="$MYTMP/.cache"',
'&& mkdir "$XDG_DATA_HOME" "$XDG_CACHE_HOME"',
'&& export RS_LOG_DIR="$MYTMP/log"',
'&& echo -e "provider=sqlite\\ndirectory=$MYTMP/db" >> "$MYTMP/db.conf"',
'&& rserver',
'--verify-installation=1',
'--server-user="$USER"',
'--database-config-file="$MYTMP/db.conf"',
'--server-data-dir="$MYTMP/sdd"',
'--secure-cookie-key-file="$MYTMP/secure-cookie-key"',
]),
]

sanity_check_paths = {
'files': ['bin/rstudio-server'],
'dirs': ['bin', 'extras', 'resources', 'www', 'www-symbolmaps', 'R'],
}

moduleclass = 'lang'
52 changes: 52 additions & 0 deletions easybuild/easyconfigs/s/SOCI/SOCI-4.0.3-GCC-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
easyblock = 'CMakeMake'

name = 'SOCI'
version = '4.0.3'

homepage = 'http://soci.sourceforge.net/'
description = """SOCI is a database access library for C++ that makes the illusion of embedding SQL queries in the
regular C++ code, staying entirely within the Standard C++."""

toolchain = {'name': 'GCC', 'version': '13.2.0'}

source_urls = ['https://github.com/SOCI/soci/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928']

builddependencies = [
('CMake', '3.27.6'),
]

dependencies = [
('Boost', '1.83.0'),
('SQLite', '3.43.1'),
('PostgreSQL', '16.1'),
]

# Matches RStudio (1.4.1717) install options
# https://github.com/rstudio/rstudio/blob/ddcd7191ec89c4da00e77afae7e9f27e61e87c36/dependencies/common/install-soci
configopts = "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true "
configopts += "-DSOCI_TESTS=OFF "
configopts += "-DSOCI_CXX11=ON "
configopts += "-DSOCI_EMPTY=OFF "
configopts += '-DCMAKE_INCLUDE_PATH="$EBROOTBOOST/include" '
configopts += "-DBoost_USE_STATIC_LIBS=ON "
configopts += '-DCMAKE_LIBRARY_PATH="$EBROOTBOOST/lib" '
configopts += "-DWITH_BOOST=ON "
configopts += "-DWITH_POSTGRESQL=ON "
configopts += "-DWITH_SQLITE3=ON "
configopts += "-DWITH_DB2=OFF "
configopts += "-DWITH_MYSQL=OFF "
configopts += "-DWITH_ORACLE=OFF "
configopts += "-DWITH_FIREBIRD=OFF "
configopts += "-DWITH_ODBC=OFF "
configopts += "-DBoost_DEBUG=1 "

local_dbs = ['postgresql', 'sqlite3']

sanity_check_paths = {
'files': ['lib/libsoci_%s.%s' % (x, SHLIB_EXT) for x in local_dbs + ['core']],
'dirs': ['include/soci/%s' % x for x in local_dbs],
}

moduleclass = 'lang'
29 changes: 29 additions & 0 deletions easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.8.0-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This easyconfig was created by the BEAR Software team at the University of Birmingham.
easyblock = 'CMakeMake'
name = 'yaml-cpp'
version = "0.8.0"

homepage = "https://github.com/jbeder/yaml-cpp"
description = """yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec"""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/jbeder/%(name)s/archive/']
sources = ['%(version)s.tar.gz']

checksums = [
{'0.8.0.tar.gz': 'fbe74bbdcee21d656715688706da3c8becfd946d92cd44705cc6098bb23b3a16'},
]

builddependencies = [
('binutils', '2.40'),
('CMake', '3.27.6')
]

sanity_check_paths = {
'files': ['lib/libyaml-cpp.a', 'include/yaml-cpp/yaml.h'],
'dirs': ['lib', 'include'],
}

moduleclass = 'tools'

0 comments on commit 2c26f2f

Please sign in to comment.