~thrrgilag/pantalaimon-ut

b0c720d079c7f188fb0dd88c95941b27b11cc138 — Morgan McMillian 1 year, 2 months ago 808fefb
update device build dependencies

Added support for building the current version of the python
cryptography library which now requires rust. Also included the ability
to build panctl.
1 files changed, 28 insertions(+), 18 deletions(-)

M dev-build.sh
M dev-build.sh => dev-build.sh +28 -18
@@ 3,8 3,6 @@
PROJECT_DIR=~/pantalaimon-build
TMP_DIR="${PROJECT_DIR}/tmp"

VIRTENV_DIR="${PROJECT_DIR}/virtenv"

OLM_DIR="${PROJECT_DIR}/olm"
PANTALAIMON_DIR="${PROJECT_DIR}/pantalaimon"



@@ 14,11 12,12 @@ PYTHON_VERSION="${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH}"
PYTHON_DIR="${PROJECT_DIR}/python"
PYTHON_SRC_DIR="${TMP_DIR}/Python-${PYTHON_VERSION}"
PYTHON="${PYTHON_DIR}/bin/python${PYTHON_VERSION_MINOR}"
PIP="${PYTHON_DIR}/bin/pip3"

mkdir -p "${PROJECT_DIR}"
mkdir -p "${TMP_DIR}"

PACKAGES="make cmake build-essential zlibc python3-venv libffi-dev ppa-purge libssl-dev libsqlite3-dev"
PACKAGES="make cmake build-essential zlibc python3-venv libffi-dev ppa-purge libssl-dev libsqlite3-dev zlib1g-dev rustc cargo libgirepository1.0-dev libdbus-1-dev libcairo2-dev"

PANTALAIMON_PATCH_CONTENT="
diff --git a/pantalaimon/main.py b/pantalaimon/main.py


@@ 42,56 41,67 @@ echo "Installing dependencies..."
sudo apt update
sudo apt install -y ${PACKAGES}

if [ ! -e "${OLM_DIR}/usr/local/lib/libolm.so" ]; then
OLMCK=${OLM_DIR}/usr/local/lib/libolm.so
if test -f ${OLMCK}; then
    echo "olm found, skipping..."
else
    cd "${TMP_DIR}"
    echo "Downloading Olm..."
    wget -qO- "https://gitlab.matrix.org/matrix-org/olm/-/archive/master/olm-master.tar.gz" | tar -xz

    echo "Building Olm..."
    echo "Building olm..."
    cd olm-master
    cmake . -Bbuild
    cmake --build build

    echo "Installing Olm..."
    cd build
    make install DESTDIR="${OLM_DIR}"
else
    echo "Olm found. Skipping Olm Install..."
fi

if [ ! -e "${PYTHON}" ]; then
if test -f ${PYTHON}; then
    echo "python found, skipping..."
else
    echo "Downloading Python..."
    cd "${TMP_DIR}"
    wget -qO- "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz" | tar -xz

    echo "Installing Python..."
    echo "Installing python..."
    cd "${PYTHON_SRC_DIR}"
    #./configure --prefix="${PYTHON_DIR}" --with-openssl=${OPENSSL_DIR} --enable-shared
    ./configure --prefix="${PYTHON_DIR}" --enable-shared
    make
    make install
else
    echo "Python found. Skipping Python Install..."
fi

LD_LIBRARY_PATH=${PYTHON_DIR}/lib:${OLM_DIR}/usr/local/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

echo "Updating setuptools..."
${PIP} install --upgrade setuptools
${PIP} install --upgrade pip
${PIP} install --upgrade wheel

echo "Installing PyInstaller..."
${PYTHON} -m pip install --upgrade pyinstaller
${PIP} install --upgrade pyinstaller

echo "Installing cryptography..."
CRYPTOGRAPHY_ALLOW_OPENSSL_102="yes" ${PIP} install cryptography

echo "Installing cryptography 3.2.1"
${PYTHON} -m pip install cryptography==3.2.1
echo "Installing pycairo..."
${PIP} install pycairo==1.19.1

echo "Installing pygobject..."
PYGOBJECT_WITHOUT_PYCAIRO=1 ${PIP} install --no-build-isolation pygobject==3.38

echo "Installing Pantalaimon..."
CFLAGS=-I"${OLM_DIR}/usr/local/include -I${OLM_DIR}/usr/local/include" LDFLAGS="-L${OLM_DIR}/usr/local/lib" ${PYTHON} -m pip install --upgrade pantalaimon
CFLAGS=-I${OLM_DIR}/usr/local/include LDFLAGS=-L${OLM_DIR}/usr/local/lib ${PIP} install --upgrade pantalaimon[ui]

echo "Bundling Pantalaimon..."
cd ${PROJECT_DIR}
echo "${PANTALAIMON_PATCH_CONTENT}" > main.patch
patch ${PYTHON_DIR}/lib/python${PYTHON_VERSION_MINOR}/site-packages/pantalaimon/main.py main.patch
${PYTHON_DIR}/bin/pyinstaller --onefile ${PYTHON_DIR}/bin/pantalaimon
${PYTHON_DIR}/bin/pyinstaller --onefile ${PYTHON_DIR}/bin/panctl

echo "Cleaning up, reverting changes to RootFS..."
sudo apt autoremove -y ${PACKAGES}
sudo apt clean