From bf8b585fdca01f6c42f74ab227646d915035e51c Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Tue, 30 Oct 2018 10:34:54 -0700 Subject: [PATCH 1/7] WIP --- _build/ios/drake | 46 +-------------------------------- _build/ios/run | 45 ++++++++++++++++++++++++++++++++ _build/linux32/drake | 14 +--------- _build/linux32/run | 13 ++++++++++ _build/linux64/drake | 25 +----------------- _build/linux64/run | 24 +++++++++++++++++ _build/macosx64/drake | 51 +------------------------------------ drake/requirements.txt | 4 +-- drake/src/drake/__init__.py | 6 ++--- drake/src/drake/command.py | 15 ++++++----- drake/src/drake/git.py | 24 ++++++++++++++--- 11 files changed, 120 insertions(+), 147 deletions(-) mode change 100755 => 120000 _build/ios/drake create mode 100755 _build/ios/run mode change 100755 => 120000 _build/linux32/drake create mode 100755 _build/linux32/run mode change 100755 => 120000 _build/linux64/drake create mode 100755 _build/linux64/run mode change 100755 => 120000 _build/macosx64/drake diff --git a/_build/ios/drake b/_build/ios/drake deleted file mode 100755 index d608bada7..000000000 --- a/_build/ios/drake +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys -root = os.path.dirname(__file__) -drake = os.path.abspath(os.path.join(root, '../../drake/src')) -sys.path.insert(0, drake) - -import resource -resource.setrlimit(resource.RLIMIT_NOFILE, (500, -1)) - -import drake -import drake.cxx -import drake.cxx.boost - -# Must set environment variables before setting up toolkit. -# /Applications/Xcode6-Beta6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk -os.environ['CROSS_TOP'] = '/Applications/Xcode6-Beta6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer' -os.environ['CROSS_SDK'] = 'iPhoneOS8.0.sdk' -os.environ['SDKROOT'] = '%s/SDKs/%s' % (os.environ['CROSS_TOP'], os.environ['CROSS_SDK']) -os.environ['TOOLCHAINS'] = '' -os.environ['DEVELOPER_DIR'] = '/Applications/Xcode6-Beta6.app/Contents/Developer' -os.environ['IOS_DEPLOYMENT_TARGET'] = '7.0' - -with drake.Drake('../..') as d: - cxx_compiler = os.getenv('CXX', 'clang++') - c_compiler = os.getenv('CC', 'clang') - cxx_toolkit = drake.cxx.GccToolkit(compiler = cxx_compiler, - compiler_c = c_compiler) - - cxx_config = drake.cxx.Config() - cxx_config.enable_debug_symbols() - cxx_config.enable_optimization(False) - cxx_config.flag('-arch') - cxx_config.flag('armv7') - cxx_config.flag('-ftemplate-depth=512') - cxx_config.flag('-std=c++11') - cxx_config.flag('-stdlib=libc++') - cxx_config.flag('-miphoneos-version-min=7.0') - cxx_config.flag('--sysroot=%s' % os.environ['SDKROOT']) - cxx_config.warnings.overloaded_virtual = False - - d.run(cxx_toolkit, - cxx_config, - python3 = None) diff --git a/_build/ios/drake b/_build/ios/drake new file mode 120000 index 000000000..2edec4345 --- /dev/null +++ b/_build/ios/drake @@ -0,0 +1 @@ +../_common/venv_wrapper.sh \ No newline at end of file diff --git a/_build/ios/run b/_build/ios/run new file mode 100755 index 000000000..d608bada7 --- /dev/null +++ b/_build/ios/run @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +import os +import sys +root = os.path.dirname(__file__) +drake = os.path.abspath(os.path.join(root, '../../drake/src')) +sys.path.insert(0, drake) + +import resource +resource.setrlimit(resource.RLIMIT_NOFILE, (500, -1)) + +import drake +import drake.cxx +import drake.cxx.boost + +# Must set environment variables before setting up toolkit. +# /Applications/Xcode6-Beta6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk +os.environ['CROSS_TOP'] = '/Applications/Xcode6-Beta6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer' +os.environ['CROSS_SDK'] = 'iPhoneOS8.0.sdk' +os.environ['SDKROOT'] = '%s/SDKs/%s' % (os.environ['CROSS_TOP'], os.environ['CROSS_SDK']) +os.environ['TOOLCHAINS'] = '' +os.environ['DEVELOPER_DIR'] = '/Applications/Xcode6-Beta6.app/Contents/Developer' +os.environ['IOS_DEPLOYMENT_TARGET'] = '7.0' + +with drake.Drake('../..') as d: + cxx_compiler = os.getenv('CXX', 'clang++') + c_compiler = os.getenv('CC', 'clang') + cxx_toolkit = drake.cxx.GccToolkit(compiler = cxx_compiler, + compiler_c = c_compiler) + + cxx_config = drake.cxx.Config() + cxx_config.enable_debug_symbols() + cxx_config.enable_optimization(False) + cxx_config.flag('-arch') + cxx_config.flag('armv7') + cxx_config.flag('-ftemplate-depth=512') + cxx_config.flag('-std=c++11') + cxx_config.flag('-stdlib=libc++') + cxx_config.flag('-miphoneos-version-min=7.0') + cxx_config.flag('--sysroot=%s' % os.environ['SDKROOT']) + cxx_config.warnings.overloaded_virtual = False + + d.run(cxx_toolkit, + cxx_config, + python3 = None) diff --git a/_build/linux32/drake b/_build/linux32/drake deleted file mode 100755 index a5054d0b1..000000000 --- a/_build/linux32/drake +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python3 - -import os, sys -sys.path.insert( - 0, - os.path.abspath( - os.path.join(os.path.dirname(__file__), '../../drake/src') - ) -) - -import drake - -drake.run('../..') diff --git a/_build/linux32/drake b/_build/linux32/drake new file mode 120000 index 000000000..2edec4345 --- /dev/null +++ b/_build/linux32/drake @@ -0,0 +1 @@ +../_common/venv_wrapper.sh \ No newline at end of file diff --git a/_build/linux32/run b/_build/linux32/run new file mode 100755 index 000000000..a5054d0b1 --- /dev/null +++ b/_build/linux32/run @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +import os, sys +sys.path.insert( + 0, + os.path.abspath( + os.path.join(os.path.dirname(__file__), '../../drake/src') + ) +) + +import drake + +drake.run('../..') diff --git a/_build/linux64/drake b/_build/linux64/drake deleted file mode 100755 index 6d3ab9a8b..000000000 --- a/_build/linux64/drake +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python3 - -import os, sys -sys.path.insert( - 0, - os.path.abspath( - os.path.join(os.path.dirname(__file__), '../../drake/src') - ) -) - -import drake -import drake.cxx -import drake.valgrind - -try: - valgrind = drake.valgrind.Valgrind() -except: - valgrind = None - -cfg = drake.cxx.Config() -cfg.enable_debug_symbols() - -with drake.Drake('../..') as d: - d.run(cxx_config = cfg, valgrind = valgrind) diff --git a/_build/linux64/drake b/_build/linux64/drake new file mode 120000 index 000000000..2edec4345 --- /dev/null +++ b/_build/linux64/drake @@ -0,0 +1 @@ +../_common/venv_wrapper.sh \ No newline at end of file diff --git a/_build/linux64/run b/_build/linux64/run new file mode 100755 index 000000000..6d3ab9a8b --- /dev/null +++ b/_build/linux64/run @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import os, sys +sys.path.insert( + 0, + os.path.abspath( + os.path.join(os.path.dirname(__file__), '../../drake/src') + ) +) + +import drake +import drake.cxx +import drake.valgrind + +try: + valgrind = drake.valgrind.Valgrind() +except: + valgrind = None + +cfg = drake.cxx.Config() +cfg.enable_debug_symbols() + +with drake.Drake('../..') as d: + d.run(cxx_config = cfg, valgrind = valgrind) diff --git a/_build/macosx64/drake b/_build/macosx64/drake deleted file mode 100755 index 8d7b2405a..000000000 --- a/_build/macosx64/drake +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys -root = os.path.dirname(__file__) -drake = os.path.abspath(os.path.join(root, '../../drake/src')) -sys.path.insert(0, drake) - -import resource -resource.setrlimit(resource.RLIMIT_NOFILE, (500, -1)) - -enable_cryptographic_rotation = bool(os.getenv('INFINIT_CRYPTOGRAPHY_ROTATION', False)) - -import drake -import drake.cxx -import drake.cxx.boost - -def find_python3(): - python3 = None - for minor in range(9, 0, -1): - # /opt/local is MacPorts. - # /usr/local/Cellar/ is Brew. - for dir in ['/usr/local', '/opt/local/Library', '/usr/local/Cellar/python3/3.5.1']: - p = '{}/Frameworks/Python.framework/Versions/3.{}'.format(dir, minor) - if os.path.isdir(p): - return p - -python3 = find_python3() -print("using python3 =", python3, file=sys.stderr) - -with drake.Drake('../..') as d: - cxx_compiler = os.getenv('CXX', 'clang++') - c_compiler = os.getenv('C', 'clang') - cxx_toolkit = drake.cxx.GccToolkit(compiler = cxx_compiler, - compiler_c = c_compiler) - os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.7' # ensure that build is compatible with 10.7 - - cxx_config = drake.cxx.Config() - cxx_config.flag('-stdlib=libc++') # XXX[still required but it shouldn't be the case] - cxx_config.flag('-fsanitize=undefined') -# cxx_config.flag('-fsanitize=address') - cxx_config.enable_debug_symbols() - - d.run(cxx_toolkit, - None, - cxx_config, - enable_cryptographic_rotation = enable_cryptographic_rotation, - python3 = python3, - # XXX fuse = '/usr/local', - ) diff --git a/_build/macosx64/drake b/_build/macosx64/drake new file mode 120000 index 000000000..2edec4345 --- /dev/null +++ b/_build/macosx64/drake @@ -0,0 +1 @@ +../_common/venv_wrapper.sh \ No newline at end of file diff --git a/drake/requirements.txt b/drake/requirements.txt index ac4539129..599646287 100644 --- a/drake/requirements.txt +++ b/drake/requirements.txt @@ -1,5 +1,5 @@ Mako==1.0.6 -greenlet==0.4.12 +greenlet==0.4.15 mistune==0.7.4 -orderedset==2.0 +orderedset==2.0.1 requests==2.18.1 diff --git a/drake/src/drake/__init__.py b/drake/src/drake/__init__.py index 1cc7ab851..9b9172c74 100644 --- a/drake/src/drake/__init__.py +++ b/drake/src/drake/__init__.py @@ -3781,9 +3781,9 @@ def __init__(self, major = None, minor = None, subminor = None): elif isinstance(major, str) and \ minor is None and subminor is None: try: - self.__init__(*(int(c) for c in major.split('.'))) - except Exception as e: - raise Exception('invalid version: %r', major) from e + self.__init__(*(int(c) for c in major.split('.', 3))) + except ValueError as e: + raise RuntimeError('invalid version: %r' % major) from e else: assert major is not None or minor is None and subminor is None assert minor is not None or subminor is None diff --git a/drake/src/drake/command.py b/drake/src/drake/command.py index 2b61a7ddb..006683a72 100644 --- a/drake/src/drake/command.py +++ b/drake/src/drake/command.py @@ -6,9 +6,11 @@ # # See the LICENSE file for more information. -import drake import subprocess +import drake + + def _find_command(t, v): if v is False: return None @@ -23,6 +25,7 @@ def _find_command(t, v): else: return t(v) + class Command: __drake_configure__ = _find_command @@ -38,13 +41,13 @@ def __init__(self, path = None): self.__path = drake.Path(path) try: output = self._get_version() - except Exception as e: - raise Exception('Unable to find %s' % self.path) from e + except RuntimeError as e: + raise RuntimeError('Unable to find %s' % self.path) from e try: self.__version = self._parse_version(output) - except Exception as e: - raise Exception('Unable to parse %s version from %r' % \ - (self.__class.name, output)) from e + except RuntimeError as e: + raise RuntimeError('Unable to parse %s version from %r: %s' % \ + (self.__class__.name, output, e)) from e def _get_version(self): return subprocess.check_output( diff --git a/drake/src/drake/git.py b/drake/src/drake/git.py index a47d5e7dc..c2274e1c4 100644 --- a/drake/src/drake/git.py +++ b/drake/src/drake/git.py @@ -6,21 +6,37 @@ # # See the LICENSE file for more information. -import drake -import drake.command import os +import re import subprocess +import drake +import drake.command + from . import VirtualNode, Path from datetime import date from functools import lru_cache + class GitCommand(drake.command.Command): name = 'git' - def _parse_version(self, v): - return drake.Version(v.split(' ')[-1]) + # used in `_parse_version` just below + # git version outputs may vary, it can be of the form + # "git version 1.9.1" + # or + # "git version 2.15.2 (Apple Git-101.1)" + # or just plain + # "1.5" + __GIT_VERSION_REGEX=re.compile(r'^(?:git\s+version\s+)?([0-9]+\.[0-9]+(?:\.[0-9]+)?)(?:$|\s)') + + def _parse_version(self, output): + match = self.__GIT_VERSION_REGEX.match(output) + if match: + return drake.Version(match[1]) + raise RuntimeError('Unexpected output from `git --version`') + class Git(VirtualNode): From 4de43e26abaf8a993d1193f4bc3c808464eb8202 Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Tue, 30 Oct 2018 10:38:36 -0700 Subject: [PATCH 2/7] WIP --- drake/src/drake/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drake/src/drake/__init__.py b/drake/src/drake/__init__.py index 9b9172c74..cfe99e529 100644 --- a/drake/src/drake/__init__.py +++ b/drake/src/drake/__init__.py @@ -3614,8 +3614,8 @@ def __search(self, what, where, all): return rel if len(res) > 0: return res - raise Exception('Unable to find %s in %s.' % \ - (what, pretty_listing(where))) + raise RuntimeError('Unable to find %s in %s.' % \ + (what, pretty_listing(where))) def _search_all(self, what, where): return self.__search(what, where, all = True) @@ -3633,8 +3633,8 @@ def _search_many(self, whats, where, all, prefer): except Exception: pass if len(res) == 0: - raise Exception('Unable to find %s in %s.' % \ - (pretty_listing(whats), pretty_listing(where))) + raise RuntimeError('Unable to find %s in %s.' % \ + (pretty_listing(whats), pretty_listing(where))) if not all: assert prefer is not None for prefix, what in res: From 3dbeca06e17a1b61aafa62dbd0663dafdbf6b52e Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Tue, 30 Oct 2018 16:38:38 -0700 Subject: [PATCH 3/7] WIP --- .dockerignore | 1 - Dockerfile | 10 +++++++--- drake/src/drake/command.py | 2 +- drakefile | 19 +++++++++++++++---- 4 files changed, 23 insertions(+), 9 deletions(-) delete mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index e35d8850c..000000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -_build diff --git a/Dockerfile b/Dockerfile index e65324b5d..b3a0ce196 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,9 @@ -FROM ubuntu:16.04 AS trusty-ci +FROM python:3.7 + +WORKDIR /elle + +COPY drake/requirements.txt . -RUN apt-get update && apt-get install -y ccache fuse git python3.5 python3-pip valgrind && rm -rf /var/lib/apt/lists/* -ADD drake/requirements.txt . RUN pip3 install -r requirements.txt + +COPY . . diff --git a/drake/src/drake/command.py b/drake/src/drake/command.py index 006683a72..b5f736531 100644 --- a/drake/src/drake/command.py +++ b/drake/src/drake/command.py @@ -47,7 +47,7 @@ def __init__(self, path = None): self.__version = self._parse_version(output) except RuntimeError as e: raise RuntimeError('Unable to parse %s version from %r: %s' % \ - (self.__class__.name, output, e)) from e + (self.__class__.name, output, e)) from e def _get_version(self): return subprocess.check_output( diff --git a/drakefile b/drakefile index 28fa73b55..a4228789f 100644 --- a/drakefile +++ b/drakefile @@ -4,6 +4,7 @@ import drake.cxx import drake.docker import drake.cxx.boost import os +import shutil import sys from itertools import chain @@ -138,7 +139,8 @@ def configure(cxx_toolkit = None, if python3 is not False: if python_version is None: - python_version = (drake.Version(3, 6), + python_version = (drake.Version(3, 7), + drake.Version(3, 6), drake.Version(3, 5), drake.Version(3, 4), drake.Version(3, 3), @@ -156,10 +158,19 @@ def configure(cxx_toolkit = None, if pkg.exists: python3 = pkg.prefix break + # on some distros (looking at you, OS X), and depending on how python + # was installed, the header files might be in an exotic `include` dir; + # but that include dir will be two levels up from where the main + # binary lives + py_bin_path = os.path.abspath(os.path.realpath(shutil.which('python3'))) + # the bin is in root_path/bin/ + py_root_path = os.path.dirname(os.path.dirname(py_bin_path)) include_dir = list(itertools.chain( - ('include',), - *(('include/python%s' % v, - 'include/python%sm' % v) for v in python_version))) + *(list(itertools.chain( + ('%sinclude' % include_root_dir,), + *(('%sinclude/python%s' % (include_root_dir, v), + '%sinclude/python%sm' % (include_root_dir, v)) for v in python_version))) + for include_root_dir in ('', py_root_path + os.sep)))) python3 = drake.cxx.find_library( 'pyconfig.h', prefix = python3, From 7618a256cee82d1a0c43ead20e4965ca4c2f734b Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Tue, 30 Oct 2018 18:16:06 -0700 Subject: [PATCH 4/7] WIP --- drake/src/drake/__init__.py | 1 + drakefile | 16 +++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drake/src/drake/__init__.py b/drake/src/drake/__init__.py index cfe99e529..87a8febfa 100644 --- a/drake/src/drake/__init__.py +++ b/drake/src/drake/__init__.py @@ -4187,6 +4187,7 @@ def job(): return False if self.__fingerprint is not None: import hashlib + # FIXME: we should get a more secure hashing algo here d = hashlib.md5() d.update(content) h = d.hexdigest() diff --git a/drakefile b/drakefile index a4228789f..6556ffe1f 100644 --- a/drakefile +++ b/drakefile @@ -532,13 +532,13 @@ def configure(cxx_toolkit = None, ## Curl ## ## ---- ## - curl_basename = 'curl-7.51.0' + curl_basename = 'curl-7.61.1' curl_tarball = drake.node('curl/%s.tar.gz' % curl_basename) curl_prefix = drake.Path('curl') curl_build = curl_prefix / curl_basename curl_url = 'http://curl.haxx.se/download/%s.tar.gz' % curl_basename drake.HTTPDownload(curl_url, curl_tarball, - fingerprint = '490e19a8ccd1f4a244b50338a0eb9456') + fingerprint = '4762f41ef0dba751d1c7a3060a1c6ec6') drake.TarballExtractor( curl_tarball, targets = ['%s/%s' % (curl_basename, f) for f in ( @@ -623,14 +623,14 @@ def configure(cxx_toolkit = None, str(drake.path_build(curl_prefix / 'lib', absolute = True)) curl_dependency_libs = curl_openssl_libs + curl_zlib_libs curl_headers = [ - 'include/curl/typecheck-gcc.h', - 'include/curl/stdcheaders.h', - 'include/curl/easy.h', - 'include/curl/mprintf.h', 'include/curl/curl.h', 'include/curl/curlver.h', + 'include/curl/easy.h', + 'include/curl/mprintf.h', 'include/curl/multi.h', - 'include/curl/curlrules.h' + 'include/curl/stdcheaders.h', + 'include/curl/system.h', + 'include/curl/typecheck-gcc.h' ] if cxx_toolkit.os is drake.os.ios and archs: curl_arch_libs = [] @@ -1293,6 +1293,8 @@ using python : %(python_version)s : %(python_prefix)s/%(python_bin)s : %(python_ 'src/vector', type = drake.cxx.Header ) + + return # TODO wkpo ## -------------- ## ## Subdirectories ## From 46d16984bc77fe607f9128b5f0170b2534407ac9 Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Tue, 30 Oct 2018 18:21:52 -0700 Subject: [PATCH 5/7] WIP --- .dockerignore | 1 + _build/_common/venv_wrapper.sh | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 .dockerignore create mode 100755 _build/_common/venv_wrapper.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..e35d8850c --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +_build diff --git a/_build/_common/venv_wrapper.sh b/_build/_common/venv_wrapper.sh new file mode 100755 index 000000000..18e0e1c94 --- /dev/null +++ b/_build/_common/venv_wrapper.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Should arguably be made part of drake itself? + +set -e + +ARCH_DIR="$(readlink -f "$(dirname $0)")" + +if [[ "$ELLE_BUILD_USE_VENV" ]]; then + VENV_DIR="$ARCH_DIR/venv" + [ -d "$VENV_DIR" ] || python3 -m venv "$VENV_DIR" + + . "$VENV_DIR/bin/activate" + + REPO_ROOT=$(git rev-parse --show-toplevel) + REQS_FILE="$REPO_ROOT/drake/requirements.txt" + LAST_INSTALL_SENTINEL="$ARCH_DIR/last_venv_install" + + if [[ "$REQS_FILE" -nt "$LAST_INSTALL_SENTINEL" ]]; then + pip install -r "$REQS_FILE" + touch "$LAST_INSTALL_SENTINEL" + fi +fi + +exec "$ARCH_DIR/run" From 1fb5fa226eb6d45502afbdcd96a72b788ae850ea Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Fri, 2 Nov 2018 08:49:32 -0700 Subject: [PATCH 6/7] WIP --- Dockerfile | 12 ++++++++++++ _build/_common/venv_wrapper.sh | 2 +- drake/src/drake/cxx/boost.py | 4 +++- drakefile | 2 -- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index b3a0ce196..9aa07483e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,3 +7,15 @@ COPY drake/requirements.txt . RUN pip3 install -r requirements.txt COPY . . + +# since Drake writes all its temp files right into the build dir, +# we have to have it on the .dockerignore file +# but at the same time we also want build scripts in the image, so... +RUN git checkout _build +# (yes, this is a bit shitty, maybe we want to have drake use a working +# dir well separated from anything checked in - this would also allow +# first building the base image with just the dependencies compiled, then +# compiling elle itself, thus using the build cache much more +# efficiently) + +RUN cd _build/linux64 && ./drake //build diff --git a/_build/_common/venv_wrapper.sh b/_build/_common/venv_wrapper.sh index 18e0e1c94..4360c8fd8 100755 --- a/_build/_common/venv_wrapper.sh +++ b/_build/_common/venv_wrapper.sh @@ -22,4 +22,4 @@ if [[ "$ELLE_BUILD_USE_VENV" ]]; then fi fi -exec "$ARCH_DIR/run" +exec "$ARCH_DIR/run" "$@" diff --git a/drake/src/drake/cxx/boost.py b/drake/src/drake/cxx/boost.py index 52e8c9ddb..b835754f9 100644 --- a/drake/src/drake/cxx/boost.py +++ b/drake/src/drake/cxx/boost.py @@ -51,7 +51,9 @@ class Boost(drake.Configuration): 'coroutine': 'coroutine', 'iostreams': 'iostreams', 'python': list(itertools.chain( - *(('python3{}'.format(v), 'python-3.{}'.format(v)) for v in range(7)))) \ + # FIXME: define in a central place what currently is the maximum + # version of python3 that we support... (that's 7 + 1, below) + *(('python3{}'.format(v), 'python-3.{}'.format(v)) for v in range(8)))) \ + ['python3', 'python'] } diff --git a/drakefile b/drakefile index 6556ffe1f..1603e0e23 100644 --- a/drakefile +++ b/drakefile @@ -1293,8 +1293,6 @@ using python : %(python_version)s : %(python_prefix)s/%(python_bin)s : %(python_ 'src/vector', type = drake.cxx.Header ) - - return # TODO wkpo ## -------------- ## ## Subdirectories ## From d5d70f53096adbcca062d51c62efd12cdb6e3ed5 Mon Sep 17 00:00:00 2001 From: Jean Rouge Date: Fri, 2 Nov 2018 09:09:08 -0700 Subject: [PATCH 7/7] WIP: talk to me drake --- Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dockerfile b/Dockerfile index 9aa07483e..06ca60bf2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,4 +18,9 @@ RUN git checkout _build # compiling elle itself, thus using the build cache much more # efficiently) +# always nice to have drake tell us what it's doing +ENV DRAKE_DEBUG=1 +ENV DRAKE_DEBUG_BACKTRACE=1 +ENV DRAKE_RAW=1 + RUN cd _build/linux64 && ./drake //build