Commit 05cf8fd5 authored by Jérome Perrin's avatar Jérome Perrin

Update Release Candidate

parents c81bfd99 c2287242
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../numpy/openblas.cfg ../numpy/openblas.cfg
../cython/buildout.cfg ../cython/buildout.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
...@@ -20,8 +19,6 @@ setup-eggs = ...@@ -20,8 +19,6 @@ setup-eggs =
${scipy:egg} ${scipy:egg}
${cython:egg} ${cython:egg}
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
[PyWavelets-repository] [PyWavelets-repository]
...@@ -42,6 +39,4 @@ setup-eggs = ...@@ -42,6 +39,4 @@ setup-eggs =
${numpy:egg} ${numpy:egg}
${scipy:egg} ${scipy:egg}
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
...@@ -105,15 +105,14 @@ toolchain { ...@@ -105,15 +105,14 @@ toolchain {
target_system_name: "local" target_system_name: "local"
toolchain_identifier: "local_linux" toolchain_identifier: "local_linux"
tool_path { name: "ar" path: "{{ binutils_path }}/ar" } tool_path { name: "ar" path: "{{ binutils_location }}/bin/ar" }
tool_path { name: "compat-ld" path: "{{ binutils_path }}/ld" } tool_path { name: "compat-ld" path: "{{ gcc_location }}/bin/ld" }
tool_path { name: "cpp" path: "{{ cpp_path }}" } tool_path { name: "cpp" path: "{{ gcc_location }}/bin/cpp" }
tool_path { name: "dwp" path: "/usr/bin/dwp" } tool_path { name: "dwp" path: "/usr/bin/dwp" }
tool_path { name: "gcc" path: "{{ gcc_path }}" } tool_path { name: "gcc" path: "{{ gcc_location }}/bin/gcc" }
cxx_flag: "-std=c++0x" cxx_flag: "-std=c++0x"
linker_flag: "-lstdc++" linker_flag: "-lstdc++"
linker_flag: "-B/usr/bin/" linker_flag: "-B/usr/bin/"
linker_flag: "-Wl,rpath={{ gcc_lib64_path }}"
# TODO(bazel-team): In theory, the path here ought to exactly match the path # TODO(bazel-team): In theory, the path here ought to exactly match the path
# used by gcc. That works because bazel currently doesn't track files at # used by gcc. That works because bazel currently doesn't track files at
...@@ -122,19 +121,19 @@ toolchain { ...@@ -122,19 +121,19 @@ toolchain {
cxx_builtin_include_directory: "/usr/lib/gcc/" cxx_builtin_include_directory: "/usr/lib/gcc/"
cxx_builtin_include_directory: "/usr/local/include" cxx_builtin_include_directory: "/usr/local/include"
cxx_builtin_include_directory: "/usr/include" cxx_builtin_include_directory: "/usr/include"
cxx_builtin_include_directory: "{{ include_path }}" cxx_builtin_include_directory: "{{ gcc_location }}/include"
tool_path { name: "gcov" path: "{{ gconv_path }}" } tool_path { name: "gcov" path: "{{ gcc_location }}/bin/gconv" }
# C(++) compiles invoke the compiler (as that is the one knowing where # C(++) compiles invoke the compiler (as that is the one knowing where
# to find libraries), but we provide LD so other rules can invoke the linker. # to find libraries), but we provide LD so other rules can invoke the linker.
tool_path { name: "ld" path: "{{ binutils_path }}/ld" } tool_path { name: "ld" path: "{{ gcc_location }}/bin/ld" }
tool_path { name: "nm" path: "{{ binutils_path }}/nm" } tool_path { name: "nm" path: "{{ binutils_location }}/bin/nm" }
tool_path { name: "objcopy" path: "{{ binutils_path }}/objcopy" } tool_path { name: "objcopy" path: "{{ binutils_location }}/bin/objcopy" }
objcopy_embed_flag: "-I" objcopy_embed_flag: "-I"
objcopy_embed_flag: "binary" objcopy_embed_flag: "binary"
tool_path { name: "objdump" path: "{{ binutils_path }}/objdump" } tool_path { name: "objdump" path: "{{ binutils_location }}/bin/objdump" }
tool_path { name: "strip" path: "{{ binutils_path }}/strip" } tool_path { name: "strip" path: "{{ binutils_location }}/bin/strip" }
# Anticipated future default. # Anticipated future default.
unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-no-canonical-prefixes"
......
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg ../defaults.cfg
../unzip/buildout.cfg ../unzip/buildout.cfg
../zip/buildout.cfg ../zip/buildout.cfg
parts = parts =
...@@ -22,19 +22,9 @@ mode = 640 ...@@ -22,19 +22,9 @@ mode = 640
filename = bazel_tools_cpp_CROSSTOOL filename = bazel_tools_cpp_CROSSTOOL
template = ${:_profile_base_location_}/${:filename}.in template = ${:_profile_base_location_}/${:filename}.in
rendered = ${:location}/${:filename} rendered = ${:location}/${:filename}
cpp_path = ${gcc:location}/bin/cpp
gcc_path = ${gcc:location}/bin/gcc
binutils_path = ${binutils:location}/bin
gconv_path = ${gcc:location}/bin/gconv
include_path = ${gcc:location}/include
gcc_lib64_path = ${gcc:location}/lib64
context = context =
key cpp_path template-bazel-crosstool:cpp_path key gcc_location gcc:prefix
key gcc_path template-bazel-crosstool:gcc_path key binutils_location binutils:location
key binutils_path template-bazel-crosstool:binutils_path
key gconv_path template-bazel-crosstool:gconv_path
key include_path template-bazel-crosstool:include_path
key gcc_lib64_path template-bazel-crosstool:gcc_lib64_path
[template-bazel-src-main-cpp-build] [template-bazel-src-main-cpp-build]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
...@@ -43,9 +33,11 @@ mode = 640 ...@@ -43,9 +33,11 @@ mode = 640
filename = bazel_src_main_cpp_BUILD filename = bazel_src_main_cpp_BUILD
template = ${:_profile_base_location_}/${:filename}.in template = ${:_profile_base_location_}/${:filename}.in
rendered = ${:location}/${:filename} rendered = ${:location}/${:filename}
linkopts = -Wl,-rpath,${gcc:location}/lib64 # We previously passed an argument that we don't want anymore. Rather than
# changing templates, we pass a dummy argument that will have no effect.
linkopts = -DSLAPOS_DUMMY=
context = context =
key linkopts template-bazel-src-main-cpp-build:linkopts key linkopts :linkopts
[template-bazel-src-main-tools-build] [template-bazel-src-main-tools-build]
<= template-bazel-src-main-cpp-build <= template-bazel-src-main-cpp-build
...@@ -67,9 +59,6 @@ bazel-src-main-tools-build-path = ${template-bazel-src-main-tools-build:rendered ...@@ -67,9 +59,6 @@ bazel-src-main-tools-build-path = ${template-bazel-src-main-tools-build:rendered
bazel-src-tools-singlejar-build-path = ${template-bazel-src-tools-singlejar-build:rendered} bazel-src-tools-singlejar-build-path = ${template-bazel-src-tools-singlejar-build:rendered}
unzip-bin = ${unzip:location}/bin unzip-bin = ${unzip:location}/bin
zip-bin = ${zip:location}/bin zip-bin = ${zip:location}/bin
gcc-bin = ${gcc:location}/bin
gcc-lib = ${gcc:location}/lib
gcc-lib64 = ${gcc:location}/lib64
java_home = ${zulu:location} java_home = ${zulu:location}
bazelrc = ${:_profile_base_location_}/bazelrc bazelrc = ${:_profile_base_location_}/bazelrc
install = install =
...@@ -98,19 +87,10 @@ install = ...@@ -98,19 +87,10 @@ install =
path = ':'.join(( path = ':'.join((
options['unzip-bin'], options['unzip-bin'],
options['zip-bin'], options['zip-bin'],
options['gcc-bin'],
os.environ['PATH'] os.environ['PATH']
)) ))
env = {'JAVA_HOME':options['java_home'], env = {'JAVA_HOME':options['java_home'],
'PATH':path, 'PATH':path,
'LD_LIBRARY_PATH':':'.join((
options['gcc-lib'],
options['gcc-lib64'],
os.environ.get('LD_LIBRARY_PATH', '')
)),
'LDFLAGS':'-Wl,-rpath='+options['gcc-lib64'],
'CC':options['gcc-bin']+'/gcc',
'CXX':options['gcc-bin']+'/g++',
'BAZELRC':options['bazelrc'], 'BAZELRC':options['bazelrc'],
'VERBOSE':'yes', 'VERBOSE':'yes',
} }
......
...@@ -3,7 +3,6 @@ parts = ...@@ -3,7 +3,6 @@ parts =
boost-lib boost-lib
extends = extends =
../bzip2/buildout.cfg ../bzip2/buildout.cfg
../gcc/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
...@@ -13,13 +12,12 @@ shared = true ...@@ -13,13 +12,12 @@ shared = true
url = http://downloads.sourceforge.net/sourceforge/boost/boost_1_67_0.tar.bz2 url = http://downloads.sourceforge.net/sourceforge/boost/boost_1_67_0.tar.bz2
md5sum = ced776cb19428ab8488774e1415535ab md5sum = ced776cb19428ab8488774e1415535ab
location = @@LOCATION@@ location = @@LOCATION@@
configure-command = ./bootstrap.sh --prefix=${:location} --with-python=${python2.7:location}/bin/python2.7 --without-icu configure-command = ./bootstrap.sh --prefix=${:location} --without-icu
make-binary = make-binary =
make-options = make-options =
make-targets = for a in $MAKEFLAGS; do case $a in -j*) j=$a; break;; esac; done; make-targets = for a in $MAKEFLAGS; do case $a in -j*) j=$a; break;; esac; done;
./b2 $j link=shared dll-path=${:location}/lib:${bzip2:location}/lib:${gcc:location}/lib:${gcc:location}/lib64:${zlib:location}/lib:${xz-utils:location}/lib install ./b2 $j link=shared dll-path=${:location}/lib:${bzip2:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib install
environment = environment =
PATH=${gcc:location}/bin:%(PATH)s
BZIP2_INCLUDE=${bzip2:location}/include BZIP2_INCLUDE=${bzip2:location}/include
BZIP2_LIBPATH=${bzip2:location}/lib BZIP2_LIBPATH=${bzip2:location}/lib
ZLIB_INCLUDE=${zlib:location}/include ZLIB_INCLUDE=${zlib:location}/include
......
...@@ -8,8 +8,6 @@ parts = ...@@ -8,8 +8,6 @@ parts =
[gowork] [gowork]
# Caddy 1.x+ uses go modules, for which gowork does not work yet # Caddy 1.x+ uses go modules, for which gowork does not work yet
golang = ${golang1.12:location} golang = ${golang1.12:location}
gcc-bin-directory = ${golang1.12:gcc-bin-directory}
install = install =
[gowork.goinstall] [gowork.goinstall]
......
[buildout]
extends =
python-2.7/buildout.cfg
python3/buildout.cfg
python = python
# Unless a software release needs several versions of either Python or GCC
# at the same time, the [pythonX.Y] & [gcc-X.Y] must not be referred directly,
# even if a component works only with specific versions.
# There may be exceptions in profiles that were written before this one.
[python]
recipe = slapos.recipe.build
part = python2.7
init =
python = self.buildout[options['part']]
for x in 'location', 'executable', 'version':
options[x] = python[x]
update =
import os
path, os.environ['PYTHON'] = os.path.split(options['executable'])
PATH = os.environ['PATH']
if path not in PATH.split(os.pathsep):
os.environ['PATH'] = path + os.pathsep + PATH
depends = ${gcc:recipe}
[gcc]
recipe = slapos.recipe.build
# Latest version provided by SlapOS.
part = gcc-8.2
# Minimum version for all components that might be required for
# slapos.rebootstrap (see https://bugs.python.org/issue34112 about Python 3.7+).
min_version = 5.4
init =
import os, subprocess
parse_version = lambda ver: tuple(map(int, ver.strip().split('.')))
try:
current = subprocess.check_output(('gcc', '-dumpfullversion'),
stderr=subprocess.STDOUT,
universal_newlines=True).strip()
except subprocess.CalledProcessError: # BBB: old GCC
current = subprocess.check_output(('gcc', '-dumpversion'),
universal_newlines=True).strip()
self.system_version = current
# If we're still going to use the same GCC,
# the conditions have no impact on the dependant parts.
min_version = options.pop('min_version', None)
max_version = options.pop('max_version', None)
###
if (parse_version(min_version or current)
<= parse_version(current)
<= parse_version(max_version or current)):
del options['part']
for path in os.getenv('PATH', '').split(os.pathsep): # PY3: shutil.which
gcc = os.path.join(path, 'gcc')
if os.access(gcc, os.X_OK) and not os.path.isdir(gcc):
options['prefix'] = os.path.dirname(path)
break
else:
options['prefix'] = self.buildout[options['part']]['location']
options.barrier()
update =
if 'part' in options:
import os
env = os.environ
env['PATH'] = os.pathsep.join((
os.path.join(options['prefix'], 'bin'),
env['PATH']
))
else:
print("Using system GCC (%s)" % self.system_version)
...@@ -3,28 +3,19 @@ parts = ...@@ -3,28 +3,19 @@ parts =
firewalld-patch firewalld-patch
extends = extends =
../pkgconfig/buildout.cfg ../defaults.cfg
../autoconf/buildout.cfg
../automake/buildout.cfg
../libtool/buildout.cfg ../libtool/buildout.cfg
../intltool/buildout.cfg ../intltool/buildout.cfg
../gettext/buildout.cfg
../glib/buildout.cfg ../glib/buildout.cfg
../m4/buildout.cfg
../python-slip/buildout.cfg ../python-slip/buildout.cfg
../dbus/buildout.cfg ../dbus/buildout.cfg
../python-2.7/buildout.cfg
../libffi/buildout.cfg
../flex/buildout.cfg ../flex/buildout.cfg
../bison/buildout.cfg
../xz-utils/buildout.cfg
../perl/buildout.cfg
[firewalld] [firewalld]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/t-woerner/firewalld/archive/v0.3.14.2.tar.gz url = https://github.com/t-woerner/firewalld/archive/v0.3.14.2.tar.gz
md5sum = b8f81b536ede502721f69300d374447b md5sum = b8f81b536ede502721f69300d374447b
python-egg = ${buildout:parts-directory}/${:_buildout_section_name_}/lib/python2.7/site-packages python-egg = ${buildout:parts-directory}/${:_buildout_section_name_}/lib/python${python:version}/site-packages
pre-configure = pre-configure =
sed -i -E 's,(^SUBDIRS *=.*) doc(\b.*),\1\2,' Makefile.am sed -i -E 's,(^SUBDIRS *=.*) doc(\b.*),\1\2,' Makefile.am
aclocal -I${pkgconfig:location}/share/aclocal -I${gettext:location}/share/aclocal -I${libtool:location}/share/aclocal aclocal -I${pkgconfig:location}/share/aclocal -I${gettext:location}/share/aclocal -I${libtool:location}/share/aclocal
...@@ -35,7 +26,6 @@ environment = ...@@ -35,7 +26,6 @@ environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${pkgconfig:location}/bin:${libtool:location}/bin:${intltool:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:%(PATH)s PATH=${autoconf:location}/bin:${automake:location}/bin:${pkgconfig:location}/bin:${libtool:location}/bin:${intltool:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:%(PATH)s
CPPFLAGS=-I${gettext:location}/include CPPFLAGS=-I${gettext:location}/include
LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
PYTHON=${python2.7:location}/bin/python2.7
M4=${m4:location}/bin/m4 M4=${m4:location}/bin/m4
ACLOCAL_PATH=${pkgconfig:location}/share/aclocal:${gettext:location}/share/aclocal:${libtool:location}/share/aclocal:${glib:location}/share/aclocal:${intltool:location}/share/aclocal ACLOCAL_PATH=${pkgconfig:location}/share/aclocal:${gettext:location}/share/aclocal:${libtool:location}/share/aclocal:${glib:location}/share/aclocal:${intltool:location}/share/aclocal
FIREWALLD_DEVEL_ENV=${buildout:parts-directory}/${:_buildout_section_name_}/src FIREWALLD_DEVEL_ENV=${buildout:parts-directory}/${:_buildout_section_name_}/src
...@@ -46,19 +36,16 @@ recipe = slapos.recipe.cmmi ...@@ -46,19 +36,16 @@ recipe = slapos.recipe.cmmi
version = 1.2.4 version = 1.2.4
url = http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${:version}.tar.gz url = http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${:version}.tar.gz
md5sum = 7372a588c83a7232b4e08159bfd48fe5 md5sum = 7372a588c83a7232b4e08159bfd48fe5
python-egg = ${buildout:parts-directory}/${:_buildout_section_name_}/lib/python2.7/site-packages python-egg = ${buildout:parts-directory}/${:_buildout_section_name_}/lib/python${python:version}/site-packages
environment = environment =
PKG_CONFIG_PATH=${dbus:location}/lib/pkgconfig:${dbus-glib:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig PKG_CONFIG_PATH=${dbus:location}/lib/pkgconfig:${dbus-glib:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig
PATH=${pkgconfig:location}/bin:${python2.7:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:%(PATH)s
DBUS_CFLAGS=-I${dbus:location}/include/dbus-1.0 -I${dbus:location}/lib/dbus-1.0/include DBUS_CFLAGS=-I${dbus:location}/include/dbus-1.0 -I${dbus:location}/lib/dbus-1.0/include
DBUS_LIBS=-L${dbus:location}/lib -ldbus-1 DBUS_LIBS=-L${dbus:location}/lib -ldbus-1
DBUS_GLIB_CFLAGS=-I${dbus-glib:location}/include/dbus-1.0 DBUS_GLIB_CFLAGS=-I${dbus-glib:location}/include/dbus-1.0
DBUS_GLIB_LIBS=-L${dbus-glib:location}/lib -ldbus-glib-1 DBUS_GLIB_LIBS=-L${dbus-glib:location}/lib -ldbus-glib-1
CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include
LDFLAGS=-L${glib:location}/lib -Wl,-rpath=${glib:location}/lib LDFLAGS=-L${glib:location}/lib -Wl,-rpath=${glib:location}/lib
PYTHON=${python2.7:location}/bin/python2.7
PYTHON_INCLUDES=-I${python2.7:location}/include/python2.7
PYTHON_LIBS=-L${python2.7:location}/lib -lpython2.7 -lpthread -ldl -lutil -lm
[gobject-introspection] [gobject-introspection]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -72,7 +59,6 @@ environment = ...@@ -72,7 +59,6 @@ environment =
PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig
CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include
LDFLAGS=-L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${libffi:location}/lib -Wl,-rpath=${libffi:location}/lib -lffi LDFLAGS=-L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${libffi:location}/lib -Wl,-rpath=${libffi:location}/lib -lffi
PYTHON=${python2.7:location}/bin/python2.7
GLIB_CFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include GLIB_CFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include
GLIB_LIBS=-L${glib:location}/lib -lglib-2.0 -lintl -lgobject-2.0 GLIB_LIBS=-L${glib:location}/lib -lglib-2.0 -lintl -lgobject-2.0
FFI_CFLAGS=-I${libffi:location}/include FFI_CFLAGS=-I${libffi:location}/include
...@@ -82,19 +68,17 @@ environment = ...@@ -82,19 +68,17 @@ environment =
[pygobject3] [pygobject3]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/pygobject-3.22.0.tar.xz url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/pygobject-3.22.0.tar.xz
python-egg = ${buildout:parts-directory}/${:_buildout_section_name_}/lib/python2.7/site-packages python-egg = ${buildout:parts-directory}/${:_buildout_section_name_}/lib/python${python:version}/site-packages
md5sum = ed4117ed5d554d25fd7718807fbf819f md5sum = ed4117ed5d554d25fd7718807fbf819f
pre-configure = pre-configure =
sed -i 's#/usr/local#${gobject-introspection:location}#g' ${gobject-introspection:location}/lib/pkgconfig/gobject-introspection-1.0.pc sed -i 's#/usr/local#${gobject-introspection:location}#g' ${gobject-introspection:location}/lib/pkgconfig/gobject-introspection-1.0.pc
configure-options = configure-options =
--disable-static --disable-static
--disable-cairo --disable-cairo
--with-python=${python2.7:location}/bin/python2.7
environment = environment =
PATH=${pkgconfig:location}/bin:${libtool:location}/bin:${glib:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:${libtool:location}/bin:${glib:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${gobject-introspection:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${gobject-introspection:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig
PYTHON=${python2.7:location}/bin/python2.7
FFI_CFLAGS=-I${libffi:location}/include FFI_CFLAGS=-I${libffi:location}/include
FFI_LIBS=-L${libffi:location}/lib -Wl,-rpath=${libffi:location}/lib -lffi FFI_LIBS=-L${libffi:location}/lib -Wl,-rpath=${libffi:location}/lib -lffi
CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include -I${gettext:location}/include -I${libffi:location}/include CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include -I${gettext:location}/include -I${libffi:location}/include
...@@ -115,13 +99,13 @@ md5sum = 893752ba2e93a1e96334dfee19f884ad ...@@ -115,13 +99,13 @@ md5sum = 893752ba2e93a1e96334dfee19f884ad
[firewalld-patch] [firewalld-patch]
recipe = plone.recipe.command recipe = plone.recipe.command
python = ${buildout:directory}/bin/${firewalld-eggs:interpreter} python = ${buildout:bin-directory}/${firewalld-eggs:interpreter}
command = command =
sed -i 's#/usr/bin/python -Es#${:python}#' ${firewalld:location}/bin/firewall-cmd sed -i 's#/usr/bin/python -Es#${:python}#' ${firewalld:location}/bin/firewall-cmd
sed -i 's#/usr/bin/python -Es#${:python}#' ${firewalld:location}/sbin/firewalld sed -i 's#/usr/bin/python -Es#${:python}#' ${firewalld:location}/sbin/firewalld
sed -i 's#DefaultZone=public#DefaultZone=trusted#' ${firewalld:location}/etc/firewalld/firewalld.conf sed -i 's#DefaultZone=public#DefaultZone=trusted#' ${firewalld:location}/etc/firewalld/firewalld.conf
sed -i 's#/usr/lib/firewalld#${firewalld:location}/lib/firewalld#' ${firewalld:location}/lib/python2.7/site-packages/firewall/config/__init__.py sed -i 's#/usr/lib/firewalld#${firewalld:location}/lib/firewalld#' ${firewalld:python-egg}/firewall/config/__init__.py
sed -i 's#/usr/share/#${firewalld:location}/share#' ${firewalld:location}/lib/python2.7/site-packages/firewall/config/__init__.py sed -i 's#/usr/share/#${firewalld:location}/share#' ${firewalld:python-egg}/firewall/config/__init__.py
sed -i "s#import sys#import sys, os\n\nos.environ['GI_TYPELIB_PATH'] = '${gobject-introspection:location}/lib/girepository-1.0/'#" ${:python} sed -i "s#import sys#import sys, os\n\nos.environ['GI_TYPELIB_PATH'] = '${gobject-introspection:location}/lib/girepository-1.0/'#" ${:python}
sed -i 's#<syslog/>#<!-- no syslog -->#' ${dbus:location}/etc/dbus-1/system.conf sed -i 's#<syslog/>#<!-- no syslog -->#' ${dbus:location}/etc/dbus-1/system.conf
sed -i 's#<user>messagebus</user>#<user>slapsoft</user>#' ${dbus:location}/share/dbus-1/system.conf sed -i 's#<user>messagebus</user>#<user>slapsoft</user>#' ${dbus:location}/share/dbus-1/system.conf
......
...@@ -11,12 +11,16 @@ extends = ...@@ -11,12 +11,16 @@ extends =
../zlib/buildout.cfg ../zlib/buildout.cfg
parts = parts =
gcc gcc-8.2
[gcc-common] [gcc-common]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://ftp.gnu.org/gnu/gcc/gcc-${:version}/gcc-${:version}.tar.xz url = http://ftp.gnu.org/gnu/gcc/gcc-${:version}/gcc-${:version}.tar.xz
pre-configure =
set %(location)s/bin
mkdir -p $1
ln -s ${binutils:location}/bin/ld $1/ld
configure-options = configure-options =
--disable-bootstrap --disable-bootstrap
--disable-multilib --disable-multilib
...@@ -25,17 +29,33 @@ configure-options = ...@@ -25,17 +29,33 @@ configure-options =
--with-mpc=${mpc:location} --with-mpc=${mpc:location}
--enable-languages="c,c++,fortran" --enable-languages="c,c++,fortran"
--with-isl=${isl:location} --with-isl=${isl:location}
--with-ld=${binutils:location}/bin/ld --with-ld=@@LOCATION@@/bin/ld
--with-as=${binutils:location}/bin/as --with-as=${binutils:location}/bin/as
post-install = post-install =
cd '@@LOCATION@@/bin' cd '%(location)s/bin'
ln -s gcc cc ln -s gcc cc
rm ld
for x in `for x in %(location)s/lib*/*.so; do echo $${x%%/*}; done |sort -u`
do set $1:$x "$2 -rpath=$x"
done
cat <<EOF >ld
#!/bin/sh -e
case \$#:\$1 in 0:|1:-*) ;; *)
if [ "\$LD_RUN_PATH" ]
then LD_RUN_PATH=\$LD_RUN_PATH$1
else set -- "\$@" $2
fi
;;
esac
exec ${binutils:location}/bin/ld "\$@"
EOF
chmod +x ld
environment = environment =
CPPFLAGS=-I${zlib:location}/include CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${isl:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${mpfr:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${isl:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${mpfr:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
PATH=${binutils:location}/bin:${gettext:location}/bin:${perl:location}/bin:${tar:location}/bin:%(PATH)s PATH=${binutils:location}/bin:${gettext:location}/bin:${perl:location}/bin:${tar:location}/bin:%(PATH)s
[gcc] [gcc-5.5]
<= gcc-common <= gcc-common
version = 5.5.0 version = 5.5.0
md5sum = 0f70424213b4a1113c04ba66ddda0c1f md5sum = 0f70424213b4a1113c04ba66ddda0c1f
...@@ -52,7 +72,7 @@ version = 8.2.0 ...@@ -52,7 +72,7 @@ version = 8.2.0
md5sum = 4ab282f414676496483b3e1793d07862 md5sum = 4ab282f414676496483b3e1793d07862
[gcc-minimal] [gcc-minimal]
<= gcc <= gcc-5.5
configure-options = configure-options =
--disable-bootstrap --disable-bootstrap
--disable-multilib --disable-multilib
......
...@@ -6,18 +6,9 @@ extends = ...@@ -6,18 +6,9 @@ extends =
../perl/buildout.cfg ../perl/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../python-2.7/buildout.cfg
parts = parts =
glib glib
# --with-python=${buildout:executable} is simpler but we may end up with
# scripts whose shebang exceeds the kernel limit.
# And ${buildout:executable}/.. is not a valid $PATH part.
[glib-python]
recipe = collective.recipe.shelloutput
commands =
bin-directory = dirname ${buildout:executable}
[glib] [glib]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
patches = patches =
...@@ -27,7 +18,6 @@ shared = true ...@@ -27,7 +18,6 @@ shared = true
url = https://ftp.gnome.org/pub/gnome/sources/glib/2.56/glib-2.56.4.tar.xz url = https://ftp.gnome.org/pub/gnome/sources/glib/2.56/glib-2.56.4.tar.xz
md5sum = 17c3dca43d99a4882384f1a7b530b80b md5sum = 17c3dca43d99a4882384f1a7b530b80b
configure-options = configure-options =
--with-python=python
--disable-libmount --disable-libmount
--disable-static --disable-static
--disable-selinux --disable-selinux
...@@ -35,7 +25,7 @@ configure-options = ...@@ -35,7 +25,7 @@ configure-options =
--disable-xattr --disable-xattr
--disable-man --disable-man
environment = environment =
PATH=${glib-python:bin-directory}:${gettext:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${gettext:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
CPPFLAGS=-I${gettext:location}/include -I${zlib:location}/include CPPFLAGS=-I${gettext:location}/include -I${zlib:location}/include
LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
LIBFFI_CFLAGS=-I${libffi:location}/include LIBFFI_CFLAGS=-I${libffi:location}/include
......
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../gettext/buildout.cfg ../gettext/buildout.cfg
../glib/buildout.cfg ../glib/buildout.cfg
../libsigc/buildout.cfg ../libsigc/buildout.cfg
...@@ -19,8 +18,7 @@ pkg_config_depends = ${glib:location}/lib/pkgconfig:${libsigc:location}/lib/pkgc ...@@ -19,8 +18,7 @@ pkg_config_depends = ${glib:location}/lib/pkgconfig:${libsigc:location}/lib/pkgc
configure-options = configure-options =
--disable-documentation --disable-documentation
environment = environment =
PATH=${gcc:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${glib:location}/bin:%(PATH)s PATH=${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:${glib:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${gettext:location}/include CPPFLAGS=-I${gettext:location}/include
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
...@@ -17,12 +17,9 @@ configure-command = : ...@@ -17,12 +17,9 @@ configure-command = :
location = @@LOCATION@@ location = @@LOCATION@@
make-binary = make-binary =
make-targets= cd src && ./all.bash && cp -alf .. ${:location} make-targets= cd src && ./all.bash && cp -alf .. ${:location}
# gcc version to use
gcc-bin-directory = ${gcc-8.2:location}/bin
# some testdata files have an issue with slapos.extension.strip. # some testdata files have an issue with slapos.extension.strip.
post-install = ${findutils:location}/bin/find ${:location}/src -type d -name testdata -exec rm -rf {} \; || true post-install = ${findutils:location}/bin/find ${:location}/src -type d -name testdata -exec rm -rf {} \; || true
environment = environment =
PATH=${:gcc-bin-directory}:%(PATH)s
GOROOT_FINAL=${:location} GOROOT_FINAL=${:location}
${:environment-extra} ${:environment-extra}
...@@ -106,9 +103,6 @@ depends = ${gowork.goinstall:recipe} ...@@ -106,9 +103,6 @@ depends = ${gowork.goinstall:recipe}
# go version used for the workspace (possible to override in applications) # go version used for the workspace (possible to override in applications)
golang = ${golang1.10:location} golang = ${golang1.10:location}
# gcc version must be compatible with go version selected
gcc-bin-directory = ${golang1.10:gcc-bin-directory}
# no special build flags by default # no special build flags by default
buildflags = buildflags =
...@@ -120,7 +114,6 @@ recipe = plone.recipe.command ...@@ -120,7 +114,6 @@ recipe = plone.recipe.command
command = : command = :
# env.sh for compiling and running go programs # env.sh for compiling and running go programs
[gowork]
env.sh = ${gowork-env.sh:output} env.sh = ${gowork-env.sh:output}
[gowork-env.sh] [gowork-env.sh]
...@@ -128,7 +121,7 @@ recipe = slapos.recipe.template ...@@ -128,7 +121,7 @@ recipe = slapos.recipe.template
url = ${:_profile_base_location_}/goenv.sh.in url = ${:_profile_base_location_}/goenv.sh.in
output = ${gowork:directory}/env.sh output = ${gowork:directory}/env.sh
depends = ${gowork.mkdir:recipe} depends = ${gowork.mkdir:recipe}
md5sum = 7eaad1f9aabd3cfad554975098c5d4c3 md5sum = 6bcf96cf18ea68ce6e378ed8d49346a3
[gowork.mkdir] [gowork.mkdir]
# NOTE do not use slapos.cookbook:mkdirectory here - if anything in software (not instance) # NOTE do not use slapos.cookbook:mkdirectory here - if anything in software (not instance)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# ---- 8< ---- (buildout substitution here) # ---- 8< ---- (buildout substitution here)
# PATH so that go & friends work out of the box # PATH so that go & friends work out of the box
export PATH=${gowork:golang}/bin:${git:location}/bin:${pkgconfig:location}/bin:${buildout:bin-directory}:${gowork:gcc-bin-directory}:$PATH export PATH=${gowork:golang}/bin:${git:location}/bin:${pkgconfig:location}/bin:${buildout:bin-directory}:${gcc:prefix}/bin:$PATH
X=${gowork:directory} X=${gowork:directory}
export PKG_CONFIG_PATH=$(echo -n "${gowork:cpkgpath}" |tr '\n' ':'):$PKG_CONFIG_PATH export PKG_CONFIG_PATH=$(echo -n "${gowork:cpkgpath}" |tr '\n' ':'):$PKG_CONFIG_PATH
......
...@@ -107,7 +107,6 @@ shared = true ...@@ -107,7 +107,6 @@ shared = true
url = https://download.gnome.org/sources/atk/2.28/atk-2.28.1.tar.xz url = https://download.gnome.org/sources/atk/2.28/atk-2.28.1.tar.xz
md5sum = dfb5e7474220afa3f4ca7e45af9f3a11 md5sum = dfb5e7474220afa3f4ca7e45af9f3a11
configure-options = configure-options =
--with-python=${python2.7:location}/bin/python2.7
--disable-gtk-doc-html --disable-gtk-doc-html
environment = environment =
PATH=${gettext:location}/bin:${glib:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${gettext:location}/bin:${glib:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
extends = extends =
../bzip2/buildout.cfg ../bzip2/buildout.cfg
../freetype/buildout.cfg ../freetype/buildout.cfg
../gcc/buildout.cfg
../gettext/buildout.cfg ../gettext/buildout.cfg
../glibmm/buildout.cfg ../glibmm/buildout.cfg
../gtk-2/buildout.cfg ../gtk-2/buildout.cfg
...@@ -23,11 +22,10 @@ configure-options = ...@@ -23,11 +22,10 @@ configure-options =
--disable-static --disable-static
--disable-documentation --disable-documentation
environment = environment =
PATH=${freetype:location}/bin:${gcc:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${freetype:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${libX11:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${xproto:location}/include CPPFLAGS=-I${libX11:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${xproto:location}/include
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib -L${libXrender:location}/lib -Wl,-rpath=${libXrender:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib -L${libXrender:location}/lib -Wl,-rpath=${libXrender:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
[pangomm] [pangomm]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -38,10 +36,9 @@ configure-options = ...@@ -38,10 +36,9 @@ configure-options =
--disable-static --disable-static
--disable-documentation --disable-documentation
environment = environment =
PATH=${gcc:location}/bin:${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:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${harfbuzz:location}/lib -Wl,-rpath=${harfbuzz:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${harfbuzz:location}/lib -Wl,-rpath=${harfbuzz:location}/lib
[atkmm] [atkmm]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -52,10 +49,9 @@ configure-options = ...@@ -52,10 +49,9 @@ configure-options =
--disable-static --disable-static
--disable-documentation --disable-documentation
environment = environment =
PATH=${gcc:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
[gtkmm] [gtkmm]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -66,7 +62,6 @@ configure-options = ...@@ -66,7 +62,6 @@ configure-options =
--disable-static --disable-static
--disable-documentation --disable-documentation
environment = environment =
PATH=${gcc:location}/bin:${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-2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${harfbuzz:location}/lib -Wl,-rpath=${harfbuzz:location}/lib
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${harfbuzz:location}/lib -Wl,-rpath=${harfbuzz:location}/lib
...@@ -26,7 +26,6 @@ install = ...@@ -26,7 +26,6 @@ install =
lab.nexedi.com/nexedi/helloweb/go/... lab.nexedi.com/nexedi/helloweb/go/...
golang = ${golang1.12:location} golang = ${golang1.12:location}
gcc-bin-directory = ${golang1.12:gcc-bin-directory}
# -*- go -*- # -*- go -*-
[helloweb-go] [helloweb-go]
......
[buildout] [buildout]
extends =
../gcc/buildout.cfg
parts = icu4c parts = icu4c
[icu4c] [icu4c]
...@@ -17,14 +15,6 @@ configure-options = ...@@ -17,14 +15,6 @@ configure-options =
patches = patches =
${:_profile_base_location_}/fix-glibc2.26-ftbfs.patch#f1622be16964029fc66a70b8f9e1693c ${:_profile_base_location_}/fix-glibc2.26-ftbfs.patch#f1622be16964029fc66a70b8f9e1693c
[icu4c-slaposgcc]
# need for onlyoffice-core
<= icu4c
environment =
PATH=${gcc:location}/bin:%(PATH)s
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64
[icu] [icu]
<= icu4c <= icu4c
......
...@@ -6,7 +6,6 @@ extends = ...@@ -6,7 +6,6 @@ extends =
../cmake/buildout.cfg ../cmake/buildout.cfg
../freetype/buildout.cfg ../freetype/buildout.cfg
../garbage-collector/buildout.cfg ../garbage-collector/buildout.cfg
../gcc/buildout.cfg
../gettext/buildout.cfg ../gettext/buildout.cfg
../glibmm/buildout.cfg ../glibmm/buildout.cfg
../gtk-2/buildout.cfg ../gtk-2/buildout.cfg
...@@ -32,10 +31,9 @@ md5sum = bda73a3dd5ff2f30b5956764399db6e7 ...@@ -32,10 +31,9 @@ md5sum = bda73a3dd5ff2f30b5956764399db6e7
configure-options = configure-options =
--disable-static --disable-static
environment = environment =
PATH=${gcc:location}/bin:${glib:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${glib:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${atk:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glibmm:location}/lib/pkgconfig:${libsigc:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig PKG_CONFIG_PATH=${atk:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${glibmm:location}/lib/pkgconfig:${libsigc:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
[inkscape] [inkscape]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -53,8 +51,8 @@ configure-options = ...@@ -53,8 +51,8 @@ configure-options =
-DWITH_LIBVISIO=OFF -DWITH_LIBVISIO=OFF
-DWITH_LIBWPG=OFF -DWITH_LIBWPG=OFF
environment = environment =
PATH=${cmake:location}/bin:${freetype:location}/bin:${gcc: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:%(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:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include
CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${gcc:location}/lib:${gcc:location}/lib64:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib
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 -Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -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 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
...@@ -8,6 +8,10 @@ parts = jsl ...@@ -8,6 +8,10 @@ parts = jsl
recipe = slapos.recipe.build recipe = slapos.recipe.build
url = http://www.javascriptlint.com/download/jsl-0.3.0-src.tar.gz url = http://www.javascriptlint.com/download/jsl-0.3.0-src.tar.gz
md5sum = 2b94ffa4fab07acabe0c5e73cd49bcdf md5sum = 2b94ffa4fab07acabe0c5e73cd49bcdf
init =
import os
# Bypass slapos gcc if any because slapos ld can't find -lm (why?).
self.path = os.environ['PATH']
install = install =
import os import os
import sys import sys
...@@ -15,5 +19,5 @@ install = ...@@ -15,5 +19,5 @@ install =
md5sum = options['md5sum'] md5sum = options['md5sum']
extract_dir = self.extract(self.download(url, md5sum)) extract_dir = self.extract(self.download(url, md5sum))
workdir = guessworkdir(extract_dir) workdir = guessworkdir(extract_dir)
os.chdir(os.path.join(workdir, 'src')) call(('make', '-f', 'Makefile.ref', '-j1', 'DIST=' + location, 'all', 'export'),
os.system("make -f Makefile.ref -j 1 DIST='%s' all export" % location) cwd=os.path.join(workdir, 'src'), env=dict(os.environ, PATH=self.path))
...@@ -4,7 +4,6 @@ extends = ...@@ -4,7 +4,6 @@ extends =
../matplotlib/buildout.cfg ../matplotlib/buildout.cfg
../ipython/buildout.cfg ../ipython/buildout.cfg
../python-pyzmq/buildout.cfg ../python-pyzmq/buildout.cfg
../python-2.7/buildout.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
../scikit-learn/buildout.cfg ../scikit-learn/buildout.cfg
../pandas/buildout.cfg ../pandas/buildout.cfg
......
...@@ -14,7 +14,7 @@ initialization = ...@@ -14,7 +14,7 @@ initialization =
eggs = eggs =
${scipy:egg} ${scipy:egg}
${numpy:egg} ${numpy:egg}
${tensorflow-build-install-egg:egg} ${tensorflow:egg}
${protobuf-python:egg} ${protobuf-python:egg}
${python-PyYAML:egg} ${python-PyYAML:egg}
six six
...@@ -25,6 +25,10 @@ interpreter = keras-python ...@@ -25,6 +25,10 @@ interpreter = keras-python
scripts = keras-python scripts = keras-python
[versions] [versions]
backports.weakref = 1.0.post1
futures = 3.2.0
Keras = 2.1.0 Keras = 2.1.0
tensorflow = 1.4.0 markdown = 3.1.1
protobuf = 3.11.3
h5py = 2.7.0rc2 h5py = 2.7.0rc2
wheel = 0.33.6
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../tokyocabinet/buildout.cfg ../tokyocabinet/buildout.cfg
../messagepack/buildout.cfg ../messagepack/buildout.cfg
../openssl/buildout.cfg ../openssl/buildout.cfg
...@@ -25,7 +24,5 @@ configure-options = ...@@ -25,7 +24,5 @@ configure-options =
environment = environment =
CPPFLAGS=-I${zlib:location}/include -I${openssl:location}/include CPPFLAGS=-I${zlib:location}/include -I${openssl:location}/include
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${tokyocabinet:location}/lib -Wl,-rpath=${messagepack:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${tokyocabinet:location}/lib -Wl,-rpath=${messagepack:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl:location}/lib PATH=${patch:location}/bin:%(PATH)s
PATH=${gcc:location}/bin:${patch:location}/bin:%(PATH)s
# KumoFS is known not to build with gcc>6, so we use our own gcc which is 5.5
\ No newline at end of file
...@@ -39,5 +39,4 @@ configure-options = ...@@ -39,5 +39,4 @@ configure-options =
make-options = make-options =
-C build -C build
environment = environment =
PATH=${gcc:location}/bin:${patch:location}/bin:%(PATH)s PATH=${patch:location}/bin:%(PATH)s
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../m4/buildout.cfg ../m4/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
...@@ -16,6 +15,4 @@ md5sum = 70bcbde2c900e4925d6ef4bf50954195 ...@@ -16,6 +15,4 @@ md5sum = 70bcbde2c900e4925d6ef4bf50954195
configure-options = configure-options =
--disable-documentation --disable-documentation
environment = environment =
PATH=${gcc:location}/bin:${m4:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${m4:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64
...@@ -21,7 +21,6 @@ extends = ...@@ -21,7 +21,6 @@ extends =
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../unixodbc/buildout.cfg ../unixodbc/buildout.cfg
../gcc/buildout.cfg
../zstd/buildout.cfg ../zstd/buildout.cfg
parts = parts =
...@@ -69,13 +68,13 @@ configure-options = ...@@ -69,13 +68,13 @@ configure-options =
-DCMAKE_INCLUDE_PATH=${unixodbc:location}/include -DCMAKE_INCLUDE_PATH=${unixodbc:location}/include
-DCMAKE_LIBRARY_PATH=${unixodbc:location}/lib -DCMAKE_LIBRARY_PATH=${unixodbc:location}/lib
CMAKE_CFLAGS = -I${bzip2:location}/include -I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${pcre:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include -I${unixodbc:location}/include -I${lz4:location}/include -I${snappy:location}/include -I${zstd:location}/include CMAKE_CFLAGS = -I${bzip2:location}/include -I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${pcre:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include -I${unixodbc:location}/include -I${lz4:location}/include -I${snappy:location}/include -I${zstd:location}/include
CMAKE_LIBRARY_PATH = ${bzip2:location}/lib:${jemalloc:location}/lib:${libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${pcre:location}/lib:${readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib:${unixodbc:location}/lib:${lz4:location}/lib:${snappy:location}/lib:${zstd:location}/lib:${gcc:location}/lib:${gcc:location}/lib64 CMAKE_LIBRARY_PATH = ${bzip2:location}/lib:${jemalloc:location}/lib:${libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${pcre:location}/lib:${readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib:${unixodbc:location}/lib:${lz4:location}/lib:${snappy:location}/lib:${zstd:location}/lib
environment = environment =
CMAKE_PROGRAM_PATH=${cmake:location}/bin CMAKE_PROGRAM_PATH=${cmake:location}/bin
CMAKE_INCLUDE_PATH=${bzip2:location}/include:${libaio:location}/include:${libaio:location}/include:${libxml2:location}/include:${ncurses:location}/include:${openssl:location}/include:${pcre:location}/include:${readline5:location}/include:${xz-utils:location}/include:${zlib:location}/include:${unixodbc:location}/include:${lz4:location}/include:${snappy:location}/include:${zstd:location}/include CMAKE_INCLUDE_PATH=${bzip2:location}/include:${libaio:location}/include:${libaio:location}/include:${libxml2:location}/include:${ncurses:location}/include:${openssl:location}/include:${pcre:location}/include:${readline5:location}/include:${xz-utils:location}/include:${zlib:location}/include:${unixodbc:location}/include:${lz4:location}/include:${snappy:location}/include:${zstd:location}/include
CMAKE_LIBRARY_PATH=${:CMAKE_LIBRARY_PATH} CMAKE_LIBRARY_PATH=${:CMAKE_LIBRARY_PATH}
LDFLAGS=-L${bzip2:location}/lib -L${jemalloc:location}/lib -L${libaio:location}/lib -L${pcre:location}/lib -L${xz-utils:location}/lib -L${zlib:location}/lib -L${unixodbc:location}/lib -L${lz4:location}/lib -L${snappy:location}/lib -L${zstd:location}/lib LDFLAGS=-L${bzip2:location}/lib -L${jemalloc:location}/lib -L${libaio:location}/lib -L${pcre:location}/lib -L${xz-utils:location}/lib -L${zlib:location}/lib -L${unixodbc:location}/lib -L${lz4:location}/lib -L${snappy:location}/lib -L${zstd:location}/lib
PATH=${gcc:location}/bin:${patch:location}/bin:%(PATH)s PATH=${patch:location}/bin:%(PATH)s
patch-options = -p1 patch-options = -p1
patches = patches =
https://sources.debian.org/data/main/m/mariadb-10.3/1:10.3.22-0+deb10u1/debian/patches/0024-Revert-to-using-system-pcre-library.patch#1c6a0f2634f5a56122299674b77b1131 https://sources.debian.org/data/main/m/mariadb-10.3/1:10.3.22-0+deb10u1/debian/patches/0024-Revert-to-using-system-pcre-library.patch#1c6a0f2634f5a56122299674b77b1131
......
...@@ -3,7 +3,6 @@ extends = ...@@ -3,7 +3,6 @@ extends =
../automake/buildout.cfg ../automake/buildout.cfg
../libtool/buildout.cfg ../libtool/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../python-2.7/buildout.cfg
parts = parts =
nghttp2 nghttp2
...@@ -18,4 +17,4 @@ pre-configure = ...@@ -18,4 +17,4 @@ pre-configure =
automake automake
autoconf autoconf
environment = environment =
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:${python2.7:location}/bin:%(PATH)s PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:%(PATH)s
...@@ -7,7 +7,6 @@ extends = ...@@ -7,7 +7,6 @@ extends =
../openssl/buildout.cfg ../openssl/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../python-2.7/buildout.cfg ../python-2.7/buildout.cfg
../gcc/buildout.cfg
parts = parts =
nodejs nodejs
...@@ -57,10 +56,10 @@ configure-options = ...@@ -57,10 +56,10 @@ configure-options =
--shared-openssl-libpath=${:openssl_location}/lib --shared-openssl-libpath=${:openssl_location}/lib
environment = environment =
HOME=@@LOCATION@@ HOME=@@LOCATION@@
PATH=${gcc:location}/bin:${pkgconfig:location}/bin:${python2.7:location}/bin/:%(PATH)s PATH=${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:openssl_location}/lib/pkgconfig/ PKG_CONFIG_PATH=${:openssl_location}/lib/pkgconfig/
CPPFLAGS=-I${zlib:location}/include CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -Wl,-rpath=${:openssl_location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-Wl,-rpath=${:openssl_location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
LD_LIBRARY_PATH=${:openssl_location}/lib LD_LIBRARY_PATH=${:openssl_location}/lib
[nodejs-8.6.0-output] [nodejs-8.6.0-output]
......
[buildout] [buildout]
extends = extends =
buildout.cfg buildout.cfg
../gcc/buildout.cfg
../openblas/buildout.cfg ../openblas/buildout.cfg
[numpy-env] [numpy-env]
PATH = ${gcc:location}/bin:%(PATH)s
OPENBLAS = ${openblas:location}/lib/libopenblas.so OPENBLAS = ${openblas:location}/lib/libopenblas.so
LAPACK = ${openblas:location}/lib/libopenblas.so LAPACK = ${openblas:location}/lib/libopenblas.so
ATLAS = ${openblas:location}/lib/libopenblas.so ATLAS = ${openblas:location}/lib/libopenblas.so
...@@ -14,6 +11,4 @@ ATLAS = ${openblas:location}/lib/libopenblas.so ...@@ -14,6 +11,4 @@ ATLAS = ${openblas:location}/lib/libopenblas.so
[numpy] [numpy]
environment = numpy-env environment = numpy-env
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
[buildout] [buildout]
extends = extends =
../binutils/buildout.cfg ../binutils/buildout.cfg
../gcc/buildout.cfg
../libxml2/buildout.cfg ../libxml2/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
../icu/buildout.cfg ../icu/buildout.cfg
...@@ -21,9 +20,9 @@ md5sum = 9cd1cd731202511e475971eee58ba7b6 ...@@ -21,9 +20,9 @@ md5sum = 9cd1cd731202511e475971eee58ba7b6
configure-command = true configure-command = true
make-targets = lib bin make-targets = lib bin
environment = environment =
PATH=${binutils:location}/bin:${gcc:location}/bin:${qt5-qmake:location}/bin:%(PATH)s PATH=${binutils:location}/bin:${qt5-qmake:location}/bin:%(PATH)s
CXXFLAGS=-I${libxml2:location}/include -I${zlib:location}/include -I${icu4c-slaposgcc:location}/include -I${boost-lib:location}/include -Wno-comment -Wno-deprecated-declarations -Wno-endif-labels -Wno-parentheses -Wno-reorder -Wno-sign-compare -Wno-switch -Wno-unknown-pragmas -Wno-unused CXXFLAGS=-I${libxml2:location}/include -I${zlib:location}/include -I${icu4c:location}/include -I${boost-lib:location}/include -Wno-comment -Wno-deprecated-declarations -Wno-endif-labels -Wno-parentheses -Wno-reorder -Wno-sign-compare -Wno-switch -Wno-unknown-pragmas -Wno-unused
LDFLAGS=-L${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib -L${gcc:location}/lib64 -Wl,-rpath=${gcc:location}/lib64 -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${icu4c-slaposgcc:location}/lib -Wl,-rpath=${icu4c-slaposgcc:location}/lib -L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -Wl,-rpath=${:location}/lib LDFLAGS=-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${icu4c:location}/lib -Wl,-rpath=${icu4c:location}/lib -L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -Wl,-rpath=${:location}/lib
post-install = post-install =
set -x set -x
mkdir -p ${:location}/bin ${:location}/lib mkdir -p ${:location}/bin ${:location}/lib
......
...@@ -6,9 +6,6 @@ extends = ...@@ -6,9 +6,6 @@ extends =
parts = parts =
openblas openblas
extends =
../gcc/buildout.cfg
[openblas] [openblas]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
...@@ -29,6 +26,9 @@ build-common-options = BINARY="$(uname -m | grep -q x86_64 && echo 64 || echo 32 ...@@ -29,6 +26,9 @@ build-common-options = BINARY="$(uname -m | grep -q x86_64 && echo 64 || echo 32
# TARGET=HASWELL # TARGET=HASWELL
build-ext-options = build-ext-options =
# Fortran is required for LAPACK, which is required for matplotlib.
pre-configure = type gfortran
# First try with auto-detected target and if it fails try TARGET=GENERIC. # First try with auto-detected target and if it fails try TARGET=GENERIC.
configure-command = configure-command =
make ${:build-common-options} ${:build-ext-options} || (make -j1 clean && make ${:build-common-options} TARGET=GENERIC) make ${:build-common-options} ${:build-ext-options} || (make -j1 clean && make ${:build-common-options} TARGET=GENERIC)
...@@ -37,6 +37,4 @@ make-options = ...@@ -37,6 +37,4 @@ make-options =
make-targets = make-targets =
PREFIX="@@LOCATION@@" install PREFIX="@@LOCATION@@" install
environment = environment =
PATH=${gcc:location}/bin:${patch:location}/bin:${perl:location}/bin:%(PATH)s PATH=${patch:location}/bin:${perl:location}/bin:%(PATH)s
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64
[buildout]
# Note: Locally provided gcc with gcj is used, as there is high unstability
# in how gcj is functional on many operating systems.
# Because of this the only way to have portable pdftk profile it is required
# to provide working gcj and then have it used for pdftk compilation.
extends =
../fastjar/buildout.cfg
../gcc/buildout.cfg
parts = pdftk
[pdftk-1.44-Makefile.Base.patch]
recipe = hexagonit.recipe.download
ignore-existing = true
url = ${:_profile_base_location_}/${:filename}
download-only = true
md5sum = 04a3607213e4e638c1fd993321804499
filename = pdftk-1.44-Makefile.Base.patch
[pdftk-hooks-download]
recipe = hexagonit.recipe.download
ignore-existing = true
url = ${:_profile_base_location_}/${:filename}
filename = pdftk-hooks.py
md5sum = d2a067b98953ad30ba1230f87dfb8b92
download-only = true
[pdftk]
recipe = slapos.recipe.cmmi
url = http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-1.44-src.zip
md5sum = 9eb50fffcd621a627d387750c60982b4
configure-command = true
patches =
${pdftk-1.44-Makefile.Base.patch:location}/${pdftk-1.44-Makefile.Base.patch:filename}
patch-options = -p1
# pdftk does not work correcly with parallel building
make-options =
-j1
-f Makefile.Redhat
DEST=${buildout:parts-directory}/${:_buildout_section_name_}
pre-make-hook = ${pdftk-hooks-download:location}/${pdftk-hooks-download:filename}:pre_make_hook
environment =
PATH=${gcc-java-minimal:location}/bin:${fastjar:location}/bin:%(PATH)s
LDFLAGS=-L${gcc-java-minimal:location}/lib -Wl,-rpath=${gcc-java-minimal:location}/lib -L${gcc-java-minimal:location}/lib64 -Wl,-rpath=${gcc-java-minimal:location}/lib64
LD_LIBRARY_PATH=${gcc-java-minimal:location}/lib:${gcc-java-minimal:location}/lib64
diff --git a/pdftk/Makefile.Base b/pdftk/Makefile.Base
index 0bedd04..36a439e 100644
--- a/pdftk/Makefile.Base
+++ b/pdftk/Makefile.Base
@@ -35,22 +35,24 @@ javalib :
$(MAKE) -f Makefile -iC $(JAVALIBPATH) all
attachments.o : attachments.cc attachments.h pdftk.h $(JAVALIB)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(JAVALIBPATH) attachments.cc -c
+ $(CXX) $(CPPFLAGS) $(LDFLAGS) $(CXXFLAGS) -I$(JAVALIBPATH) attachments.cc -c
report.o : report.cc report.h pdftk.h $(JAVALIB)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(JAVALIBPATH) report.cc -c
+ $(CXX) $(CPPFLAGS) $(LDFLAGS) $(CXXFLAGS) -I$(JAVALIBPATH) report.cc -c
pdftk.o : pdftk.cc pdftk.h attachments.h report.h $(JAVALIB) $(GCJ_LOCAL_LIB_FULL)
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(JAVALIBPATH) pdftk.cc -c
+ $(CXX) $(CPPFLAGS) $(LDFLAGS) $(CXXFLAGS) -I$(JAVALIBPATH) pdftk.cc -c
pdftk : pdftk.o attachments.o report.o $(JAVALIB) $(GCJ_LOCAL_LIB_FULL)
- $(CXX) $(CXXFLAGS) attachments.o report.o pdftk.o $(JAVALIB) $(GCJ_LOCAL_LIB_FULL) $(LDLIBS) -o pdftk
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) attachments.o report.o pdftk.o $(JAVALIB) $(GCJ_LOCAL_LIB_FULL) $(LDLIBS) -o pdftk
install:
- /usr/bin/install pdftk /usr/local/bin
+ mkdir -p ${DEST}/bin
+ install pdftk ${DEST}/bin
uninstall:
- $(RM) $(RMFLAGS) /usr/local/bin/pdftk
+ $(RM) $(RMFLAGS) ${DEST}/pdftk
+ rmdir ${DEST}
clean:
$(RM) $(RMFLAGS) *.o
import os
def pre_make_hook(options, buildout):
# change to pdftk directory, where built process shall be done
os.chdir('pdftk')
...@@ -4,7 +4,6 @@ extends = ...@@ -4,7 +4,6 @@ extends =
../automake/buildout.cfg ../automake/buildout.cfg
../bison/buildout.cfg ../bison/buildout.cfg
../flex/buildout.cfg ../flex/buildout.cfg
../gcc/buildout.cfg
../git/buildout.cfg ../git/buildout.cfg
../boost-lib/buildout.cfg ../boost-lib/buildout.cfg
../libtool/buildout.cfg ../libtool/buildout.cfg
...@@ -28,7 +27,7 @@ configure-options = ...@@ -28,7 +27,7 @@ configure-options =
--with-dynmodules="" --with-dynmodules=""
--without-lua --without-lua
environment = environment =
PATH=${gcc:location}/bin:${make:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:${bison:location}/bin:${flex:location}/bin:${git:location}/bin:${ragel:location}/bin:%(PATH)s PATH=${make:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:${bison:location}/bin:${flex:location}/bin:${git:location}/bin:${ragel:location}/bin:%(PATH)s
LDFLAGS=-L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -L${zlib:location}/lib -Wl,-rpath -Wl,${zlib:location}/lib -lz LDFLAGS=-L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -L${zlib:location}/lib -Wl,-rpath -Wl,${zlib:location}/lib -lz
CPPFLAGS=-I${boost-lib:location}/include CPPFLAGS=-I${boost-lib:location}/include
make-target = make-target =
......
...@@ -29,9 +29,9 @@ python = python2.7 ...@@ -29,9 +29,9 @@ python = python2.7
[python2.7] [python2.7]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
package_version = 2.7.17 package_version = 2.7.18
package_version_suffix = package_version_suffix =
md5sum = b3b6d2c92f42a60667814358ab9f0cfd md5sum = fd6cc8ec0a78c44036f825e739f36e5a
# This is actually the default setting for prefix, but we can't use it in # This is actually the default setting for prefix, but we can't use it in
# other settings in this part if we don't set it explicitly here. # other settings in this part if we don't set it explicitly here.
...@@ -67,10 +67,9 @@ post-install = cd '${:prefix}' && ...@@ -67,10 +67,9 @@ post-install = cd '${:prefix}' &&
sed -n 's,:#! */usr/bin/env \+python2\?$,,p' | sed -n 's,:#! */usr/bin/env \+python2\?$,,p' |
xargs -d '\n' sed -i '1s,.*,#!${:executable},' xargs -d '\n' sed -i '1s,.*,#!${:executable},'
extra-ldflags =
# the entry "-Wl,-rpath=${file:location}/lib" below is needed by python-magic, # the entry "-Wl,-rpath=${file:location}/lib" below is needed by python-magic,
# which would otherwise load the system libmagic.so with ctypes # which would otherwise load the system libmagic.so with ctypes
environment = environment =
PATH=${patch:location}/bin:${xz-utils:location}/bin:%(PATH)s 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/ncursesw -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/ncursesw -I${bzip2:location}/include -I${gdbm:location}/include -I${openssl:location}/include -I${sqlite3:location}/include -I${gettext:location}/include
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 ${:extra-ldflags} 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] [buildout]
extends = extends =
../../stack/slapos.cfg
../gcc/buildout.cfg
../cython/buildout.cfg ../cython/buildout.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
parts = parts =
python-cocoapi-build-install-egg pycocotools
[python-cocoapi-repository] [python-cocoapi-repository]
recipe = plone.recipe.command recipe = slapos.recipe.build:gitclone
stop-on-error = true
repository = https://github.com/cocodataset/cocoapi.git repository = https://github.com/cocodataset/cocoapi.git
tag = master git-executable = ${git:location}/bin/git
git-binary = ${git:location}/bin/git revision = 0d86027d941482ae9649fb9e6e871704efc48b06
patch-binary = ${patch:location}/bin/patch
location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = export HOME=${:location}; (${:git-binary} clone --quiet -b ${:tag} ${:repository} ${:location}; cd ${:location}; ${:patch-binary} -p1 -d . < ${:_profile_base_location_}/setup.py.patch ) || (rm -fr ${:location}; exit 1)
[python-cocoapi-build-interpreter] [pycocotools]
recipe = zc.recipe.egg recipe = zc.recipe.egg:develop
initialization = egg = ${:_buildout_section_name_}
import scipy.spatial.ckdtree # load our own libstdc++ explicitly at the very beginning setup = ${python-cocoapi-repository:location}/PythonAPI
eggs = environment = scipy-env
setuptools setup-eggs =
${cython:egg} ${cython:egg}
${scipy:egg}
${numpy:egg} ${numpy:egg}
interpreter = python-cocoapi-build-interpreter ${scipy:egg}
scripts = python-cocoapi-build-interpreter
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[python-cocoapi-build]
recipe = slapos.recipe.build
workdir = ${python-cocoapi-repository:location}/PythonAPI
python-bin = ${buildout:bin-directory}/${python-cocoapi-build-interpreter:interpreter}
gcc-location = ${gcc:location}
install =
import os
os.makedirs(location)
workdir = options['workdir']
python_bin = options['python-bin']
gcc_location = options['gcc-location']
env = {'PATH':':'.join([gcc_location+'/bin',
os.environ['PATH']]),
'CC':gcc_location+'/bin/gcc',
'CXX':gcc_location+'/bin/g++',
}
call([python_bin, 'setup.py', 'build_ext'], cwd=workdir, env=env)
call([python_bin, 'setup.py', 'bdist_egg'], cwd=workdir, env=env)
[python-cocoapi-build-install-egg]
# BUG: This section does FS changes outside location.
recipe = slapos.recipe.build
unzip-binary = ${unzip:location}/bin/unzip
python-cocoapi-repository-path = ${python-cocoapi-repository:location}
need-python-cocoapi-build = ${python-cocoapi-build:location}
egg = pycocotools
install =
import os
os.makedirs(location)
workdir = options['python-cocoapi-repository-path']+'/PythonAPI'
egg_name = 'pycocotools-2.0-py2.7-linux-x86_64.egg'
dist_dir = os.path.join(workdir, 'dist')
dest_dir = os.path.join(self.buildout['buildout']['eggs-directory'], egg_name)
call([options['unzip-binary'], '-o', os.path.join(dist_dir, egg_name), '-d', dest_dir])
diff --git a/PythonAPI/setup.py b/PythonAPI/setup.py
index eb3d508..d619b3c 100644
--- a/PythonAPI/setup.py
+++ b/PythonAPI/setup.py
@@ -1,4 +1,5 @@
-from distutils.core import setup
+#from distutils.core import setup
+from setuptools import setup
from Cython.Build import cythonize
from distutils.extension import Extension
import numpy as np
@@ -21,4 +22,4 @@ setup(name='pycocotools',
version='2.0',
ext_modules=
cythonize(ext_modules)
- )
\ No newline at end of file
+ )
...@@ -4,6 +4,7 @@ parts = ...@@ -4,6 +4,7 @@ parts =
python-slip-egg python-slip-egg
[python-slip] [python-slip]
# BUG: This section does FS changes outside location.
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/nphilipp/python-slip/releases/download/python-slip-0.6.1/python-slip-0.6.1.tar.bz2 url = https://github.com/nphilipp/python-slip/releases/download/python-slip-0.6.1/python-slip-0.6.1.tar.bz2
md5sum = a6d8ee96245fc21785d4c1c062c85f2f md5sum = a6d8ee96245fc21785d4c1c062c85f2f
......
...@@ -54,20 +54,19 @@ environment = ...@@ -54,20 +54,19 @@ environment =
[python3.6] [python3.6]
<= python3-common <= python3-common
version = 3.6
package_version = 3.6.10 package_version = 3.6.10
md5sum = 986078f11b39074be22a199e56491d98 md5sum = 986078f11b39074be22a199e56491d98
# Python 3.7 have to use gcc 8(actually, gcc 4+)
# See https://bugs.python.org/issue34112
# I think gcc 5 may meet the requirement, use gcc 8 all in one step
[python3.7] [python3.7]
<= python3-common <= python3-common
version = 3.7
package_version = 3.7.2 package_version = 3.7.2
md5sum = df6ec36011808205beda239c72f947cb md5sum = df6ec36011808205beda239c72f947cb
patch-options = patch-options =
patches = patches =
environment = environment =
PATH=${gcc-8.2:location}/bin::${xz-utils:location}/bin:%(PATH)s PATH=${xz-utils:location}/bin:%(PATH)s
CPPFLAGS=-I${zlib:location}/include -I${xz-utils:location}/include -I${readline:location}/include -I${libexpat:location}/include -I${libffi:location}/include -I${ncurses:location}/include -I${ncurses:location}/include/ncursesw -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${xz-utils:location}/include -I${readline:location}/include -I${libexpat:location}/include -I${libffi:location}/include -I${ncurses:location}/include -I${ncurses:location}/include/ncursesw -I${bzip2:location}/include -I${gdbm:location}/include -I${openssl:location}/include -I${sqlite3:location}/include -I${gettext:location}/include
LDFLAGS=-L${zlib:location}/lib -L${xz-utils: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=${xz-utils: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 LDFLAGS=-L${zlib:location}/lib -L${xz-utils: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=${xz-utils: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
LD_LIBRARY_PATH=${libpng:location}/lib:${gcc-8.2:location}/lib:${gcc-8.2:location}/lib64 # LD_LIBRARY_PATH=${libpng:location}/lib
\ No newline at end of file
[buildout] [buildout]
extends = extends =
../../stack/slapos.cfg
../gcc/buildout.cfg
../openblas/buildout.cfg ../openblas/buildout.cfg
../cmake/buildout.cfg ../cmake/buildout.cfg
../python-cffi/buildout.cfg ../python-cffi/buildout.cfg
...@@ -10,20 +8,25 @@ extends = ...@@ -10,20 +8,25 @@ extends =
../pillow/buildout.cfg ../pillow/buildout.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
../matplotlib/buildout.cfg ../matplotlib/buildout.cfg
../unzip/buildout.cfg
parts = parts =
pytorch-egg torch
[pytorch-repository] [pytorch-repository]
recipe = plone.recipe.command recipe = plone.recipe.command
stop-on-error = true stop-on-error = true
repository = https://github.com/pytorch/pytorch repository = https://github.com/pytorch/pytorch
tag = master
commit = 4af66c43045a317b477918c503d105f565b4a66b commit = 4af66c43045a317b477918c503d105f565b4a66b
git-binary = ${git:location}/bin/git
patch-binary = ${patch:location}/bin/patch
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = export HOME=${:location}; (${:git-binary} clone --recursive --quiet -b ${:tag} ${:repository} ${:location}; cd ${:location}; ${:git-binary} checkout ${:commit}; ${:patch-binary} -p1 -d . < ${:_profile_base_location_}/pytorch.4af66c4.patch ) || (rm -fr ${:location}; exit 1) command =
set -e
export PATH=${git:location}/bin:$PATH
( git clone --quiet -n ${:repository} ${:location}
cd ${:location}
git config submodule.recurse true
git reset --merge ${:commit}
git submodule update --init
git apply ${:_profile_base_location_}/pytorch.4af66c4.patch
) || { rm -fr ${:location}; exit 1; }
[pytorch-build-interpreter] [pytorch-build-interpreter]
recipe = zc.recipe.egg recipe = zc.recipe.egg
...@@ -42,69 +45,50 @@ interpreter = pytorch-build-interpreter ...@@ -42,69 +45,50 @@ interpreter = pytorch-build-interpreter
scripts = pytorch-build-interpreter scripts = pytorch-build-interpreter
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
[pytorch-build] [torch]
recipe = slapos.recipe.build recipe = slapos.recipe.build
egg = ${:_buildout_section_name_}
workdir = ${pytorch-repository:location} workdir = ${pytorch-repository:location}
egg-name = ${:egg}-${versions:torch}-py${python:version}-linux-x86_64.egg
location = ${buildout:eggs-directory}/${:egg-name}
python-bin = ${buildout:bin-directory}/${pytorch-build-interpreter:interpreter} python-bin = ${buildout:bin-directory}/${pytorch-build-interpreter:interpreter}
no-cuda = 0 no-cuda = 0
cmake-bin = ${cmake:location}/bin cmake-bin = ${cmake:location}/bin
git-bin = ${git:location}/bin git-bin = ${git:location}/bin
binutils-location = ${binutils:location} binutils-location = ${binutils:location}
gcc-location = ${gcc:location}
openblas-location = ${openblas:location} openblas-location = ${openblas:location}
install = install =
import os import os, shutil
os.makedirs(location) from setuptools.archive_util import unpack_archive
workdir = options['workdir'] workdir = options['workdir']
python_bin = options['python-bin'] python_bin = options['python-bin']
binutils_location = options['binutils-location'] binutils_location = options['binutils-location']
gcc_location = options['gcc-location']
openblas_location = options['openblas-location'] openblas_location = options['openblas-location']
env = {'PYTHONPATH':workdir, env = {'PYTHONPATH':workdir,
'PATH':':'.join([options['cmake-bin'], 'PATH':':'.join([options['cmake-bin'],
options['git-bin'], options['git-bin'],
binutils_location+'/bin', binutils_location+'/bin',
gcc_location+'/bin',
os.environ['PATH']]), os.environ['PATH']]),
'CMAKE_INCLUDE_PATH':':'.join([gcc_location+'/include', 'CMAKE_INCLUDE_PATH':':'.join([binutils_location+'/include',
binutils_location+'/include',
openblas_location+'/include', openblas_location+'/include',
]), ]),
'CMAKE_LIBRARY_PATH':':'.join([gcc_location+'/lib', 'CMAKE_LIBRARY_PATH':':'.join([binutils_location+'/lib',
gcc_location+'/lib64',
binutils_location+'/lib',
openblas_location+'/lib', openblas_location+'/lib',
]), ]),
'CC':gcc_location+'/bin/gcc',
'CXX':gcc_location+'/bin/g++',
'PYTORCH_PYTHON':python_bin, 'PYTORCH_PYTHON':python_bin,
'SLAPOS_COMPILE_ARGS':' '.join(['-Wl,-rpath,'+gcc_location+'/lib', 'SLAPOS_COMPILE_ARGS':'-Wl,-rpath,'+openblas_location+'/lib',
'-Wl,-rpath,'+gcc_location+'/lib64',
'-Wl,-rpath,'+binutils_location+'/lib',
'-Wl,-rpath,'+openblas_location+'/lib',
])
} }
if options.get('no-cuda') == '1': if options.get('no-cuda') == '1':
env['NO_CUDA'] = '1' env['NO_CUDA'] = '1'
call([python_bin, 'setup.py', 'build'], cwd=workdir, env=env) os.chdir(workdir)
call([python_bin, 'setup.py', 'bdist_egg'], cwd=workdir, env=env) try:
call([python_bin, 'setup.py', 'build'], env=env)
[pytorch-build-install-egg] call([python_bin, 'setup.py', 'bdist_egg'], env=env)
# BUG: This section does FS changes outside location. unpack_archive(os.path.join('dist', options['egg-name']), location)
recipe = slapos.recipe.build finally:
unzip-binary = ${unzip:location}/bin/unzip for d in 'build', 'dist':
pytorch-repository-path = ${pytorch-repository:location} if os.path.exists(d):
location = ${buildout:parts-directory}/${:_buildout_section_name_} shutil.rmtree(d)
need-pytorch-build = ${pytorch-build:location}
egg = torch
install =
import os
os.makedirs(location)
workdir = options['pytorch-repository-path']
egg_name = 'torch-0.2.0+4af66c4-py2.7-linux-x86_64.egg'
dist_dir = os.path.join(workdir, 'dist')
dest_dir = os.path.join(self.buildout['buildout']['eggs-directory'], egg_name)
call([options['unzip-binary'], '-o', os.path.join(dist_dir, egg_name), '-d', dest_dir])
[pytorch-egg] [pytorch-egg]
recipe = zc.recipe.egg recipe = zc.recipe.egg
...@@ -114,9 +98,9 @@ eggs = ...@@ -114,9 +98,9 @@ eggs =
${scipy:egg} ${scipy:egg}
${numpy:egg} ${numpy:egg}
${python-PyYAML:egg} ${python-PyYAML:egg}
${pytorch-build-install-egg:egg} ${torch:egg}
${pillow-python:egg} ${pillow-python:egg}
${python-cocoapi-build-install-egg:egg} ${pycocotools:egg}
${matplotlib:egg} ${matplotlib:egg}
six six
torchvision torchvision
...@@ -125,3 +109,4 @@ scripts = pytorch-python ...@@ -125,3 +109,4 @@ scripts = pytorch-python
[versions] [versions]
torchvision = 0.1.6 torchvision = 0.1.6
torch = 0.2.0+4af66c4
[buildout] [buildout]
extends = extends =
../xorg/buildout.cfg ../xorg/buildout.cfg
../gcc/buildout.cfg
parts = parts =
qt4-qmake qt4-qmake
...@@ -23,9 +22,8 @@ configure-options = ...@@ -23,9 +22,8 @@ configure-options =
-no-opengl -no-opengl
-nomake examples -nomake examples
environment = environment =
PATH=${gcc:location}/bin:%(PATH)s
CPPFLAGS=-I${libX11:location}/include -I${xproto:location}/include -I${libXext:location}/include CPPFLAGS=-I${libX11:location}/include -I${xproto:location}/include -I${libXext:location}/include
LDFLAGS=-L${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib -L${gcc:location}/lib64 -Wl,-rpath=${gcc:location}/lib64 -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${xproto:location}/lib -Wl,-rpath=${xproto:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${xproto:location}/lib -Wl,-rpath=${xproto:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib
make-binary = true make-binary = true
post-install = post-install =
mkdir -p ${:location}/bin mkdir -p ${:location}/bin
......
[buildout] [buildout]
extends = extends =
../bzip2/buildout.cfg ../bzip2/buildout.cfg
../gcc/buildout.cfg
../openblas/buildout.cfg ../openblas/buildout.cfg
../pcre/buildout.cfg ../pcre/buildout.cfg
../readline/buildout.cfg ../readline/buildout.cfg
...@@ -32,6 +31,5 @@ configure-options = ...@@ -32,6 +31,5 @@ configure-options =
--without-ICU --without-ICU
--without-x --without-x
environment = environment =
PATH=${gcc:location}/bin:%(PATH)s
CPPFLAGS=-I${bzip2:location}/include -I${openblas:location}/include -I${pcre:location}/include -I${readline:location}/include -I${ncurses:location}/include -I${xz-utils:location}/include -I${zlib:location}/include CPPFLAGS=-I${bzip2:location}/include -I${openblas:location}/include -I${pcre:location}/include -I${readline:location}/include -I${ncurses:location}/include -I${xz-utils:location}/include -I${zlib:location}/include
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib -L${gcc:location}/lib64 -Wl,-rpath=${gcc:location}/lib64 -L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${openblas:location}/lib -Wl,-rpath=${openblas:location}/lib -L${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -L${readline:location}/lib -Wl,-rpath=${readline:location}/lib -L${xz-utils:location}/lib -Wl,-rpath=${xz-utils:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${openblas:location}/lib -Wl,-rpath=${openblas:location}/lib -L${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -L${readline:location}/lib -Wl,-rpath=${readline:location}/lib -L${xz-utils:location}/lib -Wl,-rpath=${xz-utils:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
[buildout] [buildout]
extends = extends =
../../component/gcc/buildout.cfg ../make/buildout.cfg
../../component/make/buildout.cfg
parts = parts =
ragel ragel
...@@ -10,10 +9,5 @@ parts = ...@@ -10,10 +9,5 @@ parts =
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://www.colm.net/files/ragel/ragel-6.8.tar.gz url = http://www.colm.net/files/ragel/ragel-6.8.tar.gz
md5sum = 1bb39745ac23da449019f9f2cb4b0d01 md5sum = 1bb39745ac23da449019f9f2cb4b0d01
configure-options =
--prefix=${buildout:parts-directory}/${:_buildout_section_name_}
environment = environment =
PATH=${make:location}/bin:${gcc:location}/bin:%(PATH)s PATH=${make:location}/bin:%(PATH)s
make-target =
install
[buildout] [buildout]
extends = extends =
../defaults.cfg
../babeld/buildout.cfg ../babeld/buildout.cfg
../geoip2/buildout.cfg ../geoip2/buildout.cfg
../openvpn/buildout.cfg ../openvpn/buildout.cfg
...@@ -22,4 +23,4 @@ eggs = ...@@ -22,4 +23,4 @@ eggs =
initialization = initialization =
import os import os
os.environ['GEOIP2_MMDB'] = "${geolite2-country:location}/GeoLite2-Country.mmdb" os.environ['GEOIP2_MMDB'] = "${geolite2-country:location}/GeoLite2-Country.mmdb"
os.environ['PATH'] = "${openvpn:location}/sbin:${babeld:location}/bin:${openssl:location}/bin:${python2.7:location}/bin:" + os.environ.get('PATH', '/usr/sbin:/usr/bin:/sbin:/bin') os.environ['PATH'] = "${openvpn:location}/sbin:${babeld:location}/bin:${openssl:location}/bin:${python:location}/bin:" + os.environ.get('PATH', '/usr/sbin:/usr/bin:/sbin:/bin')
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../pcre/buildout.cfg ../pcre/buildout.cfg
../r-language/buildout.cfg ../r-language/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
...@@ -10,7 +9,7 @@ extends = ...@@ -10,7 +9,7 @@ extends =
# see ../manpy/buildout.cfg as an example # see ../manpy/buildout.cfg as an example
[rpy2_env] [rpy2_env]
PATH = ${gcc:location}/bin:${r-language:location}/bin:%(PATH)s PATH = ${r-language:location}/bin:%(PATH)s
[rpy2] [rpy2]
recipe = zc.recipe.egg:custom recipe = zc.recipe.egg:custom
...@@ -21,8 +20,6 @@ initialization = ...@@ -21,8 +20,6 @@ initialization =
import os import os
os.environ['PATH'] = '${r-language:location}/bin' + os.pathsep + os.environ.get('PATH', '') os.environ['PATH'] = '${r-language:location}/bin' + os.pathsep + os.environ.get('PATH', '')
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${pcre:location}/lib ${pcre:location}/lib
${readline:location}/lib ${readline:location}/lib
${xz-utils:location}/lib ${xz-utils:location}/lib
......
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../numpy/openblas.cfg ../numpy/openblas.cfg
../cython/buildout.cfg ../cython/buildout.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
...@@ -25,8 +24,6 @@ setup-eggs = ...@@ -25,8 +24,6 @@ setup-eggs =
${pillow-python:egg} ${pillow-python:egg}
networkx networkx
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
[scikit-image-repository] [scikit-image-repository]
...@@ -50,6 +47,4 @@ setup-eggs = ...@@ -50,6 +47,4 @@ setup-eggs =
${pillow-python:egg} ${pillow-python:egg}
networkx networkx
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
[buildout] [buildout]
extends = extends =
../gcc/buildout.cfg
../cython/buildout.cfg ../cython/buildout.cfg
../numpy/openblas.cfg ../numpy/openblas.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
...@@ -19,8 +18,6 @@ setup-eggs = ...@@ -19,8 +18,6 @@ setup-eggs =
${numpy:egg} ${numpy:egg}
${scipy:egg} ${scipy:egg}
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
[scikit-learn-repository] [scikit-learn-repository]
...@@ -41,6 +38,4 @@ setup-eggs = ...@@ -41,6 +38,4 @@ setup-eggs =
${numpy:egg} ${numpy:egg}
${scipy:egg} ${scipy:egg}
rpath = rpath =
${gcc:location}/lib
${gcc:location}/lib64
${openblas:location}/lib ${openblas:location}/lib
[buildout] [buildout]
extends = extends =
../zip/buildout.cfg
../bazel/buildout.cfg ../bazel/buildout.cfg
../git/buildout.cfg
parts = parts =
slapos-cookbook-develop tensorflow_tensorboard
slapos-cookbook
tensorboard-build-install-egg
[tensorboard-repository] [tensorboard-repository]
recipe = plone.recipe.command recipe = plone.recipe.command
stop-on-error = true stop-on-error = true
repository = https://github.com/tensorflow/tensorboard repository = https://github.com/tensorflow/tensorboard
tag = 0.4.0 commit = ${versions:tensorflow-tensorboard}
git-binary = ${git:location}/bin/git
patch-binary = ${patch:location}/bin/patch
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = export HOME=${:location}; (${:git-binary} clone --quiet -b ${:tag} ${:repository} ${:location}; cd ${buildout:parts-directory} ; ${:patch-binary} -p1 -d ${:_buildout_section_name_} < ${:_profile_base_location_}/0.4.0.patch ) || (rm -fr ${:location}; exit 1) command =
set -e
export PATH=${git:location}/bin:$PATH
( git clone --quiet -n ${:repository} ${:location}
cd ${:location}
git reset --merge ${:commit}
git apply ${:_profile_base_location_}/0.4.0.patch
) || { rm -fr ${:location}; exit 1; }
[tensorboard-build] [tensorflow_tensorboard]
recipe = slapos.recipe.build recipe = slapos.recipe.build
egg = ${:_buildout_section_name_}
workdir = ${tensorboard-repository:location} workdir = ${tensorboard-repository:location}
gcc-bin = ${gcc:location}/bin egg-name = ${:egg}-${versions:tensorflow-tensorboard}-py${python:version}.egg
gcc-lib = ${gcc:location}/lib location = ${buildout:eggs-directory}/${:egg-name}
gcc-lib64 = ${gcc:location}/lib64
numpy-python-command = ${buildout:bin-directory}/${numpy-egg:interpreter} numpy-python-command = ${buildout:bin-directory}/${numpy-egg:interpreter}
python27-lib = ${python2.7:location}/lib python-lib = ${python:location}/lib
java_home_bin = ${bazel:java_home}/bin java_home_bin = ${bazel:java_home}/bin
bazel-bin = ${bazel:location}/bin bazel-bin = ${bazel:location}/bin
install = install =
import os import os, shutil
os.makedirs(location) from setuptools.archive_util import unpack_archive
workdir = options['workdir'] workdir = options['workdir']
env = {'PATH':':'.join([options['gcc-bin'], env = {'PATH':':'.join([options['java_home_bin'],
options['java_home_bin'],
options['bazel-bin'], options['bazel-bin'],
os.environ['PATH']]), os.environ['PATH']]),
'COMPILER_PATH':':'.join([options['gcc-bin'],
os.environ.get('COMPILER_PATH') or '']),
'LIBRARY_PATH':':'.join([options['gcc-lib'],
options['gcc-lib64'],
os.environ.get('LIBRARY_PATH') or '']),
'PYTHON_BIN_PATH':options['numpy-python-command'], 'PYTHON_BIN_PATH':options['numpy-python-command'],
'PYTHON_LIB_PATH':options['python27-lib'], 'PYTHON_LIB_PATH':options['python-lib'],
} }
env['LD_LIBRARY_PATH'] = env['LIBRARY_PATH']
bazel_command = ['bazel', 'build', '--spawn_strategy=standalone', '--verbose_failures', '--sandbox_debug', '//tensorboard/pip_package:build_pip_package'] bazel_command = ['bazel', 'build', '--spawn_strategy=standalone', '--verbose_failures', '--sandbox_debug', '//tensorboard/pip_package:build_pip_package']
call(bazel_command, cwd=workdir, env=env) os.chdir(workdir)
try:
[tensorboard-build-install-egg] call(bazel_command, env=env)
recipe = slapos.recipe.build call(('tensorboard/pip_package/build_pip_package.sh',
unzip-binary = ${unzip:location}/bin/unzip os.path.join(workdir, 'dist')), env=env)
tensorboard-repository-path = ${tensorboard-repository:location} unpack_archive(os.path.join('dist', options['egg-name']), location)
need-tensorboard-build = ${tensorboard-build:location} finally:
egg = tensorflow-tensorboard for d in 'dist',:
bazel-bin = ${bazel:location}/bin if os.path.exists(d):
java_home_bin = ${bazel:java_home}/bin shutil.rmtree(d)
numpy-python-command = ${buildout:bin-directory}/${numpy-egg:interpreter}
install =
import os
os.makedirs(location)
workdir = options['tensorboard-repository-path']
egg_name = 'tensorflow_tensorboard-0.4.0-py2.7.egg'
dist_dir = os.path.join(workdir, 'dist')
dest_dir = os.path.join(self.buildout['buildout']['eggs-directory'], egg_name)
env = {'PATH':':'.join([options['bazel-bin'],
options['java_home_bin'],
os.environ['PATH']]),
'PYTHON_BIN_PATH':options['numpy-python-command'],
}
call(['tensorboard/pip_package/build_pip_package.sh', dist_dir], cwd=workdir, env=env)
call([options['unzip-binary'], '-o', os.path.join(dist_dir, egg_name), '-d', dest_dir])
[versions] [versions]
tensorflow-tensorboard = 0.4.0
[buildout] [buildout]
extends = extends =
../../stack/slapos.cfg
../scipy/buildout.cfg ../scipy/buildout.cfg
../zip/buildout.cfg
../bazel/buildout.cfg
../protobuf-python/buildout.cfg ../protobuf-python/buildout.cfg
../tensorboard/buildout.cfg ../tensorboard/buildout.cfg
parts = parts =
slapos-cookbook-develop tensorflow
slapos-cookbook
tensorflow-build-install-egg
[numpy-egg] [numpy-egg]
recipe = zc.recipe.egg recipe = zc.recipe.egg
...@@ -21,17 +16,22 @@ eggs = ...@@ -21,17 +16,22 @@ eggs =
${numpy:egg} ${numpy:egg}
interpreter = numpy-python interpreter = numpy-python
scripts = numpy-python scripts = numpy-python
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[tensorflow-repository] [tensorflow-repository]
recipe = plone.recipe.command recipe = plone.recipe.command
stop-on-error = true stop-on-error = true
repository = https://github.com/tensorflow/tensorflow repository = https://github.com/tensorflow/tensorflow
tag = v1.4.0 commit = v${versions:tensorflow}
git-binary = ${git:location}/bin/git
patch-binary = ${patch:location}/bin/patch
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = export HOME=${:location}; (${:git-binary} clone --recurse-submodules --quiet -b ${:tag} ${:repository} ${:location}; cd ${buildout:parts-directory} ; ${:patch-binary} -p1 -d ${:_buildout_section_name_} < ${:_profile_base_location_}/tensorflow-r1.4.patch ) || (rm -fr ${:location}; exit 1) command =
set -e
export PATH=${git:location}/bin:$PATH
( git clone --quiet -n ${:repository} ${:location}
cd ${:location}
git reset --merge ${:commit}
git apply ${:_profile_base_location_}/tensorflow-r1.4.patch
) || { rm -fr ${:location}; exit 1; }
[cuda] [cuda]
tf_need_cuda = 1 tf_need_cuda = 1
...@@ -41,32 +41,29 @@ tf_cuda_compute_capabilities = 5.2,6.1 ...@@ -41,32 +41,29 @@ tf_cuda_compute_capabilities = 5.2,6.1
cuda_toolkit_path = /usr/local/cuda cuda_toolkit_path = /usr/local/cuda
cudnn_install_path = /usr/local/cuda cudnn_install_path = /usr/local/cuda
[tensorflow-build] [tensorflow]
recipe = slapos.recipe.build recipe = slapos.recipe.build
egg = ${:_buildout_section_name_}
workdir = ${tensorflow-repository:location} workdir = ${tensorflow-repository:location}
gcc-bin = ${gcc:location}/bin egg-name = ${:egg}-${versions:tensorflow}-py${python:version}-linux-x86_64.egg
gcc-lib = ${gcc:location}/lib location = ${buildout:eggs-directory}/${:egg-name}
gcc-lib64 = ${gcc:location}/lib64
numpy-python-command = ${buildout:bin-directory}/${numpy-egg:interpreter} numpy-python-command = ${buildout:bin-directory}/${numpy-egg:interpreter}
python27-lib = ${python2.7:location}/lib python-lib = ${python:location}/lib
java_home_bin = ${bazel:java_home}/bin java_home_bin = ${bazel:java_home}/bin
bazel_bin = ${bazel:location}/bin bazel_bin = ${bazel:location}/bin
need_cuda = ${cuda:cuda_toolkit_path} need_cuda = ${cuda:cuda_toolkit_path}
depends =
${tensorflow_tensorboard:recipe}
${protobuf-python:egg}
install = install =
import os import os, shutil
os.makedirs(location) from setuptools.archive_util import unpack_archive
workdir = options['workdir'] workdir = options['workdir']
env = {'PATH':':'.join([options['gcc-bin'], env = {'PATH':':'.join([options['java_home_bin'],
options['java_home_bin'],
options['bazel_bin'], options['bazel_bin'],
os.environ['PATH']]), os.environ['PATH']]),
'COMPILER_PATH':':'.join([options['gcc-bin'],
os.environ.get('COMPILER_PATH') or '']),
'LIBRARY_PATH':':'.join([options['gcc-lib'],
options['gcc-lib64'],
os.environ.get('LIBRARY_PATH') or '']),
'PYTHON_BIN_PATH':options['numpy-python-command'], 'PYTHON_BIN_PATH':options['numpy-python-command'],
'PYTHON_LIB_PATH':options['python27-lib'], 'PYTHON_LIB_PATH':options['python-lib'],
'CC_OPT_FLAGS':'-march=native', 'CC_OPT_FLAGS':'-march=native',
'TF_NEED_JEMALLOC':'1', 'TF_NEED_JEMALLOC':'1',
'TF_ENABLE_XLA':'0', 'TF_ENABLE_XLA':'0',
...@@ -79,7 +76,6 @@ install = ...@@ -79,7 +76,6 @@ install =
'TF_NEED_MPI':'0', 'TF_NEED_MPI':'0',
'TF_NEED_CUDA':self.buildout['cuda']['tf_need_cuda'], 'TF_NEED_CUDA':self.buildout['cuda']['tf_need_cuda'],
##### FOR CUDA ##### ##### FOR CUDA #####
'GCC_HOST_COMPILER_PATH':os.path.join(options['gcc-bin'], 'gcc'),
'TF_CUDA_VERSION':self.buildout['cuda']['tf_cuda_version'], 'TF_CUDA_VERSION':self.buildout['cuda']['tf_cuda_version'],
'CUDA_TOOLKIT_PATH':self.buildout['cuda']['cuda_toolkit_path'], 'CUDA_TOOLKIT_PATH':self.buildout['cuda']['cuda_toolkit_path'],
'TF_CUDNN_VERSION':self.buildout['cuda']['tf_cudnn_version'], 'TF_CUDNN_VERSION':self.buildout['cuda']['tf_cudnn_version'],
...@@ -88,30 +84,21 @@ install = ...@@ -88,30 +84,21 @@ install =
#################### ####################
} }
if not os.path.exists(env['CUDA_TOOLKIT_PATH']): env['TF_NEED_CUDA'] = '0' if not os.path.exists(env['CUDA_TOOLKIT_PATH']): env['TF_NEED_CUDA'] = '0'
env['LD_LIBRARY_PATH'] = env['LIBRARY_PATH']
env['LDFLAGS'] = '-lW,-rpath='+options['gcc-lib64']
call(['./configure'], cwd=workdir, env=env) call(['./configure'], cwd=workdir, env=env)
bazel_command = (env['TF_NEED_CUDA'] == '1' and bazel_command = (env['TF_NEED_CUDA'] == '1' and
['bazel', 'build', '-c', 'opt', '--copt', '-march=native', '--config', 'cuda', '-s', '--verbose_failures', '//tensorflow/tools/pip_package:build_pip_package'] ['bazel', 'build', '-c', 'opt', '--copt', '-march=native', '--config', 'cuda', '-s', '--verbose_failures', '//tensorflow/tools/pip_package:build_pip_package']
or or
['bazel', 'build', '-c', 'opt', '--copt', '-march=native', '-s', '--verbose_failures', '//tensorflow/tools/pip_package:build_pip_package']) ['bazel', 'build', '-c', 'opt', '--copt', '-march=native', '-s', '--verbose_failures', '//tensorflow/tools/pip_package:build_pip_package'])
call(bazel_command, cwd=workdir, env=env) os.chdir(workdir)
try:
call(bazel_command, env=env)
call(('bazel-bin/tensorflow/tools/pip_package/build_pip_package',
os.path.join(workdir, 'dist')))
unpack_archive(os.path.join('dist', options['egg-name']), location)
finally:
for d in 'dist',:
if os.path.exists(d):
shutil.rmtree(d)
[tensorflow-build-install-egg] [versions]
# BUG: This section does FS changes outside location. tensorflow = 1.4.0
recipe = slapos.recipe.build
unzip-binary = ${unzip:location}/bin/unzip
tensorflow-repository-path = ${tensorflow-repository:location}
need-tensorboard-build = ${tensorboard-build:location}
need-tensorflow-build = ${tensorflow-build:location}
need-protobuf-python = ${protobuf-python:egg}
egg = tensorflow
install =
import os
os.makedirs(location)
workdir = options['tensorflow-repository-path']
egg_name = 'tensorflow-1.4.0-py2.7-linux-x86_64.egg'
dist_dir = os.path.join(workdir, 'dist')
dest_dir = os.path.join(self.buildout['buildout']['eggs-directory'], egg_name)
call(['bazel-bin/tensorflow/tools/pip_package/build_pip_package', dist_dir], cwd=workdir)
call([options['unzip-binary'], '-o', os.path.join(dist_dir, egg_name), '-d', dest_dir])
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
extends = extends =
../autoconf/buildout.cfg ../autoconf/buildout.cfg
../automake/buildout.cfg ../automake/buildout.cfg
../gcc/buildout.cfg
../jbigkit/buildout.cfg ../jbigkit/buildout.cfg
../leptonica/buildout.cfg ../leptonica/buildout.cfg
../libpng/buildout.cfg ../libpng/buildout.cfg
...@@ -33,10 +32,9 @@ configure-options = ...@@ -33,10 +32,9 @@ configure-options =
# its trained data, so we set its datarootdir above to a controlled location # its trained data, so we set its datarootdir above to a controlled location
environment = environment =
PATH=${pkgconfig:location}/bin:${autoconf:location}/bin:${automake:location}/bin:${gcc:location}/bin:${libtool:location}/bin:${m4:location}/bin:${patch:location}/bin:%(PATH)s PATH=${pkgconfig:location}/bin:${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:${patch:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LDFLAGS=-L${leptonica:location}/lib -Wl,-rpath=${leptonica:location}/lib -L${jbigkit:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${leptonica:location}/lib -Wl,-rpath=${leptonica:location}/lib -L${jbigkit:location}/lib -Wl,-rpath=${jbigkit:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
[tesseract-traineddata] [tesseract-traineddata]
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
......
...@@ -26,6 +26,10 @@ configure-options = ...@@ -26,6 +26,10 @@ configure-options =
--with-zlib-lib=${zlib:location} --with-zlib-lib=${zlib:location}
environment = environment =
# Python 3 is used for things we don't need. This is an optional dependency,
# unless PYTHON is set (previously set by [python]): wget complains (rightly)
# if it points to Python 2.7 (which we may still use).
PYTHON=
PATH=${gettext:location}/bin:${lunzip:location}/bin:${patch:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${gettext:location}/bin:${lunzip:location}/bin:${patch:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${openssl:location}/lib/pkgconfig PKG_CONFIG_PATH=${openssl:location}/lib/pkgconfig
LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${openssl:location}/lib -L${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${openssl:location}/lib LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${openssl:location}/lib -L${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${openssl:location}/lib
......
...@@ -28,7 +28,7 @@ from setuptools import setup, find_packages ...@@ -28,7 +28,7 @@ from setuptools import setup, find_packages
import glob import glob
import os import os
version = '1.0.145' version = '1.0.146'
name = 'slapos.cookbook' name = 'slapos.cookbook'
long_description = open("README.rst").read() long_description = open("README.rst").read()
......
...@@ -25,14 +25,16 @@ ...@@ -25,14 +25,16 @@
# #
############################################################################## ##############################################################################
from slapos.recipe.librecipe import GenericBaseRecipe from slapos.recipe.librecipe import GenericBaseRecipe
from zc.buildout import UserError
class Recipe(GenericBaseRecipe): class Recipe(GenericBaseRecipe):
def install(self): def __init__(self, buildout, name, options):
if not options['lockfile'].endswith('.lock'):
if not self.options['lockfile'].endswith('.lock'): raise UserError('lockfile parameter must end with .lock as equeue process will add .lock suffix')
raise ValueError('lockfile parameter must end with .lock as equeue process will add .lock suffix') super(Recipe, self).__init__(buildout, name, options)
def install(self):
args = [ args = [
self.options['equeue-binary'], self.options['equeue-binary'],
'--database', self.options['database'], '--database', self.options['database'],
......
...@@ -20,6 +20,7 @@ httpd_software_access_port = %(httpd_software_access_port)s ...@@ -20,6 +20,7 @@ httpd_software_access_port = %(httpd_software_access_port)s
computer_id = %(computer_id)s computer_id = %(computer_id)s
server_url = %(server_url)s server_url = %(server_url)s
frontend_url = %(frontend_url)s frontend_url = %(frontend_url)s
keep_log_days = %(keep_log_days)s
# Binaries # Binaries
git_binary = %(git_binary)s git_binary = %(git_binary)s
......
...@@ -7,6 +7,11 @@ extends = ...@@ -7,6 +7,11 @@ extends =
parts = parts =
${cloudooo-buildout:parts} ${cloudooo-buildout:parts}
[gcc]
# For old version of glibmm.
part = gcc-5.5
max_version = 6
[cloudooo-buildout] [cloudooo-buildout]
parts = parts =
${stack-cloudooo-buildout:parts} ${stack-cloudooo-buildout:parts}
......
#!{{ runTestSuite_py }}
"""
Script to run the Cython test suite using Nexedi's test node framework.
"""
import argparse, json, os, subprocess, sys, traceback
from time import gmtime, strftime, time
from unittest import TextTestResult
from erp5.util import taskdistribution, testsuite
{%- if prepend_path is defined %}
PATH = os.environ['PATH']
os.environ['PATH'] = {{ repr(prepend_path) }} + (PATH and os.pathsep + PATH)
{%- endif %}
os.environ['TEMP'] = {{ repr(tmpdir) }}
os.environ['PYTHON'] = sys.executable
os.environ['PYTHONPATH'] = os.pathsep.join(
sys.path[:-int(subprocess.check_output((
sys.executable, '-c', 'import sys;print(len(sys.path))')))])
command = """set -e {{ gettext_location }}/lib
make
LD_RUN_PATH=$1 LIBRARY_PATH=$1 make test
"""
def parseTestStdOut(data):
"""
Parse output of Cython testrunner script.
"""
data = data.rsplit(b'\n' + TextTestResult.separator2.encode() + b'\n', 1)[1]
status_dict = {}
search = testsuite.TestSuite.RUN_RE.search(data)
if search:
groupdict = search.groupdict()
status_dict.update(duration=float(groupdict['seconds']),
test_count=int(groupdict['all_tests']))
search = testsuite.TestSuite.STATUS_RE.search(data)
if search:
groupdict = search.groupdict()
status_dict.update(
error_count=int(groupdict['errors'] or 0),
failure_count=int(groupdict['failures'] or 0)
+int(groupdict['unexpected_successes'] or 0),
skip_count=int(groupdict['skips'] or 0)
+int(groupdict['expected_failures'] or 0))
return status_dict
class DummyTestResult:
class DummyTestResultLine:
def stop(self, **kw):
with open(self.name + '.json', 'w') as f:
json.dump(kw, f)
done = 0
def __init__(self, test_name_list):
self.test_name_list = test_name_list
def start(self):
test_result_line = self.DummyTestResultLine()
try:
test_result_line.name = self.test_name_list[self.done]
except IndexError:
return
self.done += 1
return test_result_line
def main():
parser = argparse.ArgumentParser(description='Run a test suite.')
parser.add_argument('--test_suite', help='The test suite name')
parser.add_argument('--test_suite_title', help='The test suite title')
parser.add_argument('--test_node_title', help='The test node title')
parser.add_argument('--project_title', help='The project title')
parser.add_argument('--revision', help='The revision to test',
default='dummy_revision')
parser.add_argument('--node_quantity', help='ignored', type=int)
parser.add_argument('--master_url',
help='The Url of Master controling many suites')
args = parser.parse_args()
test_suite_title = args.test_suite_title or args.test_suite
test_name_list = 'cython',
if args.master_url:
tool = taskdistribution.TaskDistributor(portal_url = args.master_url)
test_result = tool.createTestResult(args.revision,
test_name_list,
args.test_node_title,
test_title=test_suite_title,
project_title=args.project_title)
if test_result is None:
return
else:
test_result = DummyTestResult(test_name_list)
# run NEO tests
while 1:
test_result_line = test_result.start()
if not test_result_line:
break
try:
with open(os.devnull) as stdin:
p = subprocess.Popen(command, shell=True, stdin=stdin,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
cwd={{repr(cython_repository)}})
except Exception:
end = time()
stderr = traceback.format_exc()
status_dict = {}
sys.stderr.write(stderr)
else:
stdout, stderr = p.communicate()
end = time()
os.write(1, stdout)
os.write(2, stderr)
status_dict = parseTestStdOut(stderr)
if str is not bytes:
stdout = stdout.decode('utf-8')
stderr = stderr.decode('utf-8')
status_dict['stdout'] = stdout
# report status back to Nexedi ERP5
test_result_line.stop(
command=command,
date=strftime("%Y/%m/%d %H:%M:%S", gmtime(end)),
stderr=stderr,
**status_dict)
if __name__ == "__main__":
main()
[buildout]
extends =
../../stack/slapos.cfg
../../component/numpy/buildout.cfg
parts =
slapos-cookbook
template
[python]
part = python3
[template]
recipe = slapos.recipe.template:jinja2
rendered = ${buildout:directory}/template.cfg
template =
inline:[buildout]
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
parts = runTestSuite
[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}
[directory]
recipe = slapos.cookbook:mkdirectory
bin = $${buildout:directory}/bin
tmp = $${buildout:directory}/tmp
[runTestSuite]
recipe = slapos.recipe.template:jinja2
rendered = $${directory:bin}/$${:_buildout_section_name_}
template = ${runTestSuite.in:target}
mode = 0755
context =
key tmpdir directory:tmp
key slapparameter_dict slap-configuration:configuration
key cython_repository cython-repository:location
raw runTestSuite_py ${buildout:bin-directory}/${runTestSuite_py:interpreter}
raw gettext_location ${gettext:location}
{%- if 'part' in gcc %}
raw prepend_path {{ gcc.prefix }}/bin
{%- endif %}
[cython-repository]
recipe = slapos.recipe.build:gitclone
repository = ${cython-repository:location}
git-executable = ${git:location}/bin/git
shared = true
context =
section gcc gcc
[cython-repository]
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/cython.git
git-executable = ${git:location}/bin/git
sparse-checkout = /.gitignore
[runTestSuite.in]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:_buildout_section_name_}
md5sum = aea029e484875a1e6e69f9e2e1d9efdd
[runTestSuite_py]
recipe = zc.recipe.egg
eggs =
erp5.util
${numpy:egg}
coverage
pycodestyle
interpreter = ${:_buildout_section_name_}
[versions]
slapos.recipe.template = 4.4
coverage = 4.5.1
numpy = 1.16.4
pycodestyle = 2.5.0
...@@ -8,7 +8,6 @@ extends = ...@@ -8,7 +8,6 @@ extends =
../../component/dcron/buildout.cfg ../../component/dcron/buildout.cfg
../../component/logrotate/buildout.cfg ../../component/logrotate/buildout.cfg
../../component/lxml-python/buildout.cfg ../../component/lxml-python/buildout.cfg
../../component/python-2.7/buildout.cfg
../../component/gzip/buildout.cfg ../../component/gzip/buildout.cfg
parts = parts =
...@@ -24,7 +23,6 @@ module = davstorage ...@@ -24,7 +23,6 @@ module = davstorage
[instance-recipe-egg] [instance-recipe-egg]
recipe = zc.recipe.egg recipe = zc.recipe.egg
python = python2.7
eggs = ${instance-recipe:egg} eggs = ${instance-recipe:egg}
[application] [application]
......
...@@ -13,6 +13,10 @@ parts = ...@@ -13,6 +13,10 @@ parts =
npm_install npm_install
instance instance
[gcc]
# Always build GCC for Fortran (see openblas).
max_version = 0
[instance] [instance]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
......
...@@ -46,9 +46,6 @@ class MariaDBTestCase(ERP5InstanceTestCase): ...@@ -46,9 +46,6 @@ class MariaDBTestCase(ERP5InstanceTestCase):
"""Base test case for mariadb tests. """Base test case for mariadb tests.
""" """
__partition_reference__ = 'm' __partition_reference__ = 'm'
# XXX mariadb_update service sleeps for 30 seconds before retrying,
# so this takes a lot of time to instance
instance_max_retry = 60
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
......
...@@ -11,7 +11,6 @@ extends = ...@@ -11,7 +11,6 @@ extends =
../../component/dcron/buildout.cfg ../../component/dcron/buildout.cfg
../../component/logrotate/buildout.cfg ../../component/logrotate/buildout.cfg
../../component/lxml-python/buildout.cfg ../../component/lxml-python/buildout.cfg
../../component/python-2.7/buildout.cfg
../../component/gzip/buildout.cfg ../../component/gzip/buildout.cfg
../../component/git/buildout.cfg ../../component/git/buildout.cfg
../../component/nodejs/buildout.cfg ../../component/nodejs/buildout.cfg
......
...@@ -11,7 +11,6 @@ extends = ...@@ -11,7 +11,6 @@ extends =
../../component/python-kerberos/buildout.cfg ../../component/python-kerberos/buildout.cfg
../../component/gateone/buildout.cfg ../../component/gateone/buildout.cfg
../../component/dtach/buildout.cfg ../../component/dtach/buildout.cfg
../../component/python-2.7/buildout.cfg
../../component/nginx/buildout.cfg ../../component/nginx/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
......
...@@ -54,7 +54,7 @@ md5sum = 056d7ed09e1bf20d022d3ef6b9363e00 ...@@ -54,7 +54,7 @@ md5sum = 056d7ed09e1bf20d022d3ef6b9363e00
[instance-gitlab.cfg.in] [instance-gitlab.cfg.in]
_update_hash_filename_ = instance-gitlab.cfg.in _update_hash_filename_ = instance-gitlab.cfg.in
md5sum = f5e7f9717eaa999fbf11ce4b6c1abb1c md5sum = 6effe68f7ef240780d1027dd834a562c
[instance-gitlab-export.cfg.in] [instance-gitlab-export.cfg.in]
_update_hash_filename_ = instance-gitlab-export.cfg.in _update_hash_filename_ = instance-gitlab-export.cfg.in
......
...@@ -475,9 +475,8 @@ password= ...@@ -475,9 +475,8 @@ password=
pgdata-directory = ${directory:srv}/postgresql pgdata-directory = ${directory:srv}/postgresql
# empty addresses - listen only on unix socket # empty addresses - listen only on unix socket
ipv4 = !py!set([]) ipv4 =
ipv6 = !py!set([]) ipv6 =
ipv6-random =
port = port =
depend = depend =
......
...@@ -232,7 +232,6 @@ command = bash -c ". ${gowork:env.sh} && CGO_CFLAGS=-I${:git2go}/include CGO_LDF ...@@ -232,7 +232,6 @@ command = bash -c ". ${gowork:env.sh} && CGO_CFLAGS=-I${:git2go}/include CGO_LDF
[gowork] [gowork]
golang = ${golang1.12:location} golang = ${golang1.12:location}
gcc-bin-directory = ${golang1.12:gcc-bin-directory}
# gitlab.com/gitlab-org/gitlab-workhorse # gitlab.com/gitlab-org/gitlab-workhorse
# gitlab.com/gitlab-org/gitlab-workhorse/cmd/gitlab-zip-cat # gitlab.com/gitlab-org/gitlab-workhorse/cmd/gitlab-zip-cat
# gitlab.com/gitlab-org/gitlab-workhorse/cmd/gitlab-zip-metadata # gitlab.com/gitlab-org/gitlab-workhorse/cmd/gitlab-zip-metadata
......
...@@ -50,7 +50,6 @@ promtail-bin = ${:bin}/promtail ...@@ -50,7 +50,6 @@ promtail-bin = ${:bin}/promtail
# use recent go # use recent go
golang = ${golang1.12:location} golang = ${golang1.12:location}
gcc-bin-directory = ${golang1.12:gcc-bin-directory}
[gowork.goinstall] [gowork.goinstall]
command = : command = :
......
...@@ -32,7 +32,7 @@ return = ...@@ -32,7 +32,7 @@ return =
[proxy] [proxy]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = {{ python_location }}/bin/python2.7 {{ rina_proxy }} ${server:instance-guid} ${:ipv6} ${:port} command-line = {{ python_executable }} {{ rina_proxy }} ${server:instance-guid} ${:ipv6} ${:port}
wrapper-path = ${directory:service}/proxy wrapper-path = ${directory:service}/proxy
environment = environment =
PATH={{ rina_tools_location }}/bin:%(PATH)s PATH={{ rina_tools_location }}/bin:%(PATH)s
......
...@@ -28,7 +28,7 @@ template = {{ instance_root }} ...@@ -28,7 +28,7 @@ template = {{ instance_root }}
extra-context = extra-context =
import urlparse urlparse import urlparse urlparse
key ipv6 slap-configuration:ipv6-random key ipv6 slap-configuration:ipv6-random
raw python_location {{ python_location }} raw python_executable {{ python_executable }}
raw rina_proxy {{ rina_proxy }} raw rina_proxy {{ rina_proxy }}
[server] [server]
......
...@@ -9,13 +9,13 @@ parts = ...@@ -9,13 +9,13 @@ parts =
[template] [template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance.cfg.in template = ${:_profile_base_location_}/instance.cfg.in
md5sum = e513082329961dfbbcec94e817f1e3bc md5sum = f6c61225990986d94d0017b07b873aa7
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg rendered = ${buildout:directory}/template.cfg
context = context =
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key python_location python2.7:location key python_executable python:executable
key rina_tools_location rina-tools:location key rina_tools_location rina-tools:location
key instance_root instance-root:target key instance_root instance-root:target
key instance_server instance-server:target key instance_server instance-server:target
...@@ -29,7 +29,7 @@ mode = 644 ...@@ -29,7 +29,7 @@ mode = 644
[instance-root] [instance-root]
<= download-base <= download-base
md5sum = 8ba6905c430e69a14db1be386f932c0f md5sum = f647054be67998f9eece174f106c4464
[instance-server] [instance-server]
<= download-base <= download-base
......
...@@ -12,6 +12,10 @@ parts += ...@@ -12,6 +12,10 @@ parts +=
jupyter-notebook-initialized-scripts jupyter-notebook-initialized-scripts
instance-jupyter-notebook instance-jupyter-notebook
[gcc]
# Always build GCC for Fortran (see openblas).
max_version = 0
[jupyter] [jupyter]
python_executable = ${buildout:bin-directory}/${:interpreter} python_executable = ${buildout:bin-directory}/${:interpreter}
......
[buildout] [buildout]
extends = extends =
../../component/python3/buildout.cfg
software.cfg software.cfg
python = python3
# Ignore these for now # Ignore these for now
common-parts -= common-parts -=
rdiff-backup rdiff-backup
[python]
part = python3
...@@ -8,8 +8,6 @@ extends = ...@@ -8,8 +8,6 @@ extends =
../../stack/slapos.cfg ../../stack/slapos.cfg
../../component/python3/buildout.cfg ../../component/python3/buildout.cfg
python = python3
parts = parts =
slapos-cookbook slapos-cookbook
network-bench-cfg network-bench-cfg
...@@ -19,6 +17,9 @@ parts = ...@@ -19,6 +17,9 @@ parts =
template-monitor template-monitor
monitor-collect-csv-dump monitor-collect-csv-dump
[python]
part = python3
[template] [template]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[neotest-env.sh] [neotest-env.sh]
filename = neotest-env.sh.in filename = neotest-env.sh.in
md5sum = 595eebbbcb56b6a8464d48833cfae57b md5sum = bd46e95f1cea62c3b0082fe8c0c9c90b
[neotest] [neotest]
filename = neotest.in filename = neotest.in
......
...@@ -9,7 +9,7 @@ PATH="${ioping:location}/bin:$PATH" ...@@ -9,7 +9,7 @@ PATH="${ioping:location}/bin:$PATH"
PATH="${lmbench:location}/bin:$PATH" PATH="${lmbench:location}/bin:$PATH"
PATH="${mariadb:location}/bin:$PATH" PATH="${mariadb:location}/bin:$PATH"
PATH="${mariadb:location}/scripts:$PATH" PATH="${mariadb:location}/scripts:$PATH"
PATH="${python2.7:location}/bin:$PATH" PATH="${python:location}/bin:$PATH"
# add all eggs and develop-eggs to py path # add all eggs and develop-eggs to py path
# #
......
...@@ -2,9 +2,13 @@ ...@@ -2,9 +2,13 @@
extends = extends =
buildout.hash.cfg buildout.hash.cfg
../../component/redis/buildout.cfg ../../component/redis/buildout.cfg
../../component/python3/buildout.cfg
../../stack/lamp/buildout.cfg ../../stack/lamp/buildout.cfg
[gcc]
# For old version of glibmm.
part = gcc-5.5
max_version = 6
[nc-download-base] [nc-download-base]
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
ignore-existing = true ignore-existing = true
......
...@@ -10,6 +10,11 @@ parts = ...@@ -10,6 +10,11 @@ parts =
slapos-cookbook slapos-cookbook
eggs eggs
[gcc]
# For old version of PowerDNS and Ragel.
part = gcc-5.5
max_version = 6
[eggs] [eggs]
recipe = zc.recipe.egg recipe = zc.recipe.egg
eggs = eggs =
......
[buildout] [buildout]
extends = extends =
../../component/python3/buildout.cfg
software.cfg software.cfg
python = python3 [python]
part = python3
[eggs] [eggs]
eggs -= eggs -=
......
[buildout] [buildout]
extends = extends =
../../component/python3/buildout.cfg
software.cfg software.cfg
python = python3
[nghttp2] [python]
environment = part = python3
PATH=${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${m4:location}/bin:${python3:location}/bin:%(PATH)s
[supervisor-repository]
<= git-clone-repository
repository = https://github.com/Supervisor/supervisor.git
[supervisor-develop]
recipe = zc.recipe.egg:develop
egg = supervisor
setup = ${supervisor-repository:location}
[eggs]
recipe = zc.recipe.egg
eggs += ${supervisor-develop:egg}
[versions]
supervisor =
...@@ -61,8 +61,7 @@ depends = ${slapos.core-setup:egg} ...@@ -61,8 +61,7 @@ depends = ${slapos.core-setup:egg}
[slapos.core-setup] [slapos.core-setup]
<= setup-develop-egg <= setup-develop-egg
# XXX slapos.core does not have `test` extra require, `mock`, `pyflakes` and `httmock` are only listed in `tests_require` and are listed explicitly egg = slapos.core[test]
egg = slapos.core
setup = ${slapos.core-repository:location} setup = ${slapos.core-repository:location}
[slapos.recipe.build-setup] [slapos.recipe.build-setup]
...@@ -116,8 +115,6 @@ eggs = ...@@ -116,8 +115,6 @@ eggs =
${slapos.rebootstrap-setup:egg} ${slapos.rebootstrap-setup:egg}
mock mock
zope.testing zope.testing
httmock
pyflakes
supervisor supervisor
entry-points = entry-points =
runTestSuite=erp5.util.testsuite:runTestSuite runTestSuite=erp5.util.testsuite:runTestSuite
......
...@@ -14,11 +14,11 @@ ...@@ -14,11 +14,11 @@
# not need these here). # not need these here).
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = ec70348dd71b319590a5c5837f3d2e45 md5sum = 8d6878ff1d2e75010c50a1a2b0c13b24
[template-runner] [template-runner]
filename = instance-runner.cfg filename = instance-runner.cfg
md5sum = f342daca2e87f8fa44fd7b6a2a1c22f8 md5sum = 7100c6678576c285322f1445029cd4f2
[template-runner-import-script] [template-runner-import-script]
filename = template/runner-import.sh.jinja2 filename = template/runner-import.sh.jinja2
......
...@@ -692,7 +692,7 @@ hash-existing-files = $${buildout:directory}/software_release/buildout.cfg ...@@ -692,7 +692,7 @@ hash-existing-files = $${buildout:directory}/software_release/buildout.cfg
[shell-environment] [shell-environment]
shell = ${bash:location}/bin/bash shell = ${bash:location}/bin/bash
path = ${nano:location}/bin:${vim:location}/bin:${screen:location}/bin:${tmux:location}/bin:${git:location}/bin:${curl:location}/bin:${python2.7:location}/bin:${tig:location}/bin:${zip:location}/bin:${mosh:location}/bin:${bash:location}/bin:${fish-shell:location}/bin:$${directory:bin}:/usr/bin:/bin/ path = ${nano:location}/bin:${vim:location}/bin:${screen:location}/bin:${tmux:location}/bin:${git:location}/bin:${curl:location}/bin:${python:location}/bin:${tig:location}/bin:${zip:location}/bin:${mosh:location}/bin:${bash:location}/bin:${fish-shell:location}/bin:$${directory:bin}:/usr/bin:/bin/
[prepare-software] [prepare-software]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
......
...@@ -74,6 +74,7 @@ template = ${instance-runner-import:target} ...@@ -74,6 +74,7 @@ template = ${instance-runner-import:target}
rendered = $${buildout:directory}/instance-runner-import.cfg rendered = $${buildout:directory}/instance-runner-import.cfg
mode = 640 mode = 640
context = context =
key pbsready_import_template_path template-pbsready-import:rendered
key template_runner_path instance-base-runner:rendered key template_runner_path instance-base-runner:rendered
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
raw software_release_bin ${buildout:bin-directory} raw software_release_bin ${buildout:bin-directory}
...@@ -82,7 +83,6 @@ context = ...@@ -82,7 +83,6 @@ context =
raw bash_executable_location ${bash:location}/bin/bash raw bash_executable_location ${bash:location}/bin/bash
raw sqlite3_executable_location ${sqlite3:location}/bin/sqlite3 raw sqlite3_executable_location ${sqlite3:location}/bin/sqlite3
raw rsync_executable_location ${rsync:location}/bin/rsync raw rsync_executable_location ${rsync:location}/bin/rsync
raw pbsready_import_template_path ${pbsready-import:output}
raw software_release_information_template ${template-resilient-software-release-information:destination}/${template-resilient-software-release-information:filename} raw software_release_information_template ${template-resilient-software-release-information:destination}/${template-resilient-software-release-information:filename}
[slap-configuration] [slap-configuration]
......
[buildout] [buildout]
extends = extends =
../../component/python3/buildout.cfg
software.cfg software.cfg
python = python3
# Ignore these for now # Ignore these for now
common-parts -= common-parts -=
rdiff-backup rdiff-backup
[python]
part = python3
[python-with-eggs] [python-with-eggs]
eggs -= eggs -=
# futures is a backport of Py3's concurrent.futures module # futures is a backport of Py3's concurrent.futures module
......
...@@ -18,7 +18,6 @@ extends = ...@@ -18,7 +18,6 @@ extends =
../../component/mosh/buildout.cfg ../../component/mosh/buildout.cfg
../../component/rsync/buildout.cfg ../../component/rsync/buildout.cfg
../../component/pycurl/buildout.cfg ../../component/pycurl/buildout.cfg
../../component/python-2.7/buildout.cfg
../../component/screen/buildout.cfg ../../component/screen/buildout.cfg
../../component/shellinabox/buildout.cfg ../../component/shellinabox/buildout.cfg
../../component/vim/buildout.cfg ../../component/vim/buildout.cfg
......
[buildout] [buildout]
extends = extends =
../../component/python3/buildout.cfg
../../component/python-2.7/buildout.cfg
../../component/nodejs/buildout.cfg ../../component/nodejs/buildout.cfg
../../component/caddy/buildout.cfg ../../component/caddy/buildout.cfg
../../component/git/buildout.cfg ../../component/git/buildout.cfg
...@@ -56,7 +54,7 @@ mode = 0644 ...@@ -56,7 +54,7 @@ mode = 0644
[theia] [theia]
recipe = plone.recipe.command recipe = plone.recipe.command
command = ${bash:location}/bin/bash -c " command = ${bash:location}/bin/bash -c "
export TMPDIR=${:location}/tmp PATH=${nodejs:location}/bin/:${python2.7:location}/bin/:$PATH && export TMPDIR=${:location}/tmp PATH=${nodejs:location}/bin:$PATH &&
mkdir -p ${:location} && \ mkdir -p ${:location} && \
mkdir -p \$TMPDIR && \ mkdir -p \$TMPDIR && \
mkdir -p ${:THEIA_DEFAULT_PLUGINS} && \ mkdir -p ${:THEIA_DEFAULT_PLUGINS} && \
......
...@@ -8,7 +8,6 @@ extends = ...@@ -8,7 +8,6 @@ extends =
../../component/gzip/buildout.cfg ../../component/gzip/buildout.cfg
../../component/logrotate/buildout.cfg ../../component/logrotate/buildout.cfg
../../component/pycurl/buildout.cfg ../../component/pycurl/buildout.cfg
../../component/python-2.7/buildout.cfg
../../component/stunnel/buildout.cfg ../../component/stunnel/buildout.cfg
../../component/varnish/buildout.cfg ../../component/varnish/buildout.cfg
../../component/wget/buildout.cfg ../../component/wget/buildout.cfg
......
...@@ -11,8 +11,8 @@ parts += ...@@ -11,8 +11,8 @@ parts +=
[eggs] [eggs]
eggs += eggs +=
${tensorboard-build-install-egg:egg} ${tensorflow_tensorboard:egg}
${tensorflow-build-install-egg:egg} ${tensorflow:egg}
${protobuf-python:egg} ${protobuf-python:egg}
${h5py:egg} ${h5py:egg}
${pillow-python:egg} ${pillow-python:egg}
...@@ -22,8 +22,8 @@ eggs += ...@@ -22,8 +22,8 @@ eggs +=
filelock filelock
nose nose
${chainer:egg} ${chainer:egg}
${pytorch-build-install-egg:egg} ${torch:egg}
${python-cocoapi-build-install-egg:egg} ${pycocotools:egg}
torchvision torchvision
[cuda] [cuda]
......
...@@ -30,16 +30,22 @@ eggs += ...@@ -30,16 +30,22 @@ eggs +=
${ipython:egg} ${ipython:egg}
[generic_testrunner_init] [generic_testrunner_init]
recipe = slapos.recipe.build
init =
import struct
gcc = self.buildout['gcc']
options['initialization'] %= (
gcc['prefix'] + '/lib%s/libstdc++.so' % (8 * struct.calcsize("P"))
) if 'part' in gcc else ''
initialization = initialization =
# The 4 lines below will replace the process with another one, with the proper # The 4 lines below will replace the process with another one, with the proper
# LD_PRELOAD environment variable. This is necessary because LD_PRELOAD is only # LD_PRELOAD environment variable. This is necessary because LD_PRELOAD is only
# taken into account when the process starts. Modifying it in runtime doesn't # taken into account when the process starts. Modifying it in runtime doesn't
# work. # work.
import struct, os import os
arch = 8 * struct.calcsize("P") if not os.getenv('LD_PRELOAD'):
rerun = not os.getenv('LD_PRELOAD') os.environ['LD_PRELOAD'] = %r
if rerun: os.environ['LD_PRELOAD'] = '''${gcc:location}/lib%s/libstdc++.so''' % arch os.execve(os.path.realpath(__file__), sys.argv, os.environ)
if rerun: os.execve(os.path.realpath(__file__), sys.argv, os.environ)
[test_suite_runner] [test_suite_runner]
# we need to override the test suite runner to add our custom libstdc++ dynamic # we need to override the test suite runner to add our custom libstdc++ dynamic
......
...@@ -23,7 +23,6 @@ extends = ...@@ -23,7 +23,6 @@ extends =
../component/mesa/buildout.cfg ../component/mesa/buildout.cfg
../component/onlyoffice-core/buildout.cfg ../component/onlyoffice-core/buildout.cfg
../component/poppler/buildout.cfg ../component/poppler/buildout.cfg
../component/python-2.7/buildout.cfg
../component/rdiff-backup/buildout.cfg ../component/rdiff-backup/buildout.cfg
../component/xorg/buildout.cfg ../component/xorg/buildout.cfg
......
...@@ -6,7 +6,6 @@ extends = ...@@ -6,7 +6,6 @@ extends =
zope-versions.cfg zope-versions.cfg
buildout.hash.cfg buildout.hash.cfg
../../component/fonts/buildout.cfg ../../component/fonts/buildout.cfg
../../component/gcc/buildout.cfg
../../component/git/buildout.cfg ../../component/git/buildout.cfg
../../component/graphviz/buildout.cfg ../../component/graphviz/buildout.cfg
../../component/gzip/buildout.cfg ../../component/gzip/buildout.cfg
...@@ -94,9 +93,10 @@ parts += ...@@ -94,9 +93,10 @@ parts +=
# jupyter # jupyter
jupyter-notebook-initialized-scripts jupyter-notebook-initialized-scripts
# override python2.7 to add SlapOS libstdc++ in RPATH. [gcc]
[python2.7] # KumoFS is known not to build with gcc>6.
extra-ldflags = -Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 # It may work with slightly more recent but not tested.
part = gcc-5.5
# override instance-jupyter-notebook not to render into default template.cfg # override instance-jupyter-notebook not to render into default template.cfg
[instance-jupyter-notebook] [instance-jupyter-notebook]
......
...@@ -14,11 +14,11 @@ ...@@ -14,11 +14,11 @@
# not need these here). # not need these here).
[pbsready] [pbsready]
filename = pbsready.cfg.in filename = pbsready.cfg.in
md5sum = 66331047b7dbf2513c5726d5d1647320 md5sum = 2bd6f853ace04ea84dffe29acfce92df
[pbsready-import] [pbsready-import]
filename = pbsready-import.cfg.in filename = pbsready-import.cfg.in
md5sum = 6f32cede10cf0d6430c017f49fe5aa30 md5sum = dd8f0728e53b49822eed5d613839558f
[pbsready-export] [pbsready-export]
filename = pbsready-export.cfg.in filename = pbsready-export.cfg.in
...@@ -26,7 +26,7 @@ md5sum = 2b0c71b085cfe8017f28098c160b1f49 ...@@ -26,7 +26,7 @@ md5sum = 2b0c71b085cfe8017f28098c160b1f49
[template-pull-backup] [template-pull-backup]
filename = instance-pull-backup.cfg.in filename = instance-pull-backup.cfg.in
md5sum = 555d528b198564f0ce1e94db1160ebf3 md5sum = 382d9b57faac92da3c723760f2210c13
[template-replicated] [template-replicated]
filename = template-replicated.cfg.in filename = template-replicated.cfg.in
...@@ -38,7 +38,7 @@ md5sum = 071b1034ee8f5cc14f79b16fdeba2813 ...@@ -38,7 +38,7 @@ md5sum = 071b1034ee8f5cc14f79b16fdeba2813
[template-resilient-templates] [template-resilient-templates]
filename = template-resilient-templates.cfg.in filename = template-resilient-templates.cfg.in
md5sum = 097a14371efde11465ab4bd08ef3131b md5sum = 3b426db6fddce431b363d095a22dd698
[instance-frozen] [instance-frozen]
filename = instance-frozen.cfg.in filename = instance-frozen.cfg.in
...@@ -46,7 +46,7 @@ md5sum = d21472f0e58f928fb827f2cbf22c4d4a ...@@ -46,7 +46,7 @@ md5sum = d21472f0e58f928fb827f2cbf22c4d4a
[resilient-web-takeover-cgi-script-download] [resilient-web-takeover-cgi-script-download]
filename = resilient-web-takeover-cgi-script.py.in filename = resilient-web-takeover-cgi-script.py.in
md5sum = a7d6ca463e4b6438e1d826f531533a39 md5sum = 7a0f1be7e9d05d0c68748322abe1f511
[template-wrapper] [template-wrapper]
filename = templates/wrapper.in filename = templates/wrapper.in
......
...@@ -110,7 +110,7 @@ rotate-num = 30 ...@@ -110,7 +110,7 @@ rotate-num = 30
recipe = slapos.cookbook:pbs recipe = slapos.cookbook:pbs
client = true client = true
feeds = $${directory:notifier-feeds} feeds = $${directory:notifier-feeds}
callbacks = $${directory:notifier-callbacks} callbacks-directory = $${directory:notifier-callbacks}
equeue-socket = $${equeue:socket} equeue-socket = $${equeue:socket}
notifier-binary = ${buildout:bin-directory}/pubsubnotifier notifier-binary = ${buildout:bin-directory}/pubsubnotifier
rdiffbackup-binary = ${buildout:bin-directory}/rdiff-backup rdiffbackup-binary = ${buildout:bin-directory}/rdiff-backup
...@@ -124,7 +124,7 @@ run-directory = $${basedirectory:run} ...@@ -124,7 +124,7 @@ run-directory = $${basedirectory:run}
pull-push-maximum-run = 5 pull-push-maximum-run = 5
# XXX: this should be named "notifier-host" # XXX: this should be named "notifier-host"
notifier-url = http://[$${notifier:host}]:$${notifier:port} notifier-url = http://[$${notifier:host}]:$${notifier:port}
slave-instance-list = {{ slapparameter_dict.get('slave_instance_list', '[]') }} slave-instance-list = {{ dumps(slave_instance_list) }}
ignore-known-hosts-file = {{ slapparameter_dict.get('ignore-known-hosts-file', 'false') }} ignore-known-hosts-file = {{ slapparameter_dict.get('ignore-known-hosts-file', 'false') }}
# To get a verbose feed about PBS state # To get a verbose feed about PBS state
instance-root-name = $${monitor-instance-parameter:root-instance-title} instance-root-name = $${monitor-instance-parameter:root-instance-title}
......
[buildout] [buildout]
extends = ${pbsready:output} extends = {{ pbsready_template_path }}
parts += parts +=
resiliency-takeover-script resiliency-takeover-script
...@@ -14,9 +14,6 @@ parts += ...@@ -14,9 +14,6 @@ parts +=
backup-signature-link backup-signature-link
[slap-parameter]
on-notification =
[resilient-publish-connection-parameter] [resilient-publish-connection-parameter]
notification-url = http://[$${notifier:host}]:$${notifier:port}/notify notification-url = http://[$${notifier:host}]:$${notifier:port}/notify
takeover-url = http://[$${resilient-web-takeover-httpd-configuration-file:listening-ip}]:$${resilient-web-takeover-httpd-configuration-file:listening-port}/ takeover-url = http://[$${resilient-web-takeover-httpd-configuration-file:listening-ip}]:$${resilient-web-takeover-httpd-configuration-file:listening-port}/
...@@ -42,13 +39,15 @@ ip = $${notifier:host} ...@@ -42,13 +39,15 @@ ip = $${notifier:host}
# notifier.callback runs a script when a notification (sent by a parent PBS) # notifier.callback runs a script when a notification (sent by a parent PBS)
# is received # is received
recipe = slapos.cookbook:notifier.callback recipe = slapos.cookbook:notifier.callback
directory = $${notifier:callbacks} callbacks-directory = $${notifier:callbacks-directory}
on-notification-id = $${slap-parameter:on-notification} on-notification-id = {{ slapparameter_dict.get('on-notification', '') }}
callbacks = callback-list =
# import on notification # warning the order of the 2 callbacks is important for now
$${importer:wrapper} # it should be fixed later
# check backup integrity on notification # check backup integrity on notification
$${post-notification-run:output} $${post-notification-run:output}
# import on notification
$${importer:wrapper}
[post-notification-run] [post-notification-run]
recipe = collective.recipe.template recipe = collective.recipe.template
......
...@@ -63,9 +63,6 @@ cgi-bin = $${rootdirectory:srv}/cgi-bin ...@@ -63,9 +63,6 @@ cgi-bin = $${rootdirectory:srv}/cgi-bin
monitor-resilient = $${monitor-directory:private}/resilient monitor-resilient = $${monitor-directory:private}/resilient
[slap-parameter]
authorized-key =
#---------------- #----------------
#-- #--
#-- Deploy cron. #-- Deploy cron.
...@@ -131,8 +128,8 @@ rendered = $${:wrapper} ...@@ -131,8 +128,8 @@ rendered = $${:wrapper}
wrapper = $${basedirectory:services}/notifier wrapper = $${basedirectory:services}/notifier
mode = 0700 mode = 0700
feeds = $${directory:notifier-feeds} feeds = $${directory:notifier-feeds}
callbacks = $${directory:notifier-callbacks} callbacks-directory = $${directory:notifier-callbacks}
command = ${buildout:bin-directory}/pubsubserver --callbacks $${directory:notifier-callbacks} --feeds $${directory:notifier-feeds} --equeue-socket $${equeue:socket} --logfile $${basedirectory:log}/notifier.log $${:host} $${:port} command = ${buildout:bin-directory}/pubsubserver --callbacks $${:callbacks-directory} --feeds $${:feeds} --equeue-socket $${equeue:socket} --logfile $${basedirectory:log}/notifier.log $${:host} $${:port}
notifier-binary = ${buildout:bin-directory}/pubsubnotifier notifier-binary = ${buildout:bin-directory}/pubsubnotifier
host = $${slap-network-information:global-ipv6} host = $${slap-network-information:global-ipv6}
port = $${notifier-port:port} port = $${notifier-port:port}
...@@ -198,7 +195,7 @@ wrapper-path = $${rootdirectory:bin}/raw_sshd ...@@ -198,7 +195,7 @@ wrapper-path = $${rootdirectory:bin}/raw_sshd
[sshd-pbs-authorized-key] [sshd-pbs-authorized-key]
<= sshd-raw-server <= sshd-raw-server
recipe = slapos.cookbook:dropbear.add_authorized_key recipe = slapos.cookbook:dropbear.add_authorized_key
key = $${slap-parameter:authorized-key} key = {{ slapparameter_dict.get('authorized-key', '') }}
[sshd-server] [sshd-server]
recipe = collective.recipe.template recipe = collective.recipe.template
......
...@@ -53,7 +53,7 @@ def getLatestBackupDate(): ...@@ -53,7 +53,7 @@ def getLatestBackupDate():
timestamp = float(db[callback]) timestamp = float(db[callback])
if timestamp > last_backup: if timestamp > last_backup:
last_backup = timestamp last_backup = timestamp
result = datetime.datetime.fromtimestamp(last_backup) result = datetime.datetime.fromtimestamp(float(last_backup))
db.close() db.close()
shutil.rmtree(temporary_directory) shutil.rmtree(temporary_directory)
return result return result
......
[template-pbsready]
recipe = slapos.recipe.template:jinja2
template = ${pbsready:output}
rendered = $${buildout:directory}/pbsready.cfg
extensions = jinja2.ext.do
context =
key slapparameter_dict slap-configuration:configuration
[template-pbsready-export] [template-pbsready-export]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${pbsready-export:target} template = ${pbsready-export:target}
...@@ -5,10 +13,19 @@ rendered = $${buildout:directory}/pbsready-exporter.cfg ...@@ -5,10 +13,19 @@ rendered = $${buildout:directory}/pbsready-exporter.cfg
mode = 640 mode = 640
context = context =
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
raw pbsready_template_path ${pbsready:output} raw pbsready_template_path $${template-pbsready:rendered}
raw bash_executable_location ${bash:location}/bin/bash raw bash_executable_location ${bash:location}/bin/bash
raw logrotate_executable_location ${logrotate:location}/usr/sbin/logrotate raw logrotate_executable_location ${logrotate:location}/usr/sbin/logrotate
[template-pbsready-import]
recipe = slapos.recipe.template:jinja2
template = ${pbsready-import:output}
rendered = $${buildout:directory}/pbsready-importer.cfg
extensions = jinja2.ext.do
context =
key slapparameter_dict slap-configuration:configuration
raw pbsready_template_path $${template-pbsready:rendered}
[instance-frozen] [instance-frozen]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${instance-frozen:output} template = ${instance-frozen:output}
...@@ -23,5 +40,7 @@ template = ${template-pull-backup:output} ...@@ -23,5 +40,7 @@ template = ${template-pull-backup:output}
rendered = $${buildout:directory}/template-pull-backup.cfg rendered = $${buildout:directory}/template-pull-backup.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
context = context =
key slave_instance_list slap-configuration:slave-instance-list
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
key ipv6 slap-configuration:ipv6-random key ipv6 slap-configuration:ipv6-random
This diff is collapsed.
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