Commit 1382317b authored by Thomas Gambier's avatar Thomas Gambier 🚴🏼

Update Release Candidate

parents 886c2f6e d35d47b4
...@@ -31,8 +31,8 @@ extends = ...@@ -31,8 +31,8 @@ extends =
[php-redis] [php-redis]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/phpredis/phpredis/archive/refs/tags/6.0.1.tar.gz url = https://github.com/phpredis/phpredis/archive/refs/tags/6.0.2.tar.gz
md5sum = 99dd5f16bac2b0c2ec049ce21e346705 md5sum = 3eaabf5871b50d1bbf9d00f64f33e7c2
configure-command = configure-command =
phpize && ./configure phpize && ./configure
environment = environment =
...@@ -51,8 +51,8 @@ environment = ...@@ -51,8 +51,8 @@ environment =
[php-apcu] [php-apcu]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/krakjoe/apcu/archive/refs/tags/v5.1.22.tar.gz url = https://github.com/krakjoe/apcu/archive/refs/tags/v5.1.23.tar.gz
md5sum = 3c4c70004d1ac0e56487fcdcbb045ff6 md5sum = 6508bc04b80a1ef12a71100026cfee3f
configure-command = configure-command =
phpize && ./configure phpize && ./configure
configure-options = configure-options =
...@@ -67,8 +67,8 @@ shared = false ...@@ -67,8 +67,8 @@ shared = false
[apache-php] [apache-php]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://www.php.net/distributions/php-8.2.11.tar.xz url = https://www.php.net/distributions/php-8.2.20.tar.xz
md5sum = 8e7f61ff53fd36be68643080c5114df9 md5sum = 9478294cb87946891f70d5aa5f959bc3
configure-options = configure-options =
--disable-static --disable-static
--disable-zend-test --disable-zend-test
......
...@@ -44,9 +44,9 @@ environment = ...@@ -44,9 +44,9 @@ environment =
[apache] [apache]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
version = 2.4.59 version = 2.4.61
url = https://archive.apache.org/dist/httpd/httpd-${:version}.tar.bz2 url = https://archive.apache.org/dist/httpd/httpd-${:version}.tar.bz2
md5sum = 9f77eb01b2fddfb4b32d469af90fb01b md5sum = f67c69e2faf605d0a4bd483f27cf1dc3
configure-options = --disable-static configure-options = --disable-static
--enable-authn-alias --enable-authn-alias
--enable-bucketeer --enable-bucketeer
......
...@@ -13,8 +13,8 @@ parts = haproxy ...@@ -13,8 +13,8 @@ parts = haproxy
[haproxy] [haproxy]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://www.haproxy.org/download/2.6/src/haproxy-2.6.16.tar.gz url = https://www.haproxy.org/download/2.6/src/haproxy-2.6.18.tar.gz
md5sum = b01e605cdaf2742fcedf214a61e187b4 md5sum = 9cb80d59919ebf108d58ecf4618f9acf
configure-command = true configure-command = true
# for Linux kernel 2.6.28 and above, we use "linux-glibc" as the TARGET, # for Linux kernel 2.6.28 and above, we use "linux-glibc" as the TARGET,
# otherwise use "generic". # otherwise use "generic".
......
...@@ -19,7 +19,6 @@ extends = ...@@ -19,7 +19,6 @@ extends =
../libsigc/buildout.cfg ../libsigc/buildout.cfg
../libxml2/buildout.cfg ../libxml2/buildout.cfg
../libxslt/buildout.cfg ../libxslt/buildout.cfg
../patch/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../potrace/buildout.cfg ../potrace/buildout.cfg
......
This diff is collapsed.
...@@ -10,8 +10,8 @@ parts = ...@@ -10,8 +10,8 @@ parts =
[kerberos] [kerberos]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://web.mit.edu/kerberos/dist/krb5/1.20/krb5-1.20.2.tar.gz url = https://web.mit.edu/kerberos/dist/krb5/1.21/krb5-1.21.3.tar.gz
md5sum = 7ac456e97c4959ebe5c836dc2f5aab2c md5sum = beb34d1dfc72ba0571ce72bed03e06eb
configure-command = src/configure configure-command = src/configure
configure-options = configure-options =
--prefix=@@LOCATION@@ --prefix=@@LOCATION@@
......
...@@ -28,6 +28,7 @@ configure-options = ...@@ -28,6 +28,7 @@ configure-options =
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/0001-prefer-use-python-3-for-tests.patch#6f2a6e83db45b33fc7da86279f06595b ${:_profile_base_location_}/0001-prefer-use-python-3-for-tests.patch#6f2a6e83db45b33fc7da86279f06595b
${:_profile_base_location_}/fix-correct-index-has_dir_name-check.patch#e26c84e73b75a1128fe6bd1d400b6ccd
make-options = -C build make-options = -C build
environment = environment =
......
From 487af0cf6687dc48b0a960fa2f39894e2d84d77b Mon Sep 17 00:00:00 2001
From: Edward Thomson <ethomson@edwardthomson.com>
Date: Sat, 16 Dec 2023 11:19:07 +0000
Subject: [PATCH] index: correct index has_dir_name check
`has_dir_name` is used to check for directory/file collisions,
and attempts to determine whether the index contains a file with
a directory name that is a proper subset of the new index entry
that we're trying to add.
To determine directory name, the function would walk the path string
backwards to identify a `/`, stopping at the end of the string. However,
the function assumed that the strings did not start with a `/`. If the
paths contain only a single `/` at the beginning of the string, then the
function would continue the loop, erroneously, when they should have
stopped at the first character.
Correct the order of the tests to terminate properly.
Credit to Michael Rodler (@f0rki) and Amazon AWS Security.
---
src/index.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/index.c b/src/index.c
index 9d919093be0..ccb38230a16 100644
--- a/src/index.c
+++ b/src/index.c
@@ -1185,10 +1185,13 @@ static int has_dir_name(git_index *index,
size_t len, pos;
for (;;) {
- if (*--slash == '/')
- break;
+ slash--;
+
if (slash <= entry->path)
return 0;
+
+ if (*slash == '/')
+ break;
}
len = slash - name;
...@@ -32,13 +32,14 @@ parts = ...@@ -32,13 +32,14 @@ parts =
[mariadb-common] [mariadb-common]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://archive.mariadb.org//mariadb-${:version}/source/mariadb-${:version}.tar.gz url = https://archive.mariadb.org/mariadb-${:version}/source/mariadb-${:version}.tar.gz
pcre-location = ${pcre2:location} pcre-location = ${pcre2:location}
mariadb-client-test = mariadb-client-test
pre-configure = pre-configure =
d() { grep -q "$@"; sed -i "/$1/d" "$2"; } d() { x=$1; shift; [ "`grep -c "$@"`" = $x ]; sed -i "/$1/d" "$2"; }
d '\bSET(PLUGIN_AUTH_PAM YES CACHE BOOL "")' cmake/build_configurations/mysql_release.cmake d 1 '\bSET(PLUGIN_AUTH_PAM YES CACHE BOOL "")' cmake/build_configurations/mysql_release.cmake
d 'ADD_SUBDIRECTORY(\(mysql-test\|tests\)\b' CMakeLists.txt d 5 '^ *\b\(ADD_SUBDIRECTORY(\(mysql-test\|tests\)\|my_safe_process\|${:mariadb-client-test}\)\b' CMakeLists.txt
d '\bINSTALL_MYSQL_TEST\b' cmake/plugin.cmake d 1 '\bINSTALL_MYSQL_TEST\b' cmake/plugin.cmake
configure-command = ${cmake:location}/bin/cmake configure-command = ${cmake:location}/bin/cmake
configure-options = configure-options =
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@ -DCMAKE_INSTALL_PREFIX=@@LOCATION@@
...@@ -96,8 +97,9 @@ post-install = ...@@ -96,8 +97,9 @@ post-install =
[mariadb-10.4] [mariadb-10.4]
<= mariadb-common <= mariadb-common
version = 10.4.32 version = 10.4.34
md5sum = f5ce8167e5ede5aaeec8f7475f120c19 md5sum = 7b885d620ab5bcd91cebc6ed220c69a7
mariadb-client-test = mysql_client_test
pcre-location = ${pcre:location} pcre-location = ${pcre:location}
patch-options = -p1 patch-options = -p1
patches = patches =
...@@ -109,18 +111,18 @@ patches += ...@@ -109,18 +111,18 @@ patches +=
[mariadb-10.5] [mariadb-10.5]
<= mariadb-common <= mariadb-common
version = 10.5.23 version = 10.5.25
md5sum = cc89da1cb931bc920f3b0492cb7f1657 md5sum = 85d74d62d3aee1c3361cdfce2135141b
[mariadb-10.6] [mariadb-10.6]
<= mariadb-common <= mariadb-common
version = 10.6.16 version = 10.6.18
md5sum = 3eb1e80e0e2c055686aeb5e900cfe94e md5sum = ff0084890e4b8164144edb662f318fcb
[mariadb-10.11] [mariadb-10.11]
<= mariadb-common <= mariadb-common
version = 10.11.6 version = 10.11.8
md5sum = 71c8ef8b36221e348cecb9d13e6718e5 md5sum = ba7abfae7947893c5a5343180808b0cb
[mariadb] [mariadb]
<= mariadb-10.4 <= mariadb-10.4
......
...@@ -16,9 +16,9 @@ parts = ...@@ -16,9 +16,9 @@ parts =
[openssh] [openssh]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
md5sum = 1100f170ca1bc669038ca3743e074094 md5sum = bc04ff77796758c0b37bd0bc9314cd3f
location = @@LOCATION@@ location = @@LOCATION@@
url = https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz url = https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
patch-options = -p1 patch-options = -p1
patches = patches =
......
...@@ -42,12 +42,12 @@ make-targets = ...@@ -42,12 +42,12 @@ make-targets =
ln -sfv $i ${:certs}/`${:location}/bin/openssl x509 -hash -noout -in $i`.0 ln -sfv $i ${:certs}/`${:location}/bin/openssl x509 -hash -noout -in $i`.0
; done ; done
environment = environment =
PERL=${perl:location}/bin/perl PATH=${perl:location}/bin:%(PATH)s
[openssl-3.0] [openssl-3.0]
<= openssl-common <= openssl-common
url = https://www.openssl.org/source/openssl-3.0.13.tar.gz url = https://www.openssl.org/source/openssl-3.0.14.tar.gz
md5sum = c15e53a62711002901d3515ac8b30b86 md5sum = e6fe71fb59a502db54a25cd0f34ea67e
[openssl-quictls] [openssl-quictls]
<= openssl-3.0 <= openssl-3.0
......
...@@ -90,7 +90,7 @@ environment += ...@@ -90,7 +90,7 @@ environment +=
post-install = post-install =
sed -i 's#${dbus:location}/lib/libdbus-1.la#/opt/slapos/parts/dbus/lib/libdbus-1.la#' ${dbus-glib:location}/lib/libdbus-glib-1.la sed -i 's#${dbus:location}/lib/libdbus-1.la#/opt/slapos/parts/dbus/lib/libdbus-1.la#' ${dbus-glib:location}/lib/libdbus-glib-1.la
[openssl] [openssl-common]
shared = false shared = false
prefix = ${buildout:rootdir}/parts/${:_buildout_section_name_} prefix = ${buildout:rootdir}/parts/${:_buildout_section_name_}
make-options += make-options +=
......
...@@ -6,14 +6,11 @@ extends = ...@@ -6,14 +6,11 @@ extends =
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
[gcc]
min_version = 8
[util-linux] [util-linux]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.2.tar.xz url = https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.40/util-linux-2.40.2.tar.xz
md5sum = 2feb3e7c306f336a3d22a182dfffc942 md5sum = 88faefc8fefced097e58142077a3d14e
configure-options = configure-options =
--disable-static --disable-static
--enable-libuuid --enable-libuuid
...@@ -21,16 +18,19 @@ configure-options = ...@@ -21,16 +18,19 @@ configure-options =
--disable-bash-completion --disable-bash-completion
--disable-cal --disable-cal
--disable-cramfs --disable-cramfs
--disable-exch
--disable-fallocate --disable-fallocate
--disable-fsck --disable-fsck
--enable-libblkid --enable-libblkid
--disable-libfdisk --disable-libfdisk
--disable-liblastlog2
--enable-libmount --enable-libmount
--disable-makeinstall-chown --disable-makeinstall-chown
--disable-makeinstall-setuid --disable-makeinstall-setuid
--disable-more --disable-more
--enable-mount --enable-mount
--disable-nls --disable-nls
--disable-pam-lastlog2
--disable-pivot_root --disable-pivot_root
--disable-pylibmount --disable-pylibmount
--disable-rename --disable-rename
......
...@@ -25,7 +25,7 @@ def main(): ...@@ -25,7 +25,7 @@ def main():
obj = json.load(infile, object_pairs_hook=collections.OrderedDict) obj = json.load(infile, object_pairs_hook=collections.OrderedDict)
except ValueError as e: except ValueError as e:
exit_code = 1 exit_code = 1
print(e, file=sys.stderr) print(f'{f}:{e.lineno}', e, file=sys.stderr)
else: else:
with open(f, 'w') as outfile: with open(f, 'w') as outfile:
json.dump(obj, outfile, ensure_ascii=False, sort_keys=False, indent=2, separators=(',', ': ')) json.dump(obj, outfile, ensure_ascii=False, sort_keys=False, indent=2, separators=(',', ': '))
......
...@@ -128,10 +128,6 @@ class Storage(NeoBaseRecipe): ...@@ -128,10 +128,6 @@ class Storage(NeoBaseRecipe):
engine = self.options.get('engine') engine = self.options.get('engine')
if engine: # old versions of NEO don't support -e if engine: # old versions of NEO don't support -e
r += '-e', engine r += '-e', engine
if self.options.get('dedup'):
r.append('--dedup')
if self.options.get('disable-drop-partitions'):
r.append('--disable-drop-partitions')
return r return r
class Admin(NeoBaseRecipe): class Admin(NeoBaseRecipe):
......
[instance-profile] [instance-profile]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 4b7e36bbb077f91cdde5a4a05502cf71 md5sum = 9da5ea88824bdbf233d65c756b4cadbc
...@@ -8,12 +8,11 @@ parts = ...@@ -8,12 +8,11 @@ parts =
publish-connection-parameter publish-connection-parameter
download-plc download-plc
beremiz-runtime beremiz-runtime
#beremiz-runtime-promise http-promise
eggs-directory = {{ buildout['eggs-directory'] }} eggs-directory = {{ buildout['eggs-directory'] }}
develop-eggs-directory = {{ buildout['develop-eggs-directory'] }} develop-eggs-directory = {{ buildout['develop-eggs-directory'] }}
offline = true offline = true
extends = {{ template_monitor }}
[download-plc] [download-plc]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
...@@ -30,8 +29,8 @@ cert = ${slap-connection:cert-file} ...@@ -30,8 +29,8 @@ cert = ${slap-connection:cert-file}
configuration.runtime_plc_url = configuration.runtime_plc_url =
configuration.runtime_plc_md5sum = configuration.runtime_plc_md5sum =
configuration.autostart = 1 configuration.autostart = 1
configuration.interface = 0.0.0.0 configuration.interface = 127.0.0.1
configuration.port = 61248 configuration.port = 8009
# Create all needed directories, depending on your needs # Create all needed directories, depending on your needs
[directory] [directory]
...@@ -41,6 +40,7 @@ etc = ${:home}/etc ...@@ -41,6 +40,7 @@ etc = ${:home}/etc
var = ${:home}/var var = ${:home}/var
script = ${:etc}/run script = ${:etc}/run
service = ${:etc}/service service = ${:etc}/service
promise = ${:etc}/promise
log = ${:var}/log log = ${:var}/log
[beremiz-runtime] [beremiz-runtime]
...@@ -60,12 +60,11 @@ command-line = ...@@ -60,12 +60,11 @@ command-line =
{{ buildout['bin-directory'] }}/pythonwitheggs {{ buildout['directory'] }}/parts/beremiz-source/Beremiz_cli.py -k --project-home ${directory:home}/parts/download-plc/ build transfer run {{ buildout['bin-directory'] }}/pythonwitheggs {{ buildout['directory'] }}/parts/beremiz-source/Beremiz_cli.py -k --project-home ${directory:home}/parts/download-plc/ build transfer run
wrapper-path = ${directory:service}/beremiz-runtime wrapper-path = ${directory:service}/beremiz-runtime
[beremiz-runtime-promise] [http-promise]
<= monitor-promise-base recipe = slapos.cookbook:check_port_listening
module = check_port_listening path = ${directory:promise}/${:_buildout_section_name_}
name = beremiz-runtime.py hostname = ${instance-parameter:configuration.interface}
config-hostname= ${instance-parameter:configuration.interface} port = ${instance-parameter:configuration.port}
config-port = ${instance-parameter:configuration.port}
[publish-connection-parameter] [publish-connection-parameter]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
......
...@@ -6,16 +6,9 @@ extends = ...@@ -6,16 +6,9 @@ extends =
../../component/open62541/buildout.cfg ../../component/open62541/buildout.cfg
../../component/numpy/buildout.cfg ../../component/numpy/buildout.cfg
../../component/lxml-python/buildout.cfg ../../component/lxml-python/buildout.cfg
../../component/python-sslpsk/buildout.cfg
../../component/defaults.cfg
../../stack/monitor/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
# Python2 versions for buildout (keep last)
../../stack/slapos-py2.cfg
parts = parts =
beremiz-source
slapos-cookbook slapos-cookbook
instance-profile instance-profile
python-interpreter python-interpreter
...@@ -47,44 +40,38 @@ post-install = ...@@ -47,44 +40,38 @@ post-install =
[beremiz-source] [beremiz-source]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = https://github.com/beremiz/beremiz.git repository = https://github.com/beremiz/beremiz.git
revision = d0925aa2e32b0143fde5f51eb3ddd3bbb28975ba revision = 2d061a6
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
[beremiz] [nevow-py3-source]
recipe = zc.recipe.egg:develop recipe = slapos.recipe.build:gitclone
egg = beremiz repository = https://github.com/beremiz/nevow-py3.git
setup = ${beremiz-source:location} revision = 6deba72
git-executable = ${git:location}/bin/git
[Twisted] [Nevow]
recipe = zc.recipe.egg:custom recipe = zc.recipe.egg:develop
egg = Twisted egg = Nevow
setup-eggs = setup = ${nevow-py3-source:location}
six
pathlib
incremental
[python-interpreter] [python-interpreter]
recipe = zc.recipe.egg recipe = zc.recipe.egg
interpreter = pythonwitheggs interpreter = pythonwitheggs
eggs = click eggs = aiofiles
prompt_toolkit aiosqlite
pygments click
bitarray erpc
future ifaddr
six zeroconf
Pyro ${Nevow:egg}
zeroconf-py2compat
pathlib
Nevow
msgpack msgpack
autobahn autobahn
${numpy:egg} ${numpy:egg}
${lxml-python:egg} ${lxml-python:egg}
cycler cycler
opcua asyncua
${beremiz:egg} Twisted
${Twisted:egg} extra-paths = ${beremiz-source:location}
${python-sslpsk:egg}
[instance-profile] [instance-profile]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
...@@ -93,45 +80,5 @@ output = ${buildout:directory}/instance.cfg ...@@ -93,45 +80,5 @@ output = ${buildout:directory}/instance.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
context = context =
section buildout buildout section buildout buildout
raw template_monitor ${monitor2-template:output}
key openssl_location openssl:location key openssl_location openssl:location
key gcc_location gcc:prefix key gcc_location gcc:prefix
[versions]
Twisted = 20.3.0
attrs = 19.2.0
Automat = 0.3.0
zope.interface = 4.4.2
Nevow = 0.14.5
PyHamcrest = 2.0.2
Pyro = 3.16
bitarray = 2.1.3
constantly = 15.1.0
future = 0.18.2
hyperlink = 21.0.0
incremental = 21.3.0
pathlib = 1.0.1
zeroconf-py2compat = 0.19.10
# Required by:
# Automat==0.3.0
characteristic = 14.3.0
# Required by:
# zeroconf-py2compat==0.19.10
ifcfg = 0.21
# Required by:
# hyperlink==21.0.0
typing = 3.10.0.0
autobahn = 19.11.2
txaio = 18.8.1
idna = 2.10
click = 7.1.2
opcua = 0.98.13
trollius = 2.2.1
futures = 3.3.0
cycler = 0.10.0
sslpsk = 1.0.0
Tests for beremiz-runtime software release
##############################################################################
#
# Copyright (c) 2018 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from setuptools import setup, find_packages
version = '0.0.1.dev0'
name = 'slapos.test.beremiz-runtime'
with open("README.md") as f:
long_description = f.read()
setup(
name=name,
version=version,
description="Test for SlapOS' Osie Coupler",
long_description=long_description,
long_description_content_type='text/markdown',
maintainer="Nexedi",
maintainer_email="info@nexedi.com",
url="https://lab.nexedi.com/nexedi/slapos",
packages=find_packages(),
install_requires=[
'slapos.core',
'slapos.libnetworkcache',
'erp5.util',
'psutil',
],
zip_safe=True,
test_suite='test',
)
##############################################################################
# coding: utf-8
#
# Copyright (c) 2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import os
import psutil
from slapos.testing.testcase import installSoftwareUrlList, makeModuleSetUpAndTestCaseClass
beremiz_runtime_software_release_url = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software.cfg'))
osie_coupler_software_release_url = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', '..', 'osie-coupler', 'software.cfg'))
_, SlapOSInstanceTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath(beremiz_runtime_software_release_url))
def setUpModule():
installSoftwareUrlList(
SlapOSInstanceTestCase,
[beremiz_runtime_software_release_url, osie_coupler_software_release_url],
debug=bool(int(os.environ.get('SLAPOS_TEST_DEBUG', 0))),
)
class BeremizRuntimeTestCase(SlapOSInstanceTestCase):
@classmethod
def requestDefaultInstance(cls, state='started'):
osie_coupler_instance = cls.slap.request(
software_release=osie_coupler_software_release_url,
partition_reference='osie-coupler',
partition_parameter_kw={'mode': 1},
state=state,
)
return super().requestDefaultInstance(state=state)
@classmethod
def getInstanceParameterDict(cls):
return {"runtime_plc_url": "https://lab.nexedi.com/nexedi/osie/-/raw/dd9aea8012376124ad216e3516e4f33945d14fc5/Beremiz/beremiz_test_opc_ua/bin/beremiz_test_opc_ua.tgz"}
def test_process(self):
with self.slap.instance_supervisor_rpc as supervisor:
process_names = [process['name']
for process in supervisor.getAllProcessInfo()]
self.assertIn('beremiz-runtime-on-watch', process_names)
def check_connexion(self, ip, port):
connexion_list = [] # test node debug
for connexion in psutil.net_connections(kind='tcp4'):
# test node debug
if connexion.laddr.port == port:
connexion_list.append(connexion)
# debug end
if connexion.laddr.ip == ip and connexion.laddr.port == port and connexion.status == 'ESTABLISHED':
return True
# test node debug
print(connexion_list)
test_path = self.computer_partition_root_path
with open(os.path.join(test_path, '.' + os.path.basename(test_path) + '_beremiz-runtime.log')) as log_file:
print(log_file.readlines()[-15:])
# debug end
return False
def test_opc_ua(self):
self.assertTrue(self.check_connexion('127.0.0.1', 4840))
...@@ -762,6 +762,54 @@ ...@@ -762,6 +762,54 @@
} }
}, },
"type": "object" "type": "object"
},
"monitor": {
"type": "object",
"additionalProperties": false,
"description": "Monitor parameters (unstable/experimental)",
"properties": {
"computer-memory-percent-threshold": {
"type": "number",
"description": "Promise fails if total used memory on the computer is above this value, expressed in percentage of the total available RAM,.",
"default": 80,
"minimum": 0,
"maximum": 100
},
"max-slowqueries-threshold": {
"type": "integer",
"description": "Promise fails if more than `max-slowqueries-threshold` queries taking longer than `slowest-query-threshold` are found in the mariadb slow query log for the current day.",
"default": 1000
},
"slowest-query-threshold": {
"type": "number",
"description": "see `max-slowqueries-threshold`",
"default": null
},
"zope-longrequest-logger-error-threshold": {
"type": "number",
"title": "Promise fails if more than `zope-longrequest-logger-error-threshold` requests taking more than `zope-longrequest-logger-maximum-delay` are found in the zope long request logs for the currency day",
"default": 20
},
"zope-longrequest-logger-maximum-delay": {
"type": "number",
"title": "See `zope-longrequest-logger-error-threshold`",
"default": 0
},
"apachedex-promise-threshold": {
"type": "number",
"title": "Promise fails if the overall Apdex score for the previous day is below than this value.",
"default": 70,
"minimum": 0,
"maximum": 100
},
"apachedex-configuration": {
"type": "array",
"items": {
"type": "string"
},
"description": "Command line arguments to run apachedex to build daily reports"
}
}
} }
} }
} }
...@@ -30,7 +30,7 @@ md5sum = 9f27195d770b2f57461c60a82c851ab9 ...@@ -30,7 +30,7 @@ md5sum = 9f27195d770b2f57461c60a82c851ab9
[instance-neo] [instance-neo]
filename = instance-neo.cfg.in filename = instance-neo.cfg.in
md5sum = bc647a29f9d6ece2e4117ce8f04d27c5 md5sum = 53b2c73a0c5c7cb5f6b841ba6892fa46
[template-neo-my-cnf] [template-neo-my-cnf]
filename = my.cnf.in filename = my.cnf.in
......
...@@ -110,6 +110,11 @@ ...@@ -110,6 +110,11 @@
"default": false, "default": false,
"type": "boolean" "type": "boolean"
}, },
"disable-pack": {
"description": "Set the --disable-pack option for storage nodes.",
"default": false,
"type": "boolean"
},
"private-tmpfs": { "private-tmpfs": {
"description": "Size of private tmpfs mount to store the database. See filesystems/tmpfs.txt in Linux documentation. Use only for testing.", "description": "Size of private tmpfs mount to store the database. See filesystems/tmpfs.txt in Linux documentation. Use only for testing.",
"type": "string" "type": "string"
...@@ -133,6 +138,15 @@ ...@@ -133,6 +138,15 @@
"description": "When enabled, sets synchronous = OFF and journal_mode = MEMORY - RTFM, those options are dangerous.", "description": "When enabled, sets synchronous = OFF and journal_mode = MEMORY - RTFM, those options are dangerous.",
"default": false, "default": false,
"type": "boolean" "type": "boolean"
},
"cksumvfs": {
"description": "See https://www.sqlite.org/cksumvfs.html. It can be safely disabled if the underlying storage layer is already checksumming, e.g. Btrfs (on this FS, you should also set journal_mode=TRUNCATE).",
"default": 1,
"type": "integer",
"enum": [
0,
1
]
} }
}, },
"additionalProperties": { "additionalProperties": {
......
...@@ -79,6 +79,9 @@ command = mysql ...@@ -79,6 +79,9 @@ command = mysql
{% elif storage_type == 'SQLite' -%} {% elif storage_type == 'SQLite' -%}
{% set extra_dict = slapparameter_dict.get('sqlite') or {} -%} {% set extra_dict = slapparameter_dict.get('sqlite') or {} -%}
{% if extra_dict.setdefault('cksumvfs', 1) == 0 -%}
{% do extra_dict.pop('cksumvfs') -%}
{% endif -%}
{% if extra_dict.pop('relaxed-writes', False) -%} {% if extra_dict.pop('relaxed-writes', False) -%}
{% do extra_dict.setdefault('synchronous', 'OFF') -%} {% do extra_dict.setdefault('synchronous', 'OFF') -%}
{% do extra_dict.setdefault('journal_mode', 'MEMORY') -%} {% do extra_dict.setdefault('journal_mode', 'MEMORY') -%}
...@@ -148,8 +151,16 @@ engine = ${my-cnf-parameters:engine} ...@@ -148,8 +151,16 @@ engine = ${my-cnf-parameters:engine}
environment = environment =
PATH={{sqlite3_location}}/bin PATH={{sqlite3_location}}/bin
{%- endif %} {%- endif %}
dedup = {{ dumps(bool(slapparameter_dict.get('data-deduplication'))) }} extra-options =
disable-drop-partitions = {{ dumps(bool(slapparameter_dict.get('disable-drop-partitions'))) }} {%- if slapparameter_dict.get('data-deduplication') %}
--dedup
{%- endif %}
{%- if slapparameter_dict.get('disable-drop-partitions') %}
--disable-drop-partitions
{%- endif %}
{%- if slapparameter_dict.get('disable-pack') %}
--disable-pack
{%- endif %}
{% for i in range(storage_count) -%} {% for i in range(storage_count) -%}
{% set storage_id = 'neo-storage-' ~ i -%} {% set storage_id = 'neo-storage-' ~ i -%}
......
...@@ -61,6 +61,7 @@ eggs = neoppod[admin, ctl, master] ...@@ -61,6 +61,7 @@ eggs = neoppod[admin, ctl, master]
coverage coverage
setproctitle setproctitle
mock mock
Pympler
adapter-egg = adapter-egg =
${python-mysqlclient:egg} ${python-mysqlclient:egg}
PyMySQL PyMySQL
...@@ -138,11 +139,13 @@ mysqlclient = 2.0.1 ...@@ -138,11 +139,13 @@ mysqlclient = 2.0.1
PyMySQL = 0.10.1 PyMySQL = 0.10.1
cython-zstd = 0.2 cython-zstd = 0.2
funcsigs = 1.0.2 funcsigs = 1.0.2
Pympler = 1.0.1
[versions:python2] [versions:python2]
coverage = 5.5 coverage = 5.5
mysqlclient = 1.3.12 mysqlclient = 1.3.12
pycrypto = 2.6.1 pycrypto = 2.6.1
Pympler = 0.9
# Test Suite: NEO.UnitTest-Master ran at 2024/06/17 15:00:45.949659 UTC # Test Suite: NEO.UnitTest-Master ran at 2024/06/17 15:00:45.949659 UTC
......
...@@ -44,7 +44,7 @@ md5sum = b7906ca3a6b17963f78f680fc0842b74 ...@@ -44,7 +44,7 @@ md5sum = b7906ca3a6b17963f78f680fc0842b74
[ru_lopcomm_libinstance.jinja2.cfg] [ru_lopcomm_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/lopcomm/libinstance.jinja2.cfg _update_hash_filename_ = ru/lopcomm/libinstance.jinja2.cfg
md5sum = caa51d27f5a5cd5b23e4c088b3e3bb02 md5sum = c3bd882559ab9cd2a068519ea5d8c92e
[ru_sunwave_libinstance.jinja2.cfg] [ru_sunwave_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/sunwave/libinstance.jinja2.cfg _update_hash_filename_ = ru/sunwave/libinstance.jinja2.cfg
......
...@@ -275,7 +275,7 @@ inline = ...@@ -275,7 +275,7 @@ inline =
HostKey ${sshd-ssh-host-ecdsa-key:output} HostKey ${sshd-ssh-host-ecdsa-key:output}
PasswordAuthentication no PasswordAuthentication no
PubkeyAuthentication yes PubkeyAuthentication yes
HostKeyAlgorithms ssh-rsa,ssh-dss,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp521 HostKeyAlgorithms ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp521
AuthorizedKeysFile ${buildout:directory}/.ssh/authorized_keys AuthorizedKeysFile ${buildout:directory}/.ssh/authorized_keys
Subsystem sftp {{ openssh_location }}/libexec/sftp-server Subsystem sftp {{ openssh_location }}/libexec/sftp-server
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[instance-profile] [instance-profile]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 35690065ba18dc49d0108fc1f0a07b9e md5sum = 145c7c84802ca0e3ee16ada31bde04b6
[instance-peertube] [instance-peertube]
_update_hash_filename_ = instance-peertube.cfg.in _update_hash_filename_ = instance-peertube.cfg.in
......
...@@ -23,7 +23,7 @@ context = ...@@ -23,7 +23,7 @@ context =
raw template_peertube_restore ${template-peertube-restore-script:output} raw template_peertube_restore ${template-peertube-restore-script:output}
raw postgresql10_location ${postgresql10:location} raw postgresql10_location ${postgresql10:location}
raw template_nginx_service ${template-nginx-service:output} raw template_nginx_service ${template-nginx-service:output}
raw redis_binprefix ${redis28:location}/bin raw redis_binprefix ${redis:location}/bin
raw template_dcron_service ${template-dcron-service:output} raw template_dcron_service ${template-dcron-service:output}
raw template_peertube_backup ${template-peertube-backup-script:output} raw template_peertube_backup ${template-peertube-backup-script:output}
raw template_crontab_line ${template-crontab-line:output} raw template_crontab_line ${template-crontab-line:output}
......
...@@ -19,8 +19,8 @@ md5sum = 7f9749ab75475bd5d98be27a570c7731 ...@@ -19,8 +19,8 @@ md5sum = 7f9749ab75475bd5d98be27a570c7731
[instance-default] [instance-default]
filename = instance-default.cfg.in filename = instance-default.cfg.in
md5sum = 49167e0b289a87723c3108c4dc4fa8b5 md5sum = 65c9ca38322af7b825cd2f78db5fccd4
[proftpd-config-file] [proftpd-config-file]
filename = proftpd-config-file.cfg.in filename = proftpd-config-file.cfg.in
md5sum = 82cc600f4fce9852370f9d1f7c4cd3a6 md5sum = 934317a31c6e9e7bd6a3b0f3e8508367
...@@ -65,7 +65,6 @@ sftp-log=${directory:log}/proftpd-sftp.log ...@@ -65,7 +65,6 @@ sftp-log=${directory:log}/proftpd-sftp.log
xfer-log=${directory:log}/proftpd-xfer.log xfer-log=${directory:log}/proftpd-xfer.log
ban-log=${directory:log}/proftpd-ban.log ban-log=${directory:log}/proftpd-ban.log
ssh-host-rsa-key=${ssh-host-rsa-key:output} ssh-host-rsa-key=${ssh-host-rsa-key:output}
ssh-host-dsa-key=${ssh-host-dsa-key:output}
ssh-host-ecdsa-key=${ssh-host-ecdsa-key:output} ssh-host-ecdsa-key=${ssh-host-ecdsa-key:output}
ssh-authorized-key = ${ssh-authorized-keys:output} ssh-authorized-key = ${ssh-authorized-keys:output}
ban-table=${directory:srv}/proftpd-ban-table ban-table=${directory:srv}/proftpd-ban-table
...@@ -118,9 +117,6 @@ command = {{ ssh_keygen_bin }} -f ${:output} -N '' ${:extra-args} ...@@ -118,9 +117,6 @@ command = {{ ssh_keygen_bin }} -f ${:output} -N '' ${:extra-args}
[ssh-host-rsa-key] [ssh-host-rsa-key]
<=ssh-keygen-base <=ssh-keygen-base
extra-args=-t rsa extra-args=-t rsa
[ssh-host-dsa-key]
<=ssh-keygen-base
extra-args=-t dsa
[ssh-host-ecdsa-key] [ssh-host-ecdsa-key]
<=ssh-keygen-base <=ssh-keygen-base
extra-args=-t ecdsa -b 521 extra-args=-t ecdsa -b 521
......
...@@ -18,7 +18,6 @@ AllowOverwrite on ...@@ -18,7 +18,6 @@ AllowOverwrite on
# SFTP # SFTP
SFTPEngine on SFTPEngine on
SFTPHostKey {{ proftpd['ssh-host-rsa-key'] }} SFTPHostKey {{ proftpd['ssh-host-rsa-key'] }}
SFTPHostKey {{ proftpd['ssh-host-dsa-key'] }}
SFTPHostKey {{ proftpd['ssh-host-ecdsa-key'] }} SFTPHostKey {{ proftpd['ssh-host-ecdsa-key'] }}
SFTPAuthorizedUserKeys file:{{ proftpd['ssh-authorized-key'] }} SFTPAuthorizedUserKeys file:{{ proftpd['ssh-authorized-key'] }}
......
...@@ -242,6 +242,11 @@ setup = ${slapos-repository:location}/software/erp5testnode/test/ ...@@ -242,6 +242,11 @@ setup = ${slapos-repository:location}/software/erp5testnode/test/
egg = slapos.test.beremiz_ide egg = slapos.test.beremiz_ide
setup = ${slapos-repository:location}/software/beremiz-ide/test/ setup = ${slapos-repository:location}/software/beremiz-ide/test/
[slapos.test.beremiz-runtime-setup]
<= setup-develop-egg
egg = slapos.test.beremiz_runtime
setup = ${slapos-repository:location}/software/beremiz-runtime/test/
[slapos.test.mosquitto-setup] [slapos.test.mosquitto-setup]
<= setup-develop-egg <= setup-develop-egg
egg = slapos.test.mosquitto egg = slapos.test.mosquitto
...@@ -346,6 +351,7 @@ eggs += ...@@ -346,6 +351,7 @@ eggs +=
${slapos.cookbook-setup:egg} ${slapos.cookbook-setup:egg}
${slapos.test.backupserver-setup:egg} ${slapos.test.backupserver-setup:egg}
# ${slapos.test.beremiz-ide-setup:egg} # ${slapos.test.beremiz-ide-setup:egg}
${slapos.test.beremiz-runtime-setup:egg}
${slapos.test.caucase-setup:egg} ${slapos.test.caucase-setup:egg}
${slapos.test.cloudooo-setup:egg} ${slapos.test.cloudooo-setup:egg}
${slapos.test.dream-setup:egg} ${slapos.test.dream-setup:egg}
...@@ -436,6 +442,7 @@ tests = ...@@ -436,6 +442,7 @@ tests =
json-schemas ${slapos.cookbook-setup:setup} json-schemas ${slapos.cookbook-setup:setup}
backupserver ${slapos.test.backupserver-setup:setup} backupserver ${slapos.test.backupserver-setup:setup}
# beremiz-ide ${slapos.test.beremiz-ide-setup:setup} # beremiz-ide ${slapos.test.beremiz-ide-setup:setup}
beremiz-runtime ${slapos.test.beremiz-runtime-setup:setup}
caucase ${slapos.test.caucase-setup:setup} caucase ${slapos.test.caucase-setup:setup}
cloudooo ${slapos.test.cloudooo-setup:setup} cloudooo ${slapos.test.cloudooo-setup:setup}
dream ${slapos.test.dream-setup:setup} dream ${slapos.test.dream-setup:setup}
......
...@@ -554,7 +554,6 @@ eggs = ${neoppod:eggs} ...@@ -554,7 +554,6 @@ eggs = ${neoppod:eggs}
astor astor
APacheDEX APacheDEX
PyStemmer PyStemmer
Pympler
SOAPpy SOAPpy
chardet chardet
collective.recipe.template collective.recipe.template
...@@ -776,7 +775,6 @@ Products.PluginRegistry = 1.4 ...@@ -776,7 +775,6 @@ Products.PluginRegistry = 1.4
Products.TIDStorage = 5.5.0 Products.TIDStorage = 5.5.0
pyPdf = 1.13 pyPdf = 1.13
PyStemmer = 1.3.0 PyStemmer = 1.3.0
Pympler = 0.4.3
StructuredText = 2.11.1 StructuredText = 2.11.1
WSGIUtils = 0.7 WSGIUtils = 0.7
erp5-coverage-plugin = 0.0.1 erp5-coverage-plugin = 0.0.1
......
...@@ -527,7 +527,6 @@ eggs = ...@@ -527,7 +527,6 @@ eggs =
lock_file lock_file
astor astor
APacheDEX APacheDEX
Pympler
chardet chardet
collective.recipe.template collective.recipe.template
erp5diff erp5diff
...@@ -829,7 +828,6 @@ pydot = 1.4.2 ...@@ -829,7 +828,6 @@ pydot = 1.4.2
pyflakes = 1.5.0 pyflakes = 1.5.0
pyjwkest = 1.4.2 pyjwkest = 1.4.2
pylint = 3.2.1:whl pylint = 3.2.1:whl
Pympler = 1.0.1
pyPdf = 1.13 pyPdf = 1.13
PyStemmer = 2.2.0.1 PyStemmer = 2.2.0.1
pytesseract = 0.2.2 pytesseract = 0.2.2
...@@ -942,7 +940,6 @@ Products.ZODBMountPoint = 1.3 ...@@ -942,7 +940,6 @@ Products.ZODBMountPoint = 1.3
Products.ZSQLMethods = 3.16 Products.ZSQLMethods = 3.16
pyasn1-modules = 0.0.8 pyasn1-modules = 0.0.8
pylint = 1.4.4+SlapOSPatched002 pylint = 1.4.4+SlapOSPatched002
Pympler = 0.4.3
PyStemmer = 1.3.0 PyStemmer = 1.3.0
python-ldap = 2.4.32+SlapOSPatched001 python-ldap = 2.4.32+SlapOSPatched001
pytracemalloc = 1.2 pytracemalloc = 1.2
...@@ -966,7 +963,7 @@ z3c.pt = 3.3.1 ...@@ -966,7 +963,7 @@ z3c.pt = 3.3.1
zc.lockfile = 2.0 zc.lockfile = 2.0
zdaemon = 4.4 zdaemon = 4.4
zExceptions = 4.3 zExceptions = 4.3
Zope = 4.8.9+SlapOSPatched002 Zope = 4.8.11+SlapOSPatched002
zope.annotation = 4.8 zope.annotation = 4.8
zope.authentication = 4.5.0 zope.authentication = 4.5.0
zope.browser = 2.4 zope.browser = 2.4
......
...@@ -143,8 +143,10 @@ pip = 23.2.1 ...@@ -143,8 +143,10 @@ 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+slapos002 zc.recipe.egg = 2.0.8.dev0+slapos002
aiofiles = 23.1.0:whl
aiohttp = 3.8.5:whl aiohttp = 3.8.5:whl
aiosignal = 1.3.1:whl aiosignal = 1.3.1:whl
aiosqlite = 0.19.0:whl
annotated-types = 0.6.0:whl annotated-types = 0.6.0:whl
anyio = 4.3.0:whl anyio = 4.3.0:whl
apache-libcloud = 2.4.0 apache-libcloud = 2.4.0
...@@ -155,9 +157,12 @@ asttokens = 2.4.1:whl ...@@ -155,9 +157,12 @@ asttokens = 2.4.1:whl
async-generator = 1.10 async-generator = 1.10
async-lru = 2.0.4:whl async-lru = 2.0.4:whl
async-timeout = 4.0.3 async-timeout = 4.0.3
asyncua = 1.0.4
atomicwrites = 1.4.0 atomicwrites = 1.4.0
atomize = 0.2.0 atomize = 0.2.0
attrs = 23.1.0:whl attrs = 23.1.0:whl
autobahn = 21.2.1
Automat = 22.10.0:whl
Babel = 2.14.0 Babel = 2.14.0
backcall = 0.2.0 backcall = 0.2.0
backports-abc = 0.5 backports-abc = 0.5
...@@ -182,9 +187,11 @@ collective.recipe.shelloutput = 0.1 ...@@ -182,9 +187,11 @@ collective.recipe.shelloutput = 0.1
collective.recipe.template = 2.2 collective.recipe.template = 2.2
comm = 0.2.1:whl comm = 0.2.1:whl
configparser = 4.0.2:whl configparser = 4.0.2:whl
constantly = 15.1.0
contextlib2 = 0.6.0.post1 contextlib2 = 0.6.0.post1
croniter = 0.3.25 croniter = 0.3.25
cryptography = 3.3.2+SlapOSPatched001 cryptography = 3.3.2+SlapOSPatched001
cycler = 0.11.0
dataclasses = 0.8 dataclasses = 0.8
dateparser = 0.7.6 dateparser = 0.7.6
debugpy = 1.8.1 debugpy = 1.8.1
...@@ -195,6 +202,7 @@ dnspython = 1.16.0 ...@@ -195,6 +202,7 @@ dnspython = 1.16.0
entrypoints = 0.3:whl entrypoints = 0.3:whl
enum34 = 1.1.10 enum34 = 1.1.10
erp5.util = 0.4.76 erp5.util = 0.4.76
erpc = 1.12.0:whl
et-xmlfile = 1.0.1 et-xmlfile = 1.0.1
exceptiongroup = 1.1.3:whl exceptiongroup = 1.1.3:whl
executing = 2.0.1:whl executing = 2.0.1:whl
...@@ -215,11 +223,14 @@ h5py = 3.11.0 ...@@ -215,11 +223,14 @@ h5py = 3.11.0
httpcore = 1.0.4:whl httpcore = 1.0.4:whl
httplib2 = 0.22.0 httplib2 = 0.22.0
httpx = 0.27.0:whl httpx = 0.27.0:whl
hyperlink = 21.0.0
idna = 3.4:whl idna = 3.4:whl
ifaddr = 0.2.0
igmp = 1.0.4 igmp = 1.0.4
Importing = 1.10 Importing = 1.10
importlib-metadata = 6.8.0:whl importlib-metadata = 6.8.0:whl
importlib-resources = 5.10.2:whl importlib-resources = 5.10.2:whl
incremental = 22.10.0
inotify-simple = 1.1.1 inotify-simple = 1.1.1
ipaddress = 1.0.23 ipaddress = 1.0.23
ipykernel = 6.29.3:whl ipykernel = 6.29.3:whl
...@@ -347,7 +358,7 @@ slapos.extension.shared = 1.0 ...@@ -347,7 +358,7 @@ slapos.extension.shared = 1.0
slapos.libnetworkcache = 0.25 slapos.libnetworkcache = 0.25
slapos.rebootstrap = 4.7 slapos.rebootstrap = 4.7
slapos.recipe.build = 0.57 slapos.recipe.build = 0.57
slapos.recipe.cmmi = 0.20 slapos.recipe.cmmi = 0.22
slapos.recipe.template = 5.1 slapos.recipe.template = 5.1
slapos.toolbox = 0.142 slapos.toolbox = 0.142
smmap = 5.0.0 smmap = 5.0.0
...@@ -369,6 +380,8 @@ tornado = 6.4 ...@@ -369,6 +380,8 @@ tornado = 6.4
traitlets = 5.14.1:whl traitlets = 5.14.1:whl
trio = 0.22.0 trio = 0.22.0
trio-websocket = 0.9.2 trio-websocket = 0.9.2
Twisted = 22.4.0:whl
txaio = 23.1.1
typeguard = 3.0.2:whl typeguard = 3.0.2:whl
typing-extensions = 4.8.0:whl typing-extensions = 4.8.0:whl
tzlocal = 1.5.1 tzlocal = 1.5.1
...@@ -392,6 +405,7 @@ zc.buildout.languageserver = 0.11.0 ...@@ -392,6 +405,7 @@ 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
zeroconf = 0.62.0:whl
zipp = 3.12.0:whl zipp = 3.12.0:whl
zodburi = 2.5.0 zodburi = 2.5.0
zope.event = 5.0 zope.event = 5.0
...@@ -408,6 +422,7 @@ statsmodels = 0.11.1 ...@@ -408,6 +422,7 @@ statsmodels = 0.11.1
# it can be removed when slapos-node uses current python3 # it can be removed when slapos-node uses current python3
[versions:sys.version_info < (3,8)] [versions:sys.version_info < (3,8)]
Flask = 1.1.2 Flask = 1.1.2
importlib-metadata = 6.7.0:whl
itsdangerous = 0.24 itsdangerous = 0.24
Jinja2 = 2.11.3 Jinja2 = 2.11.3
MarkupSafe = 2.0.1 MarkupSafe = 2.0.1
......
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