From 3d28657229ec889ee084fd8c134efc1535d9ea29 Mon Sep 17 00:00:00 2001 From: malmert Date: Fri, 6 Mar 2026 22:46:00 +0100 Subject: [PATCH] again setup --- setup_build_server.sh | 68 +++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/setup_build_server.sh b/setup_build_server.sh index c61a7d5..d79325b 100755 --- a/setup_build_server.sh +++ b/setup_build_server.sh @@ -25,7 +25,8 @@ PYTHON_VERSION="3" # aktuelle Python 3 Version echo "==> Update & Upgrade" apt update && apt upgrade -y apt install -y git curl build-essential nginx python3 python3-pip python3-venv unzip wget python3-dev \ - libnetfilter-queue-dev libnfnetlink-dev libpcap-dev autoconf automake libtool pkg-config libjson-c-dev + libnetfilter-queue-dev libnfnetlink-dev libpcap-dev autoconf automake libtool pkg-config libjson-c-dev \ + gettext flex bison libnuma-dev libpcre2-dev libmaxminddb-dev librrd-dev # ----------------------------- # Node.js installieren (LTS) @@ -68,6 +69,22 @@ pip install --upgrade pip # ----------------------------- NDPIDIR="/tmp/nDPI" +patch_ndpi_pack_on_if_needed() { + local py_dir="$1" + if [ -f "$py_dir/pyproject.toml" ] && grep -q "PACK_ON" "$py_dir/pyproject.toml"; then + sed -i 's/PACK_ON/"0.0.0"/g' "$py_dir/pyproject.toml" + echo "==> Applied PACK_ON workaround in pyproject.toml" + fi + if [ -f "$py_dir/setup.cfg" ] && grep -q "PACK_ON" "$py_dir/setup.cfg"; then + sed -i 's/PACK_ON/0.0.0/g' "$py_dir/setup.cfg" + echo "==> Applied PACK_ON workaround in setup.cfg" + fi + if [ -f "$py_dir/setup.py" ] && grep -q "PACK_ON" "$py_dir/setup.py"; then + sed -i "s/PACK_ON/'0.0.0'/g" "$py_dir/setup.py" + echo "==> Applied PACK_ON workaround in setup.py" + fi +} + if ! ldconfig -p | grep -q "libndpi"; then echo "==> Build and install nDPI library" rm -rf "$NDPIDIR" @@ -95,12 +112,16 @@ if [ -d "$NDPIDIR/python" ]; then echo "==> WARNING: failed to install nDPI python dev_requirements" fi if ! python3 -m pip install .; then - echo "==> WARNING: nDPI Python bindings install failed, backend will run without DPI enrichment" - else - if python - <<'PY' + echo "==> Initial nDPI pip install failed; retrying with PACK_ON workaround" + patch_ndpi_pack_on_if_needed "$NDPIDIR/python" + if ! python3 -m pip install .; then + echo "==> WARNING: nDPI Python bindings install failed, backend will run without DPI enrichment" + fi + fi + if python - <<'PY' import importlib mods = [] -for name in ("ndpi", "pyndpi"): +for name in ("ndpi", "pyndpi", "nDPI"): try: m = importlib.import_module(name) mods.append((name, getattr(m, "__file__", "unknown"))) @@ -110,11 +131,10 @@ if not mods: raise SystemExit(1) print("nDPI Python modules:", mods) PY - then - echo "==> nDPI Python import check passed" - else - echo "==> WARNING: nDPI installed but import failed in backend venv" - fi + then + echo "==> nDPI Python import check passed" + else + echo "==> WARNING: nDPI installed but import failed in backend venv" fi cd "$BACKEND_DIR" fi @@ -246,6 +266,19 @@ FRONTEND_DIR="$APP_DIR/frontend" BACKEND_DIR="$APP_DIR/backend" BACKEND_SERVICE="mitm-backend" +patch_ndpi_pack_on_if_needed() { + local py_dir="$1" + if [ -f "$py_dir/pyproject.toml" ] && grep -q "PACK_ON" "$py_dir/pyproject.toml"; then + sed -i 's/PACK_ON/"0.0.0"/g' "$py_dir/pyproject.toml" + fi + if [ -f "$py_dir/setup.cfg" ] && grep -q "PACK_ON" "$py_dir/setup.cfg"; then + sed -i 's/PACK_ON/0.0.0/g' "$py_dir/setup.cfg" + fi + if [ -f "$py_dir/setup.py" ] && grep -q "PACK_ON" "$py_dir/setup.py"; then + sed -i "s/PACK_ON/'0.0.0'/g" "$py_dir/setup.py" + fi +} + cd $APP_DIR git reset --hard git pull @@ -261,18 +294,22 @@ source venv/bin/activate NDPIDIR="/tmp/nDPI" if [ ! -d "$NDPIDIR/python" ]; then rm -rf "$NDPIDIR" - git clone --branch dev --depth 1 https://github.com/ntop/nDPI.git "$NDPIDIR" + git clone --depth 1 https://github.com/ntop/nDPI.git "$NDPIDIR" fi if [ -d "/tmp/nDPI/python" ]; then cd "$NDPIDIR/python" python3 -m pip install --upgrade pip python3 -m pip install -r dev_requirements.txt || true if ! python3 -m pip install .; then - echo "WARNING: nDPI Python bindings install failed during runner build" - else - python - <<'PY' || echo "WARNING: nDPI import check failed during runner build" + echo "WARNING: Initial nDPI install failed during runner build; retry with PACK_ON workaround" + patch_ndpi_pack_on_if_needed "$NDPIDIR/python" + if ! python3 -m pip install .; then + echo "WARNING: nDPI Python bindings install failed during runner build" + fi + fi + python - <<'PY' || echo "WARNING: nDPI import check failed during runner build" import importlib -for name in ("ndpi", "pyndpi"): +for name in ("ndpi", "pyndpi", "nDPI"): try: m = importlib.import_module(name) print("nDPI import OK:", name, getattr(m, "__file__", "unknown")) @@ -281,7 +318,6 @@ for name in ("ndpi", "pyndpi"): pass raise SystemExit(1) PY - fi cd $BACKEND_DIR fi pip install -r requirements.txt