Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
105
Merge Requests
105
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos
Commits
ffd6ff23
Commit
ffd6ff23
authored
Dec 05, 2024
by
Thomas Gambier
🚴🏼
Browse files
Options
Browse Files
Download
Plain Diff
Update Release Candidate
parents
c70793ea
99a2797f
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
119 additions
and
50 deletions
+119
-50
component/egg-patch/Pillow/0001-set-metadata-in-setup.py-for-compatibility-with-old-.patch
...et-metadata-in-setup.py-for-compatibility-with-old-.patch
+0
-29
component/git/buildout.cfg
component/git/buildout.cfg
+5
-0
component/pillow/buildout.cfg
component/pillow/buildout.cfg
+0
-5
software/neoppod/buildout.hash.cfg
software/neoppod/buildout.hash.cfg
+1
-1
software/neoppod/root-common.cfg.in
software/neoppod/root-common.cfg.in
+1
-0
software/slapos-sr-testing/software.cfg
software/slapos-sr-testing/software.cfg
+1
-1
software/theia/buildout.hash.cfg
software/theia/buildout.hash.cfg
+2
-2
software/theia/instance-resilient.cfg.jinja
software/theia/instance-resilient.cfg.jinja
+3
-2
software/theia/instance.cfg.in
software/theia/instance.cfg.in
+1
-0
software/theia/test/test.py
software/theia/test/test.py
+61
-0
stack/erp5/buildout.cfg
stack/erp5/buildout.cfg
+1
-1
stack/monitor/buildout.hash.cfg
stack/monitor/buildout.hash.cfg
+1
-1
stack/monitor/instance-monitor.cfg.jinja2.in
stack/monitor/instance-monitor.cfg.jinja2.in
+40
-6
stack/slapos.cfg
stack/slapos.cfg
+2
-2
No files found.
component/egg-patch/Pillow/0001-set-metadata-in-setup.py-for-compatibility-with-old-.patch
deleted
100644 → 0
View file @
c70793ea
From 77f86b50f097dcf364e0d140e45593bf001d46bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Fri, 1 Mar 2024 09:49:17 +0900
Subject: [PATCH] set metadata in setup.py for compatibility with old slapos
buildout
---
setup.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/setup.py b/setup.py
index 1bf0bcff5..a93fe7b22 100755
--- a/setup.py
+++ b/setup.py
@@ -987,6 +987,11 @@
ext_modules = [
try:
setup(
+ name='pillow',
+ version='10.2.0',
+ packages=["PIL"],
+ include_package_data=True,
+ package_dir={"": "src"},
cmdclass={"build_ext": pil_build_ext},
ext_modules=ext_modules,
zip_safe=not (debug_build() or PLATFORM_MINGW),
--
2.42.0
component/git/buildout.cfg
View file @
ffd6ff23
...
@@ -7,6 +7,7 @@ extends =
...
@@ -7,6 +7,7 @@ extends =
../gettext/buildout.cfg
../gettext/buildout.cfg
../libexpat/buildout.cfg
../libexpat/buildout.cfg
../openssl/buildout.cfg
../openssl/buildout.cfg
../patch/buildout.cfg
../pcre/buildout.cfg
../pcre/buildout.cfg
../perl/buildout.cfg
../perl/buildout.cfg
../tar/buildout.cfg
../tar/buildout.cfg
...
@@ -33,6 +34,10 @@ environment =
...
@@ -33,6 +34,10 @@ environment =
PATH=${curl:location}/bin:${gettext:location}/bin:${tar:location}/bin:${xz-utils:location}/bin:%(PATH)s
PATH=${curl:location}/bin:${gettext:location}/bin:${tar:location}/bin:${xz-utils:location}/bin:%(PATH)s
CPPFLAGS=-I${zlib:location}/include
CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${curl:location}/lib -Wl,-rpath=${libexpat:location}/lib
LDFLAGS=-L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${curl:location}/lib -Wl,-rpath=${libexpat:location}/lib
patch-options = -p1
patch-binary = ${patch:location}/bin/patch
patches =
https://github.com/git/git/commit/ea3422662d21c33c349cc71e9cdbfe235e8f6905.patch?full_index=1#0f4d03d2dad5facbdd76a6ac1ef5b057
[gitweb]
[gitweb]
<= git
<= git
...
...
component/pillow/buildout.cfg
View file @
ffd6ff23
...
@@ -34,8 +34,3 @@ rpath =
...
@@ -34,8 +34,3 @@ rpath =
${libjpeg:location}/lib
${libjpeg:location}/lib
${libtiff:location}/lib
${libtiff:location}/lib
${zlib:location}/lib
${zlib:location}/lib
Pillow-patches = ${:_profile_base_location_}/../../component/egg-patch/Pillow/0001-set-metadata-in-setup.py-for-compatibility-with-old-.patch#0a06cc5a94d3db24688938731e4b15e2
Pillow-patch-options = -p1
[pillow-python:python2]
Pillow-patches =
software/neoppod/buildout.hash.cfg
View file @
ffd6ff23
...
@@ -18,7 +18,7 @@ md5sum = b4baf7f21f450fa522c2a69f5a4aedf7
...
@@ -18,7 +18,7 @@ md5sum = b4baf7f21f450fa522c2a69f5a4aedf7
[root-common]
[root-common]
filename = root-common.cfg.in
filename = root-common.cfg.in
md5sum =
102a7f1c1bc46a9b3fa5bd9b9a628e1d
md5sum =
eefc3358852b7509bfe1b18da19abca0
[instance-neo-admin]
[instance-neo-admin]
filename = instance-neo-admin.cfg.in
filename = instance-neo-admin.cfg.in
...
...
software/neoppod/root-common.cfg.in
View file @
ffd6ff23
...
@@ -32,6 +32,7 @@ sla-computer_guid = ${slap-connection:computer-id}
...
@@ -32,6 +32,7 @@ sla-computer_guid = ${slap-connection:computer-id}
{% macro common_section() -%}
{% macro common_section() -%}
[request-common-base]
[request-common-base]
<= monitor-parameters-propagation
recipe = slapos.cookbook:request.serialised
recipe = slapos.cookbook:request.serialised
software-url = ${slap-connection:software-release-url}
software-url = ${slap-connection:software-release-url}
server-url = ${slap-connection:server-url}
server-url = ${slap-connection:server-url}
...
...
software/slapos-sr-testing/software.cfg
View file @
ffd6ff23
...
@@ -543,7 +543,7 @@ mysqlclient = 2.1.1
...
@@ -543,7 +543,7 @@ mysqlclient = 2.1.1
paho-mqtt = 1.5.0
paho-mqtt = 1.5.0
pcpp = 1.30
pcpp = 1.30
persistent = 6.1
persistent = 6.1
Pillow = 10.2.0
+SlapOSPatched001
Pillow = 10.2.0
plantuml = 0.3.0:whl
plantuml = 0.3.0:whl
pypdf = 3.6.0:whl
pypdf = 3.6.0:whl
pysftp = 0.2.9
pysftp = 0.2.9
...
...
software/theia/buildout.hash.cfg
View file @
ffd6ff23
...
@@ -19,7 +19,7 @@ md5sum = b4e87cff99a8521e6d0b911e3ef35b30
...
@@ -19,7 +19,7 @@ md5sum = b4e87cff99a8521e6d0b911e3ef35b30
[instance]
[instance]
_update_hash_filename_ = instance.cfg.in
_update_hash_filename_ = instance.cfg.in
md5sum =
837eb2786f185ddb5a28d29e271652f7
md5sum =
4f752dd5444a6f9e7c617ec7ccfe62d6
[instance-import]
[instance-import]
_update_hash_filename_ = instance-import.cfg.jinja.in
_update_hash_filename_ = instance-import.cfg.jinja.in
...
@@ -31,7 +31,7 @@ md5sum = b982e83fa42103b7391d97eb36591174
...
@@ -31,7 +31,7 @@ md5sum = b982e83fa42103b7391d97eb36591174
[instance-resilient]
[instance-resilient]
_update_hash_filename_ = instance-resilient.cfg.jinja
_update_hash_filename_ = instance-resilient.cfg.jinja
md5sum =
ad9499e7355ded4975ad313442cecb7a
md5sum =
f0202548a2b5fa27d909faa701c6589b
[slapos-standalone-script]
[slapos-standalone-script]
_update_hash_filename_ = slapos_standalone_script.py.jinja
_update_hash_filename_ = slapos_standalone_script.py.jinja
...
...
software/theia/instance-resilient.cfg.jinja
View file @
ffd6ff23
...
@@ -18,11 +18,12 @@ parts +=
...
@@ -18,11 +18,12 @@ parts +=
{#- Prepare monitoring information to transmit to and request from the main theia, the clones and the PBS #}
{#- Prepare monitoring information to transmit to and request from the main theia, the clones and the PBS #}
{%- set monitor_cors_domains = slapparameter_dict.pop('monitor-cors-domains', 'monitor.app.officejs.com') %}
{%- set monitor_interface_url = slapparameter_dict.pop('monitor-interface-url', 'monitor.app.officejs.com/#page=ojsm_landing') %}
{%- set monitor_cors_domains = urllib_parse.urlparse(monitor_interface_url).hostname %}
{%- set monitor_username = slapparameter_dict.get('monitor-username', '${monitor-instance-parameter:username}') %}
{%- set monitor_username = slapparameter_dict.get('monitor-username', '${monitor-instance-parameter:username}') %}
{%- set monitor_password = slapparameter_dict.get('monitor-password', '${monitor-htpasswd:passwd}') %}
{%- set monitor_password = slapparameter_dict.get('monitor-password', '${monitor-htpasswd:passwd}') %}
{%- set monitor_return = ['monitor-base-url'] %}
{%- set monitor_return = ['monitor-base-url'] %}
{%- set monitor_parameter = {'monitor-cors-domains': monitor_cors_domains, 'monitor-username' : monitor_username, 'monitor-password': monitor_password} %}
{%- set monitor_parameter = {'monitor-cors-domains': monitor_cors_domains, 'monitor-
interface-url': monitor_interface_url, 'monitor-
username' : monitor_username, 'monitor-password': monitor_password} %}
{%- set monitor_dict = {'parameter': monitor_parameter, 'return': monitor_return} %}
{%- set monitor_dict = {'parameter': monitor_parameter, 'return': monitor_return} %}
...
...
software/theia/instance.cfg.in
View file @
ffd6ff23
...
@@ -92,6 +92,7 @@ context =
...
@@ -92,6 +92,7 @@ context =
key eggs_directory buildout:eggs-directory
key eggs_directory buildout:eggs-directory
key slapparameter_dict slap-configuration:configuration
key slapparameter_dict slap-configuration:configuration
raw monitor_template ${monitor-template:output}
raw monitor_template ${monitor-template:output}
import urllib_parse six.moves.urllib.parse
template-parts-destination = ${template-parts:target}
template-parts-destination = ${template-parts:target}
template-replicated-destination = ${template-replicated:target}
template-replicated-destination = ${template-replicated:target}
import-list = file parts :template-parts-destination
import-list = file parts :template-parts-destination
...
...
software/theia/test/test.py
View file @
ffd6ff23
...
@@ -626,6 +626,25 @@ class ResilientTheiaMixin(object):
...
@@ -626,6 +626,25 @@ class ResilientTheiaMixin(object):
class
TestTheiaResilientInterface
(
ResilientTheiaMixin
,
TestTheia
):
class
TestTheiaResilientInterface
(
ResilientTheiaMixin
,
TestTheia
):
def
test_monitoring_default_interface
(
self
):
monitor_setup_url_list
=
[
u
for
u
in
[
p
.
getConnectionParameterDict
().
get
(
'monitor-setup-url'
)
for
p
in
self
.
slap
.
computer
.
getComputerPartitionList
()
]
if
u
is
not
None
]
for
url
in
monitor_setup_url_list
:
self
.
assertIn
(
'monitor.app.officejs.com'
,
url
)
monitor_url_list
=
[
u
for
u
in
[
p
.
getConnectionParameterDict
().
get
(
'monitor-base-url'
)
for
p
in
self
.
slap
.
computer
.
getComputerPartitionList
()
]
if
u
is
not
None
]
for
url
in
monitor_url_list
:
self
.
assertNotEqual
(
url
,
''
)
def
test_all_monitor_url_use_same_password
(
self
):
def
test_all_monitor_url_use_same_password
(
self
):
monitor_setup_params
=
dict
(
monitor_setup_params
=
dict
(
parse_qsl
(
parse_qsl
(
...
@@ -666,3 +685,45 @@ class TestTheiaResilientInterface(ResilientTheiaMixin, TestTheia):
...
@@ -666,3 +685,45 @@ class TestTheiaResilientInterface(ResilientTheiaMixin, TestTheia):
class
TestTheiaResilientWithEmbeddedInstance
(
ResilientTheiaMixin
,
TestTheiaWithEmbeddedInstance
):
class
TestTheiaResilientWithEmbeddedInstance
(
ResilientTheiaMixin
,
TestTheiaWithEmbeddedInstance
):
pass
pass
class
TestTheiaResilientMonitoring
(
ResilientTheiaMixin
,
TheiaTestCase
):
MONITOR_CORS_DOMAIN
=
'monitor.couscous.interface'
MONITOR_INTERFACE_URL
=
'https://'
+
MONITOR_CORS_DOMAIN
+
'/#param1=a1'
@
classmethod
def
getInstanceParameterDict
(
cls
):
return
{
'monitor-interface-url'
:
TestTheiaResilientMonitoring
.
MONITOR_INTERFACE_URL
}
def
test_monitoring_propagation
(
self
):
monitor_setup_url_list
=
[
u
for
u
in
[
p
.
getConnectionParameterDict
().
get
(
'monitor-setup-url'
)
for
p
in
self
.
slap
.
computer
.
getComputerPartitionList
()
]
if
u
is
not
None
]
self
.
assertEqual
(
len
(
monitor_setup_url_list
),
4
)
for
url
in
monitor_setup_url_list
:
self
.
assertIn
(
TestTheiaResilientMonitoring
.
MONITOR_INTERFACE_URL
,
url
)
monitor_cors_url_list
=
[
u
for
u
in
[
p
.
getInstanceParameterDict
().
get
(
'monitor-cors-domains'
)
for
p
in
self
.
slap
.
computer
.
getComputerPartitionList
()
]
if
u
is
not
None
]
for
url
in
monitor_cors_url_list
:
self
.
assertIn
(
TestTheiaResilientMonitoring
.
MONITOR_CORS_DOMAIN
,
url
)
# TODO: assert equal
monitor_interface_url_list
=
[
u
for
u
in
[
p
.
getInstanceParameterDict
().
get
(
'monitor-interface-url'
)
for
p
in
self
.
slap
.
computer
.
getComputerPartitionList
()
]
if
u
is
not
None
]
self
.
assertEqual
(
len
(
monitor_interface_url_list
),
4
)
for
url
in
monitor_interface_url_list
:
self
.
assertIn
(
TestTheiaResilientMonitoring
.
MONITOR_INTERFACE_URL
,
url
)
stack/erp5/buildout.cfg
View file @
ffd6ff23
...
@@ -801,7 +801,7 @@ objgraph = 3.1.0
...
@@ -801,7 +801,7 @@ objgraph = 3.1.0
oic = 1.6.1
oic = 1.6.1
olefile = 0.44
olefile = 0.44
ordered-set = 4.1.0:whl
ordered-set = 4.1.0:whl
Pillow = 10.2.0
+SlapOSPatched001
Pillow = 10.2.0
polib = 1.2.0
polib = 1.2.0
pprofile = 2.1.0
pprofile = 2.1.0
Products.BTreeFolder2 = 4.4+SlapOSPatched001
Products.BTreeFolder2 = 4.4+SlapOSPatched001
...
...
stack/monitor/buildout.hash.cfg
View file @
ffd6ff23
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
# not need these here).
# not need these here).
[monitor2-template]
[monitor2-template]
filename = instance-monitor.cfg.jinja2.in
filename = instance-monitor.cfg.jinja2.in
md5sum =
24c7f5527d994e231b4c2bf9fecb68a6
md5sum =
3d6f2d3b30b722bb1dd7eca0a0d91382
[monitor-httpd-conf]
[monitor-httpd-conf]
_update_hash_filename_ = templates/monitor-httpd.conf.in
_update_hash_filename_ = templates/monitor-httpd.conf.in
...
...
stack/monitor/instance-monitor.cfg.jinja2.in
View file @
ffd6ff23
...
@@ -9,6 +9,7 @@ cert = ${slap-connection:cert-file}
...
@@ -9,6 +9,7 @@ cert = ${slap-connection:cert-file}
# XXX Default values if doesn't exists
# XXX Default values if doesn't exists
root-instance-title = UNKNOWN H-S
root-instance-title = UNKNOWN H-S
instance-title = UNKNOWN Instance
instance-title = UNKNOWN Instance
configuration.monitor-interface-url = https://monitor.app.officejs.com/#page=ojsm_landing
[directory]
[directory]
recipe = slapos.cookbook:mkdirectory
recipe = slapos.cookbook:mkdirectory
...
@@ -158,6 +159,9 @@ recipe = plone.recipe.command
...
@@ -158,6 +159,9 @@ recipe = plone.recipe.command
stop-on-error = true
stop-on-error = true
password-file = ${monitor-directory:etc}/.monitor-password
password-file = ${monitor-directory:etc}/.monitor-password
htpasswd-path = ${monitor-directory:etc}/monitor-htpasswd
htpasswd-path = ${monitor-directory:etc}/monitor-htpasswd
location =
${:password-file}
${:htpasswd-path}
command =
command =
echo "${monitor-instance-parameter:password}" >${:password-file}
echo "${monitor-instance-parameter:password}" >${:password-file}
{{ apache_location }}/bin/htpasswd -cib ${:htpasswd-path} "${monitor-instance-parameter:username}" "${monitor-instance-parameter:password}"
{{ apache_location }}/bin/htpasswd -cib ${:htpasswd-path} "${monitor-instance-parameter:username}" "${monitor-instance-parameter:password}"
...
@@ -324,6 +328,16 @@ monitor-url = ${:monitor-base-url}/public/feeds
...
@@ -324,6 +328,16 @@ monitor-url = ${:monitor-base-url}/public/feeds
monitor-user = ${monitor-instance-parameter:username}
monitor-user = ${monitor-instance-parameter:username}
monitor-password = ${monitor-instance-parameter:password}
monitor-password = ${monitor-instance-parameter:password}
[monitor-parameters-propagation]
config-monitor-interface-url = ${slap-configuration:configuration.monitor-interface-url}
[monitor-interface-configuration]
recipe = slapos.recipe.build
url = ${monitor-parameters-propagation:config-monitor-interface-url}
init =
from six.moves.urllib.parse import urlparse
options['cors-domain'] = urlparse(options['url']).hostname
[monitor-instance-parameter]
[monitor-instance-parameter]
monitor-title = ${slap-configuration:instance-title}
monitor-title = ${slap-configuration:instance-title}
monitor-httpd-ipv6 = ${slap-configuration:ipv6-random}
monitor-httpd-ipv6 = ${slap-configuration:ipv6-random}
...
@@ -333,17 +347,15 @@ monitor-base-url = ${monitor-frontend:connection-secure_access}
...
@@ -333,17 +347,15 @@ monitor-base-url = ${monitor-frontend:connection-secure_access}
#monitor-base-url = ${monitor-httpd-conf-parameter:url}
#monitor-base-url = ${monitor-httpd-conf-parameter:url}
root-instance-title = ${slap-configuration:root-instance-title}
root-instance-title = ${slap-configuration:root-instance-title}
monitor-url-list =
monitor-url-list =
cors-domains =
monitor.app.officejs.com
cors-domains =
${monitor-interface-configuration:cors-domain}
# XXX Hard coded parameter
# XXX Hard coded parameter
collector-db = /srv/slapgrid/var/data-log/collector.db
collector-db = /srv/slapgrid/var/data-log/collector.db
# Credentials
# Credentials
password = ${monitor-htpasswd:passwd}
password = ${monitor-htpasswd:passwd}
username = admin
username = admin
instance-configuration =
instance-configuration =
configuration-file-path = ${monitor-directory:etc}/monitor_knowledge0.cfg
configuration-file-path = ${monitor-directory:etc}/monitor_knowledge0.cfg
interface-url = ${monitor-interface-configuration:url}
interface-url = https://monitor.app.officejs.com
[monitor-frontend]
[monitor-frontend]
<= slap-connection
<= slap-connection
...
@@ -425,10 +437,32 @@ depends =
...
@@ -425,10 +437,32 @@ depends =
${logrotate-entry-monitor-data:name}
${logrotate-entry-monitor-data:name}
${logrotate-entry-monitor-promise-history:name}
${logrotate-entry-monitor-promise-history:name}
[expand-monitor-uri-template]
recipe = slapos.recipe.build
template = ${monitor-instance-parameter:interface-url}{&url,username,password}
url = ${monitor-publish-parameters:monitor-url}
username = ${monitor-publish-parameters:monitor-user}
password = ${monitor-publish-parameters:monitor-password}
init =
import zc.buildout
import pkg_resources
from six.moves.urllib.parse import unquote
buildout_options = self.buildout["buildout"]
zc.buildout.easy_install.install(
["uritemplate"],
dest=None,
working_set=pkg_resources.working_set,
path=[
buildout_options["develop-eggs-directory"],
buildout_options["eggs-directory"]])
import uritemplate
options['uri'] = unquote(uritemplate.URITemplate(options['template']).expand(options))
[monitor-publish]
[monitor-publish]
monitor-base-url = ${monitor-publish-parameters:monitor-base-url}
monitor-base-url = ${monitor-publish-parameters:monitor-base-url}
monitor-setup-url = ${monitor-instance-parameter:interface-url}/#page=settings_configurator&url=${monitor-publish-parameters:monitor-url}&username=${monitor-publish-parameters:monitor-user}&password=${monitor-publish-parameters:monitor-password}
monitor-setup-url = ${expand-monitor-uri-template:uri}
[buildout]
[buildout]
...
...
stack/slapos.cfg
View file @
ffd6ff23
...
@@ -138,10 +138,10 @@ eggs =
...
@@ -138,10 +138,10 @@ eggs =
# The last version of setuptools compatible with Python 3.7
# The last version of setuptools compatible with Python 3.7
setuptools = 67.8.0
setuptools = 67.8.0
# Use SlapOS patched zc.buildout
# Use SlapOS patched zc.buildout
zc.buildout = 3.0.1+slapos00
6
zc.buildout = 3.0.1+slapos00
7
pip = 23.2.1
pip = 23.2.1
# 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.8.dev0+slapos00
6
zc.recipe.egg = 2.0.8.dev0+slapos00
7
aiofiles = 23.1.0:whl
aiofiles = 23.1.0:whl
aiohttp = 3.8.5:whl
aiohttp = 3.8.5:whl
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment