From 0388014636ce25fd1786c8bb79727dd643604f11 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 15 Feb 2018 17:32:28 +0100 Subject: [pkg] rename bundling scripts to add clarity --- Makefile | 27 ++++++------- pkg/bundle_from_docker | 24 ++++++++++++ pkg/bundle_from_docker_venv | 10 +++++ pkg/docker_build | 10 ----- pkg/docker_build_apt | 24 ------------ pkg/docker_build_riseupvpn | 62 ----------------------------- pkg/docker_bundle/Dockerfile | 23 ----------- pkg/docker_bundle/Makefile | 8 ---- pkg/docker_bundleapt/Dockerfile | 80 -------------------------------------- pkg/docker_bundleapt/Makefile | 22 ----------- pkg/docker_bundleapt/systray.sh | 10 ----- pkg/docker_bundler/Dockerfile | 80 ++++++++++++++++++++++++++++++++++++++ pkg/docker_bundler/Makefile | 22 +++++++++++ pkg/docker_bundler/systray.sh | 10 +++++ pkg/docker_bundler_venv/Dockerfile | 23 +++++++++++ pkg/docker_bundler_venv/Makefile | 8 ++++ 16 files changed, 189 insertions(+), 254 deletions(-) create mode 100644 pkg/bundle_from_docker create mode 100644 pkg/bundle_from_docker_venv delete mode 100644 pkg/docker_build delete mode 100644 pkg/docker_build_apt delete mode 100644 pkg/docker_build_riseupvpn delete mode 100644 pkg/docker_bundle/Dockerfile delete mode 100644 pkg/docker_bundle/Makefile delete mode 100644 pkg/docker_bundleapt/Dockerfile delete mode 100644 pkg/docker_bundleapt/Makefile delete mode 100644 pkg/docker_bundleapt/systray.sh create mode 100644 pkg/docker_bundler/Dockerfile create mode 100644 pkg/docker_bundler/Makefile create mode 100644 pkg/docker_bundler/systray.sh create mode 100644 pkg/docker_bundler_venv/Dockerfile create mode 100644 pkg/docker_bundler_venv/Makefile diff --git a/Makefile b/Makefile index 769e63cf..76ba25a5 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ DIST_VERSION = $(DIST)-$(NEXT_VERSION)/ HEADLESS_DIST=dist/bitmask-nox HEADLESS_DIST_VERSION = $(HEADLESS_DIST)-$(NEXT_VERSION)/ -ANONVPN_DIST=dist/anonvpn +ANONVPN_DIST=dist/RiseupVPN ANONVPN_DIST_VERSION = $(ANONVPN_DIST)-$(NEXT_VERSION)/ BITMASK_ROOT = src/leap/bitmask/vpn/helpers/linux/bitmask-root @@ -95,29 +95,26 @@ package_in_docker: gitlab-runner exec docker package:amd64_stretch bundler_image: - cd pkg/docker_bundleapt && make bundler - -bundle_in_docker_virtualenv: - # this runs bundles inside a virtualenv. it is kind of slow because it compiles all python extensions in dependencies each time. - rm -rf $(DIST_VERSION) bitmaskbuild - cat pkg/docker_build | docker run -i -v ~/leap/bitmask-dev:/dist -w /dist -u `id -u` -e REPO="$(REPO)" -e BRANCH="$(BRANCH)" local_bundler bash - mkdir -p dist/ - cp -r bitmaskbuild/$(DIST_VERSION) dist/ - rm -rf bitmaskbuild + cd pkg/docker_bundler && make bundler bundle_in_docker: # needs a docker container called 'bitmask-bundler-apt', created with 'make bundler_image' - rm -rf $(DIST_VERSION) bitmaskbuild # XXX why was it needed to specify -u `id -u` again? if it's something with gilab CI we might need # to chown it first. - cat pkg/docker_build_apt | docker run -i -v /srv/bitmask-builds:/dist -w /dist -e REPO="$(REPO)" -e BRANCH="$(BRANCH)" bitmask-bundler-apt bash + cat pkg/bundle_from_docker | docker run -i -v /srv/bitmask-builds:/dist -w /dist -e REPO="$(REPO)" -e BRANCH="$(BRANCH)" bitmask-bundler-apt bash -bundle_riseupvpn_in_docker: +bundle_riseupvpn: # needs a docker container called 'bitmask-bundler-apt', created with 'make bundler_image' - rm -rf $(DIST_VERSION) bitmaskbuild # XXX why was it needed to specify -u `id -u` again? if it's something with gilab CI we might need # to chown it first. - cat pkg/docker_build_riseupvpn | docker run -i -v /srv/bitmask-builds:/dist -w /dist -e REPO="$(REPO)" -e BRANCH="$(BRANCH)" bitmask-bundler-apt bash + cat pkg/bundle_riseupvpn_from_docker | docker run -i -v /srv/bitmask-builds:/dist -w /dist -e REPO="$(REPO)" -e BRANCH="$(BRANCH)" bitmask-bundler-apt bash + +bundle_in_docker_virtualenv: + # this runs bundles inside a virtualenv. it is kind of slow because it compiles all python extensions in dependencies each time. + cat pkg/bundle_from_docker_venv | docker run -i -v ~/leap/bitmask-dev:/dist -w /dist -u `id -u` -e REPO="$(REPO)" -e BRANCH="$(BRANCH)" bitmask-bundler-venv bash + mkdir -p dist/ + cp -r bitmaskbuild/$(DIST_VERSION) dist/ + rm -rf bitmaskbuild upload: python setup.py sdist bdist_wheel --universal upload --sign -i kali@leap.se -r pypi diff --git a/pkg/bundle_from_docker b/pkg/bundle_from_docker new file mode 100644 index 00000000..1d87b4e1 --- /dev/null +++ b/pkg/bundle_from_docker @@ -0,0 +1,24 @@ +# This script gets executed inside the docker-bundler-apt image. +# (no virtualenv, so all the dependencies must be already installed in the image). + +: ${REPO:="https://github.com/leapcode/bitmask-dev"} +: ${BRANCH:="master"} + +cd /src/leap/bitmask-dev +RELEASE=bitmask-`cat pkg/next-version` +cd $HOME +echo "[+] CLONING REPO from $REPO [$BRANCH]" +git clone $REPO bitmaskbuild +cd bitmaskbuild +git checkout $BRANCH +git fetch --tags + +pip uninstall --yes leap.bitmask +pip install -e . + +mkdir -p dist/ + +VIRTUAL_ENV=/usr/local make bundle_linux +cp -r dist/* /dist + +echo "[+] DONE" diff --git a/pkg/bundle_from_docker_venv b/pkg/bundle_from_docker_venv new file mode 100644 index 00000000..9669a87f --- /dev/null +++ b/pkg/bundle_from_docker_venv @@ -0,0 +1,10 @@ +: ${REPO:="https://github.com/leapcode/bitmask-dev"} +: ${BRANCH:="master"} + +RELEASE=bitmask-`cat pkg/next-version` +echo "[+] CLONING REPO from $REPO [$BRANCH]" +git clone $REPO bitmaskbuild +cd bitmaskbuild +git checkout $BRANCH +mkdir -p dist/ +pkg/build_bundle_with_venv.sh diff --git a/pkg/docker_build b/pkg/docker_build deleted file mode 100644 index 9669a87f..00000000 --- a/pkg/docker_build +++ /dev/null @@ -1,10 +0,0 @@ -: ${REPO:="https://github.com/leapcode/bitmask-dev"} -: ${BRANCH:="master"} - -RELEASE=bitmask-`cat pkg/next-version` -echo "[+] CLONING REPO from $REPO [$BRANCH]" -git clone $REPO bitmaskbuild -cd bitmaskbuild -git checkout $BRANCH -mkdir -p dist/ -pkg/build_bundle_with_venv.sh diff --git a/pkg/docker_build_apt b/pkg/docker_build_apt deleted file mode 100644 index 1d87b4e1..00000000 --- a/pkg/docker_build_apt +++ /dev/null @@ -1,24 +0,0 @@ -# This script gets executed inside the docker-bundler-apt image. -# (no virtualenv, so all the dependencies must be already installed in the image). - -: ${REPO:="https://github.com/leapcode/bitmask-dev"} -: ${BRANCH:="master"} - -cd /src/leap/bitmask-dev -RELEASE=bitmask-`cat pkg/next-version` -cd $HOME -echo "[+] CLONING REPO from $REPO [$BRANCH]" -git clone $REPO bitmaskbuild -cd bitmaskbuild -git checkout $BRANCH -git fetch --tags - -pip uninstall --yes leap.bitmask -pip install -e . - -mkdir -p dist/ - -VIRTUAL_ENV=/usr/local make bundle_linux -cp -r dist/* /dist - -echo "[+] DONE" diff --git a/pkg/docker_build_riseupvpn b/pkg/docker_build_riseupvpn deleted file mode 100644 index e741d8c6..00000000 --- a/pkg/docker_build_riseupvpn +++ /dev/null @@ -1,62 +0,0 @@ -# This script gets executed inside the docker-bundler-apt image. -# Produces a RiseupVPN bundle inside the volume exported as /dist -# (no virtualenv, so all the dependencies must be already installed in the image). - -: ${REPO:="https://github.com/leapcode/bitmask-dev"} -: ${BRANCH:="master"} - -# build bitmask-systray -# (dependencies should already be in the base image) - -export GOPATH=/srv/go -export CGO_CPPFLAGS="-I/usr/include" -export CGO_LDFLAGS="-L/usr/lib -L/usr/lib/z86_64-linux-gnu -lzmq -lpthread -lsodium -lrt -lstdc++ -lm -lc -lgcc" - -# echo "[+] building systray deps" -# go get -a 0xacab.org/leap/bitmask-systray -cd /src/leap && git clone --depth 1 --single-branch --branch master https://0xacab.org/leap/bitmask-systray -echo "[+] building systray" -cd bitmask-systray && go build . - -cd $HOME -echo "[+] CLONING REPO from $REPO [$BRANCH]" -rm -rf bitmaskbuild -git clone --depth 1 --single-branch --branch $BRANCH $REPO bitmaskbuild -cd bitmaskbuild -RELEASE=anonvpn-`cat pkg/next-version` -echo "[+] RELEASE: $RELEASE" -git fetch --tags -# uninstall bitmask-dev from base image and install bitmask-vpn -pip uninstall --yes leap.bitmask -pip install -e '.[vpn]' -mkdir -p dist/ - -# nuke bitmask mail -rm -rf src/leap/bitmask/mail - -# build anonvpn bundle -VIRTUAL_ENV=/usr/local make bundle_anonvpn_linux - -# copy systray binary and libs -echo "[+] Copy systray binary" -cp /src/leap/bitmask-systray/bitmask-systray dist/${RELEASE}/lib/ -cp /usr/lib/x86_64-linux-gnu/libsodium.so.18 dist/${RELEASE}/lib/ -cp /usr/lib/x86_64-linux-gnu/libzmq.so.5.1.1 dist/${RELEASE}/lib/libzmq.so.5 -cp /usr/lib/x86_64-linux-gnu/libappindicator3.so.1 dist/${RELEASE}/lib/ -cp /usr/lib/x86_64-linux-gnu/libpng16.so.16 dist/${RELEASE}/lib/libpng.so.16 -cp /usr/lib/x86_64-linux-gnu/libz.so dist/${RELEASE}/lib/libz.so - -# trim some bytes -rm dist/${RELEASE}/lib/pysqlcipher._sqlite.so -rm dist/${RELEASE}/lib/libzmq-0576c57a.so.5.0.2 -rm dist/${RELEASE}/lib/libsqlite3.so.0 - -# rename entrypoint -echo "[+] Build and copy wrapper binary" -cd $HOME/bitmaskbuild/pkg/launcher && make -cd $HOME/bitmaskbuild -cp pkg/launcher/bitmask dist/${RELEASE}/RiseupVPN -mv dist/${RELEASE}/lib/anonvpn dist/${RELEASE}/lib/bitmask - -cp -r dist/* /dist -echo "[+] DONE" diff --git a/pkg/docker_bundle/Dockerfile b/pkg/docker_bundle/Dockerfile deleted file mode 100644 index b2974dfe..00000000 --- a/pkg/docker_bundle/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# This is *almost* a copy of the file that's used for building the bundle docker image. -# The copy that the CI uses is in tests/docker/Dockerfile - -# It has diverged from the original, but it's because I don't want the clutter -# of all the nodejs and friends inside a container for bundling -- kali. - -# Building on ubuntu 17.10 gives glibc version compat errors. -FROM debian:stretch - -MAINTAINER LEAP Encryption Access Project -LABEL Description="Image for building Bitmask bundle based on Ubuntu 17:04" Vendor="LEAP" Version="1.1" - -RUN apt update && apt upgrade -y - -# Install bitmask-dev build deps -RUN apt install -y --no-install-recommends \ - build-essential virtualenv libpython-dev \ - libsqlcipher-dev libssl-dev libffi-dev \ - python-pyqt5 python-pyqt5.qtwebkit \ - libqt5printsupport5 \ - qttranslations5-l10n libgl1-mesa-glx \ - libusb-0.1-4 patchelf wget \ - gnupg1 git libgl1-mesa-glx diff --git a/pkg/docker_bundle/Makefile b/pkg/docker_bundle/Makefile deleted file mode 100644 index f9c82ac1..00000000 --- a/pkg/docker_bundle/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -IMAGE=bitmask-bundler - -build: - docker build -t 0xacab.org:4567/leap/docker/$(IMAGE):latest . -push: - docker push 0xacab.org:4567/leap/docker/$(IMAGE):latest -login: - docker login 0xacab.org:4567 diff --git a/pkg/docker_bundleapt/Dockerfile b/pkg/docker_bundleapt/Dockerfile deleted file mode 100644 index 810cae81..00000000 --- a/pkg/docker_bundleapt/Dockerfile +++ /dev/null @@ -1,80 +0,0 @@ -FROM python:2.7-slim-stretch -MAINTAINER kali - -LABEL Description="Image for building Bitmask bundle based on python:2.7-slim-stretch" Vendor="LEAP" Version="1.0" - -RUN apt update && apt upgrade -y -RUN pip install -U pip - -# Install bitmask-dev build deps, -# plus some dependencies needed by bitmask-systray too, -# so that we can reuse the bundler image. -RUN apt install -y --no-install-recommends \ - build-essential virtualenv libpython-dev \ - libsqlcipher-dev libssl-dev libffi-dev \ - libsqlite3-dev libzmq3-dev \ - python-pyqt5 python-pyqt5.qtwebkit \ - libqt5printsupport5 \ - qttranslations5-l10n libgl1-mesa-glx \ - libusb-0.1-4 patchelf wget \ - gnupg1 git libgl1-mesa-glx \ - libappindicator3-dev libgtk-3-dev golang \ - libsodium-dev - -# Pyinstaller custom versions -#ARG PYINSTALLER_TAG=v3.2 -ARG PYINSTALLER_TAG=pyqt5_fix -# -# TODO -# change to pyinstaller repo when pyqt5_fix is merged -# -#RUN git clone --depth 1 --single-branch --branch $PYINSTALLER_TAG https://github.com/pyinstaller/pyinstaller.git /tmp/pyinstaller -RUN git clone --depth 1 --single-branch --branch $PYINSTALLER_TAG https://github.com/bjones1/pyinstaller.git /tmp/pyinstaller -RUN cd /tmp/pyinstaller && pip install --force-reinstall . - - -# Get Bitmask code -------------------------------------------- -RUN mkdir -p /src/leap -WORKDIR /src/leap - -#ARG BITMASK_BRANCH=master -#ARG BITMASK_REPO=https://0xacab.org/leap/bitmask-dev -ARG BITMASK_BRANCH=feat/webkit-fallback -ARG BITMASK_REPO=https://0xacab.org/kali/bitmask-dev -#RUN git clone https://0xacab.org/leap/bitmask-dev -RUN git clone --depth 1 --single-branch --branch $BITMASK_BRANCH $BITMASK_REPO - -WORKDIR /src/leap/bitmask-dev -RUN pip install pysqlcipher --install-option="--bundled" -RUN pip install leap.bitmask_js -RUN pip install -r pkg/requirements.pip - -RUN pip install ".[mail]" -RUN make install_pixelated - -# TODO -- build on different containers and orchestrate them -# build gnupg and openvpn binaries -------------------------- -# RUN cd pkg/thirdparty/gnupg && ./build_gnupg.sh -# RUN cd pkg/thirdparty/openvpn && ./build_openvpn.sh -# ----------------------------------------------------------- - - -# Some hacks to make dist-packages visible from the pip installation path in /usr/local -RUN ln -s /usr/lib/python2.7/dist-packages/PyQt5/ /usr/local/lib/python2.7/site-packages/PyQt5 -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtCore.x86_64-linux-gnu.so QtCore.so -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtGui.x86_64-linux-gnu.so QtGui.so -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtWidgets.x86_64-linux-gnu.so QtWidgets.so -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtWebKit.x86_64-linux-gnu.so QtWebKit.so -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtWebKitWidgets.x86_64-linux-gnu.so QtWebKitWidgets.so -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtNetwork.x86_64-linux-gnu.so QtNetwork.so -RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtPrintSupport.x86_64-linux-gnu.so QtPrintSupport.so -RUN ln -s /usr/lib/python2.7/dist-packages/sip.x86_64-linux-gnu.so /usr/local/lib/python2.7/site-packages/sip.so -RUN ln -s /usr/lib/python2.7/dist-packages/sipconfig.py /usr/local/lib/python2.7/site-packages/ -RUN ln -s /usr/lib/python2.7/dist-packages/sipconfig_nd.py /usr/local/lib/python2.7/site-packages/ -RUN ln -s /usr/lib/python2.7/dist-packages/sip.pyi /usr/local/lib/python2.7/site-packages/ - -# get dependencies for bitmask-systray so that builds are quick -RUN export GOPATH=/srv/go && \ - export CGO_CPPFLAGS="-I/usr/include" && \ - export CGO_LDFLAGS="-L/usr/lib -L/usr/lib/z86_64-linux-gnu -lzmq -lpthread -lsodium -lrt -lstdc++ -lm -lc -lgcc" && \ - go get 0xacab.org/leap/bitmask-systray diff --git a/pkg/docker_bundleapt/Makefile b/pkg/docker_bundleapt/Makefile deleted file mode 100644 index f36d2ef1..00000000 --- a/pkg/docker_bundleapt/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -IMAGE=bitmask-bundler-apt - -# for leap registry - -build: - docker build -t 0xacab.org:4567/leap/docker/$(IMAGE):latest . -push: - docker push 0xacab.org:4567/leap/docker/$(IMAGE):latest -login: - docker login 0xacab.org:4567 - -# for local tests -prune: - docker system prune -bundler: - docker build -t $(IMAGE) . -shell: - docker run -i -t $(IMAGE) bash -bundle: - echo "cd /src/leap/bitmask-dev && VIRTUAL_ENV=/usr/local make bundle && cp -r dist/* /dist" | docker run -i -v /srv/bitmask-builds:/dist -w /dist $(IMAGE) bash -systray: - cat systray.sh | docker run -i -v /srv/bitmask-builds:/dist -w /dist $(IMAGE) bash diff --git a/pkg/docker_bundleapt/systray.sh b/pkg/docker_bundleapt/systray.sh deleted file mode 100644 index 4bb19067..00000000 --- a/pkg/docker_bundleapt/systray.sh +++ /dev/null @@ -1,10 +0,0 @@ -export GOPATH=/srv/go -export CGO_CPPFLAGS="-I/usr/include" -export CGO_LDFLAGS="-L/usr/lib -L/usr/lib/z86_64-linux-gnu -lzmq -lpthread -lsodium -lrt -lstdc++ -lm -lc -lgcc" - -echo "[+] building systray deps" -go get -a 0xacab.org/leap/bitmask-systray -cd /src/leap && git clone --depth 1 --single-branch --branch master https://0xacab.org/leap/bitmask-systray -echo "[+] building systray" -cd bitmask-systray && go build . -cp -r /src/leap/bitmask-systray/bitmask-systray /dist diff --git a/pkg/docker_bundler/Dockerfile b/pkg/docker_bundler/Dockerfile new file mode 100644 index 00000000..810cae81 --- /dev/null +++ b/pkg/docker_bundler/Dockerfile @@ -0,0 +1,80 @@ +FROM python:2.7-slim-stretch +MAINTAINER kali + +LABEL Description="Image for building Bitmask bundle based on python:2.7-slim-stretch" Vendor="LEAP" Version="1.0" + +RUN apt update && apt upgrade -y +RUN pip install -U pip + +# Install bitmask-dev build deps, +# plus some dependencies needed by bitmask-systray too, +# so that we can reuse the bundler image. +RUN apt install -y --no-install-recommends \ + build-essential virtualenv libpython-dev \ + libsqlcipher-dev libssl-dev libffi-dev \ + libsqlite3-dev libzmq3-dev \ + python-pyqt5 python-pyqt5.qtwebkit \ + libqt5printsupport5 \ + qttranslations5-l10n libgl1-mesa-glx \ + libusb-0.1-4 patchelf wget \ + gnupg1 git libgl1-mesa-glx \ + libappindicator3-dev libgtk-3-dev golang \ + libsodium-dev + +# Pyinstaller custom versions +#ARG PYINSTALLER_TAG=v3.2 +ARG PYINSTALLER_TAG=pyqt5_fix +# +# TODO +# change to pyinstaller repo when pyqt5_fix is merged +# +#RUN git clone --depth 1 --single-branch --branch $PYINSTALLER_TAG https://github.com/pyinstaller/pyinstaller.git /tmp/pyinstaller +RUN git clone --depth 1 --single-branch --branch $PYINSTALLER_TAG https://github.com/bjones1/pyinstaller.git /tmp/pyinstaller +RUN cd /tmp/pyinstaller && pip install --force-reinstall . + + +# Get Bitmask code -------------------------------------------- +RUN mkdir -p /src/leap +WORKDIR /src/leap + +#ARG BITMASK_BRANCH=master +#ARG BITMASK_REPO=https://0xacab.org/leap/bitmask-dev +ARG BITMASK_BRANCH=feat/webkit-fallback +ARG BITMASK_REPO=https://0xacab.org/kali/bitmask-dev +#RUN git clone https://0xacab.org/leap/bitmask-dev +RUN git clone --depth 1 --single-branch --branch $BITMASK_BRANCH $BITMASK_REPO + +WORKDIR /src/leap/bitmask-dev +RUN pip install pysqlcipher --install-option="--bundled" +RUN pip install leap.bitmask_js +RUN pip install -r pkg/requirements.pip + +RUN pip install ".[mail]" +RUN make install_pixelated + +# TODO -- build on different containers and orchestrate them +# build gnupg and openvpn binaries -------------------------- +# RUN cd pkg/thirdparty/gnupg && ./build_gnupg.sh +# RUN cd pkg/thirdparty/openvpn && ./build_openvpn.sh +# ----------------------------------------------------------- + + +# Some hacks to make dist-packages visible from the pip installation path in /usr/local +RUN ln -s /usr/lib/python2.7/dist-packages/PyQt5/ /usr/local/lib/python2.7/site-packages/PyQt5 +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtCore.x86_64-linux-gnu.so QtCore.so +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtGui.x86_64-linux-gnu.so QtGui.so +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtWidgets.x86_64-linux-gnu.so QtWidgets.so +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtWebKit.x86_64-linux-gnu.so QtWebKit.so +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtWebKitWidgets.x86_64-linux-gnu.so QtWebKitWidgets.so +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtNetwork.x86_64-linux-gnu.so QtNetwork.so +RUN cd /usr/local/lib/python2.7/site-packages/PyQt5 && ln -s QtPrintSupport.x86_64-linux-gnu.so QtPrintSupport.so +RUN ln -s /usr/lib/python2.7/dist-packages/sip.x86_64-linux-gnu.so /usr/local/lib/python2.7/site-packages/sip.so +RUN ln -s /usr/lib/python2.7/dist-packages/sipconfig.py /usr/local/lib/python2.7/site-packages/ +RUN ln -s /usr/lib/python2.7/dist-packages/sipconfig_nd.py /usr/local/lib/python2.7/site-packages/ +RUN ln -s /usr/lib/python2.7/dist-packages/sip.pyi /usr/local/lib/python2.7/site-packages/ + +# get dependencies for bitmask-systray so that builds are quick +RUN export GOPATH=/srv/go && \ + export CGO_CPPFLAGS="-I/usr/include" && \ + export CGO_LDFLAGS="-L/usr/lib -L/usr/lib/z86_64-linux-gnu -lzmq -lpthread -lsodium -lrt -lstdc++ -lm -lc -lgcc" && \ + go get 0xacab.org/leap/bitmask-systray diff --git a/pkg/docker_bundler/Makefile b/pkg/docker_bundler/Makefile new file mode 100644 index 00000000..f36d2ef1 --- /dev/null +++ b/pkg/docker_bundler/Makefile @@ -0,0 +1,22 @@ +IMAGE=bitmask-bundler-apt + +# for leap registry + +build: + docker build -t 0xacab.org:4567/leap/docker/$(IMAGE):latest . +push: + docker push 0xacab.org:4567/leap/docker/$(IMAGE):latest +login: + docker login 0xacab.org:4567 + +# for local tests +prune: + docker system prune +bundler: + docker build -t $(IMAGE) . +shell: + docker run -i -t $(IMAGE) bash +bundle: + echo "cd /src/leap/bitmask-dev && VIRTUAL_ENV=/usr/local make bundle && cp -r dist/* /dist" | docker run -i -v /srv/bitmask-builds:/dist -w /dist $(IMAGE) bash +systray: + cat systray.sh | docker run -i -v /srv/bitmask-builds:/dist -w /dist $(IMAGE) bash diff --git a/pkg/docker_bundler/systray.sh b/pkg/docker_bundler/systray.sh new file mode 100644 index 00000000..4bb19067 --- /dev/null +++ b/pkg/docker_bundler/systray.sh @@ -0,0 +1,10 @@ +export GOPATH=/srv/go +export CGO_CPPFLAGS="-I/usr/include" +export CGO_LDFLAGS="-L/usr/lib -L/usr/lib/z86_64-linux-gnu -lzmq -lpthread -lsodium -lrt -lstdc++ -lm -lc -lgcc" + +echo "[+] building systray deps" +go get -a 0xacab.org/leap/bitmask-systray +cd /src/leap && git clone --depth 1 --single-branch --branch master https://0xacab.org/leap/bitmask-systray +echo "[+] building systray" +cd bitmask-systray && go build . +cp -r /src/leap/bitmask-systray/bitmask-systray /dist diff --git a/pkg/docker_bundler_venv/Dockerfile b/pkg/docker_bundler_venv/Dockerfile new file mode 100644 index 00000000..b2974dfe --- /dev/null +++ b/pkg/docker_bundler_venv/Dockerfile @@ -0,0 +1,23 @@ +# This is *almost* a copy of the file that's used for building the bundle docker image. +# The copy that the CI uses is in tests/docker/Dockerfile + +# It has diverged from the original, but it's because I don't want the clutter +# of all the nodejs and friends inside a container for bundling -- kali. + +# Building on ubuntu 17.10 gives glibc version compat errors. +FROM debian:stretch + +MAINTAINER LEAP Encryption Access Project +LABEL Description="Image for building Bitmask bundle based on Ubuntu 17:04" Vendor="LEAP" Version="1.1" + +RUN apt update && apt upgrade -y + +# Install bitmask-dev build deps +RUN apt install -y --no-install-recommends \ + build-essential virtualenv libpython-dev \ + libsqlcipher-dev libssl-dev libffi-dev \ + python-pyqt5 python-pyqt5.qtwebkit \ + libqt5printsupport5 \ + qttranslations5-l10n libgl1-mesa-glx \ + libusb-0.1-4 patchelf wget \ + gnupg1 git libgl1-mesa-glx diff --git a/pkg/docker_bundler_venv/Makefile b/pkg/docker_bundler_venv/Makefile new file mode 100644 index 00000000..233a2acc --- /dev/null +++ b/pkg/docker_bundler_venv/Makefile @@ -0,0 +1,8 @@ +IMAGE=bitmask-bundler-venv + +build: + docker build -t 0xacab.org:4567/leap/docker/$(IMAGE):latest . +push: + docker push 0xacab.org:4567/leap/docker/$(IMAGE):latest +login: + docker login 0xacab.org:4567 -- cgit v1.2.3