Commit 7819f1e7 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 77cc1483
...@@ -33,6 +33,8 @@ recipe = slapos.recipe.cmmi ...@@ -33,6 +33,8 @@ recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://ftp.gnu.org/gnu/aspell/aspell-0.60.7.tar.gz url = https://ftp.gnu.org/gnu/aspell/aspell-0.60.7.tar.gz
md5sum = 8ef2252609c511cd2bb26f3a3932ef28 md5sum = 8ef2252609c511cd2bb26f3a3932ef28
configure-options =
--enable-curses="-lncursesw -ltinfow"
environment = environment =
PATH=${patch:location}/bin:${perl:location}/bin:%(PATH)s PATH=${patch:location}/bin:${perl:location}/bin:%(PATH)s
CPPFLAGS=-I${ncurses:location}/include CPPFLAGS=-I${ncurses:location}/include
......
...@@ -27,8 +27,6 @@ patches = ...@@ -27,8 +27,6 @@ patches =
${:patch-prefix}-010#d78ad19986c0355a8d67c9a0e82ad4aa ${:patch-prefix}-010#d78ad19986c0355a8d67c9a0e82ad4aa
${:patch-prefix}-011#2416386b5ee94e499ccbf71f6fd4aebd ${:patch-prefix}-011#2416386b5ee94e499ccbf71f6fd4aebd
${:patch-prefix}-012#879b2d8a03162faebb7234c4cd57c5cd ${:patch-prefix}-012#879b2d8a03162faebb7234c4cd57c5cd
configure-options =
--with-curses
environment = environment =
CPPFLAGS=-I${ncurses:location}/include CPPFLAGS=-I${ncurses:location}/include
LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib
......
...@@ -9,8 +9,8 @@ parts = ...@@ -9,8 +9,8 @@ parts =
[coreutils] [coreutils]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz url = https://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz
md5sum = 0d79ae8a6124546e3b94171375e5e5d0 md5sum = 459e9546074db2834eefe5421f250025
configure-options = configure-options =
--disable-libcap --disable-libcap
--without-selinux --without-selinux
......
...@@ -9,6 +9,7 @@ extends = ...@@ -9,6 +9,7 @@ extends =
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
../zstd/buildout.cfg ../zstd/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../libidn/buildout.cfg
../nghttp2/buildout.cfg ../nghttp2/buildout.cfg
../ngtcp2/buildout.cfg ../ngtcp2/buildout.cfg
../nghttp3/buildout.cfg ../nghttp3/buildout.cfg
...@@ -52,7 +53,7 @@ configure-options = ...@@ -52,7 +53,7 @@ configure-options =
--without-libssh2 --without-libssh2
--without-libssh --without-libssh
--without-librtmp --without-librtmp
--without-libidn2 --with-libidn2=${libidn2:location}
--with-nghttp2=${nghttp2:location} --with-nghttp2=${nghttp2:location}
--without-ngtcp2 --without-ngtcp2
--without-nghttp3 --without-nghttp3
...@@ -72,8 +73,8 @@ WITH = ...@@ -72,8 +73,8 @@ WITH =
environment = environment =
PATH=${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:OPENSSL}/lib/pkgconfig:${nghttp2:location}/lib/pkgconfig${:PKG_CONFIG_PATH} PKG_CONFIG_PATH=${:OPENSSL}/lib/pkgconfig:${nghttp2:location}/lib/pkgconfig:${libidn2:location}/lib/pkgconfig${:PKG_CONFIG_PATH}
LDFLAGS=-Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${:OPENSSL}/lib -Wl,-rpath=${nghttp2:location}/lib -Wl,-rpath=${zstd:location}/lib ${:LDFLAGS} LDFLAGS=-Wl,-rpath=${libidn2:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${:OPENSSL}/lib -Wl,-rpath=${nghttp2:location}/lib -Wl,-rpath=${zstd:location}/lib ${:LDFLAGS}
[curl-http3] [curl-http3]
<= curl <= curl
......
...@@ -7,8 +7,8 @@ parts = dash-output ...@@ -7,8 +7,8 @@ parts = dash-output
[dash] [dash]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.11.tar.gz url = http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.12.tar.gz
md5sum = 027236e48b9202607b1418fee42c473e md5sum = 57222b768b84003ea4b801e5d5e0e52b
configure-options = configure-options =
--disable-static --disable-static
--disable-fnmatch --disable-fnmatch
......
...@@ -17,6 +17,7 @@ init = ...@@ -17,6 +17,7 @@ init =
python = self.buildout[options['part']] python = self.buildout[options['part']]
for x in 'location', 'executable', 'version': for x in 'location', 'executable', 'version':
options[x] = python[x] options[x] = python[x]
options.barrier()
update = update =
import os import os
path, os.environ['PYTHON'] = os.path.split(options['executable']) path, os.environ['PYTHON'] = os.path.split(options['executable'])
...@@ -65,7 +66,6 @@ init = ...@@ -65,7 +66,6 @@ init =
break break
else: else:
options['prefix'] = self.buildout[options['part']]['location'] options['prefix'] = self.buildout[options['part']]['location']
options.barrier()
update = update =
if 'part' in options: if 'part' in options:
import os import os
......
[buildout] [buildout]
extends = extends =
../coreutils/buildout.cfg ../coreutils/buildout.cfg
../xz-utils/buildout.cfg
parts = parts =
findutils-output findutils-output
[findutils] [findutils]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://ftp.debian.org/debian/pool/main/f/findutils/findutils_4.8.0.orig.tar.xz url = http://ftp.debian.org/debian/pool/main/f/findutils/findutils_4.9.0.orig.tar.xz
md5sum = eeefe2e6380931a77dfa6d9350b43186 md5sum = 4a4a547e888a944b2f3af31d789a1137
environment =
PATH=${xz-utils:location}/bin:%(PATH)s
[findutils-output] [findutils-output]
# Shared binary location to ease migration # Shared binary location to ease migration
......
...@@ -6,6 +6,7 @@ extends = ...@@ -6,6 +6,7 @@ extends =
../libyaml/buildout.cfg ../libyaml/buildout.cfg
../openssl/buildout.cfg ../openssl/buildout.cfg
../patch/buildout.cfg ../patch/buildout.cfg
../zlib/buildout.cfg
[fluent-bit] [fluent-bit]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -18,9 +19,10 @@ configure-options = ...@@ -18,9 +19,10 @@ configure-options =
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@ -DCMAKE_INSTALL_PREFIX=@@LOCATION@@
-DFLB_LIBYAML_DIR=${libyaml:location} -DFLB_LIBYAML_DIR=${libyaml:location}
-DOPENSSL_ROOT_DIR=${openssl:location} -DOPENSSL_ROOT_DIR=${openssl:location}
-DZLIB_LIBRARY=${zlib:location}/lib/libz.so
environment = environment =
PATH=${bison:location}/bin:${flex:location}/bin:%(PATH)s PATH=${bison:location}/bin:${flex:location}/bin:%(PATH)s
LDFLAGS=-Wl,-rpath=${libyaml:location}/lib -Wl,-rpath=${openssl:location}/lib LDFLAGS=-Wl,-rpath=${libyaml:location}/lib -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${zlib:location}/lib
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/0001-slapos-don-t-try-to-install-system-startup-script.patch#7bf6e1b53c371db918dcc3778c6b28ed ${:_profile_base_location_}/0001-slapos-don-t-try-to-install-system-startup-script.patch#7bf6e1b53c371db918dcc3778c6b28ed
......
...@@ -7,6 +7,7 @@ extends = ...@@ -7,6 +7,7 @@ extends =
../libpng/buildout.cfg ../libpng/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../xz-utils/buildout.cfg
parts = parts =
freetype freetype
...@@ -24,7 +25,7 @@ configure-options = ...@@ -24,7 +25,7 @@ configure-options =
--without-brotli --without-brotli
--without-librsvg --without-librsvg
environment = environment =
PATH=${pkgconfig:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:${pkgconfig: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 CPPFLAGS=-I${bzip2:location}/include -I${zlib:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
...@@ -5,9 +5,9 @@ parts = ...@@ -5,9 +5,9 @@ parts =
[gdbm] [gdbm]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
version = 1.22 version = 1.23
url = http://ftp.gnu.org/gnu/gdbm/gdbm-${:version}.tar.gz url = http://ftp.gnu.org/gnu/gdbm/gdbm-${:version}.tar.gz
md5sum = 0bbd38f12656e4728e2f7c4708aec014 md5sum = 8551961e36bf8c70b7500d255d3658ec
configure-options = configure-options =
--disable-static --disable-static
--enable-libgdbm-compat --enable-libgdbm-compat
......
...@@ -11,8 +11,8 @@ extends = ...@@ -11,8 +11,8 @@ extends =
[gettext] [gettext]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://ftp.gnu.org/pub/gnu/gettext/gettext-0.21.tar.lz url = https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.3.tar.lz
md5sum = 65c9a4d0a2d180e3c2afc2b3440382ef md5sum = 9f4f1b1432fec4aab29fea004347c9b4
configure-options = configure-options =
--disable-static --disable-static
......
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
extends = extends =
../fontconfig/buildout.cfg ../fontconfig/buildout.cfg
../freetype/buildout.cfg ../freetype/buildout.cfg
../libidn/buildout.cfg
../libjpeg/buildout.cfg ../libjpeg/buildout.cfg
../libtiff/buildout.cfg ../libtiff/buildout.cfg
../libxml2/buildout.cfg ../libxml2/buildout.cfg
../patch/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../tesseract/buildout.cfg ../tesseract/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
...@@ -16,24 +18,24 @@ recipe = slapos.recipe.cmmi ...@@ -16,24 +18,24 @@ recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10020/ghostscript-10.02.0.tar.xz url = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10020/ghostscript-10.02.0.tar.xz
md5sum = 80c1cdfada72f2eb5987dc0d590ea5b2 md5sum = 80c1cdfada72f2eb5987dc0d590ea5b2
pkg_config_depends = ${libtiff:location}/lib/pkgconfig:${libjpeg:location}/lib/pkgconfig:${fontconfig:location}/lib/pkgconfig:${fontconfig:pkg_config_depends} pkg_config_depends = ${libidn:location}/lib/pkgconfig:${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 =
--disable-cups --disable-cups
--disable-threadsafe
--with-system-libtiff --with-system-libtiff
--without-libidn
--without-so --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("//", "/"))')
environment = environment =
PATH=${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${patch:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CFLAGS=-I${libjpeg:location}/include CFLAGS=-I${libjpeg:location}/include
LDFLAGS=-Wl,-rpath=${fontconfig:location}/lib -Wl,-rpath=${freetype:location}/lib -Wl,-rpath=${libtiff:location}/lib -L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib LDFLAGS=-Wl,-rpath=${libidn:location}/lib -Wl,-rpath=${fontconfig:location}/lib -Wl,-rpath=${freetype:location}/lib -Wl,-rpath=${libtiff:location}/lib -L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib
LD_LIBRARY_PATH=${fontconfig:location}/lib:${freetype:location}/lib:${libtiff:location}/lib:${libxml2:location}/lib LD_LIBRARY_PATH=${libidn:location}/lib:${fontconfig:location}/lib:${freetype:location}/lib:${libtiff:location}/lib:${libxml2:location}/lib
patches =
https://github.com/ArtifexSoftware/ghostpdl/commit/f8a4030a319705b9402b386a0ada8dd00b8181d3.patch#7b6dcda1cf19e639994921713fb41277
patch-options = -p1
# configure gives priority to local jpeg library and refuse mixing local libjpeg with "system" libtiff. # configure gives priority to local jpeg library and refuse mixing local libjpeg with "system" libtiff.
# We remove this local jpeg library source folder so that configure picks up the slapos versions of these libraries. # We remove this local jpeg library source folder so that configure picks up the slapos versions of these libraries.
pre-configure = rm -r jpeg pre-configure = rm -r jpeg
......
...@@ -9,9 +9,9 @@ parts = ...@@ -9,9 +9,9 @@ parts =
[gmp] [gmp]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
version = 6.2.1 version = 6.3.0
url = https://gmplib.org/download/gmp/gmp-${:version}.tar.xz url = https://gmplib.org/download/gmp/gmp-${:version}.tar.xz
md5sum = 0b82665c4a92fd2ade7440c13fcaa42b md5sum = 956dc04e864001a9c22429f761f2c283
configure-options = configure-options =
--disable-assembly --disable-assembly
--host=none-pc-linux-gnu --host=none-pc-linux-gnu
......
...@@ -59,7 +59,7 @@ configure-options = ...@@ -59,7 +59,7 @@ configure-options =
--with-freetype --with-freetype
--with-icu --with-icu
environment = environment =
PATH=${glib:location}/bin:${freetype:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:${glib:location}/bin:${freetype:location}/bin:${pkgconfig: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=${icu4c: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=${icu4c:location}/lib -Wl,-rpath=${glib:location}/lib
...@@ -71,6 +71,8 @@ md5sum = 1b767c259c3cd8e0c8496970f63c22dc ...@@ -71,6 +71,8 @@ md5sum = 1b767c259c3cd8e0c8496970f63c22dc
configure-options = configure-options =
--enable-shared --enable-shared
--disable-static --disable-static
environment =
PATH=${xz-utils:location}/bin:%(PATH)s
[pango] [pango]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
......
...@@ -7,7 +7,7 @@ parts = ...@@ -7,7 +7,7 @@ parts =
[gzip] [gzip]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://ftp.gnu.org/pub/gnu/gzip/gzip-1.12.tar.xz url = https://ftp.gnu.org/pub/gnu/gzip/gzip-1.13.tar.xz
md5sum = 9608e4ac5f061b2a6479dc44e917a5db md5sum = d5c9fc9441288817a4a0be2da0249e29
environment = environment =
PATH=${xz-utils:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:%(PATH)s
[buildout] [buildout]
extends = extends =
../bison/buildout.cfg ../bison/buildout.cfg
../m4/buildout.cfg
../openssl/buildout.cfg
parts = parts =
kerberos kerberos
...@@ -18,4 +20,6 @@ configure-options = ...@@ -18,4 +20,6 @@ configure-options =
--without-tcl --without-tcl
--without-keyutils --without-keyutils
environment = environment =
PATH=${bison:location}/bin:%(PATH)s PATH=${m4:location}/bin:${bison:location}/bin:%(PATH)s
CPPFLAGS=-I${openssl:location}/include
LDFLAGS=-Wl,-rpath=${openssl:location}/lib -L${openssl:location}/lib
...@@ -7,8 +7,8 @@ parts = ...@@ -7,8 +7,8 @@ parts =
[libexpat] [libexpat]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.lz url = https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.lz
md5sum = 074cab91a2f27dc8cd6c282effaa8ffd md5sum = 4add8675872d4b923d9b7871dc0f24d3
configure-options = configure-options =
--disable-static --disable-static
--without-xmlwf --without-xmlwf
......
...@@ -10,8 +10,8 @@ parts = ...@@ -10,8 +10,8 @@ parts =
[libfastjson] [libfastjson]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/rsyslog/libfastjson/archive/v0.99.9.tar.gz url = https://github.com/rsyslog/libfastjson/archive/refs/tags/v1.2304.0.tar.gz
md5sum = 3c45e6efc838cd364588d6d1822c4ea8 md5sum = 87f7752570bb8f878faafa5367df9b15
shared = true shared = true
pre-configure = pre-configure =
autoreconf -fvi -I ${libtool:location}/share/aclocal -I ${pkgconfig:location}/share/aclocal -I ${automake:location}/share/aclocal autoreconf -fvi -I ${libtool:location}/share/aclocal -I ${pkgconfig:location}/share/aclocal -I ${automake:location}/share/aclocal
......
# GNU Libidn is a fully documented implementation of the Stringprep,
# Punycode and IDNA 2003 specifications
[libidn]
recipe = slapos.recipe.cmmi
shared = true
url = https://ftp.gnu.org/gnu/libidn/libidn-1.41.tar.gz
md5sum = 2cbff2f75f904328ac507af576b07197
[libidn2]
recipe = slapos.recipe.cmmi
shared = true
url = https://ftp.gnu.org/gnu/libidn/libidn2-2.3.4.tar.gz
md5sum = a12109804fc9c5d7fb31f068c66655b8
...@@ -7,8 +7,8 @@ parts = libtool ...@@ -7,8 +7,8 @@ parts = libtool
[libtool] [libtool]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
md5sum = 1bfb9b923f2c1339b4d2ce1807064aa5 md5sum = 2fc0b6ddcd66a89ed6e45db28fa44232
url = http://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz url = https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.xz
configure-options = configure-options =
--disable-static --disable-static
environment = environment =
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
extends = extends =
../perl/buildout.cfg ../perl/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../xz-utils/buildout.cfg
parts = parts =
libxml2 libxml2
...@@ -20,5 +21,5 @@ configure-options = ...@@ -20,5 +21,5 @@ configure-options =
--without-lzma --without-lzma
--with-zlib=${zlib:location} --with-zlib=${zlib:location}
environment = environment =
PATH=${perl:location}/bin:%(PATH)s PATH=${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
LDFLAGS=-Wl,-rpath=${zlib:location}/lib LDFLAGS=-Wl,-rpath=${zlib:location}/lib
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
extends = extends =
../libxml2/buildout.cfg ../libxml2/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../xz-utils/buildout.cfg
parts = parts =
libxslt libxslt
...@@ -22,3 +23,4 @@ configure-options = ...@@ -22,3 +23,4 @@ configure-options =
environment = environment =
CPPFLAGS=-I${zlib:location}/include CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
PATH=${xz-utils:location}/bin:%(PATH)s
...@@ -8,8 +8,8 @@ parts = logrotate ...@@ -8,8 +8,8 @@ parts = logrotate
[logrotate] [logrotate]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/logrotate/logrotate/releases/download/3.18.1/logrotate-3.18.1.tar.xz url = https://github.com/logrotate/logrotate/releases/download/3.21.0/logrotate-3.21.0.tar.xz
md5sum = 07d5aba26c350f9ab5730c25a7277751 md5sum = 6c15f45efc3475a576c4f7e6cc481b2c
# BBB this is only for backward-compatibility. # BBB this is only for backward-compatibility.
configure-options = configure-options =
--with-selinux=no --with-selinux=no
......
...@@ -8,8 +8,8 @@ parts = ...@@ -8,8 +8,8 @@ parts =
[lua] [lua]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://www.lua.org/ftp/lua-5.4.3.tar.gz url = http://www.lua.org/ftp/lua-5.4.6.tar.gz
md5sum = ef63ed2ecfb713646a7fcc583cf5f352 md5sum = 25a429319dff20dfbfb9956c2b5be911
configure-command = true configure-command = true
make-options = make-options =
"$(uname -sr 2>/dev/null|grep -Eq '^Linux' && echo linux || echo posix)" "$(uname -sr 2>/dev/null|grep -Eq '^Linux' && echo linux || echo posix)"
......
...@@ -6,6 +6,6 @@ parts = ...@@ -6,6 +6,6 @@ parts =
[lz4] [lz4]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/lz4/lz4/archive/v1.9.3.tar.gz url = https://github.com/lz4/lz4/releases/download/v1.9.4/lz4-1.9.4.tar.gz
md5sum = 3a1ab1684e14fc1afc66228ce61b2db3 md5sum = e9286adb64040071c5e23498bf753261
configure-command = true configure-command = true
...@@ -5,13 +5,16 @@ parts = ...@@ -5,13 +5,16 @@ parts =
[ncurses] [ncurses]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://ftp.gnu.org/gnu/ncurses/ncurses-6.2.tar.gz url = http://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz
md5sum = e812da327b1c2214ac1aed440ea3ae8d md5sum = 5a62487b5d4ac6b132fe2bf9f8fad29b
configure-options = configure-options =
--prefix=%(location)s --prefix=%(location)s
--enable-pc-files --enable-pc-files
--disable-termcap
--with-pkg-config-libdir=%(location)s/lib/pkgconfig --with-pkg-config-libdir=%(location)s/lib/pkgconfig
--with-shared --with-shared
--with-termlib
--with-versioned-syms
--without-ada --without-ada
--without-manpages --without-manpages
--without-tests --without-tests
...@@ -28,6 +31,7 @@ post-install = ...@@ -28,6 +31,7 @@ post-install =
mv ncursesw/* . mv ncursesw/* .
rm -r ncurses ncursesw rm -r ncurses ncursesw
ln -s . ncursesw ln -s . ncursesw
echo 'GROUP( libtinfo.so )' > %(location)s/lib/libtermcap.so
# pass dummy LDCONFIG to skip needless calling of ldconfig by non-root user # pass dummy LDCONFIG to skip needless calling of ldconfig by non-root user
environment = environment =
LDCONFIG=/bin/echo LDCONFIG=/bin/echo
......
[buildout] [buildout]
extends = extends =
../defaults.cfg
../automake/buildout.cfg ../automake/buildout.cfg
../libtool/buildout.cfg ../libtool/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
...@@ -10,11 +11,12 @@ parts = ...@@ -10,11 +11,12 @@ parts =
[nghttp2] [nghttp2]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/nghttp2/nghttp2/archive/v1.40.0.tar.gz url = https://github.com/nghttp2/nghttp2/releases/download/v1.57.0/nghttp2-1.57.0.tar.xz
md5sum = ef3c6983e0de2f16b523460c812fe598 md5sum = 1525d4966622500f119017dc057c76c8
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
autoconf autoconf
environment = environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:%(PATH)s PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:${xz-utils:location}/bin:%(PATH)s
PYTHON=${python3:executable}
...@@ -7,8 +7,8 @@ extends = ...@@ -7,8 +7,8 @@ extends =
[nghttp3] [nghttp3]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/ngtcp2/nghttp3/archive/refs/tags/v0.9.0.tar.gz url = https://github.com/ngtcp2/nghttp3/archive/refs/tags/v0.15.0.tar.gz
md5sum = e0eb54109d0d511268b9e2cf6aec4044 md5sum = b9af99d8db0d48f91fc075dcbd837019
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
......
...@@ -11,8 +11,8 @@ parts = nginx-output ...@@ -11,8 +11,8 @@ parts = nginx-output
[nginx-common] [nginx-common]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://nginx.org/download/nginx-1.22.1.tar.gz url = https://nginx.org/download/nginx-1.25.2.tar.gz
md5sum = 8296d957561aeed0261d9be4d3decaec md5sum = e0fc592d9721b7fccc2c959b45008ade
[nginx] [nginx]
<= nginx-common <= nginx-common
...@@ -61,8 +61,8 @@ mime = ${nginx:location}/conf/mime.types ...@@ -61,8 +61,8 @@ mime = ${nginx:location}/conf/mime.types
[nginx-push-stream-module] [nginx-push-stream-module]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
shared = true shared = true
url = https://github.com/wandenberg/nginx-push-stream-module/archive/0.5.5.tar.gz url = https://github.com/wandenberg/nginx-push-stream-module/archive/8c02220d484d7848bc8e3a6d9b1c616987e86f66.tar.gz
md5sum = 9bb5237a93c957130aaf7033ed3c0989 md5sum = c8f18a4a7f7c871291c823aace50e1f9
[nginx-push-stream] [nginx-push-stream]
<= nginx-common <= nginx-common
......
...@@ -33,7 +33,6 @@ npm_config_tarball = ${nodejs-headers:target} ...@@ -33,7 +33,6 @@ npm_config_tarball = ${nodejs-headers:target}
[nodejs-16.19.0] [nodejs-16.19.0]
<= nodejs-base <= nodejs-base
openssl_location = ${openssl:location}
version = v16.19.0 version = v16.19.0
md5sum = e72b698681aff62bf17146ad70dc9425 md5sum = e72b698681aff62bf17146ad70dc9425
patches = patches =
...@@ -52,7 +51,6 @@ md5sum = e7bfbf135ae54d1dcca63bf17be84818 ...@@ -52,7 +51,6 @@ md5sum = e7bfbf135ae54d1dcca63bf17be84818
[nodejs-18.18.0] [nodejs-18.18.0]
<= nodejs-base <= nodejs-base
openssl_location = ${openssl:location}
version = v18.18.0 version = v18.18.0
md5sum = a1ce8df7e6b9df9f4ba3ff1d4e2173d2 md5sum = a1ce8df7e6b9df9f4ba3ff1d4e2173d2
...@@ -64,51 +62,55 @@ md5sum = c5ab3e98977dfd639d830625d79eff52 ...@@ -64,51 +62,55 @@ md5sum = c5ab3e98977dfd639d830625d79eff52
[nodejs-14.16.0] [nodejs-14.16.0]
<= nodejs-base <= nodejs-base
openssl_location = ${openssl:location}
version = v14.16.0 version = v14.16.0
md5sum = 7dc3666f407bf4e12a01ce1be2883d31 md5sum = 7dc3666f407bf4e12a01ce1be2883d31
[nodejs-12.18.3] [nodejs-12.18.3]
<= nodejs-base <= nodejs-base
openssl_location = ${openssl:location}
version = v12.18.3 version = v12.18.3
md5sum = 28bf6a4d98b238403fa58a0805f4a979 md5sum = 28bf6a4d98b238403fa58a0805f4a979
PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s
configure-command = ./configure
[nodejs-8.9.4] [nodejs-8.9.4]
<= nodejs-base <= nodejs-base
version = v8.9.4 version = v8.9.4
md5sum = 4ddc1daff327d7e6f63da57fdfc24f55 md5sum = 4ddc1daff327d7e6f63da57fdfc24f55
openssl-location = ${openssl-1.0:location}
PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s
configure-command = ./configure
[nodejs-8.12.0] [nodejs-8.12.0]
<= nodejs-base <= nodejs-base
version = v8.12.0 version = v8.12.0
md5sum = 5690333b77964edf81945fc724f6ea85 md5sum = 5690333b77964edf81945fc724f6ea85
openssl-location = ${openssl-1.0:location}
PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s PATH = ${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s
configure-command = ./configure
[nodejs-base] [nodejs-base]
# Server-side Javascript. # Server-side Javascript.
version = version =
md5sum = md5sum =
openssl_location = ${openssl-1.0:location} openssl-location = ${openssl:location}
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://nodejs.org/dist/${:version}/node-${:version}.tar.gz url = https://nodejs.org/dist/${:version}/node-${:version}.tar.gz
configure-command = python3 configure
configure-options = configure-options =
--prefix=%(location)s
--shared-openssl --shared-openssl
--shared-openssl-includes=${:openssl_location}/include --shared-openssl-includes=${:openssl-location}/include
--shared-openssl-libpath=${:openssl_location}/lib --shared-openssl-libpath=${:openssl-location}/lib
PATH = ${pkgconfig:location}/bin:%(PATH)s PATH = ${python3:location}/bin:${pkgconfig:location}/bin:%(PATH)s
environment = environment =
HOME=@@LOCATION@@ HOME=@@LOCATION@@
PATH=${:PATH} PATH=${:PATH}
PKG_CONFIG_PATH=${:openssl_location}/lib/pkgconfig/ PKG_CONFIG_PATH=${:openssl-location}/lib/pkgconfig/
CPPFLAGS=-I${zlib:location}/include CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-Wl,-rpath=${:openssl_location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-Wl,-rpath=${:openssl-location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
LD_LIBRARY_PATH=${:openssl_location}/lib LD_LIBRARY_PATH=${:openssl-location}/lib
[nodejs-headers-base] [nodejs-headers-base]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
......
...@@ -19,6 +19,10 @@ md5sum = c2e9938f082b027110fba538de76684c ...@@ -19,6 +19,10 @@ md5sum = c2e9938f082b027110fba538de76684c
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/ipv6_bugfix.patch#355bec02adee4ea73ff5a56ba6971ad2 ${:_profile_base_location_}/ipv6_bugfix.patch#355bec02adee4ea73ff5a56ba6971ad2
pre-configure =
# remove old FindPython3 which does not know about python > 3.8 to
# use FindPython3 bundled with slapos' cmake
rm tools/cmake/FindPython3.cmake tools/cmake/FindPython/Support.cmake
configure-command = configure-command =
${cmake:location}/bin/cmake ${cmake:location}/bin/cmake
configure-options = configure-options =
...@@ -30,5 +34,5 @@ configure-options = ...@@ -30,5 +34,5 @@ configure-options =
-DUA_NAMESPACE_ZERO=REDUCED -DUA_NAMESPACE_ZERO=REDUCED
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 = environment =
PATH=${python3:location}/bin:${patch:location}/bin:%(PATH)s PATH=${python3:location}/bin:${patch:location}/bin:%(PATH)s
...@@ -16,9 +16,9 @@ parts = ...@@ -16,9 +16,9 @@ parts =
[openssh] [openssh]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
md5sum = 8ce5f390958baeeab635aafd0ef41453 md5sum = 3d29a7394816deeb57186899d7f7662c
location = @@LOCATION@@ location = @@LOCATION@@
url = https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz url = https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
patch-options = -p1 patch-options = -p1
patches = patches =
......
...@@ -6,6 +6,7 @@ extends = ...@@ -6,6 +6,7 @@ extends =
../libffi/buildout.cfg ../libffi/buildout.cfg
../libtasn1/buildout.cfg ../libtasn1/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../xz-utils/buildout.cfg
[p11-kit] [p11-kit]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -18,5 +19,5 @@ configure-options = ...@@ -18,5 +19,5 @@ configure-options =
--disable-doc-html --disable-doc-html
--without-trust-paths --without-trust-paths
environment = environment =
PATH=${pkgconfig:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${libffi:location}/lib/pkgconfig:${libtasn1:location}/lib/pkgconfig PKG_CONFIG_PATH=${libffi:location}/lib/pkgconfig:${libtasn1:location}/lib/pkgconfig
...@@ -5,7 +5,7 @@ parts = ...@@ -5,7 +5,7 @@ parts =
[popt] [popt]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://ftp.rpm.org/popt/releases/popt-1.x/popt-1.18.tar.gz url = http://ftp.rpm.org/popt/releases/popt-1.x/popt-1.19.tar.gz
md5sum = 450f2f636e6a3aa527de803d0ae76c5a md5sum = eaa2135fddb6eb03f2c87ee1823e5a78
configure-options = configure-options =
--disable-static --disable-static
...@@ -30,6 +30,8 @@ exe = ${buildout:bin-directory}/gpython ...@@ -30,6 +30,8 @@ exe = ${buildout:bin-directory}/gpython
# python-interpreter provides python interpreter with all specified eggs. # python-interpreter provides python interpreter with all specified eggs.
# eggs default to pygolang, but can be overwritten or changed in inherited section. # eggs default to pygolang, but can be overwritten or changed in inherited section.
# if eggs are changes, they must still have pygolang. # if eggs are changes, they must still have pygolang.
#
# ${python-interpreter:exe} is where buildout installs the interpreter.
[python-interpreter] [python-interpreter]
recipe = zc.recipe.egg:scripts recipe = zc.recipe.egg:scripts
eggs = ${pygolang:egg} eggs = ${pygolang:egg}
...@@ -47,7 +49,6 @@ initialization = ...@@ -47,7 +49,6 @@ initialization =
# NOTE with scripts=ø interpreter is not handled, so we use `scripts=python` as # NOTE with scripts=ø interpreter is not handled, so we use `scripts=python` as
# a workaround. # a workaround.
scripts = ${:interpreter} scripts = ${:interpreter}
# this is where buildout installs the interpreter
exe = ${buildout:bin-directory}/${:interpreter} exe = ${buildout:bin-directory}/${:interpreter}
...@@ -104,7 +105,6 @@ init = ...@@ -104,7 +105,6 @@ init =
<= python-interpreter <= python-interpreter
eggs += %(eggs)s eggs += %(eggs)s
interpreter = $${:_buildout_section_name_} interpreter = $${:_buildout_section_name_}
exe = $${buildout:bin-directory}/$${:interpreter}
""" % locals()) """ % locals())
......
...@@ -45,7 +45,6 @@ patches = ...@@ -45,7 +45,6 @@ patches =
configure-options = configure-options =
--enable-multibyte --enable-multibyte
--disable-static --disable-static
--with-curses
environment = environment =
CPPFLAGS=-I${ncurses:location}/include CPPFLAGS=-I${ncurses:location}/include
LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib
......
...@@ -26,4 +26,4 @@ location = ${:output} ...@@ -26,4 +26,4 @@ location = ${:output}
<= go-git-package <= go-git-package
go.importpath = github.com/restic/restic go.importpath = github.com/restic/restic
repository = https://github.com/restic/restic repository = https://github.com/restic/restic
revision = v0.14.0-0-g1bc87e17 revision = v0.16.1-0-gbaca3f630
...@@ -10,8 +10,8 @@ extends = ...@@ -10,8 +10,8 @@ extends =
[rsyslogd] [rsyslogd]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://www.rsyslog.com/files/download/rsyslog/rsyslog-8.2110.0.tar.gz url = https://www.rsyslog.com/files/download/rsyslog/rsyslog-8.2310.0.tar.gz
md5sum = 2d2b9d4a70a6e2fd4a7e806a5782c56b md5sum = e492884a5f64d2a069684fcb21171114
shared = true shared = true
configure-options = configure-options =
--disable-klog --disable-klog
......
...@@ -44,23 +44,23 @@ configure-options += ...@@ -44,23 +44,23 @@ configure-options +=
make-options += make-options +=
DESTDIR=${buildout:destdir} DESTDIR=${buildout:destdir}
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
[intltool] [intltool]
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
[autoconf] [autoconf]
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
[automake] [automake]
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
[firewalld] [firewalld]
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
[dbus] [dbus]
...@@ -97,7 +97,7 @@ make-options += ...@@ -97,7 +97,7 @@ make-options +=
INSTALL_PREFIX=${buildout:destdir} INSTALL_PREFIX=${buildout:destdir}
DESTDIR=${buildout:destdir} DESTDIR=${buildout:destdir}
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
[gobject-introspection] [gobject-introspection]
pre-configure = pre-configure =
...@@ -105,7 +105,7 @@ pre-configure = ...@@ -105,7 +105,7 @@ pre-configure =
configure-options += configure-options +=
--enable-shared --enable-shared
environment += environment +=
PERL5LIB=${perl:location}/lib/5.28.1/ PERL5LIB=${perl:location}/lib/5.38.0/
post-install = post-install =
sed -i 's#!${python:location}/bin/python${python:version}#!/opt/slapos/parts/python${python:version}/bin/python${python:version}#' ${python:location}/bin/python${python:version}-config sed -i 's#!${python:location}/bin/python${python:version}#!/opt/slapos/parts/python${python:version}/bin/python${python:version}#' ${python:location}/bin/python${python:version}-config
...@@ -121,14 +121,14 @@ environment += ...@@ -121,14 +121,14 @@ environment +=
[perl-CPAN-package] [perl-CPAN-package]
perl-PERL5LIB=${perl:location}/lib/5.28.1/ perl-PERL5LIB=${perl:location}/lib/5.38.0/
pre-configure = pre-configure =
sed -i "s#'/opt/slapos/parts/perl#'${perl:location}#" ${perl:location}/lib/5.28.1/*-linux-thread-multi/Config.pm sed -i "s#'/opt/slapos/parts/perl#'${perl:location}#" ${perl:location}/lib/5.38.0/*-linux-thread-multi/Config.pm
sed -i "s#'/opt/slapos/parts/site_perl#'${buildout:destdir}/parts/site_perl#" ${perl:location}/lib/5.28.1/*-linux-thread-multi/Config.pm sed -i "s#'/opt/slapos/parts/site_perl#'${buildout:destdir}/parts/site_perl#" ${perl:location}/lib/5.38.0/*-linux-thread-multi/Config.pm
post-install = post-install =
sed -i "s#'${perl:location}#'/opt/slapos/parts/perl#" ${perl:location}/lib/5.28.1/*-linux-thread-multi/Config.pm sed -i "s#'${perl:location}#'/opt/slapos/parts/perl#" ${perl:location}/lib/5.38.0/*-linux-thread-multi/Config.pm
sed -i "s#'${buildout:destdir}/parts/site_perl#'/opt/slapos/parts/site_perl#" ${perl:location}/lib/5.28.1/*-linux-thread-multi/Config.pm sed -i "s#'${buildout:destdir}/parts/site_perl#'/opt/slapos/parts/site_perl#" ${perl:location}/lib/5.38.0/*-linux-thread-multi/Config.pm
[perl] [perl]
configure-command = configure-command =
......
[buildout] [buildout]
extends = extends =
../readline/buildout.cfg ../readline/buildout.cfg
../tcl/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
parts = parts =
sqlite3 sqlite3
...@@ -8,14 +9,17 @@ parts = ...@@ -8,14 +9,17 @@ parts =
[sqlite3] [sqlite3]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://sqlite.org/2022/sqlite-autoconf-3370200.tar.gz # Some options need the canonical source code (i.e. not as an amalgamation).
md5sum = 683cc5312ee74e71079c14d24b7a6d27 url = https://deb.debian.org/debian/pool/main/s/sqlite3/sqlite3_3.40.1.orig.tar.xz
pre-configure = sed -i 's/-ltinfo//g;s/-ltermcap//g;s/ termcap//;s/ curses//' configure md5sum = 79f2507907721b770cbec98195cecece
configure-options = configure-options =
--disable-static --disable-static
--disable-tcl
--enable-readline --enable-readline
# Increase MAX_VARIABLE_NUMBER like many os. For example: # Increase MAX_VARIABLE_NUMBER like many os. For example:
# https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/sqlite # https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/sqlite
# NEO needs SQLITE_ENABLE_UPDATE_DELETE_LIMIT to drop partitions.
environment = environment =
CPPFLAGS=-I${readline:location}/include -I${ncurses:location}/include -I${zlib:location}/include -DSQLITE_MAX_VARIABLE_NUMBER=250000 CPPFLAGS=-I${readline:location}/include -I${ncurses:location}/include -I${zlib:location}/include -DSQLITE_MAX_VARIABLE_NUMBER=250000 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1
LDFLAGS=-L@@LOCATION@@ -Wl,-rpath=${readline:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${readline:location}/lib -L${ncurses:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L@@LOCATION@@ -Wl,-rpath=${readline:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${readline:location}/lib -L${ncurses:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
PATH=${tcl:location}/bin:%(PATH)s
...@@ -5,13 +5,14 @@ parts = tcl ...@@ -5,13 +5,14 @@ parts = tcl
[tcl] [tcl]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://prdownloads.sourceforge.net/tcl/tcl8.6.11-src.tar.gz url = https://prdownloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz
md5sum = 8a4c004f48984a03a7747e9ba06e4da4 md5sum = 0e4358aade2f5db8a8b6f2f6d9481ec2
shared = true shared = true
environment = environment =
CPPFLAGS=-I${zlib:location}/include CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
configure-command = ./unix/configure pre-configure = rm -r pkgs/*/
configure-command = unix/configure
configure-options = configure-options =
--prefix=@@LOCATION@@ --prefix=%(location)s
--with-encoding=utf-8 --with-encoding=utf-8
...@@ -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.2.tar.bz2 url = https://dlcdn.apache.org/trafficserver/trafficserver-9.2.3.tar.bz2
md5sum = 994247ed0f50e6dfcfb8d7200dcad6ea md5sum = 5e37ec924667052d655de2ebab98ad3f
shared = true shared = true
patch-options = -p1 patch-options = -p1
configure-options = configure-options =
......
...@@ -7,8 +7,8 @@ extends = ...@@ -7,8 +7,8 @@ extends =
[util-linux] [util-linux]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://www.kernel.org/pub/linux/utils/util-linux/v2.37/util-linux-2.37.2.tar.xz url = https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/util-linux-2.39.2.tar.xz
md5sum = d659bf7cd417d93dc609872f6334b019 md5sum = 2feb3e7c306f336a3d22a182dfffc942
configure-options = configure-options =
--disable-static --disable-static
--enable-libuuid --enable-libuuid
...@@ -67,4 +67,4 @@ configure-options = ...@@ -67,4 +67,4 @@ configure-options =
--without-audit --without-audit
environment = environment =
PATH=${perl:location}/bin:%(PATH)s PATH=${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
...@@ -21,7 +21,6 @@ url = https://salsa.debian.org/debian/w3m/-/archive/${:version}/w3m-${:version}. ...@@ -21,7 +21,6 @@ url = https://salsa.debian.org/debian/w3m/-/archive/${:version}/w3m-${:version}.
configure-options = configure-options =
--with-gc=${garbage-collector:location} --with-gc=${garbage-collector:location}
--with-ssl=${openssl:location} --with-ssl=${openssl:location}
--with-termlib=ncurses
--disable-nls --disable-nls
--disable-image --disable-image
--disable-dict --disable-dict
......
...@@ -379,7 +379,7 @@ configure-options = ...@@ -379,7 +379,7 @@ configure-options =
--with-xkb-config-root=${:xkeyboard-config-location} --with-xkb-config-root=${:xkeyboard-config-location}
environment = environment =
PKG_CONFIG_PATH=${libxkbfile:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${libXau:location}/lib/pkgconfig PKG_CONFIG_PATH=${libxkbfile:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${libXau:location}/lib/pkgconfig
PATH=${pkgconfig:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:${pkgconfig:location}/bin:%(PATH)s
LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libxkbfile:location}/lib -Wl,-rpath=${libxkbfile:location}/lib LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libxkbfile:location}/lib -Wl,-rpath=${libxkbfile:location}/lib
[renderext] [renderext]
...@@ -579,7 +579,7 @@ recipe = slapos.recipe.cmmi ...@@ -579,7 +579,7 @@ recipe = slapos.recipe.cmmi
url = https://www.x.org/releases/individual/app/xdpyinfo-1.3.3.tar.xz url = https://www.x.org/releases/individual/app/xdpyinfo-1.3.3.tar.xz
md5sum = f67116760888f2e06486ee3d179875d2 md5sum = f67116760888f2e06486ee3d179875d2
environment = environment =
PATH=${pkgconfig:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${xorg-util-macros:location}/share/pkgconfig:${libX11:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libXext:location}/lib/pkgconfig:${libXtst:location}/lib/pkgconfig:${recordproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libXi:location}/lib/pkgconfig:${libXi:pkg_config_depends} PKG_CONFIG_PATH=${xorg-util-macros:location}/share/pkgconfig:${libX11:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libXext:location}/lib/pkgconfig:${libXtst:location}/lib/pkgconfig:${recordproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libXi:location}/lib/pkgconfig:${libXi:pkg_config_depends}
CPPFLAGS=-I${libXt:location}/include CPPFLAGS=-I${libXt:location}/include
LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -Wl,-rpath=${libXi:location}/lib -Wl,-rpath=${libXtst:location}/lib -Wl,-rpath=${libXext:location}/lib -Wl,-rpath=${libXau:location}/lib -Wl,-rpath=${libXdmcp:location}/lib -Wl,-rpath=${libxcb:location}/lib LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -Wl,-rpath=${libXi:location}/lib -Wl,-rpath=${libXtst:location}/lib -Wl,-rpath=${libXext:location}/lib -Wl,-rpath=${libXau:location}/lib -Wl,-rpath=${libXdmcp:location}/lib -Wl,-rpath=${libxcb:location}/lib
...@@ -608,7 +608,7 @@ configure-options = ...@@ -608,7 +608,7 @@ configure-options =
environment = environment =
PKG_CONFIG_PATH=${pixman:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xorgproto:location}/share/pkgconfig:${damageproto:location}/lib/pkgconfig:${xcmiscproto:location}/lib/pkgconfig:${xtrans:location}/share/pkgconfig:${bigreqsproto:location}/lib/pkgconfig:${xorgproto:pkg_config_depends}:${xorgproto:location}/share/pkgconfig:${renderproto:location}/lib/pkgconfig:${presentproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${inputproto:location}/lib/pkgconfig:${fontsproto:location}/lib/pkgconfig:${videoproto:location}/lib/pkgconfig:${recordproto:location}/lib/pkgconfig:${resourceproto:location}/lib/pkgconfig:${xineramaproto:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libxkbfile:location}/lib/pkgconfig:${libXfont:location}/lib/pkgconfig:${libXfont2:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libfontenc:location}/lib/pkgconfig:${freetype:pkg_config_depends}:${freetype:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig:${libxcvt:location}/lib/pkgconfig PKG_CONFIG_PATH=${pixman:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xorgproto:location}/share/pkgconfig:${damageproto:location}/lib/pkgconfig:${xcmiscproto:location}/lib/pkgconfig:${xtrans:location}/share/pkgconfig:${bigreqsproto:location}/lib/pkgconfig:${xorgproto:pkg_config_depends}:${xorgproto:location}/share/pkgconfig:${renderproto:location}/lib/pkgconfig:${presentproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${inputproto:location}/lib/pkgconfig:${fontsproto:location}/lib/pkgconfig:${videoproto:location}/lib/pkgconfig:${recordproto:location}/lib/pkgconfig:${resourceproto:location}/lib/pkgconfig:${xineramaproto:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libxkbfile:location}/lib/pkgconfig:${libXfont:location}/lib/pkgconfig:${libXfont2:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libfontenc:location}/lib/pkgconfig:${freetype:pkg_config_depends}:${freetype:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig:${libxcvt:location}/lib/pkgconfig
CPPFLAGS=-I${bzip2:location}/include -I${libgcrypt:location}/include -I${libgpg-error:location}/include -I${zlib:location}/include CPPFLAGS=-I${bzip2:location}/include -I${libgcrypt:location}/include -I${libgpg-error:location}/include -I${zlib:location}/include
PATH=${patch:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:${patch:location}/bin:${pkgconfig:location}/bin:%(PATH)s
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${libgcrypt:location}/lib -Wl,-rpath=${libgcrypt:location}/lib -L${libgpg-error:location}/lib -Wl,-rpath=${libgpg-error:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${libgcrypt:location}/lib -Wl,-rpath=${libgcrypt:location}/lib -L${libgpg-error:location}/lib -Wl,-rpath=${libgpg-error:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
[libXi] [libXi]
......
...@@ -5,7 +5,7 @@ parts = ...@@ -5,7 +5,7 @@ parts =
[xz-utils] [xz-utils]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://tukaani.org/xz/xz-5.2.5.tar.bz2 url = https://tukaani.org/xz/xz-5.4.4.tar.bz2
md5sum = 33ab3ef79aa1146b83b778210e7b0a54 md5sum = fbb849a27e266964aefe26bad508144f
configure-options = configure-options =
--disable-static --disable-static
...@@ -5,7 +5,7 @@ parts = ...@@ -5,7 +5,7 @@ parts =
[zlib] [zlib]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://zlib.net/fossils/zlib-1.2.12.tar.gz url = https://zlib.net/fossils/zlib-1.3.tar.gz
md5sum = 5fc414a9726be31427b440b434d05f78 md5sum = 60373b133d630f74f4a1f94c1185a53f
environment = environment =
CFLAGS=-fPIC CFLAGS=-fPIC
...@@ -10,8 +10,8 @@ parts = ...@@ -10,8 +10,8 @@ parts =
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/facebook/zstd/releases/download/v${:version}/zstd-${:version}.tar.gz url = https://github.com/facebook/zstd/releases/download/v${:version}/zstd-${:version}.tar.gz
version = 1.4.9 version = 1.5.5
md5sum = eb718b8aae0302cabe20f968e500534d md5sum = 63251602329a106220e0a5ad26ba656f
location = @@LOCATION@@ location = @@LOCATION@@
configure-command = : configure-command = :
environment = environment =
......
...@@ -18,7 +18,7 @@ md5sum = 458870b70c33a1621b68961ae2372ad5 ...@@ -18,7 +18,7 @@ md5sum = 458870b70c33a1621b68961ae2372ad5
[template-nginx-configuration] [template-nginx-configuration]
filename = template-nginx.cfg.in filename = template-nginx.cfg.in
md5sum = fc4f258e3ae56e0c9596484d736ccfed md5sum = 3edea04f8e7c79f3363b7a849ae6c7eb
[template-dcron-service] [template-dcron-service]
filename = template-dcron-service.sh.in filename = template-dcron-service.sh.in
......
...@@ -51,9 +51,8 @@ http { ...@@ -51,9 +51,8 @@ http {
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
server { server {
listen [$${nginx-configuration:ip}]:$${nginx-configuration:port}; listen [$${nginx-configuration:ip}]:$${nginx-configuration:port} ssl;
ssl on;
ssl_certificate $${nginx-configuration:ssl_crt}; ssl_certificate $${nginx-configuration:ssl_crt};
ssl_certificate_key $${nginx-configuration:ssl_key}; ssl_certificate_key $${nginx-configuration:ssl_key};
......
...@@ -113,7 +113,7 @@ url = ${:_profile_base_location_}/${:filename} ...@@ -113,7 +113,7 @@ url = ${:_profile_base_location_}/${:filename}
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
output = ${buildout:directory}/instance.cfg output = ${buildout:directory}/instance.cfg
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
python-bin = ${buildout:bin-directory}/${python-interpreter:interpreter} python-bin = ${python-interpreter:exe}
type = beremiz type = beremiz
context = context =
key autoconf_location autoconf:location key autoconf_location autoconf:location
......
...@@ -78,6 +78,7 @@ eggs = click ...@@ -78,6 +78,7 @@ eggs = click
opcua opcua
${beremiz:egg} ${beremiz:egg}
${Twisted:egg} ${Twisted:egg}
sslpsk
[instance-profile] [instance-profile]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
...@@ -127,3 +128,4 @@ opcua = 0.98.13 ...@@ -127,3 +128,4 @@ opcua = 0.98.13
trollius = 2.2.1 trollius = 2.2.1
futures = 3.3.0 futures = 3.3.0
cycler = 0.10.0 cycler = 0.10.0
sslpsk = 1.0.0
...@@ -103,6 +103,10 @@ ...@@ -103,6 +103,10 @@
"null" "null"
] ]
}, },
"nofile": {
"description": "Set open file descriptors soft limit to hard limit",
"type": "boolean"
},
"family-override": { "family-override": {
"description": "Family-wide options, possibly overriding global options", "description": "Family-wide options, possibly overriding global options",
"default": {}, "default": {},
......
...@@ -32,6 +32,7 @@ import glob ...@@ -32,6 +32,7 @@ import glob
import http.client import http.client
import json import json
import os import os
import resource
import shutil import shutil
import socket import socket
import sqlite3 import sqlite3
...@@ -1100,3 +1101,36 @@ class TestNEO(ZopeSkinsMixin, CrontabMixin, ERP5InstanceTestCase): ...@@ -1100,3 +1101,36 @@ class TestNEO(ZopeSkinsMixin, CrontabMixin, ERP5InstanceTestCase):
'var', 'var',
'log', 'log',
f)) f))
class TestNofileParameter(ERP5InstanceTestCase, TestPublishedURLIsReachableMixin):
"""Test setting the nofile parameter sets the open fd soft limit to the hard limit.
"""
__partition_reference__ = 'nofile'
@classmethod
def getInstanceParameterDict(cls):
return {'_': json.dumps({'nofile': True})}
def test_nofile(self):
with self.slap.instance_supervisor_rpc as supervisor:
all_process_info = supervisor.getAllProcessInfo()
_, current_hard_limit = resource.getrlimit(resource.RLIMIT_NOFILE)
process_info, = (p for p in all_process_info if p['name'].startswith('zope-'))
self.assertEqual(
resource.prlimit(process_info['pid'], resource.RLIMIT_NOFILE),
(current_hard_limit, current_hard_limit))
class TestUnsetNofileParameter(ERP5InstanceTestCase, TestPublishedURLIsReachableMixin):
"""Test not setting the nofile parameter doesn't change the soft limit of erp5
"""
__partition_reference__ = 'unsetnofile'
def test_unset_nofile(self):
with self.slap.instance_supervisor_rpc as supervisor:
all_process_info = supervisor.getAllProcessInfo()
limit = resource.getrlimit(resource.RLIMIT_NOFILE)
process_info, = (p for p in all_process_info if p['name'].startswith('zope-'))
self.assertEqual(
resource.prlimit(process_info['pid'], resource.RLIMIT_NOFILE), limit)
...@@ -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 = 6457064905f818f21e3733eb4278a580 md5sum = 629f4cc34dd7512eb61f10eac4e62d7a
[template-empty] [template-empty]
_update_hash_filename_ = templates/empty.in _update_hash_filename_ = templates/empty.in
......
...@@ -128,7 +128,7 @@ backend {{ slave_instance['slave_reference'] }}-{{ scheme }} ...@@ -128,7 +128,7 @@ backend {{ slave_instance['slave_reference'] }}-{{ scheme }}
{{ active_check_option }} {{ active_check_option }}
{%- endfor %} {%- endfor %}
{%- if path %} {%- if path %}
http-request set-path {{ path }}%[path] http-request set-path {{ path }}%[path,regsub('^/$','')]
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
...@@ -175,7 +175,7 @@ backend {{ slave_instance['slave_reference'] }}-{{ scheme }}-failover ...@@ -175,7 +175,7 @@ backend {{ slave_instance['slave_reference'] }}-{{ scheme }}-failover
timeout server {{ slave_instance['request-timeout'] }}s timeout server {{ slave_instance['request-timeout'] }}s
retries {{ slave_instance['backend-connect-retries'] }} retries {{ slave_instance['backend-connect-retries'] }}
{%- if path %} {%- if path %}
http-request set-path {{ path }}%[path] http-request set-path {{ path }}%[path,regsub('^/$','')]
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
......
...@@ -1654,6 +1654,12 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin, AtsMixin): ...@@ -1654,6 +1654,12 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin, AtsMixin):
# authenticating to http backend shall be no-op # authenticating to http backend shall be no-op
'authenticate-to-backend': True, 'authenticate-to-backend': True,
}, },
'url-trailing-slash-absent': {
'url': cls.backend_url + 'index.html',
},
'url-trailing-slash-present': {
'url': cls.backend_url + 'index.html/',
},
'url-netloc-list': { 'url-netloc-list': {
'url': cls.backend_url, 'url': cls.backend_url,
'url-netloc-list': '%(ip)s:%(port_a)s %(ip)s:%(port_b)s' % { 'url-netloc-list': '%(ip)s:%(port_a)s %(ip)s:%(port_b)s' % {
...@@ -2123,9 +2129,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin, AtsMixin): ...@@ -2123,9 +2129,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin, AtsMixin):
'monitor-base-url': 'https://[%s]:8401' % self.master_ipv6, 'monitor-base-url': 'https://[%s]:8401' % self.master_ipv6,
'backend-client-caucase-url': 'http://[%s]:8990' % self.master_ipv6, 'backend-client-caucase-url': 'http://[%s]:8990' % self.master_ipv6,
'domain': 'example.com', 'domain': 'example.com',
'accepted-slave-amount': '62', 'accepted-slave-amount': '64',
'rejected-slave-amount': '0', 'rejected-slave-amount': '0',
'slave-amount': '62', 'slave-amount': '64',
'rejected-slave-dict': { 'rejected-slave-dict': {
}, },
'warning-slave-dict': { 'warning-slave-dict': {
...@@ -2462,6 +2468,30 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin, AtsMixin): ...@@ -2462,6 +2468,30 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin, AtsMixin):
j['Incoming Headers']['x-forwarded-for'] j['Incoming Headers']['x-forwarded-for']
) )
def test_url_trailing_slash_absent(self):
parameter_dict = self.assertSlaveBase('url-trailing-slash-absent')
self.assertEqual(
fakeHTTPSResult(parameter_dict['domain'], '').json()['Path'],
'/index.html')
self.assertEqual(
fakeHTTPSResult(parameter_dict['domain'], 'path').json()['Path'],
'/index.html/path')
self.assertEqual(
fakeHTTPSResult(parameter_dict['domain'], 'path/').json()['Path'],
'/index.html/path/')
def test_url_trailing_slash_present(self):
parameter_dict = self.assertSlaveBase('url-trailing-slash-present')
self.assertEqual(
fakeHTTPSResult(parameter_dict['domain'], '').json()['Path'],
'/index.html')
self.assertEqual(
fakeHTTPSResult(parameter_dict['domain'], 'path').json()['Path'],
'/index.html/path')
self.assertEqual(
fakeHTTPSResult(parameter_dict['domain'], 'path/').json()['Path'],
'/index.html/path/')
def test_url_netloc_list(self): def test_url_netloc_list(self):
parameter_dict = self.assertSlaveBase('url-netloc-list') parameter_dict = self.assertSlaveBase('url-netloc-list')
result = fakeHTTPSResult(parameter_dict['domain'], 'path') result = fakeHTTPSResult(parameter_dict['domain'], 'path')
......
...@@ -182,6 +182,12 @@ T-2/var/log/httpd/_type-zope_frontend_log ...@@ -182,6 +182,12 @@ T-2/var/log/httpd/_type-zope_frontend_log
T-2/var/log/httpd/_url-netloc-list_access_log T-2/var/log/httpd/_url-netloc-list_access_log
T-2/var/log/httpd/_url-netloc-list_backend_log T-2/var/log/httpd/_url-netloc-list_backend_log
T-2/var/log/httpd/_url-netloc-list_frontend_log T-2/var/log/httpd/_url-netloc-list_frontend_log
T-2/var/log/httpd/_url-trailing-slash-absent_access_log
T-2/var/log/httpd/_url-trailing-slash-absent_backend_log
T-2/var/log/httpd/_url-trailing-slash-absent_frontend_log
T-2/var/log/httpd/_url-trailing-slash-present_access_log
T-2/var/log/httpd/_url-trailing-slash-present_backend_log
T-2/var/log/httpd/_url-trailing-slash-present_frontend_log
T-2/var/log/httpd/_url_https-url_access_log T-2/var/log/httpd/_url_https-url_access_log
T-2/var/log/httpd/_url_https-url_backend_log T-2/var/log/httpd/_url_https-url_backend_log
T-2/var/log/httpd/_url_https-url_frontend_log T-2/var/log/httpd/_url_https-url_frontend_log
......
...@@ -182,6 +182,12 @@ T-2/var/log/httpd/_type-zope_frontend_log ...@@ -182,6 +182,12 @@ T-2/var/log/httpd/_type-zope_frontend_log
T-2/var/log/httpd/_url-netloc-list_access_log T-2/var/log/httpd/_url-netloc-list_access_log
T-2/var/log/httpd/_url-netloc-list_backend_log T-2/var/log/httpd/_url-netloc-list_backend_log
T-2/var/log/httpd/_url-netloc-list_frontend_log T-2/var/log/httpd/_url-netloc-list_frontend_log
T-2/var/log/httpd/_url-trailing-slash-absent_access_log
T-2/var/log/httpd/_url-trailing-slash-absent_backend_log
T-2/var/log/httpd/_url-trailing-slash-absent_frontend_log
T-2/var/log/httpd/_url-trailing-slash-present_access_log
T-2/var/log/httpd/_url-trailing-slash-present_backend_log
T-2/var/log/httpd/_url-trailing-slash-present_frontend_log
T-2/var/log/httpd/_url_https-url_access_log T-2/var/log/httpd/_url_https-url_access_log
T-2/var/log/httpd/_url_https-url_backend_log T-2/var/log/httpd/_url_https-url_backend_log
T-2/var/log/httpd/_url_https-url_frontend_log T-2/var/log/httpd/_url_https-url_frontend_log
......
...@@ -182,6 +182,12 @@ T-2/var/log/httpd/_type-zope_frontend_log ...@@ -182,6 +182,12 @@ T-2/var/log/httpd/_type-zope_frontend_log
T-2/var/log/httpd/_url-netloc-list_access_log T-2/var/log/httpd/_url-netloc-list_access_log
T-2/var/log/httpd/_url-netloc-list_backend_log T-2/var/log/httpd/_url-netloc-list_backend_log
T-2/var/log/httpd/_url-netloc-list_frontend_log T-2/var/log/httpd/_url-netloc-list_frontend_log
T-2/var/log/httpd/_url-trailing-slash-absent_access_log
T-2/var/log/httpd/_url-trailing-slash-absent_backend_log
T-2/var/log/httpd/_url-trailing-slash-absent_frontend_log
T-2/var/log/httpd/_url-trailing-slash-present_access_log
T-2/var/log/httpd/_url-trailing-slash-present_backend_log
T-2/var/log/httpd/_url-trailing-slash-present_frontend_log
T-2/var/log/httpd/_url_https-url_access_log T-2/var/log/httpd/_url_https-url_access_log
T-2/var/log/httpd/_url_https-url_backend_log T-2/var/log/httpd/_url_https-url_backend_log
T-2/var/log/httpd/_url_https-url_frontend_log T-2/var/log/httpd/_url_https-url_frontend_log
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[template-erp5] [template-erp5]
filename = instance-erp5.cfg.in filename = instance-erp5.cfg.in
md5sum = 2491969d49f8bf9b172e89b1c0e9d98e md5sum = 577f9f137e81cd6d59db834f065884ff
[template-balancer] [template-balancer]
filename = instance-balancer.cfg.in filename = instance-balancer.cfg.in
......
...@@ -303,6 +303,7 @@ config-longrequest-logger-interval = {{ dumps(zope_parameter_dict.get('longreque ...@@ -303,6 +303,7 @@ config-longrequest-logger-interval = {{ dumps(zope_parameter_dict.get('longreque
config-longrequest-logger-timeout = {{ dumps(zope_parameter_dict.get('longrequest-logger-timeout', 1)) }} config-longrequest-logger-timeout = {{ dumps(zope_parameter_dict.get('longrequest-logger-timeout', 1)) }}
config-large-file-threshold = {{ dumps(zope_parameter_dict.get('large-file-threshold', "10MB")) }} config-large-file-threshold = {{ dumps(zope_parameter_dict.get('large-file-threshold', "10MB")) }}
config-port-base = {{ dumps(zope_parameter_dict.get('port-base', 2200)) }} config-port-base = {{ dumps(zope_parameter_dict.get('port-base', 2200)) }}
config-nofile = {{ dumps(slapparameter_dict.get('nofile', false)) }}
{# BBB: zope_parameter_dict used to contain 'webdav', so fallback to it -#} {# BBB: zope_parameter_dict used to contain 'webdav', so fallback to it -#}
config-webdav = {{ dumps(current_zope_family_override_dict.get('webdav', zope_parameter_dict.get('webdav', False))) }} config-webdav = {{ dumps(current_zope_family_override_dict.get('webdav', zope_parameter_dict.get('webdav', False))) }}
config-publisher-timeout = {{ dumps(current_zope_family_override_dict.get('publisher-timeout', global_publisher_timeout)) }} config-publisher-timeout = {{ dumps(current_zope_family_override_dict.get('publisher-timeout', global_publisher_timeout)) }}
......
[buildout] [buildout]
extends = extends =
../../software/erp5/software.cfg ../../software/wendelin/software.cfg
buildout.hash.cfg buildout.hash.cfg
parts +=
vifib-fix-products-paths
[erp5-defaults] [erp5-defaults]
wcfs-enable-default = true wcfs-enable-default = true
[local-bt5-repository] [local-bt5-repository]
# Same as bt5-repository, but only local repository. # Same as bt5-repository, but only local repository.
# Used to generate bt5lists. # Used to generate bt5lists.
list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap ${erp5-bin:location}/bt5 ${erp5-doc:location}/bt5 ${vifib:location}/master/bt5 ${wendelin:location}/bt5 list += ${vifib:location}/master/bt5
[erp5_repository_list] [erp5_repository_list]
repository_id_list = erp5 erp5-bin erp5-doc wendelin vifib/master repository_id_list += vifib/master
[erp5] [erp5]
branch = erp5-vifib branch = erp5-vifib
...@@ -31,19 +27,6 @@ branch = master ...@@ -31,19 +27,6 @@ branch = master
repository = https://lab.nexedi.com/nexedi/slapos-bin.git repository = https://lab.nexedi.com/nexedi/slapos-bin.git
branch = master branch = master
[wendelin]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
repository = https://lab.nexedi.com/nexedi/wendelin.git
branch = master
[vifib-fix-products-paths]
recipe = plone.recipe.command
stop-on-error = true
command =
for DIR in "${vifib:location}/master"; do cd "$DIR"; rm -f Products ; ln -s product Products; touch product/__init__.py; done
update-command = ${:command}
[eggs] [eggs]
eggs += eggs +=
slapos.core slapos.core
...@@ -55,7 +38,6 @@ dummy += ...@@ -55,7 +38,6 @@ dummy +=
extra-paths += extra-paths +=
${vifib:location}/master ${vifib:location}/master
${slapos-bin:location} ${slapos-bin:location}
${wendelin:location}
### Overwrite recipes to introduce customized changes ### Overwrite recipes to introduce customized changes
......
...@@ -284,14 +284,34 @@ entry-points = ...@@ -284,14 +284,34 @@ entry-points =
python2=${:eggs}:ignored python2=${:eggs}:ignored
python2.7=${:eggs}:ignored python2.7=${:eggs}:ignored
python3=${:eggs}:ignored python3=${:eggs}:ignored
python3.5=${:eggs}:ignored
python3.6=${:eggs}:ignored
python3.7=${:eggs}:ignored
python3.8=${:eggs}:ignored
python3.9=${:eggs}:ignored
python3.10=${:eggs}:ignored
python3.11=${:eggs}:ignored
python3.12=${:eggs}:ignored
python3.13=${:eggs}:ignored
python3.14=${:eggs}:ignored
scripts = scripts =
python python
python2 python2
python2.7 python2.7
python3 python3
python3.5
python3.6
python3.7
python3.8
python3.9
python3.10
python3.11
python3.12
python3.13
python3.14
initialization = initialization =
import sys import sys
print("Error: attempt to use system python", file=sys.stderr) print("Error: attempt to use system python. Executed with: %s" % sys.argv, file=sys.stderr)
sys.exit(2) sys.exit(2)
[recurls-repository] [recurls-repository]
......
...@@ -74,8 +74,7 @@ setup = ${slapcache-repository:location} ...@@ -74,8 +74,7 @@ setup = ${slapcache-repository:location}
[erp5.util-setup] [erp5.util-setup]
<= setup-develop-egg <= setup-develop-egg
# XXX erp5.util does not have `test` extra require, but has a `testnode` extra require with same dependencies egg = erp5.util[test]
egg = erp5.util[testnode]
setup = ${erp5.util-repository:location} setup = ${erp5.util-repository:location}
depends = ${slapos.core-setup:egg} depends = ${slapos.core-setup:egg}
......
...@@ -138,7 +138,7 @@ needs-these-eggs-scripts-in-path = ...@@ -138,7 +138,7 @@ needs-these-eggs-scripts-in-path =
[python-for-buildout-languageserver] [python-for-buildout-languageserver]
<= python-interpreter <= python-interpreter
interpreter = ${:_buildout_section_name_} interpreter = ${:_buildout_section_name_}
executable = ${buildout:bin-directory}/${:interpreter} executable = ${:exe}
eggs += eggs +=
zc.buildout.languageserver zc.buildout.languageserver
......
...@@ -63,8 +63,11 @@ repository_id_list += wendelin ...@@ -63,8 +63,11 @@ repository_id_list += wendelin
list += ${wendelin:location}/bt5 list += ${wendelin:location}/bt5
# Jupyter is by default enabled in Wendelin # Jupyter is by default enabled in Wendelin
# and also the soft limit of open file descriptors is set
# to the hard limit.
[erp5-defaults] [erp5-defaults]
jupyter-enable-default = true jupyter-enable-default = true
nofile-enable-default = true
[wendelin] [wendelin]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
......
...@@ -230,7 +230,7 @@ context = ...@@ -230,7 +230,7 @@ context =
key unixodbc_location unixodbc:location key unixodbc_location unixodbc:location
key wget_location wget:location key wget_location wget:location
key extra_path_list eggs:extra-paths key extra_path_list eggs:extra-paths
key python_executable_for_kernel erp5-python-interpreter-jupyter:interpreter_path key python_executable_for_kernel erp5-python-interpreter-jupyter:exe
key erp5_kernel_location erp5-kernel:location key erp5_kernel_location erp5-kernel:location
key erp5_kernel_filename erp5-kernel:filename key erp5_kernel_filename erp5-kernel:filename
key kernel_json_location kernel-json:location key kernel_json_location kernel-json:location
...@@ -493,7 +493,6 @@ extra-paths += ${eggs:extra-paths} ...@@ -493,7 +493,6 @@ extra-paths += ${eggs:extra-paths}
[erp5-python-interpreter-jupyter] [erp5-python-interpreter-jupyter]
<= erp5-python-interpreter <= erp5-python-interpreter
interpreter = pythonwitheggs_jupyter interpreter = pythonwitheggs_jupyter
interpreter_path = ${buildout:directory}/bin/${:interpreter}
eggs += eggs +=
jupyter_client jupyter_client
jupyter_core jupyter_core
......
...@@ -185,6 +185,7 @@ context = ...@@ -185,6 +185,7 @@ context =
key instance_common_cfg instance-common:output key instance_common_cfg instance-common:output
key jupyter_enable_default erp5-defaults:jupyter-enable-default key jupyter_enable_default erp5-defaults:jupyter-enable-default
key wcfs_enable_default erp5-defaults:wcfs-enable-default key wcfs_enable_default erp5-defaults:wcfs-enable-default
key nofile_enable_default erp5-defaults:nofile-enable-default
key kumo_location kumo:location key kumo_location kumo:location
key local_bt5_repository local-bt5-repository:list key local_bt5_repository local-bt5-repository:list
key logrotate_location logrotate:location key logrotate_location logrotate:location
...@@ -232,7 +233,7 @@ context = ...@@ -232,7 +233,7 @@ context =
key unixodbc_location unixodbc:location key unixodbc_location unixodbc:location
key wget_location wget:location key wget_location wget:location
key extra_path_list eggs:extra-paths key extra_path_list eggs:extra-paths
key python_executable_for_kernel erp5-python-interpreter-jupyter:interpreter_path key python_executable_for_kernel erp5-python-interpreter-jupyter:exe
key erp5_kernel_location erp5-kernel:location key erp5_kernel_location erp5-kernel:location
key erp5_kernel_filename erp5-kernel:filename key erp5_kernel_filename erp5-kernel:filename
key kernel_json_location kernel-json:location key kernel_json_location kernel-json:location
...@@ -338,6 +339,8 @@ cloudooo-connection-url-list = ...@@ -338,6 +339,8 @@ cloudooo-connection-url-list =
jupyter-enable-default = false jupyter-enable-default = false
# WCFS is by default disabled in ERP5 # WCFS is by default disabled in ERP5
wcfs-enable-default = false wcfs-enable-default = false
# nofile option of zopewsgi is disabled in ERP5
nofile-enable-default = false
[erp5] [erp5]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
...@@ -495,7 +498,6 @@ extra-paths += ${eggs:extra-paths} ...@@ -495,7 +498,6 @@ extra-paths += ${eggs:extra-paths}
[erp5-python-interpreter-jupyter] [erp5-python-interpreter-jupyter]
<= erp5-python-interpreter <= erp5-python-interpreter
interpreter = pythonwitheggs_jupyter interpreter = pythonwitheggs_jupyter
interpreter_path = ${buildout:directory}/bin/${:interpreter}
eggs += eggs +=
jupyter_client jupyter_client
jupyter_core jupyter_core
......
...@@ -50,7 +50,7 @@ md5sum = f928b9dc99f7f970caadfe7dd6f95d34 ...@@ -50,7 +50,7 @@ md5sum = f928b9dc99f7f970caadfe7dd6f95d34
[template-postfix] [template-postfix]
filename = instance-postfix.cfg.in filename = instance-postfix.cfg.in
md5sum = 8f7bfca893a01c390df7a3dc9c2410e1 md5sum = b1cdeb8fe02d47c093658b50afa7d6b9
[template-postfix-master-cf] [template-postfix-master-cf]
filename = postfix_master.cf.in filename = postfix_master.cf.in
...@@ -70,11 +70,11 @@ md5sum = b95084ae9eed95a68eada45e28ef0c04 ...@@ -70,11 +70,11 @@ md5sum = b95084ae9eed95a68eada45e28ef0c04
[template] [template]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 3f7b28085ceff321a3cb785db60f7c3e md5sum = 4d4d1accdec116141d8c07d47eb18161
[template-erp5] [template-erp5]
filename = instance-erp5.cfg.in filename = instance-erp5.cfg.in
md5sum = 098e1d02159aeca9b36f2a0726b7b230 md5sum = 631d49d494721c8aabc9f1f061ac4d39
[template-zeo] [template-zeo]
filename = instance-zeo.cfg.in filename = instance-zeo.cfg.in
...@@ -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 = 9e6440425167a506bd473a3697eaa9e6 md5sum = e8e5e0bbfb4d4ceb98ef1eac35ec5178
[template-balancer] [template-balancer]
filename = instance-balancer.cfg.in filename = instance-balancer.cfg.in
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
{% set jupyter_zope_family = jupyter_dict.get('zope-family', '') -%} {% set jupyter_zope_family = jupyter_dict.get('zope-family', '') -%}
{% set wcfs_dict = slapparameter_dict.get('wcfs', {}) -%} {% set wcfs_dict = slapparameter_dict.get('wcfs', {}) -%}
{% set wcfs_enable = wcfs_dict.get('enable', wcfs_enable_default.lower() in ('true', 'yes')) -%} {% set wcfs_enable = wcfs_dict.get('enable', wcfs_enable_default.lower() in ('true', 'yes')) -%}
{% set nofile_enable = slapparameter_dict.get('nofile', nofile_enable_default.lower() in ('true', 'yes')) %}
{% set test_runner_enabled = slapparameter_dict.get('test-runner', {}).get('enabled', True) -%} {% set test_runner_enabled = slapparameter_dict.get('test-runner', {}).get('enabled', True) -%}
{% set test_runner_node_count = slapparameter_dict.get('test-runner', {}).get('node-count', 3) -%} {% set test_runner_node_count = slapparameter_dict.get('test-runner', {}).get('node-count', 3) -%}
{% set test_runner_extra_database_count = slapparameter_dict.get('test-runner', {}).get('extra-database-count', 3) -%} {% set test_runner_extra_database_count = slapparameter_dict.get('test-runner', {}).get('extra-database-count', 3) -%}
...@@ -311,6 +312,7 @@ config-longrequest-logger-interval = {{ dumps(zope_parameter_dict.get('longreque ...@@ -311,6 +312,7 @@ config-longrequest-logger-interval = {{ dumps(zope_parameter_dict.get('longreque
config-longrequest-logger-timeout = {{ dumps(zope_parameter_dict.get('longrequest-logger-timeout', 1)) }} config-longrequest-logger-timeout = {{ dumps(zope_parameter_dict.get('longrequest-logger-timeout', 1)) }}
config-large-file-threshold = {{ dumps(zope_parameter_dict.get('large-file-threshold', "10MB")) }} config-large-file-threshold = {{ dumps(zope_parameter_dict.get('large-file-threshold', "10MB")) }}
config-port-base = {{ dumps(zope_parameter_dict.get('port-base', 2200)) }} config-port-base = {{ dumps(zope_parameter_dict.get('port-base', 2200)) }}
config-nofile = {{ dumps(nofile_enable) }}
{# BBB: zope_parameter_dict used to contain 'webdav', so fallback to it -#} {# BBB: zope_parameter_dict used to contain 'webdav', so fallback to it -#}
config-webdav = {{ dumps(current_zope_family_override_dict.get('webdav', zope_parameter_dict.get('webdav', False))) }} config-webdav = {{ dumps(current_zope_family_override_dict.get('webdav', zope_parameter_dict.get('webdav', False))) }}
config-publisher-timeout = {{ dumps(current_zope_family_override_dict.get('publisher-timeout', global_publisher_timeout)) }} config-publisher-timeout = {{ dumps(current_zope_family_override_dict.get('publisher-timeout', global_publisher_timeout)) }}
......
...@@ -104,7 +104,7 @@ output = ${directory:etc-postfix}/sasl_passwd ...@@ -104,7 +104,7 @@ output = ${directory:etc-postfix}/sasl_passwd
{% if relay -%} {% if relay -%}
inline = {{ "{{ host }} {{ sasl_credential }}" }} inline = {{ "{{ host }} {{ sasl_credential }}" }}
{%- else -%} {%- else -%}
inline = inline = {{ dumps("# empty") }}
{%- endif %} {%- endif %}
context = context =
key host configuration:relayhost key host configuration:relayhost
......
{% from "instance_zodb_base" import zodb_dict with context %} {% from "instance_zodb_base" import zodb_dict with context %}
{% set webdav = slapparameter_dict['webdav'] -%} {% set webdav = slapparameter_dict['webdav'] -%}
{% set nofile = slapparameter_dict['nofile'] -%}
{% set thread_amount = slapparameter_dict['thread-amount'] %} {% set thread_amount = slapparameter_dict['thread-amount'] %}
{% set use_ipv6 = slapparameter_dict.get('use-ipv6', False) -%} {% set use_ipv6 = slapparameter_dict.get('use-ipv6', False) -%}
{% set ports = itertools.count(slapparameter_dict['port-base']) -%} {% set ports = itertools.count(slapparameter_dict['port-base']) -%}
...@@ -346,6 +347,7 @@ wrapped-command-line = ...@@ -346,6 +347,7 @@ wrapped-command-line =
--access-log-file={{ '${' ~ conf_parameter_name ~ ':z2-log}' }} --access-log-file={{ '${' ~ conf_parameter_name ~ ':z2-log}' }}
{% if longrequest_logger_interval > 0 %} --long-request-log-file={{ '${' ~ conf_parameter_name ~ ':longrequest-logger-file}' }} {% endif %} {% if longrequest_logger_interval > 0 %} --long-request-log-file={{ '${' ~ conf_parameter_name ~ ':longrequest-logger-file}' }} {% endif %}
{% if webdav %}-w{% endif %} {% if webdav %}-w{% endif %}
{% if nofile %}--nofile{% endif %}
{{ ipv4 }}:${:port} {{ ipv4 }}:${:port}
{% if timerserver_interval %}--timerserver-interval={{ timerserver_interval }}{% endif %} {% if timerserver_interval %}--timerserver-interval={{ timerserver_interval }}{% endif %}
'${:configuration-file}' '${:configuration-file}'
......
...@@ -43,6 +43,7 @@ init = ...@@ -43,6 +43,7 @@ init =
default-cloudooo-url-list = ${default-cloudooo-url-list:url-list} default-cloudooo-url-list = ${default-cloudooo-url-list:url-list}
jupyter-enable-default = {{ jupyter_enable_default }} jupyter-enable-default = {{ jupyter_enable_default }}
wcfs-enable-default = {{ wcfs_enable_default }} wcfs-enable-default = {{ wcfs_enable_default }}
nofile-enable-default = {{ nofile_enable_default }}
local-bt5-repository = {{ ' '.join(local_bt5_repository.split()) }} local-bt5-repository = {{ ' '.join(local_bt5_repository.split()) }}
[context] [context]
...@@ -58,6 +59,7 @@ extra-context = ...@@ -58,6 +59,7 @@ extra-context =
key default_cloudooo_url_list dynamic-template-erp5-parameters:default-cloudooo-url-list key default_cloudooo_url_list dynamic-template-erp5-parameters:default-cloudooo-url-list
key jupyter_enable_default dynamic-template-erp5-parameters:jupyter-enable-default key jupyter_enable_default dynamic-template-erp5-parameters:jupyter-enable-default
key wcfs_enable_default dynamic-template-erp5-parameters:wcfs-enable-default key wcfs_enable_default dynamic-template-erp5-parameters:wcfs-enable-default
key nofile_enable_default dynamic-template-erp5-parameters:nofile-enable-default
key local_bt5_repository dynamic-template-erp5-parameters:local-bt5-repository key local_bt5_repository dynamic-template-erp5-parameters:local-bt5-repository
key openssl_location :openssl-location key openssl_location :openssl-location
import re re import re re
......
...@@ -369,6 +369,7 @@ importlib-metadata = 1.7.0:whl ...@@ -369,6 +369,7 @@ importlib-metadata = 1.7.0:whl
itsdangerous = 0.24 itsdangerous = 0.24
Jinja2 = 2.11.3 Jinja2 = 2.11.3
jsonschema = 3.0.2:whl jsonschema = 3.0.2:whl
MarkupSafe = 1.0
packaging = 16.8 packaging = 16.8
pyparsing = 2.2.0 pyparsing = 2.2.0
pyrsistent = 0.16.1 pyrsistent = 0.16.1
...@@ -382,9 +383,6 @@ Werkzeug = 1.0.1 ...@@ -382,9 +383,6 @@ Werkzeug = 1.0.1
wheel = 0.35.1:whl wheel = 0.35.1:whl
zipp = 1.2.0:whl zipp = 1.2.0:whl
[versions:sys.version_info < (3,8)]
MarkupSafe = 1.0
[networkcache] [networkcache]
download-cache-url = http://shacache.nxdcdn.com download-cache-url = http://shacache.nxdcdn.com
......
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