- 13 Jan, 2024 16 commits
-
-
Arnaud Fontaine authored
Otherwise it fails with the following exception because of non-ASCII characters (`[A-Z&é@{]{3,7})`) (see unconvert()) below): => erp5_core/PathTemplateItem/portal_preferences/default_site_preference.xml File "zodbpickle-2.0.0-py3.7-linux-x86_64.egg/zodbpickle/pickle_3.py", line 844, in load dispatch[key[0]](self) File "zodbpickle-2.0.0-py3.7-linux-x86_64.egg/zodbpickle/pickle_3.py", line 1035, in load_short_binstring self.append(self.decode_string(data)) File "zodbpickle-2.0.0-py3.7-linux-x86_64.egg/zodbpickle/pickle_3.py", line 989, in decode_string return value.decode(self.encoding, self.errors) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128)
-
Jérome Perrin authored
-
Bryton Lacquement authored
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
Jérome Perrin authored
-
Jérome Perrin authored
This reverts commit 6c399134.
-
Jérome Perrin authored
Directly expose all passlib.hash supported hashes, using a `passwd-` prefix. For example, to access `sha256_crypt`, use `passwd-sha256-crypt` option name. [secret] recipe = slapos.cookbook:generate.password [config-file] hashed-password = ${secret:passwd-sha256-crypt}
-
Jérome Perrin authored
The strategy for compatibility is that: - haproxy still listen on the same port as before, without rewrite rule. This is called "legacy" port. - for each frontend from request parameters, we introduce an haproxy frontend with a rewrite for the corresponding `internal-path` parameter. - the shared frontend instance is updated to use this new frontend entry from haproxy. This will cause a small downtime until the shared frontend is updated to the new URL on ERP5, but since this feature was not used, it's OK. Technical details are that we: - split haproxy config to have frontends and backends. - introduce one frontend in haproxy for each frontend from request parameters. - routing-rule-list argument is still honored the same way, globally and after path from frontend. - change the shared frontend requests to use "" type, no longer "zope" type. - we don't do automatic detection of /VirtualHostRoot in URL but always add it, because it could be used to trick zope into thinking it serves requests for an arbitrary host and do open redirects - before using the request's host header in virtualhost path, we check that it does not contain /, to prevent injection of virutalhost path elements through the host header. - we don't use the "path" parameter from shared frontend, because we want the frontend to be simple, so we don't want it to rewrite the request path (which is also the reason why we deprecated "zope" type) - the tests have changed a lot, because they were using what's now the "legacy" URL types, so we updated it to use the new URL types with all the /VirtualHostRoot/../ in path and also because they use IPv6 URL, no longer IPv4
-
Jérome Perrin authored
-
Jérome Perrin authored
and save the already allocated ports in a state file, so that requesting new families does not change already allocated ports.
-
Jérome Perrin authored
This reverts commit 620c9332 (stack/erp5: stop using caucase managed certificate for balancer, 2020-11-10) with an updated design. We add a caucase service for balancer in the balancer partition. The caucase service from the root partition (that was not used) is removed. The underlying idea is that the default configuration should use multiple caucases with limited scope, here we have one caucase to manage the certificate used by haproxy server in the balancer partition, so we put one caucase to manage this certificate and the caucase is configured to auto-accept one certificate only. The plan is that when we will add a certificate for mariadb server, we'll add another caucase inside this mariadb server. For more advanced usage and also to support the cases where a new certificate needs to be re-emitted for some reason, users can request with an existing caucase URL. In that case, they will have to accept the certificate requests. Notable changes: balancer/ssl/caucase-url is no longer documented in parameters, this is an internal parameter, users can pass one global caucase service to manage all partition CAUCASE environment variable is no longer set when running zope. There was no identified use case and with this new approach of multiple caucases, the term "caucase" alone became ambiguous.
-
Jérome Perrin authored
This is not documented in schema and has no effect in erp5 (but this is still used for slapos-master)
-
Jérome Perrin authored
-
Jérome Perrin authored
This change the format or the (mostly) unused frontend parameter to support requesting more than one frontend and also enable the request of a frontend by default, so that requesting a frontend separately is no longer needed. The `frontend` parameter now also supports requesting frontends for specific paths on the ERP5 backend, the example below requests a frontend serving directly a web site, with the necessary rewrite rules: ```js { "frontend": { "default": { "internal-path": "/erp5/web_site_module/renderjs_runner/" } } } ``` The example below requests a default frontend to the erp5 root, to access the ZMI or erp5_xhtml_style interface and two web sites: ```js { "frontend": { "default": {}, "erp5js": { "internal-path": "/erp5/web_site_module/renderjs_runner/" }, "crm": { "internal-path": "/erp5/web_site_module/erp5_officejs_support_request_ui/" } } } ``` The example below has an explicit definition of the zope families using `zope-partition-dict` parameter, because there is more than one zope family, no frontend is requested by default: ```js { "zope-partition-dict": { "backoffice": { "family": "backoffice" }, "web": { "family": "web" }, "activities": { "family": "activities" } } } ``` Continuing this example, to have frontends for backoffice and web families, the frontend request can specify the families, like it is demonstrated in the example below. In this example, we don't specify an entry for "activities" family, so no frontend will be requested for this family. ```js { "frontend": { "backoffice": { "zope-family": "backoffice" }, "web": { "zope-family": "web", "internal-path": "/erp5/web_site_module/web_site/" } } "zope-partition-dict": { "backoffice": { "family": "backoffice" }, "web": { "family": "web" }, "activities": { "family": "activities" } } } ```
-
Jérome Perrin authored
our new nexedi.org currently no longer serve static pages with links, using absolute links should allow us to have test passing until this is fixed.
-
- 12 Jan, 2024 1 commit
-
-
Thomas Gambier authored
-
- 11 Jan, 2024 3 commits
-
-
Jérome Perrin authored
-
Jérome Perrin authored
These partition references should be kept short, they are a mechanism to use a short path for unix sockets, because unix socket paths can not exceed 108 characters. When running the test in theia, this was causing errors: # [ALERT] (100453) : config : parsing [/srv/slapgrid/slappart15/srv/runner/instance/slappart7/tmp/inst/with-max-rlimit-nofile6/etc/haproxy.cfg:37] : log : socket path '/srv/slapgrid/slappart15/srv/runner/instance/slappart7/tmp/inst/with-max-rlimit-nofile6/var/run/log.sock' too long (max 97
-
Jérome Perrin authored
-
- 05 Jan, 2024 1 commit
-
-
Kirill Smelkov authored
Currently, due to ensure_ascii=True default of json.dumps, we are insisting on our JSON schemas to be ascii-only and all other characters to be represented by \uxxxx escapes. So far this was not problematic as all our schemas contains only ASCII characters, but upcoming ors-amarisoft changes want to use e.g. "→" symbol: https://lab.nexedi.com/kirr/slapos/blob/b51f5523/software/ors-amarisoft/software.cfg.json#L15 which currently results in failure of json-schema test: FAIL: test_ors-amarisoft_software_cfg_json_format (slapos.test.test_json_schema.TestJSONSchemaValidation) ... First differing element 14: ' "title": "\\u2192 eNB/gNB | Radio Unit",' ' "title": "→ eNB/gNB | Radio Unit",' And in general, in 2023 I think there is no reason to insist on our schemas to be ASCII-only: say if one wants to describe something about "α" parameter. It would be good to use that α character directly and seeing it in the editor, instead of using escapes all the time. As indicated by below stackoverflow answer "JSON spec requires UTF-8 support by decoders": https://stackoverflow.com/a/594881/9456786 , and indeed checking JSON specification also confirms that by default JSON decoders shall use UTF-8: https://datatracker.ietf.org/doc/html/rfc7159#section-8.1 This way, I think, we can switch to UTF-8 safely. /reviewed-by @jerome, @lu.xu /reviewed-on nexedi/slapos!1498
-
- 04 Jan, 2024 1 commit
-
-
Thomas Gambier authored
-
- 02 Jan, 2024 3 commits
-
-
Łukasz Nowak authored
-
Ivan Tyagov authored
See merge request nexedi/slapos!1499
-
Ivan Tyagov authored
-
- 29 Dec, 2023 1 commit
-
-
Lu Xu authored
-
- 28 Dec, 2023 3 commits
-
-
Levin Zimmermann authored
/reviewed-by @kirr and @jerome /reviewed-on nexedi/slapos!1494
-
Levin Zimmermann authored
wendelin.core 2.0.alpha3.post9 supports golang 1.21: with this new version we can set golang 1.21 as the new default. /reviewed-by @kirr and @jerome /reviewed-on nexedi/slapos!1494
-
Levin Zimmermann authored
Go1.21 already has the fifth minor revision (released 2023-12-05) and should therefore already be sufficiently stable. Furthermore we need it to fix a bug in a NEO/go dependency [1]. Please find all details in the official release note: https://go.dev/doc/go1.21 It was released on 2023-08-08 [2]. Due to the go promise of compatibility most software should still compile without any problems. In golang < 1.21 we needed to patch golang to fix https://github.com/golang/go/issues/42525. In golang 1.21 we still need to apply a fix, but can't apply the old patch because the code changed. In golang > 1.21 this problem is already fixed with https://go-review.googlesource.com/c/go/+/520055. Because of https://github.com/golang/go/commit/092671423cd95eaa6df93eb29442fef41504d097 'TestUnshareMountNameSpace' fails on golang 1.21 [3]. In golang 1.20 this test was skipped [4]. To fix this failure the additional patch 'skip-unshare-mount-test.patch' has been added. --- [1] nexedi/wendelin.core!22 (comment 195769)] [2] https://go.dev/doc/devel/release [3] --- FAIL: TestUnshareMountNameSpace (0.18s) exec_linux_test.go:243: unshare failed: exit status 2 unshare: mount /tmp/TestUnshareMountNameSpace2210137852/001 failed: 0x1 [4] === RUN TestUnshareMountNameSpace exec_linux_test.go:333: kernel prohibits unshare in unprivileged process, unless using user namespace — SKIP: TestUnshareMountNameSpace (0.00s) /reviewed-by @kirr and @jerome /reviewed-on nexedi/slapos!1494
-
- 25 Dec, 2023 8 commits
-
-
Jérome Perrin authored
-
Jérome Perrin authored
This version is compatible with gcc 12
-
Jérome Perrin authored
-
Jérome Perrin authored
using https://github.com/ilevkivskyi/com2ann
-
Jérome Perrin authored
drop versions not running on debian 12 and add new versions
-
Jérome Perrin authored
This was disabled to "keep compatibility with current font selection problems", but I don't think we need to care about compatibility for this. This was anyway causing a problem that system fontconfig will be used if it's available, so it's better to define things explictly to prevent falling back to system configuration.
-
Jérome Perrin authored
This caused cloudooo to select different fonts, because LibreOffice-bin comes with some Noto fonts and fontconfig now prefers Noto font
-
Jérome Perrin authored
Testing conversion of HTML with font-family:"FontFamily FontVariant" CSS rule does not really make sense. Remove a few cases for which the behavior is not stable.
-
- 20 Dec, 2023 1 commit
-
-
Titouan Soulard authored
Using RegExp to validate hostnames is a bad practice, and has a lot of reasons to be wrong. On top of that, the JSON Schema specification allows, since draft 7, to validate hostnames against an IDN hostname, by using the `idn-hostname` format. With these changes, IDN are now supported (.рф and .中國 for instance), and long TLD should not be a problem anymore.
-
- 19 Dec, 2023 1 commit
-
-
Jérome Perrin authored
With backported fixes so that old software supports debian 12
-
- 18 Dec, 2023 1 commit
-
-
Jérome Perrin authored
In 9636d79c (Nextcloud Upgrade fixes, 2023-12-13) parameter changed: - instance.trusted-domain-* parameters are replaced by instance.trusted-domain-list - the frontend is part of trusted domain, so with "bypassed" frontends from slapos proxy the backend appears twice (because the backend URL is returned as frontend URL)
-