Commit 47008dec authored by Alain Takoudjou's avatar Alain Takoudjou

Add Beremiz IDE software release

See merge request !1134
parents 89612bdd bd2a047b
......@@ -55,6 +55,7 @@ md5sum = 3f489aa48ad2aa1f967dc5e293bbd06f
[yasm]
recipe = slapos.recipe.cmmi
shared = true
url = http://www.tortall.net/projects/yasm/releases/yasm-1.1.0.tar.gz
[libvpx]
......
[buildout]
extends =
../freetype/buildout.cfg
../glib/buildout.cfg
../libpng/buildout.cfg
../pcre/buildout.cfg
../xorg/buildout.cfg
../gtk-2/buildout.cfg
parts =
fluxbox
[fluxbox]
recipe = slapos.recipe.cmmi
url = https://netcologne.dl.sourceforge.net/project/fluxbox/fluxbox/1.3.7/fluxbox-1.3.7.tar.bz2
md6sum = c4701822d8a09d426ebf26e7e97c552a
configure-options =
--enable-x
--enable-xext
--enable-xrender
--enable-xdmcp
--enable-freetype2
--enable-xinerama
--enable-fribidi
--enable-debug
environment =
PATH=${freetype:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${libXext:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${libXdmcp:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libXrandr:pkg_config_depends}:${libXrandr:location}/lib/pkgconfig:${xorgproto:pkg_config_depends}:${xorgproto:location}/share/pkgconfig:${fribidi:location}/lib/pkgconfig
LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -Wl,-rpath=${libXrandr:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib -L${xextproto:location}/lib -L${libXrender:location}/lib -Wl,-rpath=${libXrender:location}/lib -Wl,-rpath=${freetype:location}/lib -L${libXdmcp:location}/lib -L${libXinerama:location}/lib -Wl,-rpath=${libXinerama:location}/lib -L${fribidi:location}/lib -Wl,-rpath=${fribidi: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${libpng:location}/lib -Wl,-rpath=${libpng:location}/lib
CPPFLAGS=-I${xextproto:location}/include -I${libX11:location}/include -I${libXrandr:location}/include -I${xorgproto:location}/include -I${xproto:location}/include -I${kbproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include -I${libXdmcp:location}/include -I${libXinerama:location}/include -I${fribidi:location}/include -I${libpng:location}/include
X11_CFLAGS=-I${libX11:location}/include
X11_LIBS=-L${libX11:location}/lib -lX11
FREETYPE2_CFLAGS=-I${freetype:location}/include
FREETYPE2_LIBS=-L${freetype:location}/lib -lfreetype
XRENDER_LIBS=-L${libXrender:location}/lib -lXrender
XRENDER_CFLAGS=-I${libXrender:location}/include
XINERAMA_CFLAGS=-I${libXinerama:location}/include
XINERAMA_LIBS=-L${libXinerama:location}/lib -lXinerama
[wmctrl]
recipe = slapos.recipe.cmmi
#url = http://tripie.sweb.cz/utils/wmctrl/dist/wmctrl-1.07.tar.gz
# latest version wmctrl 1.07 was not maintenaned for years, it fails to list windows
url = https://github.com/saravanabalagi/wmctrl/archive/7ecfd2adaa2726a0c974b30bd6df2a65094032dd.tar.gz
md5sum = 6337ecc72cf7bd393f319fc822294105
configure-options =
--with-x
--x-includes=${libX11:location}/include
--x-libraries=${libX11:location}/lib
environment =
PATH=${glib:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libICE:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${libxmu:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig
LDFLAGS=-Wl,-rpath=${libX11:location}/lib -Wl,-rpath=${libICE:location}/lib -L${libxmu:location}/lib -Wl,-rpath=${libxmu:location}/lib -L${libSM:location}/lib -Wl,-rpath=${libSM:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${libICE:location}/lib -lglib-2.0
CPPFLAGS=-I${xproto:location}/include -I${libxmu:location}/include -I${libSM:location}/include -I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include
......@@ -13,6 +13,7 @@ extends =
[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 =
......@@ -25,6 +26,7 @@ environment =
[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 =
......@@ -33,6 +35,7 @@ environment =
[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:${glib:location}/lib/pkgconfig:${libepoxy:location}/lib/pkgconfig:${pango:location}/lib/pkgconfig:${pango:pkg_config_depends}:${atk:location}/lib/pkgconfig:${gdk-pixbuf:location}/lib/pkgconfig:${libXi:pkg_config_depends}:${libXi:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libX11:location}/lib/pkgconfig:${xorgproto:location}/lib/pkgconfig:${libXext:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libXrender:location}/lib/pkgconfig:${renderproto:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${kbproto:location}/lib/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:${libX11:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${fixesproto:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${kbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${compositeproto:location}/lib/pkgconfig:${fixesproto:location}/lib/pkgconfig:${kbproto:location}/lib/pkgconfig:${libX11:location}/lib/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:${fixesproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${kbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig
......
[buildout]
extends =
../bison/buildout.cfg
parts =
kerberos
[kerberos]
recipe = slapos.recipe.cmmi
shared = true
url = http://web.mit.edu/kerberos/dist/krb5/1.19/krb5-1.19.2.tar.gz
md5sum = eb51b7724111e1a458a8c9a261d45a31
configure-command = src/configure
configure-options =
--prefix=@@LOCATION@@
--with-ldap=no
--without-readline
--without-tcl
--without-keyutils
environment =
PATH=${bison:location}/bin:%(PATH)s
......@@ -7,6 +7,7 @@ extends =
[libepoxy]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/anholt/libepoxy/releases/download/v1.4/libepoxy-1.4.0.tar.xz
md5sum = d8d8cbf2beb64975d424fcc5167a2a38
environment =
......
[buildout]
extends =
../ffmpeg/buildout.cfg
../cmake/buildout.cfg
parts =
libjpeg
......@@ -9,3 +13,34 @@ url = http://www.ijg.org/files/jpegsrc.v9d.tar.gz
md5sum = 693a4e10906e66467ca21f045547fe15
configure-options =
--disable-static
[libjpeg-turbo2]
recipe = slapos.recipe.cmmi
shared = true
url = https://freefr.dl.sourceforge.net/project/libjpeg-turbo/${:version}/libjpeg-turbo-${:version}.tar.gz
version = 2.1.2
md5sum = e181bd78884dd5392a869209bfa41d4a
configure-command = cmake
configure-options =
-Bbuild
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@
-DENABLE_STATIC=0
-G"Unix Makefiles"
make-options = -C build
environment =
PATH=${cmake:location}/bin:%(PATH)s
[libjpeg-turbo]
recipe = slapos.recipe.cmmi
shared = true
url = https://freefr.dl.sourceforge.net/project/libjpeg-turbo/${:version}/libjpeg-turbo-${:version}.tar.gz
version = 1.5.2
md5sum = 6b4923e297a7eaa255f08511017a8818
configure-options =
--disable-static
--with-gnu-ld
--with-jpeg7
--with-jpeg8
environment =
PATH=${yasm:location}/bin:%(PATH)s
[buildout]
extends =
../cmake/buildout.cfg
../libjpeg/buildout.cfg
../lzo/buildout.cfg
../libtirpc/buildout.cfg
../kerberos/buildout.cfg
../xorg/buildout.cfg
parts =
x11vnc
[libvncserver]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/LibVNC/libvncserver/archive/refs/tags/LibVNCServer-0.9.13.tar.gz
md5sum = 503b5527b93dce77e8b6a45f273f6e39
configure-command = cmake
configure-options =
-Bbuild
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@
-DBUILD_SHARED_LIBS=ON
-DWITH_SYSTEMD=OFF
-DWITH_SDL=OFF
-DWITH_GTK=OFF
-DWITH_WEBSOCKETS=ON
-DWITH_LZO=ON
-DWITH_GCRYPT=ON
-DWITH_IPv6=ON
-DWITH_JPEG=ON
-DWITH_FFMPEG=OFF
-DWITH_PNG=ON
-DWITH_GNUTLS=ON
-DWITH_OPENSSL=ON
-DZLIB_INCLUDE_DIR=${zlib:location}/include
-DZLIB_LIBRARY=${zlib:location}/lib/libz.so
-DJPEG_LIBRARY=${libjpeg-turbo2:location}/lib/libjpeg.so
-DJPEG_INCLUDE_DIR=${libjpeg-turbo2:location}/include
-DPNG_LIBRARY=${libpng:location}/lib/libpng.so
-DPNG_PNG_INCLUDE_DIR=${libpng:location}/include
-DOPENSSL_INCLUDE_DIR=${openssl:location}/include
-DLZO_INCLUDE_DIR=${lzo:location}/include
-DLZO_LIBRARIES=${lzo:location}/lib/liblzo2.a
-DGNUTLS_LIBRARY=${gnutls:location}/lib/libgnutls.so
-DGNUTLS_INCLUDE_DIR=${gnutls:location}/include
make-options = -C build
environment =
PATH=${cmake:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${zlib:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig:${libjpeg-turbo2:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig
CPPFLAGS=-I${openssl:location}/include -I${libgcrypt:location}/include -I${libjpeg-turbo2:location}/include -I${gnutls:location}/include -I${lzo:location}/include
LDFLAGS=-L${libgcrypt:location}/lib -Wl,-rpath=${libgcrypt:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${libjpeg-turbo2:location}/lib -Wl,-rpath=${libjpeg-turbo2:location}/lib -Wl,-rpath=${libpng:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${gnutls:location}/lib -Wl,-rpath=${gnutls:location}/lib -L${lzo:location}/lib -pthread -ljpeg
[x11vnc]
recipe = slapos.recipe.cmmi
url = https://github.com/LibVNC/x11vnc/archive/0.9.16.tar.gz
md5sum = 64172e8f896389ec963fff93415f0d93
pre-configure =
autoreconf -fiv -I ${libtool:location}/share/aclocal -I ${pkgconfig:location}/share/aclocal -I ${gettext:location}/share/aclocal
configure-options =
--without-crypt
--without-avahi
--without-xinerama
--without-xtrap
--without-xrecord
--without-v4l
--without-fbpm
--without-dpms
environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${openssl:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libXext:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libXtst:location}/lib/pkgconfig:${libvncserver:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig
CPPFLAGS=-I${openssl:location}/include -I${libX11:location}/include -I${xproto:location}/include -I${xorgproto:location}/include -I${libXi:location}/include -I${libXtst:location}/include -I${libXext:location}/include -I${xextproto:location}/include -I${libvncserver:location}/include -I${zlib:location}/include -I${libXrandr:location}/include -I${xfixes:location}/include -I${xdamage:location}/include -I${libXcomposite:location}/include -I${libXrender:location}/include
LDFLAGS=-L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${xproto:location}/lib -L${xorgproto:location}/lib -L${libXi:location}/lib -L${libXtst:location}/lib -Wl,-rpath=${libXtst:location}/lib -L${libXext:location}/lib -L${xextproto:location}/lib -Wl,-rpath=${libXext:location}/lib -L${libvncserver:location}/lib -Wl,-rpath=${libvncserver:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libXrandr:location}/lib -Wl,-rpath=${libXrandr:location}/lib -L${xfixes:location}/lib -Wl,-rpath=${xfixes:location}/lib -L${xdamage:location}/lib -Wl,-rpath=${xdamage:location}/lib -L${libXcomposite:location}/lib -Wl,-rpath=${libXcomposite:location}/lib -L${libXrender:location}/lib -Wl,-rpath=${libXrender:location}/lib -Wl,-rpath=${libtirpc:location}/lib -Wl,-rpath=${kerberos:location}/lib
......@@ -5,5 +5,6 @@ parts =
[lzo]
recipe = slapos.recipe.cmmi
url = http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz
md5sum = c7ffc9a103afe2d1bba0b015e7aa887f
shared = true
url = https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
md5sum = 39d3f3f9c55c87b1e5d6888e1420f4b5
[buildout]
extends =
../autoconf/buildout.cfg
../automake/buildout.cfg
../flex/buildout.cfg
../bison/buildout.cfg
[matiec]
recipe = slapos.recipe.cmmi
url = https://github.com/beremiz/matiec/archive/${:version}.tar.gz
md5sum = 6ee62c3d523c6154e7d781d98756444f
version = f59f45d5219172dea171d8ff305f28606a9500ff
pre-configure =
${autoconf:location}/bin/autoreconf -i
make-targets =
post-install =
cp -r * %(location)s/
environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${flex:location}/bin:${bison:location}/bin:%(PATH)s
[Modbus]
recipe = slapos.recipe.cmmi
url = https://hg.beremiz.org/Modbus/archive/e319814f1c17.tar.bz2
md5sum = ad43fdacf223c7861576422eb89c15aa
configure-command = true
make-targets =
post-install =
cp -r *.h libmb.a libmb.so %(location)s/
[buildout]
extends =
../java/buildout.cfg
../java-jdk/buildout.cfg
../cmake/buildout.cfg
../libjpeg/buildout.cfg
parts =
opencv
[java-re]
<= java-re-temurin-11
[ant]
recipe = slapos.recipe.build:download-unpacked
shared = true
url = https://dlcdn.apache.org/ant/binaries/apache-ant-1.9.16-bin.tar.bz2
md5sum = 2a1ef0230e673b6da876a8fc9744b9a1
[opencv]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/opencv/opencv/archive/4.3.0.tar.gz
configure-command = cmake
configure-options =
-Bbuild
-DCMAKE_INSTALL_PREFIX=@@LOCATION@@
-DCMAKE_BUILD_TYPE=RELEASE
-DINSTALL_PYTHON_EXAMPLES=OFF
-DINSTALL_C_EXAMPLES=OFF
-DOPENCV_ENABLE_NONFREE=ON
-DPYTHON_EXECUTABLE=${python2.7:location}/bin/python
-DANT_EXECUTABLE=${ant:location}/bin/ant
-DBUILD_SHARED_LIBRARY=OFF
-DBUILD_TESTS=OFF
-DBUILD_PERF_TESTS=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_JAVA=ON
-DJAVA_AWT_INCLUDE_PATH=${java-jdk:location}/include
-DJAVA_AWT_LIBRARY=${java-jdk:location}/lib/libawt.so
-DJAVA_INCLUDE_PATH=${java-jdk:location}/include
-DJAVA_INCLUDE_PATH2=${java-jdk:location}/include/linux
-DJAVA_JVM_LIBRARY=${java-jdk:location}/include/jni.h
-DWITH_VTK=OFF
-DWITH_FFMPEG=OFF
-DWITH_GTK=OFF
-DPYTHON_LIBRARIES=${python:location}/lib
-DPYTHON_INCLUDE_DIRS=${python:location}/include/python${python:version}
-DZLIB_INCLUDE_DIR=${zlib:location}/include
-DZLIB_LIBRARY=${zlib:location}/lib/libz.so
-DJPEG_LIBRARY=${libjpeg-turbo2:location}/lib/libjpeg.so
-DJPEG_INCLUDE_DIR=${libjpeg-turbo2:location}/include
-DPNG_LIBRARY=${libpng:location}/lib/libpng.so
-DPNG_PNG_INCLUDE_DIR=${libpng:location}/include
make-options = -C build
post-install =
cp build/lib/libopencv_java430.so @@LOCATION@@/lib
cp build/bin/opencv-430.jar @@LOCATION@@/bin
environment =
PATH=${cmake:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${zlib:location}/lib/pkgconfig:${libpng:location}/lib/pkgconfig:${libjpeg-turbo2:location}/lib/pkgconfig
JAVA_HOME=${java-jdk:location}
JRE_HOME=${java-re:location}
CPPFLAGS=-I${libjpeg-turbo2:location}/include -I${libpng:location}/include
LDFLAGS=-L${libjpeg-turbo2:location}/lib -Wl,-rpath=${libjpeg-turbo2:location}/lib -Wl,-rpath=${libpng:location}/lib -Wl,-rpath=${zlib:location}/lib -L${zlib:location}/lib -Wl,-rpath=@@LOCATION@@/lib
......@@ -69,5 +69,5 @@ post-install = cd '%(prefix)s' &&
# which would otherwise load the system libmagic.so with ctypes
environment =
PATH=${patch:location}/bin:${xz-utils:location}/bin:%(PATH)s
CPPFLAGS=-I${zlib:location}/include -I${readline:location}/include -I${libexpat:location}/include -I${libffi:location}/include -I${ncurses:location}/include -I${ncurses:location}/include -I${bzip2:location}/include -I${gdbm:location}/include -I${openssl:location}/include -I${sqlite3:location}/include -I${gettext:location}/include
CPPFLAGS=-I${zlib:location}/include -I${readline:location}/include -I${libexpat:location}/include -I${libffi:location}/include -I${ncurses:location}/include -I${ncurses:location}/include -I${bzip2:location}/include -I${gdbm:location}/include -I${openssl:location}/include -I${sqlite3:location}/include -I${gettext:location}/include -fPIC
LDFLAGS=-L${zlib:location}/lib -L${readline:location}/lib -L${libexpat:location}/lib -L${libffi:location}/lib -L${ncurses:location}/lib -L${bzip2:location}/lib -L${gdbm:location}/lib -L${openssl:location}/lib -L${sqlite3:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${readline:location}/lib -Wl,-rpath=${libexpat:location}/lib -Wl,-rpath=${libffi:location}/lib -Wl,-rpath=${ncurses:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${gdbm:location}/lib -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${sqlite3:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${file:location}/lib
[buildout]
extends =
../java/buildout.cfg
../xorg/buildout.cfg
../tesseract/buildout.cfg
parts =
sikuli
[java]
<= java-re-temurin-11
[sikuli-download]
recipe = slapos.recipe.build:download
url = https://launchpad.net/sikuli/sikulix/2.0.5/+download/sikulixide-2.0.5.jar
filename = sikulixide-2.0.5.jar
md5sum = 0795f1e0866ee5a7a84e4c89793ea78c
[sikuli]
recipe = slapos.recipe.template
output = ${buildout:parts-directory}/${:_buildout_section_name_}/sikulix
inline =
#!/bin/sh -e
export JAVA_HOME=${java:location}
export JRE_HOME=${java:location}
export PATH=${java:location}/bin:$PATH
# Sikulix jar file hash some embeded shared libraries (libJXGrabKey.so, libopencv_java430.so)
export LD_LIBRARY_PATH=${tesseract:location}/lib:${libX11:location}/lib:${gcc:prefix}/lib64:${gcc:prefix}/lib:${libxcb:location}/lib:${libXau:location}/lib:${libXdmcp:location}/lib$${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
exec java -jar ${sikuli-download:location}/${sikuli-download:filename} "$@"
[buildout]
extends =
../pkgconfig/buildout.cfg
../gtk-3/buildout.cfg
../pillow/buildout.cfg
../numpy/buildout.cfg
../wxwidgets/buildout.cfg
parts =
wxPython
[wxpython-eggs]
recipe = zc.recipe.egg
interpreter = wxpython2.7
eggs =
requests
${numpy:egg}
${pillow-python:egg}
[nanosvg]
recipe = slapos.recipe.build:download-unpacked
shared = true
url = https://github.com/wxWidgets/nanosvg/archive/${:version}.tar.gz
version = 9dd92bbfc6f709e889578a724724ffbd42ac3004
md5sum = b9060d6600ebffa4080d1b29c99d1f30
[wxPython-download]
recipe = slapos.recipe.build:download-unpacked
url = https://github.com/wxWidgets/Phoenix/archive/refs/tags/wxPython-4.1.1.tar.gz
md5sum = e72d99cd865c4220b65065079457c6c5
[wxPython]
recipe = slapos.recipe.build
egg = ${:_buildout_section_name_}
source-location = ${wxPython-download:location}
egg-name = ${:egg}-${versions:wxPython}-py${python:version}-linux-x86_64.egg
location = ${buildout:eggs-directory}/${:egg-name}
python-bin = ${buildout:bin-directory}/${wxpython-eggs:interpreter}
ext-path = ${wxWidgets:location}/${wxWidgets:ext-name}
install =
import os, sys
from slapos.recipe.downloadunpacked import unpack_archive
from zc.buildout import easy_install
env = self.environ
workdir = options['source-location']
python_bin = options['python-bin']
dist = os.path.join(workdir, 'dist')
build = os.path.join(workdir, 'build')
doxygen = os.path.join(workdir, 'bin', 'doxygen-1.8.8-linux')
sip = os.path.join(workdir, 'bin', 'sip-4.19.24-linux64')
waf = os.path.join(workdir, 'bin', 'waf-2.0.19')
wxwidget = os.path.join(workdir, 'ext', 'wxWidgets')
wxpython_eggs = self.buildout['wxpython-eggs']
egg_list = easy_install.working_set(wxpython_eggs['eggs'].split(), [
wxpython_eggs['develop-eggs-directory'],
wxpython_eggs['eggs-directory'],
]).entries
egg_list.append(workdir)
env['PYTHONPATH'] = os.pathsep.join(sys.path + egg_list)
self.cleanup_list += build, dist, doxygen, sip, waf, wxwidget
unpack_archive(self, options['ext-path'], wxwidget)
call([python_bin, 'build.py', 'dox', 'etg', '--nodoc', 'sip', 'build', '--use_syswx', '--release',
'--gtk3'], env=env, cwd=workdir)
call([python_bin, 'build.py', 'bdist_egg', '--use_syswx', '--release',
'--gtk3'], env=env, cwd=workdir)
unpack_archive(self, os.path.join(dist, options['egg-name']), location)
call([python_bin, 'build.py', 'clean'], env=env, cwd=workdir)
environment =
PATH=${xz-utils:location}/bin:${pkgconfig:location}/bin:${wxWidgets:location}/bin:%(PATH)s
LDFLAGS=-L${gtk-3:location}/lib -Wl,-rpath=${gtk-3:location}/lib -L${wxWidgets:location}/lib -Wl,-rpath=${wxWidgets:location}/lib
CPPFLAGS=-I${wxWidgets:location}/include/wx-3.0 -I${wxWidgets:location}/lib/wx/include/gtk3-unicode-3.0 -I${gtk-3:location}/include/gtk-3.0 -I${nanosvg:location}/src
PKG_CONFIG_PATH = ${glib:location}/lib/pkgconfig:${gtk-3:location}/lib/pkgconfig:${gtk-3:pkg_config_depends}
[versions]
wxPython = 4.1.1
[buildout]
extends =
../pkgconfig/buildout.cfg
../libpng/buildout.cfg
../zlib/buildout.cfg
../libjpeg/buildout.cfg
../libtiff/buildout.cfg
../gtk-3/buildout.cfg
../glib/buildout.cfg
../libexpat/buildout.cfg
../libepoxy/buildout.cfg
../jbigkit/buildout.cfg
../gettext/buildout.cfg
../freetype/buildout.cfg
../fontconfig/buildout.cfg
../tar/buildout.cfg
../git/buildout.cfg
parts =
wxWidgets
[catch]
recipe = slapos.recipe.build:download-unpacked
shared = true
url = https://github.com/wxWidgets/Catch/archive/${:version}.tar.gz
version = ee4acb6ae6e32a02bc012d197aa82b1ca7a493ab
md5sum = 68b358d05aca88f593d6b479ae30e9a0
[wxWidgets]
recipe = slapos.recipe.cmmi
shared = true
url = https://github.com/wxWidgets/wxWidgets/archive/${:version}.tar.gz
md5sum = ae15c3695aea69507ed392cf9ea2ec03
version = 493cc3571e0308e1a273231daefa8deb7fbc4cf1
ext-name = wxwidgets-ext.tar.xz
pre-configure =
# configure script is looking for catch in 3rdparty/catch
rm -rf 3rdparty/catch && ln -sf ${catch:location} 3rdparty/catch
configure-options =
--enable-ipv6
--enable-rpath
--with-gtk=3
--with-zlib
--with-expat
--with-libpng
--with-libjpeg
--with-libtiff
--with-gtk-prefix=${gtk-3:location}
--with-themes=all
post-install =
# wxPython need docs and interface folders to build, but wxPython build
# script will write and read to docs/out folder. So w'll extract this
# tarball to wxPython/ext/wxWidgets dir.
tar -acf @@LOCATION@@/${:ext-name} docs interface
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
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
......@@ -525,6 +525,19 @@ environment =
PATH=${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${damageproto:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${fixesproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${kbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig
[xdotool]
recipe = slapos.recipe.cmmi
url = https://github.com/jordansissel/xdotool/releases/download/v3.20211022.1/xdotool-3.20211022.1.tar.gz
md5sum = 9fd993a251a7c38b32381503544b0dd7
configure-command = true
make-options =
PREFIX=@@LOCATION@@
pre-build = mkdir @@LOCATION@@/lib
environment =
PKG_CONFIG_PATH=${libXtst:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libXinerama:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libXi:location}/lib/pkgconfig:${libXi:pkg_config_depends}:${libxkbcommon:location}/lib/pkgconfig:${libxkbcommon:pkg_config_depends}:${recordproto:location}/lib/pkgconfig:${xineramaproto:location}/lib/pkgconfig
PATH=${pkgconfig:location}/bin:%(PATH)s
LDFLAGS=-Wl,-rpath=${libX11:location}/lib -Wl,-rpath=${libXi:location}/lib -Wl,-rpath=${libxkbcommon:location}/lib -Wl,-rpath=${libXtst:location}/lib -Wl,-rpath=${libXinerama:location}/lib
[libxmu]
recipe = slapos.recipe.cmmi
shared = true
......
[buildout]
parts =
xterm
extends =
../freetype/buildout.cfg
../ncurses/buildout.cfg
../autoconf/buildout.cfg
../automake/buildout.cfg
../libtool/buildout.cfg
../gettext/buildout.cfg
../pcre/buildout.cfg
../m4/buildout.cfg
../xorg/buildout.cfg
[libXpm]
recipe = slapos.recipe.cmmi
shared = true
url = https://gitlab.freedesktop.org/xorg/lib/libxpm/-/archive/libXpm-3.5.13/libxpm-libXpm-3.5.13.tar.bz2
md5sum = 9d7680f231e24777c2a2d278cac4be16
pre-configure =
${autoconf:location}/bin/autoreconf -i -I ${libtool:location}/share/aclocal -I ${xorg-util-macros:location}/share/aclocal -I${pkgconfig:location}/share/aclocal
environment =
PATH=${gettext:location}/bin:${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:%(PATH)s
M4=${m4:location}/bin/m4
PKG_CONFIG_PATH=${libSM:location}/lib/pkgconfig:${libICE:location}/lib/pkgconfig:${libICE:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libXext:location}/lib/pkgconfig:${libXt:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig
[libXaw]
recipe = slapos.recipe.cmmi
shared = true
url = https://gitlab.freedesktop.org/xorg/lib/libxaw/-/archive/libXaw-1.0.14/libxaw-libXaw-1.0.14.tar.bz2
md5sum = a121ce2f9d83c633a0e3f2b74be246d5
pre-configure =
${autoconf:location}/bin/autoreconf -i -I ${libtool:location}/share/aclocal -I ${xorg-util-macros:location}/share/aclocal -I${pkgconfig:location}/share/aclocal
environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:%(PATH)s
M4=${m4:location}/bin/m4
PKG_CONFIG_PATH=${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libXext:location}/lib/pkgconfig:${libXt:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libxmu:location}/lib/pkgconfig:${libICE:location}/lib/pkgconfig:${libSM:location}/lib/pkgconfig:${libXpm:location}/lib/pkgconfig
[xterm]
recipe = slapos.recipe.cmmi
url = https://invisible-mirror.net/archives/xterm/xterm-372.tgz
md5sum = 442115b649ec2d11f5664bded595cefe
configure-options =
--with-pcre
--with-freetype-config=${freetype:location}/bin/freetype-config
environment =
PATH=${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${libSM:location}/lib/pkgconfig:${libICE:location}/lib/pkgconfig:${libICE:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libXext:location}/lib/pkgconfig:${libXt:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${libXaw:location}/lib/pkgconfig:${libXpm:location}/lib/pkgconfig:${libxmu:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig
CFLAGS=-I${ncurses:location}/include -I${libX11:location}/include -I${libXt:location}/include -I${xproto:location}/include -I${libXaw:location}/include -I${libxmu:location}/include
LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXt:location}/lib -L${libICE:location}/lib -L${libXext:location}/lib -L${libXaw:location} -L${libSM:location}/lib
# THIS IS NOT A BUILDOUT FILE, despite purposedly using a compatible syntax.
# The only allowed lines here are (regexes):
# - "^#" comments, copied verbatim
# - "^[" section beginings, copied verbatim
# - lines containing an "=" sign which must fit in the following categorie.
# - "^\s*filename\s*=\s*path\s*$" where "path" is relative to this file
# Copied verbatim.
# - "^\s*hashtype\s*=.*" where "hashtype" is one of the values supported
# by the re-generation script.
# Re-generated.
# - other lines are copied verbatim
# Substitution (${...:...}), extension ([buildout] extends = ...) and
# section inheritance (< = ...) are NOT supported (but you should really
# not need these here).
[instance]
filename = instance.cfg.in
md5sum = c4079d70ab3268234651bf6c36234b2f
[template-instance-beremiz]
filename = instance-beremiz.cfg.jinja2.in
md5sum = ac05663b9006b7c4c9810a18e1ea4220
[template-instance-beremiz-test]
filename = instance-beremiz-test.cfg.jinja2.in
md5sum = 6049681908c5619d94499a6f4f224045
[template-fluxbox-menu.in]
filename = fluxbox-menu.in
md5sum = 09560314eae0225b6085f8626f1a603a
[begin] (Fluxbox)
[encoding] {UTF-8}
[exec] (Beremiz IDE) { {{ beremiz_bin }} }
[exec] (Terminal) { {{ xterm_bin }} }
[submenu] (Fluxbox menu)
[config] (Configure)
[submenu] (System Styles) {Choose a style...}
[stylesdir] ({{ fluxbox_location }}/share/fluxbox/styles)
[end]
[submenu] (User Styles) {Choose a style...}
[stylesdir] (~/.fluxbox/styles)
[end]
[workspaces] (Workspace List)
[commanddialog] (Fluxbox Command)
[reconfig] (Reload config)
[restart] (Restart)
[exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center}
[separator]
[exit] (Exit)
[end]
[endencoding]
[end]
[directory]
tests = ${:srv}/tests
[xserver]
display-num = 42
resolution = 1920x1080x24
[wmctrl]
recipe = slapos.cookbook:wrapper
command-line = {{ wmctrl_bin }}
wrapper-path = ${directory:bin}/wmctrl
environment =
XORG_LOCK_DIR=${xserver:lock-dir}
DISPLAY=${xserver:display}
[xdotool]
recipe = slapos.cookbook:wrapper
command-line = {{ xdotool_bin }}
wrapper-path = ${directory:bin}/xdotool
environment =
XORG_LOCK_DIR=${xserver:lock-dir}
DISPLAY=${xserver:display}
[runTestSuite]
env.sh = ${beremiz-env.sh:output}
workdir = {{ nxdtest_dir }}
[beremiz-tests]
recipe = slapos.recipe.template
inline =
#!/bin/sh -e
cd {{ beremiz_location }}/tests
make test_dir=${directory:tests} xserver_command='echo "Using ${xserver:display} on Slapos X Server !";' "$@"
output = ${directory:bin}/beremiztest
[sikulix]
recipe = slapos.cookbook:wrapper
command-line = {{ sikulix_bin }} -v
wrapper-path = ${directory:bin}/sikulix
environment =
JAVA_TOOL_OPTIONS=-Duser.home=${buildout:directory} -Djava.io.tmpdir=${directory:tmp}
[libopencv_java430.so]
recipe = plone.recipe.command
opencv-link = ${buildout:directory}/.Sikulix/SikulixLibs/libopencv_java430.so
# We run sikulix with a random not existing projet so it will initialise all files
# and extract libopencv_java430.so from jar. We can then replace it with slapos
# compiled lib which solves GLIBC issues (version `GLIBC_2.27' not found).
command =
LINK=${:opencv-link}
if [ ! -e "$LINK" ]; then
${sikulix:wrapper-path} -r not_found_for_slapos.sikulix > /dev/null 2>&1 || true
fi
rm -f $LINK
ln -sf {{ opencv_location }}/lib/libopencv_java430.so $LINK
update-command = ${:command}
stop-on-error = true
[buildout]
extends =
{{ instance_nxdtest }}
{{ instance_beremiz }}
parts +=
sikulix
wmctrl
xdotool
beremiz-tests
runTestSuite
libopencv_java430.so
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
{% set part_list = [] -%}
{% set ipv6 = (ipv6 | list)[0] -%}
{% set ipv4 = (ipv4 | list)[0] -%}
[directory]
recipe = slapos.cookbook:mkdirectory
etc = ${buildout:directory}/etc
bin = ${buildout:directory}/bin
srv = ${buildout:directory}/srv
var = ${buildout:directory}/var
tmp = ${buildout:directory}/tmp
log = ${:var}/log
vnc = ${buildout:directory}/.vnc
scripts = ${:etc}/run
services = ${:etc}/service
promise = ${:etc}/promise
ssl = ${:etc}/ssl
auth = ${:tmp}/auth
workdir = ${:srv}/workdir
framebuffer = ${:srv}/framebuffer
fluxbox = ${buildout:directory}/.fluxbox
[gen-certificate]
recipe = plone.recipe.command
command = "{{ openssl_bin }}" req -newkey rsa -batch -new -x509 -days 3650 -nodes -keyout "${:key-file}" -out "${:cert-file}"
stop-on-error = true
cert-file = ${directory:ssl}/beremiz.crt
key-file = ${directory:ssl}/beremiz.key
[novnc-instance]
recipe = slapos.cookbook:novnc
path = ${directory:bin}/novnc
ip = {{ ipv6 }}
port = 6080
vnc-ip = {{ ipv4 }}
vnc-port = ${x11vnc:port}
novnc-location = {{ novnc_location }}
websockify-path = {{ websockify_bin }}
ssl-key-path = ${gen-certificate:key-file}
ssl-cert-path = ${gen-certificate:cert-file}
[websockify-sighandler]
recipe = slapos.cookbook:signalwrapper
wrapper-path = ${directory:bin}/websockify-sighandler
wrapped-path = ${novnc-instance:path}
[websockify-sighandler-service]
recipe = slapos.cookbook:wrapper
command-line = ${websockify-sighandler:wrapper-path}
wrapper-path = ${directory:services}/websockify
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
[novnc-promise]
<= monitor-promise-base
promise = check_socket_listening
name = novnc_promise.py
config-host = ${novnc-instance:ip}
config-port = ${novnc-instance:port}
[x11vnc]
recipe = slapos.cookbook:wrapper
port = 5901
command-line = {{ x11vnc_bin }} -forever -display ${xserver:display} -ncache 10
-noxdamage -rfbport ${:port} -no6 -noipv6 -reopen -o ${directory:log}/x11vnc.log
-usepw -rfbauth ${x11vnc-passwd:passfile} -desktop BeremizVNC
-listen {{ ipv4 }} -xkb
wrapper-path = ${directory:services}/x11vnc
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
environment =
XORG_LOCK_DIR=${directory:run}
wait-for-files =
${xserver:lock-file}
[x11vnc-listen-promise]
<= monitor-promise-base
promise = check_socket_listening
name = x11vnc_listening.py
config-host = {{ ipv4 }}
config-port = ${x11vnc:port}
[random-password]
recipe = slapos.cookbook:generate.password
storage-path = ${directory:etc}/.passwd
bytes = 8
[x11vnc-passwd]
recipe = slapos.recipe.template
passfile = ${directory:vnc}/passwd
inline =
#!/bin/sh -e
if [ -s "${:passfile}" ]; then
echo "Password initialized.";
else
chmod 700 $(dirname ${:passfile});
{{ x11vnc_bin }} -storepasswd ${random-password:passwd} ${:passfile};
fi
output = ${directory:bin}/x11vnc_passwd
mode = 700
[generate-vnc-password]
recipe = plone.recipe.command
stop-on-error = true
command = ${x11vnc-passwd:output}
update-command = ${:command}
# Generate a fonts.conf file.
[font-config]
recipe = slapos.recipe.template:jinja2
url = {{ font_config_tmplt }}
output = ${directory:etc}/fonts.conf
context =
key cachedir :cache-dir
key fonts :fonts
key includes :includes
cache-dir =
${directory:etc}/.fontconfig.cache
fonts =
{{ font_dejavu }}
{{ font_liberation }}
includes =
{{ font_config_loc }}/etc/fonts/conf.d
[xserver]
recipe = slapos.cookbook:wrapper
command-line = {{ xvfb_bin }} ${:display} -screen 0 ${:resolution}x24
-fbdir ${directory:framebuffer}
wrapper-path = ${directory:services}/xserver
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
environment =
XORG_LOCK_DIR=${:lock-dir}
FONTCONFIG_FILE=${font-config:output}
display-num = 0
display = :${:display-num}
resolution = {{ slapparameter_dict.get('screen-resolution', '1280x1024') }}
lock-dir = ${directory:run}
lock-file = ${:lock-dir}/.X${:display-num}-lock
[xserver-promise]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:promise}/xserver-is-up
command-line = bash -c "[ -S ${xserver:lock-dir}/.X11-unix/X${xserver:display-num} ]"
[fluxbox-menu]
recipe = slapos.recipe.template:jinja2
url = {{ fluxbox_menu }}
output = ${directory:fluxbox}/menu
context =
key beremiz_bin beremiz-x11:output
key xterm_bin xterm:output
raw fluxbox_location {{ fluxbox_location }}
[fluxbox-toolbar]
recipe = plone.recipe.command
command =
if [ ! -s "${directory:fluxbox}/init" ]; then
echo "session.screen0.toolbar.placement: TopCenter" > ${directory:fluxbox}/init;
fi
[fluxbox-bin]
recipe = slapos.cookbook:wrapper
command-line = {{ fluxbox_location }}/bin/fluxbox -display ${xserver:display}
wrapper-path = ${directory:bin}/fluxbox
environment =
HOME=${buildout:directory}
XORG_LOCK_DIR=${xserver:lock-dir}
FONTCONFIG_FILE=${font-config:output}
LANG=C.UTF-8
LC_ALL=C.UTF-8
depends =
${fluxbox-menu:recipe}
${fluxbox-toolbar:recipe}
[fluxbox]
recipe = slapos.cookbook:wrapper
command-line = ${fluxbox-bin:wrapper-path} -log ${directory:log}/fluxbox.log
wrapper-path = ${directory:services}/fluxbox
[beremiz-env.sh]
recipe = slapos.recipe.template
inline =
export LD_LIBRARY_PATH={{ mesa_location }}/lib
export PATH=${directory:bin}:{{ git_bin_dir }}:{{ autoconf_bin }}:{{ automake_bin }}:{{ matiec_location }}/bin:{{ bison_location }}/bin:{{ flex_location }}/bin:{{ bin_directory }}:{{ gcc_location }}/bin:$PATH
export XDG_DATA_DIR={{ gtk3_location }}/share
export GSETTINGS_SCHEMA_DIR={{ gtk3_location }}/share/glib-2.0/schemas
export FONTCONFIG_FILE=${font-config:output}
export DISPLAY=${xserver:display}
export XORG_LOCK_DIR=${xserver:lock-dir}
export LANG=C.UTF-8
export LC_ALL=C.UTF-8
export BEREMIZPYTHONPATH={{ python_bin }}
output = ${directory:bin}/beremiz-env.sh
[beremiz-x11]
recipe = slapos.recipe.template
inline =
#!/bin/sh -e
. ${beremiz-env.sh:output}
# wait a bit for xserver
sleep 1
exec {{ python_bin }} {{ beremiz_location }}/Beremiz.py
output = ${directory:bin}/beremiz-x11
[xterm]
recipe = slapos.recipe.template
inline =
#!/bin/sh -e
. ${beremiz-env.sh:output}
export SHELL={{bash_bin}}
exec {{ xterm_bin }}
output = ${directory:bin}/xterm
[request-vnc-frontend]
<= slap-connection
recipe = slapos.cookbook:requestoptional
slave = true
config-https-only = True
config-type = websocket
config-url = https://[${novnc-instance:ip}]:${novnc-instance:port}
return = secure_access domain
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
software-type = RootSoftwareInstance
name = Beremiz VNC
[publish-connection-information]
<= monitor-publish
recipe = slapos.cookbook:publish
backend-url = https://[${novnc-instance:ip}]:${novnc-instance:port}/vnc.html?host=[${novnc-instance:ip}]&port=${novnc-instance:port}&encrypt=1
url = ${request-vnc-frontend:connection-secure_access}/vnc.html?host=${request-vnc-frontend:connection-domain}&port=443&encrypt=1
vnc-password = ${random-password:passwd}
[buildout]
extends =
{{ template_logrotate }}
{{ ' ' ~ template_monitor }}
parts =
monitor-base
fluxbox
novnc-promise
xserver-promise
x11vnc-listen-promise
beremiz-x11
websockify-sighandler-service
request-vnc-frontend
generate-vnc-password
publish-connection-information
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[buildout]
parts = switch-softwaretype
eggs-directory = {{ buildout_egg_directory }}
develop-eggs-directory = {{ buildout_develop_directory }}
[switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype
default = template-{{ instance_template_type }}:output
RootSoftwareInstance = ${:default}
test = template-beremiz-test:output
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised
computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url}
key = ${slap-connection:key-file}
cert = ${slap-connection:cert-file}
[jinja2-template-base]
recipe = slapos.recipe.template:jinja2
output = ${buildout:directory}/${:filename}
extensions = jinja2.ext.do
extra-context =
context =
key develop_eggs_directory buildout:develop-eggs-directory
key buildout_directory buildout:directory
key eggs_directory buildout:eggs-directory
key ipv4 slap-configuration:ipv4
key ipv6 slap-configuration:ipv6
key global_ipv4_prefix network-information:global-ipv4-network
key slapparameter_dict slap-configuration:configuration
key computer_id slap-configuration:computer
raw bin_directory {{ bin_directory }}
raw template_monitor {{ template_monitor_cfg }}
raw template_logrotate {{ logrotate_cfg }}
raw logrotate_cfg {{ logrotate_cfg }}
raw python_bin {{ python_bin }}
${:extra-context}
[template-beremiz]
<= jinja2-template-base
url = {{ template_instance_beremiz }}
filename = instance-beremiz.cfg
extra-context =
raw autoconf_bin {{ autoconf_location }}/bin
raw automake_bin {{ automake_location }}/bin
raw bash_bin {{ bash_location }}/bin/bash
raw beremiz_location {{ beremiz_location }}
raw bison_location {{ bison_location }}
raw flex_location {{ flex_location }}
raw fluxbox_location {{ fluxbox_location }}
raw fluxbox_menu {{ template_fluxbox_menu }}
raw font_config_loc {{ fontconfig_location }}
raw font_config_tmplt {{ template_fonts_conf_target }}
raw font_dejavu {{ font_dejavu }}
raw font_liberation {{ font_liberation }}
raw gcc_location {{ gcc_location }}
raw git_bin_dir {{ git_location }}
raw gtk3_location {{ gtk3_location }}
raw matiec_location {{ matiec_location }}
raw mesa_location {{ mesa_location }}
raw novnc_location {{ novnc_location }}
raw openssl_bin {{ openssl_location }}/bin/openssl
raw websockify_bin {{ bin_directory }}/websockify
raw x11vnc_bin {{ x11vnc_location }}/bin/x11vnc
raw xvfb_bin {{ xserver_location }}/bin/Xvfb
raw xterm_bin {{ xterm_location }}/bin/xterm
[template-beremiz-test]
<= jinja2-template-base
url = {{ template_instance_beremiz_test }}
filename = instance-beremiz-test.cfg
extra-context =
key instance_beremiz template-beremiz:output
raw beremiz_location {{ beremiz_location }}
raw sikulix_bin {{ sikulix_bin }}
raw xvfb_bin {{ xserver_location }}/bin/Xvfb
raw wmctrl_bin {{ wmctrl_location }}/bin/wmctrl
raw instance_nxdtest {{ nxdtest_template }}
raw xdotool_bin {{ xdotool_location }}/bin/xdotool
raw opencv_location {{ opencv_location }}
raw nxdtest_dir {{ buildout_directory }}
[buildout]
extends =
../../stack/slapos.cfg
../../component/autoconf/buildout.cfg
../../component/flex/buildout.cfg
../../component/fonts/buildout.cfg
../../component/noVNC/buildout.cfg
../../component/nginx/buildout.cfg
../../component/lxml-python/buildout.cfg
../../component/numpy/buildout.cfg
../../component/numpy/openblas.cfg
../../component/matplotlib/buildout.cfg
../../component/wxpython/buildout.cfg
../../component/matiec/buildout.cfg
../../component/mesa/buildout.cfg
../../component/libvnc/buildout.cfg
../../component/open62541/buildout.cfg
../../component/sikuli/buildout.cfg
../../component/fluxbox/buildout.cfg
../../component/pygolang/buildout.cfg
../../component/xorg/buildout.cfg
../../component/pytest/buildout.cfg
../../component/opencv/buildout.cfg
../../component/xterm/buildout.cfg
../../stack/monitor/buildout.cfg
../../stack/nxdtest.cfg
./buildout.hash.cfg
parts +=
slapos-cookbook
beremiz-eggs
open62541
Modbus
xterm
instance
[gcc]
# Always build GCC for Fortran (see openblas).
max_version = 0
[python]
# Beremiz works with python2.7 for now, the code is not yet upgraded for python3
part = python2.7
[open62541]
# Beremiz need it to be in folder parts/open62541
# as Beremiz search for open62541 to BEREMIZ_PATH/../open62541
shared = false
post-install =
mkdir -p @@LOCATION@@/build/bin
ln -sf @@LOCATION@@/lib/libopen62541.a @@LOCATION@@/build/bin/libopen62541.a
[twisted]
recipe = zc.recipe.egg:custom
egg = twisted
setup-eggs =
six
pathlib
incremental
[beremiz-eggs]
recipe = zc.recipe.egg
eggs =
${wxPython:egg}
${python-cryptography:egg}
${lxml-python:egg}
${matplotlib:egg}
future
websockify
zeroconf2
enum34
pyro
${twisted:egg}
nevow
autobahn
pycountry
fonttools
${beremiz-setup:egg}
opcua
msgpack
[python-interpreter]
recipe = zc.recipe.egg:scripts
interpreter = python
eggs =
${beremiz-eggs:eggs}
${pygolang:egg}
# Beremiz will use sys.executable to start some internal processes
# then they won't have installed eggs in sys.path.
# -> use pymain from gpython to workaround that and generate
# python where sys.executable point to interpreter
initialization =
from gpython import pymain
pymain(sys.argv)
sys.exit(0)
[beremiz]
recipe = slapos.recipe.build:download-unpacked
# download beremiz at revision bc72db1aa49fb5deabc950ed587772d027733a26
url = https://github.com/beremiz/beremiz/archive/bc72db1aa49fb5deabc950ed587772d027733a26.tar.gz
md5sum = 9ae7a55d4f2e673cbc8d2c4528e069b9
[beremiz-setup]
recipe = zc.recipe.egg:develop
egg = beremiz
setup = ${beremiz:location}
[download-template]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:filename}
[instance]
recipe = slapos.recipe.template:jinja2
output = ${buildout:directory}/instance.cfg
url = ${:_profile_base_location_}/${:filename}
python-bin = ${buildout:bin-directory}/${python-interpreter:interpreter}
type = beremiz
context =
key autoconf_location autoconf:location
key automake_location automake:location
key bash_location bash:location
key beremiz_location beremiz-setup:setup
key bin_directory buildout:bin-directory
key buildout_egg_directory buildout:eggs-directory
key buildout_develop_directory buildout:develop-eggs-directory
key buildout_directory buildout:directory
key template_fluxbox_menu template-fluxbox-menu.in:target
key template_fonts_conf_target template-fonts-conf:output
key template_monitor_cfg monitor2-template:rendered
key template_instance_beremiz template-instance-beremiz:target
key template_instance_beremiz_test template-instance-beremiz-test:target
key template_logrotate template-logrotate-base:rendered
key fontconfig_location fontconfig:location
key font_dejavu dejavu-fonts:location
key font_liberation liberation-fonts:location
key logrotate_cfg template-logrotate-base:rendered
key bison_location bison:location
key flex_location flex:location
key fluxbox_location fluxbox:location
key gcc_location gcc:prefix
key git_location git:location
key gtk3_location gtk-3:location
key instance_template_type :type
key matiec_location matiec:location
key mesa_location mesa:location
key novnc_location noVNC:location
key nxdtest_template nxdtest-instance.cfg:rendered
key python_bin :python-bin
key opencv_location opencv:location
key openssl_location openssl:location
key sikulix_bin sikuli:output
key xdotool_location xdotool:location
key xserver_location xserver:location
key xterm_location xterm:location
key x11vnc_location x11vnc:location
key wmctrl_location wmctrl:location
[template-instance-beremiz]
<= download-template
output = ${buildout:directory}/instance-beremiz.cfg.jinja2
[template-instance-beremiz-test]
<= download-template
output = ${buildout:directory}/instance-beremiz-test.cfg.jinja2
[template-fluxbox-menu.in]
<= download-template
output = ${buildout:directory}/fluxbox-menu.in
[versions]
Pillow = 6.2.2
matplotlib = 2.2.5
kiwisolver = 1.1.0
cycler = 0.10.0
websockify = 0.9.0
Pyro = 3.16
zeroconf2 = 0.19.2
cython = 0.29.24
sphinx = 1.8.5
doc2dash = 2.3.0
Twisted = 20.3.0
autobahn = 19.11.2
attrs = 19.2.0
Automat = 0.3.0
zope.interface = 4.4.2
Nevow = 0.14.5
PyHamcrest = 2.0.3
constantly = 15.1.0
hyperlink = 21.0.0
incremental = 21.3.0
future = 0.18.2
pycountry = 18.12.8
fonttools = 3.44.0
idna = 2.10
PyHamcrest = 2.0.2
txaio = 18.8.1
characteristic = 14.3.0
typing = 3.10.0.0
ifcfg = 0.22
opcua = 0.98.13
futures = 3.3.0
trollius = 2.2.1
pathlib = 1.0.1
ddt = 1.4.4
[buildout]
extends =
software.cfg
../../component/git/buildout.cfg
../../component/pytest/buildout.cfg
[beremiz-repository]
recipe = slapos.recipe.build:gitclone
repository = https://github.com/beremiz/beremiz
branch = wxPython4
location = ${buildout:parts-directory}/beremiz
git-executable = ${git:location}/bin/git
[beremiz-setup]
setup = ${beremiz-repository:location}
depends =
${beremiz-gen-nxdtest:recipe}
[ddt]
recipe = zc.recipe.egg:custom
egg = ddt
setup-eggs =
enum34
[python-interpreter]
eggs +=
${pytest:eggs}
pytest-timeout
${ddt:egg}
[instance]
type = beremiz-test
[gen-nxdtest.sh]
recipe = slapos.recipe.template
output = ${buildout:parts-directory}/gennxdtest.sh
nxdtest = ${buildout:directory}/.nxdtest
inline =
#!/bin/sh -e
cd ${beremiz-repository:location}/tests/ide_tests/
testlist=$(ls -d *.sikuli)
rm -f ${:nxdtest}
for test in $testlist; do
if [ -z "$test" ]; then
continue;
fi
# beremiztest script is generated by the instance (call make test_dir=xxx xserver_command=xxx)
cat <<EOF >> ${:nxdtest}
TestCase(
"$test",
['beremiztest', '$test'],
cwd="""${beremiz-repository:location}/tests""",
summaryf=UnitTest.summary,
)
EOF
done
[beremiz-gen-nxdtest]
recipe = plone.recipe.command
command = ${gen-nxdtest.sh:output}
update-command = ${:command}
Beremiz IDE tests Software Release
##############################################################################
#
# Copyright (c) 2022 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from setuptools import setup, find_packages
version = '0.0.1.dev0'
name = 'slapos.test.beremiz_ide'
with open("README.md") as f:
long_description = f.read()
setup(name=name,
version=version,
description="Beremiz IDE test",
long_description=long_description,
long_description_content_type='text/markdown',
maintainer="Nexedi",
maintainer_email="info@nexedi.com",
url="https://lab.nexedi.com/nexedi/slapos",
packages=find_packages(),
install_requires=[
'slapos.core',
'slapos.libnetworkcache',
'requests',
],
zip_safe=True,
test_suite='test',
)
##############################################################################
#
# Copyright (c) 2019 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from __future__ import unicode_literals
import os
import requests
from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
setUpModule, SlapOSInstanceTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath(
os.path.join(os.path.dirname(__file__), '../software.cfg')))
class TestBeremizInstance(SlapOSInstanceTestCase):
__partition_reference__ = 'B'
@classmethod
def getInstanceSoftwareType(cls):
return 'default'
def setUp(self):
self.connection_parameters = self.computer_partition.getConnectionParameterDict()
def test_url_get(self):
resp = requests.get(self.connection_parameters['backend-url'], verify=False)
self.assertEqual(requests.codes.ok, resp.status_code)
......@@ -226,6 +226,11 @@ setup = ${slapos-repository:location}/software/caucase/test/
egg = slapos.test.erp5testnode
setup = ${slapos-repository:location}/software/erp5testnode/test/
[slapos.test.beremiz-ide-setup]
<= setup-develop-egg
egg = slapos.test.beremiz_ide
setup = ${slapos-repository:location}/software/beremiz-ide/test/
[slapos.core-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.core.git
......@@ -289,6 +294,7 @@ extra-eggs =
${slapos.test.erp5testnode-setup:egg}
${slapos.test.hugo-setup:egg}
${slapos.test.matomo-setup:egg}
${slapos.test.beremiz-ide-setup:egg}
# We don't name this interpreter `python`, so that when we run slapos node
# software, installation scripts running `python` use a python without any
......@@ -374,6 +380,7 @@ extra =
html5as ${slapos.test.html5as-setup:setup}
html5as-base ${slapos.test.html5as-base-setup:setup}
erp5testnode ${slapos.test.erp5testnode-setup:setup}
beremiz-ide ${slapos.test.beremiz-ide-setup:setup}
[versions]
# slapos.core is used from the clone always
......
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