Fix for installation of msal library

This will create a python venv and point sasl-xoauth2-tool to use
this venv. This way, when the user executes the command, it will
"automagically" work instead of failing.
This commit is contained in:
Bojan Čekrlić 2025-03-01 09:14:07 +01:00
parent 3b2d8db991
commit 50c95039c4
3 changed files with 49 additions and 31 deletions

View file

@ -34,8 +34,6 @@ ARG TARGETPLATFORM
ARG SASL_XOAUTH2_REPO_URL=https://github.com/tarickb/sasl-xoauth2.git
ARG SASL_XOAUTH2_GIT_REF=release-0.25
# --mount=type=cache,target=/var/cache/apk,sharing=locked,id=var-cache-apk-$TARGETPLATFORM \
# --mount=type=cache,target=/etc/apk/cache,sharing=locked,id=etc-apk-cache-$TARGETPLATFORM \
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=var-cache-apt-$TARGETPLATFORM \
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=var-lib-apt-$TARGETPLATFORM \
--mount=type=tmpfs,target=/etc/apk/cache \

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/env bash
set -e
build_sasl2() {
@ -10,6 +10,11 @@ build_sasl2() {
# architectures. Since we're are building an image that we want it to be as slim as possible,
# we're removing the build of documentation instead of complicating things with pandoc.
patch -p1 -d .. < /build-scripts/sasl-xoauth2-01.patch
# Ensure that the sasl-xoauth2-tool uses python from the virtual environment into which we
# installed the msal library.
patch -p1 -d .. < /build-scripts/sasl-xoauth2-03.patch
if [ -f /etc/alpine-release ]; then
patch -p1 -d .. < /build-scripts/sasl-xoauth2-02.patch
cmake -DCMAKE_INSTALL_PREFIX=/ ..
@ -22,16 +27,24 @@ build_sasl2() {
update-ca-certificates
}
setup_python_venv() {
python3 -m venv /sasl
. /sasl/bin/activate
pip3 install msal
}
[ -f /etc/lsb-release ] && . /etc/lsb-release
[ -f /etc/os-release ] && . /etc/os-release
if [ -f /etc/alpine-release ]; then
apk add --upgrade --virtual .build-deps git cmake clang make gcc g++ libc-dev pkgconfig curl-dev jsoncpp-dev cyrus-sasl-dev patch
setup_python_venv
build_sasl2
apk del .build-deps;
else
apt-get update -y -qq
LIBS="git build-essential cmake pkg-config libcurl4-openssl-dev libssl-dev libjsoncpp-dev libsasl2-dev"
LIBS="git build-essential cmake pkg-config libcurl4-openssl-dev libssl-dev libjsoncpp-dev libsasl2-dev python3-venv"
apt-get install -y --no-install-recommends ${LIBS}
setup_python_venv
build_sasl2
apt-get remove --purge -y ${LIBS}
apt-get autoremove --yes

View file

@ -0,0 +1,7 @@
--- sasl-xoauth2-orig/scripts/sasl-xoauth2-tool.in 2025-03-01 08:38:07
+++ sasl-xoauth2/scripts/sasl-xoauth2-tool.in 2025-03-01 08:38:12
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/sasl/bin/python3
# PYTHON_ARGCOMPLETE_OK
# -*- coding: utf-8 -*-