From 6beb85c607d8db1d57bcaec5d44934580e850694 Mon Sep 17 00:00:00 2001 From: c3-micke Date: Thu, 22 Oct 2020 00:46:59 +0200 Subject: [PATCH 1/5] adding easyconfigs: configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb, nodejs-12.19.0-GCCcore-10.2.0.eb, JupyterHub-1.1.0-GCCcore-10.2.0.eb --- ...gurable-http-proxy-4.2.1-GCCcore-10.2.0.eb | 24 ++++ .../JupyterHub-1.1.0-GCCcore-10.2.0.eb | 113 ++++++++++++++++++ .../n/nodejs/nodejs-12.19.0-GCCcore-10.2.0.eb | 44 +++++++ 3 files changed, 181 insertions(+) create mode 100644 easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb create mode 100644 easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb create mode 100644 easybuild/easyconfigs/n/nodejs/nodejs-12.19.0-GCCcore-10.2.0.eb diff --git a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..fe1c075add3 --- /dev/null +++ b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'Binary' + +name = 'configurable-http-proxy' +version = '4.2.1' + +homepage = 'https://github.com/jupyterhub/configurable-http-proxy' +description = """HTTP proxy for node.js including a REST API for updating the routing table. + Developed as a part of the Jupyter Hub multi-user server.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +dependencies = [ + ('nodejs', '12.19.0'), +] + +source_urls = ['https://github.com/jupyterhub/configurable-http-proxy/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['9f95e6893c2b743112b8e591b411a4c109574389253d95a6b5a69109ede53e23'] + +install_cmd = 'npm install --no-package-lock -g --prefix %(installdir)s %(version)s.tar.gz' + +sanity_check_commands = ['%(name)s --version'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..dbd15fbfceb --- /dev/null +++ b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb @@ -0,0 +1,113 @@ +easyblock = 'PythonBundle' + +name = 'JupyterHub' +version = '1.1.0' + +homepage = 'http://jupyter.org' +description = """JupyterHub is a multiuser version of the Jupyter (IPython) notebook designed + for centralized deployments in companies, university classrooms and research labs.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +dependencies = [ + ('Python', '3.8.6'), + ('IPython', '7.18.1'), + ('Mako', '1.1.3'), + ('configurable-http-proxy', '4.2.1'), +] + +osdependencies = [OS_PKG_OPENSSL_DEV] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('certipy', '0.1.3', { + 'checksums': ['695704b7716b033375c9a1324d0d30f27110a28895c40151a90ec07ff1032859'], + }), + ('pamela', '1.0.0', { + 'checksums': ['65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c'], + }), + ('SQLAlchemy', '1.3.20', { + 'checksums': ['d2f25c7f410338d31666d7ddedfa67570900e248b940d186b48461bd4e5569a1'], + }), + ('alembic', '1.4.3', { + 'checksums': ['5334f32314fb2a56d86b4c4dd1ae34b08c03cae4cb888bc699942104d66bc245'], + }), + ('oauthlib', '3.1.0', { + 'checksums': ['bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889'], + }), + ('pyOpenSSL', '19.1.0', { + 'modulename': 'OpenSSL', + 'checksums': ['9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507'], + }), + ('python-json-logger', '2.0.1', { + 'modulename': 'pythonjsonlogger', + 'checksums': ['f26eea7898db40609563bed0a7ca11af12e2a79858632706d835a0f961b7d398'], + }), + ('ruamel.yaml', '0.16.12', { + 'checksums': ['076cc0bc34f1966d920a49f18b52b6ad559fbe656a0748e3535cf7b3f29ebf9e'], + }), + ('ruamel.yaml.clib', '0.2.2', { + 'modulename': False, + 'checksums': ['2d24bd98af676f4990c4d715bcdc2a60b19c56a3fb3a763164d2d8ca0e806ba7'], + }), + ('python-editor', '1.0.4', { + 'modulename': 'editor', + 'checksums': ['51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b'], + }), + ('jupyter-telemetry', '0.1.0', { + 'source_tmpl': 'jupyter_telemetry-%(version)s.tar.gz', + 'checksums': ['445c613ae3df70d255fe3de202f936bba8b77b4055c43207edf22468ac875314'], + }), + ('jupyterhub', version, { + 'checksums': ['852a70225a03abd631b36a207f3ffdf69326a0db4cef539825fde39ec1b713d7'], + }), + ('batchspawner', '1.0.0', { + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ, + 'source_urls': ['https://github.com/jupyterhub/batchspawner/archive/']}], + 'checksums': ['207d816480ecb14b6ac19b027d39fcd5aaa993758a3c242d83cd6d3538063f40'], + }), + ('jupyterhub-systemdspawner', '0.14', { + 'modulename': 'systemdspawner', + 'checksums': ['080dd9cd9292266dad35d1efc7aa1af0ed6993d15eadc79bd959d1ee273d1923'], + }), + ('jupyterhub-simplespawner', '0.1', { + 'modulename': 'simplespawner', + 'checksums': ['5fcc295b310dd7a99c0f00226be311121fd99b36a5d127e8685f3ffa29712d0d'], + }), + ('ldap3', '2.8.1', { + 'checksums': ['37d633e20fa360c302b1263c96fe932d40622d0119f1bddcb829b03462eeeeb7'], + }), + ('jupyterhub-ldapauthenticator', '1.3.2', { + 'modulename': 'ldapauthenticator', + 'checksums': ['758081bbdb28b26313bb18c9d8aa2b8fcdc9162e4d3ab196c626567e64f1ab8b'], + }), + ('PyJWT', '1.7.1', { + 'modulename': 'jwt', + 'checksums': ['8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96'], + }), + ('jupyterhub-jwtauthenticator-v2', '2.0.2', { + 'modulename': 'jwtauthenticator', + 'checksums': ['9477a606e34c6ff032ee455ffecaf6e13de5e3bce024a2d720f274b421a390c6'], + }), + ('onetimepass', '1.0.1', { + 'checksums': ['a569dac076d6e3761cbc55e36952144a637ca1b075c6d509de1c1dbc5e7f6a27'], + }), + ('jupyterhub-nativeauthenticator', '0.0.5', { + 'modulename': 'nativeauthenticator', + 'checksums': ['e71b5c3ed1e3af4e307c7a43dce2fb56d4db161ec4fc59764b422cb696606376'], + }), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['bin/jupyterhub'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/jupyterhub'], +} + +sanity_check_commands = ['jupyterhub --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/nodejs/nodejs-12.19.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/n/nodejs/nodejs-12.19.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..b54074a104a --- /dev/null +++ b/easybuild/easyconfigs/n/nodejs/nodejs-12.19.0-GCCcore-10.2.0.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'nodejs' +version = '12.19.0' # LTS on 2020-10-19 +local_libversion = '72' + +homepage = 'https://nodejs.org' +description = """Node.js is a platform built on Chrome's JavaScript runtime + for easily building fast, scalable network applications. Node.js uses an + event-driven, non-blocking I/O model that makes it lightweight and efficient, + perfect for data-intensive real-time applications that run across distributed devices.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['http://%(name)s.org/dist/v%(version)s/'] +sources = ['node-v%(version)s.tar.gz'] +checksums = ['1279e49be60d92cf4c1a48c9d92397db4e9284a100bc47689ce7924686bbddd1'] + +builddependencies = [ + ('binutils', '2.35'), + ('Python', '3.8.6'), +] + +configopts = [ + '--with-intl=none', # Fully disable ICU to avoid issues with the embedded icu-small library + '--shared --with-intl=none', # Build libnode.so in a second run +] + +# Link libv8 libs to libnode +postinstallcmds = [ + "cd %%(installdir)s/lib; ln -s libnode.%s.%s libnode.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), + "cd %%(installdir)s/lib; ln -s libnode.%s.%s libv8.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), + "cd %%(installdir)s/lib; ln -s libnode.%s.%s libv8_libbase.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), + "cd %%(installdir)s/lib; ln -s libnode.%s.%s libv8_libplatform.%s" % (SHLIB_EXT, local_libversion, SHLIB_EXT), +] + +sanity_check_paths = { + 'files': ['bin/node', 'bin/npm', 'lib/libnode.%s.%s' % (SHLIB_EXT, local_libversion)], + 'dirs': ['lib/node_modules', 'include/node'] +} + +modextrapaths = {'CPATH': 'include/node'} + +moduleclass = 'lang' From a52daa760f18a33dc51f6fccc2416c44fbe80d7e Mon Sep 17 00:00:00 2001 From: c3-micke Date: Thu, 22 Oct 2020 01:01:28 +0200 Subject: [PATCH 2/5] Fix sanity checks and missing build deps --- .../configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb | 4 ++++ .../j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb | 2 ++ 2 files changed, 6 insertions(+) diff --git a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb index fe1c075add3..aef22909e62 100644 --- a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb @@ -9,6 +9,10 @@ description = """HTTP proxy for node.js including a REST API for updating the ro toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +builddependencies = { + ('binutils', '2.35'), +} + dependencies = [ ('nodejs', '12.19.0'), ] diff --git a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb index dbd15fbfceb..2bdae502d71 100644 --- a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb @@ -108,6 +108,8 @@ sanity_check_paths = { 'dirs': ['lib/python%(pyshortver)s/site-packages/jupyterhub'], } +sanity_pip_check = True + sanity_check_commands = ['jupyterhub --help'] moduleclass = 'tools' From 3098a8968cea0c1cbcc6157eaabb737a5ecdbbc3 Mon Sep 17 00:00:00 2001 From: c3-micke Date: Thu, 22 Oct 2020 01:27:05 +0200 Subject: [PATCH 3/5] Add sanity_check_paths to configureable http proxy --- .../configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb index aef22909e62..be9c499a5a3 100644 --- a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.2.1-GCCcore-10.2.0.eb @@ -23,6 +23,11 @@ checksums = ['9f95e6893c2b743112b8e591b411a4c109574389253d95a6b5a69109ede53e23'] install_cmd = 'npm install --no-package-lock -g --prefix %(installdir)s %(version)s.tar.gz' +sanity_check_paths = { + 'files': ['bin/configurable-http-proxy'], + 'dirs': [], +} + sanity_check_commands = ['%(name)s --version'] moduleclass = 'tools' From 2dbc5db2e9c4ed3e913abc9081355ef52a13dc62 Mon Sep 17 00:00:00 2001 From: c3-micke Date: Thu, 22 Oct 2020 02:16:50 +0200 Subject: [PATCH 4/5] Fix https url --- .../easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb index 2bdae502d71..ac2d8ad3bbe 100644 --- a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb @@ -3,7 +3,7 @@ easyblock = 'PythonBundle' name = 'JupyterHub' version = '1.1.0' -homepage = 'http://jupyter.org' +homepage = 'https://jupyter.org' description = """JupyterHub is a multiuser version of the Jupyter (IPython) notebook designed for centralized deployments in companies, university classrooms and research labs.""" From 58b8c981225d91cbf503c48de7dd2c5e93b09921 Mon Sep 17 00:00:00 2001 From: c3-micke Date: Thu, 22 Oct 2020 11:00:54 +0200 Subject: [PATCH 5/5] Include binutils build dep --- .../j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb index ac2d8ad3bbe..941bc4ae319 100644 --- a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-1.1.0-GCCcore-10.2.0.eb @@ -9,6 +9,10 @@ description = """JupyterHub is a multiuser version of the Jupyter (IPython) note toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +builddependencies = { + ('binutils', '2.35'), +} + dependencies = [ ('Python', '3.8.6'), ('IPython', '7.18.1'),