Commit 585d17f0 authored by Thomas Gambier's avatar Thomas Gambier 🚴🏼

Update Release Candidate

parents dc915ce0 dc9367cb
...@@ -24,11 +24,13 @@ extends = ...@@ -24,11 +24,13 @@ extends =
../icu/buildout.cfg ../icu/buildout.cfg
../openssl/buildout.cfg ../openssl/buildout.cfg
../libnsl/buildout.cfg ../libnsl/buildout.cfg
../sqlite3/buildout.cfg
../oniguruma/buildout.cfg
[php-redis] [php-redis]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/phpredis/phpredis/archive/5.0.0.tar.gz url = https://github.com/phpredis/phpredis/archive/refs/tags/6.0.1.tar.gz
md5sum = 4f11e0567a10c29394aae52a4fa8bb40 md5sum = 99dd5f16bac2b0c2ec049ce21e346705
configure-command = configure-command =
phpize && ./configure phpize && ./configure
environment = environment =
...@@ -36,12 +38,10 @@ environment = ...@@ -36,12 +38,10 @@ environment =
[php-imagick] [php-imagick]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/Imagick/imagick/archive/3.4.4.tar.gz url = https://github.com/Imagick/imagick/archive/refs/tags/3.7.0.tar.gz
md5sum = ef6cbadd834eb306bd91874a8f5dea03 md5sum = 4dbe07a2ef15d3c9e4c54d5685bdfbc9
configure-command = configure-command =
phpize && ./configure phpize && ./configure
configure-options =
--prefix=${buildout:parts-directory}/${:_buildout_section_name_}
environment = environment =
PKG_CONFIG_PATH=${imagemagick:location}/lib/pkgconfig PKG_CONFIG_PATH=${imagemagick:location}/lib/pkgconfig
PATH=${pkgconfig:location}/bin:${imagemagick:location}/bin:${autoconf:location}/bin:${automake:location}/bin:${m4:location}/bin:${apache-php:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:${imagemagick:location}/bin:${autoconf:location}/bin:${automake:location}/bin:${m4:location}/bin:${apache-php:location}/bin:%(PATH)s
...@@ -49,8 +49,8 @@ environment = ...@@ -49,8 +49,8 @@ environment =
[php-apcu] [php-apcu]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/krakjoe/apcu/archive/v5.1.17.tar.gz url = https://github.com/krakjoe/apcu/archive/refs/tags/v5.1.22.tar.gz
md5sum = f64b6cd5108aea63df2d5cc301c58b2b md5sum = 3c4c70004d1ac0e56487fcdcbb045ff6
configure-command = configure-command =
phpize && ./configure phpize && ./configure
configure-options = configure-options =
...@@ -65,58 +65,44 @@ shared = false ...@@ -65,58 +65,44 @@ shared = false
[apache-php] [apache-php]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://www.php.net/distributions/php-7.3.6.tar.bz2 url = https://www.php.net/distributions/php-8.2.11.tar.xz
md5sum = bde9a912fb311182cd460dad1abbc247 md5sum = 8e7f61ff53fd36be68643080c5114df9
configure-options = configure-options =
--prefix=${buildout:parts-directory}/${:_buildout_section_name_} --disable-static
--disable-zend-test
--enable-exif
--enable-ftp
--enable-gd
--enable-intl
--enable-mbstring
--enable-pcntl
--enable-session
--with-apxs2=${apache:location}/bin/apxs --with-apxs2=${apache:location}/bin/apxs
--with-libxml-dir=${libxml2:location}
--with-mysql=${mariadb:location}
--with-zlib-dir=${zlib:location}
--with-bz2=${bzip2:location} --with-bz2=${bzip2:location}
--with-gd --with-curl
--with-jpeg-dir=${libjpeg:location}
--with-png-dir=${libpng:location}
--enable-gd-native-ttf
--with-freetype-dir=${freetype:location}
--with-pdo-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-curl=${curl:location}
--with-imap=${cclient:location}
--with-iconv-dir=${libiconv:location}
--with-gettext=${gettext:location} --with-gettext=${gettext:location}
--with-ldap=${openldap:location}
--with-imap-ssl --with-imap-ssl
--with-imap=${cclient:location}
--with-ldap=${openldap:location}
--with-mysqli=mysqlnd
--with-openssl=${openssl:location} --with-openssl=${openssl:location}
--with-libzip=${libzip:location} --with-pdo-mysql=mysqlnd
--with-icu-dir=${icu:location} --with-zip
--with-password-argon2=${argon2:location} --with-zlib
--enable-apcu-bc
--enable-intl
--enable-libxml
--enable-json
--enable-mbstring
--enable-pcntl
--enable-session
--enable-exif
--enable-ftp
--enable-zip
--disable-zend-test
--disable-static
# Changing TMPDIR is required for PEAR installation. # Changing TMPDIR is required for PEAR installation.
# It will create a pear/temp directory under the SR instead of a shared /tmp/pear/temp. # It will create a pear/temp directory under the SR instead of a shared /tmp/pear/temp.
# XXX we could mkdir tmp there # XXX we could mkdir tmp there
environment = environment =
PKG_CONFIG_PATH=${libxml2:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${libzip:location}/lib/pkgconfig PKG_CONFIG_PATH=${libxml2:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${libzip:location}/lib/pkgconfig:${sqlite3:location}/lib/pkgconfig:${curl:location}/lib/pkgconfig:${icu:location}/lib/pkgconfig:${oniguruma:location}/lib/pkgconfig:${argon2:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig:${mariadb:location}/lib/pkgconfig:${libjpeg:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig:${freetype:location}/lib/pkgconfig:${libiconv:location}/lib/pkgconfig:${libzip:location}/lib/pkgconfig
PATH=${pkgconfig:location}/bin:${bzip2:location}/bin:${libxml2:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:${bzip2:location}/bin:${libxml2:location}/bin:%(PATH)s
CPPFLAGS=-I${libzip:location}/include CPPFLAGS=-I${libzip:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath -Wl,${bzip2:location}/lib -Wl,-rpath -Wl,${curl:location}/lib -L${libtool:location}/lib -Wl,-rpath -Wl,${libtool:location}/lib -L${mariadb:location}/lib -Wl,-rpath -Wl,${mariadb:location}/lib -L${zlib:location}/lib -Wl,-rpath -Wl,${zlib:location}/lib -L${libzip:location}/lib -Wl,-rpath -Wl,${libzip:location}/lib -L${argon2:location}/lib/x86_64-linux-gnu -Wl,-rpath -Wl,${argon2:location}/lib/x86_64-linux-gnu -Wl,-rpath -Wl,${zstd:location}/lib -L${libnsl:location}/lib -Wl,-rpath -Wl,${libnsl:location}/lib LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath -Wl,${bzip2:location}/lib -Wl,-rpath -Wl,${curl:location}/lib -L${libtool:location}/lib -Wl,-rpath -Wl,${libtool:location}/lib -L${mariadb:location}/lib -Wl,-rpath -Wl,${mariadb:location}/lib -L${zlib:location}/lib -Wl,-rpath -Wl,${zlib:location}/lib -L${libzip:location}/lib -Wl,-rpath -Wl,${libzip:location}/lib -L${argon2:location}/lib/x86_64-linux-gnu -Wl,-rpath -Wl,${argon2:location}/lib/x86_64-linux-gnu -Wl,-rpath -Wl,${zstd:location}/lib -L${libnsl:location}/lib -Wl,-rpath -Wl,${libnsl:location}/lib -L${sqlite3:location}/lib -Wl,-rpath -Wl,${sqlite3:location}/lib
TMPDIR=${buildout:parts-directory}/${:_buildout_section_name_} TMPDIR=@@LOCATION@@
HOME=${apache:location} HOME=${apache:location}
[xml-rpc] [xml-rpc]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://downloads.sourceforge.net/project/phpxmlrpc/phpxmlrpc/2.2.2/xmlrpc-2.2.2.tar.gz url = https://github.com/gggeek/phpxmlrpc/releases/download/2.2.2/xmlrpc-2.2.2.tar.gz
md5sum = 59a644c636c6d98267d0c99b406ae9e8 md5sum = 59a644c636c6d98267d0c99b406ae9e8
[buildout]
extends =
../patch/buildout.cfg
parts = busybox
[busybox]
recipe = slapos.recipe.build
url = http://git.busybox.net/busybox/snapshot/busybox-1_20_2.tar.gz
md5sum = 025acebb48040ef62dd635d416d317e8
patches =
${:_profile_base_location_}/busybox-1_20_2.patch#292498db86c46e101bb14bf2c74c36f0
install =
env = self.environ
extract_dir = self.extract(self.download(options['url'], options['md5sum']))
workdir = guessworkdir(extract_dir)
self.applyPatchList(options.get('patches'), '-p1', cwd=workdir)
self.logger.info("Creating default configuration")
call(['make', 'defconfig'], cwd=workdir, env=env)
self.logger.info("Building")
call(['make'], cwd=workdir, env=env)
self.logger.info("Installing")
call(['make', 'CONFIG_PREFIX=' + location, 'install'], cwd=workdir, env=env)
self.logger.info("Installation finished")
environment =
PATH=${patch:location}/bin:%(PATH)s
diff --git a/include/libbb.h b/include/libbb.h
index f12800f..e7806c2 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -40,6 +40,7 @@
#include <sys/poll.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
+#include <sys/resource.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/time.h>
...@@ -12,14 +12,17 @@ parts = ...@@ -12,14 +12,17 @@ parts =
[ca-certificates] [ca-certificates]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://deb.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20210119.tar.xz url = https://deb.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20230311.tar.xz
md5sum = c02582bf9ae338e558617291897615eb md5sum = fc1c3ec0067385f0be8ac7f6e670a0f8
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
patches = patches =
${:_profile_base_location_}/ca-certificates-any-python.patch#c13b44dfc3157dda13a9a2ff97a9d501 ${:_profile_base_location_}/ca-certificates-any-python.patch#a5817d1b7162f8f814960f72c747e3af
${:_profile_base_location_}/ca-certificates-sbin-dir.patch#0b4e7d82ce768823c01954ee41ef177b ${:_profile_base_location_}/ca-certificates-mkdir-p.patch#02ed8a6d60c39c4b088657888af345ef
${:_profile_base_location_}/ca-certificates-no-cryptography.patch#14ad1308623b0d15420906ae3d9b4867
patch-options = -p0 patch-options = -p0
configure-command = true configure-command = true
make-targets = install DESTDIR=@@LOCATION@@ CERTSDIR=certs SBINDIR=sbin make-targets = install DESTDIR=@@LOCATION@@ CERTSDIR=certs SBINDIR=sbin
environment = environment =
PATH=${xz-utils:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:%(PATH)s
pre-make-hook =
${:_profile_base_location_}/ca-certificates-pre-make-hook.py#9e2f6f22d91ea7a089f0ea2c523b0c1e:pre_make_hook
...@@ -11,13 +11,12 @@ ...@@ -11,13 +11,12 @@
if line.startswith('CKA_CLASS'): if line.startswith('CKA_CLASS'):
--- mozilla/Makefile 2015-12-20 10:49:23.000000000 +0100 --- mozilla/Makefile 2015-12-20 10:49:23.000000000 +0100
+++ mozilla/Makefile 2016-01-05 20:19:11.006874271 +0100 +++ mozilla/Makefile 2016-01-05 20:19:11.006874271 +0100
@@ -3,7 +3,8 @@ @@ -3,7 +3,7 @@
# #
all: all:
- python3 certdata2pem.py - python3 certdata2pem.py
+ for x in 3 '' 2; do type python$$x && break; done >/dev/null \ + SLAPOS_BUILDOUT_PYTHON certdata2pem.py
+ && python$$x certdata2pem.py
clean: clean:
-rm -f *.crt -rm -f *.crt
...@@ -9,19 +9,3 @@ ...@@ -9,19 +9,3 @@
$(MAKE) -C $$dir install CERTSDIR=$(DESTDIR)/$(CERTSDIR)/$$dir; \ $(MAKE) -C $$dir install CERTSDIR=$(DESTDIR)/$(CERTSDIR)/$$dir; \
done done
for dir in sbin; do \ for dir in sbin; do \
--- sbin/Makefile.orig 2011-12-11 20:54:02.000000000 +0100
+++ sbin/Makefile 2012-01-09 17:31:45.207387898 +0100
@@ -3,9 +3,12 @@
#
#
+SBINDIR=/usr/sbin
+
all:
clean:
install:
- install -m755 update-ca-certificates $(DESTDIR)/usr/sbin/
+ mkdir -p $(DESTDIR)/$(SBINDIR)
+ install -m755 update-ca-certificates $(DESTDIR)/$(SBINDIR)
Don't depend on cryptography
Revert https://salsa.debian.org/debian/ca-certificates/-/commit/8033d52259172b4bddc0f8bbcb6f6566b348db72
we don't need this here.
--- mozilla/certdata2pem.py 2023-01-14 22:58:27.000000000 +0900
+++ mozilla/certdata2pem.py 2023-10-02 22:13:31.355540545 +0900
@@ -21,15 +21,12 @@
# USA.
import base64
-import datetime
import os.path
import re
import sys
import textwrap
import io
-from cryptography import x509
-
objects = []
@@ -122,12 +119,6 @@
if not obj['CKA_LABEL'] in trust or not trust[obj['CKA_LABEL']]:
continue
- cert = x509.load_der_x509_certificate(bytes(obj['CKA_VALUE']))
- if cert.not_valid_after < datetime.datetime.utcnow():
- print('!'*74)
- print('Trusted but expired certificate found: %s' % obj['CKA_LABEL'])
- print('!'*74)
-
bname = obj['CKA_LABEL'][1:-1].replace('/', '_')\
.replace(' ', '_')\
.replace('(', '=')\
import pathlib
import sys
def pre_make_hook(options, buildout, environ):
makefile = pathlib.Path('mozilla/Makefile')
txt = makefile.read_text().replace('SLAPOS_BUILDOUT_PYTHON', sys.executable)
makefile.write_text(txt)
[buildout]
extends =
nss.cfg
parts =
corocosync
[corosync]
recipe = slapos.recipe.cmmi
url = ftp://ftp:downloads@corosync.org/downloads/corosync-1.3.1/corosync-1.3.1.tar.gz
md5sum = c58459a009a3a9d0b9c00e276a190d90
environment =
CPPFLAGS=-I${nspr:location}/include/nspr -I${nss:location}/include/nss
PKG_CONFIG_PATH=${nss:location}/lib/pkgconfig:${nspr:location}/lib/pkgconfig
LDFLAGS =-L${nspr:location}/lib -Wl,-rpath=${nspr:location}/lib -L${nss:location}/lib -Wl,-rpath=${nss:location}/lib -Wl,-rpath=${buildout:parts-directory}/${:_buildout_section_name_}/lib
...@@ -10,7 +10,7 @@ extends = ...@@ -10,7 +10,7 @@ extends =
[cups] [cups]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://www.cups.org/software/1.7.4/cups-1.7.4-source.tar.bz2 url = https://github.com/apple/cups/releases/download/release-1.7.4/cups-1.7.4-source.tar.bz2
md5sum = 1a2295c2b2d2f422db2e50f40ed2fb99 md5sum = 1a2295c2b2d2f422db2e50f40ed2fb99
configure-options = configure-options =
--disable-static --disable-static
......
...@@ -19,8 +19,8 @@ parts = ...@@ -19,8 +19,8 @@ parts =
[curl] [curl]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://curl.se/download/curl-8.0.1.tar.xz url = https://curl.se/download/curl-8.4.0.tar.bz2
md5sum = f6c2fdeb30ad30234378a56c28350845 md5sum = 1a61fde1fe5c7db5c29c1196435188a5
configure-options = configure-options =
--disable-static --disable-static
--disable-ech --disable-ech
......
[buildout]
parts = embulk
[embulk]
recipe = slapos.recipe.build:download
url = https://dl.bintray.com/embulk/maven/embulk-0.9.7.jar
md5sum = 05f41d3750ec359fc10c1dc3e30f238e
filename = embulk.jar
...@@ -11,8 +11,8 @@ extends = ...@@ -11,8 +11,8 @@ extends =
[file] [file]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://ftp.astron.com/pub/file/file-5.44.tar.gz url = http://ftp.astron.com/pub/file/file-5.45.tar.gz
md5sum = a60d586d49d015d842b9294864a89c7a md5sum = 26b2a96d4e3a8938827a1e572afd527a
configure-options = configure-options =
--disable-static --disable-static
--disable-libseccomp --disable-libseccomp
......
...@@ -14,12 +14,15 @@ parts = ...@@ -14,12 +14,15 @@ parts =
[freetype] [freetype]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.bz2 url = https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.xz
md5sum = b3230110e0cab777e0df7631837ac36e md5sum = 1f625f0a913c449551b1e3790a1817d7
pkg_config_depends = ${zlib:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig pkg_config_depends = ${zlib:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig
location = @@LOCATION@@ location = @@LOCATION@@
configure-options = configure-options =
--disable-static --disable-static
--enable-freetype-config
--without-brotli
--without-librsvg
environment = environment =
PATH=${pkgconfig:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
......
...@@ -14,8 +14,8 @@ parts = ghostscript ...@@ -14,8 +14,8 @@ parts = ghostscript
[ghostscript] [ghostscript]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9550/ghostscript-9.55.0.tar.xz url = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10020/ghostscript-10.02.0.tar.xz
md5sum = 92aa46e75c4f32eb11d9c975053d876c md5sum = 80c1cdfada72f2eb5987dc0d590ea5b2
pkg_config_depends = ${libtiff:location}/lib/pkgconfig:${libjpeg:location}/lib/pkgconfig:${fontconfig:location}/lib/pkgconfig:${fontconfig:pkg_config_depends} pkg_config_depends = ${libtiff:location}/lib/pkgconfig:${libjpeg:location}/lib/pkgconfig:${fontconfig:location}/lib/pkgconfig:${fontconfig:pkg_config_depends}
# XXX --with-tessdata work arounds a slaprunner bug of having softwares installed in a path containing // # XXX --with-tessdata work arounds a slaprunner bug of having softwares installed in a path containing //
configure-options = configure-options =
...@@ -23,6 +23,7 @@ configure-options = ...@@ -23,6 +23,7 @@ configure-options =
--disable-threadsafe --disable-threadsafe
--with-system-libtiff --with-system-libtiff
--without-libidn --without-libidn
--without-so
--without-x --without-x
--with-drivers=FILES --with-drivers=FILES
--with-tessdata=$(python -c 'print("""${:tessdata-location}""".replace("//", "/"))') --with-tessdata=$(python -c 'print("""${:tessdata-location}""".replace("//", "/"))')
......
...@@ -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}
......
...@@ -7,6 +7,7 @@ extends = ...@@ -7,6 +7,7 @@ extends =
../patch/buildout.cfg ../patch/buildout.cfg
../pcre2/buildout.cfg ../pcre2/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
../python3/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
...@@ -27,7 +28,7 @@ make-binary = ninja -C builddir ...@@ -27,7 +28,7 @@ make-binary = ninja -C builddir
pkg_config_depends = ${pcre2:location}/lib/pkgconfig:${libffi:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig pkg_config_depends = ${pcre2:location}/lib/pkgconfig:${libffi:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig
environment = environment =
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
PATH=${ninja:location}/bin:${pkgconfig:location}/bin:${patch:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${python3:location}/bin:${ninja:location}/bin:${pkgconfig:location}/bin:${patch:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
CFLAGS=-I${gettext:location}/include CFLAGS=-I${gettext:location}/include
LDFLAGS=-L${gettext:location}/lib -lintl -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${libffi:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=@@LOCATION@@/lib -Wl,-rpath=${pcre2:location}/lib LDFLAGS=-L${gettext:location}/lib -lintl -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${libffi:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=@@LOCATION@@/lib -Wl,-rpath=${pcre2:location}/lib
post-install = rm %(location)s/bin/gtester-report post-install = rm %(location)s/bin/gtester-report
...@@ -6,6 +6,7 @@ extends = ...@@ -6,6 +6,7 @@ extends =
../meson/buildout.cfg ../meson/buildout.cfg
../ninja/buildout.cfg ../ninja/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
../python3/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
parts = parts =
...@@ -20,7 +21,7 @@ pkg_config_depends = ${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}:$ ...@@ -20,7 +21,7 @@ pkg_config_depends = ${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}:$
configure-command = ${meson:location}/bin/meson builddir --libdir=lib -Dprefix=@@LOCATION@@ configure-command = ${meson:location}/bin/meson builddir --libdir=lib -Dprefix=@@LOCATION@@
make-binary = ninja -C builddir make-binary = ninja -C builddir
environment = environment =
PATH=${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${glib:location}/bin:${ninja:location}/bin:%(PATH)s PATH=${python3:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${glib:location}/bin:${ninja:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${gettext:location}/include CPPFLAGS=-I${gettext:location}/include
LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${libsigc:location}/lib -Wl,-rpath=@@LOCATION@@/lib LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${libsigc:location}/lib -Wl,-rpath=@@LOCATION@@/lib
...@@ -14,6 +14,7 @@ extends = ...@@ -14,6 +14,7 @@ extends =
../libtool/buildout.cfg ../libtool/buildout.cfg
../m4/buildout.cfg ../m4/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
../python3/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../xorg/buildout.cfg ../xorg/buildout.cfg
../icu/buildout.cfg ../icu/buildout.cfg
...@@ -81,7 +82,7 @@ configure-options = ...@@ -81,7 +82,7 @@ configure-options =
--disable-static --disable-static
--disable-gtk-doc-html --disable-gtk-doc-html
environment = environment =
PATH=${glib:location}/bin:${freetype:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${glib:location}/bin:${python3:location}/bin:${freetype:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${glib:location}/lib LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${glib:location}/lib
...@@ -94,7 +95,7 @@ configure-command = ${meson:location}/bin/meson builddir --wrap-mode=nodownload ...@@ -94,7 +95,7 @@ configure-command = ${meson:location}/bin/meson builddir --wrap-mode=nodownload
make-binary = ninja -C builddir make-binary = ninja -C builddir
pkg_config_depends = ${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libpng:location}/lib/pkgconfig:${libjpeg:location}/lib/pkgconfig:${libtiff:location}/lib/pkgconfig pkg_config_depends = ${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libpng:location}/lib/pkgconfig:${libjpeg:location}/lib/pkgconfig:${libtiff:location}/lib/pkgconfig
environment = environment =
PATH=${glib:location}/bin:${perl:location}/bin:${ninja:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${libpng:location}/bin%(PATH)s PATH=${glib:location}/bin:${perl:location}/bin:${python3:location}/bin:${ninja:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${libpng:location}/bin%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CFLAGS=-I${gettext:location}/include CFLAGS=-I${gettext:location}/include
LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${jbigkit:location}/lib -Wl,-rpath=${libtiff:location}/lib -Wl,-rpath=${libjpeg:location}/lib -Wl,-rpath=${libpng:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=@@LOCATION@@/lib LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${jbigkit:location}/lib -Wl,-rpath=${libtiff:location}/lib -Wl,-rpath=${libjpeg:location}/lib -Wl,-rpath=${libpng:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=@@LOCATION@@/lib
...@@ -107,7 +108,7 @@ md5sum = 4dcea15cbf166706c166fc4fee05e3f8 ...@@ -107,7 +108,7 @@ md5sum = 4dcea15cbf166706c166fc4fee05e3f8
configure-command = ${meson:location}/bin/meson builddir --wrap-mode=nodownload --libdir=lib -Dprefix=@@LOCATION@@ -Ddocs=false -Dintrospection=false configure-command = ${meson:location}/bin/meson builddir --wrap-mode=nodownload --libdir=lib -Dprefix=@@LOCATION@@ -Ddocs=false -Dintrospection=false
make-binary = ninja -C builddir make-binary = ninja -C builddir
environment = environment =
PATH=${glib:location}/bin:${ninja:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${glib:location}/bin:${python3:location}/bin:${ninja:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${glib:pkg_config_depends} PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}
CFLAGS=-I${gettext:location}/include CFLAGS=-I${gettext:location}/include
LDFLAGS=-L${gettext:location}/lib -lintl -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib LDFLAGS=-L${gettext:location}/lib -lintl -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib
...@@ -127,7 +128,7 @@ configure-options = ...@@ -127,7 +128,7 @@ configure-options =
--disable-xinerama --disable-xinerama
--disable-gtk-doc-html --disable-gtk-doc-html
environment = environment =
PATH=${gdk-pixbuf:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${python3:location}/bin:${gdk-pixbuf:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
# not taken from pkg-config result... # not taken from pkg-config result...
CPPFLAGS=-I${gettext:location}/include -I${libX11:location}/include/ -I${xproto:location}/include -I${xorgproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include CPPFLAGS=-I${gettext:location}/include -I${libX11:location}/include/ -I${xproto:location}/include -I${xorgproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include
......
...@@ -11,6 +11,7 @@ extends = ...@@ -11,6 +11,7 @@ extends =
../meson/buildout.cfg ../meson/buildout.cfg
../nodejs/buildout.cfg ../nodejs/buildout.cfg
../ninja/buildout.cfg ../ninja/buildout.cfg
../python3/buildout.cfg
../xorg/buildout.cfg ../xorg/buildout.cfg
[at-spi2-core] [at-spi2-core]
...@@ -21,7 +22,7 @@ md5sum = 3da5fe62a653e49dad1c47f9a46fee56 ...@@ -21,7 +22,7 @@ md5sum = 3da5fe62a653e49dad1c47f9a46fee56
configure-options = configure-options =
--disable-gtk-doc-html --disable-gtk-doc-html
environment = environment =
PATH=${dbus:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${perl-XML-Parser:perl-PATH}:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${dbus:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${perl-XML-Parser:perl-PATH}:${pkgconfig:location}/bin:${xz-utils:location}/bin:${python3:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${dbus:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glib:pkg_config_depends} PKG_CONFIG_PATH=${dbus:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}
CPPFLAGS=-I${inputproto:location}/include -I${xorgproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${libXtst:location}/include -I${xextproto:location}/include -I${xproto:location}/include CPPFLAGS=-I${inputproto:location}/include -I${xorgproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${libXtst:location}/include -I${xextproto:location}/include -I${xproto:location}/include
LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXi:location}/lib -Wl,-rpath=${libXi:location}/lib -L${libXtst:location}/lib -Wl,-rpath=${libXtst:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${glib:location}/lib LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXi:location}/lib -Wl,-rpath=${libXi:location}/lib -L${libXtst:location}/lib -Wl,-rpath=${libXtst:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${glib:location}/lib
...@@ -68,7 +69,7 @@ configure-options = ...@@ -68,7 +69,7 @@ configure-options =
--enable-xcomposite --enable-xcomposite
--enable-xdamage --enable-xdamage
environment = environment =
PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${python3:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
# not taken from pkg-config result... # not taken from pkg-config result...
CPPFLAGS=-I${cairo:location}/include -I${inputproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${xproto:location}/include -I${xorgproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include -I${libX11:location}/include -I${libXinerama:location}/include -I${gdk-pixbuf:location}/include -I${libXrandr:location}/include -I${xfixes:location}/include -I${libXcomposite:location}/include -I${xdamage:location}/include CPPFLAGS=-I${cairo:location}/include -I${inputproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${xproto:location}/include -I${xorgproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include -I${libX11:location}/include -I${libXinerama:location}/include -I${gdk-pixbuf:location}/include -I${libXrandr:location}/include -I${xfixes:location}/include -I${libXcomposite:location}/include -I${xdamage:location}/include
......
...@@ -25,16 +25,21 @@ extends = ...@@ -25,16 +25,21 @@ extends =
[imagemagick] [imagemagick]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
version = 7.0.2-10 version = 7.1.1-20
url = https://www.imagemagick.org/download/releases/ImageMagick-${:version}.tar.xz url = https://www.imagemagick.org/download/releases/ImageMagick-${:version}.tar.xz
md5sum = e1cb23d9c10a8eff228ef30ee281711a md5sum = 4ce5c6854c1f8ab6ce5571a9377b1f2f
pkg_config_depends = ${fontconfig:location}/lib/pkgconfig:${fontconfig:pkg_config_depends}:${lcms2:location}/lib/pkgconfig:${xz-utils:location}/lib/pkgconfig pkg_config_depends = ${fontconfig:location}/lib/pkgconfig:${fontconfig:pkg_config_depends}:${lcms2:location}/lib/pkgconfig:${libtiff:location}/lib/pkgconfig:${xz-utils:location}/lib/pkgconfig
# Change export-filename to export-png for inkscape < 1.0
pre-configure =
sed -i -e 's,--export-filename=,--export-png=,' config/delegates.xml.in
configure-options = configure-options =
--disable-static --disable-static
--without-x --without-x
--with-frozenpaths
--with-magick-plus-plus --with-magick-plus-plus
--disable-openmp --disable-openmp
--disable-opencl --disable-opencl
--without-dmr
--without-dps --without-dps
--without-djvu --without-djvu
--without-fftw --without-fftw
...@@ -43,6 +48,8 @@ configure-options = ...@@ -43,6 +48,8 @@ configure-options =
--with-fontconfig --with-fontconfig
--without-gslib --without-gslib
--without-gvc --without-gvc
--without-heic
--without-jxl
--with-lcms --with-lcms
--without-openjp2 --without-openjp2
--without-lqr --without-lqr
...@@ -50,17 +57,21 @@ configure-options = ...@@ -50,17 +57,21 @@ configure-options =
--without-openexr --without-openexr
--without-pango --without-pango
--without-raqm --without-raqm
--without-raw
--without-rsvg --without-rsvg
--without-webp
--without-wmf --without-wmf
--without-zip
--without-zstd
--with-bzlib=${bzip2:location} --with-bzlib=${bzip2:location}
--with-zlib=${zlib:location} --with-zlib=${zlib:location}
--with-frozenpaths --with-frozenpaths
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/imagemagick-7.0.2-10-no-gsx-gsc-probe.patch#64898455d5175efedd1a7bef9f1f18b5 ${:_profile_base_location_}/imagemagick-7.1.1-20-no-gsx-gsc-probe.patch#98762d1977e5bce2e12954818a671eb9
${:_profile_base_location_}/safe_policy.patch#383c0392de7257c9dff7270973342914 ${:_profile_base_location_}/safe_policy.patch#0226c51e276f397b5900815c17dcf117
environment = environment =
PATH=${freetype:location}/bin:${ghostscript:location}/bin:${inkscape:location}/bin:${libxml2:location}/bin:${patch:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${freetype:location}/bin:${ghostscript:location}/bin:${inkscape:location}/bin:${libxml2:location}/bin:${patch:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${bzip2:location}/include -I${zlib:location}/include -I${jbigkit:location}/include -I${libjpeg:location}/include -I${libtiff:location}/include -I${libtool:location}/include -I${libpng:location}/include -I${jasper:location}/include -I${freetype:location}/include CPPFLAGS=-I${bzip2:location}/include -I${zlib:location}/include -I${jbigkit:location}/include -I${libjpeg:location}/include -I${libtool:location}/include -I${libpng:location}/include -I${jasper:location}/include -I${freetype:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${jbigkit:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib -L${libtiff:location}/lib -Wl,-rpath=${libtiff:location}/lib -L${libtool:location}/lib -Wl,-rpath=${libtool:location}/lib -L${libpng:location}/lib -Wl,-rpath=${libpng:location}/lib -L${jasper:location}/lib -Wl,-rpath=${jasper:location}/lib -L${freetype:location}/lib -Wl,-rpath=${freetype:location}/lib LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${jbigkit:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib -L${libtool:location}/lib -Wl,-rpath=${libtool:location}/lib -L${libpng:location}/lib -Wl,-rpath=${libpng:location}/lib -L${jasper:location}/lib -Wl,-rpath=${jasper:location}/lib -L${freetype:location}/lib -Wl,-rpath=${freetype:location}/lib
--- ImageMagick-7.0.2-10/configure.ac.orig 2016-08-30 11:33:39.160279386 +0200
+++ ImageMagick-7.0.2-10/configure.ac 2016-08-30 11:35:34.753290590 +0200
@@ -3110,7 +3110,7 @@
AC_PATH_PROG(MrSIDDecodeDelegate, "$MrSIDDecodeDelegateDefault", "$MrSIDDecodeDelegateDefault")
AC_PATH_PROG(MVDelegate, "$MVDelegateDefault", "$MVDelegateDefault")
AC_PATH_PROG(PCLDelegate, "$PCLDelegateDefault", "$PCLDelegateDefault")
-AC_PATH_PROGS(PSDelegate, gsx gsc "$PSDelegateDefault", "$PSDelegateDefault")
+AC_PATH_PROGS(PSDelegate, "$PSDelegateDefault", "$PSDelegateDefault")
AC_PATH_PROG(RMDelegate, "$RMDelegateDefault", "$RMDelegateDefault")
AC_PATH_PROG(RSVGDecodeDelegate, "$RSVGDecodeDelegateDefault", "$RSVGDecodeDelegateDefault")
AC_PATH_PROG(SVGDecodeDelegate, "$SVGDecodeDelegateDefault", "$SVGDecodeDelegateDefault")
--- ImageMagick-7.1.1-20/configure.ac.orig 2023-10-08 23:05:13.000000000 +0200
+++ ImageMagick-7.1.1-20/configure.ac 2023-10-10 09:22:13.287693848 +0200
@@ -3317,7 +3317,7 @@
AC_PATH_PROG([MrSIDDecodeDelegate],["$MrSIDDecodeDelegateDefault"],["$MrSIDDecodeDelegateDefault"])
AC_PATH_PROG([MVDelegate],["$MVDelegateDefault"],["$MVDelegateDefault"])
AC_PATH_PROG([PCLDelegate],["$PCLDelegateDefault"],["$PCLDelegateDefault"])
-AC_PATH_PROGS([PSDelegate],[gsx gsc "$PSDelegateDefault"],["$PSDelegateDefault"])
+AC_PATH_PROGS([PSDelegate],["$PSDelegateDefault"],["$PSDelegateDefault"])
AC_PATH_PROG([RMDelegate],["$RMDelegateDefault"],["$RMDelegateDefault"])
AC_PATH_PROG([RSVGDecodeDelegate],["$RSVGDecodeDelegateDefault"],["$RSVGDecodeDelegateDefault"])
AC_PATH_PROG([SVGDecodeDelegate],["$SVGDecodeDelegateDefault"],["$SVGDecodeDelegateDefault"])
--- ImageMagick-7.0.2-10/config/policy.xml.orig 2016-08-30 11:37:29.110253211 +0200 --- ImageMagick-7.1.1-20.orig/config/policy-open.xml 2023-10-08 23:05:13.000000000 +0200
+++ ImageMagick-7.0.2-10/config/policy.xml 2016-08-30 11:40:09.719555899 +0200 +++ ImageMagick-7.1.1-20/config/policy-open.xml 2023-10-10 18:29:06.846344247 +0200
@@ -50,19 +50,28 @@ @@ -84,41 +84,41 @@
-->
<policymap> <policymap>
<!-- <policy domain="resource" name="temporary-path" value="/tmp"/> --> <policy domain="Undefined" rights="none"/>
- <!-- <policy domain="resource" name="memory" value="2GiB"/> --> <!-- Set maximum parallel threads. -->
- <!-- <policy domain="resource" name="map" value="4GiB"/> --> - <!-- <policy domain="resource" name="thread" value="2"/> -->
- <!-- <policy domain="resource" name="width" value="10MP"/> --> + <policy domain="resource" name="thread" value="2"/>
- <!-- <policy domain="resource" name="height" value="10MP"/> --> <!-- Set maximum time in seconds. When this limit is exceeded, an exception
- <!-- <policy domain="resource" name="area" value="1GB"/> --> is thrown and processing stops. -->
- <!-- <policy domain="resource" name="disk" value="16EB"/> --> - <!-- <policy domain="resource" name="time" value="120"/> -->
+ <policy domain="resource" name="time" value="120"/>
<!-- Set maximum number of open pixel cache files. When this limit is
exceeded, any subsequent pixels cached to disk are closed and reopened
on demand. -->
- <!-- <policy domain="resource" name="file" value="768"/> --> - <!-- <policy domain="resource" name="file" value="768"/> -->
- <!-- <policy domain="resource" name="thread" value="4"/> -->
- <!-- <policy domain="resource" name="throttle" value="0"/> -->
- <!-- <policy domain="resource" name="time" value="3600"/> -->
- <!-- <policy domain="system" name="precision" value="6"/> -->
- <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
- <!-- <policy domain="delegate" rights="none" pattern="HTTPS" /> -->
- <!-- <policy domain="path" rights="none" pattern="@*" /> -->
+ <policy domain="resource" name="memory" value="2GiB"/>
+ <policy domain="resource" name="map" value="4GiB"/>
+ <policy domain="resource" name="width" value="10MP"/>
+ <policy domain="resource" name="height" value="10MP"/>
+ <policy domain="resource" name="area" value="1GB"/>
+ <policy domain="resource" name="disk" value="16EB"/>
+ <policy domain="resource" name="file" value="768"/> + <policy domain="resource" name="file" value="768"/>
+ <policy domain="resource" name="thread" value="4"/> <!-- Set maximum amount of memory in bytes to allocate for the pixel cache
+ <policy domain="resource" name="throttle" value="0"/> from the heap. When this limit is exceeded, the image pixels are cached
+ <policy domain="resource" name="time" value="3600"/> to memory-mapped disk. -->
+ <policy domain="system" name="precision" value="6"/> - <!-- <policy domain="resource" name="memory" value="256MiB"/> -->
+ <policy domain="coder" rights="none" pattern="MVG" /> + <policy domain="resource" name="memory" value="256MiB"/>
+ <policy domain="delegate" rights="none" pattern="HTTPS" /> <!-- Set maximum amount of memory map in bytes to allocate for the pixel
+ <policy domain="path" rights="none" pattern="@*" /> cache. When this limit is exceeded, the image pixels are cached to
<policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/> disk. -->
+ <policy domain="coder" rights="none" pattern="EPHEMERAL" /> - <!-- <policy domain="resource" name="map" value="512MiB"/> -->
+ <policy domain="coder" rights="none" pattern="HTTPS" /> + <policy domain="resource" name="map" value="512MiB"/>
+ <policy domain="coder" rights="none" pattern="MSL" /> <!-- Set the maximum width * height of an image that can reside in the pixel
+ <policy domain="coder" rights="none" pattern="MVG" /> cache memory. Images that exceed the area limit are cached to disk. -->
+ <policy domain="coder" rights="none" pattern="PLT" /> - <!-- <policy domain="resource" name="area" value="16KP"/> -->
+ <policy domain="coder" rights="none" pattern="SHOW" /> + <policy domain="resource" name="area" value="16KP"/>
+ <policy domain="coder" rights="none" pattern="TEXT" /> <!-- Set maximum amount of disk space in bytes permitted for use by the pixel
+ <policy domain="coder" rights="none" pattern="URL" /> cache. When this limit is exceeded, the pixel cache is not be created
+ <policy domain="coder" rights="none" pattern="WIN" /> and an exception is thrown. -->
- <!-- <policy domain="resource" name="disk" value="1GiB"/> -->
+ <policy domain="resource" name="disk" value="1GiB"/>
<!-- Set the maximum length of an image sequence. When this limit is
exceeded, an exception is thrown. -->
- <!-- <policy domain="resource" name="list-length" value="32"/> -->
+ <policy domain="resource" name="list-length" value="32"/>
<!-- Set the maximum width of an image. When this limit is exceeded, an
exception is thrown. -->
- <!-- <policy domain="resource" name="width" value="8KP"/> -->
+ <policy domain="resource" name="width" value="8KP"/>
<!-- Set the maximum height of an image. When this limit is exceeded, an
exception is thrown. -->
- <!-- <policy domain="resource" name="height" value="8KP"/> -->
+ <policy domain="resource" name="height" value="8KP"/>
<!-- Periodically yield the CPU for at least the time specified in
milliseconds. -->
- <!-- <policy domain="resource" name="throttle" value="2"/> -->
+ <policy domain="resource" name="throttle" value="2"/>
<!-- Do not create temporary files in the default shared directories, instead
specify a private area to store only ImageMagick temporary files. -->
<!-- <policy domain="resource" name="temporary-path" value="/magick/tmp/"/> -->
@@ -138,7 +138,7 @@
<!-- don't read sensitive paths. -->
<!-- <policy domain="path" rights="none" pattern="/etc/*"/> -->
<!-- Indirect reads are not permitted. -->
- <!-- <policy domain="path" rights="none" pattern="@*"/> -->
+ <policy domain="path" rights="none" pattern="@*"/>
<!-- These image types are security risks on read, but write is fine -->
<!-- <policy domain="module" rights="write" pattern="{MSL,MVG,PS,SVG,URL,XPS}"/> -->
<!-- This policy sets the number of times to replace content of certain
@@ -150,4 +150,5 @@
<!-- Set the maximum amount of memory in bytes that are permitted for
allocation requests. -->
<!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
+ <policy domain="coder" rights="none" pattern="{EPHEMERAL,HTTPS,MSL,MVG,PLT,SHOW,TEXT,URL,WIN}" />
</policymap> </policymap>
...@@ -20,10 +20,11 @@ extends = ...@@ -20,10 +20,11 @@ extends =
../patch/buildout.cfg ../patch/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../python3/buildout.cfg
../popt/buildout.cfg ../popt/buildout.cfg
../xorg/buildout.cfg ../xorg/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
# Inkscape < 1.1 only supports python2 and old gcc # Inkscape < 1.1 only supports old gcc and needs python2 (and python3)
../python-2.7/buildout.cfg ../python-2.7/buildout.cfg
../defaults.cfg ../defaults.cfg
...@@ -58,7 +59,7 @@ configure-options = ...@@ -58,7 +59,7 @@ configure-options =
-DWITH_LIBVISIO=OFF -DWITH_LIBVISIO=OFF
-DWITH_LIBWPG=OFF -DWITH_LIBWPG=OFF
environment = environment =
PATH=${cmake:location}/bin:${freetype:location}/bin:${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${libxml2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s PATH=${cmake:location}/bin:${freetype:location}/bin:${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${libxml2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${python3:location}/bin:${python2.7:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include
CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib
......
# jsl - command line javascript lint
# http://javascriptlint.com/
[buildout]
parts = jsl
[jsl]
recipe = slapos.recipe.build
url = https://src.fedoraproject.org/repo/pkgs/rpms/jsl/jsl-0.3.0-src.tar.gz/${:md5sum}/jsl-0.3.0-src.tar.gz
md5sum = 2b94ffa4fab07acabe0c5e73cd49bcdf
init =
import os
# Bypass slapos gcc if any because slapos ld can't find -lm (why?).
self.path = os.environ['PATH']
install =
import os
import sys
url = options['url']
md5sum = options['md5sum']
extract_dir = self.extract(self.download(url, md5sum))
workdir = guessworkdir(extract_dir)
call(('make', '-f', 'Makefile.ref', '-j1', 'DIST=' + location, 'all', 'export'),
cwd=os.path.join(workdir, 'src'), env=dict(os.environ, PATH=self.path))
...@@ -22,7 +22,7 @@ configure-options = ...@@ -22,7 +22,7 @@ configure-options =
--disable-webp --disable-webp
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/debian_4.2.0-1+deb11u3.patch#d4396255ca214694501f4a44e8e685c6 ${:_profile_base_location_}/debian_4.2.0-1+deb11u4.patch#88940ccaedc6337b8ee1577fbffb9e2e
environment = environment =
CPPFLAGS=-I${libjpeg:location}/include -I${jbigkit:location}/include -I${zlib:location}/include CPPFLAGS=-I${libjpeg:location}/include -I${jbigkit:location}/include -I${zlib:location}/include
LDFLAGS=-L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib -L${jbigkit:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib -L${jbigkit:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
......
...@@ -2352,3 +2352,285 @@ Index: tiff-4.2.0/tools/tiffcrop.c ...@@ -2352,3 +2352,285 @@ Index: tiff-4.2.0/tools/tiffcrop.c
if (prev_cropsize < cropsize) if (prev_cropsize < cropsize)
{ {
next_buff = _TIFFrealloc(crop_buff, cropsize + NUM_BUFF_OVERSIZE_BYTES); next_buff = _TIFFrealloc(crop_buff, cropsize + NUM_BUFF_OVERSIZE_BYTES);
From: Markus Koschany <apo@debian.org>
Date: Tue, 21 Feb 2023 14:26:43 +0100
Subject: CVE-2023-0795
This is also the fix for CVE-2023-0796, CVE-2023-0797, CVE-2023-0798,
CVE-2023-0799.
Bug-Debian: https://bugs.debian.org/1031632
Origin: https://gitlab.com/libtiff/libtiff/-/commit/afaabc3e50d4e5d80a94143f7e3c997e7e410f68
---
tools/tiffcrop.c | 51 ++++++++++++++++++++++++++++++---------------------
1 file changed, 30 insertions(+), 21 deletions(-)
Index: tiff-4.2.0/tools/tiffcrop.c
===================================================================
--- tiff-4.2.0.orig/tools/tiffcrop.c
+++ tiff-4.2.0/tools/tiffcrop.c
@@ -278,7 +278,6 @@ struct region {
uint32 width; /* width in pixels */
uint32 length; /* length in pixels */
uint32 buffsize; /* size of buffer needed to hold the cropped region */
- unsigned char *buffptr; /* address of start of the region */
};
/* Cropping parameters from command line and image data
@@ -533,7 +532,7 @@ static int rotateContigSamples24bits(uin
static int rotateContigSamples32bits(uint16, uint16, uint16, uint32,
uint32, uint32, uint8 *, uint8 *);
static int rotateImage(uint16, struct image_data *, uint32 *, uint32 *,
- unsigned char **);
+ unsigned char **, int);
static int mirrorImage(uint16, uint16, uint16, uint32, uint32,
unsigned char *);
static int invertImage(uint16, uint16, uint16, uint32, uint32,
@@ -5166,7 +5165,6 @@ initCropMasks (struct crop_mask *cps)
cps->regionlist[i].width = 0;
cps->regionlist[i].length = 0;
cps->regionlist[i].buffsize = 0;
- cps->regionlist[i].buffptr = NULL;
cps->zonelist[i].position = 0;
cps->zonelist[i].total = 0;
}
@@ -6412,8 +6410,13 @@ static int correct_orientation(struct i
image->adjustments & ROTATE_ANY);
return (-1);
}
-
- if (rotateImage(rotation, image, &image->width, &image->length, work_buff_ptr))
+
+ /* Dummy variable in order not to switch two times the
+ * image->width,->length within rotateImage(),
+ * but switch xres, yres there. */
+ uint32_t width = image->width;
+ uint32_t length = image->length;
+ if (rotateImage(rotation, image, &width, &length, work_buff_ptr, TRUE))
{
TIFFError ("correct_orientation", "Unable to rotate image");
return (-1);
@@ -6481,7 +6484,6 @@ extractCompositeRegions(struct image_dat
/* These should not be needed for composite images */
crop->regionlist[i].width = crop_width;
crop->regionlist[i].length = crop_length;
- crop->regionlist[i].buffptr = crop_buff;
src_rowsize = ((img_width * bps * spp) + 7) / 8;
dst_rowsize = (((crop_width * bps * count) + 7) / 8);
@@ -6718,7 +6720,6 @@ extractSeparateRegion(struct image_data
crop->regionlist[region].width = crop_width;
crop->regionlist[region].length = crop_length;
- crop->regionlist[region].buffptr = crop_buff;
src = read_buff;
dst = crop_buff;
@@ -7596,7 +7597,7 @@ processCropSelections(struct image_data
if (crop->crop_mode & CROP_ROTATE) /* rotate should be last as it can reallocate the buffer */
{
if (rotateImage(crop->rotation, image, &crop->combined_width,
- &crop->combined_length, &crop_buff))
+ &crop->combined_length, &crop_buff, FALSE))
{
TIFFError("processCropSelections",
"Failed to rotate composite regions by %d degrees", crop->rotation);
@@ -7702,7 +7703,7 @@ processCropSelections(struct image_data
if (crop->crop_mode & CROP_ROTATE) /* rotate should be last as it can reallocate the buffer */
{
if (rotateImage(crop->rotation, image, &crop->regionlist[i].width,
- &crop->regionlist[i].length, &crop_buff))
+ &crop->regionlist[i].length, &crop_buff, FALSE))
{
TIFFError("processCropSelections",
"Failed to rotate crop region by %d degrees", crop->rotation);
@@ -7834,7 +7835,7 @@ createCroppedImage(struct image_data *im
if (crop->crop_mode & CROP_ROTATE) /* rotate should be last as it can reallocate the buffer */
{
if (rotateImage(crop->rotation, image, &crop->combined_width,
- &crop->combined_length, crop_buff_ptr))
+ &crop->combined_length, crop_buff_ptr, TRUE))
{
TIFFError("createCroppedImage",
"Failed to rotate image or cropped selection by %d degrees", crop->rotation);
@@ -8497,7 +8498,7 @@ rotateContigSamples32bits(uint16 rotatio
/* Rotate an image by a multiple of 90 degrees clockwise */
static int
rotateImage(uint16 rotation, struct image_data *image, uint32 *img_width,
- uint32 *img_length, unsigned char **ibuff_ptr)
+ uint32 *img_length, unsigned char **ibuff_ptr, int rot_image_params)
{
int shift_width;
uint32 bytes_per_pixel, bytes_per_sample;
@@ -8688,11 +8689,15 @@ rotateImage(uint16 rotation, struct imag
*img_width = length;
*img_length = width;
- image->width = length;
- image->length = width;
- res_temp = image->xres;
- image->xres = image->yres;
- image->yres = res_temp;
+ /* Only toggle image parameters if whole input image is rotated. */
+ if (rot_image_params)
+ {
+ image->width = length;
+ image->length = width;
+ res_temp = image->xres;
+ image->xres = image->yres;
+ image->yres = res_temp;
+ }
break;
case 270: if ((bps % 8) == 0) /* byte aligned data */
@@ -8765,11 +8770,15 @@ rotateImage(uint16 rotation, struct imag
*img_width = length;
*img_length = width;
- image->width = length;
- image->length = width;
- res_temp = image->xres;
- image->xres = image->yres;
- image->yres = res_temp;
+ /* Only toggle image parameters if whole input image is rotated. */
+ if (rot_image_params)
+ {
+ image->width = length;
+ image->length = width;
+ res_temp = image->xres;
+ image->xres = image->yres;
+ image->yres = res_temp;
+ }
break;
default:
break;
From: Markus Koschany <apo@debian.org>
Date: Tue, 21 Feb 2023 14:39:52 +0100
Subject: CVE-2023-0800
This is also the fix for CVE-2023-0801, CVE-2023-0802, CVE-2023-0803,
CVE-2023-0804.
Bug-Debian: https://bugs.debian.org/1031632
Origin: https://gitlab.com/libtiff/libtiff/-/commit/33aee1275d9d1384791d2206776eb8152d397f00
---
tools/tiffcrop.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 69 insertions(+), 4 deletions(-)
Index: tiff-4.2.0/tools/tiffcrop.c
===================================================================
--- tiff-4.2.0.orig/tools/tiffcrop.c
+++ tiff-4.2.0/tools/tiffcrop.c
@@ -5304,18 +5304,40 @@ computeInputPixelOffsets(struct crop_mas
crop->regionlist[i].buffsize = buffsize;
crop->bufftotal += buffsize;
+
+ /* For composite images with more than one region, the
+ * combined_length or combined_width always needs to be equal,
+ * respectively.
+ * Otherwise, even the first section/region copy
+ * action might cause buffer overrun. */
if (crop->img_mode == COMPOSITE_IMAGES)
{
switch (crop->edge_ref)
{
case EDGE_LEFT:
case EDGE_RIGHT:
+ if (i > 0 && zlength != crop->combined_length)
+ {
+ TIFFError(
+ "computeInputPixelOffsets",
+ "Only equal length regions can be combined for "
+ "-E left or right");
+ return (-1);
+ }
crop->combined_length = zlength;
crop->combined_width += zwidth;
break;
case EDGE_BOTTOM:
case EDGE_TOP: /* width from left, length from top */
default:
+ if (i > 0 && zwidth != crop->combined_width)
+ {
+ TIFFError("computeInputPixelOffsets",
+ "Only equal width regions can be "
+ "combined for -E "
+ "top or bottom");
+ return (-1);
+ }
crop->combined_width = zwidth;
crop->combined_length += zlength;
break;
@@ -6470,6 +6492,47 @@ extractCompositeRegions(struct image_dat
crop->combined_width = 0;
crop->combined_length = 0;
+ /* If there is more than one region, check beforehand whether all the width
+ * and length values of the regions are the same, respectively. */
+ switch (crop->edge_ref)
+ {
+ default:
+ case EDGE_TOP:
+ case EDGE_BOTTOM:
+ for (i = 1; i < crop->selections; i++)
+ {
+ uint32_t crop_width0 =
+ crop->regionlist[i - 1].x2 - crop->regionlist[i - 1].x1 + 1;
+ uint32_t crop_width1 =
+ crop->regionlist[i].x2 - crop->regionlist[i].x1 + 1;
+ if (crop_width0 != crop_width1)
+ {
+ TIFFError("extractCompositeRegions",
+ "Only equal width regions can be combined for -E "
+ "top or bottom");
+ return (1);
+ }
+ }
+ break;
+ case EDGE_LEFT:
+ case EDGE_RIGHT:
+ for (i = 1; i < crop->selections; i++)
+ {
+ uint32_t crop_length0 =
+ crop->regionlist[i - 1].y2 - crop->regionlist[i - 1].y1 + 1;
+ uint32_t crop_length1 =
+ crop->regionlist[i].y2 - crop->regionlist[i].y1 + 1;
+ if (crop_length0 != crop_length1)
+ {
+ TIFFError("extractCompositeRegions",
+ "Only equal length regions can be combined for "
+ "-E left or right");
+ return (1);
+ }
+ }
+ }
+
+
for (i = 0; i < crop->selections; i++)
{
/* rows, columns, width, length are expressed in pixels */
@@ -6493,8 +6556,9 @@ extractCompositeRegions(struct image_dat
default:
case EDGE_TOP:
case EDGE_BOTTOM:
- if ((i > 0) && (crop_width != crop->regionlist[i - 1].width))
- {
+ if ((crop->selections > i + 1) &&
+ (crop_width != crop->regionlist[i + 1].width))
+ {
TIFFError ("extractCompositeRegions",
"Only equal width regions can be combined for -E top or bottom");
return (1);
@@ -6574,8 +6638,9 @@ extractCompositeRegions(struct image_dat
break;
case EDGE_LEFT: /* splice the pieces of each row together, side by side */
case EDGE_RIGHT:
- if ((i > 0) && (crop_length != crop->regionlist[i - 1].length))
- {
+ if ((crop->selections > i + 1) &&
+ (crop_length != crop->regionlist[i + 1].length))
+ {
TIFFError ("extractCompositeRegions",
"Only equal length regions can be combined for -E left or right");
return (1);
[buildout]
parts = lynx
[lynx]
recipe = slapos.recipe.cmmi
md5sum = 124253e635f7c76bdffc47b9d036c812
url = http://lynx.isc.org/lynx2.8.7/lynx2.8.7.tar.gz
...@@ -8,8 +8,8 @@ extends = ...@@ -8,8 +8,8 @@ extends =
[ngtcp2] [ngtcp2]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/ngtcp2/ngtcp2/archive/refs/tags/v0.13.1.tar.gz url = https://github.com/ngtcp2/ngtcp2/archive/refs/tags/v0.19.1.tar.gz
md5sum = 52a58aadbaf195cebff0289adda0e8db md5sum = 52da88163ad1929496f7ed13943c03b4
pre-configure = pre-configure =
autoreconf -fisv -I ${libtool:location}/share/aclocal -I ${pkgconfig:location}/share/aclocal autoreconf -fisv -I ${libtool:location}/share/aclocal -I ${pkgconfig:location}/share/aclocal
automake automake
......
...@@ -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
......
[buildout]
parts = nullmailer
[nullmailer]
recipe = slapos.recipe.cmmi
url = http://untroubled.org/nullmailer/nullmailer-1.05.tar.gz
md5sum = 35124cc05f893efba1310e2ec7c876ff
...@@ -5,6 +5,7 @@ parts = open62541 ...@@ -5,6 +5,7 @@ parts = open62541
extends = extends =
../cmake/buildout.cfg ../cmake/buildout.cfg
../patch/buildout.cfg ../patch/buildout.cfg
../python3/buildout.cfg
../defaults.cfg ../defaults.cfg
[gcc] [gcc]
...@@ -30,4 +31,4 @@ configure-options = ...@@ -30,4 +31,4 @@ configure-options =
post-install = post-install =
cp src/pubsub/*.h deps/open62541_queue.h @@LOCATION@@/include cp src/pubsub/*.h deps/open62541_queue.h @@LOCATION@@/include
environement = environement =
PATH=${patch:location}/bin:%(PATH)s PATH=${python3:location}/bin:${patch:location}/bin:%(PATH)s
...@@ -4,6 +4,9 @@ extends = ...@@ -4,6 +4,9 @@ extends =
../java-jdk/buildout.cfg ../java-jdk/buildout.cfg
../cmake/buildout.cfg ../cmake/buildout.cfg
../libjpeg/buildout.cfg ../libjpeg/buildout.cfg
../python-2.7/buildout.cfg
../python3/buildout.cfg
../defaults.cfg
parts = parts =
opencv opencv
...@@ -57,7 +60,7 @@ post-install = ...@@ -57,7 +60,7 @@ post-install =
cp build/lib/libopencv_java430.so @@LOCATION@@/lib cp build/lib/libopencv_java430.so @@LOCATION@@/lib
cp build/bin/opencv-430.jar @@LOCATION@@/bin cp build/bin/opencv-430.jar @@LOCATION@@/bin
environment = environment =
PATH=${cmake:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${python3:location}/bin/:${python2.7:location}/bin/:${cmake:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${zlib:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig:${libjpeg-turbo2:location}/lib/pkgconfig PKG_CONFIG_PATH=${zlib:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig:${libjpeg-turbo2:location}/lib/pkgconfig
JAVA_HOME=${java-jdk:location} JAVA_HOME=${java-jdk:location}
JRE_HOME=${java-re:location} JRE_HOME=${java-re:location}
......
...@@ -17,8 +17,8 @@ parts = ...@@ -17,8 +17,8 @@ parts =
[openssl] [openssl]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://www.openssl.org/source/openssl-1.1.1v.tar.gz url = https://www.openssl.org/source/openssl-1.1.1w.tar.gz
md5sum = 9edcfdd9b96523df82b312c404f4b169 md5sum = 3f76825f195e52d4b10c70040681a275
location = @@LOCATION@@ location = @@LOCATION@@
# 'prefix' option to override --openssldir/--prefix (which is useful # 'prefix' option to override --openssldir/--prefix (which is useful
# when combined with DESTDIR). Used by slapos.package.git/obs # when combined with DESTDIR). Used by slapos.package.git/obs
...@@ -48,8 +48,10 @@ environment = ...@@ -48,8 +48,10 @@ environment =
[openssl-quictls] [openssl-quictls]
<= openssl <= openssl
url = https://github.com/quictls/openssl/archive/refs/tags/OpenSSL_1_1_1v-quic1.tar.gz # XXX tag missing for 1.1.1w
md5sum = 4b0e4a81590644a027b78a54c26a75e2 # url = https://github.com/quictls/openssl/archive/refs/tags/OpenSSL_1_1_1w-quic1.tar.gz
url = https://github.com/quictls/openssl/archive/612d8e44d687e4b71c4724319d7aa27a733bcbca.tar.gz
md5sum =4a06f8b195e817c8a0d94ebdbc7c7bb7
[openssl-output] [openssl-output]
# Shared binary location to ease migration # Shared binary location to ease migration
......
[buildout]
parts =
pole
[pole]
recipe = slapos.recipe.cmmi
location = ${buildout:parts-directory}/${:_buildout_section_name_}
url = https://bitbucket.org/dimin/pole/get/c15e513.tar.gz
md5sum = 691a5d80863df868804c5a9defa0c8a6
configure-command = true
make-binary =
make-options =
make-targets = true
post-install =
set -x
mkdir bin
cd pole
g++ -o ../bin/poledump pole.cpp poledump.cpp
mv ../bin '${:location}'
[buildout]
parts =
pytracemalloc
[pytracemalloc]
recipe = zc.recipe.egg:custom
find-links = https://github.com/vstinner/pytracemalloc/archive/refs/tags/pytracemalloc-1.2.tar.gz
egg = pytracemalloc
...@@ -3,8 +3,8 @@ parts = ...@@ -3,8 +3,8 @@ parts =
rpm2cpio rpm2cpio
[rpm2cpio] [rpm2cpio]
# https://github.com/ruda/rpm2cpio # https://github.com/yuseitahara/rpm2cpio
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
shared = true shared = true
url = https://raw.githubusercontent.com/ruda/rpm2cpio/5afad4b65e4661a771db6f728abefe2c1e84b9ae/rpm2cpio.py url = https://raw.githubusercontent.com/yuseitahara/rpm2cpio/68501e007adefc65a147a805d214082ee09b460b/rpm2cpio.py
md5sum = 1cb52f9030304c2b7625657b2ef2379e md5sum = 744f200d8bd1652791638133ff91b40f
[buildout]
parts = sheepstrike
[sheepstrike]
recipe = slapos.recipe.cmmi
url = https://gitorious.org/sheepstrike/sheepstrike/archive-tarball/0.1
md5sum = 2c5009eb7c32d7ba5d270d0b88d7e5ab
prefix = ${buildout:parts-directory}/${:_buildout_section_name_}
configure-options = --prefix=${:prefix}
configure-command =
./bootstrap
./configure
...@@ -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 file is automatically generated from generate_download_plugins_cfg.py # This file is automatically generated from generate_download_plugins_cfg.py
# Do not edit directly. # Do not edit directly.
[theia-download-plugins] [theia-download-plugins]
urls = vscode-bat https://open-vsx.org/api/vscode/bat/1.66.2/file/vscode.bat-1.66.2.vsix 540504d0b5530c6ecf8cabaf70a4909e urls = vscode-bat https://open-vsx.org/api/vscode/bat/1.79.0/file/vscode.bat-1.79.0.vsix d49865aeb78bcdfe67735b0e7b844967
vscode-clojure https://open-vsx.org/api/vscode/clojure/1.66.2/file/vscode.clojure-1.66.2.vsix 1a0cf0519c181e4ddc55261a79e97692 vscode-clojure https://open-vsx.org/api/vscode/clojure/1.79.0/file/vscode.clojure-1.79.0.vsix 424d27f2bbc0e94a89346cc17229907b
vscode-coffeescript https://open-vsx.org/api/vscode/coffeescript/1.66.2/file/vscode.coffeescript-1.66.2.vsix 0ecf83a2edfb8e3024c68f4628ce7788 vscode-coffeescript https://open-vsx.org/api/vscode/coffeescript/1.79.0/file/vscode.coffeescript-1.79.0.vsix 0c21b5318a225f73a0c3f83508257018
vscode-configuration-editing https://open-vsx.org/api/vscode/configuration-editing/1.66.2/file/vscode.configuration-editing-1.66.2.vsix d4e21074c10474b8b9cda7fb383a0745 vscode-configuration-editing https://open-vsx.org/api/vscode/configuration-editing/1.79.0/file/vscode.configuration-editing-1.79.0.vsix 21aace66ccb3f663a6e09be6cae1a897
vscode-cpp https://open-vsx.org/api/vscode/cpp/1.66.2/file/vscode.cpp-1.66.2.vsix 80c917ff7960a81cb4b22646722ae767 vscode-cpp https://open-vsx.org/api/vscode/cpp/1.79.0/file/vscode.cpp-1.79.0.vsix dd7feaaf9a1b8a37be7c988d6c0c1e7c
vscode-csharp https://open-vsx.org/api/vscode/csharp/1.66.2/file/vscode.csharp-1.66.2.vsix cb94f7de9da0713eb1f34771174fbdb1 vscode-csharp https://open-vsx.org/api/vscode/csharp/1.79.0/file/vscode.csharp-1.79.0.vsix cc5f9ef4eb36ad3e97aa4cf7d7d4dbdb
vscode-css https://open-vsx.org/api/vscode/css/1.66.2/file/vscode.css-1.66.2.vsix 4187fc5441bfc224c0f283c5daf8607a vscode-css https://open-vsx.org/api/vscode/css/1.79.0/file/vscode.css-1.79.0.vsix cd06d406d85fc8fc326aa86988793930
vscode-css-language-features https://open-vsx.org/api/vscode/css-language-features/1.66.2/file/vscode.css-language-features-1.66.2.vsix e459bb7de69a55811348d19fec3a9ba8 vscode-css-language-features https://open-vsx.org/api/vscode/css-language-features/1.79.0/file/vscode.css-language-features-1.79.0.vsix a2f295ac691b177143e53374adda47ce
vscode-debug-auto-launch https://open-vsx.org/api/vscode/debug-auto-launch/1.66.2/file/vscode.debug-auto-launch-1.66.2.vsix be76de96906fb4d6c9c79e2c7b4cd31d vscode-debug-auto-launch https://open-vsx.org/api/vscode/debug-auto-launch/1.79.0/file/vscode.debug-auto-launch-1.79.0.vsix ebd2732167848c478afee16182d9ace3
vscode-docker https://open-vsx.org/api/vscode/docker/1.66.2/file/vscode.docker-1.66.2.vsix fa22b93aabfb76b99e1d92a7f7675fc7 vscode-docker https://open-vsx.org/api/vscode/docker/1.79.0/file/vscode.docker-1.79.0.vsix 53bebe56c084ba576b77457c2b303e85
vscode-emmet https://open-vsx.org/api/vscode/emmet/1.66.2/file/vscode.emmet-1.66.2.vsix 790e2c72aa1995777705bf2758bff193 vscode-emmet https://open-vsx.org/api/vscode/emmet/1.79.0/file/vscode.emmet-1.79.0.vsix f16eb8dec4241b6a724e95ae2a47657e
vscode-fsharp https://open-vsx.org/api/vscode/fsharp/1.66.2/file/vscode.fsharp-1.66.2.vsix 585930892ebed4406588ae6ec4e6897c vscode-fsharp https://open-vsx.org/api/vscode/fsharp/1.79.0/file/vscode.fsharp-1.79.0.vsix 50ad764f6e0fe708c9cbbc0e4540e58f
vscode-git-base https://open-vsx.org/api/vscode/git-base/1.66.2/file/vscode.git-base-1.66.2.vsix 0bbc531fb4ce7a59530a6ff3bd0f89e3 vscode-git-base https://open-vsx.org/api/vscode/git-base/1.79.0/file/vscode.git-base-1.79.0.vsix bd2b5b8d8b2ea32bd59fff16660afe5c
vscode-git https://open-vsx.org/api/vscode/git/1.66.2/file/vscode.git-1.66.2.vsix 2517abc1280b78dd0920df68a24403e9 vscode-git https://open-vsx.org/api/vscode/git/1.79.0/file/vscode.git-1.79.0.vsix 104fb55121dbb7878de5440a03a02def
vscode-go https://open-vsx.org/api/vscode/go/1.66.2/file/vscode.go-1.66.2.vsix 08319ce5c55825e72236d3634a4011dd vscode-go https://open-vsx.org/api/vscode/go/1.79.0/file/vscode.go-1.79.0.vsix f22802fd24ee25632e12037dc2a458fb
vscode-groovy https://open-vsx.org/api/vscode/groovy/1.66.2/file/vscode.groovy-1.66.2.vsix c7aaf271a81b452a2df1a9e68f0d838f vscode-groovy https://open-vsx.org/api/vscode/groovy/1.79.0/file/vscode.groovy-1.79.0.vsix 502858446e243a412a153c5670637f54
vscode-grunt https://open-vsx.org/api/vscode/grunt/1.66.2/file/vscode.grunt-1.66.2.vsix d9adefbf6d337c161e6acefd107006b2 vscode-grunt https://open-vsx.org/api/vscode/grunt/1.79.0/file/vscode.grunt-1.79.0.vsix b7aa5a6c6ae91092bff7a4c692ab7455
vscode-gulp https://open-vsx.org/api/vscode/gulp/1.66.2/file/vscode.gulp-1.66.2.vsix 2513faad0e0e779a72e5f5bcb343fad0 vscode-gulp https://open-vsx.org/api/vscode/gulp/1.79.0/file/vscode.gulp-1.79.0.vsix f933cdea987186c165c49fcac3c7e469
vscode-handlebars https://open-vsx.org/api/vscode/handlebars/1.66.2/file/vscode.handlebars-1.66.2.vsix e63d41595eea342b3b850a25bcccda56 vscode-handlebars https://open-vsx.org/api/vscode/handlebars/1.79.0/file/vscode.handlebars-1.79.0.vsix 4edbf9b6d2e742ed5fc6b9ab0f359fb5
vscode-hlsl https://open-vsx.org/api/vscode/hlsl/1.66.2/file/vscode.hlsl-1.66.2.vsix d557453a4a7ffb483d9c54862b430e35 vscode-hlsl https://open-vsx.org/api/vscode/hlsl/1.79.0/file/vscode.hlsl-1.79.0.vsix 83b9722e379d3c6038c8d12a0868a249
vscode-html https://open-vsx.org/api/vscode/html/1.66.2/file/vscode.html-1.66.2.vsix 157e923f61532509839a3a84e3b63137 vscode-html https://open-vsx.org/api/vscode/html/1.79.0/file/vscode.html-1.79.0.vsix f5136ce52ae92c42fac94bf140e28a98
vscode-html-language-features https://open-vsx.org/api/vscode/html-language-features/1.66.2/file/vscode.html-language-features-1.66.2.vsix fc5b68334d67b2158c3469d5baad8977 vscode-html-language-features https://open-vsx.org/api/vscode/html-language-features/1.79.0/file/vscode.html-language-features-1.79.0.vsix 8f2a564b51dcddfbb6875db979381670
vscode-ini https://open-vsx.org/api/vscode/ini/1.66.2/file/vscode.ini-1.66.2.vsix e98e0bdd614ce183d58bf51c6db8f61b vscode-ini https://open-vsx.org/api/vscode/ini/1.79.0/file/vscode.ini-1.79.0.vsix 5fc392d67c6d0138daffca3ad2c36236
vscode-jake https://open-vsx.org/api/vscode/jake/1.66.2/file/vscode.jake-1.66.2.vsix 36494288f9c33c5b47cbfa7463f10806 vscode-jake https://open-vsx.org/api/vscode/jake/1.79.0/file/vscode.jake-1.79.0.vsix 74a701e423bd5ffa4c29b4a7818e1184
vscode-java https://open-vsx.org/api/vscode/java/1.66.2/file/vscode.java-1.66.2.vsix f03386d3a89b09320107b65eabede50e vscode-java https://open-vsx.org/api/vscode/java/1.79.0/file/vscode.java-1.79.0.vsix d7aec89604a99b1e698831beb96cd2af
vscode-javascript https://open-vsx.org/api/vscode/javascript/1.66.2/file/vscode.javascript-1.66.2.vsix 7234c81762b73036f1c9d19b81850727 vscode-javascript https://open-vsx.org/api/vscode/javascript/1.79.0/file/vscode.javascript-1.79.0.vsix 7cb52d5416bd3f53d829c4201e0549c7
ms-vscode-js-debug https://open-vsx.org/api/ms-vscode/js-debug/1.51.0/file/ms-vscode.js-debug-1.51.0.vsix db7f18b5bd883018d2b9150e20098b5f ms-vscode-js-debug https://open-vsx.org/api/ms-vscode/js-debug/1.51.0/file/ms-vscode.js-debug-1.51.0.vsix db7f18b5bd883018d2b9150e20098b5f
vscode-json https://open-vsx.org/api/vscode/json/1.66.2/file/vscode.json-1.66.2.vsix 69a31f775f37088a2380e158b31beb80 vscode-json https://open-vsx.org/api/vscode/json/1.79.0/file/vscode.json-1.79.0.vsix d39c914721bf90198df6b1a71988db71
vscode-json-language-features https://open-vsx.org/api/vscode/json-language-features/1.66.2/file/vscode.json-language-features-1.66.2.vsix d230d87316445dbd133b398777515e81 vscode-json-language-features https://open-vsx.org/api/vscode/json-language-features/1.79.0/file/vscode.json-language-features-1.79.0.vsix 42c58718809786f875cba887136a2572
vscode-less https://open-vsx.org/api/vscode/less/1.66.2/file/vscode.less-1.66.2.vsix cd9db3928a36605dee67007670620dc9 vscode-less https://open-vsx.org/api/vscode/less/1.79.0/file/vscode.less-1.79.0.vsix 3e123b6bfef61b7844777c35a8c5ce5a
vscode-log https://open-vsx.org/api/vscode/log/1.66.2/file/vscode.log-1.66.2.vsix 009017d495d54dc3170fd2e457bca377 vscode-log https://open-vsx.org/api/vscode/log/1.79.0/file/vscode.log-1.79.0.vsix 293b56e33be3624f32aab2e5d95a4a99
vscode-lua https://open-vsx.org/api/vscode/lua/1.66.2/file/vscode.lua-1.66.2.vsix 9dc3f27215ec54eb5826be1028fb9dea vscode-lua https://open-vsx.org/api/vscode/lua/1.79.0/file/vscode.lua-1.79.0.vsix 275e1f16abceb62abbe843e0b194fb2b
vscode-make https://open-vsx.org/api/vscode/make/1.66.2/file/vscode.make-1.66.2.vsix 40e96e4b77a76d5a4d3bb3003213c984 vscode-make https://open-vsx.org/api/vscode/make/1.79.0/file/vscode.make-1.79.0.vsix f310fc557a2c39b4a2b86223c0482088
vscode-markdown https://open-vsx.org/api/vscode/markdown/1.66.2/file/vscode.markdown-1.66.2.vsix 1e5255ea17d052b923adb5c9c348daf6 vscode-markdown https://open-vsx.org/api/vscode/markdown/1.79.0/file/vscode.markdown-1.79.0.vsix d0accec77a49fdf051483c8b7d983880
vscode-markdown-language-features https://open-vsx.org/api/vscode/markdown-language-features/1.64.2/file/vscode.markdown-language-features-1.64.2.vsix 965b7d0fed9ae49df6dd0c923da7ad7e vscode-markdown-language-features https://open-vsx.org/api/vscode/markdown-language-features/1.79.0/file/vscode.markdown-language-features-1.79.0.vsix f1e73badf8c26a26fa0084c8b0f3e21b
vscode-merge-conflict https://open-vsx.org/api/vscode/merge-conflict/1.66.2/file/vscode.merge-conflict-1.66.2.vsix e15004f78d0d543e99b229997c5b30c1 vscode-merge-conflict https://open-vsx.org/api/vscode/merge-conflict/1.79.0/file/vscode.merge-conflict-1.79.0.vsix f4e1006cf1993db062fd53b02c7aa14d
vscode-npm https://open-vsx.org/api/vscode/npm/1.66.2/file/vscode.npm-1.66.2.vsix f0b5566477b44dfbbb6c51442c0156c3 vscode-npm https://open-vsx.org/api/vscode/npm/1.79.0/file/vscode.npm-1.79.0.vsix 6711c2c636afb24cad1163a4de2420ef
ms-vscode-node-debug https://open-vsx.org/api/ms-vscode/node-debug/1.45.0/file/ms-vscode.node-debug-1.45.0.vsix 676769e9901f5f51ed6a21d7c6a831fb ms-vscode-node-debug https://open-vsx.org/api/ms-vscode/node-debug/1.45.0/file/ms-vscode.node-debug-1.45.0.vsix 676769e9901f5f51ed6a21d7c6a831fb
ms-vscode-node-debug2 https://open-vsx.org/api/ms-vscode/node-debug2/1.43.0/file/ms-vscode.node-debug2-1.43.0.vsix 4c78ac1f3c4d753d005d72a68c13f7c7 ms-vscode-node-debug2 https://open-vsx.org/api/ms-vscode/node-debug2/1.43.0/file/ms-vscode.node-debug2-1.43.0.vsix 4c78ac1f3c4d753d005d72a68c13f7c7
vscode-objective-c https://open-vsx.org/api/vscode/objective-c/1.66.2/file/vscode.objective-c-1.66.2.vsix aada3a650493f3676e2fe3067c21da00 vscode-objective-c https://open-vsx.org/api/vscode/objective-c/1.79.0/file/vscode.objective-c-1.79.0.vsix a277a85e4780135d7e70ad59fe30ba79
vscode-perl https://open-vsx.org/api/vscode/perl/1.66.2/file/vscode.perl-1.66.2.vsix b0aad182114624d139fb1dd473eb7239 vscode-perl https://open-vsx.org/api/vscode/perl/1.79.0/file/vscode.perl-1.79.0.vsix 327d46d24095a6b186af2f3122ea7eb5
vscode-powershell https://open-vsx.org/api/vscode/powershell/1.66.2/file/vscode.powershell-1.66.2.vsix 5eea590b1bead177db24da42efe16c00 vscode-powershell https://open-vsx.org/api/vscode/powershell/1.79.0/file/vscode.powershell-1.79.0.vsix 7a9da8346951b53650edca08aaf79776
vscode-pug https://open-vsx.org/api/vscode/pug/1.66.2/file/vscode.pug-1.66.2.vsix 510ac13652e54b9ab94fa16c801419d0 vscode-pug https://open-vsx.org/api/vscode/pug/1.79.0/file/vscode.pug-1.79.0.vsix 3902e4f3e67151b3613ee7416be9ebd2
vscode-python https://open-vsx.org/api/vscode/python/1.66.2/file/vscode.python-1.66.2.vsix 3e547779f132ce08aeb4ed7d711f95eb vscode-python https://open-vsx.org/api/vscode/python/1.79.0/file/vscode.python-1.79.0.vsix f7983a226bbcc7816480138d79afcd9e
vscode-r https://open-vsx.org/api/vscode/r/1.66.2/file/vscode.r-1.66.2.vsix fb50301ac3e97f5ea070cd968a9d347a vscode-r https://open-vsx.org/api/vscode/r/1.79.0/file/vscode.r-1.79.0.vsix 79d19ff00b3e62833c53063b658b2f87
vscode-razor https://open-vsx.org/api/vscode/razor/1.66.2/file/vscode.razor-1.66.2.vsix e5923740b00be3aaa95ca75c5427323f vscode-razor https://open-vsx.org/api/vscode/razor/1.79.0/file/vscode.razor-1.79.0.vsix 41308808a07aefe6fe80007eed5cc379
vscode-ruby https://open-vsx.org/api/vscode/ruby/1.66.2/file/vscode.ruby-1.66.2.vsix a5980ca52bd7ff3a0b2d11a542ad5d2e vscode-ruby https://open-vsx.org/api/vscode/ruby/1.79.0/file/vscode.ruby-1.79.0.vsix a240dd295aa43feb2490531842d2c0a4
vscode-rust https://open-vsx.org/api/vscode/rust/1.66.2/file/vscode.rust-1.66.2.vsix 36f79f17deadc45f37618fd1e3b14a98 vscode-rust https://open-vsx.org/api/vscode/rust/1.79.0/file/vscode.rust-1.79.0.vsix 3f6e997db7b4435680f5804af076c6ff
vscode-scss https://open-vsx.org/api/vscode/scss/1.66.2/file/vscode.scss-1.66.2.vsix c77b48da51ada041c949eee7651ddcef vscode-scss https://open-vsx.org/api/vscode/scss/1.79.0/file/vscode.scss-1.79.0.vsix d14a0e037102e572e049853d33faf4ac
vscode-shaderlab https://open-vsx.org/api/vscode/shaderlab/1.66.2/file/vscode.shaderlab-1.66.2.vsix 9e9b7e76b22bbbb2035684f60d57b8a2 vscode-shaderlab https://open-vsx.org/api/vscode/shaderlab/1.79.0/file/vscode.shaderlab-1.79.0.vsix ec72372da9f8ea463d0ead94d8578426
vscode-shellscript https://open-vsx.org/api/vscode/shellscript/1.66.2/file/vscode.shellscript-1.66.2.vsix 8cb19a95534a6a62a8a2a8bf904dd2f6 vscode-shellscript https://open-vsx.org/api/vscode/shellscript/1.79.0/file/vscode.shellscript-1.79.0.vsix 8240593db87356e55119f13110531941
vscode-sql https://open-vsx.org/api/vscode/sql/1.66.2/file/vscode.sql-1.66.2.vsix 6c360227f2afde110fdb7baf3308d3b0 vscode-sql https://open-vsx.org/api/vscode/sql/1.79.0/file/vscode.sql-1.79.0.vsix 8db5f7285f1688d0303dece15ff6d185
vscode-swift https://open-vsx.org/api/vscode/swift/1.66.2/file/vscode.swift-1.66.2.vsix 2190e2b4df98f7ba4d7a9a7083298134 vscode-swift https://open-vsx.org/api/vscode/swift/1.79.0/file/vscode.swift-1.79.0.vsix 8b0c814475a922c2e03b0f4fae3d3658
vscode-theme-abyss https://open-vsx.org/api/vscode/theme-abyss/1.66.2/file/vscode.theme-abyss-1.66.2.vsix 71761509db12794f072e547394e1437c vscode-theme-abyss https://open-vsx.org/api/vscode/theme-abyss/1.79.0/file/vscode.theme-abyss-1.79.0.vsix 96f9852739fe50771c71c63326cff5a6
vscode-theme-defaults https://open-vsx.org/api/vscode/theme-defaults/1.66.2/file/vscode.theme-defaults-1.66.2.vsix a1a13b8f6522b3250d2eef014cfcfea0 vscode-theme-defaults https://open-vsx.org/api/vscode/theme-defaults/1.79.0/file/vscode.theme-defaults-1.79.0.vsix d9940c16d7cc823efc49f8a183f9e780
vscode-theme-kimbie-dark https://open-vsx.org/api/vscode/theme-kimbie-dark/1.66.2/file/vscode.theme-kimbie-dark-1.66.2.vsix 7102bde7aa9a1d5f62ec812d8b952e77 vscode-theme-kimbie-dark https://open-vsx.org/api/vscode/theme-kimbie-dark/1.79.0/file/vscode.theme-kimbie-dark-1.79.0.vsix f24c3a3a678e06b320affea47c7c6027
vscode-theme-monokai https://open-vsx.org/api/vscode/theme-monokai/1.66.2/file/vscode.theme-monokai-1.66.2.vsix 21a6f55268bed560cae5791b04546aac vscode-theme-monokai https://open-vsx.org/api/vscode/theme-monokai/1.79.0/file/vscode.theme-monokai-1.79.0.vsix 7bd550fb354a4936330b122981af7dd3
vscode-theme-monokai-dimmed https://open-vsx.org/api/vscode/theme-monokai-dimmed/1.66.2/file/vscode.theme-monokai-dimmed-1.66.2.vsix 47ef925e320287cb8e252e1622f94daf vscode-theme-monokai-dimmed https://open-vsx.org/api/vscode/theme-monokai-dimmed/1.79.0/file/vscode.theme-monokai-dimmed-1.79.0.vsix 77b31a0af4c9eba3f17d387a21cf3edc
vscode-theme-quietlight https://open-vsx.org/api/vscode/theme-quietlight/1.66.2/file/vscode.theme-quietlight-1.66.2.vsix 3259a70d69ef0012a9f65ed706025526 vscode-theme-quietlight https://open-vsx.org/api/vscode/theme-quietlight/1.79.0/file/vscode.theme-quietlight-1.79.0.vsix b98a892758bb878f942af7dee3bea56a
vscode-theme-red https://open-vsx.org/api/vscode/theme-red/1.66.2/file/vscode.theme-red-1.66.2.vsix bbd704128f371f964a73f7e3deb712b6 vscode-theme-red https://open-vsx.org/api/vscode/theme-red/1.79.0/file/vscode.theme-red-1.79.0.vsix 8a888a3373f3dba147632b77c0ba6d5d
vscode-theme-solarized-dark https://open-vsx.org/api/vscode/theme-solarized-dark/1.66.2/file/vscode.theme-solarized-dark-1.66.2.vsix 4d4d5b8a9dc298614c1e33aab061e58d vscode-theme-solarized-dark https://open-vsx.org/api/vscode/theme-solarized-dark/1.79.0/file/vscode.theme-solarized-dark-1.79.0.vsix d73417cf72c559564815f45bb957c98e
vscode-theme-tomorrow-night-blue https://open-vsx.org/api/vscode/theme-tomorrow-night-blue/1.66.2/file/vscode.theme-tomorrow-night-blue-1.66.2.vsix 7177906c411b424e6fbfc56e529a2d76 vscode-theme-tomorrow-night-blue https://open-vsx.org/api/vscode/theme-tomorrow-night-blue/1.79.0/file/vscode.theme-tomorrow-night-blue-1.79.0.vsix 574f2463f1b9625f480a5e1814431379
vscode-typescript https://open-vsx.org/api/vscode/typescript/1.66.2/file/vscode.typescript-1.66.2.vsix 3ab8adbc1d624020ec53ce8886b379e9 vscode-typescript https://open-vsx.org/api/vscode/typescript/1.79.0/file/vscode.typescript-1.79.0.vsix 442d7bdc4ae9ac865be22bc9d89a8b6e
vscode-typescript-language-features https://open-vsx.org/api/vscode/typescript-language-features/1.62.3/file/vscode.typescript-language-features-1.62.3.vsix de0fcfc97774ee2804c7952e1267d34a vscode-typescript-language-features https://open-vsx.org/api/vscode/typescript-language-features/1.62.3/file/vscode.typescript-language-features-1.62.3.vsix de0fcfc97774ee2804c7952e1267d34a
vscode-vb https://open-vsx.org/api/vscode/vb/1.66.2/file/vscode.vb-1.66.2.vsix 75c5d545ef4b16d13ccfcc7f458b2336 vscode-vb https://open-vsx.org/api/vscode/vb/1.79.0/file/vscode.vb-1.79.0.vsix dd91e78b565ec68eaaea47c90cdb925a
vscode-vscode-theme-seti https://open-vsx.org/api/vscode/vscode-theme-seti/1.66.2/file/vscode.vscode-theme-seti-1.66.2.vsix 138ffbc1baad2a7e3211af579428ed4a vscode-vscode-theme-seti https://open-vsx.org/api/vscode/vscode-theme-seti/1.79.0/file/vscode.vscode-theme-seti-1.79.0.vsix f2556bbcc5d8bd3c18a02c94a6027854
vscode-xml https://open-vsx.org/api/vscode/xml/1.66.2/file/vscode.xml-1.66.2.vsix 0866e13f45a18ce2f932411600bf8529 vscode-xml https://open-vsx.org/api/vscode/xml/1.79.0/file/vscode.xml-1.79.0.vsix e0f0b7fe7472ef215a5985f2a5212955
vscode-yaml https://open-vsx.org/api/vscode/yaml/1.66.2/file/vscode.yaml-1.66.2.vsix 2f9ab05c8f9bc676cecb59c26d8ff799 vscode-yaml https://open-vsx.org/api/vscode/yaml/1.79.0/file/vscode.yaml-1.79.0.vsix ec40fdf2378fd49548679ce747f68319
EditorConfig-EditorConfig https://open-vsx.org/api/EditorConfig/EditorConfig/0.16.6/file/EditorConfig.EditorConfig-0.16.6.vsix e787245e6c68617178ae995ad97c3ccb EditorConfig-EditorConfig https://open-vsx.org/api/EditorConfig/EditorConfig/0.16.6/file/EditorConfig.EditorConfig-0.16.6.vsix e787245e6c68617178ae995ad97c3ccb
dbaeumer-vscode-eslint https://open-vsx.org/api/dbaeumer/vscode-eslint/2.4.0/file/dbaeumer.vscode-eslint-2.4.0.vsix 35fa3a096ee97e327ff2fde4c2ea2309 dbaeumer-vscode-eslint https://open-vsx.org/api/dbaeumer/vscode-eslint/2.4.2/file/dbaeumer.vscode-eslint-2.4.2.vsix 03516ffc58cdc009284dd53749365aa9
ms-vscode-references-view https://open-vsx.org/api/ms-vscode/references-view/0.0.89/file/ms-vscode.references-view-0.0.89.vsix 7ec05cb01a77ee7f6c5198a5225fa707 ms-vscode-references-view https://open-vsx.org/api/ms-vscode/references-view/0.0.89/file/ms-vscode.references-view-0.0.89.vsix 7ec05cb01a77ee7f6c5198a5225fa707
ms-python-python https://open-vsx.org/api/ms-python/python/2022.4.1/file/ms-python.python-2022.4.1.vsix 94ad676e762885fbd4e32d931aedd1de ms-python-python https://open-vsx.org/api/ms-python/python/2022.4.1/file/ms-python.python-2022.4.1.vsix 94ad676e762885fbd4e32d931aedd1de
perrinjerome-vscode-zc-buildout https://open-vsx.org/api/perrinjerome/vscode-zc-buildout/0.9.2/file/perrinjerome.vscode-zc-buildout-0.9.2.vsix 7782da250445b1b5781577aecf27c38c perrinjerome-vscode-zc-buildout https://open-vsx.org/api/perrinjerome/vscode-zc-buildout/0.11.0/file/perrinjerome.vscode-zc-buildout-0.11.0.vsix 8ed81e3e6009ab879a09316684326b18
jebbs-plantuml https://open-vsx.org/api/jebbs/plantuml/2.14.0/file/jebbs.plantuml-2.14.0.vsix 13fa7cbd14a30ecca166c41a307c7a73 jebbs-plantuml https://open-vsx.org/api/jebbs/plantuml/2.14.0/file/jebbs.plantuml-2.14.0.vsix 13fa7cbd14a30ecca166c41a307c7a73
rafaelmaiolla-diff https://open-vsx.org/api/rafaelmaiolla/diff/0.0.1/file/rafaelmaiolla.diff-0.0.1.vsix 1d8f868bc19b7d703c1be2bf99c4c7f9 rafaelmaiolla-diff https://open-vsx.org/api/rafaelmaiolla/diff/0.0.1/file/rafaelmaiolla.diff-0.0.1.vsix 1d8f868bc19b7d703c1be2bf99c4c7f9
perrinjerome-git-commit-syntax https://open-vsx.org/api/perrinjerome/git-commit-syntax/0.0.1/file/perrinjerome.git-commit-syntax-0.0.1.vsix 46625f2f05e244911c2cb9cc5032c0ef perrinjerome-git-commit-syntax https://open-vsx.org/api/perrinjerome/git-commit-syntax/0.0.1/file/perrinjerome.git-commit-syntax-0.0.1.vsix 46625f2f05e244911c2cb9cc5032c0ef
......
...@@ -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 source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -24,8 +24,8 @@ min_version = 8 ...@@ -24,8 +24,8 @@ min_version = 8
[trafficserver] [trafficserver]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://dlcdn.apache.org/trafficserver/trafficserver-9.2.0.tar.bz2 url = https://dlcdn.apache.org/trafficserver/trafficserver-9.2.2.tar.bz2
md5sum = 3188d53f0a2eb618fb9399e098161691 md5sum = 994247ed0f50e6dfcfb8d7200dcad6ea
shared = true shared = true
patch-options = -p1 patch-options = -p1
configure-options = configure-options =
......
...@@ -165,8 +165,8 @@ environment = ...@@ -165,8 +165,8 @@ environment =
[libX11] [libX11]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://www.x.org/releases/individual/lib/libX11-1.8.6.tar.gz url = https://www.x.org/releases/individual/lib/libX11-1.8.7.tar.gz
md5sum = 9767ee0c5819e35142835da61b923421 md5sum = feb9664ce36111923c0be0b292f6e15b
pkg_config_depends = ${inputproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libXau:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xtrans:location}/share/pkgconfig pkg_config_depends = ${inputproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libXau:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xtrans:location}/share/pkgconfig
configure-options = configure-options =
--disable-static --disable-static
......
[buildout]
extends =
../libtool/buildout.cfg
../util-linux/buildout.cfg
[zeromq]
<= zeromq3
[zeromq3]
recipe = slapos.recipe.cmmi
url = http://download.zeromq.org/zeromq-3.2.3.tar.gz
md5sum = 1abf8246363249baf5931a065ee38203
configure-options = --without-documentation
environment =
PATH=${libtool:location}/bin:%(PATH)s
LDFLAGS=-L${libtool:location}/lib -Wl,-rpath -Wl,${libtool:location}/lib -L${libuuid:location}/lib -Wl,-rpath -Wl,${libuuid:location}/lib
[zeromq2]
recipe = slapos.recipe.cmmi
url = http://download.zeromq.org/zeromq-2.2.0.tar.gz
md5sum = 1b11aae09b19d18276d0717b2ea288f6
configure-options =
--without-documentation
environment =
PATH=${libtool:location}/bin:%(PATH)s
CXXFLAGS=-I${libuuid:location}/include
LDFLAGS=-L${libtool:location}/lib -Wl,-rpath -Wl,${libtool:location}/lib -L${libuuid:location}/lib -Wl,-rpath -Wl,${libuuid:location}/lib
...@@ -91,7 +91,6 @@ setup(name=name, ...@@ -91,7 +91,6 @@ setup(name=name,
'copyfilelist = slapos.recipe.copyfilelist:Recipe', 'copyfilelist = slapos.recipe.copyfilelist:Recipe',
'cron = slapos.recipe.dcron:Recipe', 'cron = slapos.recipe.dcron:Recipe',
'cron.d = slapos.recipe.dcron:Part', 'cron.d = slapos.recipe.dcron:Part',
'davstorage = slapos.recipe.davstorage:Recipe',
'dropbear = slapos.recipe.dropbear:Recipe', 'dropbear = slapos.recipe.dropbear:Recipe',
'dropbear.add_authorized_key = slapos.recipe.dropbear:AddAuthorizedKey', 'dropbear.add_authorized_key = slapos.recipe.dropbear:AddAuthorizedKey',
'dropbear.client = slapos.recipe.dropbear:Client', 'dropbear.client = slapos.recipe.dropbear:Client',
......
##############################################################################
#
# Copyright (c) 2010 Vifib SARL 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 subprocess
from six.moves import http_client as httplib
import base64
import os
import shutil
from slapos.recipe.librecipe import GenericBaseRecipe
class Recipe(GenericBaseRecipe):
def _options(self, options):
options['password'] = self.generatePassword()
def install(self):
path_list = []
htpasswd_file = self.options['htpasswd-file']
# Create or empty the file
open(htpasswd_file, 'w').close()
path_list.append(htpasswd_file)
user = self.options['user']
password = self.options['password']
subprocess.check_call([self.options['apache-htpasswd'],
'-bc', htpasswd_file,
user, password
])
htdocs_location = self.options['htdocs']
if not (os.path.exists(htdocs_location) and os.listdir(htdocs_location)):
try:
os.rmdir(htdocs_location)
except:
pass
shutil.copytree(self.options['source'], htdocs_location)
# Install php.ini
php_ini = self.createFile(os.path.join(self.options['php-ini-dir'],
'php.ini'),
self.substituteTemplate(self.getTemplateFilename('php.ini.in'),
dict(tmp_directory=self.options['tmp-dir']))
)
path_list.append(php_ini)
apache_config = dict(
pid_file=self.options['pid-file'],
lock_file=self.options['lock-file'],
davlock_db=self.options['davdb-lock'],
ip=self.options['ip'],
port_webdav=self.options['port_webdav'],
port_ajax=self.options['port_ajax'],
error_log=self.options['error-log'],
access_log=self.options['access-log'],
document_root=self.options['htdocs'],
modules_dir=self.options['apache-modules-dir'],
mime_types=self.options['apache-mime-file'],
server_root=self.options['root'],
email_address=self.options['email-address'],
htpasswd_file=htpasswd_file,
ssl_certificate=self.options['cert-file'],
ssl_key=self.options['key-file'],
php_ini_dir=self.options['php-ini-dir']
)
# Create logfiles
for log in [self.options['error-log'], self.options['access-log']]:
open(log, 'a').close()
config_file = self.createFile(self.options['conf-file'],
self.substituteTemplate(self.getTemplateFilename('httpd.conf.in'),
apache_config)
)
path_list.append(config_file)
wrapper = self.createWrapper(self.options['wrapper'],
(self.options['apache-binary'], '-f', config_file, '-DFOREGROUND'))
path_list.append(wrapper)
promise = self.createPythonScript(self.options['promise'],
__name__ + '.promise',
(self.options['ip'], int(self.options['port_webdav']),
self.options['user'], self.options['password']))
path_list.append(promise)
return path_list
def promise(host, port, user, password):
connection = httplib.HTTPSConnection(host, port)
auth = base64.b64encode('%s:%s' % (user, password))
connection.request('OPTIONS', '/',
headers=dict(
Authorization='Basic %s' % auth,
)
)
connection.getresponse()
return 0
ServerRoot "%(server_root)s"
Listen [%(ip)s]:%(port_webdav)s
Listen [%(ip)s]:%(port_ajax)s
NameVirtualHost [%(ip)s]:%(port_webdav)s
NameVirtualHost [%(ip)s]:%(port_ajax)s
# Needed modules
LoadModule unixd_module "%(modules_dir)s/mod_unixd.so"
LoadModule access_compat_module "%(modules_dir)s/mod_access_compat.so"
LoadModule authn_core_module "%(modules_dir)s/mod_authn_core.so"
LoadModule authz_core_module "%(modules_dir)s/mod_authz_core.so"
LoadModule authn_file_module "%(modules_dir)s/mod_authn_file.so"
LoadModule authz_host_module "%(modules_dir)s/mod_authz_host.so"
LoadModule authz_user_module "%(modules_dir)s/mod_authz_user.so"
LoadModule auth_basic_module "%(modules_dir)s/mod_auth_basic.so"
# Comment auth_digest since we don't use it
#LoadModule auth_digest_module "%(modules_dir)s/mod_auth_digest.so"
LoadModule log_config_module "%(modules_dir)s/mod_log_config.so"
LoadModule headers_module "%(modules_dir)s/mod_headers.so"
LoadModule setenvif_module "%(modules_dir)s/mod_setenvif.so"
LoadModule socache_shmcb_module "%(modules_dir)s/mod_socache_shmcb.so"
LoadModule ssl_module "%(modules_dir)s/mod_ssl.so"
LoadModule mime_module "%(modules_dir)s/mod_mime.so"
LoadModule dav_module "%(modules_dir)s/mod_dav.so"
LoadModule dav_fs_module "%(modules_dir)s/mod_dav_fs.so"
LoadModule dir_module "%(modules_dir)s/mod_dir.so"
LoadModule php5_module "%(modules_dir)s/libphp5.so"
ServerAdmin %(email_address)s
# Quiet Server header (if not, Apache give its life history)
# It's safer
ServerTokens ProductOnly
PidFile "%(pid_file)s"
PHPINIDir "%(php_ini_dir)s"
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<VirtualHost [%(ip)s]:%(port_ajax)s>
#ServerName www.example.com
# Directory protection
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory %(document_root)s>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
DocumentRoot "%(document_root)s"
DirectoryIndex index.html index.php
SSLEngine on
SSLCertificateFile "%(ssl_certificate)s"
SSLCertificateKeyFile "%(ssl_key)s"
</VirtualHost>
<VirtualHost [%(ip)s]:%(port_webdav)s>
DocumentRoot "%(document_root)s"
DavLockDB "%(davlock_db)s"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory %(document_root)s>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
Dav On
# Security Rules to avoid DDoS Attacks
DavDepthInfinity Off
LimitXMLRequestBody 0
# Cross-Origin Resources Sharing
Header always set Access-Control-Max-Age "0"
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "OPTIONS, GET, HEAD, POST, PUT, DELETE, PROPFIND"
Header always set Access-Control-Allow-Headers "Content-Type, X-Requested-With, X-HTTP-Method-Override, Accept, Authorization, Depth"
SetEnvIf Origin "(.+)" ORIGIN=$1
Header always set Access-Control-Allow-Origin %%{ORIGIN}e
AuthType Basic
AuthName "WebDAV Storage"
AuthUserFile "%(htpasswd_file)s"
<LimitExcept OPTIONS>
Require valid-user
</LimitExcept>
</Directory>
SSLEngine on
SSLCertificateFile "%(ssl_certificate)s"
SSLCertificateKeyFile "%(ssl_key)s"
</VirtualHost>
ErrorLog "%(error_log)s"
LogLevel warn
LogFormat "%%h %%l %%u %%t \"%%r\" %%>s %%b \"%%{Referer}i\" \"%%{User-Agent}i\"" combined
LogFormat "%%h %%l %%u %%t \"%%r\" %%>s %%b" common
CustomLog "%(access_log)s" common
DefaultType text/plain
TypesConfig "%(mime_types)s"
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .phtml .php5 .php4
AddType application/x-httpd-php-source .phps
[PHP]
engine = On
safe_mode = Off
expose_php = Off
error_reporting = E_ALL & ~(E_DEPRECATED|E_NOTICE|E_WARNING)
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
session.save_path = "%(tmp_directory)s"
session.auto_start = 0
date.timezone = Europe/Paris
file_uploads = On
upload_max_filesize = 8M
post_max_size = 8M
magic_quotes_gpc=Off
output_buffering=Off
...@@ -162,19 +162,22 @@ class TestOrderBuildPackingListSimulation( ...@@ -162,19 +162,22 @@ class TestOrderBuildPackingListSimulation(
zope_count = len(zope_memory_info_list) zope_count = len(zope_memory_info_list)
# Database size # Database size
root_fs = pathlib.Path( if self.isNEO():
self.getComputerPartitionPath('zodb')) / 'srv' / 'zodb' / 'root.fs' root_fs_size = zeo_root_stats = 'N/A'
root_fs_size = root_fs.stat().st_size else:
root_fs = pathlib.Path(
self.getComputerPartitionPath('zodb')) / 'srv' / 'zodb' / 'root.fs'
root_fs_size = root_fs.stat().st_size
# ZEO stats ( using ruok protocol https://github.com/zopefoundation/ZEO/commit/d5082536 ) # ZEO stats ( using ruok protocol https://github.com/zopefoundation/ZEO/commit/d5082536 )
with contextlib.closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: with contextlib.closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
s.connect((self._ipv4_address, 2100)) s.connect((self._ipv4_address, 2100))
s.sendall(b'\x00\x00\x00\x04ruok') s.sendall(b'\x00\x00\x00\x04ruok')
_ = s.recv(struct.unpack(">I", s.recv(4))[0]) _ = s.recv(struct.unpack(">I", s.recv(4))[0])
zeo_stats = json.loads(s.recv(struct.unpack(">I", s.recv(4))[0])) zeo_stats = json.loads(s.recv(struct.unpack(">I", s.recv(4))[0]))
# we are supposed to have only one storage with name "root" # we are supposed to have only one storage with name "root"
zeo_root_stats = zeo_stats.pop('root') zeo_root_stats = zeo_stats.pop('root')
assert not zeo_stats assert not zeo_stats
self.logger.info( self.logger.info(
"Measurements for %s (after %s): " "Measurements for %s (after %s): "
...@@ -255,16 +258,17 @@ class TestOrderBuildPackingListSimulation( ...@@ -255,16 +258,17 @@ class TestOrderBuildPackingListSimulation(
self.take_measurements(f"iteration_{i+1:03}") self.take_measurements(f"iteration_{i+1:03}")
# final measurements, take a "zodb analyze" snapshot # final measurements, take a "zodb analyze" snapshot
zodb_cmd = pathlib.Path( if not self.isNEO():
self.computer_partition_root_path zodb_cmd = pathlib.Path(
) / 'software_release' / 'bin' / 'zodb' self.computer_partition_root_path
root_fs = pathlib.Path( ) / 'software_release' / 'bin' / 'zodb'
self.getComputerPartitionPath('zodb')) / 'srv' / 'zodb' / 'root.fs' root_fs = pathlib.Path(
self.write_measurement( self.getComputerPartitionPath('zodb')) / 'srv' / 'zodb' / 'root.fs'
{ self.write_measurement(
'zodb analyze': {
subprocess.check_output((zodb_cmd, 'analyze', root_fs), text=True) 'zodb analyze':
}) subprocess.check_output((zodb_cmd, 'analyze', root_fs), text=True)
})
# and a pt-query-digest for slow log # and a pt-query-digest for slow log
pt_query_digest = pathlib.Path( pt_query_digest = pathlib.Path(
......
...@@ -46,7 +46,7 @@ from slapos.testing.testcase import ( ...@@ -46,7 +46,7 @@ from slapos.testing.testcase import (
makeModuleSetUpAndTestCaseClass, makeModuleSetUpAndTestCaseClass,
) )
old_software_release_url = 'https://lab.nexedi.com/nexedi/slapos/raw/1.0.167.8/software/erp5/software.cfg' old_software_release_url = 'https://lab.nexedi.com/nexedi/slapos/raw/1.0.167.9/software/erp5/software.cfg'
new_software_release_url = os.path.abspath( new_software_release_url = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software.cfg')) os.path.join(os.path.dirname(__file__), '..', 'software.cfg'))
......
...@@ -19,7 +19,7 @@ md5sum = 7ab3b606972e1b338d28fc1374617835 ...@@ -19,7 +19,7 @@ md5sum = 7ab3b606972e1b338d28fc1374617835
[template-default] [template-default]
_update_hash_filename_ = instance-default.cfg.in _update_hash_filename_ = instance-default.cfg.in
md5sum = 698104b7c3694a69575c965c21629f87 md5sum = 89a7224c3dd9356bf262100816b67f73
[dovecot.jinja2.conf] [dovecot.jinja2.conf]
_update_hash_filename_ = dovecot.jinja2.conf _update_hash_filename_ = dovecot.jinja2.conf
......
...@@ -147,6 +147,10 @@ recipe = slapos.recipe.template ...@@ -147,6 +147,10 @@ recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_} output = ${directory:bin}/${:_buildout_section_name_}
inline = inline =
#!/bin/sh #!/bin/sh
# If master.pid contains PID of any running process
# dovecot will refuse to run. Only the pidfile provided
# by wrapper recipe should be used
rm -f var/run/dovecot/master.pid
{{ dovecot_binary }} -F -c ${dovecot-conf:output} {{ dovecot_binary }} -F -c ${dovecot-conf:output}
[dovecot-service] [dovecot-service]
...@@ -170,6 +174,7 @@ recipe = slapos.recipe.template ...@@ -170,6 +174,7 @@ recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_} output = ${directory:bin}/${:_buildout_section_name_}
inline = inline =
#!/bin/sh #!/bin/sh
rm -f var/spool/postfix/pid/master.pid
${directory:usr-postfix}/libexec/postfix/master -c ${directory:etc-postfix} ${directory:usr-postfix}/libexec/postfix/master -c ${directory:etc-postfix}
[postfix-service] [postfix-service]
......
[buildout] [buildout]
extends = extends =
buildout.hash.cfg buildout.hash.cfg
# LAMP stands for Linux, Apache, MySQL, PHP
../../stack/lamp/buildout.cfg ../../stack/lamp/buildout.cfg
# "slapos" stack describes basic things needed for 99.9% of SlapOS Software
../../stack/slapos.cfg ../../stack/slapos.cfg
../../component/diffutils/buildout.cfg ../../component/diffutils/buildout.cfg
parts = parts =
# Call installation of slapos.cookbook egg defined in stack/slapos.cfg (needed
# in 99,9% of Slapos Software Releases)
slapos-cookbook slapos-cookbook
# to create file instance.cfg of all instances
lamp-instance lamp-instance
# download bas
# inherited by modules that need to download files
[matomo-download] [matomo-download]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
...@@ -24,12 +16,10 @@ url = ${:_profile_base_location_}/${:filename} ...@@ -24,12 +16,10 @@ url = ${:_profile_base_location_}/${:filename}
# download matomo # download matomo
# The specific process of downloading and decompressing is defined in stack lamp # The specific process of downloading and decompressing is defined in stack lamp
[application] [application]
url = https://builds.matomo.org/matomo-4.7.1.zip url = https://builds.matomo.org/matomo-4.15.1.zip
md5sum = 8d592676bc2c0d51363ad7b2caf171fe md5sum = d7d2c4f94cb77af859d0cee8e9e0dbdb
archive-root = matomo archive-root = matomo
# give the location of the instance-matomo.cfg fil
# Without it the instance-matomo.cfg file will not be executed
[custom-application-deployment] [custom-application-deployment]
path = ${template-matomo-instance:output} path = ${template-matomo-instance:output}
part-list = matomo-backup.sh matomo-backup-cron part-list = matomo-backup.sh matomo-backup-cron
......
...@@ -59,7 +59,7 @@ class MatomoTestCase(SlapOSInstanceTestCase): ...@@ -59,7 +59,7 @@ class MatomoTestCase(SlapOSInstanceTestCase):
#Check if matomo root directory is empty #Check if matomo root directory is empty
def test_matomo_dir(self): def test_matomo_dir(self):
self.assertEqual(os.path.isfile(self.matomo_path),False) self.assertEqual(os.path.isfile(self.matomo_path),False)
#Check deployement matomo works #Check deployement matomo works
def test_matomo_url_get(self): def test_matomo_url_get(self):
resp = requests.get(self.connection_parameters['backend-url'], verify=False) resp = requests.get(self.connection_parameters['backend-url'], verify=False)
......
...@@ -71,7 +71,7 @@ forcediphttpsadapter = 1.0.1 ...@@ -71,7 +71,7 @@ forcediphttpsadapter = 1.0.1
miniupnpc = 2.0.2 miniupnpc = 2.0.2
peewee = 3.14.4 peewee = 3.14.4
python-whois = 0.7.3 python-whois = 0.7.3
future = 0.18.2 future = 0.18.3
# Build GCC with Fortran for OpenBLAS (scipy & numpy) # Build GCC with Fortran for OpenBLAS (scipy & numpy)
[gcc] [gcc]
......
...@@ -57,6 +57,7 @@ eggs = neoppod[admin, ctl, master] ...@@ -57,6 +57,7 @@ eggs = neoppod[admin, ctl, master]
zope.testing zope.testing
coverage coverage
setproctitle setproctitle
mock
adapter-egg = adapter-egg =
${python-mysqlclient:egg} ${python-mysqlclient:egg}
PyMySQL PyMySQL
......
...@@ -2,7 +2,4 @@ ...@@ -2,7 +2,4 @@
extends = software.cfg extends = software.cfg
[ZODB] [ZODB]
major = 5 major = 4
[neoppod]
eggs += mock
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[template-nextcloud-install.sh] [template-nextcloud-install.sh]
filename = nextcloud-install.sh.in filename = nextcloud-install.sh.in
md5sum = 094c26b177fdde69b41d81b89bab542b md5sum = 965cc84d4c8e39f06850fac361575647
[template-nextcloud-config.json] [template-nextcloud-config.json]
filename = nextcloud-config.json.in filename = nextcloud-config.json.in
...@@ -22,4 +22,4 @@ md5sum = 6f42f0a8c5e5c0c657541a65c4d9ee57 ...@@ -22,4 +22,4 @@ md5sum = 6f42f0a8c5e5c0c657541a65c4d9ee57
[template-nextcloud-instance] [template-nextcloud-instance]
filename = nextcloud-instance.cfg.in filename = nextcloud-instance.cfg.in
md5sum = e144dc4cdc3bd0a9be81ac0cc2cfdbd4 md5sum = a59b081bd39f61c7361fdb6c54fc2039
...@@ -52,7 +52,7 @@ cat <<EOF >> {{ parameter_dict['nextcloud'] }}/config/config.php ...@@ -52,7 +52,7 @@ cat <<EOF >> {{ parameter_dict['nextcloud'] }}/config/config.php
'mail_smtppassword' => '{{ parameter_dict["mail.smtppassword"] }}', 'mail_smtppassword' => '{{ parameter_dict["mail.smtppassword"] }}',
'activity_expire_days' => 14, 'activity_expire_days' => 14,
'auth.bruteforce.protection.enabled' => true, 'auth.bruteforce.protection.enabled' => true,
'forwarded_for_headers' => 'forwarded_for_headers' =>
array ( array (
0 => 'HTTP_X_FORWARDED', 0 => 'HTTP_X_FORWARDED',
), ),
...@@ -67,13 +67,13 @@ array ( ...@@ -67,13 +67,13 @@ array (
{% endfor -%} {% endfor -%}
), ),
{% endif -%} {% endif -%}
'blacklisted_files' => 'blacklisted_files' =>
array ( array (
0 => '.htaccess', 0 => '.htaccess',
1 => 'Thumbs.db', 1 => 'Thumbs.db',
2 => 'thumbs.db', 2 => 'thumbs.db',
), ),
'csrf.optout' => 'csrf.optout' =>
array ( array (
0 => '/^WebDAVFS/', 0 => '/^WebDAVFS/',
1 => '/^Microsoft-WebDAV-MiniRedir/', 1 => '/^Microsoft-WebDAV-MiniRedir/',
...@@ -81,7 +81,7 @@ array ( ...@@ -81,7 +81,7 @@ array (
), ),
'cron_log' => true, 'cron_log' => true,
'enable_previews' => true, 'enable_previews' => true,
'enabledPreviewProviders' => 'enabledPreviewProviders' =>
array ( array (
0 => 'OC\\Preview\\PNG', 0 => 'OC\\Preview\\PNG',
1 => 'OC\\Preview\\JPEG', 1 => 'OC\\Preview\\JPEG',
...@@ -110,7 +110,7 @@ array ( ...@@ -110,7 +110,7 @@ array (
'preview_max_x' => 1024, 'preview_max_x' => 1024,
'preview_max_y' => 768, 'preview_max_y' => 768,
'preview_max_scale_factor' => 1, 'preview_max_scale_factor' => 1,
'redis' => 'redis' =>
array ( array (
'host' => '{{ parameter_dict["redis-socket"] }}', 'host' => '{{ parameter_dict["redis-socket"] }}',
'port' => 0, 'port' => 0,
...@@ -134,8 +134,10 @@ EOF ...@@ -134,8 +134,10 @@ EOF
php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set richdocuments wopi_url --value="{{ parameter_dict.get('collabora-url', '') }}" php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set richdocuments wopi_url --value="{{ parameter_dict.get('collabora-url', '') }}"
php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set spreed stun_servers --value="[\"{{ parameter_dict['stun-server'] }}\"]" php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set spreed stun_servers --value="[\"{{ parameter_dict['stun-server'] }}\"]"
php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set spreed turn_servers --value="[{\"server\":\"{{ parameter_dict['turn-server'] }}\",\"secret\":\"{{ parameter_dict['turn-secret'] }}\",\"protocols\":\"udp,tcp\"}]" php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set spreed turn_servers --value="[{\"server\":\"{{ parameter_dict['turn-server'] }}\",\"secret\":\"{{ parameter_dict['turn-secret'] }}\",\"protocols\":\"udp,tcp\"}]"
sed -i 's#useCronUpdates\s*=.*#useCronUpdates = false#g' {{ parameter_dict['data-dir'] }}/news/config/config.ini php_cmd {{ parameter_dict['nextcloud'] }}/occ config:app:set news useCronUpdates --value=false
if [ -f "{{ parameter_dict['nextcloud'] }}/config/CAN_INSTALL" ]; then if [ -f "{{ parameter_dict['nextcloud'] }}/config/CAN_INSTALL" ]; then
rm {{ parameter_dict['nextcloud'] }}/config/CAN_INSTALL rm {{ parameter_dict['nextcloud'] }}/config/CAN_INSTALL
fi fi
date > {{ parameter_dict['nextcloud'] }}/.slapos-install-done
...@@ -105,6 +105,10 @@ input = inline:#!/bin/bash ...@@ -105,6 +105,10 @@ input = inline:#!/bin/bash
echo "Nextcloud is not installed."; echo "Nextcloud is not installed.";
exit 1; exit 1;
fi fi
if [ ! -f "${instance-parameter:nextcloud}/.slapos-install-done" ]; then
echo "Nextcloud is not configured.";
exit 1;
fi
output = ${directory:bin}/check-nc-install output = ${directory:bin}/check-nc-install
mode = 744 mode = 744
......
...@@ -9,8 +9,8 @@ recipe = slapos.recipe.build:download ...@@ -9,8 +9,8 @@ recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
[application] [application]
url = https://download.nextcloud.com/server/releases/nextcloud-16.0.3.tar.bz2 url = https://download.nextcloud.com/server/releases/nextcloud-27.1.2.tar.bz2
md5sum = d81902d2dec5d547779bec6336a438be md5sum = a23afb146993d7449b78395739f27742
[template-nextcloud-install.sh] [template-nextcloud-install.sh]
<= nc-download <= nc-download
...@@ -46,37 +46,37 @@ shared = true ...@@ -46,37 +46,37 @@ shared = true
[news-updater] [news-updater]
<= nc-download-unpacked <= nc-download-unpacked
url = https://github.com/nextcloud/news-updater/archive/10.0.1.tar.gz url = https://github.com/nextcloud/news-updater/archive/11.0.0.tar.gz
md5sum = 37387199c0482e08d01e9294cd95eaad md5sum = 1e75222638cab49d3f66b7c76394f104
[nextcloud-app-spreed] [nextcloud-app-spreed]
<= nc-download-unpacked <= nc-download-unpacked
url = https://github.com/nextcloud/spreed/releases/download/v6.0.5/spreed-6.0.5.tar.gz url = https://github.com/nextcloud-releases/spreed/releases/download/v17.1.1/spreed-v17.1.1.tar.gz
md5sum = 002c09e543edc141f6ca848782573376 md5sum = 24e6be17fb232a3c18de5e9c0a03c7c3
[nextcloud-app-richdocuments] [nextcloud-app-richdocuments]
<= nc-download-unpacked <= nc-download-unpacked
url = https://github.com/nextcloud/richdocuments/releases/download/v3.7.17/richdocuments.tar.gz url = https://github.com/nextcloud/richdocuments/releases/download/v8.2.0/richdocuments.tar.gz
md5sum = 5559cd14a4a0a93d2a39b260538839f8 md5sum = 1e9176b0f08670996488572aea081996
[nextcloud-app-calendar] [nextcloud-app-calendar]
<= nc-download-unpacked <= nc-download-unpacked
url = https://github.com/nextcloud/calendar/releases/download/v1.7.3/calendar.tar.gz url = https://github.com/nextcloud-releases/calendar/releases/download/v4.5.2/calendar-v4.5.2.tar.gz
md5sum = ab398d943eb6939e3e71df5b1a1abf87 md5sum = 88adcbc34ef7e461f515ba96b82365d9
[nextcloud-app-rainloop] [nextcloud-app-snappymail]
<= nc-download-unpacked <= nc-download-unpacked
url = https://github.com/pierre-alain-b/rainloop-nextcloud/releases/download/6.1.4/rainloop.tar.gz url = https://snappymail.eu/repository/nextcloud/snappymail-2.29.1-nextcloud.tar.gz
md5sum = 7cefc3dd3bd52b42d381de7d7447691f md5sum = b7500ea4e089d8a9e3fa381d6df3a3b0
[nextcloud-app-news] [nextcloud-app-news]
<= nc-download-unpacked <= nc-download-unpacked
url = https://github.com/nextcloud/news/releases/download/14.2.2/news.tar.gz url = https://github.com/nextcloud/news/releases/download/24.0.0/news.tar.gz
md5sum = f48d4b5dcbc078131bb86a4ae619da99 md5sum = 8e1a7e3e49e6dbd754bc1b9ff2f85371
[nextcloud-apps] [nextcloud-apps]
spreed = ${nextcloud-app-spreed:location} spreed = ${nextcloud-app-spreed:location}
richdocuments = ${nextcloud-app-richdocuments:location} richdocuments = ${nextcloud-app-richdocuments:location}
calendar = ${nextcloud-app-calendar:location} calendar = ${nextcloud-app-calendar:location}
rainloop = ${nextcloud-app-rainloop:location} snappymail = ${nextcloud-app-snappymail:location}
news = ${nextcloud-app-news:location} news = ${nextcloud-app-news:location}
...@@ -279,10 +279,15 @@ class TestServices(NextCloudTestCase): ...@@ -279,10 +279,15 @@ class TestServices(NextCloudTestCase):
"turn_servers" "turn_servers"
]) ])
self.assertEqual(turn_config.strip(), b'[{"server":"","secret":"","protocols":"udp,tcp"}]') self.assertEqual(turn_config.strip(), b'[{"server":"","secret":"","protocols":"udp,tcp"}]')
news_config_file = os.path.join(self.partition_dir, 'srv/data/news/config/config.ini')
with open(news_config_file) as f: news_config = subprocess.check_output([
config = f.read() php_bin,
self.assertRegex(config, r"(useCronUpdates\s+=\s+false)") occ,
"config:app:get",
"news",
"useCronUpdates"
])
self.assertEqual(news_config.strip(), b'false')
class TestNextCloudParameters(NextCloudTestCase): class TestNextCloudParameters(NextCloudTestCase):
......
...@@ -49,7 +49,7 @@ class enbWebSocket: ...@@ -49,7 +49,7 @@ class enbWebSocket:
"rf_info": True "rf_info": True
}) })
r = self.recv('rf') r = self.recv('rf')
self.logger.info('RF info', extra={'data': r}) self.logger.info('RF info', extra={'data': json.dumps(r)})
if __name__ == '__main__': if __name__ == '__main__':
ws = enbWebSocket() ws = enbWebSocket()
......
...@@ -24,11 +24,11 @@ md5sum = c4d5e9fcf460d88bc2b4bcfbdfe554f7 ...@@ -24,11 +24,11 @@ md5sum = c4d5e9fcf460d88bc2b4bcfbdfe554f7
[amarisoft-rf-info.jinja2.py] [amarisoft-rf-info.jinja2.py]
_update_hash_filename_ = amarisoft-rf-info.jinja2.py _update_hash_filename_ = amarisoft-rf-info.jinja2.py
md5sum = c930c28365c685a6066f382c9b5d8893 md5sum = ab666fdfadbfc7d8a16ace38d295c883
[ncclient_common] [ncclient_common]
_update_hash_filename_ = ncclient_common.py _update_hash_filename_ = ncclient_common.py
md5sum = f34a196e947fa58b141431a00cc744df md5sum = 63316f6a8a6a480e10db7e78cca72f3b
[lopcomm-rrh-stats.jinja2.py] [lopcomm-rrh-stats.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-stats.jinja2.py _update_hash_filename_ = lopcomm-rrh-stats.jinja2.py
...@@ -40,11 +40,11 @@ md5sum = f2f550b68c8ab243ce1a4bb73a9abc1c ...@@ -40,11 +40,11 @@ md5sum = f2f550b68c8ab243ce1a4bb73a9abc1c
[lopcomm-rrh-software.jinja2.py] [lopcomm-rrh-software.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-software.jinja2.py _update_hash_filename_ = lopcomm-rrh-software.jinja2.py
md5sum = 860fa5e5bab65f414535c7e25f622a6c md5sum = 2cd8515253b75e2ab13cc77399762851
[lopcomm-rrh-supervision.jinja2.py] [lopcomm-rrh-supervision.jinja2.py]
_update_hash_filename_ = lopcomm-rrh-supervision.jinja2.py _update_hash_filename_ = lopcomm-rrh-supervision.jinja2.py
md5sum = a2ba0343ddb7f9cf2904a4c5c751f68a md5sum = 243d9fbf640b8dc8bf63d69b07b8afed
[template-enb] [template-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg _update_hash_filename_ = instance-enb.jinja2.cfg
......
#!{{ python_path }} #!{{ python_path }}
import time import time
import json
import xmltodict import xmltodict
import sys import sys
import re import re
...@@ -60,7 +61,7 @@ if __name__ == '__main__': ...@@ -60,7 +61,7 @@ if __name__ == '__main__':
if download_reply_xml: if download_reply_xml:
nc.logger.info("Download proceed.") nc.logger.info("Download proceed.")
download_data = xmltodict.parse(download_reply_xml) download_data = xmltodict.parse(download_reply_xml)
nc.software_reply_json_logger.info('', extra={'data': download_data}) nc.software_reply_json_logger.info('', extra={'data': json.dumps(download_data)})
install_rpc_xml = f""" install_rpc_xml = f"""
<software-install xmlns="urn:o-ran:software-management:1.0"> <software-install xmlns="urn:o-ran:software-management:1.0">
...@@ -74,7 +75,7 @@ if __name__ == '__main__': ...@@ -74,7 +75,7 @@ if __name__ == '__main__':
if install_reply_xml: if install_reply_xml:
nc.logger.info("Installation proceed.") nc.logger.info("Installation proceed.")
install_data = xmltodict.parse(install_reply_xml) install_data = xmltodict.parse(install_reply_xml)
nc.software_reply_json_logger.info('', extra={'data': install_data}) nc.software_reply_json_logger.info('', extra={'data': json.dumps(install_data)})
if nonrunning_slot_name_build_version in "{{firmware_name}}": if nonrunning_slot_name_build_version in "{{firmware_name}}":
activate_rpc_xml = f""" activate_rpc_xml = f"""
...@@ -88,7 +89,7 @@ if __name__ == '__main__': ...@@ -88,7 +89,7 @@ if __name__ == '__main__':
if activate_reply_xml: if activate_reply_xml:
nc.logger.info("Activation proceed.") nc.logger.info("Activation proceed.")
activate_data = xmltodict.parse(activate_reply_xml) activate_data = xmltodict.parse(activate_reply_xml)
nc.software_reply_json_logger.info('', extra={'data': activate_data}) nc.software_reply_json_logger.info('', extra={'data': json.dumps(activate_data)})
nc.get_inventory() nc.get_inventory()
if nonrunning_slot_name_build_version in "{{firmware_name}}" and active_nonrunning_slot_name: if nonrunning_slot_name_build_version in "{{firmware_name}}" and active_nonrunning_slot_name:
......
#!{{ python_path }} #!{{ python_path }}
import time import time
import json
import xmltodict import xmltodict
import sys import sys
import re import re
...@@ -27,7 +28,7 @@ if __name__ == '__main__': ...@@ -27,7 +28,7 @@ if __name__ == '__main__':
if supervision_subscription_reply_xml: if supervision_subscription_reply_xml:
nc.logger.info("Subscription created") nc.logger.info("Subscription created")
supervision_subscription_data = xmltodict.parse(supervision_subscription_reply_xml) supervision_subscription_data = xmltodict.parse(supervision_subscription_reply_xml)
nc.supervision_reply_json_logger.info('', extra={'data': supervision_subscription_data}) nc.supervision_reply_json_logger.info('', extra={'data': json.dumps(supervision_subscription_data)})
while True: while True:
supervision_watchdog_rpc_xml = """ supervision_watchdog_rpc_xml = """
<supervision-watchdog-reset xmlns="urn:o-ran:supervision:1.0"> <supervision-watchdog-reset xmlns="urn:o-ran:supervision:1.0">
...@@ -43,7 +44,7 @@ if __name__ == '__main__': ...@@ -43,7 +44,7 @@ if __name__ == '__main__':
nc.logger.info("NETCONF server replied") nc.logger.info("NETCONF server replied")
supervision_watchdog_data = xmltodict.parse(supervision_watchdog_reply_xml) supervision_watchdog_data = xmltodict.parse(supervision_watchdog_reply_xml)
nc.supervision_reply_json_logger.info('', extra={'data': supervision_watchdog_data}) nc.supervision_reply_json_logger.info('', extra={'data': json.dumps(supervision_watchdog_data)})
# It must be the same interval as <supervision-notification-interval> # It must be the same interval as <supervision-notification-interval>
time.sleep(60) time.sleep(60)
else: else:
......
import time import time
import logging import logging
import json
import xmltodict import xmltodict
from logging.handlers import RotatingFileHandler from logging.handlers import RotatingFileHandler
from ncclient import manager from ncclient import manager
...@@ -111,15 +112,15 @@ class LopcommNetconfClient: ...@@ -111,15 +112,15 @@ class LopcommNetconfClient:
result_in_xml = result._raw result_in_xml = result._raw
data_dict = xmltodict.parse(result_in_xml) data_dict = xmltodict.parse(result_in_xml)
if 'alarm-notif' in data_dict['notification']: if 'alarm-notif' in data_dict['notification']:
self.json_logger.info('', extra={'data': data_dict}) self.json_logger.info('', extra={'data': json.dumps(data_dict)})
elif 'supervision-notification' in data_dict['notification']: elif 'supervision-notification' in data_dict['notification']:
self.supervision_json_logger.info('', extra={'data': data_dict}) self.supervision_json_logger.info('', extra={'data': json.dumps(data_dict)})
elif 'netconf-session-start' in data_dict['notification'] or 'netconf-session-end' in data_dict['notification']: elif 'netconf-session-start' in data_dict['notification'] or 'netconf-session-end' in data_dict['notification']:
self.ncsession_json_logger.info('', extra={'data': data_dict}) self.ncsession_json_logger.info('', extra={'data': json.dumps(data_dict)})
elif any(event in data_dict['notification'] for event in ['install-event', 'activation-event', 'download-event']): elif any(event in data_dict['notification'] for event in ['install-event', 'activation-event', 'download-event']):
self.software_json_logger.info('', extra={'data': data_dict}) self.software_json_logger.info('', extra={'data': json.dumps(data_dict)})
else: else:
self.cfg_json_logger.info('', extra={'data': data_dict}) self.cfg_json_logger.info('', extra={'data': json.dumps(data_dict)})
def edit_config(self, config_files): def edit_config(self, config_files):
for config_file in config_files: for config_file in config_files:
with open(config_file) as f: with open(config_file) as f:
...@@ -152,7 +153,7 @@ class LopcommNetconfClient: ...@@ -152,7 +153,7 @@ class LopcommNetconfClient:
reset_reply_xml = self.custom_rpc_request(reset_rpc_xml) reset_reply_xml = self.custom_rpc_request(reset_rpc_xml)
if reset_reply_xml: if reset_reply_xml:
reset_data = xmltodict.parse(reset_reply_xml) reset_data = xmltodict.parse(reset_reply_xml)
self.software_reply_json_logger.info('', extra={'data': reset_data}) self.software_reply_json_logger.info('', extra={'data': json.dumps(reset_data)})
self.logger.info('Wait 60 second then reboot!') self.logger.info('Wait 60 second then reboot!')
time.sleep(60) time.sleep(60)
...@@ -169,7 +170,7 @@ class LopcommNetconfClient: ...@@ -169,7 +170,7 @@ class LopcommNetconfClient:
if inventory_reply_xml: if inventory_reply_xml:
self.logger.info('Finish fetching software inventory.') self.logger.info('Finish fetching software inventory.')
inventory_data = xmltodict.parse(inventory_reply_xml) inventory_data = xmltodict.parse(inventory_reply_xml)
self.software_reply_json_logger.info('', extra={'data': inventory_data}) self.software_reply_json_logger.info('', extra={'data': json.dumps(inventory_data)})
nonrunning_slot_name = None nonrunning_slot_name = None
running_slot_name = None running_slot_name = None
......
[instance-profile] [instance-profile]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = f622d8b6e8ce96c75316a856b26caf96 md5sum = 6610ce91964dda42edbcb5b7837777c2
...@@ -55,5 +55,4 @@ log = ${:var}/log ...@@ -55,5 +55,4 @@ log = ${:var}/log
[publish-connection-parameter] [publish-connection-parameter]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
opc_ua_port = ${instance-parameter:configuration.opc_ua_port} url-ipv6 = opc.tcp://[${instance-parameter:ipv6-random}]:${instance-parameter:configuration.opc_ua_port}
interface = ${instance-parameter:configuration.interface}
...@@ -40,6 +40,5 @@ class OsieTestCase(SlapOSInstanceTestCase): ...@@ -40,6 +40,5 @@ class OsieTestCase(SlapOSInstanceTestCase):
return {"mode": 1} return {"mode": 1}
def test(self): def test(self):
connexion_parameters = self.computer_partition.getConnectionParameterDict() parameter_dict = self.computer_partition.getConnectionParameterDict()
self.assertIn('opc_ua_port', connexion_parameters) self.assertIn('url-ipv6', parameter_dict)
self.assertIn('interface', connexion_parameters)
...@@ -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
......
...@@ -22,7 +22,7 @@ md5sum = 5784bea3bd608913769ff9a8afcccb68 ...@@ -22,7 +22,7 @@ md5sum = 5784bea3bd608913769ff9a8afcccb68
[profile-frontend] [profile-frontend]
filename = instance-frontend.cfg.in filename = instance-frontend.cfg.in
md5sum = 5c2f79d0773bd8594ccf1c34a7d27d53 md5sum = 9a33900d735ef074b5887d61bca54243
[profile-master] [profile-master]
filename = instance-master.cfg.in filename = instance-master.cfg.in
...@@ -30,7 +30,7 @@ md5sum = 3006197ddce87bd92866b76b5ce8ce08 ...@@ -30,7 +30,7 @@ md5sum = 3006197ddce87bd92866b76b5ce8ce08
[profile-slave-list] [profile-slave-list]
filename = instance-slave-list.cfg.in filename = instance-slave-list.cfg.in
md5sum = 8289620cb32dbdfcca6ba112c7ec7b2b md5sum = b75e42233c1b7bdd5f21971ed8907efc
[profile-master-publish-slave-information] [profile-master-publish-slave-information]
filename = instance-master-publish-slave-information.cfg.in filename = instance-master-publish-slave-information.cfg.in
...@@ -38,11 +38,11 @@ md5sum = cba4d995962f7fbeae3f61c9372c4181 ...@@ -38,11 +38,11 @@ md5sum = cba4d995962f7fbeae3f61c9372c4181
[template-frontend-haproxy-configuration] [template-frontend-haproxy-configuration]
_update_hash_filename_ = templates/frontend-haproxy.cfg.in _update_hash_filename_ = templates/frontend-haproxy.cfg.in
md5sum = eef9712c6fe4d62b570b9059157c67ea md5sum = fc68a825c656bde0ae69a936936b0478
[template-frontend-haproxy-crt-list] [template-frontend-haproxy-crt-list]
_update_hash_filename_ = templates/frontend-haproxy-crt-list.in _update_hash_filename_ = templates/frontend-haproxy-crt-list.in
md5sum = 238760d48d2875f087ad2d784e2a8fcd md5sum = 2f3f75773eb879b97d1ff5e04486591c
[template-not-found-html] [template-not-found-html]
_update_hash_filename_ = templates/notfound.html _update_hash_filename_ = templates/notfound.html
...@@ -50,7 +50,7 @@ md5sum = d56e2cfab274cbbbe5b387f2f6e417df ...@@ -50,7 +50,7 @@ md5sum = d56e2cfab274cbbbe5b387f2f6e417df
[template-backend-haproxy-configuration] [template-backend-haproxy-configuration]
_update_hash_filename_ = templates/backend-haproxy.cfg.in _update_hash_filename_ = templates/backend-haproxy.cfg.in
md5sum = b4b55d931249f11e4e1256afeb74b503 md5sum = 6457064905f818f21e3733eb4278a580
[template-empty] [template-empty]
_update_hash_filename_ = templates/empty.in _update_hash_filename_ = templates/empty.in
...@@ -102,7 +102,7 @@ md5sum = e82ccdb0b26552a1c88ff523d8fae24a ...@@ -102,7 +102,7 @@ md5sum = e82ccdb0b26552a1c88ff523d8fae24a
[profile-kedifa] [profile-kedifa]
filename = instance-kedifa.cfg.in filename = instance-kedifa.cfg.in
md5sum = a9854d48e750b3599043715c95138d5d md5sum = 669da915003122e48646dc75fec239a5
[template-frontend-haproxy-rsyslogd-conf] [template-frontend-haproxy-rsyslogd-conf]
_update_hash_filename_ = templates/frontend-haproxy-rsyslogd.conf.in _update_hash_filename_ = templates/frontend-haproxy-rsyslogd.conf.in
......
...@@ -1105,12 +1105,16 @@ delaycompress = ...@@ -1105,12 +1105,16 @@ delaycompress =
url = {{ software_parameter_dict['template_wrapper'] }} url = {{ software_parameter_dict['template_wrapper'] }}
output = ${directory:scripts}/logrotate-setup-validate output = ${directory:scripts}/logrotate-setup-validate
command = command =
if ${logrotate:wrapper-path} -d > ${:state-file} 2>&1 ; then if ${logrotate:wrapper-path} -d > ${:state-file-tmp} 2>&1 ; then
cat /dev/null > ${:state-file} cat /dev/null > ${:state-file}
rm -f ${:state-file-tmp}
else
mv ${:state-file-tmp} ${:state-file}
fi fi
extra-context = extra-context =
key content :command key content :command
state-file = ${directory:run}/logrotate-setup.state state-file = ${directory:run}/logrotate-setup.state
state-file-tmp = ${:state-file}.tmp
[promise-logrotate-setup] [promise-logrotate-setup]
<= monitor-promise-base <= monitor-promise-base
......
...@@ -329,12 +329,16 @@ monitor-base-url = ${monitor-instance-parameter:monitor-base-url} ...@@ -329,12 +329,16 @@ monitor-base-url = ${monitor-instance-parameter:monitor-base-url}
url = {{ software_parameter_dict['template_wrapper'] }} url = {{ software_parameter_dict['template_wrapper'] }}
output = ${directory:scripts}/logrotate-setup-validate output = ${directory:scripts}/logrotate-setup-validate
command = command =
if ${logrotate:wrapper-path} -d > ${:state-file} 2>&1 ; then if ${logrotate:wrapper-path} -d > ${:state-file-tmp} 2>&1 ; then
cat /dev/null > ${:state-file} cat /dev/null > ${:state-file}
rm -f ${:state-file-tmp}
else
mv ${:state-file-tmp} ${:state-file}
fi fi
extra-context = extra-context =
key content :command key content :command
state-file = ${directory:run}/logrotate-setup.state state-file = ${directory:run}/logrotate-setup.state
state-file-tmp = ${:state-file}.tmp
[promise-logrotate-setup] [promise-logrotate-setup]
<= monitor-promise-base <= monitor-promise-base
......
{%- set kedifa_updater_mapping = [] %} {%- set kedifa_updater_mapping = [] %}
{%- set cached_server_dict = {} %} {%- set cached_server_dict = {} %}
{%- set backend_slave_list = [] %} {%- set backend_slave_dict = {} %}
{%- set frontend_slave_list = [] %} {%- set frontend_slave_dict = {} %}
{%- set part_list = [] %} {%- set part_list = [] %}
{%- set cache_port = frontend_haproxy_configuration.get('cache-port') %} {%- set cache_port = frontend_haproxy_configuration.get('cache-port') %}
{%- set cache_access = "http://%s:%s/HTTP" % (instance_parameter_dict['ipv4-random'], cache_port) %} {%- set cache_access = "http://%s:%s/HTTP" % (instance_parameter_dict['ipv4-random'], cache_port) %}
...@@ -228,7 +228,8 @@ context = ...@@ -228,7 +228,8 @@ context =
{%- do slave_publish_dict.__setitem__('url', "http://%s" % slave_instance.get('custom_domain')) %} {%- do slave_publish_dict.__setitem__('url', "http://%s" % slave_instance.get('custom_domain')) %}
{%- do slave_publish_dict.__setitem__('site_url', "http://%s" % slave_instance.get('custom_domain')) %} {%- do slave_publish_dict.__setitem__('site_url', "http://%s" % slave_instance.get('custom_domain')) %}
{%- do slave_publish_dict.__setitem__('secure_access', 'https://%s' % slave_instance.get('custom_domain')) %} {%- do slave_publish_dict.__setitem__('secure_access', 'https://%s' % slave_instance.get('custom_domain')) %}
{%- set host_list = slave_instance.get('server-alias', '').split() %} {%- do slave_instance.__setitem__('server-alias', slave_instance.get('server-alias', '').split()) %}
{%- set host_list = slave_instance['server-alias'] %}
{%- if slave_instance.get('custom_domain') not in host_list %} {%- if slave_instance.get('custom_domain') not in host_list %}
{%- do host_list.append(slave_instance.get('custom_domain')) %} {%- do host_list.append(slave_instance.get('custom_domain')) %}
{%- endif %} {%- endif %}
...@@ -385,9 +386,9 @@ local_ipv4 = {{ dumps('' ~ instance_parameter_dict['ipv4-random']) }} ...@@ -385,9 +386,9 @@ local_ipv4 = {{ dumps('' ~ instance_parameter_dict['ipv4-random']) }}
{#- ############################### #} {#- ############################### #}
{#- Prepare Slave Information #} {#- Prepare Slave Information #}
{%- do slave_instance_information_list.append(slave_publish_dict) %} {%- do slave_instance_information_list.append(slave_publish_dict) %}
{%- do frontend_slave_list.append(slave_instance) %} {%- do frontend_slave_dict.__setitem__(slave_instance['slave_reference'], slave_instance) %}
{%- if slave_type != 'redirect' %} {%- if slave_type != 'redirect' %}
{%- do backend_slave_list.append(slave_instance) %} {%- do backend_slave_dict.__setitem__(slave_instance['slave_reference'], slave_instance) %}
{%- endif %} {%- endif %}
{%- endfor %} {# Slave iteration ends for slave_instance in slave_instance_list #} {%- endfor %} {# Slave iteration ends for slave_instance in slave_instance_list #}
...@@ -477,14 +478,30 @@ output = ${:file} ...@@ -477,14 +478,30 @@ output = ${:file}
##<Frontend haproxy> ##<Frontend haproxy>
[frontend-haproxy-slave-list] [frontend-haproxy-slave-list]
list = {{ dumps(sorted(frontend_slave_list, key=operator_module.itemgetter('slave_reference'))) }} dict = {{ dumps(frontend_slave_dict) }}
{%- set slave_instance_hostname_frontend_order = [] %}
{%- for slave_instance in frontend_slave_dict.values() %}
{%- for hostname in slave_instance['host_list'] %}
{%- if '*' in hostname %}
{%- set order_value = hostname.count('.') %}
{%- else %}
{%- set order_value = 1000 %}
{%- endif %}
{%- do slave_instance_hostname_frontend_order.append({
'index': order_value,
'hostname': hostname,
'slave_reference': slave_instance['slave_reference']}) %}
{%- endfor %}
{%- endfor %}
order = {{ dumps(slave_instance_hostname_frontend_order) }}
[frontend-haproxy-crt-list] [frontend-haproxy-crt-list]
<= jinja2-template-base <= jinja2-template-base
template = {{ template_frontend_haproxy_crt_list }} template = {{ template_frontend_haproxy_crt_list }}
rendered = ${frontend-haproxy-config:crt-list} rendered = ${frontend-haproxy-config:crt-list}
extra-context = extra-context =
key frontend_slave_list frontend-haproxy-slave-list:list key frontend_slave_dict frontend-haproxy-slave-list:dict
key frontend_slave_order frontend-haproxy-slave-list:order
section configuration frontend-haproxy-config section configuration frontend-haproxy-config
[frontend-haproxy-configuration] [frontend-haproxy-configuration]
...@@ -492,7 +509,8 @@ extra-context = ...@@ -492,7 +509,8 @@ extra-context =
template = {{ template_frontend_haproxy_configuration }} template = {{ template_frontend_haproxy_configuration }}
rendered = ${frontend-haproxy-config:file} rendered = ${frontend-haproxy-config:file}
extra-context = extra-context =
key frontend_slave_list frontend-haproxy-slave-list:list key frontend_slave_dict frontend-haproxy-slave-list:dict
key frontend_slave_order frontend-haproxy-slave-list:order
key crt_list frontend-haproxy-crt-list:rendered key crt_list frontend-haproxy-crt-list:rendered
section configuration frontend-haproxy-config section configuration frontend-haproxy-config
...@@ -512,9 +530,25 @@ autocert-directory = {{ frontend_directory['autocert'] }} ...@@ -512,9 +530,25 @@ autocert-directory = {{ frontend_directory['autocert'] }}
< = jinja2-template-base < = jinja2-template-base
url = {{ template_backend_haproxy_configuration }} url = {{ template_backend_haproxy_configuration }}
output = ${backend-haproxy-config:file} output = ${backend-haproxy-config:file}
backend_slave_list = {{ dumps(sorted(backend_slave_list, key=operator_module.itemgetter('slave_reference'))) }} backend_slave_dict = {{ dumps(backend_slave_dict) }}
{%- set slave_instance_hostname_backend_order = [] %}
{%- for slave_instance in backend_slave_dict.values() %}
{%- for hostname in slave_instance['host_list'] %}
{%- if '*' in hostname %}
{%- set order_value = hostname.count('.') %}
{%- else %}
{%- set order_value = 1000 %}
{%- endif %}
{%- do slave_instance_hostname_backend_order.append({
'index': order_value,
'hostname': hostname,
'slave_reference': slave_instance['slave_reference']}) %}
{%- endfor %}
{%- endfor %}
order = {{ dumps(slave_instance_hostname_backend_order) }}
extra-context = extra-context =
key backend_slave_list :backend_slave_list key backend_slave_dict :backend_slave_dict
key backend_slave_order :order
section configuration backend-haproxy-config section configuration backend-haproxy-config
[backend-haproxy-config] [backend-haproxy-config]
......
...@@ -211,7 +211,7 @@ output = ${buildout:directory}/template-wrapper.cfg ...@@ -211,7 +211,7 @@ output = ${buildout:directory}/template-wrapper.cfg
<=download-template <=download-template
[versions] [versions]
kedifa = 0.0.6 kedifa = 0.0.7
# Modern KeDiFa requires zc.lockfile # Modern KeDiFa requires zc.lockfile
zc.lockfile = 1.4 zc.lockfile = 1.4
......
...@@ -17,30 +17,20 @@ defaults ...@@ -17,30 +17,20 @@ defaults
default-server init-addr last,libc,none default-server init-addr last,libc,none
{%- set SCHEME_PREFIX_MAPPING = { 'http': 'http_backend', 'https': 'https_backend'} %} {%- set SCHEME_PREFIX_MAPPING = { 'http': 'http_backend', 'https': 'https_backend'} %}
{%- macro frontend_entry(slave_instance, scheme, wildcard) %} {%- macro frontend_entry(slave_reference, hostname, slave_instance, scheme) %}
{#- wildcard switch allows to put dangerous entries in the end, as haproxy parses with first match #}
{%- if slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['hostname'] and slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['port'] %} {%- if slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['hostname'] and slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['port'] %}
{%- set matched = {'count': 0} %} {%- if hostname.startswith('*') %}
{%- for host in slave_instance['host_list'] %} {%- set matcher = '' ~ hostname[2:] ~ '$' %}
{#- Match up to the end or optional port (starting with ':') #} {%- else %}
{#- Please note that this matching is quite sensitive to changes and hard to test, so avoid needless changes #} {%- set matcher = '^' ~ hostname ~ '$' %}
{%- if wildcard and host.startswith('*.') %} {%- endif %}
{%- do matched.__setitem__('count', matched['count'] + 1) %} {%- set acl = '{ req.hdr(host),host_only -m reg ' ~ matcher ~ ' }' %}
# match wildcard {{ host }} {%- if slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['health-check-failover-hostname'] %}
acl is_{{ slave_instance['slave_reference'] }}_{{ scheme }} hdr_reg(host) -i {{ host[2:] }}($|:.*) acl is_failover_{{ slave_reference }}_{{ scheme }} nbsrv({{ slave_reference }}-{{ scheme }}) eq 0
{%- elif not wildcard and not host.startswith('*.') %} use_backend {{ slave_reference }}-{{ scheme }} if {{ acl }} ! is_failover_{{ slave_reference }}_{{ scheme }}
{%- do matched.__setitem__('count', matched['count'] + 1) %} use_backend {{ slave_reference }}-{{ scheme }}-failover if {{ acl }} is_failover_{{ slave_reference }}_{{ scheme }}
acl is_{{ slave_instance['slave_reference'] }}_{{ scheme }} hdr_reg(host) -i ^{{ host }}($|:.*) {%- else %}
{%- endif %} use_backend {{ slave_reference }}-{{ scheme }} if {{ acl }}
{%- endfor %}
{%- if matched['count'] > 0 %}
{%- if slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['health-check-failover-hostname'] %}
acl is_failover_{{ slave_instance['slave_reference'] }}_{{ scheme }} nbsrv({{ slave_instance['slave_reference'] }}-{{ scheme }}) eq 0
use_backend {{ slave_instance['slave_reference'] }}-{{ scheme }} if is_{{ slave_instance['slave_reference'] }}_{{ scheme }} ! is_failover_{{ slave_instance['slave_reference'] }}_{{ scheme }}
use_backend {{ slave_instance['slave_reference'] }}-{{ scheme }}-failover if is_{{ slave_instance['slave_reference'] }}_{{ scheme }} is_failover_{{ slave_instance['slave_reference'] }}_{{ scheme }}
{%- else %}
use_backend {{ slave_instance['slave_reference'] }}-{{ scheme }} if is_{{ slave_instance['slave_reference'] }}_{{ scheme }}
{%- endif %}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- endmacro %} {%- endmacro %}
...@@ -62,11 +52,8 @@ frontend http-backend ...@@ -62,11 +52,8 @@ frontend http-backend
http-response add-header Via "%HV rapid-cdn-backend-{{ configuration['node-id'] }}-{{ configuration['version-hash']}}" http-response add-header Via "%HV rapid-cdn-backend-{{ configuration['node-id'] }}-{{ configuration['version-hash']}}"
# setup Date # setup Date
http-response set-header Date %[date(),http_date] if ! { res.hdr(Date) -m found } http-response set-header Date %[date(),http_date] if ! { res.hdr(Date) -m found }
{%- for slave_instance in backend_slave_list -%} {%- for entry in backend_slave_order | sort(attribute="index,hostname", reverse=True) %}
{{ frontend_entry(slave_instance, 'http', False) }} {{- frontend_entry(entry['slave_reference'], entry['hostname'], backend_slave_dict[entry['slave_reference']], 'http') -}}
{%- endfor %}
{%- for slave_instance in backend_slave_list -%}
{{ frontend_entry(slave_instance, 'http', True) }}
{%- endfor %} {%- endfor %}
frontend https-backend frontend https-backend
...@@ -75,14 +62,12 @@ frontend https-backend ...@@ -75,14 +62,12 @@ frontend https-backend
http-response add-header Via "%HV rapid-cdn-backend-{{ configuration['node-id'] }}-{{ configuration['version-hash']}}" http-response add-header Via "%HV rapid-cdn-backend-{{ configuration['node-id'] }}-{{ configuration['version-hash']}}"
# setup Date # setup Date
http-response set-header Date %[date(),http_date] if ! { res.hdr(Date) -m found } http-response set-header Date %[date(),http_date] if ! { res.hdr(Date) -m found }
{%- for slave_instance in backend_slave_list -%} {%- for entry in backend_slave_order | sort(attribute="index,hostname", reverse=True) %}
{{ frontend_entry(slave_instance, 'https', False) }} {{- frontend_entry(entry['slave_reference'], entry['hostname'], backend_slave_dict[entry['slave_reference']], 'https') -}}
{%- endfor %} {%- endfor %}
{%- for slave_instance in backend_slave_list -%}
{{ frontend_entry(slave_instance, 'https', True) }}
{% endfor %}
{%- for slave_instance in backend_slave_list %} {%- for slave_reference in sorted(backend_slave_dict) %}
{%- set slave_instance = backend_slave_dict[slave_reference] %}
{%- for (scheme, prefix) in SCHEME_PREFIX_MAPPING.items() %} {%- for (scheme, prefix) in SCHEME_PREFIX_MAPPING.items() %}
{%- set info_dict = slave_instance[prefix] %} {%- set info_dict = slave_instance[prefix] %}
{%- if info_dict['hostname'] and info_dict['port'] %} {%- if info_dict['hostname'] and info_dict['port'] %}
......
{%- for slave in frontend_slave_list %} {%- for entry in frontend_slave_order | sort(attribute="index,hostname", reverse=True) %}
{%- set slave = frontend_slave_dict[entry['slave_reference']] %}
{%- set entry_list = [] %} {%- set entry_list = [] %}
{%- set sslbindconf = [] %} {%- set sslbindconf = [] %}
{#- <crtfile> #} {#- <crtfile> #}
...@@ -9,7 +10,7 @@ ...@@ -9,7 +10,7 @@
{%- do sslbindconf.append(slave['alpn']) %} {%- do sslbindconf.append(slave['alpn']) %}
{%- do entry_list.append('[' + ' '.join(sslbindconf) + ']') %} {%- do entry_list.append('[' + ' '.join(sslbindconf) + ']') %}
{#- <snifilter> #} {#- <snifilter> #}
{%- do entry_list.extend(slave['host_list']) %} {%- do entry_list.append(entry['hostname']) %}
{{- ' '.join(entry_list) }} {{- ' '.join(entry_list) }}
{% endfor -%} {% endfor -%}
# Fallback to default certificate # Fallback to default certificate
......
...@@ -23,30 +23,14 @@ defaults ...@@ -23,30 +23,14 @@ defaults
default-server init-addr last,libc,none default-server init-addr last,libc,none
{%- set SCHEME_PREFIX_MAPPING = { 'http': 'backend-http-info', 'https': 'backend-https-info'} %} {%- set SCHEME_PREFIX_MAPPING = { 'http': 'backend-http-info', 'https': 'backend-https-info'} %}
{%- macro frontend_entry(slave_instance, scheme, wildcard) %}
{#- wildcard switch allows to put dangerous entries in the end, as haproxy parses with first match #} {%- macro frontend_entry(slave_reference, hostname, scheme) %}
{#- if slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['hostname'] and slave_instance[SCHEME_PREFIX_MAPPING[scheme]]['port'] #} {%- if hostname.startswith('*') %}
{%- set host_list = (slave_instance.get('server-alias') or '').split() %} {%- set matcher = hostname[2:] %}
{%- if slave_instance.get('custom_domain') not in host_list %} {%- else %}
{%- do host_list.append(slave_instance.get('custom_domain')) %} {%- set matcher = '^' ~ hostname %}
{%- endif %} {%- endif %}
{%- set matched = {'count': 0} %} use_backend {{ slave_reference }}-{{ scheme }} if { req.hdr(host),host_only -m reg {{ matcher }}$ }
{%- for host in host_list %}
{#- Match up to the end or optional port (starting with ':') #}
{#- Please note that this matching is quite sensitive to changes and hard to test, so avoid needless changes #}
{%- if wildcard and host.startswith('*.') %}
{%- do matched.__setitem__('count', matched['count'] + 1) %}
# match wildcard {{ host }}
acl is_{{ slave_instance['slave_reference'] }} hdr_reg(host) -i {{ host[2:] }}($|:.*)
{%- elif not wildcard and not host.startswith('*.') %}
{%- do matched.__setitem__('count', matched['count'] + 1) %}
acl is_{{ slave_instance['slave_reference'] }} hdr_reg(host) -i ^{{ host }}($|:.*)
{%- endif %}
{%- endfor %}
{%- if matched['count'] > 0 %}
use_backend {{ slave_instance['slave_reference'] }}-{{ scheme }} if is_{{ slave_instance['slave_reference'] }}
{%- endif %}
{#- endif #}
{%- endmacro %} {%- endmacro %}
{%- macro frontend_common() %} {%- macro frontend_common() %}
...@@ -68,11 +52,8 @@ frontend http-frontend ...@@ -68,11 +52,8 @@ frontend http-frontend
bind {{ configuration['local-ipv4'] }}:{{ configuration['http-port'] }} bind {{ configuration['local-ipv4'] }}:{{ configuration['http-port'] }}
bind {{ configuration['global-ipv6'] }}:{{ configuration['http-port'] }} bind {{ configuration['global-ipv6'] }}:{{ configuration['http-port'] }}
{{ frontend_common() }} {{ frontend_common() }}
{%- for slave_instance in frontend_slave_list -%} {%- for entry in frontend_slave_order | sort(attribute="index,hostname", reverse=True) %}
{{ frontend_entry(slave_instance, 'http', False) }} {{- frontend_entry(entry['slave_reference'], entry['hostname'], 'http') -}}
{%- endfor %}
{%- for slave_instance in frontend_slave_list -%}
{{ frontend_entry(slave_instance, 'http', True) }}
{%- endfor %} {%- endfor %}
default_backend BACKEND_NOT_FOUND default_backend BACKEND_NOT_FOUND
...@@ -84,16 +65,14 @@ frontend https-frontend ...@@ -84,16 +65,14 @@ frontend https-frontend
bind quic6@{{ configuration['global-ipv6'] }}:{{ configuration['https-port'] }} ssl crt-list {{ crt_list }} alpn h3 bind quic6@{{ configuration['global-ipv6'] }}:{{ configuration['https-port'] }} ssl crt-list {{ crt_list }} alpn h3
{%- endif %} {%- endif %}
{{ frontend_common() }} {{ frontend_common() }}
{%- for slave_instance in frontend_slave_list -%} {%- for entry in frontend_slave_order | sort(attribute="index,hostname", reverse=True) %}
{{ frontend_entry(slave_instance, 'https', False) }} {{- frontend_entry(entry['slave_reference'], entry['hostname'], 'https') -}}
{%- endfor %}
{%- for slave_instance in frontend_slave_list -%}
{{ frontend_entry(slave_instance, 'https', True) }}
{%- endfor %} {%- endfor %}
default_backend BACKEND_NOT_FOUND default_backend BACKEND_NOT_FOUND
# Backends # Backends
{%- for slave_instance in frontend_slave_list %} {%- for slave_reference in sorted(frontend_slave_dict) %}
{%- set slave_instance = frontend_slave_dict[slave_reference] %}
{%- for (scheme, prefix) in SCHEME_PREFIX_MAPPING.items() %} {%- for (scheme, prefix) in SCHEME_PREFIX_MAPPING.items() %}
{%- set info_dict = slave_instance.get(prefix, slave_instance.get('backend-http-info')) %} {%- set info_dict = slave_instance.get(prefix, slave_instance.get('backend-http-info')) %}
backend {{ slave_instance['slave_reference'] }}-{{ scheme }} backend {{ slave_instance['slave_reference'] }}-{{ scheme }}
...@@ -189,7 +168,7 @@ backend {{ slave_instance['slave_reference'] }}-{{ scheme }} ...@@ -189,7 +168,7 @@ backend {{ slave_instance['slave_reference'] }}-{{ scheme }}
{%- endif %} {# if 'hostname' in info_dict and 'port' in info_dict #} {%- endif %} {# if 'hostname' in info_dict and 'port' in info_dict #}
{%- endif %} {# if scheme == 'http' and slave_instance['https-only'] #} {%- endif %} {# if scheme == 'http' and slave_instance['https-only'] #}
{%- endfor %} {# for (scheme, prefix) in SCHEME_PREFIX_MAPPING.items() #} {%- endfor %} {# for (scheme, prefix) in SCHEME_PREFIX_MAPPING.items() #}
{%- endfor %} {# for slave_instance in frontend_slave_list #} {%- endfor %} {# for slave_reference in sorted(frontend_slave_dict) #}
backend BACKEND_NOT_FOUND backend BACKEND_NOT_FOUND
{#- a bit hacky but working way to provide default CDN's 404 #} {#- a bit hacky but working way to provide default CDN's 404 #}
......
...@@ -1292,7 +1292,9 @@ class SlaveHttpFrontendTestCase(HttpFrontendTestCase): ...@@ -1292,7 +1292,9 @@ class SlaveHttpFrontendTestCase(HttpFrontendTestCase):
@classmethod @classmethod
def requestSlaves(cls): def requestSlaves(cls):
for slave_reference, partition_parameter_kw in list( # Note: List is sorted here, so that tests which want slaves
# ordered by their slave_reference are stable
for slave_reference, partition_parameter_kw in sorted(
cls.getSlaveParameterDictDict().items()): cls.getSlaveParameterDictDict().items()):
software_url = cls.getSoftwareURL() software_url = cls.getSoftwareURL()
software_type = cls.getInstanceSoftwareType() software_type = cls.getInstanceSoftwareType()
...@@ -6577,49 +6579,83 @@ class TestSlaveHostHaproxyClash(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -6577,49 +6579,83 @@ class TestSlaveHostHaproxyClash(SlaveHttpFrontendTestCase, TestDataMixin):
@classmethod @classmethod
def getSlaveParameterDictDict(cls): def getSlaveParameterDictDict(cls):
# Note: The slaves are specifically constructed to have an order which # Note: Slave list is ordered by it's reference, so that requestSlaves
# is triggering the problem. Slave list is sorted in many places, # will result in an order, which will hit the bugs covered here:
# and such slave configuration will result with them begin seen # * the most wildcard domain is requested first
# by backend haproxy configuration in exactly the way seen below # * then the more specific wildcard comes
# Ordering it here will not help at all. # * in the end specific slaves are there
return { return {
'wildcard': { '01wildcard': {
'url': cls.backend_url + 'wildcard', 'url': cls.backend_url + '01wildcard',
'custom_domain': '*.example.com',
'server-alias': 'example.com',
},
'02wildcard': {
'url': cls.backend_url + '02wildcard',
'custom_domain': '*.alias1.example.com', 'custom_domain': '*.alias1.example.com',
'server-alias': 'alias1.example.com',
},
'03zspecific': {
'url': cls.backend_url + '03zspecific',
'custom_domain': 'zspecific.example.com',
}, },
'zspecific': { '04zspecific': {
'url': cls.backend_url + 'zspecific', 'url': cls.backend_url + '04zspecific',
'custom_domain': 'zspecific.alias1.example.com', 'custom_domain': 'zspecific.alias1.example.com',
}, },
} }
def test(self): def test(self):
_, wildcard_key, _, wildcard_crt = createSelfSignedCertificate([
'*.example.com'])
_, wildcard_alias1_key, _, wildcard_alias1_crt = \
createSelfSignedCertificate([
'*.alias1.example.com'])
_, zspecific_key, _, zspecific_crt = createSelfSignedCertificate([
'zspecific.example.com'])
_, zspecific_alias1_key, _, zspecific_alias1_crt = \
createSelfSignedCertificate([
'zspecific.alias1.example.com'])
def uploadCertificate(key, certificate):
auth = mimikra.get(
self.current_generate_auth,
verify=self.kedifa_caucase_ca_certificate_file)
self.assertEqual(http.client.CREATED, auth.status_code)
data = certificate + key
upload = mimikra.put(
self.current_upload_url + auth.text,
data=data,
verify=self.kedifa_caucase_ca_certificate_file)
self.assertEqual(http.client.CREATED, upload.status_code)
self.assertSlaveBase( self.assertSlaveBase(
'wildcard', hostname='*.alias1') '01wildcard', hostname='*')
uploadCertificate(wildcard_key, wildcard_crt)
self.assertSlaveBase( self.assertSlaveBase(
'zspecific', hostname='zspecific.alias1') '02wildcard', hostname='*.alias1')
uploadCertificate(wildcard_alias1_key, wildcard_alias1_crt)
result_wildcard = fakeHTTPSResult( self.assertSlaveBase(
'other.alias1.example.com', '03zspecific', hostname='zspecific')
'test-path', uploadCertificate(zspecific_key, zspecific_crt)
headers={ self.assertSlaveBase(
'Timeout': '10', # more than default backend-connect-timeout == 5 '04zspecific', hostname='zspecific.alias1')
'Accept-Encoding': 'gzip', uploadCertificate(zspecific_alias1_key, zspecific_alias1_crt)
} self.runKedifaUpdater()
)
self.assertEqual(self.certificate_pem, result_wildcard.certificate)
self.assertEqualResultJson(result_wildcard, 'Path', '/wildcard/test-path')
result_specific = fakeHTTPSResult( def assertResult(hostname, path, certificate):
'zspecific.alias1.example.com', result_wildcard = fakeHTTPSResult(
'test-path', hostname,
headers={ 'test-path',
'Timeout': '10', # more than default backend-connect-timeout == 5 )
'Accept-Encoding': 'gzip', self.assertEqual(certificate, result_wildcard.certificate)
} self.assertEqualResultJson(
) result_wildcard, 'Path', '/%s/test-path' % (path,))
self.assertEqual(self.certificate_pem, result_specific.certificate) assertResult('www.example.com', '01wildcard', wildcard_crt)
self.assertEqualResultJson(result_specific, 'Path', '/zspecific/test-path') assertResult('www.alias1.example.com', '02wildcard', wildcard_alias1_crt)
assertResult('zspecific.example.com', '03zspecific', zspecific_crt)
assertResult(
'zspecific.alias1.example.com', '04zspecific', zspecific_alias1_crt)
class TestPassedRequestParameter(HttpFrontendTestCase): class TestPassedRequestParameter(HttpFrontendTestCase):
......
...@@ -15,17 +15,6 @@ ...@@ -15,17 +15,6 @@
"slap_software_release_url": "@@00getSoftwareURL@@", "slap_software_release_url": "@@00getSoftwareURL@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_instance_list": [ "slave_instance_list": [
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_empty",
"slave_title": "_empty"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_bad-backend",
"slave_title": "_bad-backend",
"url": "http://bad.backend/"
},
{ {
"authenticate-to-backend": true, "authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -33,13 +22,6 @@ ...@@ -33,13 +22,6 @@
"slave_title": "_Url", "slave_title": "_Url",
"url": " http://@@_ipv4_address@@:@@_server_http_port@@//?a=b&c= " "url": " http://@@_ipv4_address@@:@@_server_http_port@@//?a=b&c= "
}, },
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_url-netloc-list",
"slave_title": "_url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@"
},
{ {
"authenticate-to-backend": true, "authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -47,6 +29,13 @@ ...@@ -47,6 +29,13 @@
"slave_title": "_auth-to-backend", "slave_title": "_auth-to-backend",
"url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/"
}, },
{
"authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-backend-ignore",
"slave_title": "_auth-to-backend-backend-ignore",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
},
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-not-configured", "slave_reference": "_auth-to-backend-not-configured",
...@@ -54,429 +43,440 @@ ...@@ -54,429 +43,440 @@
"url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/"
}, },
{ {
"authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-backend-ignore", "slave_reference": "_bad-backend",
"slave_title": "_auth-to-backend-backend-ignore", "slave_title": "_bad-backend",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/" "url": "http://bad.backend/"
}, },
{ {
"backend-connect-retries": 5, "ciphers": "RSA-3DES-EDE-CBC-SHA RSA-AES128-CBC-SHA",
"backend-connect-timeout": 10,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"request-timeout": 15,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_url_https-url", "slave_reference": "_ciphers",
"slave_title": "_url_https-url", "slave_title": "_ciphers"
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
}, },
{ {
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https", "ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA",
"https-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_https-url-netloc-list", "slave_reference": "_ciphers-translation-all",
"slave_title": "_https-url-netloc-list", "slave_title": "_ciphers-translation-all"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
}, },
{ {
"server-alias": "alias1.example.com alias2.example.com", "custom_domain": "mycustomdomain.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias", "slave_reference": "_custom_domain",
"slave_title": "_server-alias", "slave_title": "_custom_domain",
"strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "", "custom_domain": "mycustomdomainserveralias.example.com",
"server-alias": "mycustomdomainserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-empty", "slave_reference": "_custom_domain_server_alias",
"slave_title": "_server-alias-empty", "slave_title": "_custom_domain_server_alias",
"strict-transport-security": "200",
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "*.alias1.example.com", "custom_domain": "customdomainsslcrtsslkey.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-wildcard", "slave_reference": "_custom_domain_ssl_crt_ssl_key",
"slave_title": "_server-alias-wildcard", "slave_title": "_custom_domain_ssl_crt_ssl_key",
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "alias3.example.com alias3.example.com", "custom_domain": "customdomainsslcrtsslkeysslcacrt.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-duplicated", "slave_reference": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt",
"slave_title": "_server-alias-duplicated", "slave_title": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "alias4.example.com", "custom_domain": "*.customdomain.example.com",
"server-alias": "alias4.example.com alias4.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias_custom_domain-duplicated", "slave_reference": "_custom_domain_wildcard",
"slave_title": "_server-alias_custom_domain-duplicated", "slave_title": "_custom_domain_wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disabled-cookie-list": "Coconut Chocolate Vanilia",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt", "slave_reference": "_disabled-cookie-list",
"slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt", "slave_title": "_disabled-cookie-list",
"ssl-proxy-verify": true, "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_proxy_ca_crt": "@@test_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"disabled-cookie-list": "Chocolate",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified", "slave_reference": "_disabled-cookie-list-simple",
"slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified", "slave_title": "_disabled-cookie-list-simple",
"ssl-proxy-verify": true, "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_proxy_ca_crt": "@@another_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify-unverified", "slave_reference": "_empty",
"slave_title": "_ssl-proxy-verify-unverified", "slave_title": "_empty"
"ssl-proxy-verify": true,
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_https-only", "slave_reference": "_enable-http2-default",
"slave_title": "_https-only", "slave_title": "_enable-http2-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "mycustomdomain.example.com", "enable-http2": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain", "slave_reference": "_enable-http2-false",
"slave_title": "_custom_domain", "slave_title": "_enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "*.customdomain.example.com", "enable-http2": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_wildcard", "slave_reference": "_enable-http2-true",
"slave_title": "_custom_domain_wildcard", "slave_title": "_enable-http2-true",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "mycustomdomainserveralias.example.com",
"server-alias": "mycustomdomainserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_server_alias", "slave_reference": "_enable-http3-default",
"slave_title": "_custom_domain_server_alias", "slave_title": "_enable-http3-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "customdomainsslcrtsslkey.example.com", "enable-http2": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_ssl_crt_ssl_key", "slave_reference": "_enable-http3-default-enable-http2-false",
"slave_title": "_custom_domain_ssl_crt_ssl_key", "slave_title": "_enable-http3-default-enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "customdomainsslcrtsslkeysslcacrt.example.com", "enable-http3": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt", "slave_reference": "_enable-http3-false",
"slave_title": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt", "slave_title": "_enable-http3-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_only", "slave_reference": "_enable-http3-true",
"slave_title": "_ssl_ca_crt_only", "slave_title": "_enable-http3-true",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false,
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_garbage", "slave_reference": "_enable-http3-true-enable-http2-false",
"slave_title": "_ssl_ca_crt_garbage", "slave_title": "_enable-http3-true-enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_does_not_match", "slave_reference": "_enable_cache",
"slave_title": "_ssl_ca_crt_does_not_match", "slave_title": "_enable_cache",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-no-cache-request": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope", "slave_reference": "_enable_cache-disable-no-cache-request",
"slave_title": "_type-zope", "slave_title": "_enable_cache-disable-no-cache-request",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true", "disable-via-header": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-prefer-gzip-encoding-to-backend", "slave_reference": "_enable_cache-disable-via-header",
"slave_title": "_type-zope-prefer-gzip-encoding-to-backend", "slave_title": "_enable_cache-disable-via-header",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "enable_cache": true,
"prefer-gzip-encoding-to-backend": "true", "https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-prefer-gzip-encoding-to-backend-https-only", "slave_reference": "_enable_cache-https-only-false",
"slave_title": "_type-zope-prefer-gzip-encoding-to-backend-https-only", "slave_title": "_enable_cache-https-only-false",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "custom_domain": "customdomainenablecache.example.com",
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-virtualhostroot-http-port", "slave_reference": "_enable_cache_custom_domain",
"slave_title": "_type-zope-virtualhostroot-http-port", "slave_title": "_enable_cache_custom_domain",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-http-port": "12345"
}, },
{ {
"enable_cache": true,
"server-alias": "enablecacheserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-virtualhostroot-https-port", "slave_reference": "_enable_cache_server_alias",
"slave_title": "_type-zope-virtualhostroot-https-port", "slave_title": "_enable_cache_server_alias",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-https-port": "12345"
}, },
{ {
"path": "///path/to/some/resource///", "https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-path", "slave_reference": "_https-only",
"slave_title": "_type-zope-path", "slave_title": "_https-only",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"default-path": "///default-path/to/some/resource///", "https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"https-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-default-path", "slave_reference": "_https-url-netloc-list",
"slave_title": "_type-zope-default-path", "slave_title": "_https-url-netloc-list",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-notebook", "slave_reference": "_prefer-gzip-encoding-to-backend",
"slave_title": "_type-notebook", "slave_title": "_prefer-gzip-encoding-to-backend",
"type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false",
"prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket", "slave_reference": "_prefer-gzip-encoding-to-backend-https-only",
"slave_title": "_type-websocket", "slave_title": "_prefer-gzip-encoding-to-backend-https-only",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "alias1.example.com alias2.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list", "slave_reference": "_server-alias",
"slave_title": "_type-websocket-websocket-path-list", "slave_title": "_server-alias",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"websocket-path-list": "////ws//// /with%20space/"
}, },
{ {
"server-alias": "alias3.example.com alias3.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-none", "slave_reference": "_server-alias-duplicated",
"slave_title": "_type-websocket-websocket-path-list-none", "slave_title": "_server-alias-duplicated",
"type": "websocket", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": null
}, },
{ {
"server-alias": "",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-empty", "slave_reference": "_server-alias-empty",
"slave_title": "_type-websocket-websocket-path-list-empty", "slave_title": "_server-alias-empty",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "strict-transport-security-sub-domains": true,
"websocket-path-list": "" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "*.alias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-transparent-false", "slave_reference": "_server-alias-wildcard",
"slave_title": "_type-websocket-websocket-transparent-false", "slave_title": "_server-alias-wildcard",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "strict-transport-security-preload": true,
"websocket-transparent": "false" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "alias4.example.com",
"server-alias": "alias4.example.com alias4.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-websocket-transparent-false", "slave_reference": "_server-alias_custom_domain-duplicated",
"slave_title": "_type-websocket-websocket-path-list-websocket-transparent-false", "slave_title": "_server-alias_custom_domain-duplicated",
"type": "websocket", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/",
"websocket-transparent": "false"
}, },
{ {
"https-only": false,
"https-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-redirect", "slave_reference": "_ssl-proxy-verify-unverified",
"slave_title": "_type-redirect", "slave_title": "_ssl-proxy-verify-unverified",
"type": "redirect", "ssl-proxy-verify": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"custom_domain": "customdomaintyperedirect.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-redirect-custom_domain", "slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt",
"slave_title": "_type-redirect-custom_domain", "slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt",
"type": "redirect", "ssl-proxy-verify": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "ssl_proxy_ca_crt": "@@test_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache", "slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified",
"slave_title": "_enable_cache", "slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "ssl-proxy-verify": true,
"ssl_proxy_ca_crt": "@@another_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"custom_domain": "customdomainenablecache.example.com",
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache_custom_domain", "slave_reference": "_ssl_ca_crt_does_not_match",
"slave_title": "_enable_cache_custom_domain", "slave_title": "_ssl_ca_crt_does_not_match",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"server-alias": "enablecacheserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache_server_alias", "slave_reference": "_ssl_ca_crt_garbage",
"slave_title": "_enable_cache_server_alias", "slave_title": "_ssl_ca_crt_garbage",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-no-cache-request": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-disable-no-cache-request", "slave_reference": "_ssl_ca_crt_only",
"slave_title": "_enable_cache-disable-no-cache-request", "slave_title": "_ssl_ca_crt_only",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-via-header": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-disable-via-header", "slave_reference": "_type-notebook",
"slave_title": "_enable_cache-disable-via-header", "slave_title": "_type-notebook",
"type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"https-only": false, "https-only": false,
"https-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-https-only-false", "slave_reference": "_type-redirect",
"slave_title": "_enable_cache-https-only-false", "slave_title": "_type-redirect",
"type": "redirect",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "custom_domain": "customdomaintyperedirect.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-false", "slave_reference": "_type-redirect-custom_domain",
"slave_title": "_enable-http2-false", "slave_title": "_type-redirect-custom_domain",
"type": "redirect",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-true", "slave_reference": "_type-websocket",
"slave_title": "_enable-http2-true", "slave_title": "_type-websocket",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-default", "slave_reference": "_type-websocket-websocket-path-list",
"slave_title": "_enable-http2-default", "slave_title": "_type-websocket-websocket-path-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/"
}, },
{ {
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-true", "slave_reference": "_type-websocket-websocket-path-list-empty",
"slave_title": "_enable-http3-true", "slave_title": "_type-websocket-websocket-path-list-empty",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": ""
}, },
{ {
"enable-http3": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-false", "slave_reference": "_type-websocket-websocket-path-list-none",
"slave_title": "_enable-http3-false", "slave_title": "_type-websocket-websocket-path-list-none",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": null
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-default", "slave_reference": "_type-websocket-websocket-path-list-websocket-transparent-false",
"slave_title": "_enable-http3-default", "slave_title": "_type-websocket-websocket-path-list-websocket-transparent-false",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/",
"websocket-transparent": "false"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-transparent-false",
"slave_title": "_type-websocket-websocket-transparent-false",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-transparent": "false"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope",
"slave_title": "_type-zope",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "default-path": "///default-path/to/some/resource///",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-default-enable-http2-false", "slave_reference": "_type-zope-default-path",
"slave_title": "_enable-http3-default-enable-http2-false", "slave_title": "_type-zope-default-path",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "path": "///path/to/some/resource///",
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-true-enable-http2-false", "slave_reference": "_type-zope-path",
"slave_title": "_enable-http3-true-enable-http2-false", "slave_title": "_type-zope-path",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true", "prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_prefer-gzip-encoding-to-backend", "slave_reference": "_type-zope-prefer-gzip-encoding-to-backend",
"slave_title": "_prefer-gzip-encoding-to-backend", "slave_title": "_type-zope-prefer-gzip-encoding-to-backend",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "https-only": "false",
"prefer-gzip-encoding-to-backend": "true", "prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_prefer-gzip-encoding-to-backend-https-only", "slave_reference": "_type-zope-prefer-gzip-encoding-to-backend-https-only",
"slave_title": "_prefer-gzip-encoding-to-backend-https-only", "slave_title": "_type-zope-prefer-gzip-encoding-to-backend-https-only",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disabled-cookie-list": "Coconut Chocolate Vanilia", "https-only": "false",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_disabled-cookie-list", "slave_reference": "_type-zope-virtualhostroot-http-port",
"slave_title": "_disabled-cookie-list", "slave_title": "_type-zope-virtualhostroot-http-port",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-http-port": "12345"
}, },
{ {
"disabled-cookie-list": "Chocolate",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_disabled-cookie-list-simple", "slave_reference": "_type-zope-virtualhostroot-https-port",
"slave_title": "_disabled-cookie-list-simple", "slave_title": "_type-zope-virtualhostroot-https-port",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-https-port": "12345"
}, },
{ {
"ciphers": "RSA-3DES-EDE-CBC-SHA RSA-AES128-CBC-SHA",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ciphers", "slave_reference": "_url-netloc-list",
"slave_title": "_ciphers" "slave_title": "_url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@"
}, },
{ {
"ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA", "backend-connect-retries": 5,
"backend-connect-timeout": 10,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"request-timeout": 15,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ciphers-translation-all", "slave_reference": "_url_https-url",
"slave_title": "_ciphers-translation-all" "slave_title": "_url_https-url",
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
} }
], ],
"timestamp": "@@TIMESTAMP@@" "timestamp": "@@TIMESTAMP@@"
......
...@@ -14,17 +14,6 @@ ...@@ -14,17 +14,6 @@
"slap_software_release_url": "@@00getSoftwareURL@@", "slap_software_release_url": "@@00getSoftwareURL@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_instance_list": [ "slave_instance_list": [
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_empty",
"slave_title": "_empty"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_bad-backend",
"slave_title": "_bad-backend",
"url": "http://bad.backend/"
},
{ {
"authenticate-to-backend": true, "authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -32,13 +21,6 @@ ...@@ -32,13 +21,6 @@
"slave_title": "_Url", "slave_title": "_Url",
"url": " http://@@_ipv4_address@@:@@_server_http_port@@//?a=b&c= " "url": " http://@@_ipv4_address@@:@@_server_http_port@@//?a=b&c= "
}, },
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_url-netloc-list",
"slave_title": "_url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@"
},
{ {
"authenticate-to-backend": true, "authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -46,6 +28,13 @@ ...@@ -46,6 +28,13 @@
"slave_title": "_auth-to-backend", "slave_title": "_auth-to-backend",
"url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/"
}, },
{
"authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-backend-ignore",
"slave_title": "_auth-to-backend-backend-ignore",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
},
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-not-configured", "slave_reference": "_auth-to-backend-not-configured",
...@@ -53,429 +42,440 @@ ...@@ -53,429 +42,440 @@
"url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/"
}, },
{ {
"authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-backend-ignore", "slave_reference": "_bad-backend",
"slave_title": "_auth-to-backend-backend-ignore", "slave_title": "_bad-backend",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/" "url": "http://bad.backend/"
}, },
{ {
"backend-connect-retries": 5, "ciphers": "RSA-3DES-EDE-CBC-SHA RSA-AES128-CBC-SHA",
"backend-connect-timeout": 10,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"request-timeout": 15,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_url_https-url", "slave_reference": "_ciphers",
"slave_title": "_url_https-url", "slave_title": "_ciphers"
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
}, },
{ {
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https", "ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA",
"https-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_https-url-netloc-list", "slave_reference": "_ciphers-translation-all",
"slave_title": "_https-url-netloc-list", "slave_title": "_ciphers-translation-all"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
}, },
{ {
"server-alias": "alias1.example.com alias2.example.com", "custom_domain": "mycustomdomain.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias", "slave_reference": "_custom_domain",
"slave_title": "_server-alias", "slave_title": "_custom_domain",
"strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "", "custom_domain": "mycustomdomainserveralias.example.com",
"server-alias": "mycustomdomainserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-empty", "slave_reference": "_custom_domain_server_alias",
"slave_title": "_server-alias-empty", "slave_title": "_custom_domain_server_alias",
"strict-transport-security": "200",
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "*.alias1.example.com", "custom_domain": "customdomainsslcrtsslkey.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-wildcard", "slave_reference": "_custom_domain_ssl_crt_ssl_key",
"slave_title": "_server-alias-wildcard", "slave_title": "_custom_domain_ssl_crt_ssl_key",
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "alias3.example.com alias3.example.com", "custom_domain": "customdomainsslcrtsslkeysslcacrt.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-duplicated", "slave_reference": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt",
"slave_title": "_server-alias-duplicated", "slave_title": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "alias4.example.com", "custom_domain": "*.customdomain.example.com",
"server-alias": "alias4.example.com alias4.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias_custom_domain-duplicated", "slave_reference": "_custom_domain_wildcard",
"slave_title": "_server-alias_custom_domain-duplicated", "slave_title": "_custom_domain_wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disabled-cookie-list": "Coconut Chocolate Vanilia",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt", "slave_reference": "_disabled-cookie-list",
"slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt", "slave_title": "_disabled-cookie-list",
"ssl-proxy-verify": true, "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_proxy_ca_crt": "@@test_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"disabled-cookie-list": "Chocolate",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified", "slave_reference": "_disabled-cookie-list-simple",
"slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified", "slave_title": "_disabled-cookie-list-simple",
"ssl-proxy-verify": true, "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_proxy_ca_crt": "@@another_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify-unverified", "slave_reference": "_empty",
"slave_title": "_ssl-proxy-verify-unverified", "slave_title": "_empty"
"ssl-proxy-verify": true,
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_https-only", "slave_reference": "_enable-http2-default",
"slave_title": "_https-only", "slave_title": "_enable-http2-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "mycustomdomain.example.com", "enable-http2": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain", "slave_reference": "_enable-http2-false",
"slave_title": "_custom_domain", "slave_title": "_enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "*.customdomain.example.com", "enable-http2": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_wildcard", "slave_reference": "_enable-http2-true",
"slave_title": "_custom_domain_wildcard", "slave_title": "_enable-http2-true",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "mycustomdomainserveralias.example.com",
"server-alias": "mycustomdomainserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_server_alias", "slave_reference": "_enable-http3-default",
"slave_title": "_custom_domain_server_alias", "slave_title": "_enable-http3-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "customdomainsslcrtsslkey.example.com", "enable-http2": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_ssl_crt_ssl_key", "slave_reference": "_enable-http3-default-enable-http2-false",
"slave_title": "_custom_domain_ssl_crt_ssl_key", "slave_title": "_enable-http3-default-enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "customdomainsslcrtsslkeysslcacrt.example.com", "enable-http3": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt", "slave_reference": "_enable-http3-false",
"slave_title": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt", "slave_title": "_enable-http3-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_only", "slave_reference": "_enable-http3-true",
"slave_title": "_ssl_ca_crt_only", "slave_title": "_enable-http3-true",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false,
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_garbage", "slave_reference": "_enable-http3-true-enable-http2-false",
"slave_title": "_ssl_ca_crt_garbage", "slave_title": "_enable-http3-true-enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_does_not_match", "slave_reference": "_enable_cache",
"slave_title": "_ssl_ca_crt_does_not_match", "slave_title": "_enable_cache",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-no-cache-request": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope", "slave_reference": "_enable_cache-disable-no-cache-request",
"slave_title": "_type-zope", "slave_title": "_enable_cache-disable-no-cache-request",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true", "disable-via-header": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-prefer-gzip-encoding-to-backend", "slave_reference": "_enable_cache-disable-via-header",
"slave_title": "_type-zope-prefer-gzip-encoding-to-backend", "slave_title": "_enable_cache-disable-via-header",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "enable_cache": true,
"prefer-gzip-encoding-to-backend": "true", "https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-prefer-gzip-encoding-to-backend-https-only", "slave_reference": "_enable_cache-https-only-false",
"slave_title": "_type-zope-prefer-gzip-encoding-to-backend-https-only", "slave_title": "_enable_cache-https-only-false",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "custom_domain": "customdomainenablecache.example.com",
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-virtualhostroot-http-port", "slave_reference": "_enable_cache_custom_domain",
"slave_title": "_type-zope-virtualhostroot-http-port", "slave_title": "_enable_cache_custom_domain",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-http-port": "12345"
}, },
{ {
"enable_cache": true,
"server-alias": "enablecacheserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-virtualhostroot-https-port", "slave_reference": "_enable_cache_server_alias",
"slave_title": "_type-zope-virtualhostroot-https-port", "slave_title": "_enable_cache_server_alias",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-https-port": "12345"
}, },
{ {
"path": "///path/to/some/resource///", "https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-path", "slave_reference": "_https-only",
"slave_title": "_type-zope-path", "slave_title": "_https-only",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"default-path": "///default-path/to/some/resource///", "https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"https-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-default-path", "slave_reference": "_https-url-netloc-list",
"slave_title": "_type-zope-default-path", "slave_title": "_https-url-netloc-list",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-notebook", "slave_reference": "_prefer-gzip-encoding-to-backend",
"slave_title": "_type-notebook", "slave_title": "_prefer-gzip-encoding-to-backend",
"type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false",
"prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket", "slave_reference": "_prefer-gzip-encoding-to-backend-https-only",
"slave_title": "_type-websocket", "slave_title": "_prefer-gzip-encoding-to-backend-https-only",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "alias1.example.com alias2.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list", "slave_reference": "_server-alias",
"slave_title": "_type-websocket-websocket-path-list", "slave_title": "_server-alias",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"websocket-path-list": "////ws//// /with%20space/"
}, },
{ {
"server-alias": "alias3.example.com alias3.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-none", "slave_reference": "_server-alias-duplicated",
"slave_title": "_type-websocket-websocket-path-list-none", "slave_title": "_server-alias-duplicated",
"type": "websocket", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": null
}, },
{ {
"server-alias": "",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-empty", "slave_reference": "_server-alias-empty",
"slave_title": "_type-websocket-websocket-path-list-empty", "slave_title": "_server-alias-empty",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "strict-transport-security-sub-domains": true,
"websocket-path-list": "" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "*.alias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-transparent-false", "slave_reference": "_server-alias-wildcard",
"slave_title": "_type-websocket-websocket-transparent-false", "slave_title": "_server-alias-wildcard",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "strict-transport-security-preload": true,
"websocket-transparent": "false" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "alias4.example.com",
"server-alias": "alias4.example.com alias4.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-websocket-transparent-false", "slave_reference": "_server-alias_custom_domain-duplicated",
"slave_title": "_type-websocket-websocket-path-list-websocket-transparent-false", "slave_title": "_server-alias_custom_domain-duplicated",
"type": "websocket", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/",
"websocket-transparent": "false"
}, },
{ {
"https-only": false,
"https-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-redirect", "slave_reference": "_ssl-proxy-verify-unverified",
"slave_title": "_type-redirect", "slave_title": "_ssl-proxy-verify-unverified",
"type": "redirect", "ssl-proxy-verify": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"custom_domain": "customdomaintyperedirect.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-redirect-custom_domain", "slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt",
"slave_title": "_type-redirect-custom_domain", "slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt",
"type": "redirect", "ssl-proxy-verify": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "ssl_proxy_ca_crt": "@@test_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache", "slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified",
"slave_title": "_enable_cache", "slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "ssl-proxy-verify": true,
"ssl_proxy_ca_crt": "@@another_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"custom_domain": "customdomainenablecache.example.com",
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache_custom_domain", "slave_reference": "_ssl_ca_crt_does_not_match",
"slave_title": "_enable_cache_custom_domain", "slave_title": "_ssl_ca_crt_does_not_match",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"server-alias": "enablecacheserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache_server_alias", "slave_reference": "_ssl_ca_crt_garbage",
"slave_title": "_enable_cache_server_alias", "slave_title": "_ssl_ca_crt_garbage",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-no-cache-request": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-disable-no-cache-request", "slave_reference": "_ssl_ca_crt_only",
"slave_title": "_enable_cache-disable-no-cache-request", "slave_title": "_ssl_ca_crt_only",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-via-header": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-disable-via-header", "slave_reference": "_type-notebook",
"slave_title": "_enable_cache-disable-via-header", "slave_title": "_type-notebook",
"type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"https-only": false, "https-only": false,
"https-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-https-only-false", "slave_reference": "_type-redirect",
"slave_title": "_enable_cache-https-only-false", "slave_title": "_type-redirect",
"type": "redirect",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "custom_domain": "customdomaintyperedirect.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-false", "slave_reference": "_type-redirect-custom_domain",
"slave_title": "_enable-http2-false", "slave_title": "_type-redirect-custom_domain",
"type": "redirect",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-true", "slave_reference": "_type-websocket",
"slave_title": "_enable-http2-true", "slave_title": "_type-websocket",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-default", "slave_reference": "_type-websocket-websocket-path-list",
"slave_title": "_enable-http2-default", "slave_title": "_type-websocket-websocket-path-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/"
}, },
{ {
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-true", "slave_reference": "_type-websocket-websocket-path-list-empty",
"slave_title": "_enable-http3-true", "slave_title": "_type-websocket-websocket-path-list-empty",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": ""
}, },
{ {
"enable-http3": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-false", "slave_reference": "_type-websocket-websocket-path-list-none",
"slave_title": "_enable-http3-false", "slave_title": "_type-websocket-websocket-path-list-none",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": null
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-default", "slave_reference": "_type-websocket-websocket-path-list-websocket-transparent-false",
"slave_title": "_enable-http3-default", "slave_title": "_type-websocket-websocket-path-list-websocket-transparent-false",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/",
"websocket-transparent": "false"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-transparent-false",
"slave_title": "_type-websocket-websocket-transparent-false",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-transparent": "false"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope",
"slave_title": "_type-zope",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "default-path": "///default-path/to/some/resource///",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-default-enable-http2-false", "slave_reference": "_type-zope-default-path",
"slave_title": "_enable-http3-default-enable-http2-false", "slave_title": "_type-zope-default-path",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "path": "///path/to/some/resource///",
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-true-enable-http2-false", "slave_reference": "_type-zope-path",
"slave_title": "_enable-http3-true-enable-http2-false", "slave_title": "_type-zope-path",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true", "prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_prefer-gzip-encoding-to-backend", "slave_reference": "_type-zope-prefer-gzip-encoding-to-backend",
"slave_title": "_prefer-gzip-encoding-to-backend", "slave_title": "_type-zope-prefer-gzip-encoding-to-backend",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "https-only": "false",
"prefer-gzip-encoding-to-backend": "true", "prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_prefer-gzip-encoding-to-backend-https-only", "slave_reference": "_type-zope-prefer-gzip-encoding-to-backend-https-only",
"slave_title": "_prefer-gzip-encoding-to-backend-https-only", "slave_title": "_type-zope-prefer-gzip-encoding-to-backend-https-only",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disabled-cookie-list": "Coconut Chocolate Vanilia", "https-only": "false",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_disabled-cookie-list", "slave_reference": "_type-zope-virtualhostroot-http-port",
"slave_title": "_disabled-cookie-list", "slave_title": "_type-zope-virtualhostroot-http-port",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-http-port": "12345"
}, },
{ {
"disabled-cookie-list": "Chocolate",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_disabled-cookie-list-simple", "slave_reference": "_type-zope-virtualhostroot-https-port",
"slave_title": "_disabled-cookie-list-simple", "slave_title": "_type-zope-virtualhostroot-https-port",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-https-port": "12345"
}, },
{ {
"ciphers": "RSA-3DES-EDE-CBC-SHA RSA-AES128-CBC-SHA",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ciphers", "slave_reference": "_url-netloc-list",
"slave_title": "_ciphers" "slave_title": "_url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@"
}, },
{ {
"ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA", "backend-connect-retries": 5,
"backend-connect-timeout": 10,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"request-timeout": 15,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ciphers-translation-all", "slave_reference": "_url_https-url",
"slave_title": "_ciphers-translation-all" "slave_title": "_url_https-url",
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
} }
], ],
"timestamp": "@@TIMESTAMP@@" "timestamp": "@@TIMESTAMP@@"
......
...@@ -14,19 +14,6 @@ ...@@ -14,19 +14,6 @@
"slap_software_release_url": "@@00getSoftwareURL@@", "slap_software_release_url": "@@00getSoftwareURL@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_instance_list": [ "slave_instance_list": [
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-disabled",
"slave_title": "_health-check-disabled",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"health-check": true,
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-default",
"slave_title": "_health-check-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{ {
"health-check": true, "health-check": true,
"health-check-http-method": "CONNECT", "health-check-http-method": "CONNECT",
...@@ -49,6 +36,19 @@ ...@@ -49,6 +36,19 @@
"slave_title": "_health-check-custom", "slave_title": "_health-check-custom",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{
"health-check": true,
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-default",
"slave_title": "_health-check-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-disabled",
"slave_title": "_health-check-disabled",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{ {
"enable_cache": true, "enable_cache": true,
"health-check": true, "health-check": true,
...@@ -66,32 +66,32 @@ ...@@ -66,32 +66,32 @@
}, },
{ {
"health-check": true, "health-check": true,
"health-check-failover-https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/failover-https-url?a=b&c=", "health-check-authenticate-to-failover-backend": true,
"health-check-failover-url": "http://@@_ipv4_address@@:@@_server_http_port@@/failover-url?a=b&c=", "health-check-failover-https-url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/failover-https-url?a=b&c=",
"health-check-failover-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@", "health-check-failover-url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/failover-url?a=b&c=",
"health-check-http-path": "/health-check-failover-url", "health-check-http-path": "/health-check-failover-url-auth-to-backend",
"health-check-interval": 1, "health-check-interval": 1,
"health-check-timeout": 1, "health-check-timeout": 1,
"https-only": false, "https-only": false,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https-url", "https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https-url",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-failover-url-netloc-list", "slave_reference": "_health-check-failover-url-auth-to-backend",
"slave_title": "_health-check-failover-url-netloc-list", "slave_title": "_health-check-failover-url-auth-to-backend",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/url" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/url"
}, },
{ {
"health-check": true, "health-check": true,
"health-check-authenticate-to-failover-backend": true, "health-check-failover-https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/failover-https-url?a=b&c=",
"health-check-failover-https-url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/failover-https-url?a=b&c=", "health-check-failover-url": "http://@@_ipv4_address@@:@@_server_http_port@@/failover-url?a=b&c=",
"health-check-failover-url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/failover-url?a=b&c=", "health-check-failover-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"health-check-http-path": "/health-check-failover-url-auth-to-backend", "health-check-http-path": "/health-check-failover-url",
"health-check-interval": 1, "health-check-interval": 1,
"health-check-timeout": 1, "health-check-timeout": 1,
"https-only": false, "https-only": false,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https-url", "https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https-url",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-failover-url-auth-to-backend", "slave_reference": "_health-check-failover-url-netloc-list",
"slave_title": "_health-check-failover-url-auth-to-backend", "slave_title": "_health-check-failover-url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/url" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/url"
}, },
{ {
...@@ -109,27 +109,27 @@ ...@@ -109,27 +109,27 @@
}, },
{ {
"health-check": true, "health-check": true,
"health-check-failover-ssl-proxy-ca-crt": "@@another_server_ca.certificate_pem@@",
"health-check-failover-ssl-proxy-verify": true, "health-check-failover-ssl-proxy-verify": true,
"health-check-failover-url": "https://@@_ipv4_address@@:@@_server_https_port@@/", "health-check-failover-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"health-check-http-path": "/health-check-failover-url-ssl-proxy-verify-unverified", "health-check-http-path": "/health-check-failover-url-ssl-proxy-verify-missing",
"health-check-interval": 1, "health-check-interval": 1,
"health-check-timeout": 1, "health-check-timeout": 1,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-failover-url-ssl-proxy-verify-unverified", "slave_reference": "_health-check-failover-url-ssl-proxy-verify-missing",
"slave_title": "_health-check-failover-url-ssl-proxy-verify-unverified", "slave_title": "_health-check-failover-url-ssl-proxy-verify-missing",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"health-check": true, "health-check": true,
"health-check-failover-ssl-proxy-ca-crt": "@@another_server_ca.certificate_pem@@",
"health-check-failover-ssl-proxy-verify": true, "health-check-failover-ssl-proxy-verify": true,
"health-check-failover-url": "https://@@_ipv4_address@@:@@_server_https_port@@/", "health-check-failover-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"health-check-http-path": "/health-check-failover-url-ssl-proxy-verify-missing", "health-check-http-path": "/health-check-failover-url-ssl-proxy-verify-unverified",
"health-check-interval": 1, "health-check-interval": 1,
"health-check-timeout": 1, "health-check-timeout": 1,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_health-check-failover-url-ssl-proxy-verify-missing", "slave_reference": "_health-check-failover-url-ssl-proxy-verify-unverified",
"slave_title": "_health-check-failover-url-ssl-proxy-verify-missing", "slave_title": "_health-check-failover-url-ssl-proxy-verify-unverified",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
} }
], ],
......
...@@ -14,19 +14,35 @@ ...@@ -14,19 +14,35 @@
"slap_software_release_url": "@@00getSoftwareURL@@", "slap_software_release_url": "@@00getSoftwareURL@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_instance_list": [ "slave_instance_list": [
{
"custom_domain": "*.example.com",
"server-alias": "example.com",
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_01wildcard",
"slave_title": "_01wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/01wildcard"
},
{ {
"custom_domain": "*.alias1.example.com", "custom_domain": "*.alias1.example.com",
"server-alias": "alias1.example.com",
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_02wildcard",
"slave_title": "_02wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/02wildcard"
},
{
"custom_domain": "zspecific.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_wildcard", "slave_reference": "_03zspecific",
"slave_title": "_wildcard", "slave_title": "_03zspecific",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/wildcard" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/03zspecific"
}, },
{ {
"custom_domain": "zspecific.alias1.example.com", "custom_domain": "zspecific.alias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_zspecific", "slave_reference": "_04zspecific",
"slave_title": "_zspecific", "slave_title": "_04zspecific",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/zspecific" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/04zspecific"
} }
], ],
"timestamp": "@@TIMESTAMP@@" "timestamp": "@@TIMESTAMP@@"
...@@ -41,15 +57,27 @@ ...@@ -41,15 +57,27 @@
"monitor-password": "@@monitor-password@@", "monitor-password": "@@monitor-password@@",
"monitor-username": "admin", "monitor-username": "admin",
"slave-list": [ "slave-list": [
{
"custom_domain": "*.example.com",
"server-alias": "example.com",
"slave_reference": "_01wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/01wildcard"
},
{ {
"custom_domain": "*.alias1.example.com", "custom_domain": "*.alias1.example.com",
"slave_reference": "_wildcard", "server-alias": "alias1.example.com",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/wildcard" "slave_reference": "_02wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/02wildcard"
},
{
"custom_domain": "zspecific.example.com",
"slave_reference": "_03zspecific",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/03zspecific"
}, },
{ {
"custom_domain": "zspecific.alias1.example.com", "custom_domain": "zspecific.alias1.example.com",
"slave_reference": "_zspecific", "slave_reference": "_04zspecific",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/zspecific" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/04zspecific"
} }
] ]
}, },
...@@ -69,7 +97,7 @@ ...@@ -69,7 +97,7 @@
"cluster-identification": "testing partition 0", "cluster-identification": "testing partition 0",
"domain": "example.com", "domain": "example.com",
"enable-http3": "false", "enable-http3": "false",
"extra_slave_instance_list": "[{\"custom_domain\": \"*.alias1.example.com\", \"slave_reference\": \"_wildcard\", \"url\": \"http://@@_ipv4_address@@:@@_server_http_port@@/wildcard\"}, {\"custom_domain\": \"zspecific.alias1.example.com\", \"slave_reference\": \"_zspecific\", \"url\": \"http://@@_ipv4_address@@:@@_server_http_port@@/zspecific\"}]", "extra_slave_instance_list": "[{\"custom_domain\": \"*.example.com\", \"server-alias\": \"example.com\", \"slave_reference\": \"_01wildcard\", \"url\": \"http://@@_ipv4_address@@:@@_server_http_port@@/01wildcard\"}, {\"custom_domain\": \"*.alias1.example.com\", \"server-alias\": \"alias1.example.com\", \"slave_reference\": \"_02wildcard\", \"url\": \"http://@@_ipv4_address@@:@@_server_http_port@@/02wildcard\"}, {\"custom_domain\": \"zspecific.example.com\", \"slave_reference\": \"_03zspecific\", \"url\": \"http://@@_ipv4_address@@:@@_server_http_port@@/03zspecific\"}, {\"custom_domain\": \"zspecific.alias1.example.com\", \"slave_reference\": \"_04zspecific\", \"url\": \"http://@@_ipv4_address@@:@@_server_http_port@@/04zspecific\"}]",
"frontend-name": "caddy-frontend-1", "frontend-name": "caddy-frontend-1",
"http3-port": "443", "http3-port": "443",
"kedifa-caucase-url": "http://[@@_ipv6_address@@]:15090", "kedifa-caucase-url": "http://[@@_ipv6_address@@]:15090",
...@@ -81,7 +109,7 @@ ...@@ -81,7 +109,7 @@
"plain_http_port": "11080", "plain_http_port": "11080",
"port": "11443", "port": "11443",
"request-timeout": "12", "request-timeout": "12",
"slave-kedifa-information": "{\"_wildcard\": {\"kedifa-caucase-url\": \"http://[@@_ipv6_address@@]:15090\", \"key-download-url\": \"https://[@@_ipv6_address@@]:15080/@@wildcard_key-generate-auth-url@@\", \"key-generate-auth-url\": \"https://[@@_ipv6_address@@]:15080/@@wildcard_key-generate-auth-url@@/@@wildcard_key-upload-url@@\", \"key-upload-url\": \"https://[@@_ipv6_address@@]:15080/@@wildcard_key-generate-auth-url@@?auth=\"}, \"_zspecific\": {\"kedifa-caucase-url\": \"http://[@@_ipv6_address@@]:15090\", \"key-download-url\": \"https://[@@_ipv6_address@@]:15080/@@zspecific_key-generate-auth-url@@\", \"key-generate-auth-url\": \"https://[@@_ipv6_address@@]:15080/@@zspecific_key-generate-auth-url@@/@@wildcard_key-upload-url@@\", \"key-upload-url\": \"https://[@@_ipv6_address@@]:15080/@@zspecific_key-generate-auth-url@@?auth=\"}}" "slave-kedifa-information": "{\"_01wildcard\": {\"kedifa-caucase-url\": \"http://[@@_ipv6_address@@]:15090\", \"key-download-url\": \"https://[@@_ipv6_address@@]:15080/@@01wildcard_key-generate-auth-url@@\", \"key-generate-auth-url\": \"https://[@@_ipv6_address@@]:15080/@@01wildcard_key-generate-auth-url@@/@@01wildcard_key-upload-url@@\", \"key-upload-url\": \"https://[@@_ipv6_address@@]:15080/@@01wildcard_key-generate-auth-url@@?auth=\"}, \"_02wildcard\": {\"kedifa-caucase-url\": \"http://[@@_ipv6_address@@]:15090\", \"key-download-url\": \"https://[@@_ipv6_address@@]:15080/@@02wildcard_key-generate-auth-url@@\", \"key-generate-auth-url\": \"https://[@@_ipv6_address@@]:15080/@@02wildcard_key-generate-auth-url@@/@@01wildcard_key-upload-url@@\", \"key-upload-url\": \"https://[@@_ipv6_address@@]:15080/@@02wildcard_key-generate-auth-url@@?auth=\"}, \"_03zspecific\": {\"kedifa-caucase-url\": \"http://[@@_ipv6_address@@]:15090\", \"key-download-url\": \"https://[@@_ipv6_address@@]:15080/@@03zspecific_key-generate-auth-url@@\", \"key-generate-auth-url\": \"https://[@@_ipv6_address@@]:15080/@@03zspecific_key-generate-auth-url@@/@@01wildcard_key-upload-url@@\", \"key-upload-url\": \"https://[@@_ipv6_address@@]:15080/@@03zspecific_key-generate-auth-url@@?auth=\"}, \"_04zspecific\": {\"kedifa-caucase-url\": \"http://[@@_ipv6_address@@]:15090\", \"key-download-url\": \"https://[@@_ipv6_address@@]:15080/@@04zspecific_key-generate-auth-url@@\", \"key-generate-auth-url\": \"https://[@@_ipv6_address@@]:15080/@@04zspecific_key-generate-auth-url@@/@@01wildcard_key-upload-url@@\", \"key-upload-url\": \"https://[@@_ipv6_address@@]:15080/@@04zspecific_key-generate-auth-url@@?auth=\"}}"
}, },
"full_address_list": [], "full_address_list": [],
"instance_title": "caddy-frontend-1", "instance_title": "caddy-frontend-1",
......
...@@ -8,12 +8,18 @@ T-1/var/log/monitor-httpd-error.log ...@@ -8,12 +8,18 @@ T-1/var/log/monitor-httpd-error.log
T-2/var/log/backend-haproxy.log T-2/var/log/backend-haproxy.log
T-2/var/log/expose-csr.log T-2/var/log/expose-csr.log
T-2/var/log/frontend-haproxy.log T-2/var/log/frontend-haproxy.log
T-2/var/log/httpd/_wildcard_access_log T-2/var/log/httpd/_01wildcard_access_log
T-2/var/log/httpd/_wildcard_backend_log T-2/var/log/httpd/_01wildcard_backend_log
T-2/var/log/httpd/_wildcard_frontend_log T-2/var/log/httpd/_01wildcard_frontend_log
T-2/var/log/httpd/_zspecific_access_log T-2/var/log/httpd/_02wildcard_access_log
T-2/var/log/httpd/_zspecific_backend_log T-2/var/log/httpd/_02wildcard_backend_log
T-2/var/log/httpd/_zspecific_frontend_log T-2/var/log/httpd/_02wildcard_frontend_log
T-2/var/log/httpd/_03zspecific_access_log
T-2/var/log/httpd/_03zspecific_backend_log
T-2/var/log/httpd/_03zspecific_frontend_log
T-2/var/log/httpd/_04zspecific_access_log
T-2/var/log/httpd/_04zspecific_backend_log
T-2/var/log/httpd/_04zspecific_frontend_log
T-2/var/log/monitor-httpd-access.log T-2/var/log/monitor-httpd-access.log
T-2/var/log/monitor-httpd-error.log T-2/var/log/monitor-httpd-error.log
T-2/var/log/slave-introspection-access.log T-2/var/log/slave-introspection-access.log
......
...@@ -16,17 +16,6 @@ ...@@ -16,17 +16,6 @@
"slap_software_release_url": "@@00getSoftwareURL@@", "slap_software_release_url": "@@00getSoftwareURL@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_instance_list": [ "slave_instance_list": [
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_empty",
"slave_title": "_empty"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_bad-backend",
"slave_title": "_bad-backend",
"url": "http://bad.backend/"
},
{ {
"authenticate-to-backend": true, "authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -34,13 +23,6 @@ ...@@ -34,13 +23,6 @@
"slave_title": "_Url", "slave_title": "_Url",
"url": " http://@@_ipv4_address@@:@@_server_http_port@@//?a=b&c= " "url": " http://@@_ipv4_address@@:@@_server_http_port@@//?a=b&c= "
}, },
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_url-netloc-list",
"slave_title": "_url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@"
},
{ {
"authenticate-to-backend": true, "authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -48,6 +30,13 @@ ...@@ -48,6 +30,13 @@
"slave_title": "_auth-to-backend", "slave_title": "_auth-to-backend",
"url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/"
}, },
{
"authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-backend-ignore",
"slave_title": "_auth-to-backend-backend-ignore",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
},
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-not-configured", "slave_reference": "_auth-to-backend-not-configured",
...@@ -55,429 +44,440 @@ ...@@ -55,429 +44,440 @@
"url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_auth_port@@/"
}, },
{ {
"authenticate-to-backend": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_auth-to-backend-backend-ignore", "slave_reference": "_bad-backend",
"slave_title": "_auth-to-backend-backend-ignore", "slave_title": "_bad-backend",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/" "url": "http://bad.backend/"
}, },
{ {
"backend-connect-retries": 5, "ciphers": "RSA-3DES-EDE-CBC-SHA RSA-AES128-CBC-SHA",
"backend-connect-timeout": 10,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"request-timeout": 15,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_url_https-url", "slave_reference": "_ciphers",
"slave_title": "_url_https-url", "slave_title": "_ciphers"
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
}, },
{ {
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https", "ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA",
"https-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_https-url-netloc-list", "slave_reference": "_ciphers-translation-all",
"slave_title": "_https-url-netloc-list", "slave_title": "_ciphers-translation-all"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
}, },
{ {
"server-alias": "alias1.example.com alias2.example.com", "custom_domain": "mycustomdomain.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias", "slave_reference": "_custom_domain",
"slave_title": "_server-alias", "slave_title": "_custom_domain",
"strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "", "custom_domain": "mycustomdomainserveralias.example.com",
"server-alias": "mycustomdomainserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-empty", "slave_reference": "_custom_domain_server_alias",
"slave_title": "_server-alias-empty", "slave_title": "_custom_domain_server_alias",
"strict-transport-security": "200",
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "*.alias1.example.com", "custom_domain": "customdomainsslcrtsslkey.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-wildcard", "slave_reference": "_custom_domain_ssl_crt_ssl_key",
"slave_title": "_server-alias-wildcard", "slave_title": "_custom_domain_ssl_crt_ssl_key",
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "alias3.example.com alias3.example.com", "custom_domain": "customdomainsslcrtsslkeysslcacrt.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias-duplicated", "slave_reference": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt",
"slave_title": "_server-alias-duplicated", "slave_title": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "alias4.example.com", "custom_domain": "*.customdomain.example.com",
"server-alias": "alias4.example.com alias4.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_server-alias_custom_domain-duplicated", "slave_reference": "_custom_domain_wildcard",
"slave_title": "_server-alias_custom_domain-duplicated", "slave_title": "_custom_domain_wildcard",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disabled-cookie-list": "Coconut Chocolate Vanilia",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt", "slave_reference": "_disabled-cookie-list",
"slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt", "slave_title": "_disabled-cookie-list",
"ssl-proxy-verify": true, "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_proxy_ca_crt": "@@test_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"disabled-cookie-list": "Chocolate",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified", "slave_reference": "_disabled-cookie-list-simple",
"slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified", "slave_title": "_disabled-cookie-list-simple",
"ssl-proxy-verify": true, "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_proxy_ca_crt": "@@another_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl-proxy-verify-unverified", "slave_reference": "_empty",
"slave_title": "_ssl-proxy-verify-unverified", "slave_title": "_empty"
"ssl-proxy-verify": true,
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_https-only", "slave_reference": "_enable-http2-default",
"slave_title": "_https-only", "slave_title": "_enable-http2-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "mycustomdomain.example.com", "enable-http2": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain", "slave_reference": "_enable-http2-false",
"slave_title": "_custom_domain", "slave_title": "_enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "*.customdomain.example.com", "enable-http2": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_wildcard", "slave_reference": "_enable-http2-true",
"slave_title": "_custom_domain_wildcard", "slave_title": "_enable-http2-true",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "mycustomdomainserveralias.example.com",
"server-alias": "mycustomdomainserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_server_alias", "slave_reference": "_enable-http3-default",
"slave_title": "_custom_domain_server_alias", "slave_title": "_enable-http3-default",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "customdomainsslcrtsslkey.example.com", "enable-http2": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_ssl_crt_ssl_key", "slave_reference": "_enable-http3-default-enable-http2-false",
"slave_title": "_custom_domain_ssl_crt_ssl_key", "slave_title": "_enable-http3-default-enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "customdomainsslcrtsslkeysslcacrt.example.com", "enable-http3": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt", "slave_reference": "_enable-http3-false",
"slave_title": "_custom_domain_ssl_crt_ssl_key_ssl_ca_crt", "slave_title": "_enable-http3-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_only", "slave_reference": "_enable-http3-true",
"slave_title": "_ssl_ca_crt_only", "slave_title": "_enable-http3-true",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false,
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_garbage", "slave_reference": "_enable-http3-true-enable-http2-false",
"slave_title": "_ssl_ca_crt_garbage", "slave_title": "_enable-http3-true-enable-http2-false",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_does_not_match", "slave_reference": "_enable_cache",
"slave_title": "_ssl_ca_crt_does_not_match", "slave_title": "_enable_cache",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-no-cache-request": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope", "slave_reference": "_enable_cache-disable-no-cache-request",
"slave_title": "_type-zope", "slave_title": "_enable_cache-disable-no-cache-request",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true", "disable-via-header": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-prefer-gzip-encoding-to-backend", "slave_reference": "_enable_cache-disable-via-header",
"slave_title": "_type-zope-prefer-gzip-encoding-to-backend", "slave_title": "_enable_cache-disable-via-header",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "enable_cache": true,
"prefer-gzip-encoding-to-backend": "true", "https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-prefer-gzip-encoding-to-backend-https-only", "slave_reference": "_enable_cache-https-only-false",
"slave_title": "_type-zope-prefer-gzip-encoding-to-backend-https-only", "slave_title": "_enable_cache-https-only-false",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "custom_domain": "customdomainenablecache.example.com",
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-virtualhostroot-http-port", "slave_reference": "_enable_cache_custom_domain",
"slave_title": "_type-zope-virtualhostroot-http-port", "slave_title": "_enable_cache_custom_domain",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-http-port": "12345"
}, },
{ {
"enable_cache": true,
"server-alias": "enablecacheserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-virtualhostroot-https-port", "slave_reference": "_enable_cache_server_alias",
"slave_title": "_type-zope-virtualhostroot-https-port", "slave_title": "_enable_cache_server_alias",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-https-port": "12345"
}, },
{ {
"path": "///path/to/some/resource///", "https-only": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-path", "slave_reference": "_https-only",
"slave_title": "_type-zope-path", "slave_title": "_https-only",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"default-path": "///default-path/to/some/resource///", "https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"https-url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope-default-path", "slave_reference": "_https-url-netloc-list",
"slave_title": "_type-zope-default-path", "slave_title": "_https-url-netloc-list",
"type": "zope", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-notebook", "slave_reference": "_prefer-gzip-encoding-to-backend",
"slave_title": "_type-notebook", "slave_title": "_prefer-gzip-encoding-to-backend",
"type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false",
"prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket", "slave_reference": "_prefer-gzip-encoding-to-backend-https-only",
"slave_title": "_type-websocket", "slave_title": "_prefer-gzip-encoding-to-backend-https-only",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "alias1.example.com alias2.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list", "slave_reference": "_server-alias",
"slave_title": "_type-websocket-websocket-path-list", "slave_title": "_server-alias",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"websocket-path-list": "////ws//// /with%20space/"
}, },
{ {
"server-alias": "alias3.example.com alias3.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-none", "slave_reference": "_server-alias-duplicated",
"slave_title": "_type-websocket-websocket-path-list-none", "slave_title": "_server-alias-duplicated",
"type": "websocket", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": null
}, },
{ {
"server-alias": "",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-empty", "slave_reference": "_server-alias-empty",
"slave_title": "_type-websocket-websocket-path-list-empty", "slave_title": "_server-alias-empty",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "strict-transport-security-sub-domains": true,
"websocket-path-list": "" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"server-alias": "*.alias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-transparent-false", "slave_reference": "_server-alias-wildcard",
"slave_title": "_type-websocket-websocket-transparent-false", "slave_title": "_server-alias-wildcard",
"type": "websocket", "strict-transport-security": "200",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/", "strict-transport-security-preload": true,
"websocket-transparent": "false" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"custom_domain": "alias4.example.com",
"server-alias": "alias4.example.com alias4.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-path-list-websocket-transparent-false", "slave_reference": "_server-alias_custom_domain-duplicated",
"slave_title": "_type-websocket-websocket-path-list-websocket-transparent-false", "slave_title": "_server-alias_custom_domain-duplicated",
"type": "websocket", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/",
"websocket-transparent": "false"
}, },
{ {
"https-only": false,
"https-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-redirect", "slave_reference": "_ssl-proxy-verify-unverified",
"slave_title": "_type-redirect", "slave_title": "_ssl-proxy-verify-unverified",
"type": "redirect", "ssl-proxy-verify": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"custom_domain": "customdomaintyperedirect.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-redirect-custom_domain", "slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt",
"slave_title": "_type-redirect-custom_domain", "slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt",
"type": "redirect", "ssl-proxy-verify": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "ssl_proxy_ca_crt": "@@test_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache", "slave_reference": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified",
"slave_title": "_enable_cache", "slave_title": "_ssl-proxy-verify_ssl_proxy_ca_crt-unverified",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "ssl-proxy-verify": true,
"ssl_proxy_ca_crt": "@@another_server_ca.certificate_pem@@",
"url": "https://@@_ipv4_address@@:@@_server_https_port@@/"
}, },
{ {
"custom_domain": "customdomainenablecache.example.com",
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache_custom_domain", "slave_reference": "_ssl_ca_crt_does_not_match",
"slave_title": "_enable_cache_custom_domain", "slave_title": "_ssl_ca_crt_does_not_match",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"server-alias": "enablecacheserveralias1.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache_server_alias", "slave_reference": "_ssl_ca_crt_garbage",
"slave_title": "_enable_cache_server_alias", "slave_title": "_ssl_ca_crt_garbage",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-no-cache-request": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-disable-no-cache-request", "slave_reference": "_ssl_ca_crt_only",
"slave_title": "_enable_cache-disable-no-cache-request", "slave_title": "_ssl_ca_crt_only",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disable-via-header": true,
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-disable-via-header", "slave_reference": "_type-notebook",
"slave_title": "_enable_cache-disable-via-header", "slave_title": "_type-notebook",
"type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"https-only": false, "https-only": false,
"https-url": "https://@@_ipv4_address@@:@@_server_https_port@@/",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable_cache-https-only-false", "slave_reference": "_type-redirect",
"slave_title": "_enable_cache-https-only-false", "slave_title": "_type-redirect",
"type": "redirect",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "custom_domain": "customdomaintyperedirect.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-false", "slave_reference": "_type-redirect-custom_domain",
"slave_title": "_enable-http2-false", "slave_title": "_type-redirect-custom_domain",
"type": "redirect",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-true", "slave_reference": "_type-websocket",
"slave_title": "_enable-http2-true", "slave_title": "_type-websocket",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http2-default", "slave_reference": "_type-websocket-websocket-path-list",
"slave_title": "_enable-http2-default", "slave_title": "_type-websocket-websocket-path-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/"
}, },
{ {
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-true", "slave_reference": "_type-websocket-websocket-path-list-empty",
"slave_title": "_enable-http3-true", "slave_title": "_type-websocket-websocket-path-list-empty",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": ""
}, },
{ {
"enable-http3": false,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-false", "slave_reference": "_type-websocket-websocket-path-list-none",
"slave_title": "_enable-http3-false", "slave_title": "_type-websocket-websocket-path-list-none",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": null
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-default", "slave_reference": "_type-websocket-websocket-path-list-websocket-transparent-false",
"slave_title": "_enable-http3-default", "slave_title": "_type-websocket-websocket-path-list-websocket-transparent-false",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-path-list": "////ws//// /with%20space/",
"websocket-transparent": "false"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-websocket-websocket-transparent-false",
"slave_title": "_type-websocket-websocket-transparent-false",
"type": "websocket",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"websocket-transparent": "false"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-zope",
"slave_title": "_type-zope",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "default-path": "///default-path/to/some/resource///",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-default-enable-http2-false", "slave_reference": "_type-zope-default-path",
"slave_title": "_enable-http3-default-enable-http2-false", "slave_title": "_type-zope-default-path",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable-http2": false, "path": "///path/to/some/resource///",
"enable-http3": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_enable-http3-true-enable-http2-false", "slave_reference": "_type-zope-path",
"slave_title": "_enable-http3-true-enable-http2-false", "slave_title": "_type-zope-path",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"prefer-gzip-encoding-to-backend": "true", "prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_prefer-gzip-encoding-to-backend", "slave_reference": "_type-zope-prefer-gzip-encoding-to-backend",
"slave_title": "_prefer-gzip-encoding-to-backend", "slave_title": "_type-zope-prefer-gzip-encoding-to-backend",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"https-only": "false", "https-only": "false",
"prefer-gzip-encoding-to-backend": "true", "prefer-gzip-encoding-to-backend": "true",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_prefer-gzip-encoding-to-backend-https-only", "slave_reference": "_type-zope-prefer-gzip-encoding-to-backend-https-only",
"slave_title": "_prefer-gzip-encoding-to-backend-https-only", "slave_title": "_type-zope-prefer-gzip-encoding-to-backend-https-only",
"type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"disabled-cookie-list": "Coconut Chocolate Vanilia", "https-only": "false",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_disabled-cookie-list", "slave_reference": "_type-zope-virtualhostroot-http-port",
"slave_title": "_disabled-cookie-list", "slave_title": "_type-zope-virtualhostroot-http-port",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-http-port": "12345"
}, },
{ {
"disabled-cookie-list": "Chocolate",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_disabled-cookie-list-simple", "slave_reference": "_type-zope-virtualhostroot-https-port",
"slave_title": "_disabled-cookie-list-simple", "slave_title": "_type-zope-virtualhostroot-https-port",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "type": "zope",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"virtualhostroot-https-port": "12345"
}, },
{ {
"ciphers": "RSA-3DES-EDE-CBC-SHA RSA-AES128-CBC-SHA",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ciphers", "slave_reference": "_url-netloc-list",
"slave_title": "_ciphers" "slave_title": "_url-netloc-list",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/",
"url-netloc-list": "@@_ipv4_address@@:@@_server_netloc_a_http_port@@ @@_ipv4_address@@:@@_server_netloc_b_http_port@@"
}, },
{ {
"ciphers": "ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA", "backend-connect-retries": 5,
"backend-connect-timeout": 10,
"https-url": "http://@@_ipv4_address@@:@@_server_http_port@@/https",
"request-timeout": 15,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ciphers-translation-all", "slave_reference": "_url_https-url",
"slave_title": "_ciphers-translation-all" "slave_title": "_url_https-url",
"strict-transport-security": "200",
"strict-transport-security-preload": true,
"strict-transport-security-sub-domains": true,
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/http"
} }
], ],
"timestamp": "@@TIMESTAMP@@" "timestamp": "@@TIMESTAMP@@"
......
...@@ -15,35 +15,6 @@ ...@@ -15,35 +15,6 @@
"slap_software_release_url": "@@00getSoftwareURL@@", "slap_software_release_url": "@@00getSoftwareURL@@",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_instance_list": [ "slave_instance_list": [
{
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_master",
"slave_title": "_ssl_from_master",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_master_kedifa_overrides",
"slave_title": "_ssl_from_master_kedifa_overrides",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_slave",
"slave_title": "_ssl_from_slave",
"ssl_crt": "@@ssl_from_slave_certificate_pem@@",
"ssl_key": "@@ssl_from_slave_key_pem@@",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_slave_kedifa_overrides",
"slave_title": "_ssl_from_slave_kedifa_overrides",
"ssl_crt": "@@ssl_from_slave_kedifa_overrides_certificate_pem@@",
"ssl_key": "@@ssl_from_slave_kedifa_overrides_key_pem@@",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{ {
"custom_domain": "customdomainsslcrtsslkey.example.com", "custom_domain": "customdomainsslcrtsslkey.example.com",
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
...@@ -63,6 +34,15 @@ ...@@ -63,6 +34,15 @@
"ssl_key": "@@customdomain_ca_key_pem@@", "ssl_key": "@@customdomain_ca_key_pem@@",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_does_not_match",
"slave_title": "_ssl_ca_crt_does_not_match",
"ssl_ca_crt": "@@ca.certificate_pem@@",
"ssl_crt": "@@certificate_pem@@",
"ssl_key": "@@key_pem@@",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_garbage", "slave_reference": "_ssl_ca_crt_garbage",
...@@ -73,12 +53,32 @@ ...@@ -73,12 +53,32 @@
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"enable_cache": true,
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_ca_crt_does_not_match", "slave_reference": "_ssl_from_master",
"slave_title": "_ssl_ca_crt_does_not_match", "slave_title": "_ssl_from_master",
"ssl_ca_crt": "@@ca.certificate_pem@@", "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
"ssl_crt": "@@certificate_pem@@", },
"ssl_key": "@@key_pem@@", {
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_master_kedifa_overrides",
"slave_title": "_ssl_from_master_kedifa_overrides",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_slave",
"slave_title": "_ssl_from_slave",
"ssl_crt": "@@ssl_from_slave_certificate_pem@@",
"ssl_key": "@@ssl_from_slave_key_pem@@",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
},
{
"slap_software_type": "RootSoftwareInstance",
"slave_reference": "_ssl_from_slave_kedifa_overrides",
"slave_title": "_ssl_from_slave_kedifa_overrides",
"ssl_crt": "@@ssl_from_slave_kedifa_overrides_certificate_pem@@",
"ssl_key": "@@ssl_from_slave_kedifa_overrides_key_pem@@",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
...@@ -90,17 +90,17 @@ ...@@ -90,17 +90,17 @@
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-notebook-ssl_from_slave", "slave_reference": "_type-notebook-ssl_from_master_kedifa_overrides",
"slave_title": "_type-notebook-ssl_from_slave", "slave_title": "_type-notebook-ssl_from_master_kedifa_overrides",
"ssl_crt": "@@type_notebook_ssl_from_slave_certificate_pem@@",
"ssl_key": "@@type_notebook_ssl_from_slave_key_pem@@",
"type": "notebook", "type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
{ {
"slap_software_type": "RootSoftwareInstance", "slap_software_type": "RootSoftwareInstance",
"slave_reference": "_type-notebook-ssl_from_master_kedifa_overrides", "slave_reference": "_type-notebook-ssl_from_slave",
"slave_title": "_type-notebook-ssl_from_master_kedifa_overrides", "slave_title": "_type-notebook-ssl_from_slave",
"ssl_crt": "@@type_notebook_ssl_from_slave_certificate_pem@@",
"ssl_key": "@@type_notebook_ssl_from_slave_key_pem@@",
"type": "notebook", "type": "notebook",
"url": "http://@@_ipv4_address@@:@@_server_http_port@@/" "url": "http://@@_ipv4_address@@:@@_server_http_port@@/"
}, },
......
...@@ -35,6 +35,7 @@ import re ...@@ -35,6 +35,7 @@ import re
import http.server import http.server
import multiprocessing import multiprocessing
import subprocess import subprocess
import unittest
import psutil import psutil
import requests import requests
...@@ -411,6 +412,7 @@ class TestDeploymentScriptInstantiation(ERP5InstanceTestCase): ...@@ -411,6 +412,7 @@ class TestDeploymentScriptInstantiation(ERP5InstanceTestCase):
with cls.slap.instance_supervisor_rpc as instance_supervisor: with cls.slap.instance_supervisor_rpc as instance_supervisor:
return getattr(instance_supervisor, method)(*args, **kwargs) return getattr(instance_supervisor, method)(*args, **kwargs)
@unittest.expectedFailure
def test_ssl_auth(self): def test_ssl_auth(self):
backend_apache_configuration_list = glob.glob( backend_apache_configuration_list = glob.glob(
os.path.join( os.path.join(
......
...@@ -23,7 +23,7 @@ extends = ...@@ -23,7 +23,7 @@ extends =
parts = parts =
eggs/scripts eggs/scripts
python2.7-disabled system-python-disabled
slapos-cookbook slapos-cookbook
template template
...@@ -272,9 +272,9 @@ branch = master ...@@ -272,9 +272,9 @@ branch = master
egg = slapos.core egg = slapos.core
setup = ${slapos.core-repository:location} setup = ${slapos.core-repository:location}
[python2.7-disabled] [system-python-disabled]
# An "intentionally broken" python2 command that should catch # An "intentionally broken" python command that should catch
# accidental usage of things like #!/usr/bin/env python2 # accidental usage of things like #!/usr/bin/env python
recipe = zc.recipe.egg recipe = zc.recipe.egg
# we need an egg to generate a script, use the one from this part's recipe # we need an egg to generate a script, use the one from this part's recipe
eggs = ${:recipe} eggs = ${:recipe}
...@@ -283,13 +283,15 @@ entry-points = ...@@ -283,13 +283,15 @@ entry-points =
python=${:eggs}:ignored python=${:eggs}:ignored
python2=${:eggs}:ignored python2=${:eggs}:ignored
python2.7=${:eggs}:ignored python2.7=${:eggs}:ignored
python3=${:eggs}:ignored
scripts = scripts =
python python
python2 python2
python2.7 python2.7
python3
initialization = initialization =
import sys import sys
print("Error: attempt to use system python2", file=sys.stderr) print("Error: attempt to use system python", file=sys.stderr)
sys.exit(2) sys.exit(2)
[recurls-repository] [recurls-repository]
......
...@@ -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)
......
...@@ -15,7 +15,6 @@ extends = ...@@ -15,7 +15,6 @@ extends =
../../component/socat/buildout.cfg ../../component/socat/buildout.cfg
../../component/rsyslogd/buildout.cfg ../../component/rsyslogd/buildout.cfg
../../component/findutils/buildout.cfg ../../component/findutils/buildout.cfg
../../component/librsvg/buildout.cfg
../../component/imagemagick/buildout.cfg ../../component/imagemagick/buildout.cfg
../../component/jpegoptim/buildout.cfg ../../component/jpegoptim/buildout.cfg
../../component/kumo/buildout.cfg ../../component/kumo/buildout.cfg
...@@ -49,7 +48,6 @@ extends = ...@@ -49,7 +48,6 @@ extends =
../../component/bash/buildout.cfg ../../component/bash/buildout.cfg
../../component/wget/buildout.cfg ../../component/wget/buildout.cfg
../../component/aspell/buildout.cfg ../../component/aspell/buildout.cfg
../../component/jsl/buildout.cfg
../../component/6tunnel/buildout.cfg ../../component/6tunnel/buildout.cfg
../../component/userhosts/buildout.cfg ../../component/userhosts/buildout.cfg
../../component/postfix/buildout.cfg ../../component/postfix/buildout.cfg
...@@ -259,8 +257,6 @@ link-binary = ...@@ -259,8 +257,6 @@ link-binary =
${ghostscript:location}/bin/gs ${ghostscript:location}/bin/gs
${imagemagick:location}/bin/identify ${imagemagick:location}/bin/identify
${jpegoptim:location}/bin/jpegoptim ${jpegoptim:location}/bin/jpegoptim
${jsl:location}/bin/jsl
${librsvg:location}/bin/rsvg-convert
${mariadb:location}/bin/mysql ${mariadb:location}/bin/mysql
${mariadb:location}/bin/mysqldump ${mariadb:location}/bin/mysqldump
${openssl:location}/bin/openssl ${openssl:location}/bin/openssl
...@@ -569,7 +565,6 @@ eggs = ${neoppod:eggs} ...@@ -569,7 +565,6 @@ eggs = ${neoppod:eggs}
Jinja2 Jinja2
jsonschema jsonschema
mechanize mechanize
mock
oauthlib oauthlib
objgraph objgraph
${python-pynacl:egg} ${python-pynacl:egg}
...@@ -852,9 +847,7 @@ z3c.etestbrowser = 3.0.1 ...@@ -852,9 +847,7 @@ z3c.etestbrowser = 3.0.1
zope.testbrowser = 5.5.1 zope.testbrowser = 5.5.1
WSGIProxy2 = 0.4.6 WSGIProxy2 = 0.4.6
WebTest = 2.0.33 WebTest = 2.0.33
beautifulsoup4 = 4.8.2
WebOb = 1.8.5 WebOb = 1.8.5
soupsieve = 1.9.5
eggtestinfo = 0.3 eggtestinfo = 0.3
oic = 0.15.1 oic = 0.15.1
......
...@@ -18,7 +18,6 @@ extends = ...@@ -18,7 +18,6 @@ extends =
../../component/socat/buildout.cfg ../../component/socat/buildout.cfg
../../component/rsyslogd/buildout.cfg ../../component/rsyslogd/buildout.cfg
../../component/findutils/buildout.cfg ../../component/findutils/buildout.cfg
../../component/librsvg/buildout.cfg
../../component/imagemagick/buildout.cfg ../../component/imagemagick/buildout.cfg
../../component/jpegoptim/buildout.cfg ../../component/jpegoptim/buildout.cfg
../../component/kumo/buildout.cfg ../../component/kumo/buildout.cfg
...@@ -34,6 +33,7 @@ extends = ...@@ -34,6 +33,7 @@ extends =
../../component/patch/buildout.cfg ../../component/patch/buildout.cfg
../../component/pillow/buildout.cfg ../../component/pillow/buildout.cfg
../../component/pycrypto-python/buildout.cfg ../../component/pycrypto-python/buildout.cfg
../../component/pytracemalloc/buildout.cfg
../../component/pysvn-python/buildout.cfg ../../component/pysvn-python/buildout.cfg
../../component/python-ldap-python/buildout.cfg ../../component/python-ldap-python/buildout.cfg
../../component/scikit-learn/buildout.cfg ../../component/scikit-learn/buildout.cfg
...@@ -44,7 +44,6 @@ extends = ...@@ -44,7 +44,6 @@ extends =
../../component/tesseract/buildout.cfg ../../component/tesseract/buildout.cfg
../../component/w3m/buildout.cfg ../../component/w3m/buildout.cfg
../../component/poppler/buildout.cfg ../../component/poppler/buildout.cfg
../../component/zabbix/buildout.cfg
../../component/sed/buildout.cfg ../../component/sed/buildout.cfg
../../component/coreutils/buildout.cfg ../../component/coreutils/buildout.cfg
../../component/grep/buildout.cfg ../../component/grep/buildout.cfg
...@@ -52,7 +51,6 @@ extends = ...@@ -52,7 +51,6 @@ extends =
../../component/bash/buildout.cfg ../../component/bash/buildout.cfg
../../component/wget/buildout.cfg ../../component/wget/buildout.cfg
../../component/aspell/buildout.cfg ../../component/aspell/buildout.cfg
../../component/jsl/buildout.cfg
../../component/6tunnel/buildout.cfg ../../component/6tunnel/buildout.cfg
../../component/userhosts/buildout.cfg ../../component/userhosts/buildout.cfg
../../component/postfix/buildout.cfg ../../component/postfix/buildout.cfg
...@@ -75,7 +73,6 @@ parts += ...@@ -75,7 +73,6 @@ parts +=
slapos-cookbook slapos-cookbook
mroonga-mariadb mroonga-mariadb
tesseract tesseract
zabbix-agent
.coveragerc .coveragerc
# Buildoutish # Buildoutish
...@@ -262,8 +259,6 @@ link-binary = ...@@ -262,8 +259,6 @@ link-binary =
${ghostscript:location}/bin/gs ${ghostscript:location}/bin/gs
${imagemagick:location}/bin/identify ${imagemagick:location}/bin/identify
${jpegoptim:location}/bin/jpegoptim ${jpegoptim:location}/bin/jpegoptim
${jsl:location}/bin/jsl
${librsvg:location}/bin/rsvg-convert
${mariadb:location}/bin/mysql ${mariadb:location}/bin/mysql
${mariadb:location}/bin/mysqldump ${mariadb:location}/bin/mysqldump
${openssl:location}/bin/openssl ${openssl:location}/bin/openssl
...@@ -561,7 +556,6 @@ eggs = ${neoppod:eggs} ...@@ -561,7 +556,6 @@ eggs = ${neoppod:eggs}
Jinja2 Jinja2
jsonschema jsonschema
mechanize mechanize
mock
oauthlib oauthlib
objgraph objgraph
${python-pynacl:egg} ${python-pynacl:egg}
...@@ -602,7 +596,8 @@ eggs = ${neoppod:eggs} ...@@ -602,7 +596,8 @@ eggs = ${neoppod:eggs}
jedi jedi
yapf yapf
typing typing
pytracemalloc # Used for Python 2 only
${pytracemalloc:egg}
xlrd xlrd
pydot pydot
...@@ -765,7 +760,6 @@ SOAPpy = 0.12.0nxd001 ...@@ -765,7 +760,6 @@ SOAPpy = 0.12.0nxd001
alabaster = 0.7.12 alabaster = 0.7.12
APacheDEX = 1.8 APacheDEX = 1.8
Beaker = 1.11.0 Beaker = 1.11.0
beautifulsoup4 = 4.8.2
cloudpickle = 0.5.3 cloudpickle = 0.5.3
cookies = 2.2.1 cookies = 2.2.1
dask = 0.18.1 dask = 0.18.1
...@@ -844,7 +838,6 @@ rfc3987 = 1.3.8 ...@@ -844,7 +838,6 @@ rfc3987 = 1.3.8
rsa = 3.4.2 rsa = 3.4.2
scikit-image = 0.14.0 scikit-image = 0.14.0
scipy = 0.19.0 scipy = 0.19.0
soupsieve = 1.9.5
spyne = 2.12.14 spyne = 2.12.14
strict-rfc3339 = 0.7 strict-rfc3339 = 0.7
StructuredText = 2.11.1 StructuredText = 2.11.1
......
...@@ -86,7 +86,7 @@ md5sum = 0ac4b74436f554cd677f19275d18d880 ...@@ -86,7 +86,7 @@ md5sum = 0ac4b74436f554cd677f19275d18d880
[template-zope] [template-zope]
filename = instance-zope.cfg.in filename = instance-zope.cfg.in
md5sum = e6c94c2a48788683bf0d63d135a44932 md5sum = 9e6440425167a506bd473a3697eaa9e6
[template-balancer] [template-balancer]
filename = instance-balancer.cfg.in filename = instance-balancer.cfg.in
......
...@@ -78,6 +78,7 @@ environment += ...@@ -78,6 +78,7 @@ environment +=
PATH=${binary-link:target-directory}:{{ parameter_dict['coreutils'] }}/bin:{{ parameter_dict['perl_dbd_mariadb_path'] }} PATH=${binary-link:target-directory}:{{ parameter_dict['coreutils'] }}/bin:{{ parameter_dict['perl_dbd_mariadb_path'] }}
TZ={{ slapparameter_dict['timezone'] }} TZ={{ slapparameter_dict['timezone'] }}
MATPLOTLIBRC={{ parameter_dict['matplotlibrc'] }} MATPLOTLIBRC={{ parameter_dict['matplotlibrc'] }}
PYTHONUNBUFFERED=1
INSTANCE_HOME=${:instance-home} INSTANCE_HOME=${:instance-home}
CAUCASE={{ slapparameter_dict['caucase-url'] }} CAUCASE={{ slapparameter_dict['caucase-url'] }}
FONTCONFIG_FILE=${fontconfig-conf:output} FONTCONFIG_FILE=${fontconfig-conf:output}
......
...@@ -82,4 +82,4 @@ LoadModule rewrite_module modules/mod_rewrite.so ...@@ -82,4 +82,4 @@ LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so LoadModule deflate_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so LoadModule filter_module modules/mod_filter.so
LoadModule php7_module modules/libphp7.so LoadModule php_module modules/libphp.so
...@@ -18,7 +18,7 @@ md5sum = 7854dd0edd48f2d91c16412c4a875ca4 ...@@ -18,7 +18,7 @@ md5sum = 7854dd0edd48f2d91c16412c4a875ca4
[instance-apache-php] [instance-apache-php]
filename = instance-apache-php.cfg.in filename = instance-apache-php.cfg.in
md5sum = 9ab14922535d4d85e0db8602c47a707d md5sum = 1e4762a6a7631d517fb45c84f9c989fe
[instance-lamp] [instance-lamp]
filename = instance-lamp.cfg.jinja2.in filename = instance-lamp.cfg.jinja2.in
...@@ -26,11 +26,11 @@ md5sum = 347ddf1516bf2ddb5f6fb23539382847 ...@@ -26,11 +26,11 @@ md5sum = 347ddf1516bf2ddb5f6fb23539382847
[template-apache.conf] [template-apache.conf]
filename = apache.conf.in filename = apache.conf.in
md5sum = 04080510698732d84122b464fdb08c6a md5sum = e49410f0a4bf28993a56bb28aff0a6f0
[template-php.ini] [template-php.ini]
filename = php.ini.in filename = php.ini.in
md5sum = 980f603c34fcb008ce73a9dde2dbceb3 md5sum = bf21c6d68ef85ee7de090375424d0c5c
[template-apache-httpd] [template-apache-httpd]
filename = apache-httpd.conf.in filename = apache-httpd.conf.in
......
...@@ -215,7 +215,6 @@ php.post_max_size = 10240M ...@@ -215,7 +215,6 @@ php.post_max_size = 10240M
php.session.cookie_secure = True php.session.cookie_secure = True
php.max_execution_time = 1800 php.max_execution_time = 1800
php.max_input_time = 3600 php.max_input_time = 3600
php.output_buffering = 'Off'
php.max_file_uploads = 100 php.max_file_uploads = 100
[php-bin] [php-bin]
......
...@@ -43,7 +43,7 @@ apc.ttl=7200 ...@@ -43,7 +43,7 @@ apc.ttl=7200
apc.user_ttl=7200 apc.user_ttl=7200
apc.gc_ttl=3600 apc.gc_ttl=3600
apc.num_files_hint=1024 apc.num_files_hint=1024
apc.enable_cli=0 apc.enable_cli=1
apc.max_file_size=5M apc.max_file_size=5M
apc.cache_by_default=1 apc.cache_by_default=1
apc.use_request_time=1 apc.use_request_time=1
......
[buildout]
extends =
../component/lxml-python/buildout.cfg
../component/sheepstrike/buildout.cfg
parts =
eggs
sheepstrike
[eggs]
recipe = zc.recipe.egg
eggs =
${lxml-python:egg}
slapos.recipe.sheepdogtestbed
slapos.tool.nosqltester
slapos.tool.nosqltester_manager
slapos.tool.nosqltester_manager.sheepdog
...@@ -136,31 +136,33 @@ zc.buildout = 2.7.1+slapos019 ...@@ -136,31 +136,33 @@ 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
backports.lzma = 0.0.14 backports.lzma = 0.0.14
backports.shutil-get-terminal-size = 1.0.0 backports.shutil-get-terminal-size = 1.0.0
bcrypt = 3.1.4 bcrypt = 3.1.4
beautifulsoup4 = 4.8.2
bleach = 5.0.1 bleach = 5.0.1
blinker = 1.6.3:whl
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 +182,11 @@ entrypoints = 0.3 ...@@ -180,10 +182,11 @@ 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
fastjsonschema = 2.18.1
feedparser = 6.0.10 feedparser = 6.0.10
Flask = 1.1.2 Flask = 3.0.0:whl
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 +199,7 @@ h5py = 2.7.1 ...@@ -196,7 +199,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
...@@ -204,10 +207,10 @@ ipykernel = 5.3.4:whl ...@@ -204,10 +207,10 @@ ipykernel = 5.3.4:whl
ipython = 7.16.3 ipython = 7.16.3
ipython-genutils = 0.1.0 ipython-genutils = 0.1.0
ipywidgets = 6.0.0 ipywidgets = 6.0.0
itsdangerous = 0.24 itsdangerous = 2.1.2
jdcal = 1.4 jdcal = 1.4
jedi = 0.17.2 jedi = 0.17.2
Jinja2 = 2.11.3 Jinja2 = 3.1.2:whl
jsonschema = 4.17.3:whl jsonschema = 4.17.3:whl
jupyter = 1.0.0 jupyter = 1.0.0
jupyter-client = 7.3.1 jupyter-client = 7.3.1
...@@ -218,10 +221,10 @@ jupyterlab-launcher = 0.3.1 ...@@ -218,10 +221,10 @@ 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.1.3
matplotlib = 2.1.2 matplotlib = 2.1.2
meld3 = 1.0.2 meld3 = 1.0.2
mistune = 0.8.4 mistune = 0.8.4
...@@ -231,15 +234,15 @@ mpmath = 1.0.0 ...@@ -231,15 +234,15 @@ mpmath = 1.0.0
msgpack = 0.6.2 msgpack = 0.6.2
multidict = 6.0.4 multidict = 6.0.4
nbclient = 0.5.1 nbclient = 0.5.1
nbconvert = 6.0.7 nbconvert = 6.5.4
nbformat = 5.0.8 nbformat = 5.9.2:whl
nest-asyncio = 1.5.6 nest-asyncio = 1.5.6
netaddr = 0.7.19 netaddr = 0.7.19
netifaces = 0.10.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 +269,7 @@ pyasn1 = 0.4.5 ...@@ -266,7 +269,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 +286,7 @@ pyzmq = 22.3.0 ...@@ -283,7 +286,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
...@@ -297,7 +300,7 @@ simplegeneric = 0.8.1 ...@@ -297,7 +300,7 @@ simplegeneric = 0.8.1
singledispatch = 3.4.0.3 singledispatch = 3.4.0.3
six = 1.16.0 six = 1.16.0
slapos.cookbook = 1.0.329 slapos.cookbook = 1.0.329
slapos.core = 1.10.3 slapos.core = 1.10.4
slapos.extension.shared = 1.0 slapos.extension.shared = 1.0
slapos.libnetworkcache = 0.25 slapos.libnetworkcache = 0.25
slapos.rebootstrap = 4.5 slapos.rebootstrap = 4.5
...@@ -308,6 +311,7 @@ slapos.toolbox = 0.139 ...@@ -308,6 +311,7 @@ slapos.toolbox = 0.139
smmap = 5.0.0 smmap = 5.0.0
sniffio = 1.3.0 sniffio = 1.3.0
sortedcontainers = 2.4.0 sortedcontainers = 2.4.0
soupsieve = 1.9.5
statsmodels = 0.11.1 statsmodels = 0.11.1
stevedore = 1.21.0:whl stevedore = 1.21.0:whl
subprocess32 = 3.5.4 subprocess32 = 3.5.4
...@@ -315,28 +319,29 @@ supervisor = 4.1.0 ...@@ -315,28 +319,29 @@ supervisor = 4.1.0
sympy = 1.1.1 sympy = 1.1.1
terminado = 0.9.1 terminado = 0.9.1
testpath = 0.4.4 testpath = 0.4.4
tinycss2 = 1.2.1:whl
tornado = 6.1 tornado = 6.1
traitlets = 5.0.5 traitlets = 5.11.2:whl
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
urllib3 = 1.26.12 urllib3 = 1.26.12
wcwidth = 0.2.5 wcwidth = 0.2.5
webencodings = 0.5.1 webencodings = 0.5.1
websockets = 10.4
websocket-client = 1.5.1 websocket-client = 1.5.1
Werkzeug = 2.0.2 websockets = 10.4
wheel = 0.38.4:whl Werkzeug = 3.0.0: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
...@@ -356,9 +361,12 @@ charset-normalizer = 2.0.12 ...@@ -356,9 +361,12 @@ charset-normalizer = 2.0.12
click = 6.7 click = 6.7
distro = 1.6.0 distro = 1.6.0
feedparser = 5.2.1 feedparser = 5.2.1
Flask = 1.1.2
gitdb2 = 2.0.5 gitdb2 = 2.0.5
GitPython = 2.1.11 GitPython = 2.1.11
idna = 2.9 idna = 2.9
itsdangerous = 0.24
Jinja2 = 2.11.3
jsonschema = 3.0.2:whl jsonschema = 3.0.2:whl
packaging = 16.8 packaging = 16.8
pyparsing = 2.2.0 pyparsing = 2.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