Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{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 #20060

Merged
merged 12 commits into from
May 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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'
Loading