Commit 96f51fba authored by Kirill Smelkov's avatar Kirill Smelkov

Merge branch 'master' into master+ZODB4-wc2

* master:
  software/erp5testnode: update seleniumrunner
  java-re/libreoffice: disable shared for the moment
  stack/resilient: Use dumps to transmit parameters
  fix "stack/caucase: Fix md5 change detection"
  java-re: enable shared
  java: clean up
  java: remove old/unused patch
  libreoffice: enable shared
  More shared parts using slapos.recipe.build:download-unpacked
  nginx: share more parts, drop obsolete sections
  fonts: cleanup, make msttcore-fonts shared
  theia: clean up test/dummy/software.cfg
  version up: zc.buildout, slapos.recipe.build, Debian 10/11 netinst
  kvm: small cleanup before further changes about iso image path
  NEO: use stack/slapos.cfg versions for cffi/gevent/greenlet
  Clean up 'cclient' component
  Move old MySQL to unstable
  caddy-frontend: Add missing promise on each exposed node
  caddy-frontend: Avoid needless double slashing for type:zope
parents 59776fa8 cddac873
...@@ -10,7 +10,9 @@ parts = ...@@ -10,7 +10,9 @@ parts =
[cclient] [cclient]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz #url = ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz
url = https://src.fedoraproject.org/lookaside/pkgs/uw-imap/${:filename}/${:md5sum}/${:filename}
filename = imap-2007f.tar.gz
md5sum = 2126fd125ea26b73b20f01fcd5940369 md5sum = 2126fd125ea26b73b20f01fcd5940369
configure-command = true configure-command = true
# cclient does not support parallel compilation # cclient does not support parallel compilation
...@@ -23,11 +25,11 @@ make-options = ...@@ -23,11 +25,11 @@ make-options =
SSLLIB=${openssl:location}/lib SSLLIB=${openssl:location}/lib
EXTRACFLAGS=-fPIC EXTRACFLAGS=-fPIC
EXTRALDFLAGS="-Wl,-rpath -Wl,${openssl:location}/lib" EXTRALDFLAGS="-Wl,-rpath -Wl,${openssl:location}/lib"
CCLIENT=${buildout:parts-directory} PREFIX=%(location)s
-j1 -j1
patches = patches =
${:_profile_base_location_}/imap-2007f.patch#42c77fdd5d7a976fc302b93aadb3da98 ${:_profile_base_location_}/imap-2007f.patch#5d1f2f95472f6be465ef7e152a011100
${:_profile_base_location_}/imap-2007f-openssl-1.1.patch#c726354e888f2f3b3954e334903cef80 ${:_profile_base_location_}/imap-2007f-openssl-1.1.patch#c726354e888f2f3b3954e334903cef80
patch-options = -p1 patch-options = -p1
--- old/Makefile 2011-09-22 13:19:53.000000000 +0100 diff -u old/Makefile new/Makefile
+++ new/Makefile 2011-11-09 15:02:54.038306922 +0100 --- old/Makefile
@@ -280,7 +280,11 @@ +++ new/Makefile
@@ -280,6 +280,7 @@
SYSTEM=unix SYSTEM=unix
TOOLS=tools TOOLS=tools
TOUCH=touch TOUCH=touch
-
+IMAPDIR=$(CCLIENT)/cclient
+COMPILEDIR = $(CCLIENT)/cclient__compile__/imap-2007f
+CP=cp -r
+INSTALL=install +INSTALL=install
+FOR=for
# Primary build command
@@ -580,7 +584,6 @@ # Primary build command
@@ -580,7 +581,6 @@
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@echo @echo
@echo Do you want to continue this build anyway? Type y or n please: @echo Do you want to continue this build anyway? Type y or n please:
...@@ -21,36 +17,26 @@ ...@@ -21,36 +17,26 @@
nounenc: nounenc:
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -639,7 +642,7 @@ @@ -639,7 +639,6 @@
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@echo @echo
@echo Do you want to build with IPv6 anyway? Type y or n please: @echo Do you want to build with IPv6 anyway? Type y or n please:
- @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make noip6;exit 1);; esac' - @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make noip6;exit 1);; esac'
+ #@$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make noip6;exit 1);; esac'
@echo OK, I will remember that you really want to build with IPv6. @echo OK, I will remember that you really want to build with IPv6.
@echo You will not see this message again. @echo You will not see this message again.
@$(TOUCH) ip6 @$(TOUCH) ip6
@@ -731,6 +734,24 @@ @@ -731,6 +730,15 @@
$(SH) -c '$(RM) an ua OSTYPE SPECIALS c-client mtest imapd ipopd mailutil mlock dmail tmail || true' $(SH) -c '$(RM) an ua OSTYPE SPECIALS c-client mtest imapd ipopd mailutil mlock dmail tmail || true'
$(CD) tools;$(MAKE) clean $(CD) tools;$(MAKE) clean
+install: +install:
+ $(INSTALL) -v -d $(IMAPDIR)/include + $(INSTALL) -v -d $(PREFIX)/bin $(PREFIX)/include $(PREFIX)/lib
+ $(INSTALL) -v -d $(IMAPDIR)/lib + $(INSTALL) -v c-client/*.h $(PREFIX)/include
+ $(INSTALL) -v -m 644 $(COMPILEDIR)/c-client/*.h $(IMAPDIR)/include + $(INSTALL) -v c-client/c-client.a $(PREFIX)/lib
+ $(INSTALL) -v -m 644 $(COMPILEDIR)/c-client/c-client.a $(IMAPDIR)/lib + for x in ipopd mailutil imapd dmail mlock mtest tmail; \
+ $(CP) $(COMPILEDIR)/ipopd $(COMPILEDIR)/mailutil $(COMPILEDIR)/imapd \ + do for x in $$x/*; do [ ! -x $$x ] || echo $$x; done; \
+ $(COMPILEDIR)/dmail $(COMPILEDIR)/mlock $(COMPILEDIR)/mtest $(COMPILEDIR)/tmail $(IMAPDIR) + done |xargs $(INSTALL) -v -t $(PREFIX)/bin
+ $(RM) $(IMAPDIR)/ipopd/*.h $(IMAPDIR)/ipopd/*.c $(IMAPDIR)/ipopd/Makefile; + $(INSTALL) -v -t $(PREFIX) ip6 OSTYPE SPECIALS
+ $(RM) $(IMAPDIR)/mailutil/*.h $(IMAPDIR)/mailutil/*.c $(IMAPDIR)/mailutil/Makefile;
+ $(RM) $(IMAPDIR)/imapd/*.h $(IMAPDIR)/imapd/*.c $(IMAPDIR)/imapd/Makefile;
+ $(RM) $(IMAPDIR)/tmail/*.h $(IMAPDIR)/tmail/*.c $(IMAPDIR)/tmail/Makefile;
+ $(RM) $(IMAPDIR)/mlock/*.h $(IMAPDIR)/mlock/*.c $(IMAPDIR)/mlock/Makefile;
+ $(RM) $(IMAPDIR)/mtest/*.h $(IMAPDIR)/mtest/*.c $(IMAPDIR)/mtest/Makefile;
+ $(RM) $(IMAPDIR)/dmail/*.h $(IMAPDIR)/dmail/*.c $(IMAPDIR)/dmail/Makefile;
+ $(INSTALL) -v -m 644 $(COMPILEDIR)/ip6 $(IMAPDIR)
+ $(INSTALL) -v -m 644 $(COMPILEDIR)/OSTYPE $(IMAPDIR)
+ $(INSTALL) -v -m 644 $(COMPILEDIR)/SPECIALS $(IMAPDIR)
+ +
# A monument to a hack of long ago and far away... # A monument to a hack of long ago and far away...
......
...@@ -13,16 +13,8 @@ parts = ...@@ -13,16 +13,8 @@ parts =
[fonts-base] [fonts-base]
# XXX download and unpack, with shared parts support recipe = slapos.recipe.build:download-unpacked
# we could make slapos.recipe.build:download-unpacked really support shared
# parts and use it here. Current version of slapos.recipe.build ( 0.44 ) looks
# for buildout:shared-parts , but this is not what shared parts are using.
recipe = slapos.recipe.cmmi
shared = true shared = true
configure-command = :
make-binary = :
post-install = cp -ra . ${:location}
location = @@LOCATION@@
environment = environment =
PATH=${xz-utils:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:%(PATH)s
...@@ -77,27 +69,19 @@ md5sum = 62f02985bfef43a27dbdd17641fec210 ...@@ -77,27 +69,19 @@ md5sum = 62f02985bfef43a27dbdd17641fec210
# Microsoft's TrueType core fonts # Microsoft's TrueType core fonts
# non-free so not enabled by default # non-free so not enabled by default
[msttcore-fonts] [msttcore-fonts]
location = ${buildout:parts-directory}/${:_buildout_section_name_}
recipe = slapos.recipe.build recipe = slapos.recipe.build
shared = true
p7z = ${p7zip:location}/bin/7z
install = install =
import os, subprocess import os, subprocess
from zc.buildout.download import Download os.makedirs(location)
d = location cmd = [options['p7z'], "x", "-ssc-", None, "*.ttf"]
fonts = [] for x in options['fonts'].splitlines():
download = lambda x, dl=Download(self.buildout['buildout']): ( md5sum, name = x.split()
dl("http://downloads.sf.net/corefonts/%s32.exe" % name, md5sum=md5sum) cmd[3] = self.download(
for md5sum, name in (x.split() for x in x.splitlines() if x)) "http://downloads.sf.net/corefonts/%s32.exe" % name,
extract = lambda x, d=d, p7z="${p7zip:location}/bin/7z": any( md5sum)
subprocess.check_call((p7z, "x", "-ssc-", path, "*.ttf"), cwd=d) subprocess.check_call(cmd, cwd=location)
for path, is_temp in x)
try:
fonts += download(options['fonts'])
os.makedirs(d)
extract(fonts)
finally:
for path, is_temp in fonts:
if is_temp:
os.remove(path)
slapos_promise = slapos_promise =
slapos_update_promise = ${:slapos_promise} slapos_update_promise = ${:slapos_promise}
fonts = fonts =
......
...@@ -16,6 +16,7 @@ rpath = ${:library-dirs} ...@@ -16,6 +16,7 @@ rpath = ${:library-dirs}
[geolite2-country] [geolite2-country]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true
url = http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz#${:md5sum} url = http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz#${:md5sum}
md5sum = dc6224c648350d90f344a0c5c3ca5474 md5sum = dc6224c648350d90f344a0c5c3ca5474
strip-top-level-dir = true strip-top-level-dir = true
......
...@@ -9,26 +9,23 @@ parts = ...@@ -9,26 +9,23 @@ parts =
[java-jdk] [java-jdk]
recipe = plone.recipe.command recipe = slapos.recipe.build
command = echo "Error: unsupported platform" && false update =
stop-on-error = true from zc.buildout import UserError
location = raise UserError("unsupported platform")
[java-jdk:linux and bits64] [java-jdk:linux and platform.machine() == 'x86_64']
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz url = https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz
md5sum = f5da6f4dec81bdd2a096184ec1d69216 md5sum = f5da6f4dec81bdd2a096184ec1d69216
configure-command = : configure-command = :
make-binary = : make-binary = :
pre-install =
mkdir -p @@LOCATION@@
cp -r * @@LOCATION@@
post-install = post-install =
for file in @@LOCATION@@/bin/* ; do mv * %(location)s
for file in %(location)s/bin/* ; do
echo appending rpath to $file echo appending rpath to $file
${patchelf:location}/bin/patchelf --set-rpath ${:rpath} $file ${patchelf:location}/bin/patchelf --set-rpath %(rpath)s $file
done done
rpath = ${zlib:location}/lib:@@LOCATION@@/lib rpath = ${zlib:location}/lib:@@LOCATION@@/lib
location = @@LOCATION@@
...@@ -9,42 +9,34 @@ parts = ...@@ -9,42 +9,34 @@ parts =
[java-re] [java-re]
<= java-re-7 <= java-re-7
[java-common]
recipe = slapos.recipe.build:download-unpacked
url = http://javadl.sun.com/webapps/download/AutoDL?BundleId=${:bundle-id}
[java-re-7] [java-re-7]
recipe = slapos.recipe.build <= java-common
slapos_promisee =
directory:bin
directory:lib
directory:man
directory:plugin
file:lib/rt.jar
file:bin/java
# http://java.com/en/download/manual_java7.jsp # http://java.com/en/download/manual_java7.jsp
x86 = http://javadl.sun.com/webapps/download/AutoDL?BundleId=97798 90a6b9e2a32d06c18a3f16b485f0d1ea
x86-64 = http://javadl.sun.com/webapps/download/AutoDL?BundleId=97800 7605134662f6c87131eca5745895fe84 [java-re-7:linux and platform.machine() == 'i686']
install = bundle-id = 97798
url, md5sum = options[guessPlatform()].split() md5sum = 90a6b9e2a32d06c18a3f16b485f0d1ea
extract_dir = self.extract(self.download(url, md5sum))
workdir = guessworkdir(extract_dir) [java-re-7:linux and platform.machine() == 'x86_64']
self.copyTree(workdir, location) bundle-id = 97800
md5sum = 7605134662f6c87131eca5745895fe84
[java-re-8] [java-re-8]
recipe = slapos.recipe.build <= java-common
slapos_promisee =
directory:bin
directory:lib
directory:man
directory:plugin
file:lib/rt.jar
file:bin/java
# https://www.java.com/en/download/manual.jsp # https://www.java.com/en/download/manual.jsp
# Update 161 # Update 161
x86 = http://javadl.oracle.com/webapps/download/AutoDL?BundleId=230530_2f38c3b165be4555a1fa6e98c45e0808 32db95dd417fd7949922206b2a61aa19
x86-64 = http://javadl.oracle.com/webapps/download/AutoDL?BundleId=230532_2f38c3b165be4555a1fa6e98c45e0808 4385bc121b085862be623f4a31e7e0b4 [java-re-8:linux and platform.machine() == 'i686']
install = bundle-id = 230530_2f38c3b165be4555a1fa6e98c45e0808
url, md5sum = options[guessPlatform()].split() md5sum = 90a6b9e2a32d06c18a3f16b485f0d1ea
extract_dir = self.extract(self.download(url, md5sum))
workdir = guessworkdir(extract_dir) [java-re-8:linux and platform.machine() == 'x86_64']
self.copyTree(workdir, location) bundle-id = 230532_2f38c3b165be4555a1fa6e98c45e0808
md5sum = 4385bc121b085862be623f4a31e7e0b4
[java-re-8-output] [java-re-8-output]
# Shared binary location to ease migration # Shared binary location to ease migration
......
--- jdk-6u27-linux-x64.bin.orig 2011-09-27 11:02:14.000000000 +0200
+++ jdk-6u27-linux-x64.bin 2011-09-27 10:38:01.000000000 +0200
@@ -81,7 +81,7 @@
trap 'rm -f $outname; exit 1' HUP INT QUIT TERM
echo "Unpacking..."
tail ${tail_args} +189 "$0" > $outname
-if [ -x /usr/bin/sum ]; then
+if [ -x /usr/bin/null ]; then
echo "Checksumming..."
sum=`/usr/bin/sum $outname`
@@ -169,7 +169,7 @@
fi
# Service Tag support and JDK product registration
- register_JDK "$javahome" "${BINARY_NAME}" "$1"
+ # register_JDK "$javahome" "${BINARY_NAME}" "$1"
else
if [ "$1" = "-x" ]; then
[buildout] [buildout]
extends = extends =
../coreutils/buildout.cfg ../coreutils/buildout.cfg
../git/buildout.cfg
../libexpat/buildout.cfg ../libexpat/buildout.cfg
../openssl/buildout.cfg ../openssl/buildout.cfg
../patch/buildout.cfg
../pcre/buildout.cfg ../pcre/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
...@@ -12,13 +10,12 @@ parts = nginx-output ...@@ -12,13 +10,12 @@ parts = nginx-output
[nginx-common] [nginx-common]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = false shared = true
url = https://nginx.org/download/nginx-1.19.2.tar.gz url = https://nginx.org/download/nginx-1.19.2.tar.gz
md5sum = 3dc55f6451ed6f819f1c796f4e5e9617 md5sum = 3dc55f6451ed6f819f1c796f4e5e9617
[nginx] [nginx]
<= nginx-common <= nginx-common
shared = true
configure-options= configure-options=
--with-http_ssl_module --with-http_ssl_module
--with-http_v2_module --with-http_v2_module
...@@ -32,10 +29,10 @@ configure-options= ...@@ -32,10 +29,10 @@ configure-options=
[nginx-dav-ext-module] [nginx-dav-ext-module]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true
url = https://github.com/arut/nginx-dav-ext-module/archive/v0.0.3.tar.gz url = https://github.com/arut/nginx-dav-ext-module/archive/v0.0.3.tar.gz
strip-top-level-dir = true strip-top-level-dir = true
md5sum = 2cb502dbda335be4ebd5fed0b3182bae md5sum = 2cb502dbda335be4ebd5fed0b3182bae
mode = 0644
[nginx-webdav] [nginx-webdav]
<= nginx-common <= nginx-common
...@@ -61,29 +58,11 @@ command = ${coreutils-output:test} -x ${:nginx} -a -f ${:mime} ...@@ -61,29 +58,11 @@ command = ${coreutils-output:test} -x ${:nginx} -a -f ${:mime}
nginx = ${nginx:location}/sbin/nginx nginx = ${nginx:location}/sbin/nginx
mime = ${nginx:location}/conf/mime.types mime = ${nginx:location}/conf/mime.types
[hexaglobe-nginx-module]
recipe = hexagonit.recipe.download
ignore-existing = true
url = http://easicloud-p.cdn.hexaglobe.net/nginx-easicloud.tar.gz
md5sum = 57fe2ceb09740f22b5b1023f29889e0e
strip-top-level-dir = true
[nginx-enable-sub]
# Used by Hexaglobe for watermarking
<= nginx
configure-options=
--with-ipv6
--with-http_ssl_module
--with-ld-opt="-L ${zlib:location}/lib -L ${openssl:location}/lib -L ${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl:location}/lib"
--with-cc-opt="-I ${pcre:location}/include -I ${openssl:location}/include -I ${zlib:location}/include"
--add-module=${hexaglobe-nginx-module:location}/sub_module
# --add-module=${hexaglobe-nginx-module:location}/nginx-upstream-fair
[nginx-push-stream-module] [nginx-push-stream-module]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:download-unpacked
repository = https://github.com/wandenberg/nginx-push-stream-module.git shared = true
revision = 3d3a204177d3a7ab8a2858e04e792a6d11bf133f url = https://github.com/wandenberg/nginx-push-stream-module/archive/0.4.0.tar.gz
git-executable = ${git:location}/bin/git md5sum = d9cba621b8739e13bdb5e02b9425f205
[nginx-push-stream] [nginx-push-stream]
<= nginx-common <= nginx-common
......
...@@ -4,6 +4,7 @@ parts = ...@@ -4,6 +4,7 @@ parts =
[noVNC] [noVNC]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true
url = https://github.com/novnc/noVNC/archive/refs/tags/v1.2.0.tar.gz url = https://github.com/novnc/noVNC/archive/refs/tags/v1.2.0.tar.gz
md5sum = 290dfabc4ecdd58d62ccb8c34a922962 md5sum = 290dfabc4ecdd58d62ccb8c34a922962
strip-top-level-dir = true strip-top-level-dir = true
[buildout] [buildout]
extends = extends =
../mysql-tritonn-5.0/buildout.cfg
../mariadb/buildout.cfg ../mariadb/buildout.cfg
../patch/buildout.cfg ../patch/buildout.cfg
../perl-Devel-CheckLib/buildout.cfg ../perl-Devel-CheckLib/buildout.cfg
parts = parts =
perl-DBD-MySQL perl-DBD-mariadb
[perl-DBD-MySQL-common] [perl-DBD-MySQL-common]
<= perl-CPAN-package <= perl-CPAN-package
...@@ -23,12 +22,6 @@ patches = ...@@ -23,12 +22,6 @@ patches =
patch-options = -p1 patch-options = -p1
extra-configure-args=--libs "-L${zlib:location}/lib -L${openssl:location}/lib $(mysql_config --libs)" extra-configure-args=--libs "-L${zlib:location}/lib -L${openssl:location}/lib $(mysql_config --libs)"
[perl-DBD-MySQL]
<= perl-DBD-MySQL-common
environment =
OTHERLDFLAGS=-Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${mysql-tritonn-5.0:location}/lib/mysql -Wl,-rpath=${openssl:location}/lib
PATH=${mysql-tritonn-5.0:location}/bin:${patch:location}/bin:%(PATH)s
[perl-DBD-mariadb] [perl-DBD-mariadb]
<= perl-DBD-MySQL-common <= perl-DBD-MySQL-common
environment = environment =
......
...@@ -63,9 +63,10 @@ environment += ...@@ -63,9 +63,10 @@ environment +=
[debian-netinst-base] [debian-netinst-base]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
filename = ${:_buildout_section_name_} shared = true
url = https://cdimage.debian.org/cdimage/${:release}/${:arch}/iso-cd/debian-${:version}-${:arch}-netinst.iso filename = debian-${:version}-${:arch}-netinst.iso
release = archive/${:version} url = https://cdimage.debian.org/cdimage/archive/${:archive}/${:arch}/iso-cd/${:filename}
archive = ${:version}
[debian-amd64-netinst-base] [debian-amd64-netinst-base]
<= debian-netinst-base <= debian-netinst-base
...@@ -86,16 +87,23 @@ md5sum = df0ce86d0b1d81e232ad08eef58754ed ...@@ -86,16 +87,23 @@ md5sum = df0ce86d0b1d81e232ad08eef58754ed
version = 9.13.0 version = 9.13.0
md5sum = 6097fdb9cbab47c96471274b9044e983 md5sum = 6097fdb9cbab47c96471274b9044e983
[debian-amd64-netinst.iso] [debian-amd64-buster-netinst.iso]
# Download the installer of Debian 10 (Buster)
# XXX: This is not the latest version because
# Debian does not provide a stable URL for it.
<= debian-amd64-netinst-base <= debian-amd64-netinst-base
version = 10.10.0 version = 10.10.0
md5sum = c7d0e562e589e853b5d00563b4311720 md5sum = c7d0e562e589e853b5d00563b4311720
[debian-amd64-bullseye-netinst.iso]
<= debian-amd64-netinst-base
version = 11.0.0
md5sum = 499953266841cae41612310e65659456
alternate-url = https://cdimage.debian.org/cdimage/release/current/${:arch}/iso-cd/${:filename}
[debian-amd64-netinst.iso]
<= debian-amd64-bullseye-netinst.iso
[debian-amd64-testing-netinst.iso] [debian-amd64-testing-netinst.iso]
<= debian-amd64-netinst-base <= debian-amd64-netinst-base
release = bullseye_di_rc3 alternate-url = https://cdimage.debian.org/cdimage/${archive}/${:arch}/iso-cd/${:filename}
archive = bullseye_di_rc3
version = bullseye-DI-rc3 version = bullseye-DI-rc3
md5sum = 405917de7062c58357a3673c9901f0c4 md5sum = 405917de7062c58357a3673c9901f0c4
...@@ -5,5 +5,6 @@ parts = ...@@ -5,5 +5,6 @@ parts =
[rpm2cpio] [rpm2cpio]
# https://github.com/ruda/rpm2cpio # https://github.com/ruda/rpm2cpio
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
shared = true
url = ${:_profile_base_location_}/${:_buildout_section_name_} url = ${:_profile_base_location_}/${:_buildout_section_name_}
md5sum = aa3a5920a1d8963592be0c2666ee05e2 md5sum = aa3a5920a1d8963592be0c2666ee05e2
...@@ -11,7 +11,7 @@ parts = ...@@ -11,7 +11,7 @@ parts =
[tomcat7] [tomcat7]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
ignore-existing = true shared = true
strip-top-level-dir = true strip-top-level-dir = true
url = https://archive.apache.org/dist/tomcat/tomcat-7/v${:version}/bin/apache-tomcat-${:version}.tar.gz url = https://archive.apache.org/dist/tomcat/tomcat-7/v${:version}/bin/apache-tomcat-${:version}.tar.gz
version = 7.0.100 version = 7.0.100
...@@ -19,7 +19,7 @@ md5sum = 79be4ba5a6e770730a4be3d5cb3c7862 ...@@ -19,7 +19,7 @@ md5sum = 79be4ba5a6e770730a4be3d5cb3c7862
[tomcat9] [tomcat9]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
ignore-existing = true shared = true
strip-top-level-dir = true strip-top-level-dir = true
url = https://archive.apache.org/dist/tomcat/tomcat-9/v${:version}/bin/apache-tomcat-${:version}.tar.gz url = https://archive.apache.org/dist/tomcat/tomcat-9/v${:version}/bin/apache-tomcat-${:version}.tar.gz
version = 9.0.12 version = 9.0.12
......
...@@ -23,7 +23,7 @@ wait-ssh = 100 ...@@ -23,7 +23,7 @@ wait-ssh = 100
[vm-debian] [vm-debian]
recipe = slapos.recipe.build:vm.install-debian recipe = slapos.recipe.build:vm.install-debian
environment = vm-install-environment environment = vm-install-environment
dists = debian-stable dists = debian-buster
size = 2Gi size = 2Gi
preseed.partman/early_command = preseed.partman/early_command =
set -e /usr/lib/apt-setup/generators/99 AllowUnauthenticated; if [ "`debconf-get mirror/http/hostname`" = archive.debian.org ]; then echo "echo 'APT::Get::$2 \"true\";' >/target/etc/apt/apt.conf.d/01$2" >$1$2; chmod +x $1$2; fi set -e /usr/lib/apt-setup/generators/99 AllowUnauthenticated; if [ "`debconf-get mirror/http/hostname`" = archive.debian.org ]; then echo "echo 'APT::Get::$2 \"true\";' >/target/etc/apt/apt.conf.d/01$2" >$1$2; chmod +x $1$2; fi
...@@ -75,6 +75,8 @@ x86_64.iso = debian-amd64-stretch-netinst.iso ...@@ -75,6 +75,8 @@ x86_64.iso = debian-amd64-stretch-netinst.iso
[debian-buster] [debian-buster]
<= debian-stable <= debian-stable
x86_64.iso = debian-amd64-buster-netinst.iso
[debian-bullseye] [debian-bullseye]
<= debian-testing <= debian-stable
x86_64.iso = debian-amd64-bullseye-netinst.iso
...@@ -35,6 +35,7 @@ bin-yarn = ${:rendered} ...@@ -35,6 +35,7 @@ bin-yarn = ${:rendered}
[yarn-download] [yarn-download]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true
url = https://github.com/yarnpkg/yarn/releases/download/v${:version}/yarn-v${:version}.tar.gz url = https://github.com/yarnpkg/yarn/releases/download/v${:version}/yarn-v${:version}.tar.gz
[yarn-download-1.22.10] [yarn-download-1.22.10]
......
...@@ -22,7 +22,7 @@ md5sum = 5784bea3bd608913769ff9a8afcccb68 ...@@ -22,7 +22,7 @@ md5sum = 5784bea3bd608913769ff9a8afcccb68
[profile-caddy-frontend] [profile-caddy-frontend]
filename = instance-apache-frontend.cfg.in filename = instance-apache-frontend.cfg.in
md5sum = 51087ac7615bd7cc01e60eb23701f625 md5sum = 385674eb3e79bdd773ef6cec1d1281e8
[profile-caddy-replicate] [profile-caddy-replicate]
filename = instance-apache-replicate.cfg.in filename = instance-apache-replicate.cfg.in
...@@ -46,7 +46,7 @@ md5sum = 88af61e7abbf30dc99a1a2526161128d ...@@ -46,7 +46,7 @@ md5sum = 88af61e7abbf30dc99a1a2526161128d
[template-default-slave-virtualhost] [template-default-slave-virtualhost]
_update_hash_filename_ = templates/default-virtualhost.conf.in _update_hash_filename_ = templates/default-virtualhost.conf.in
md5sum = 13cd08d630cc51666a9f7e469fb6ea52 md5sum = 37475d79f28c5f126bc1947fdb938fdb
[template-backend-haproxy-configuration] [template-backend-haproxy-configuration]
_update_hash_filename_ = templates/backend-haproxy.cfg.in _update_hash_filename_ = templates/backend-haproxy.cfg.in
......
...@@ -58,6 +58,7 @@ parts = ...@@ -58,6 +58,7 @@ parts =
promise-slave-introspection-https promise-slave-introspection-https
promise-slave-introspection-configuration promise-slave-introspection-configuration
logrotate-entry-slave-introspection logrotate-entry-slave-introspection
backend-haproxy-statistic-frontend-promise
[caddyprofiledeps] [caddyprofiledeps]
recipe = caddyprofiledeps recipe = caddyprofiledeps
...@@ -921,6 +922,14 @@ config-url = https://[${slap-configuration:ipv6-random}]:{{ instance_parameter_d ...@@ -921,6 +922,14 @@ config-url = https://[${slap-configuration:ipv6-random}]:{{ instance_parameter_d
config-https-only = true config-https-only = true
return = domain secure_access return = domain secure_access
[backend-haproxy-statistic-frontend-promise]
<= monitor-promise-base
module = check_url_available
name = backend-haproxy-statistic-frontend.py
config-http-code = 401
config-url =
${backend-haproxy-statistic-frontend:connection-secure_access}
[slave-introspection-configuration-state] [slave-introspection-configuration-state]
<= jinja2-template-base <= jinja2-template-base
template = {{ software_parameter_dict['template_configuration_state_script'] }} template = {{ software_parameter_dict['template_configuration_state_script'] }}
......
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
{%- if slave_parameter['prefer-gzip-encoding-to-backend'] %} {%- if slave_parameter['prefer-gzip-encoding-to-backend'] %}
{%- do proxy_append_list.append(('prefer-gzip', 'Proxy which always overrides Accept-Encoding to gzip if such is found')) %} {%- do proxy_append_list.append(('prefer-gzip', 'Proxy which always overrides Accept-Encoding to gzip if such is found')) %}
{%- endif %} {#- if slave_parameter['prefer-gzip-encoding-to-backend'] #} {%- endif %} {#- if slave_parameter['prefer-gzip-encoding-to-backend'] #}
{%- if slave_parameter['path'].strip().strip('/') %}
{%- set zope_path = slave_parameter['path'].strip().strip('/') ~ '/' %}
{%- else %}
{%- set zope_path = '' %}
{%- endif %}
{%- set http_host_list = [] %} {%- set http_host_list = [] %}
{%- set https_host_list = [] %} {%- set https_host_list = [] %}
{%- for host in slave_parameter['host_list'] %} {%- for host in slave_parameter['host_list'] %}
...@@ -129,27 +134,27 @@ ...@@ -129,27 +134,27 @@
regexp (.*) regexp (.*)
if {>Accept-Encoding} match "(^gzip,.*|.*, gzip,.*|.*, gzip$|^gzip$)" if {>Accept-Encoding} match "(^gzip,.*|.*, gzip,.*|.*, gzip$|^gzip$)"
{%- if tls %} {%- if tls %}
to /prefer-gzip/VirtualHostBase/{scheme}%2F%2F{hostonly}:{{ slave_parameter['virtualhostroot-https-port'] }}%2F{{ slave_parameter['path'] }}%2FVirtualHostRoot/{1} to /prefer-gzip/VirtualHostBase/{scheme}%2F{hostonly}:{{ slave_parameter['virtualhostroot-https-port'] }}%2F{{ zope_path }}VirtualHostRoot/{1}
{%- else %} {%- else %}
to /prefer-gzip/VirtualHostBase/{scheme}%2F%2F{hostonly}:{{ slave_parameter['virtualhostroot-http-port'] }}%2F{{ slave_parameter['path'] }}%2FVirtualHostRoot/{1} to /prefer-gzip/VirtualHostBase/{scheme}%2F{hostonly}:{{ slave_parameter['virtualhostroot-http-port'] }}%2F{{ zope_path }}VirtualHostRoot/{1}
{%- endif %} {%- endif %}
} }
rewrite { rewrite {
regexp (.*) regexp (.*)
if {>Accept-Encoding} not_match "(^gzip,.*|.*, gzip,.*|.*, gzip$|^gzip$)" if {>Accept-Encoding} not_match "(^gzip,.*|.*, gzip,.*|.*, gzip$|^gzip$)"
{%- if tls %} {%- if tls %}
to /VirtualHostBase/{scheme}%2F%2F{hostonly}:{{ slave_parameter['virtualhostroot-https-port'] }}%2F{{ slave_parameter['path'] }}%2FVirtualHostRoot/{1} to /VirtualHostBase/{scheme}%2F{hostonly}:{{ slave_parameter['virtualhostroot-https-port'] }}%2F{{ zope_path }}VirtualHostRoot/{1}
{%- else %} {%- else %}
to /VirtualHostBase/{scheme}%2F%2F{hostonly}:{{ slave_parameter['virtualhostroot-http-port'] }}%2F{{ slave_parameter['path'] }}%2FVirtualHostRoot/{1} to /VirtualHostBase/{scheme}%2F{hostonly}:{{ slave_parameter['virtualhostroot-http-port'] }}%2F{{ zope_path }}VirtualHostRoot/{1}
{%- endif %} {%- endif %}
} }
{%- else %} {%- else %}
rewrite { rewrite {
regexp (.*) regexp (.*)
{%- if tls %} {%- if tls %}
to /VirtualHostBase/{scheme}%2F%2F{hostonly}:{{ slave_parameter['virtualhostroot-https-port'] }}%2F{{ slave_parameter['path'] }}%2FVirtualHostRoot/{1} to /VirtualHostBase/{scheme}%2F{hostonly}:{{ slave_parameter['virtualhostroot-https-port'] }}%2F{{ zope_path }}VirtualHostRoot/{1}
{%- else %} {%- else %}
to /VirtualHostBase/{scheme}%2F%2F{hostonly}:{{ slave_parameter['virtualhostroot-http-port'] }}%2F{{ slave_parameter['path'] }}%2FVirtualHostRoot/{1} to /VirtualHostBase/{scheme}%2F{hostonly}:{{ slave_parameter['virtualhostroot-http-port'] }}%2F{{ zope_path }}VirtualHostRoot/{1}
{%- endif %} {%- endif %}
} {# rewrite #} } {# rewrite #}
{%- endif %} {#- if slave_parameter['prefer-gzip-encoding-to-backend'] #} {%- endif %} {#- if slave_parameter['prefer-gzip-encoding-to-backend'] #}
......
...@@ -2231,7 +2231,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2231,7 +2231,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
result, result,
'Path', 'Path',
'/VirtualHostBase/' '/VirtualHostBase/'
'https//typezopepath.example.com:443/path/to/some/resource' 'https/typezopepath.example.com:443/path/to/some/resource'
'/VirtualHostRoot/' '/VirtualHostRoot/'
'test-path/deeper' 'test-path/deeper'
) )
...@@ -2793,7 +2793,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2793,7 +2793,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/https//typezope.example.com:443/' '/VirtualHostBase/https/typezope.example.com:443'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
...@@ -2833,8 +2833,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2833,8 +2833,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/https//' '/VirtualHostBase/https/'
'typezopeprefergzipencodingtobackendhttpsonly.example.com:443/' 'typezopeprefergzipencodingtobackendhttpsonly.example.com:443'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
...@@ -2845,8 +2845,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2845,8 +2845,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/http//' '/VirtualHostBase/http/'
'typezopeprefergzipencodingtobackendhttpsonly.example.com:80/' 'typezopeprefergzipencodingtobackendhttpsonly.example.com:80'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
...@@ -2868,8 +2868,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2868,8 +2868,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/https//' '/VirtualHostBase/https/'
'typezopeprefergzipencodingtobackendhttpsonly.example.com:443/' 'typezopeprefergzipencodingtobackendhttpsonly.example.com:443'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
self.assertEqual( self.assertEqual(
...@@ -2883,8 +2883,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2883,8 +2883,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/http//' '/VirtualHostBase/http/'
'typezopeprefergzipencodingtobackendhttpsonly.example.com:80/' 'typezopeprefergzipencodingtobackendhttpsonly.example.com:80'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
self.assertEqual( self.assertEqual(
...@@ -2911,8 +2911,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2911,8 +2911,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/https//' '/VirtualHostBase/https/'
'typezopeprefergzipencodingtobackend.example.com:443/' 'typezopeprefergzipencodingtobackend.example.com:443'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
...@@ -2949,8 +2949,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2949,8 +2949,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/https//' '/VirtualHostBase/https/'
'typezopeprefergzipencodingtobackend.example.com:443/' 'typezopeprefergzipencodingtobackend.example.com:443'
'/VirtualHostRoot/test-path/deeper' '/VirtualHostRoot/test-path/deeper'
) )
self.assertEqual( self.assertEqual(
...@@ -2982,8 +2982,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2982,8 +2982,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/http//typezopevirtualhostroothttpport' '/VirtualHostBase/http/typezopevirtualhostroothttpport'
'.example.com:12345//VirtualHostRoot/test-path' '.example.com:12345/VirtualHostRoot/test-path'
) )
def test_type_zope_virtualhostroot_https_port(self): def test_type_zope_virtualhostroot_https_port(self):
...@@ -3000,8 +3000,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3000,8 +3000,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertEqualResultJson( self.assertEqualResultJson(
result, result,
'Path', 'Path',
'/VirtualHostBase/https//typezopevirtualhostroothttpsport' '/VirtualHostBase/https/typezopevirtualhostroothttpsport'
'.example.com:12345//VirtualHostRoot/test-path' '.example.com:12345/VirtualHostRoot/test-path'
) )
def test_type_notebook(self): def test_type_notebook(self):
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -24,6 +24,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -24,6 +24,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
...@@ -47,6 +48,7 @@ T-2/etc/plugin/trafficserver-port-listening.py ...@@ -47,6 +48,7 @@ T-2/etc/plugin/trafficserver-port-listening.py
T-3/etc/plugin/__init__.py T-3/etc/plugin/__init__.py
T-3/etc/plugin/backend-client-caucase-updater.py T-3/etc/plugin/backend-client-caucase-updater.py
T-3/etc/plugin/backend-haproxy-configuration.py T-3/etc/plugin/backend-haproxy-configuration.py
T-3/etc/plugin/backend-haproxy-statistic-frontend.py
T-3/etc/plugin/backend_haproxy_http.py T-3/etc/plugin/backend_haproxy_http.py
T-3/etc/plugin/backend_haproxy_https.py T-3/etc/plugin/backend_haproxy_https.py
T-3/etc/plugin/buildout-T-3-status.py T-3/etc/plugin/buildout-T-3-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py ...@@ -23,6 +23,7 @@ T-1/etc/plugin/promise-logrotate-setup.py
T-2/etc/plugin/__init__.py T-2/etc/plugin/__init__.py
T-2/etc/plugin/backend-client-caucase-updater.py T-2/etc/plugin/backend-client-caucase-updater.py
T-2/etc/plugin/backend-haproxy-configuration.py T-2/etc/plugin/backend-haproxy-configuration.py
T-2/etc/plugin/backend-haproxy-statistic-frontend.py
T-2/etc/plugin/backend_haproxy_http.py T-2/etc/plugin/backend_haproxy_http.py
T-2/etc/plugin/backend_haproxy_https.py T-2/etc/plugin/backend_haproxy_https.py
T-2/etc/plugin/buildout-T-2-status.py T-2/etc/plugin/buildout-T-2-status.py
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = d9c7c3acb975d44c6c66ca32c550ac58 md5sum = 6dcbe21f99aa6675e8e3b74bc9cbb0e6
[template-default] [template-default]
filename = instance-default.cfg.jinja.in filename = instance-default.cfg.jinja.in
......
...@@ -34,6 +34,6 @@ default-parameters = ...@@ -34,6 +34,6 @@ default-parameters =
"node-quantity": 1, "node-quantity": 1,
"test-suite-master-url": "", "test-suite-master-url": "",
"instance-dict": "", "instance-dict": "",
"software-path-list": ["https://lab.nexedi.com/nexedi/slapos/raw/1.0.181/software/seleniumrunner/software.cfg"], "software-path-list": ["https://lab.nexedi.com/nexedi/slapos/raw/1.0.210/software/seleniumrunner/software.cfg"],
"keep-log-days": 15 "keep-log-days": 15
} }
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
[template] [template]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 0d34ff81779115bf899f7bc752877b70 md5sum = b129c9b2a614563d3f7c3f9e906d59f2
[template-kvm] [template-kvm]
filename = instance-kvm.cfg.jinja2 filename = instance-kvm.cfg.jinja2
......
...@@ -82,7 +82,7 @@ extra-context = ...@@ -82,7 +82,7 @@ extra-context =
raw dash_executable_location ${dash:location}/bin/dash raw dash_executable_location ${dash:location}/bin/dash
raw dnsresolver_executable ${buildout:bin-directory}/dnsresolver raw dnsresolver_executable ${buildout:bin-directory}/dnsresolver
raw dcron_executable_location ${dcron:location}/sbin/crond raw dcron_executable_location ${dcron:location}/sbin/crond
raw debian_amd64_netinst_location ${debian-amd64-netinst.iso:location}/${debian-amd64-netinst.iso:filename} raw debian_amd64_netinst_location ${debian-amd64-buster-netinst.iso:target}
raw whitelist_domains_default ${whitelist-domains-default:location}/${whitelist-domains-default:filename} raw whitelist_domains_default ${whitelist-domains-default:location}/${whitelist-domains-default:filename}
raw whitelist_firewall_download_controller ${whitelist-firewall-download-controller:target} raw whitelist_firewall_download_controller ${whitelist-firewall-download-controller:target}
raw image_download_controller ${image-download-controller:target} raw image_download_controller ${image-download-controller:target}
......
...@@ -60,6 +60,7 @@ scripts = ...@@ -60,6 +60,7 @@ scripts =
[http-proxy] [http-proxy]
# https://github.com/nodejitsu/node-http-proxy # https://github.com/nodejitsu/node-http-proxy
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true
#XXX-Cedric : use upstream when merged #XXX-Cedric : use upstream when merged
url = https://nodeload.github.com/desaintmartin/node-http-proxy/zipball/20120621 url = https://nodeload.github.com/desaintmartin/node-http-proxy/zipball/20120621
md5sum = 20204d0b29c2cef26e1c91e99eedca6b md5sum = 20204d0b29c2cef26e1c91e99eedca6b
...@@ -67,6 +68,7 @@ md5sum = 20204d0b29c2cef26e1c91e99eedca6b ...@@ -67,6 +68,7 @@ md5sum = 20204d0b29c2cef26e1c91e99eedca6b
[proxy-by-url] [proxy-by-url]
# https://github.com/dominictarr/proxy-by-url # https://github.com/dominictarr/proxy-by-url
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true
#XXX-Cedric : use upstream when merged #XXX-Cedric : use upstream when merged
url = https://nodeload.github.com/desaintmartin/proxy-by-url/zipball/20120621 url = https://nodeload.github.com/desaintmartin/proxy-by-url/zipball/20120621
md5sum = c2609948aa708581f93b981b23880314 md5sum = c2609948aa708581f93b981b23880314
......
...@@ -31,10 +31,12 @@ import os ...@@ -31,10 +31,12 @@ import os
import glob import glob
import hashlib import hashlib
import psutil import psutil
import re
import requests import requests
import six import six
import slapos.util import slapos.util
import sqlite3 import sqlite3
import stat
from six.moves.urllib.parse import parse_qs, urlparse from six.moves.urllib.parse import parse_qs, urlparse
import unittest import unittest
import subprocess import subprocess
...@@ -812,6 +814,29 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin): ...@@ -812,6 +814,29 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin):
self.stopImageHttpServer() self.stopImageHttpServer()
super(InstanceTestCase, self).tearDown() super(InstanceTestCase, self).tearDown()
def getRunningImageList(self, kvm_instance_partition,
_match_cdrom=re.compile('file=(.+),media=cdrom$').match,
_sub_iso=re.compile(r'(/debian)(-[^-/]+)(-[^/]+-netinst\.iso)$').sub,
):
with self.slap.instance_supervisor_rpc as instance_supervisor:
kvm_pid = next(q for q in instance_supervisor.getAllProcessInfo()
if 'kvm-' in q['name'])['pid']
sub_shared = re.compile(r'^%s/[^/]+/[0-9a-f]{32}/'
% re.escape(self.slap.shared_directory)).sub
image_list = []
for entry in psutil.Process(kvm_pid).cmdline():
m = _match_cdrom(entry)
if m:
path = m.group(1)
st = os.stat(path)
if stat.S_ISREG(st.st_mode) and st.st_size:
image_list.append(
_sub_iso(r'\1-${ver}\3',
sub_shared(r'${shared}/',
path.replace(kvm_instance_partition, '${inst}')
)))
return image_list
def test(self): def test(self):
partition_parameter_kw = { partition_parameter_kw = {
self.key: self.test_input % ( self.key: self.test_input % (
...@@ -843,23 +868,6 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin): ...@@ -843,23 +868,6 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin):
self.assertTrue(os.path.islink(image2_link)) self.assertTrue(os.path.islink(image2_link))
self.assertEqual(os.readlink(image2_link), image2) self.assertEqual(os.readlink(image2_link), image2)
def getRunningImageList():
running_image_list = []
with self.slap.instance_supervisor_rpc as instance_supervisor:
kvm_pid = [q for q in instance_supervisor.getAllProcessInfo()
if 'kvm-' in q['name']][0]['pid']
kvm_process = psutil.Process(kvm_pid)
software_root = '/'.join([
self.slap.software_directory,
hashlib.md5(self.getSoftwareURL().encode('utf-8')).hexdigest()])
for entry in kvm_process.cmdline():
if entry.startswith('file') and 'media=cdrom' in entry:
# do cleanups
entry = entry.replace(software_root, '')
entry = entry.replace(kvm_instance_partition, '')
running_image_list.append(entry)
return running_image_list
# mimic the requirement: restart the instance by requesting it stopped and # mimic the requirement: restart the instance by requesting it stopped and
# then started started, like user have to do it # then started started, like user have to do it
self.rerequestInstance(partition_parameter_kw, state='stopped') self.rerequestInstance(partition_parameter_kw, state='stopped')
...@@ -869,12 +877,11 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin): ...@@ -869,12 +877,11 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin):
self.assertEqual( self.assertEqual(
[ [
'file=/srv/%s/image_001,media=cdrom' % (self.image_directory,), '${inst}/srv/%s/image_001' % self.image_directory,
'file=/srv/%s/image_002,media=cdrom' % (self.image_directory,), '${inst}/srv/%s/image_002' % self.image_directory,
'file=/parts/debian-amd64-netinst.iso/debian-amd64-netinst.iso,' '${shared}/debian-${ver}-amd64-netinst.iso',
'media=cdrom'
], ],
getRunningImageList() self.getRunningImageList(kvm_instance_partition)
) )
# cleanup of images works, also asserts that configuration changes are # cleanup of images works, also asserts that configuration changes are
...@@ -896,9 +903,8 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin): ...@@ -896,9 +903,8 @@ class TestBootImageUrlList(InstanceTestCase, FakeImageServerMixin):
# again only default image is available in the running process # again only default image is available in the running process
self.assertEqual( self.assertEqual(
['file=/parts/debian-amd64-netinst.iso/debian-amd64-netinst.iso,' ['${shared}/debian-${ver}-amd64-netinst.iso'],
'media=cdrom'], self.getRunningImageList(kvm_instance_partition)
getRunningImageList()
) )
def assertPromiseFails(self, promise): def assertPromiseFails(self, promise):
...@@ -1032,23 +1038,6 @@ class TestBootImageUrlSelect(TestBootImageUrlList): ...@@ -1032,23 +1038,6 @@ class TestBootImageUrlSelect(TestBootImageUrlList):
kvm_instance_partition = os.path.join( kvm_instance_partition = os.path.join(
self.slap.instance_directory, self.kvm_instance_partition_reference) self.slap.instance_directory, self.kvm_instance_partition_reference)
def getRunningImageList():
running_image_list = []
with self.slap.instance_supervisor_rpc as instance_supervisor:
kvm_pid = [q for q in instance_supervisor.getAllProcessInfo()
if 'kvm-' in q['name']][0]['pid']
kvm_process = psutil.Process(kvm_pid)
software_root = '/'.join([
self.slap.software_directory,
hashlib.md5(self.getSoftwareURL().encode('utf-8')).hexdigest()])
for entry in kvm_process.cmdline():
if entry.startswith('file') and 'media=cdrom' in entry:
# do cleanups
entry = entry.replace(software_root, '')
entry = entry.replace(kvm_instance_partition, '')
running_image_list.append(entry)
return running_image_list
# mimic the requirement: restart the instance by requesting it stopped and # mimic the requirement: restart the instance by requesting it stopped and
# then started started, like user have to do it # then started started, like user have to do it
self.rerequestInstance(partition_parameter_kw, state='stopped') self.rerequestInstance(partition_parameter_kw, state='stopped')
...@@ -1058,12 +1047,11 @@ class TestBootImageUrlSelect(TestBootImageUrlList): ...@@ -1058,12 +1047,11 @@ class TestBootImageUrlSelect(TestBootImageUrlList):
self.assertEqual( self.assertEqual(
[ [
'file=/srv/boot-image-url-select-repository/image_001,media=cdrom', '${inst}/srv/boot-image-url-select-repository/image_001',
'file=/srv/boot-image-url-list-repository/image_001,media=cdrom', '${inst}/srv/boot-image-url-list-repository/image_001',
'file=/parts/debian-amd64-netinst.iso/debian-amd64-netinst.iso,' '${shared}/debian-${ver}-amd64-netinst.iso',
'media=cdrom'
], ],
getRunningImageList() self.getRunningImageList(kvm_instance_partition)
) )
# cleanup of images works, also asserts that configuration changes are # cleanup of images works, also asserts that configuration changes are
...@@ -1100,9 +1088,8 @@ class TestBootImageUrlSelect(TestBootImageUrlList): ...@@ -1100,9 +1088,8 @@ class TestBootImageUrlSelect(TestBootImageUrlList):
# again only default image is available in the running process # again only default image is available in the running process
self.assertEqual( self.assertEqual(
['file=/parts/debian-amd64-netinst.iso/debian-amd64-netinst.iso,' ['${shared}/debian-${ver}-amd64-netinst.iso'],
'media=cdrom'], self.getRunningImageList(kvm_instance_partition)
getRunningImageList()
) )
......
...@@ -135,8 +135,9 @@ mount.neoppod = {{parameter_dict['neoppod']}} ...@@ -135,8 +135,9 @@ mount.neoppod = {{parameter_dict['neoppod']}}
status_dict['stderr'] = ''.join(stderr) status_dict['stderr'] = ''.join(stderr)
if not returncode: if not returncode:
os.rename(partdir, dist)
try: try:
with open(os.path.join(partdir, 'status')) as f: with open(os.path.join(dist, 'status')) as f:
status = int(f.read()) status = int(f.read())
except Exception: except Exception:
pass pass
...@@ -145,7 +146,7 @@ mount.neoppod = {{parameter_dict['neoppod']}} ...@@ -145,7 +146,7 @@ mount.neoppod = {{parameter_dict['neoppod']}}
try: try:
curses.setupterm('screen') curses.setupterm('screen')
rmkx = curses.tigetstr('rmkx') rmkx = curses.tigetstr('rmkx')
with open(os.path.join(partdir, 'stdout')) as f: with open(os.path.join(dist, 'stdout')) as f:
stdout = f.read() stdout = f.read()
status_dict['stdout'] = stdout[stdout.rindex(rmkx)+len(rmkx):] status_dict['stdout'] = stdout[stdout.rindex(rmkx)+len(rmkx):]
except Exception: except Exception:
......
...@@ -71,6 +71,7 @@ location = ${:repository} ...@@ -71,6 +71,7 @@ location = ${:repository}
[vm-debian] [vm-debian]
# Mainly for logs, otherwise 2G would enough (<100M for the SR). # Mainly for logs, otherwise 2G would enough (<100M for the SR).
size = 8Gi size = 8Gi
dists += debian-bullseye
late-command += late-command +=
echo tmpfs /tmp tmpfs mode=1777,size=90% 0 0 >>/etc/fstab echo tmpfs /tmp tmpfs mode=1777,size=90% 0 0 >>/etc/fstab
packages += packages +=
...@@ -78,8 +79,6 @@ packages += ...@@ -78,8 +79,6 @@ packages +=
ca-certificates file g++ libc6-dev make patch python ca-certificates file g++ libc6-dev make patch python
# speed up build by using the following components from the OS # speed up build by using the following components from the OS
git liblzma-dev libssl-dev pkg-config python-dev git liblzma-dev libssl-dev pkg-config python-dev
# for pygolang
python-greenlet-dev
# extra requirements for NEO # extra requirements for NEO
libnetfilter-queue-dev nftables libnetfilter-queue-dev nftables
# extra requirements for this SR # extra requirements for this SR
......
...@@ -41,9 +41,6 @@ command = ...@@ -41,9 +41,6 @@ command =
[versions] [versions]
slapos.cookbook = slapos.cookbook =
NetfilterQueue = 0.8.1 NetfilterQueue = 0.8.1
greenlet = 0.4.15
gevent = 1.3.7
cffi = 1.11.5
# use the following components from the OS # use the following components from the OS
# and don't build dependencies for nothing # and don't build dependencies for nothing
[git] [git]
......
...@@ -9,11 +9,12 @@ parts = ...@@ -9,11 +9,12 @@ parts =
[log-env] [log-env]
recipe = slapos.recipe.build recipe = slapos.recipe.build
init = path = ${buildout:directory}/../env.json
update =
import json import json
import os import os
with open("${buildout:directory}/../env.json", 'w') as f: with open(options['path'], 'w') as f:
json.dump(dict(os.environ), f) json.dump(dict(os.environ), f)
[versions] [versions]
slapos.recipe.build = 0.47 slapos.recipe.build = 0.48
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
[caucase-jinja2-library] [caucase-jinja2-library]
filename = caucase.jinja2.library filename = caucase.jinja2.library
md5sum = b3ee1414719f8a24790ae324ca023066 md5sum = a5c7a46c6fb85aa22a371d9d2cd9e57e
...@@ -133,7 +133,7 @@ recipe = plone.recipe.command ...@@ -133,7 +133,7 @@ recipe = plone.recipe.command
checksum-file = '{{ template }}.md5' checksum-file = '{{ template }}.md5'
command = command =
set -e set -e
md5_current=$(${buildout:executable} -c "import hashlib ; print hashlib.md5(open('{{ template }}', 'rb').read()).hexdigest()") md5_current=$(${buildout:executable} -c "from __future__ import print_function ; import hashlib ; print(hashlib.md5(open('{{ template }}', 'rb').read()).hexdigest())")
md5_old=$([ -f ${:checksum-file} ] && cat ${:checksum-file} || echo none) md5_old=$([ -f ${:checksum-file} ] && cat ${:checksum-file} || echo none)
if [ "$md5_current" != "$md5_old" ] || [ ! -f '{{ csr }}' ] || [ ! -f '{{ key }}' ] ; then if [ "$md5_current" != "$md5_old" ] || [ ! -f '{{ csr }}' ] || [ ! -f '{{ key }}' ] ; then
'{{ buildout_bin_directory }}/caucase-rerequest' --template '{{ template }}' --csr '{{ csr }}' --key '{{ key }}' '{{ buildout_bin_directory }}/caucase-rerequest' --template '{{ template }}' --csr '{{ csr }}' --key '{{ key }}'
......
...@@ -30,7 +30,7 @@ md5sum = b240dc76a663190304d8bcb9cabcda8f ...@@ -30,7 +30,7 @@ md5sum = b240dc76a663190304d8bcb9cabcda8f
[template-replicated] [template-replicated]
filename = template-replicated.cfg.in filename = template-replicated.cfg.in
md5sum = 0917aaacb752526e6f114839a3e6e1de md5sum = 41aee09e9f9abbae59b0442e1e76387f
[template-parts] [template-parts]
filename = template-parts.cfg.in filename = template-parts.cfg.in
......
...@@ -42,11 +42,7 @@ config-name = {{namebase}}0 ...@@ -42,11 +42,7 @@ config-name = {{namebase}}0
# Bubble up all the instance parameters to the requested export instance. # Bubble up all the instance parameters to the requested export instance.
{% if slapparameter_dict is defined %} {% if slapparameter_dict is defined %}
{% for parameter_name, parameter_value in six.iteritems(slapparameter_dict) %} {% for parameter_name, parameter_value in six.iteritems(slapparameter_dict) %}
{% if parameter_value is string %} config-{{ parameter_name }} = {{ dumps(parameter_value) }}
config-{{parameter_name}} = {{ parameter_value.split('\n') | join('\n ') }}
{% else %}
config-{{parameter_name}} = {{ parameter_value }}
{% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% for key, value in six.iteritems(monitor_dict) -%} {% for key, value in six.iteritems(monitor_dict) -%}
......
...@@ -132,7 +132,7 @@ eggs = ...@@ -132,7 +132,7 @@ eggs =
[versions] [versions]
setuptools = 44.1.1 setuptools = 44.1.1
# Use SlapOS patched zc.buildout # Use SlapOS patched zc.buildout
zc.buildout = 2.7.1+slapos013 zc.buildout = 2.7.1+slapos014
# 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
# Use own version of h.r.download to be able to open .xz and .lz archives # Use own version of h.r.download to be able to open .xz and .lz archives
...@@ -196,7 +196,7 @@ slapos.extension.strip = 0.4 ...@@ -196,7 +196,7 @@ slapos.extension.strip = 0.4
slapos.extension.shared = 1.0 slapos.extension.shared = 1.0
slapos.libnetworkcache = 0.20 slapos.libnetworkcache = 0.20
slapos.rebootstrap = 4.5 slapos.rebootstrap = 4.5
slapos.recipe.build = 0.47 slapos.recipe.build = 0.48
slapos.recipe.cmmi = 0.17 slapos.recipe.cmmi = 0.17
slapos.recipe.template = 4.6 slapos.recipe.template = 4.6
slapos.toolbox = 0.124 slapos.toolbox = 0.124
......
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