From faaa550daaefba91ef0db60b79db1c3fc911dcf7 Mon Sep 17 00:00:00 2001 From: haskal Date: Wed, 16 Jun 2021 02:21:34 -0400 Subject: [PATCH] add z3 (regular) and angr --- leylines-ansible/playbook-setup.yml | 102 +++++++++++++++++++++------- 1 file changed, 77 insertions(+), 25 deletions(-) diff --git a/leylines-ansible/playbook-setup.yml b/leylines-ansible/playbook-setup.yml index 045ee8e..f1ea8a3 100644 --- a/leylines-ansible/playbook-setup.yml +++ b/leylines-ansible/playbook-setup.yml @@ -5,13 +5,36 @@ LD_LIBRARY_PATH: '/home/{{ ansible_user }}/.local/lib:{{ ansible_env.get("LD_LIBRARY_PATH", "") }}' vars: python_version: 3.9.5 + z3_version: 4.8.11 + base_packages: + - dask + - distributed + - blosc + - lz4 + worker_packages: + - numpy + - scipy + - pandas + - scikit-image + - matplotlib + - opt_einsum + - cloudpickle + - fsspec + - partd + - psutil + - sqlalchemy + - toolz + - xxhash + scheduler_packages: + - bokeh + - jupyter-server-proxy tasks: - name: install system packages become: yes apt: name: ["build-essential", "wget", "software-properties-common", "libnss3-dev", "zlib1g-dev", "libgdbm-dev", "libncurses5-dev", "libssl-dev", "libffi-dev", "libreadline-dev", - "libsqlite3-dev", "libbz2-dev", "libopenblas-dev"] + "libsqlite3-dev", "libbz2-dev", "libopenblas-dev", "cmake"] state: present update_cache: yes @@ -52,6 +75,39 @@ make -j$(nproc) EXTRA_CFLAGS="$CFLAGS" make EXTRA_CFLAGS="$CFLAGS" install + - name: build and install z3 (workers) + when: leylines_is_server == "no" + register: z3install + changed_when: "'NO_COMPILE_NEEDED' not in pyinstall.stdout" + args: + executable: "/bin/bash" + shell: | + set -eo pipefail + existing_ver="$(python3 -c "import z3; print(z3.get_version_string())" || true)" + if [ "$existing_ver" == "{{ z3_version }}" ]; then + echo "NO_COMPILE_NEEDED" + exit + fi + cd $HOME/python + wget -O z3.tgz https://github.com/Z3Prover/z3/archive/z3-{{ z3_version }}.tar.gz + tar xf z3.tgz + # microsoft why are you like this + cd z3-z3-{{ z3_version }} + mkdir -p build + cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$HOME/.local \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DZ3_LINK_TIME_OPTIMIZATION=1 \ + -DZ3_BUILD_PYTHON_BINDINGS=1 \ + -DPYTHON_EXECUTABLE=$HOME/.local/bin/python3 + make -j$(nproc) + make install + cd $HOME/.local/lib/python*/site-packages/z3 + python3 -m compileall . + python3 -O -m compileall . + - name: create dask dir file: path: /home/{{ ansible_user }}/dask @@ -60,35 +116,31 @@ - name: install python packages vars: - - base_packages: - - dask - - distributed - - blosc - - lz4 - - worker_packages: - - numpy - - scipy - - pandas - - scikit-image - - matplotlib - - opt_einsum - - cloudpickle - - fsspec - - partd - - psutil - - sqlalchemy - - toolz - - xxhash - - scheduler_packages: - - bokeh - - jupyter-server-proxy - - python_packages: "{% if leylines_is_server %}{{ base_packages + scheduler_packages }}{% else %}{{ base_packages + worker_packages }}{% endif %}" + python_packages: "{% if leylines_is_server %}{{ base_packages + scheduler_packages }}{% else %}{{ base_packages + worker_packages }}{% endif %}" pip: virtualenv: /home/{{ ansible_user }}/dask/dask-venv - virtualenv_command: python3.9 -m venv + virtualenv_command: python3 -m venv + virtualenv_site_packages: True state: latest name: "{{ python_packages }}" + - name: create alternate venv for angr + when: leylines_is_server == "no" + pip: + virtualenv: /home/{{ ansible_user }}/dask/angr-venv + virtualenv_command: python3 -m venv + state: latest + name: ["angr", "cloudpickle"] + + - name: copy weird packages + when: leylines_is_server == "no" + changed_when: true + args: + executable: "/bin/bash" + shell: | + set -eo pipefail + cp -r $HOME/.local/lib/python*/site-packages/z3/ $HOME/dask/dask-venv/lib/python*/site-packages/ + - name: install systemd user dir file: path: /home/{{ ansible_user }}/.config/systemd/user