Commit b5a4fc57 authored by Jérome Perrin's avatar Jérome Perrin

Theia 1.42.1

See merge request !1443
parents e2926ab2 91cf2d1f
...@@ -18,8 +18,8 @@ parts = ...@@ -18,8 +18,8 @@ parts =
[git] [git]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.40.1.tar.xz url = https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.42.0.tar.xz
md5sum = 125d13c374a9ec9253f42c483bacec31 md5sum = e61c187f6863d5e977e60cdedf213ec0
configure-options = configure-options =
--with-curl=${curl:location} --with-curl=${curl:location}
--with-openssl=${openssl:location} --with-openssl=${openssl:location}
......
...@@ -12,13 +12,25 @@ extends = ...@@ -12,13 +12,25 @@ extends =
parts = parts =
nodejs nodejs
[nodejs] # nodejs >= 16 needs gcc >= 8.3
<= nodejs-16.19.0
# nodejs 16 needs gcc > 8.3
[gcc] [gcc]
min_version = 8.3 min_version = 8.3
[nodejs]
<= nodejs-18.18.0
[nodejs-headers]
<= nodejs-headers-18.18.0
[node-gyp-environment]
# environment section to build with node-gyp.
# node-gyp downloads a tarball containing nodejs headers by default
# this uses a locally downloaded tarball, for reproductibility.
npm_config_tarball = ${nodejs-headers:target}
[nodejs-16.19.0] [nodejs-16.19.0]
<= nodejs-base <= nodejs-base
openssl_location = ${openssl:location} openssl_location = ${openssl:location}
...@@ -38,6 +50,18 @@ post-install = ...@@ -38,6 +50,18 @@ post-install =
version = v16.19.0 version = v16.19.0
md5sum = e7bfbf135ae54d1dcca63bf17be84818 md5sum = e7bfbf135ae54d1dcca63bf17be84818
[nodejs-18.18.0]
<= nodejs-base
openssl_location = ${openssl:location}
version = v18.18.0
md5sum = a1ce8df7e6b9df9f4ba3ff1d4e2173d2
[nodejs-headers-18.18.0]
<= nodejs-headers-base
version = v18.18.0
md5sum = c5ab3e98977dfd639d830625d79eff52
[nodejs-14.16.0] [nodejs-14.16.0]
<= nodejs-base <= nodejs-base
openssl_location = ${openssl:location} openssl_location = ${openssl:location}
...@@ -57,11 +81,6 @@ version = v8.9.4 ...@@ -57,11 +81,6 @@ version = v8.9.4
md5sum = 4ddc1daff327d7e6f63da57fdfc24f55 md5sum = 4ddc1daff327d7e6f63da57fdfc24f55
PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s
[nodejs-8.6.0]
<= nodejs-base
version = v8.6.0
md5sum = 0c95e08220667d8a18b97ecec8218ac6
PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s
[nodejs-8.12.0] [nodejs-8.12.0]
<= nodejs-base <= nodejs-base
......
...@@ -39,6 +39,7 @@ environment = ...@@ -39,6 +39,7 @@ environment =
PATH=${nodejs:location}/bin:${pkgconfig:location}/bin:${python3:location}/bin:%(PATH)s PATH=${nodejs:location}/bin:${pkgconfig:location}/bin:${python3:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${libsecret:location}/lib/pkgconfig:${libsecret:pkg_config_depends} PKG_CONFIG_PATH=${libsecret:location}/lib/pkgconfig:${libsecret:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${libsecret:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib LDFLAGS=-Wl,-rpath=${libsecret:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib
npm_config_tarball=${node-gyp-environment:npm_config_tarball}
NODE_OPTIONS=--max_old_space_size=4096 NODE_OPTIONS=--max_old_space_size=4096
pre-configure = pre-configure =
mkdir -p $TMPDIR mkdir -p $TMPDIR
...@@ -71,6 +72,7 @@ post-install = ...@@ -71,6 +72,7 @@ post-install =
# and anyway not used once the software is installed # and anyway not used once the software is installed
rm -f %(location)s/node_modules/@msgpackr-extract/*/*.node rm -f %(location)s/node_modules/@msgpackr-extract/*/*.node
rm -rf $HOME/.cache/yarn/ rm -rf $HOME/.cache/yarn/
rm -rf $HOME/.cache/puppeteer/
# remove "which" command added in $PATH that does not correctly # remove "which" command added in $PATH that does not correctly
# handle executables thanks to a secondary group of the user. # handle executables thanks to a secondary group of the user.
# https://www.npmjs.com/package/which https://www.npmjs.com/package/isexe # https://www.npmjs.com/package/which https://www.npmjs.com/package/isexe
...@@ -179,6 +181,7 @@ content = ...@@ -179,6 +181,7 @@ content =
"@theia/mini-browser": "latest", "@theia/mini-browser": "latest",
"@theia/monaco": "latest", "@theia/monaco": "latest",
"@theia/navigator": "latest", "@theia/navigator": "latest",
"@theia/notebook": "latest",
"@theia/outline-view": "latest", "@theia/outline-view": "latest",
"@theia/output": "latest", "@theia/output": "latest",
"@theia/plugin-dev": "latest", "@theia/plugin-dev": "latest",
...@@ -191,9 +194,11 @@ content = ...@@ -191,9 +194,11 @@ content =
"@theia/scm": "latest", "@theia/scm": "latest",
"@theia/scm-extra": "latest", "@theia/scm-extra": "latest",
"@theia/search-in-workspace": "latest", "@theia/search-in-workspace": "latest",
"@theia/secondary-window": "latest",
"@theia/task": "latest", "@theia/task": "latest",
"@theia/terminal": "latest", "@theia/terminal": "latest",
"@theia/timeline": "latest", "@theia/timeline": "latest",
"@theia/toolbar": "latest",
"@theia/typehierarchy": "latest", "@theia/typehierarchy": "latest",
"@theia/userstorage": "latest", "@theia/userstorage": "latest",
"@theia/variable-resolver": "latest", "@theia/variable-resolver": "latest",
......
...@@ -15,11 +15,11 @@ ...@@ -15,11 +15,11 @@
[preloadTemplate.html] [preloadTemplate.html]
_update_hash_filename_ = preloadTemplate.html _update_hash_filename_ = preloadTemplate.html
md5sum = 6343592161a349bb40e0de16ce67aa51 md5sum = a27e2cb34e4efe2ed0d4698f505554f0
[yarn.lock] [yarn.lock]
_update_hash_filename_ = yarn.lock _update_hash_filename_ = yarn.lock
md5sum = 6435aaf48cbbfe7911505c2c45cc53ea md5sum = bb7444ebfeea21fed1960700aa6becf9
[ms-python-disable-jedi-buildout.patch] [ms-python-disable-jedi-buildout.patch]
_update_hash_filename_ = ms-python-disable-jedi-buildout.patch _update_hash_filename_ = ms-python-disable-jedi-buildout.patch
......
This diff is collapsed.
...@@ -49,9 +49,7 @@ for plugin_and_version in '''\ ...@@ -49,9 +49,7 @@ for plugin_and_version in '''\
vscode/lua/latest vscode/lua/latest
vscode/make/latest vscode/make/latest
vscode/markdown/latest vscode/markdown/latest
# Activating extension 'Markdown Language Features (built-in)' failed: vscode/markdown-language-features/latest
# i.workspace.onWillDropOnTextEditor is not a function
vscode/markdown-language-features/1.64.2
vscode/merge-conflict/latest vscode/merge-conflict/latest
vscode/npm/latest vscode/npm/latest
ms-vscode/node-debug/latest ms-vscode/node-debug/latest
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
link = document.createElement('link'); link = document.createElement('link');
link.rel = "manifest"; link.rel = "manifest";
link.href = "/theia.webmanifest"; link.href = "/theia.webmanifest";
link.crossOrigin = "use-credentials";
document.head.appendChild(link); document.head.appendChild(link);
if ('serviceWorker' in navigator) { if ('serviceWorker' in navigator) {
......
This diff is collapsed.
...@@ -43,8 +43,6 @@ parts = ...@@ -43,8 +43,6 @@ parts =
gcc gcc
unzip unzip
curl curl
nodejs
yarn
openssl openssl
python3 python3
nginx nginx
...@@ -57,6 +55,8 @@ parts = ...@@ -57,6 +55,8 @@ parts =
peertube-build peertube-build
instance-profile instance-profile
[nodejs]
<= nodejs-16.19.0
[peertube] [peertube]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
[instance-theia] [instance-theia]
_update_hash_filename_ = instance-theia.cfg.jinja.in _update_hash_filename_ = instance-theia.cfg.jinja.in
md5sum = c484bba770c6404ba0a5b2a958b07a68 md5sum = b31e74f018ae92607f4ff63984b33c7a
[instance] [instance]
_update_hash_filename_ = instance.cfg.in _update_hash_filename_ = instance.cfg.in
......
...@@ -260,15 +260,18 @@ content = ...@@ -260,15 +260,18 @@ content =
frontend app frontend app
log global log global
bind $${:ip}:$${:port} ssl crt $${frontend-instance-certificate:cert-file} alpn h2,http/1.1 bind $${:ip}:$${:port} ssl crt $${frontend-instance-certificate:cert-file} alpn h2,http/1.1
# writing twice the same ACL is doing OR
acl is_public path_beg /public/ acl is_public path_beg /public/
acl is_public path /$${frontend-instance-favicon.ico:filename}
acl is_public path /$${frontend-instance-theia.webmanifest:filename}
acl is_public path /$${frontend-instance-theia-serviceworker.js:filename}
acl auth_ok http_auth(basic-auth-list) acl auth_ok http_auth(basic-auth-list)
# writing twice the same ACL is doing OR
acl is_static path_beg /$${frontend-instance-fonts:folder-name}
acl is_static path_beg /$${frontend-instance-slapos.css:folder-name}
acl is_static path /$${frontend-instance-logo:filename}
acl is_static path /$${frontend-instance-favicon.ico:filename}
acl is_static path /$${frontend-instance-theia.webmanifest:filename}
acl is_static path /$${frontend-instance-theia-serviceworker.js:filename}
# No authentication for public folder # No authentication for public folder
http-request auth unless auth_ok || is_public http-request auth unless auth_ok || is_public
use_backend static if { path_beg /$${frontend-instance-fonts:folder-name} } || { path_beg /$${frontend-instance-slapos.css:folder-name} } || { path /$${frontend-instance-logo:filename} } || is_public use_backend static if is_static || is_public
default_backend nodejs default_backend nodejs
backend nodejs backend nodejs
......
...@@ -161,10 +161,22 @@ class TestTheia(TheiaTestCase): ...@@ -161,10 +161,22 @@ class TestTheia(TheiaTestCase):
self.assertIn('test_file', get('/public/')) self.assertIn('test_file', get('/public/'))
self.assertEqual('hello', get('/public/test_file')) self.assertEqual('hello', get('/public/test_file'))
# there's a (not empty) favicon (no need for authentication) # favicon is not empty
resp = self.get(urljoin(url, '/favicon.ico')) self.get(urljoin(url, '/favicon.ico'), requests.codes.unauthorized)
resp = self.get(urljoin(authenticated_url, '/favicon.ico'))
resp.raise_for_status()
self.assertTrue(resp.raw) self.assertTrue(resp.raw)
self.get(urljoin(url, '/theia-serviceworker.js'), requests.codes.unauthorized)
resp = self.get(urljoin(authenticated_url, '/theia-serviceworker.js'))
resp.raise_for_status()
self.assertTrue(resp.raw)
self.get(urljoin(url, '/theia.webmanifest'), requests.codes.unauthorized)
resp = self.get(urljoin(authenticated_url, '/theia.webmanifest'))
resp.raise_for_status()
self.assertIn('Theia SlapOS', resp.text)
# there is a CSS referencing fonts # there is a CSS referencing fonts
css_text = self.get(urljoin(authenticated_url, '/css/slapos.css')).text css_text = self.get(urljoin(authenticated_url, '/css/slapos.css')).text
css_urls = re.findall(r'url\([\'"]+([^\)]+)[\'"]+\)', css_text) css_urls = re.findall(r'url\([\'"]+([^\)]+)[\'"]+\)', css_text)
......
...@@ -136,17 +136,17 @@ zc.buildout = 2.7.1+slapos019 ...@@ -136,17 +136,17 @@ zc.buildout = 2.7.1+slapos019
# Use SlapOS patched zc.recipe.egg (zc.recipe.egg 2.x is for Buildout 2) # Use SlapOS patched zc.recipe.egg (zc.recipe.egg 2.x is for Buildout 2)
zc.recipe.egg = 2.0.3+slapos003 zc.recipe.egg = 2.0.3+slapos003
aiohttp = 3.8.3:whl aiohttp = 3.8.5:whl
aiosignal = 1.3.1:whl aiosignal = 1.3.1:whl
apache-libcloud = 2.4.0 apache-libcloud = 2.4.0
argon2-cffi = 20.1.0 argon2-cffi = 20.1.0
asn1crypto = 1.3.0 asn1crypto = 1.3.0
astor = 0.5 astor = 0.5
async-generator = 1.10 async-generator = 1.10
async-timeout = 4.0.2 async-timeout = 4.0.3
atomicwrites = 1.4.0 atomicwrites = 1.4.0
atomize = 0.2.0 atomize = 0.2.0
attrs = 22.2.0 attrs = 23.1.0:whl
backcall = 0.2.0 backcall = 0.2.0
backports-abc = 0.5 backports-abc = 0.5
backports.functools-lru-cache = 1.6.1:whl backports.functools-lru-cache = 1.6.1:whl
...@@ -155,12 +155,12 @@ backports.shutil-get-terminal-size = 1.0.0 ...@@ -155,12 +155,12 @@ backports.shutil-get-terminal-size = 1.0.0
bcrypt = 3.1.4 bcrypt = 3.1.4
bleach = 5.0.1 bleach = 5.0.1
CacheControl = 0.12.6:whl CacheControl = 0.12.6:whl
cachetools = 5.2.0 cachetools = 5.3.1
cattrs = 22.2.0 cattrs = 22.2.0
certifi = 2022.12.7 certifi = 2023.7.22
cffi = 1.15.0 cffi = 1.15.0
chardet = 3.0.4 chardet = 3.0.4
charset-normalizer = 2.1.1 charset-normalizer = 3.3.0
click = 8.1.3 click = 8.1.3
cliff = 2.8.3:whl cliff = 2.8.3:whl
cmd2 = 0.7.0 cmd2 = 0.7.0
...@@ -180,10 +180,10 @@ entrypoints = 0.3 ...@@ -180,10 +180,10 @@ entrypoints = 0.3
enum34 = 1.1.10 enum34 = 1.1.10
erp5.util = 0.4.74 erp5.util = 0.4.74
et-xmlfile = 1.0.1 et-xmlfile = 1.0.1
exceptiongroup = 1.0.0:whl exceptiongroup = 1.1.3:whl
feedparser = 6.0.10 feedparser = 6.0.10
Flask = 1.1.2 Flask = 1.1.2
frozenlist = 1.3.3:whl frozenlist = 1.4.0:whl
funcsigs = 1.0.2 funcsigs = 1.0.2
functools32 = 3.2.3.post2 functools32 = 3.2.3.post2
gevent = 20.9.0 gevent = 20.9.0
...@@ -196,7 +196,7 @@ h5py = 2.7.1 ...@@ -196,7 +196,7 @@ h5py = 2.7.1
idna = 3.4:whl idna = 3.4:whl
igmp = 1.0.4 igmp = 1.0.4
Importing = 1.10 Importing = 1.10
importlib-metadata = 1.7.0:whl importlib-metadata = 6.8.0:whl
importlib-resources = 5.10.2:whl importlib-resources = 5.10.2:whl
inotify-simple = 1.1.1 inotify-simple = 1.1.1
ipaddress = 1.0.23 ipaddress = 1.0.23
...@@ -218,7 +218,7 @@ jupyterlab-launcher = 0.3.1 ...@@ -218,7 +218,7 @@ jupyterlab-launcher = 0.3.1
jupyterlab-pygments = 0.1.2 jupyterlab-pygments = 0.1.2
lock-file = 2.0 lock-file = 2.0
lockfile = 0.12.2:whl lockfile = 0.12.2:whl
lsprotocol = 2022.0.0a9:whl lsprotocol = 2023.0.0b1:whl
lxml = 4.9.1 lxml = 4.9.1
manuel = 1.11.2 manuel = 1.11.2
MarkupSafe = 2.0.1 MarkupSafe = 2.0.1
...@@ -239,7 +239,7 @@ netifaces = 0.10.7 ...@@ -239,7 +239,7 @@ netifaces = 0.10.7
notebook = 6.1.5 notebook = 6.1.5
openpyxl = 2.5.2 openpyxl = 2.5.2
outcome = 1.2.0 outcome = 1.2.0
packaging = 22.0:whl packaging = 23.2:whl
pandocfilters = 1.4.3 pandocfilters = 1.4.3
paramiko = 2.11.0 paramiko = 2.11.0
parso = 0.7.1 parso = 0.7.1
...@@ -266,7 +266,7 @@ pyasn1 = 0.4.5 ...@@ -266,7 +266,7 @@ pyasn1 = 0.4.5
pycparser = 2.20 pycparser = 2.20
pycurl = 7.43.0 pycurl = 7.43.0
pydantic = 1.9.1 pydantic = 1.9.1
pygls = 1.0.0:whl pygls = 1.1.0:whl
Pygments = 2.9.0 Pygments = 2.9.0
PyNaCl = 1.3.0 PyNaCl = 1.3.0
pyOpenSSL = 19.1.0 pyOpenSSL = 19.1.0
...@@ -283,7 +283,7 @@ pyzmq = 22.3.0 ...@@ -283,7 +283,7 @@ pyzmq = 22.3.0
qtconsole = 4.3.0 qtconsole = 4.3.0
random2 = 1.0.1 random2 = 1.0.1
regex = 2020.9.27 regex = 2020.9.27
requests = 2.28.1 requests = 2.31.0
rpdb = 0.1.5 rpdb = 0.1.5
rubygemsrecipe = 0.4.3 rubygemsrecipe = 0.4.3
scandir = 1.10.0 scandir = 1.10.0
...@@ -319,8 +319,8 @@ tornado = 6.1 ...@@ -319,8 +319,8 @@ tornado = 6.1
traitlets = 5.0.5 traitlets = 5.0.5
trio = 0.22.0 trio = 0.22.0
trio-websocket = 0.9.2 trio-websocket = 0.9.2
typeguard = 2.13.3:whl typeguard = 3.0.2:whl
typing-extensions = 4.3.0:whl typing-extensions = 4.8.0:whl
tzlocal = 1.5.1 tzlocal = 1.5.1
unicodecsv = 0.14.1 unicodecsv = 0.14.1
uritemplate = 3.0.0 uritemplate = 3.0.0
...@@ -330,13 +330,13 @@ webencodings = 0.5.1 ...@@ -330,13 +330,13 @@ webencodings = 0.5.1
websockets = 10.4 websockets = 10.4
websocket-client = 1.5.1 websocket-client = 1.5.1
Werkzeug = 2.0.2 Werkzeug = 2.0.2
wheel = 0.38.4:whl wheel = 0.41.2:whl
widgetsnbextension = 2.0.0 widgetsnbextension = 2.0.0
wsproto = 1.2.0 wsproto = 1.2.0
xlrd = 1.1.0 xlrd = 1.1.0
xml-marshaller = 1.0.2 xml-marshaller = 1.0.2
yarl = 1.8.2 yarl = 1.9.2
zc.buildout.languageserver = 0.9.0 zc.buildout.languageserver = 0.11.0
zc.lockfile = 1.4 zc.lockfile = 1.4
ZConfig = 3.6.1 ZConfig = 3.6.1
zdaemon = 4.2.0 zdaemon = 4.2.0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment