Commit c59d6fe8 authored by Joanne Hugé's avatar Joanne Hugé

Update Release Candidate

parents 35e21fdb 18be4815
......@@ -25,6 +25,9 @@ revision =
[python]
part = python2.7
[openssl]
<= openssl-1.1
# we need persistent to be a git checkout because persistent tests want to
# discover in-tree files that are not present in persistent egg when it is
# installed in non-development mode:
......
[buildout]
extends = ../gnu-config/buildout.cfg
parts = attr
[attr]
......@@ -7,6 +7,7 @@ recipe = slapos.recipe.cmmi
shared = true
url = http://download.savannah.gnu.org/releases/attr/attr-2.4.47.src.tar.gz
md5sum = 84f58dec00b60f2dc8fd1c9709291cc7
pre-configure = cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess .
configure-options =
--enable-shared=yes
--enable-gettext=no
......
......@@ -3,6 +3,7 @@ extends =
../bison/buildout.cfg
../gettext/buildout.cfg
../gmp/buildout.cfg
../gnu-config/buildout.cfg
../m4/buildout.cfg
../texinfo/buildout.cfg
......@@ -25,6 +26,8 @@ recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
md5sum = 4125404e41e482ec68282a2e687f6c73
pre-configure =
cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess .
configure-options =
--with-gmp=${gmp:location}
--with-mpfr=${mpfr:location}
......@@ -37,6 +40,8 @@ recipe = slapos.recipe.cmmi
shared = true
url = ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
md5sum = 11436d6b205e516635b666090b94ab32
pre-configure =
cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess .
configure-options =
--with-gmp-prefix=${gmp:location}
--disable-static
......@@ -46,8 +51,8 @@ environment =
[binutils]
recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnu.org/gnu/binutils/binutils-2.40.tar.bz2
md5sum = fe10027c8de77b643ae72bd6de3f7996
url = https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz
md5sum = a075178a9646551379bfb64040487715
configure-options =
--disable-bootstrap
--with-mpc=${mpc:location}
......
......@@ -9,8 +9,8 @@ extends =
[boost-lib]
recipe = slapos.recipe.cmmi
shared = true
url = https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
md5sum = db0112a3a37a3742326471d20f1a186a
url = https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.tar.bz2
md5sum = 429d451cb9197143cc77962c5ff272ef
location = @@LOCATION@@
configure-command = ./bootstrap.sh --prefix=${:location} --without-icu $${PYTHON:+--with-python=$PYTHON}
make-binary =
......
......@@ -11,4 +11,4 @@ configure-command = true
make-options =
PREFIX=@@LOCATION@@
CFLAGS="-fpic -fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64"
post-make-hook = ${:_profile_base_location_}/bzip2-hooks.py#785148a77f1a8456d914aa02ddf9d410:post_make_hook
post-make-hook = ${:_profile_base_location_}/bzip2-hooks.py#a02da93bc8ff337a1d590f265e220528:post_make_hook
......@@ -13,6 +13,7 @@ def post_make_hook(options, buildout):
os.unlink(f)
shutil.copyfile(os.path.join(os.curdir, original), os.path.join(destination,
original))
os.chmod(os.path.join(destination, original), 0o555)
for link in link_list:
os.symlink(original, os.path.join(destination,
......
......@@ -17,8 +17,7 @@ extends =
../fontconfig/buildout.cfg
../gettext/buildout.cfg
../glib/buildout.cfg
../gtk-2/buildout.cfg
../gtk-3/buildout.cfg
../gtk/buildout.cfg
../libexpat/buildout.cfg
../libffi/buildout.cfg
../libpng/buildout.cfg
......
......@@ -9,8 +9,8 @@ parts =
[cmake]
recipe = slapos.recipe.cmmi
shared = true
url = https://cmake.org/files/v3.23/cmake-3.23.2.tar.gz
md5sum = ab3c9ed9578cdb496a252c6733989d78
url = https://cmake.org/files/v3.29/cmake-3.29.3.tar.gz
md5sum = cadecde55a73dcc9cf0c7e8c09dcdfff
environment =
CMAKE_INCLUDE_PATH=${ncurses:location}/include:${openssl:location}/include
CMAKE_LIBRARY_PATH=${ncurses:location}/lib:${openssl:location}/lib
......@@ -16,6 +16,7 @@ configure-options =
--disable-libcap
--without-selinux
--prefix=@@LOCATION@@
--with-openssl=no
environment =
PATH=${patch:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
LDFLAGS=-Wl,--as-needed -L${gmp:location}/lib -Wl,-rpath=${gmp:location}/lib
......
......@@ -8,12 +8,13 @@ parts = dcron-output
[dcron]
recipe = slapos.recipe.cmmi
shared = false
url = http://www.jimpryor.net/linux/releases/dcron-4.5.tar.gz
md5sum = 078833f3281f96944fc30392b1888326
url = https://github.com/ptchinster/dcron/archive/refs/tags/v4.6.zip
md5sum = d5bd12863547daf499187bc9b4e863a8
configure-command = true
patch-binary = ${patch:location}/bin/patch
patches =
${:_profile_base_location_}/noroot-no-globals.patch#623379916f48bd8292a28057c8bd30f7
${:_profile_base_location_}/noroot-no-globals.patch#cd8d0f6d1d2ee133d6341d1515832c0d
${:_profile_base_location_}/support_old_gcc.patch#4dc8c81b1d94474c3c15e0db7b5b60de
patch-options = -p1
make-options =
PREFIX=${buildout:parts-directory}/${:_buildout_section_name_}
......
--- dcron-4.5/chuser.c
+++ dcron-4.5/chuser.c
@@ -14,6 +14,7 @@
diff --git a/chuser.c b/chuser.c
index 0d79dbc..ccc3acc 100644
--- a/chuser.c
+++ b/chuser.c
@@ -11,6 +11,7 @@
Prototype int ChangeUser(const char *user, char *dochdir);
+#if 0
int
ChangeUser(const char *user, char *dochdir)
{
+#if 0
struct passwd *pas;
/*
@@ -57,5 +58,8 @@
@@ -57,5 +58,7 @@ ChangeUser(const char *user, char *dochdir)
}
}
return(pas->pw_uid);
+#else
+ return getpwnam(user);
+#endif
}
+#endif
--- dcron-4.5/crontab.c
+++ dcron-4.5/crontab.c
@@ -88,7 +88,7 @@
diff --git a/crontab.c b/crontab.c
index b29e0d2..06df70f 100644
--- a/crontab.c
+++ b/crontab.c
@@ -88,7 +88,7 @@ main(int ac, char **av)
break;
case 'c':
/* getopt guarantees optarg != 0 here */
......@@ -27,8 +30,8 @@
+ if (*optarg != 0) {
CDir = optarg;
} else {
printlogf(0, "-c option: superuser only");
@@ -316,9 +316,6 @@
printlogf(0, "-c option: superuser only\n");
@@ -318,9 +318,6 @@ GetReplaceStream(const char *user, const char *file)
close(filedes[0]);
......@@ -38,7 +41,7 @@
fd = open(file, O_RDONLY);
if (fd < 0) {
printlogf(0, "unable to open %s: %s", file, strerror(errno));
@@ -344,8 +341,6 @@
@@ -346,8 +343,6 @@ EditFile(const char *user, const char *file)
const char *ptr;
char visual[SMALL_BUFFER];
......@@ -47,9 +50,11 @@
if ((ptr = getenv("EDITOR")) == NULL || strlen(ptr) >= sizeof(visual))
if ((ptr = getenv("VISUAL")) == NULL || strlen(ptr) >= sizeof(visual))
ptr = PATH_VI;
--- dcron-4.5/job.c
+++ dcron-4.5/job.c
@@ -62,14 +62,6 @@
diff --git a/job.c b/job.c
index b5e02de..79650c2 100644
--- a/job.c
+++ b/job.c
@@ -63,14 +63,6 @@ RunJob(CronFile *file, CronLine *line)
* Change running state to the user in question
*/
......@@ -64,7 +69,7 @@
/* from this point we are unpriviledged */
if (DebugOpt)
@@ -295,14 +287,6 @@
@@ -296,14 +288,6 @@ EndJob(CronFile *file, CronLine *line, int exit_status)
* by the mailing and we already verified the mail file.
*/
......@@ -79,9 +84,11 @@
/* from this point we are unpriviledged */
/*
--- dcron-4.5/Makefile
+++ dcron-4.5/Makefile
@@ -3,7 +3,6 @@
diff --git a/Makefile b/Makefile
index 547febc..13829e6 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,6 @@ VERSION = 4.5
# these variables can be configured by e.g. `make SCRONTABS=/different/path`
PREFIX = /usr/local
......@@ -89,7 +96,7 @@
SCRONTABS = /etc/cron.d
CRONTABS = /var/spool/cron/crontabs
CRONSTAMPS = /var/spool/cron/cronstamps
@@ -20,10 +19,10 @@
@@ -20,10 +19,10 @@ MANDIR = $(PREFIX)/share/man
SHELL = /bin/sh
......@@ -101,9 +108,9 @@
+INSTALL_DATA = $(INSTALL) -D -m0644
+INSTALL_DIR = $(INSTALL) -d -m0755
CFLAGS ?= -O2
CFLAGS += -Wall -Wstrict-prototypes -Wno-missing-field-initializers
SRCS = main.c subs.c database.c job.c concat.c chuser.c
@@ -45,7 +44,6 @@
CFLAGS += -Wall -Wextra -Wstrict-prototypes -Wno-missing-field-initializers -Wfloat-equal -fstack-protector-all -Wformat-security -Wformat=2 -fPIE
CFLAGS += -Wl,-z,nodump -Wl,-z,noexecstack -Wl,-z,noexecheap -Wl,-z,relro -Wl,-z,now -Wl,-z,nodlopen -Wl,-z,-pie
@@ -47,7 +46,6 @@ all: $(PROTOS) crond crontab ;
echo "SBINDIR = $(SBINDIR)" >> config
echo "BINDIR = $(BINDIR)" >> config
echo "MANDIR = $(MANDIR)" >> config
......@@ -111,7 +118,7 @@
echo "SCRONTABS = $(SCRONTABS)" >> config
echo "CRONTABS = $(CRONTABS)" >> config
echo "CRONSTAMPS = $(CRONSTAMPS)" >> config
@@ -63,13 +61,10 @@
@@ -65,13 +63,10 @@ crontab: $(TABOBJS)
$(CC) $(CFLAGS) $(CPPFLAGS) -c $(DEFS) $< -o $@
install:
......
diff --git a/main.c b/main.c
diff --git a/main.c b/main.c
index dcf3f23..3eb6332 100644
--- a/main.c
+++ b/main.c
@@ -130,7 +130,7 @@ main(int ac, char **av)
case 'd':
DebugOpt = 1;
LogLevel = LOG_DEBUG;
- [[fallthrough]]; //fall through to include f too
+ __attribute__((fallthrough)); //fall through to include f too
case 'f':
ForegroundOpt = 1;
break;
[buildout]
parts =
double-conversion
extends =
../cmake/buildout.cfg
[double-conversion]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/google/double-conversion/archive/refs/tags/v3.3.0.tar.gz
md5sum = b344abb64084a4a1d98a43e67752989b
location = @@LOCATION@@
configure-command = cmake
configure-options =
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@
environment =
PATH=${cmake:location}/bin:%(PATH)s
......@@ -103,6 +103,8 @@ configure-options =
recipe = slapos.recipe.cmmi
url = https://ffmpeg.org/releases/ffmpeg-4.1.4.tar.bz2
md5sum = 611d171e4aee749b85e04d17e2aee71d
patches = https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/effadce6c756247ea8bae32dc13bb3e6f464f0eb#adf42203d59a3c98a863216113946661
patch-options = -p1
location = @@LOCATION@@
pkg_config_depends = ${libxcb:location}/lib/pkgconfig:${libxcb:pkg_config_depends}:${libtheora:location}/lib/pkgconfig:${libtheora:pkg_config_depends}:${libvpx:location}/lib/pkgconfig:${libx264:location}/lib/pkgconfig:${opencore-amr:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig
configure-options =
......@@ -128,4 +130,4 @@ environment =
PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${bzip2:location}/include -I${libogg:location}/include -I${libtheora:location}/include -I${opencore-amr:location}/include -I${lame:location}/include
LDFLAGS=-Wl,-rpath=${:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${libxcb:location}/lib -L${libogg:location}/lib -L${libvorbis:location}/lib -Wl,-rpath=${libvorbis:location}/lib -L${libtheora:location}/lib -Wl,-rpath=${libtheora:location}/lib -L${libvpx:location}/lib -Wl,-rpath=${libvpx:location}/lib -L${libx264:location}/lib -Wl,-rpath=${libx264:location}/lib -L${lame:location}/lib -Wl,-rpath=${lame:location}/lib -L${opencore-amr:location}/lib -Wl,-rpath=${opencore-amr:location}/lib -Wl,-rpath=${zlib:location}/lib
PATH=${pkgconfig:location}/bin:${yasm:location}/bin:%(PATH)s
PATH=${patch:location}/bin:${pkgconfig:location}/bin:${yasm:location}/bin:%(PATH)s
......@@ -7,6 +7,7 @@ extends =
../bzip2/buildout.cfg
../xz-utils/buildout.cfg
../zlib/buildout.cfg
../zstd/buildout.cfg
[file]
recipe = slapos.recipe.cmmi
......@@ -19,6 +20,7 @@ configure-options =
--enable-zlib
--enable-bzlib
--enable-xzlib
--enable-zstdlib
environment =
CPPFLAGS=-I${bzip2:location}/include -I${xz-utils:location}/include -I${zlib:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${xz-utils:location}/lib -Wl,-rpath=${xz-utils:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
CPPFLAGS=-I${bzip2:location}/include -I${xz-utils:location}/include -I${zlib:location}/include -I${zstd:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${xz-utils:location}/lib -Wl,-rpath=${xz-utils:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${zstd:location}/lib -Wl,-rpath=${zstd:location}/lib
......@@ -4,8 +4,7 @@ extends =
../dbus/buildout.cfg
../fontconfig/buildout.cfg
../fonts/buildout.cfg
../gtk-2/buildout.cfg
../gtk-3/buildout.cfg
../gtk/buildout.cfg
../libffi/buildout.cfg
../libpng/buildout.cfg
../mesa/buildout.cfg
......@@ -123,7 +122,6 @@ library =
${gdk-pixbuf:location}/lib
${gettext:location}/lib
${glib:location}/lib
${gtk-2:location}/lib
${gtk-3:location}/lib
${harfbuzz:location}/lib
${libepoxy:location}/lib
......
......@@ -4,7 +4,7 @@ extends =
../glib/buildout.cfg
../libpng/buildout.cfg
../xorg/buildout.cfg
../gtk-2/buildout.cfg
../gtk/buildout.cfg
parts =
fluxbox
......
......@@ -15,7 +15,7 @@ parts =
[gcc-common]
recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnu.org/gnu/gcc/gcc-${:version}/gcc-${:version}.tar.xz
url = https://ftp.gnu.org/gnu/gcc/gcc-${:version}/gcc-${:version}.tar.xz
pre-configure =
set %(location)s/bin
mkdir -p $1
......@@ -28,6 +28,7 @@ configure-options =
--with-gmp=${gmp:location}
--with-mpfr=${mpfr:location}
--with-mpc=${mpc:location}
--enable-default-pie
--enable-languages="c,c++,fortran"
--with-isl=${isl:location}
--with-ld=@@LOCATION@@/bin/ld
......@@ -67,8 +68,17 @@ extra-configure-options =
<= gcc-common
version = 8.5.0
md5sum = 0c1f625768840187ef3b10adebe8e3b0
patch-binary = ${patch:location}/bin/patch
patch-options = -p1
patches =
${:_profile_base_location_}/gcc-libsanitizer-multiple-definition-fsconfig_command.patch#2135c53c901d67ce230f5c94352b7780
[gcc-10.5]
<= gcc-common
version = 10.5.0
md5sum = c7d1958570fbd1cd859b015774b9987a
[gcc-12.3]
<= gcc-common
version = 12.3.0
md5sum = 58a863b2a50e4d42eacc20fec419bc3b
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -65,7 +65,6 @@
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
-#include <linux/fs.h>
#include <linux/hdreg.h>
#include <linux/input.h>
#include <linux/ioctl.h>
@@ -855,10 +854,10 @@
unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
#endif
- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
+ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long);
+ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long);
+ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long);
+ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long);
unsigned IOCTL_GIO_CMAP = GIO_CMAP;
unsigned IOCTL_GIO_FONT = GIO_FONT;
unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
......@@ -6,7 +6,6 @@ extends =
../libjpeg/buildout.cfg
../libtiff/buildout.cfg
../libxml2/buildout.cfg
../patch/buildout.cfg
../pkgconfig/buildout.cfg
../tesseract/buildout.cfg
../xz-utils/buildout.cfg
......@@ -16,8 +15,8 @@ parts = ghostscript
[ghostscript]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10021/ghostscript-10.02.1.tar.xz
md5sum = 26c0cbfa2e09da97f1fc78728048ada8
url = https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10031/ghostscript-10.03.1.tar.gz
md5sum = 01c515f190de2d8dcce4767407720855
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 //
configure-options =
......@@ -28,14 +27,11 @@ configure-options =
--with-drivers=FILES
--with-tessdata=$(python -c 'print("""${:tessdata-location}""".replace("//", "/"))')
environment =
PATH=${patch:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PATH=${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
CFLAGS=-I${libjpeg:location}/include
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=${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.
# We remove this local jpeg library source folder so that configure picks up the slapos versions of these libraries.
pre-configure = rm -r jpeg
......
......@@ -6,7 +6,7 @@ parts =
graphviz
extends =
../bzip2/buildout.cfg
../gtk-2/buildout.cfg
../gtk/buildout.cfg
../pkgconfig/buildout.cfg
../zlib/buildout.cfg
../libexpat/buildout.cfg
......@@ -61,4 +61,4 @@ environment =
PATH=${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${zlib:location}/include -I${libexpat:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libexpat:location}/lib -Wl,-rpath=${libexpat:location}/lib -Wl,-rpath=${glib:location}/lib
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libexpat:location}/lib -Wl,-rpath=${libexpat:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${pango:location}/lib
[buildout]
extends =
../dbus/buildout.cfg
../gettext/buildout.cfg
../glib/buildout.cfg
../gtk-2/buildout.cfg
../intltool/buildout.cfg
../libepoxy/buildout.cfg
../perl/buildout.cfg
../perl-XML-Parser/buildout.cfg
../meson/buildout.cfg
../nodejs/buildout.cfg
../ninja/buildout.cfg
../python3/buildout.cfg
../xorg/buildout.cfg
[at-spi2-core]
recipe = slapos.recipe.cmmi
shared = true
url =http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/at-spi2-core-2.22.0.tar.xz
md5sum = 3da5fe62a653e49dad1c47f9a46fee56
configure-options =
--disable-gtk-doc-html
environment =
PATH=${dbus:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${perl-XML-Parser:perl-PATH}:${pkgconfig:location}/bin:${xz-utils:location}/bin:${python3:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${dbus:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}
CPPFLAGS=-I${inputproto:location}/include -I${xorgproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${libXtst:location}/include -I${xextproto:location}/include -I${xproto:location}/include
LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXi:location}/lib -Wl,-rpath=${libXi:location}/lib -L${libXtst:location}/lib -Wl,-rpath=${libXtst:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${glib:location}/lib
[at-spi2-atk]
recipe = slapos.recipe.cmmi
shared = true
url =http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/at-spi2-atk-2.22.0.tar.xz
md5sum = aa62aed21b8e03dc44ab81ae49d893ca
environment =
PATH=${intltool:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${atk:location}/lib/pkgconfig:${at-spi2-core:location}/lib/pkgconfig:${dbus:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${glib:location}/lib -Wl,-rpath=${atk:location}/lib
[gtk-materia-theme]
recipe = slapos.recipe.cmmi
url = https://github.com/nana-4/materia-theme/archive/eb83bc174fad52cba9541efa78587664ca19542c.tar.gz
md5sum = 7072e92f8395770f0ebb43403bd754cc
configure-command =
meson _build -Dprefix="@@LOCATION@@" -Dcolors=default,light,dark -Dsizes=default,compact
make-targets =
make-binary = meson install -C _build
environment =
PATH=${ninja:location}/bin:${meson:location}/bin:${glib:location}/bin:${nodejs:location}/bin:%(PATH)s
[gtk-3]
recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/gtk+-3.22.3.tar.xz
md5sum = f0e6492896a2ca244501142319adaa95
pkg_config_depends = ${at-spi2-atk:location}/lib/pkgconfig:${at-spi2-core:location}/lib/pkgconfig:${dbus:location}/lib/pkgconfig:${libepoxy:location}/lib/pkgconfig:${pango:location}/lib/pkgconfig:${pango:pkg_config_depends}:${atk:location}/lib/pkgconfig:${gdk-pixbuf:location}/lib/pkgconfig:${gdk-pixbuf:pkg_config_depends}:${libXi:pkg_config_depends}:${libXi:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${xorgproto:location}/share/pkgconfig:${libXext:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libXrender:location}/lib/pkgconfig:${renderproto:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${xcbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libXinerama:location}/lib/pkgconfig:${libXrandr:pkg_config_depends}:${libXrandr:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${libXcomposite:location}/lib/pkgconfig:${xdamage:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xorgproto:location}/share/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${compositeproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libXau:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xproto:location}/lib/pkgconfig:${damageproto:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${xorgproto:location}/share/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig
configure-options =
--disable-static
--disable-glibtest
--disable-cups
--disable-papi
--enable-explicit-deps
--disable-gtk-doc-html
--disable-man
--enable-x11-backend
--enable-xrandr
--enable-xfixes
--enable-xcomposite
--enable-xdamage
environment =
PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${python3:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
# not taken from pkg-config result...
CPPFLAGS=-I${cairo:location}/include -I${inputproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${xproto:location}/include -I${xorgproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include -I${libX11:location}/include -I${libXinerama:location}/include -I${gdk-pixbuf:location}/include -I${libXrandr:location}/include -I${xfixes:location}/include -I${libXcomposite:location}/include -I${xdamage:location}/include
LDFLAGS=-L${libX11:location}/lib -L${libXi:location}/lib -L${libXext:location}/lib -L${libXrender:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXinerama:location}/lib -Wl,-rpath=${libXinerama:location}/lib -L${gdk-pixbuf:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${libXrandr:location}/lib -Wl,-rpath=${libXrandr:location}/lib -L${xfixes:location}/lib -Wl,-rpath=${xfixes:location}/lib -L${libXcomposite:location}/lib -Wl,-rpath=${libXcomposite:location}/lib -L${xdamage:location}/lib -Wl,-rpath=${xdamage:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${atk:location}/lib
LD_LIBRARY_PATH=${atk:location}/lib
......@@ -4,7 +4,8 @@ extends =
../freetype/buildout.cfg
../gettext/buildout.cfg
../glibmm/buildout.cfg
../gtk-2/buildout.cfg
../gtk/buildout.cfg
../libsigc/buildout.cfg
../perl/buildout.cfg
../xorg/buildout.cfg
../xz-utils/buildout.cfg
......@@ -30,41 +31,41 @@ environment =
[pangomm]
recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/pangomm-2.40.1.tar.xz
md5sum = 874eadd9434613dbacf0272c82c3ac23
url = https://download.gnome.org/core/44/44.10/sources/pangomm-2.46.4.tar.xz
md5sum = 5947d35899db62813531d7ea8faee60c
pkg_config_depends = ${pango:location}/lib/pkgconfig:${pango:pkg_config_depends}:${glibmm:location}/lib/pkgconfig:${glibmm:pkg_config_depends}:${cairomm:location}/lib/pkgconfig
configure-options =
--disable-static
--disable-documentation
configure-command =
meson builddir --libdir=lib -Dprefix="@@LOCATION@@" -Dbuild-documentation=false
make-binary = ninja -C builddir
environment =
PATH=${glib:location}/bin:${freetype:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PATH=${glib:location}/bin:${freetype:location}/bin:${meson:location}/bin:${ninja:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${glibmm:location}/lib
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${glibmm:location}/lib -Wl,-rpath=${pango:location}/lib -L${glibmm:location}/lib -Wl,-rpath=${libsigc:location}/lib -Wl,-rpath=${cairo:location}/lib -Wl,-rpath=${cairomm:location}/lib
[atkmm]
recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/atkmm-2.24.2.tar.xz
md5sum = d53b60b0f1be597e86070954a49cf0c3
url = https://download.gnome.org/core/44/44.10/sources/atkmm-2.28.4.tar.xz
md5sum = e0f7271990c89a6c9987f215ba47bfc5
pkg_config_depends = ${atk:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glib:pkg_config_depends}:${glibmm:location}/lib/pkgconfig:${libsigc:location}/lib/pkgconfig
configure-options =
--disable-static
--disable-documentation
configure-command =
meson builddir --libdir=lib -Dprefix="@@LOCATION@@" -Dbuild-documentation=false
make-binary = ninja -C builddir
environment =
PATH=${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PATH=${glib:location}/bin:${meson:location}/bin:${ninja:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${atk:location}/lib -Wl,-rpath=${glibmm:location}/lib
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${atk:location}/lib -Wl,-rpath=${glibmm:location}/lib -L${glibmm:location}/lib -Wl,-rpath=${libsigc:location}/lib
[gtkmm]
recipe = slapos.recipe.cmmi
shared = true
url = http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.24/gtkmm-2.24.5.tar.xz
md5sum = 6c59ae8bbff48fad9132f23af347acf1
pkg_config_depends = ${pangomm:location}/lib/pkgconfig:${pangomm:pkg_config_depends}:${atkmm:location}/lib/pkgconfig:${atkmm:pkg_config_depends}:${gtk-2:location}/lib/pkgconfig:${gtk-2:pkg_config_depends}
configure-options =
--disable-static
--disable-documentation
url = https://download.gnome.org/core/44/44.10/sources/gtkmm-3.24.9.tar.xz
md5sum = 47871a7973e186c1189b2145b507de15
pkg_config_depends = ${pangomm:location}/lib/pkgconfig:${pangomm:pkg_config_depends}:${atkmm:location}/lib/pkgconfig:${atkmm:pkg_config_depends}:${gtk-3:location}/lib/pkgconfig:${gtk-3:pkg_config_depends}
configure-command =
meson builddir --libdir=lib -Dprefix="@@LOCATION@@" -Dbuild-documentation=false -Dbuild-demos=false -Dbuild-tests=false
make-binary = ninja -C builddir
environment =
PATH=${gdk-pixbuf:location}/bin:${glib:location}/bin:${gtk-2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PATH=${gdk-pixbuf:location}/bin:${glib:location}/bin:${gtk-3:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${meson:location}/bin:${ninja:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${atk:location}/lib -Wl,-rpath=${glibmm:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib
LDFLAGS=-Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${atk:location}/lib -Wl,-rpath=${glibmm:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${glibmm:location}/lib -Wl,-rpath=${atkmm:location}/lib -Wl,-rpath=${cairomm:location}/lib -Wl,-rpath=${gtk-3:location}/lib -Wl,-rpath=${libsigc:location}/lib -Wl,-rpath=${pangomm:location}/lib -Wl,-rpath=@@LOCATION@@/lib
[buildout]
extends = ../gnu-config/buildout.cfg
parts = icu4c
[icu4c]
......@@ -7,6 +8,7 @@ shared = true
location = @@LOCATION@@
url = https://github.com/unicode-org/icu/releases/download/release-58-2/icu4c-58_2-src.tgz
md5sum = fac212b32b7ec7ab007a12dff1f3aea1
pre-configure = cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess source/
configure-command = source/configure
configure-options =
--prefix=${:location}
......
......@@ -29,9 +29,6 @@ version = 7.1.1-20
url = https://www.imagemagick.org/download/releases/ImageMagick-${:version}.tar.xz
md5sum = 4ce5c6854c1f8ab6ce5571a9377b1f2f
pkg_config_depends = ${fontconfig:location}/lib/pkgconfig:${fontconfig:pkg_config_depends}:${lcms2:location}/lib/pkgconfig:${libtiff:location}/lib/pkgconfig:${xz-utils:location}/lib/pkgconfig
# Change export-filename to export-png for inkscape < 1.0
pre-configure =
sed -i -e 's,--export-filename=,--export-png=,' config/delegates.xml.in
configure-options =
--disable-static
--without-x
......
......@@ -4,11 +4,13 @@ extends =
../boost-lib/buildout.cfg
../bzip2/buildout.cfg
../cmake/buildout.cfg
../double-conversion/buildout.cfg
../freetype/buildout.cfg
../garbage-collector/buildout.cfg
../gettext/buildout.cfg
../gcc/buildout.cfg
../glibmm/buildout.cfg
../gtk-2/buildout.cfg
../gtk/buildout.cfg
../gtkmm/buildout.cfg
../intltool/buildout.cfg
../lcms/buildout.cfg
......@@ -20,9 +22,11 @@ extends =
../patch/buildout.cfg
../perl/buildout.cfg
../pkgconfig/buildout.cfg
../potrace/buildout.cfg
../python3/buildout.cfg
../popt/buildout.cfg
../xorg/buildout.cfg
../xz-utils/buildout.cfg
../zlib/buildout.cfg
../defaults.cfg
......@@ -44,12 +48,13 @@ environment =
[inkscape]
recipe = slapos.recipe.cmmi
shared = true
url = https://media.inkscape.org/dl/resources/file/inkscape-0.92.5.tar.bz2
md5sum = 592c0e94cf00ea9e0a8901883d8f06fd
patch-options = -p1
patches =
${:_profile_base_location_}/inkscape-0.92.5-py3.patch#9407a330c68690b2050f159d0aefb1f7
pkg_config_depends = ${freetype:location}/lib/pkgconfig:${gtkmm:location}/lib/pkgconfig:${gtkmm:pkg_config_depends}:${gsl:location}/lib/pkgconfig:${popt:location}/lib/pkgconfig:${garbage-collector:location}/lib/pkgconfig:${libxslt:location}/lib/pkgconfig
url = https://media.inkscape.org/dl/resources/file/inkscape-1.3.2.tar.xz
md5sum = 76ed1f4b13065e80de8b2d77b6427b83
pkg_config_depends = ${freetype:location}/lib/pkgconfig:${gtkmm:location}/lib/pkgconfig:${gtkmm:pkg_config_depends}:${gsl:location}/lib/pkgconfig:${popt:location}/lib/pkgconfig:${garbage-collector:location}/lib/pkgconfig:${libxslt:location}/lib/pkgconfig:${lcms2:location}/lib/pkgconfig:${libsoup:location}/lib/pkgconfig:${libsoup:pkg_config_depends}
pre-configure =
sed -ie 's,#include <cairo/,#include <,' src/display/control/canvas-item-rect.cpp
sed -ie 's,#include <harfbuzz/,#include <,' src/libnrtype/font-instance.cpp src/libnrtype/OpenTypeUtil.cpp
sed -ie 's,#include <libxml2/,#include <,' src/inkscape-version-info.cpp
configure-command = ${cmake:location}/bin/cmake
configure-options =
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@
......@@ -59,9 +64,16 @@ configure-options =
-DWITH_LIBCDR=OFF
-DWITH_LIBVISIO=OFF
-DWITH_LIBWPG=OFF
-DWITH_X11=OFF
environment =
PATH=${cmake:location}/bin:${freetype:location}/bin:${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${libxml2:location}/bin:${pango:location}/bin:${patch:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${python3:location}/bin:%(PATH)s
PATH=${cmake:location}/bin:${freetype:location}/bin:${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${libxml2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${python3:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include
CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib
LDFLAGS=-L${atk:location}/lib -Wl,-rpath=${atk:location}/lib -L${atkmm:location}/lib -Wl,-rpath=${atkmm:location}/lib -L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${cairo:location}/lib -Wl,-rpath=${cairo:location}/lib -L${cairomm:location}/lib -Wl,-rpath=${cairomm:location}/lib -L${fontconfig:location}/lib -Wl,-rpath=${fontconfig:location}/lib -L${freetype:location}/lib -Wl,-rpath=${freetype:location}/lib -L${garbage-collector:location}/lib -Wl,-rpath=${garbage-collector:location}/lib -L${gdk-pixbuf:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${glibmm:location}/lib -Wl,-rpath=${glibmm:location}/lib -L${gsl:location}/lib -Wl,-rpath=${gsl:location}/lib -L${gtk-2:location}/lib -Wl,-rpath=${gtk-2:location}/lib -L${gtkmm:location}/lib -Wl,-rpath=${gtkmm:location}/lib -L${lcms2:location}/lib -Wl,-rpath=${lcms2:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib -L${libjpeg:location}/lib -Wl,-rpath=${libjpeg:location}/lib -L${libpng:location}/lib -Wl,-rpath=${libpng:location}/lib -L${libsigc:location}/lib -Wl,-rpath=${libsigc:location}/lib -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${libxslt:location}/lib -Wl,-rpath=${libxslt:location}/lib -L${pango:location}/lib -Wl,-rpath=${pango:location}/lib -L${pangomm:location}/lib -Wl,-rpath=${pangomm:location}/lib -L${popt:location}/lib -Wl,-rpath=${popt:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
DEVLIBS_PATH=${potrace:location}
CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${double-conversion:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include
CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${double-conversion:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib
LDFLAGS=-Wl,-rpath=${atk:location}/lib -Wl,-rpath=${atkmm:location}/lib -L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${cairo:location}/lib -Wl,-rpath=${cairomm:location}/lib -Wl,-rpath=${double-conversion:location}/lib -Wl,-rpath=${fontconfig:location}/lib -Wl,-rpath=${freetype:location}/lib -L${garbage-collector:location}/lib -Wl,-rpath=${garbage-collector:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${glib:location}/lib -Wl,-rpath=${glibmm:location}/lib -L${gsl:location}/lib -Wl,-rpath=${gsl:location}/lib -Wl,-rpath=${gtk-3:location}/lib -Wl,-rpath=${gtkmm:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=${potrace:location}/lib -Wl,-rpath=${lcms2:location}/lib -Wl,-rpath=${libX11:location}/lib -Wl,-rpath=${libXext:location}/lib -Wl,-rpath=${libepoxy:location}/lib -Wl,-rpath=${libjpeg:location}/lib -Wl,-rpath=${libpng:location}/lib -L${libsigc:location}/lib -Wl,-rpath=${libsigc:location}/lib -Wl,-rpath=${libsoup:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${libxslt:location}/lib -Wl,-rpath=${libxslt:location}/lib -Wl,-rpath=${pango:location}/lib -Wl,-rpath=${pangomm:location}/lib -L${popt:location}/lib -Wl,-rpath=${popt:location}/lib -Wl,-rpath=${potrace:location}/lib -Wl,-rpath=${zlib:location}/lib
[inkscape:python2]
environment +=
CC=${gcc-10.5:location}/bin/gcc
CXX=${gcc-10.5:location}/bin/g++
......@@ -7,11 +7,11 @@ parts =
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/jemalloc/jemalloc/releases/download/${:version}/jemalloc-${:version}.tar.bz2
version = 3.6.0
md5sum = e76665b63a8fddf4c9f26d2fa67afdf2
version = 5.3.0
md5sum = 09a8328574dab22a7df848eae6dbbf53
configure-options =
--disable-static
--enable-readline
--disable-initial-exec-tls
environment =
CPPFLAGS=-I${readline:location}/include -I${ncurses:location}/include
LDFLAGS=-L@@LOCATION@@ -Wl,-rpath=${readline:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${readline:location}/lib -L${ncurses:location}/lib
......@@ -49,6 +49,7 @@ eggs =
openpyxl
sympy
xlrd
lxml-html-clean
# additional eggs for jupyterlab
jupyterlab
jupyterlab-launcher
......
......@@ -3,6 +3,7 @@
[buildout]
extends =
../gnu-config/buildout.cfg
../jbigkit/buildout.cfg
../libjpeg/buildout.cfg
../libtiff/buildout.cfg
......@@ -16,6 +17,7 @@ recipe = slapos.recipe.cmmi
shared = true
url = http://downloads.sourceforge.net/project/lcms/lcms/2.8/lcms2-2.8.tar.gz
md5sum = 87a5913f1a52464190bb655ad230539c
pre-configure = cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess .
configure-options =
--disable-static
environment =
......
......@@ -23,10 +23,10 @@ make-options =
environment =
PATH=${gperf:location}/bin:%(PATH)s
# if lib64 exists, then create a symlink from lib to lib64
# if lib doesn't exist, then create a symlink 'lib' pointing to lib64
post-install =
cd ${:location}
[ -d lib64 ] && ln -s lib64 lib
[ -d lib ] || ln -s lib64 lib
[libcap]
<= libcap2
[buildout]
extends =
../lunzip/buildout.cfg
../pkgconfig/buildout.cfg
[libpsl]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.lz
md5sum = ae11292a00af33f91af16acc04f6049b
configure-options =
--disable-static
--disable-gtk-doc-html
environment =
PATH=${lunzip:location}/bin:=${pkgconfig:location}/bin:%(PATH)s
......@@ -2,7 +2,7 @@
parts = librsvg
extends =
../bzip2/buildout.cfg
../gtk-2/buildout.cfg
../gtk/buildout.cfg
../libxml2/buildout.cfg
../pkgconfig/buildout.cfg
../xz-utils/buildout.cfg
......
[buildout]
extends =
../libjpeg/buildout.cfg
../gnu-config/buildout.cfg
../jbigkit/buildout.cfg
../libjpeg/buildout.cfg
../patch/buildout.cfg
../zlib/buildout.cfg
......@@ -13,6 +14,7 @@ recipe = slapos.recipe.cmmi
shared = true
url = http://download.osgeo.org/libtiff/tiff-4.2.0.tar.gz
md5sum = 2bbf6db1ddc4a59c89d6986b368fc063
pre-configure = cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess config/
configure-options =
--disable-static
--without-x
......
......@@ -31,6 +31,6 @@ depends = ${python-prctl:egg}
[nxdtest-repository]
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/nxdtest.git
revision = 56e52da6
revision = 19c7022c
location = ${buildout:parts-directory}/nxdtest
git-executable = ${git:location}/bin/git
......@@ -6,3 +6,6 @@ extends =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[buildout]
extends =
../libcap-ng/buildout.cfg
../lzo/buildout.cfg
../openssl/buildout.cfg
../flex/buildout.cfg
......@@ -11,11 +10,10 @@ parts =
[openvpn]
recipe = slapos.recipe.cmmi
url = https://build.openvpn.net/downloads/releases/openvpn-${:version}.tar.gz
version = 2.6.8
md5sum = 427fe070a4ab9fd78dc64195458dc361
url = https://swupdate.openvpn.org/community/releases/openvpn-${:version}.tar.xz
version = 2.4.7
md5sum = 4ad8a008e1e7f261b3aa0024e79e7fb7
configure-options =
--disable-lz4
--disable-dependency-tracking
--disable-plugin-auth-pam
--enable-iproute2
......@@ -23,9 +21,7 @@ environment =
PATH=${xz-utils:location}/bin:%(PATH)s
LZO_LIBS=-L${lzo:location}/lib -llzo2
LZO_CFLAGS=-I${lzo:location}/include
LIBCAPNG_LIBS=-L${libcap-ng:location}/lib -lcap-ng
LIBCAPNG_CFLAGS=-I${libcap-ng:location}/include
OPENSSL_LIBS=-L${openssl:location}/lib -lcrypto -lssl
OPENSSL_CFLAGS=-I${openssl:location}/include
LDFLAGS =-Wl,-rpath=${lzo:location}/lib -Wl,-rpath=${flex:location}/lib -Wl,-rpath=${openssl:location}/lib
OPENSSL_LIBS=-L${openssl-1.1:location}/lib -lcrypto -lssl
OPENSSL_CFLAGS=-I${openssl-1.1:location}/include
LDFLAGS =-Wl,-rpath=${lzo:location}/lib -Wl,-rpath=${flex:location}/lib -Wl,-rpath=${openssl-1.1:location}/lib
CPPFLAGS=-I${lzo:location}/include -I${flex:location}/include
......@@ -12,9 +12,13 @@ md5sum = 4452288e6a0eefb2ab11d36010a1eebb
configure-options =
--disable-static
--enable-unicode-properties
--enable-jit
patch-options = -p1
patches =
https://sources.debian.org/data/main/p/pcre3/2:8.39-12/debian/patches/patch-from-mariadb-to-fix-stack-frame-si#c33964123a4648bbb86466b4f3476bb4
environment =
PATH=${patch:location}/bin:%(PATH)s
[pcre:not linux or platform.machine() != 'riscv64']
configure-options +=
--enable-jit
......@@ -10,7 +10,7 @@ extends =
parts = postgresql
[postgresql]
<= postgresql10
<= postgresql12
[postgresql-common]
recipe = slapos.recipe.cmmi
......@@ -44,3 +44,9 @@ environment =
<= postgresql-common
url = http://ftp.postgresql.org/pub/source/v10.11/postgresql-10.11.tar.bz2
md5sum = 01c83ee159bf2a690e75e69e49fe2a1d
[postgresql12]
<= postgresql-common
url = https://ftp.postgresql.org/pub/source/v12.9/postgresql-12.9.tar.bz2
md5sum = 980f11ed6b61a5fb64fbd9dffdccc8be
[potrace]
recipe = slapos.recipe.cmmi
shared = true
url = https://potrace.sourceforge.net/download/1.16/potrace-1.16.tar.gz
md5sum = 5f0bd87ddd9a620b0c4e65652ef93d69
configure-options =
--with-libpotrace
--disable-static
--disable-zlib
......@@ -5,3 +5,6 @@ extends = test.cfg
[python]
part = python2.7
[openssl]
<= openssl-1.1
......@@ -17,9 +17,6 @@ extends =
parts =
python2.7
[openssl]
<= openssl-1.1
[bootstrap2.7]
recipe = zc.recipe.egg
eggs = zc.buildout
......
......@@ -19,4 +19,4 @@ path = ${qjs-wrapper-source:location}
autopilot-wrapper =
environment =
C_INCLUDE_PATH=include:${open62541:location}/include:${open62541:location}/deps:${open62541:location}/src/pubsub:${quickjs:location}/include
LDFLAGS=-L${open62541:location}/lib -Wl,-rpath=${open62541:location}/lib -L${:autopilot-wrapper}/lib -Wl,-rpath=${:autopilot-wrapper}/lib -fPIC
LDFLAGS=-L${open62541:location}/lib -Wl,-rpath=${open62541:location}/lib -L${:autopilot-wrapper}/lib -Wl,-rpath=${:autopilot-wrapper}/lib
......@@ -15,6 +15,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[gcc]
min_version = 0
......
......@@ -14,3 +14,4 @@ configure-options =
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_LIBDIR=lib
[buildout]
extends = ../gnu-config/buildout.cfg
parts=
unixodbc
[unixodbc]
recipe = slapos.recipe.cmmi
shared = true
url = http://www.unixodbc.org/unixODBC-2.3.5.tar.gz
md5sum = abf14cf943f1f8c5e63a24cb26d54fd9
url = https://www.unixodbc.org/unixODBC-2.3.12.tar.gz
md5sum = d62167d85bcb459c200c0e4b5a63ee48
pre-configure = cp -f ${gnu-config:location}/config.sub ${gnu-config:location}/config.guess .
post-install = ln -s @@LOCATION@@/lib/libodbcinst.so @@LOCATION@@/lib/libodbcinst.so.1
......@@ -4,7 +4,6 @@ parts =
extends =
../ncurses/buildout.cfg
../gettext/buildout.cfg
[vim]
recipe = slapos.recipe.cmmi
......@@ -14,4 +13,3 @@ md5sum = b35e794140c196ff59b492b56c1e73db
environment=
CPPFLAGS=-I${ncurses:location}/include
LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib
LD_LIBRARY_PATH=${ncurses:location}/lib:${gettext:location}/lib
......@@ -2,7 +2,7 @@
extends =
../pkgconfig/buildout.cfg
../gtk-3/buildout.cfg
../gtk/buildout.cfg
../pillow/buildout.cfg
../numpy/buildout.cfg
../wxwidgets/buildout.cfg
......
......@@ -5,7 +5,7 @@ extends =
../zlib/buildout.cfg
../libjpeg/buildout.cfg
../libtiff/buildout.cfg
../gtk-3/buildout.cfg
../gtk/buildout.cfg
../glib/buildout.cfg
../libexpat/buildout.cfg
../libepoxy/buildout.cfg
......@@ -56,5 +56,5 @@ post-install =
environment =
PATH=${xz-utils:location}/bin:${tar:location}/bin:${git:location}/bin:${gettext:location}/bin:${gtk-3:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${gtk-3:location}/lib/pkgconfig:${libtiff:location}/lib/pkgconfig:${gtk-3:pkg_config_depends}
LDFLAGS=-L${gtk-3:location}/lib -Wl,-rpath=${gtk-3:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libtiff:location}/lib -Wl,-rpath=${libtiff:location}/lib -L${libjpeg-turbo:location}/lib -Wl,-rpath=${libjpeg-turbo:location}/lib -L${libpng:location}/lib -Wl,-rpath=${libpng:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libexpat:location}/lib -Wl,-rpath=${libexpat:location}/lib -Wl,-rpath=${xz-utils:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${pango:location}/lib -Wl,-rpath=${pango:location}/lib -L${cairo:location}/lib -Wl,-rpath=${cairo:location}/lib -L${gdk-pixbuf:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${atk:location}/lib -Wl,-rpath=${atk:location}/lib -Wl,-rpath=${fontconfig:location}/lib -Wl,-rpath=${freetype:location}/lib -Wl,-rpath=@@LOCATION@@/lib
LDFLAGS=-L${gtk-3:location}/lib -Wl,-rpath=${gtk-3:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libtiff:location}/lib -Wl,-rpath=${libtiff:location}/lib -L${libjpeg-turbo:location}/lib -Wl,-rpath=${libjpeg-turbo:location}/lib -L${libpng:location}/lib -Wl,-rpath=${libpng:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libexpat:location}/lib -Wl,-rpath=${libexpat:location}/lib -Wl,-rpath=${xz-utils:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${pango:location}/lib -Wl,-rpath=${pango:location}/lib -L${cairo:location}/lib -Wl,-rpath=${cairo:location}/lib -L${gdk-pixbuf:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${atk:location}/lib -Wl,-rpath=${atk:location}/lib -Wl,-rpath=${fontconfig:location}/lib -Wl,-rpath=${freetype:location}/lib -Wl,-rpath=${harfbuzz:location}/lib -Wl,-rpath=@@LOCATION@@/lib
CPPFLAGS=-I${libexpat:location}/include -I${xz-utils:location}/include -I${zlib:location}/include -I${gettext:location}/include -I${gtk-3:location}/include/gtk-3.0 -I${pango:location}/include/pango-1.0 -I${cairo:location}/include/cairo -I${cairo:location}/include -I${gdk-pixbuf:location}/include/gdk-pixbuf-2.0 -I${atk:location}/include/atk-1.0 -I${glib:location}/include/glib-2.0 -I${glib:location}/include/gio-unix-2.0 -I${glib:location}/lib/glib-2.0/include -I${libjpeg-turbo:location}/include -I${libpng:location}/include -I${libX11:location}/include -I${libtiff:location}/include
[python]
part = python2.7
[openssl]
<= openssl-1.1
......@@ -63,7 +63,6 @@ class UserInfoTest(unittest.TestCase):
'testnode': '/bin/testnode',
'working-directory': 'srv/testnode',
'wrapper': 'bin/erp5testnode-service',
'zip-binary': '/bin/zip',
}
# values for test
......
......@@ -30,6 +30,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[rssgen-eggs]
recipe = zc.recipe.egg
interpreter = python-${:_buildout_section_name_}
......
......@@ -45,6 +45,9 @@ max_version = 0
# Beremiz works with python2.7 for now, the code is not yet upgraded for python3
part = python2.7
[openssl]
<= openssl-1.1
[open62541]
# Beremiz need it to be in folder parts/open62541
# as Beremiz search for open62541 to BEREMIZ_PATH/../open62541
......
......@@ -22,6 +22,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[gcc]
# we want this SR to use a fixed gcc (so that we have the same gcc as open62541 component)
max_version = 0
......
......@@ -11,6 +11,9 @@ download-cache = ${:directory}/download-cache
[python]
part = python2.7
[openssl]
<= openssl-1.1
[template]
recipe = slapos.recipe.template:jinja2
# XXX: "template.cfg" is hardcoded in instanciation recipe
......
......@@ -4,3 +4,6 @@ extends =
[python]
part = python2.7
[openssl]
<= openssl-1.1
......@@ -24,6 +24,9 @@ part = gcc-8.5
[python]
part = python2.7
[openssl]
<= openssl-1.1
[dream-repository.git]
revision = f3bcf115741886835df8c0ca0fdbf510d77d8db8
......
......@@ -18,4 +18,4 @@ md5sum = 06b0acece285ecbc0e746fa267a374b6
[template-default]
filename = instance-default.cfg.jinja.in
md5sum = bf95d5f4ac107ad27a0c980633ad20be
md5sum = 947778203e4b2c175a25d01a2c36647c
......@@ -65,7 +65,6 @@ keep-log-days = {{ slapparameter_dict['keep-log-days'] }}
git-binary = ${git:location}/bin/git
slapos-binary = ${buildout:bin-directory}/slapos
testnode = ${buildout:bin-directory}/testnode
zip-binary = ${zip:location}/bin/zip
httpd-pid-file = $${basedirectory:run}/httpd.pid
httpd-lock-file = $${basedirectory:run}/httpd.lock
httpd-conf-file = $${rootdirectory:etc}/httpd.conf
......
......@@ -5,7 +5,6 @@ extends =
../../stack/haproxy/default-backend.cfg
../../component/git/buildout.cfg
../../component/lxml-python/buildout.cfg
../../component/zip/buildout.cfg
../../component/bash/buildout.cfg
../../component/coreutils/buildout.cfg
../../component/shellinabox/buildout.cfg
......@@ -18,7 +17,6 @@ parts =
slapos-cookbook
template
eggs
zip
git
apache
......
......@@ -9,6 +9,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[file]
# For old GCC like 4.9.2 on Debian 8.
# XXX: This should be moved to component/rina-tools/buildout.cfg, next to where
......
......@@ -21,7 +21,7 @@ url = https://lab.nexedi.com/nexedi/c-astral-wrapper/-/archive/v2.1/c-astral-wra
md5sum = cca66724e1b7a61c1b9559fde95c420b
environment =
CPLUS_INCLUDE_PATH=${qjs-wrapper-source:location}/include:${mavsdk:location}/include:${mavsdk:location}/include/mavsdk
LDFLAGS=-L${mavsdk:location}/lib -Wl,-rpath=${mavsdk:location}/lib -fPIC
LDFLAGS=-L${mavsdk:location}/lib -Wl,-rpath=${mavsdk:location}/lib
[qjs-wrapper]
autopilot-wrapper = ${c-astral-wrapper:location}
......
......@@ -14,7 +14,7 @@
# not need these here).
[instance-common]
filename = instance-common.cfg.in
md5sum = ecc98da90cd446ea224ddeece1374190
md5sum = b4baf7f21f450fa522c2a69f5a4aedf7
[root-common]
filename = root-common.cfg.in
......@@ -30,7 +30,7 @@ md5sum = 9f27195d770b2f57461c60a82c851ab9
[instance-neo]
filename = instance-neo.cfg.in
md5sum = 200ae55715cb735b0f97f8c835a3071f
md5sum = bc647a29f9d6ece2e4117ce8f04d27c5
[template-neo-my-cnf]
filename = my.cnf.in
......
......@@ -44,6 +44,7 @@ extra-context =
import urllib urllib
key master_cfg neo-master:output
key admin_cfg neo-admin:output
raw sqlite3_location {{ sqlite3_location }}
{%- if mariadb_location is defined %}
raw mariadb_location {{ mariadb_location }}
raw template_mysqld_wrapper {{ template_mysqld_wrapper }}
......
......@@ -144,6 +144,9 @@ database-adapter = {{ storage_type }}
wait-database = -1
{%- if mysql %}
engine = ${my-cnf-parameters:engine}
{%- else %}
environment =
PATH={{sqlite3_location}}/bin
{%- endif %}
dedup = {{ dumps(bool(slapparameter_dict.get('data-deduplication'))) }}
disable-drop-partitions = {{ dumps(bool(slapparameter_dict.get('disable-drop-partitions'))) }}
......
......@@ -33,6 +33,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[gcc:python2]
# use old gcc version for old scipy version used in python2
part = gcc-8.5
......@@ -86,6 +89,7 @@ context =
key neo instance-neo:target
key template_logrotate_base template-logrotate-base:output
key template_monitor monitor2-template:output
key sqlite3_location sqlite3:location
${:adapter-context}
adapter-context =
key mariadb_location mariadb:location
......
......@@ -50,6 +50,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[neo]
<= go-git-package
go.importpath = lab.nexedi.com/kirr/neo
......
......@@ -3,22 +3,23 @@
How to deploy from scratch
1. Install Amarisoft binaries in /opt/amarisoft/v20XX-XX-XX with folders:
* enb: needs to containt libraries from trx_sdr
* enb: needs to contain libraries from trx_sdr
* trx_sdr
* mme
* mme: needs to contain libraries from libs folder
2. Install ors playbook
3. Deploy this SR
## Services
We run 2 binaries from Amarisoft LTE stack:
We run 3 binaries from Amarisoft LTE stack:
* **lteenb** - eNodeB software is the server accepting connection from UI (user interfaces)
* **ltemme** - Mobile Management Entity in other words core network which handles orchestration of
eNodeBs in case UI switches from one to another
* **lteims** - IP Multimedia Subsystem, for support of VoNR / VoLTE (only for amarisoft > 2024-05-02)
Those binaries are started in foreground, originaly in screen. We don't want the binaries inside one
screen because then we cannot easily control their resource usage. Thus we make 2 on-watch services.
screen because then we cannot easily control their resource usage. Thus we make 3 on-watch services.
### ENB / GNB
......
......@@ -16,7 +16,7 @@
[template]
filename = instance.cfg
md5sum = 43f02b7b3552d0d657fa7dbf43ce20a5
md5sum = 2e30c07c6436895ac0bc6c177cf7013d
[template-ors]
filename = instance-ors.cfg
......@@ -44,7 +44,7 @@ md5sum = b7906ca3a6b17963f78f680fc0842b74
[ru_lopcomm_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/lopcomm/libinstance.jinja2.cfg
md5sum = d1a724be968a2d5ea1432c0f4a34f199
md5sum = caa51d27f5a5cd5b23e4c088b3e3bb02
[ru_sunwave_libinstance.jinja2.cfg]
_update_hash_filename_ = ru/sunwave/libinstance.jinja2.cfg
......@@ -96,7 +96,7 @@ md5sum = 601d6237059fa665d3f3ffb6a78ad9ca
[template-core-network]
_update_hash_filename_ = instance-core-network.jinja2.cfg
md5sum = 326e194e9c98d58d926f89521bb95df5
md5sum = 8e3f5a1a742a6934a61d6a3a282f1293
[template-ue]
_update_hash_filename_ = instance-ue.jinja2.cfg
......@@ -112,7 +112,7 @@ md5sum = 3b901e8733e6afff8940c6c318da4493
[enb.jinja2.cfg]
filename = config/enb.jinja2.cfg
md5sum = e1c40827e30d6ddcd98be35ec8569af2
md5sum = 1b8dc68206485299c08ab0e1544773f6
[drb_lte.jinja2.cfg]
filename = config/drb_lte.jinja2.cfg
......@@ -126,9 +126,13 @@ md5sum = 282b11d7b72b01b8325df4632d82b84d
filename = config/sib23.jinja2.asn
md5sum = 959523597e29b048e45ebf58f7ea4c5b
[mt_call_qos.jinja2.sdp]
_update_hash_filename_ = config/mt_call_qos.jinja2.sdp
md5sum = 9dbd93036c15c87c6de74b88b34062b6
[mme.jinja2.cfg]
filename = config/mme.jinja2.cfg
md5sum = 25ae6b1022548183293f0ef0c54532a7
md5sum = 4628509e89747cf30e85ce2cb3a0aebd
[dnsmasq-core-network.jinja2.cfg]
filename = config/dnsmasq-core-network.jinja2.cfg
......@@ -140,7 +144,7 @@ md5sum = 95f4f8fb85e0480eb3e9059b9db26540
[ims.jinja2.cfg]
filename = config/ims.jinja2.cfg
md5sum = 36281b03597252cf75169417d02fc28c
md5sum = f07c85916bcb7e4002c8edc3d087c1be
[ue.jinja2.cfg]
filename = config/ue.jinja2.cfg
......
......@@ -24,7 +24,8 @@
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)"
"5ms 8UL 1DL 2/10 (EXPERIMENTAL maximum uplink)",
"5ms 6UL 3DL 10/2 (high uplink)"
],
"default": "5ms 2UL 7DL 4/6 (default)",
"options": {
......
Changelog
=========
Version 1.0.361 (2024-05-29)
-------------
* Support BBU controlling multiple RUs with one or more CPRI boards
* Code refactorization (to support BBUs with multiple RUs)
* Support IMS for Amarisoft >= 2024-05-02, which is needed for 5G support on some phones
* Add high UL TDD config (TDD CONFIG 4, supported on more UEs than the maximum UL TDD config)
* Add fixed-ips option for core network
Version 1.0.344 (2023-11-03)
-------------
......
......@@ -537,9 +537,10 @@
{%- set tdd = (cell.rf_mode == 'tdd') %}
{%- set tdd_config =
{'5ms 2UL 7DL 4/6 (default)': 1,
'2.5ms 1UL 3DL 2/10': 2,
'5ms 8UL 1DL 2/10 (maximum uplink)': 3}
{'5ms 2UL 7DL 4/6 (default)': 1,
'2.5ms 1UL 3DL 2/10': 2,
'5ms 8UL 1DL 2/10 (EXPERIMENTAL maximum uplink)': 3,
'5ms 6UL 3DL 10/2 (high uplink)': 4}
[cell.tdd_ul_dl_config]
if tdd else None %}
{% if tdd_config == 1 %}
......@@ -572,6 +573,16 @@
ul_symbols: 2,
},
},
{% elif tdd_config == 4 %}
tdd_ul_dl_config: {
pattern1: {
period: 5, /* in ms */
dl_slots: 3,
dl_symbols: 2,
ul_slots: 6,
ul_symbols: 10,
},
},
{% endif %}
prach: {
......
{%- set tun_ipv6_addr = slap_configuration.get('tun-ipv6-addr', '2001:db8::1') %}
{%- set tun_ipv6_network = slap_configuration.get('tun-ipv6-network', '2001:db8::/55') %}
{%- set tun_ipv4_addr = slap_configuration.get('tun-ipv4-addr', '172.17.0.1') %}
{%- set tun_ipv4_network = slap_configuration.get('tun-ipv4-network', '172.17.0.0/17') %}
{%- set tun_name = slap_configuration.get('tun-name', 'slaptun0') %}
{%- set tun_ipv6_start = int(netaddr.IPAddress(tun_ipv6_addr)) %}
{%- set tun_ipv6_end = netaddr.IPNetwork(tun_ipv6_network).last %}
{%- set tun_ipv4_start = int(netaddr.IPAddress(tun_ipv4_addr)) %}
{%- set tun_ipv4_end = netaddr.IPNetwork(tun_ipv4_network).last %}
{%- set internet_ipv4 = netaddr.IPAddress( tun_ipv4_start ) %}
{%- set ims_ipv4 = netaddr.IPAddress((tun_ipv4_start + tun_ipv4_end) // 2 + 1) %}
{%- set ims_ipv6 = netaddr.IPAddress((tun_ipv6_start + tun_ipv6_end) // 2 ) %}
{
log_options: "all.level=debug,all.max_size=32",
log_filename: "{{ directory['log'] }}/ims.log",
sip_addr: [
{addr: "{{ slap_configuration['tun-ipv4-addr'] }}", bind_addr: "0.0.0.0", port_min: 10000, port_max: 20000},
{#" slap_configuration['tun-ipv6-addr'] ",#}
{addr: "{{ ims_ipv4 }}", bind_addr: "{{ ims_ipv4 }}", port_min: 10000, port_max: 20000},
"{{ ims_ipv6 }}",
],
mms_server_bind_addr: "{{ netaddr.IPAddress(netaddr.IPNetwork(slap_configuration['tun-ipv4-network']).first) + 1 }}:1111",
mms_server_bind_addr: "{{ internet_ipv4 }}:1111",
sctp_addr: "{{ slap_configuration['configuration.ims_addr'] }}",
cx_server_addr: "127.0.1.100",
cx_bind_addr: "{{ slap_configuration['configuration.ims_addr'] }}",
rx_server_addr: "127.0.1.100",
rx_bind_addr: "{{ slap_configuration['configuration.ims_addr'] }}",
domain: "{{ slap_configuration['configuration.domain'] }}",
domain: "{{ slapparameter_dict.get('ims_domain', 'rapid.space') }}",
include "{{ slap_configuration['ue_db_path'] }}",
{# Example of of s6a connection #}
{# s6: { #}
{# server_addr: "", #}
{# bind_addr: "", #}
{# origin_realm: "", #}
{# origin_host: "", #}
{# }, #}
echo: [
"tel:666",
"tel:+666",
......@@ -44,7 +48,10 @@
ipsec_aalg_list: ["hmac-md5-96", "hmac-sha-1-96"],
ipsec_ealg_list: ["null", "aes-cbc", "des-cbc", "des-ede3-cbc"],
mt_call_sdp_file: "{{ directory['software'] }}/mme/config/mt_call.sdp",
ipsec_ifname: "{{ tun_name }}-ims",
ipsec_netns: "{{ tun_name }}-ims-netns",
mt_call_sdp_file: "{{ directory['etc'] }}/mt_call_qos.sdp",
ue_db_filename: "{{ directory['var'] }}/lte_ue_ims.db",
}
{%- set tun_name = slap_configuration.get('tun-name', 'slaptun0') %}
{%- set tun_ipv4_addr = slap_configuration.get('tun-ipv4-addr', '172.17.0.1') %}
{%- set tun_ipv6_addr = slap_configuration.get('tun-ipv6-addr', '2001:db8::1') %}
{%- set tun_ipv4_network = slap_configuration.get('tun-ipv4-network', '172.17.0.0/17') %}
{%- set tun_ipv6_network = slap_configuration.get('tun-ipv6-network', '2001:db8::/55') %}
{%- set tun_ipv4_start = int(netaddr.IPAddress(tun_ipv4_addr)) %}
{%- set tun_ipv6_start = int(netaddr.IPAddress(tun_ipv6_addr)) %}
{%- set tun_ipv4_end = netaddr.IPNetwork(tun_ipv4_network).last %}
{%- set tun_ipv6_end = netaddr.IPNetwork(tun_ipv6_network).last %}
{%- set internet_ipv4_start = netaddr.IPAddress( tun_ipv4_start + 1 ) %}
{%- set internet_ipv4_end = netaddr.IPAddress((tun_ipv4_start + tun_ipv4_end) // 2 - 2 ) %}
{%- set internet_ipv6_start = netaddr.IPAddress( tun_ipv6_start + 1 ) %}
{%- set internet_ipv6_end = netaddr.IPAddress((tun_ipv6_start + tun_ipv6_end) // 2 - 1 ) %}
{%- set ims_ipv4_start = netaddr.IPAddress((tun_ipv4_start + tun_ipv4_end) // 2 + 2 ) %}
{%- set ims_ipv4_end = netaddr.IPAddress( tun_ipv4_end - 1 ) %}
{%- set ims_ipv4 = netaddr.IPAddress((tun_ipv4_start + tun_ipv4_end) // 2 + 1 ) %}
{%- set ims_ipv6 = netaddr.IPAddress((tun_ipv6_start + tun_ipv6_end) // 2 ) %}
{%- set ims_ipv6_start = netaddr.IPAddress((tun_ipv6_start + tun_ipv6_end) // 2 ) %}
{%- set ims_ipv6_end = netaddr.IPAddress( tun_ipv6_end - 1 ) %}
{
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,ngap.level=debug,ngap.max_size=1,file.rotate=1G,file.path=/dev/null",
log_filename: "{{ directory['log'] }}/mme.log",
{% if slapparameter_dict.get('external_enb_gnb', '') %}
{% if slapparameter_dict.get('use_ipv4', False) %}
{%- if slapparameter_dict.get('external_enb_gnb', '') %}
{%- if slapparameter_dict.get('use_ipv4', False) %}
gtp_addr: "{{ gtp_addr_v4 }}",
{% else %}
{%- else %}
gtp_addr: "{{ gtp_addr_v6 }}",
{% endif %}
{% else %}
{%- endif %}
{%- else %}
gtp_addr: "{{ slap_configuration['configuration.gtp_addr'] }}",
{% endif %}
{%- endif %}
plmn: "{{ slapparameter_dict.get('core_network_plmn', "00101") }}",
mme_group_id: 32769,
......@@ -26,6 +47,7 @@
],
rx: {
bind_addr: "127.0.1.100",
qci: {audio: 1, video: 2},
},
......@@ -41,38 +63,54 @@
fifteen_bearers: false,
{%- if support_ims == 'True' %}
ims_list: [
{
ims_addr: "{{ slap_configuration['configuration.ims_addr'] }}",
bind_addr: "{{ slap_configuration['configuration.ims_bind'] }}"
bind_addr: "{{ slap_configuration['configuration.ims_bind'] }}",
}
],
{%- endif %}
pdn_list: [
{
{% if slap_configuration.get('tun-ipv6-network', '') %}
access_point_name: ["default", "internet", "sos"],
pdn_type: "ipv4v6",
first_ipv6_prefix: "{{ netaddr.IPAddress(slap_configuration.get('tun-ipv6-addr', '')) + 1 }}",
last_ipv6_prefix: "{{ netaddr.IPAddress(netaddr.IPNetwork(slap_configuration.get('tun-ipv6-network', '')).last) - 1 }}",
{% if slapparameter_dict.get('local_domain', '') %}
dns_addr: ["{{ slap_configuration.get('tun-ipv4-addr', '') }}"],
{% else %}
tun_ifname: "{{ tun_name }}",
first_ip_addr: "{{ internet_ipv4_start }}",
last_ip_addr: "{{ internet_ipv4_end }}",
first_ipv6_prefix: "{{ internet_ipv6_start }}",
last_ipv6_prefix: "{{ internet_ipv6_end }}",
{%- if slapparameter_dict.get('local_domain', '') %}
dns_addr: ["{{ tun_ipv4_addr }}"],
{%- else %}
dns_addr: ["8.8.8.8", "2001:4860:4860::8888"],
{% endif %}
{% else %}
pdn_type: "ipv4",
dns_addr: "8.8.8.8",
{% endif %}
{%- endif %}
tun_ifname: "{{ slap_configuration.get('tun-name', '') }}",
access_point_name: ["default", "internet", "ims", "sos"],
{% if slap_configuration.get('tun-name', '') %}
first_ip_addr: "{{ netaddr.IPAddress(netaddr.IPNetwork(slap_configuration.get('tun-ipv4-network', '')).first) + 2 }}",
last_ip_addr: "{{ netaddr.IPAddress(netaddr.IPNetwork(slap_configuration.get('tun-ipv4-network', '')).last) - 1 }}",
{% endif %}
p_cscf_addr: ["{{ slap_configuration.get('tun-ipv4-addr', '') }}"],
erabs: [
{
qci: 9,
priority_level: 15,
pre_emption_capability: "shall_not_trigger_pre_emption",
pre_emption_vulnerability: "not_pre_emptable",
},
],
},
{%- if support_ims == 'True' %}
{
access_point_name: "ims",
pdn_type: "ipv4v6",
tun_ifname: "{{ tun_name }}-1",
first_ip_addr: "{{ ims_ipv4_start }}",
last_ip_addr: "{{ ims_ipv4_end }}",
first_ipv6_prefix: "{{ ims_ipv6_start }}",
last_ipv6_prefix: "{{ ims_ipv6_end }}",
p_cscf_addr: ["{{ ims_ipv4 }}", "{{ ims_ipv6 }}"],
{%- if slapparameter_dict.get('local_domain', '') %}
dns_addr: ["{{ tun_ipv4_addr }}"],
{%- else %}
dns_addr: ["8.8.8.8", "2001:4860:4860::8888"],
{%- endif %}
erabs: [
{
......@@ -83,6 +121,7 @@
},
],
},
{%- endif %}
],
tun_setup_script: "{{ ifup_empty }}",
......
v=0
o=Amarisoft-IMS 0 0 IN IP4 0.0.0.0
s=Amarisoft-IMS
c=IN IP4 0.0.0.0
t=0 0
m=audio 10000 RTP/AVP 116
c=IN IP4 0.0.0.0
b=AS:41
b=RR:0
b=RS:0
a=rtpmap:116 AMR-WB/16000/1
a=fmtp:116 mode-change-capability=2; max-red=0
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecv
a=ptime:20
a=maxptime:220
a=sendrecv
{%- if lte_version|replace("-", "")|int < 20240502 %}
{%- set support_ims = false %}
{%- else %}
{%- set support_ims = true %}
{%- endif %}
{%- set dns_slave_instance_list = [] %}
{%- set sim_slave_instance_list = [] %}
{%- set fixed_ip = slapparameter_dict.get("fixed_ips", False) %}
......@@ -70,6 +76,11 @@ parts =
directory
mme-config
mme-service
ims-config
mt-call-config
{%- if support_ims %}
ims-service
{%- endif %}
monitor-base
check-interface-up.py
publish-connection-information
......@@ -135,25 +146,34 @@ service = ${:etc}/service
promise = ${:etc}/promise
log = ${:var}/log
{% if slapparameter_dict.get("mme_config_link", None) %}
[mme-config-dl]
recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("mme_config_link") }}
version = {{ slapparameter_dict.get("mme_config_version") }}
offline = false
[ims-sh-wrapper]
recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_}
ims-log = ${directory:log}/ims-output.log
inline =
#!/bin/sh
{% if not slapparameter_dict.get("testing", False) %}
(echo && echo && date "+[%Y/%m/%d %T.%N %Z] Starting IMS software..." && echo) >> ${:ims-log};
tail -c 1M ${:ims-log} > ${:ims-log}.tmp;
mv ${:ims-log}.tmp ${:ims-log};
{{ ims }}/lteims ${directory:etc}/ims.cfg >> ${:ims-log} 2>> ${:ims-log};
{% endif %}
### IMS
[ims-service]
recipe = slapos.cookbook:wrapper
command-line = {{ mme }}/lteims ${directory:etc}/ims.cfg
command-line = ${ims-sh-wrapper:output}
wrapper-path = ${directory:service}/ims
mode = 0775
pidfile = ${directory:run}/ims.pid
hash-files =
${ims-config:output}
${mt-call-config:output}
${ue-db-config:output}
environment = AMARISOFT_PATH=/opt/amarisoft/.amarisoft
${ims-sh-wrapper:output}
environment =
LD_LIBRARY_PATH={{ openssl_location }}/lib:{{ nghttp2_location }}/lib
AMARISOFT_PATH=/opt/amarisoft/.amarisoft
[mme-sh-wrapper]
recipe = slapos.recipe.template
......@@ -162,6 +182,7 @@ mme-log = ${directory:log}/mme-output.log
inline =
#!/bin/sh
{% if not slapparameter_dict.get("testing", False) %}
sudo -n /opt/amarisoft/init-mme;
rm -f ${directory:var}/lte_ue.db;
(echo && echo && date "+[%Y/%m/%d %T.%N %Z] Starting MME software..." && echo) >> ${:mme-log};
tail -c 1M ${:mme-log} > ${:mme-log}.tmp;
......@@ -215,6 +236,7 @@ config-port = ${iperf-service:port}
[config-base]
recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
extra-context =
context =
section directory directory
section slap_configuration slap-configuration
......@@ -223,12 +245,18 @@ context =
raw gtp_addr_v4 {{ lan_ipv4 }}
import netaddr netaddr
key ifup_empty mme-ifup-empty:wrapper-path
${:extra-context}
[ims-config]
<= config-base
url = {{ ims_template }}
output = ${directory:etc}/ims.cfg
[mt-call-config]
<= config-base
url = {{ mt_call_template }}
output = ${directory:etc}/mt_call_qos.sdp
[ue-db-config]
<= config-base
url = {{ ue_db_template }}
......@@ -245,6 +273,8 @@ url = ${mme-config-dl:target}
url = {{ mme_template }}
{% endif %}
output = ${directory:etc}/mme.cfg
extra-context =
raw support_ims {{ support_ims }}
{% if slapparameter_dict.get("local_domain", '') %}
[dnsmasq-config]
......@@ -289,6 +319,11 @@ password = {{ slapparameter_dict['monitor-password'] | string }}
[publish-connection-information]
<= monitor-publish
recipe = slapos.cookbook:publish.serialised
{%- if support_ims %}
ims = Enabled
{%- else %}
ims = Unsupported (Amarisoft version >= 2024-05-02 is required), 5G may not work with your UE
{%- endif %}
core-network-ipv6 = {{ my_ipv6 }}
core-network-ipv4 = {{ lan_ipv4 }}
amarisoft-version = {{ lte_version }}
......
......@@ -91,7 +91,7 @@ init =
options['sdr'] = path + "/trx_sdr"
options['enb'] = path + "/enb"
options['mme'] = path + "/mme"
options['ims'] = path + "/ims"
options['ims'] = path + "/mme"
options['ue'] = path + "/ue"
import os
lte_expiration = "Unknown"
......@@ -187,10 +187,13 @@ extra-context =
key lte_version amarisoft:lte-version
key lte_expiration amarisoft:lte-expiration
key mme amarisoft:mme
key ims amarisoft:ims
raw mme_template ${mme.jinja2.cfg:target}
raw dnsmasq_template ${dnsmasq-core-network.jinja2.cfg:target}
raw ims_template ${ims.jinja2.cfg:target}
raw ue_db_template ${ue_db.jinja2.cfg:target}
raw mt_call_template ${mt_call_qos.jinja2.sdp:target}
raw netcapdo ${netcapdo:exe}
raw openssl_location ${openssl:location}
raw nghttp2_location ${nghttp2:location}
raw iperf3_location ${iperf3:location}
......
......@@ -56,16 +56,6 @@ config-command = [ -f ${ {{-B('%s-software-template' % ru_ref)}}:is_firmware_upd
{%- endif %}
{#- push config to RU #}
{% if ru.get("cu_config_link", None) %}
[{{ B('%s-cu-config-dl' % ru_ref) }}]
recipe = slapos.recipe.build:download
url = {{ ru.cu_config_link }}
version = {{ ru.get("cu_config_version") }}
offline = false
{% endif %}
[{{ B('%s-cu-config' % ru_ref) }}]
<= config-base
url = {{ ru_lopcomm_cu_config_template }}
......
......@@ -409,7 +409,7 @@ def ORS_gnb(ienb):
'root_sequence_index': 1,
'pci': 500,
'cell_id': '0x01',
"tdd_ul_dl_config": "5ms 8UL 1DL 2/10 (maximum uplink)",
"tdd_ul_dl_config": "5ms 8UL 1DL 2/10 (EXPERIMENTAL maximum uplink)",
'inactivity_timer': 10000,
'ru': {
'ru_type': 'ru_ref',
......
......@@ -35,6 +35,7 @@ parts +=
drb_lte.jinja2.cfg
drb_nr.jinja2.cfg
sib23.jinja2.asn
mt_call_qos.jinja2.sdp
monitor-httpd-extra-conf
# copy all gadget file
gadget
......@@ -114,6 +115,8 @@ filename = enb.jinja2.cfg
[sib23.jinja2.asn]
<= copy-config-to-instance
filename = sib23.jinja2.asn
[mt_call_qos.jinja2.sdp]
<= copy-config-to-instance
[ue_db.jinja2.cfg]
<= copy-config-to-instance
filename = ue_db.jinja2.cfg
......
......@@ -123,7 +123,7 @@ gnb_param_dict2 = {
'0x171717': {'sd': '0x171717', 'sst': 10},
'0x181818': {'sd': '0x181818', 'sst': 20},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
'tdd_ul_dl_config': '5ms 6UL 3DL 10/2 (high uplink)',
}
enb_param_dict.update(param_dict)
gnb_param_dict1.update(param_dict)
......@@ -217,6 +217,13 @@ def test_gnb_conf2(self):
self.assertEqual(sd, gnb_param_dict2['nssai'][sd]['sd'], 16)
self.assertEqual(p['sst'], gnb_param_dict2['nssai'][sd]['sst'])
tdd_config = conf['nr_cell_list'][0]['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 2)
self.assertEqual(int(tdd_config['ul_slots']), 6)
self.assertEqual(int(tdd_config['ul_symbols']), 10)
def test_mme_conf(self):
conf_file = glob.glob(os.path.join(
......
......@@ -217,10 +217,7 @@ zc.lockfile = 1.4
python2-secrets = 1.0.5
validators = 0.12.2
PyRSS2Gen = 1.1
cns.recipe.symlink = 0.2.3
ecdsa = 0.13
pycrypto = 2.6.1
furl = 2.1.0
orderedmultidict = 1.0.1
......@@ -20,6 +20,9 @@ parts +=
[python]
part = python2.7
[openssl]
<= openssl-1.1
[re6stnet-repository]
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/re6stnet.git
......
......@@ -417,8 +417,6 @@ class TestFirefox102(
desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='102.15.1esr')
user_agent = 'Gecko/20100101 Firefox/102.0'
# resizing window does not work, but we don't really depend on it
@unittest.expectedFailure
def test_resize_window(self):
super().test_resize_window()
......@@ -431,8 +429,6 @@ class TestFirefox115(
desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='115.3.1esr')
user_agent = 'Gecko/20100101 Firefox/115.0'
# resizing window does not work, but we don't really depend on it
@unittest.expectedFailure
def test_resize_window(self):
super().test_resize_window()
......
......@@ -412,7 +412,7 @@ forbid-download-cache = true
[slapos-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.git
branch = master
branch = ors-ims
[template]
recipe = slapos.recipe.template:jinja2
......
......@@ -5,6 +5,9 @@ extends =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[extra-eggs]
eggs +=
${re6stnet-setup:egg}
......
......@@ -15,6 +15,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
# eggs for instance-rsn-client.cfg
[eggs]
recipe = zc.recipe.egg
......
......@@ -13,6 +13,9 @@ parts =
[python]
part = python2.7
[openssl]
<= openssl-1.1
[template]
# Default template for the instance.
recipe = slapos.recipe.template
......
......@@ -185,7 +185,7 @@ distro = 1.7.0
dnspython = 1.16.0
entrypoints = 0.3
enum34 = 1.1.10
erp5.util = 0.4.75
erp5.util = 0.4.76
et-xmlfile = 1.0.1
exceptiongroup = 1.1.3:whl
fastjsonschema = 2.18.1
......@@ -229,7 +229,8 @@ jupyterlab-pygments = 0.1.2
lock-file = 2.0
lockfile = 0.12.2:whl
lsprotocol = 2023.0.0b1:whl
lxml = 4.9.1
lxml = 5.2.1
lxml-html-clean = 0.1.1
manuel = 1.11.2
MarkupSafe = 2.1.3
matplotlib = 2.1.2
......@@ -302,12 +303,12 @@ scikit-learn = 0.20.4
seaborn = 0.7.1
Send2Trash = 1.5.0
setproctitle = 1.1.10
setuptools-dso = 2.9
setuptools-dso = 2.10
sgmllib3k = 1.0.0
simplegeneric = 0.8.1
singledispatch = 3.4.0.3
six = 1.16.0
slapos.cookbook = 1.0.351
slapos.cookbook = 1.0.360
slapos.core = 1.11.0
slapos.extension.shared = 1.0
slapos.libnetworkcache = 0.25
......@@ -392,6 +393,7 @@ importlib-metadata = 1.7.0:whl
itsdangerous = 0.24
Jinja2 = 2.11.3
jsonschema = 3.0.2:whl
lxml = 4.9.1
MarkupSafe = 1.0
msgpack = 0.6.2
packaging = 16.8
......
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