diff --git a/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-2023.12.1+402-gfbf-2023b-Java-11-R-4.3.3.eb b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-2023.12.1+402-gfbf-2023b-Java-11-R-4.3.3.eb new file mode 100644 index 000000000000..7821f9f4b061 --- /dev/null +++ b/easybuild/easyconfigs/r/RStudio-Server/RStudio-Server-2023.12.1+402-gfbf-2023b-Java-11-R-4.3.3.eb @@ -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' diff --git a/easybuild/easyconfigs/s/SOCI/SOCI-4.0.3-GCC-13.2.0.eb b/easybuild/easyconfigs/s/SOCI/SOCI-4.0.3-GCC-13.2.0.eb new file mode 100644 index 000000000000..9f4329a7316f --- /dev/null +++ b/easybuild/easyconfigs/s/SOCI/SOCI-4.0.3-GCC-13.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.8.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.8.0-GCCcore-13.2.0.eb new file mode 100644 index 000000000000..dc041455a414 --- /dev/null +++ b/easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.8.0-GCCcore-13.2.0.eb @@ -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'