f644ad0d88
This commit is a dirty hack to fix issue with ARM64 Prosody AppImage. The fixed appimagebuild tool is not released by the dev team. So i patch it in my build script. This is not a good solution, but it works, and let me go forward.
71 lines
2.6 KiB
Bash
71 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
set -x
|
|
|
|
rootdir="$(pwd)"
|
|
prosody_build_dir="$rootdir/build/prosody"
|
|
prosody_destination_dir="$rootdir/dist/server/prosody"
|
|
|
|
if [[ ! -d "$prosody_build_dir" ]]; then
|
|
mkdir -p "$prosody_build_dir"
|
|
fi
|
|
|
|
cd "$prosody_build_dir"
|
|
|
|
if [ -f "$prosody_build_dir/livechat-prosody-x86_64.AppImage" ] && [ -f "$prosody_build_dir/livechat-prosody-aarch64.AppImage" ]; then
|
|
# if [ -f "$prosody_build_dir/livechat-prosody-x86_64.AppImage" ]; then
|
|
echo "Prosody images already built."
|
|
else
|
|
echo "Prosody images must be build..."
|
|
|
|
# Prerequisite: you must have python3-venv installed on your system
|
|
if [[ ! -d "venv" ]]; then
|
|
echo "Creating the python venv..."
|
|
python3 -m venv venv
|
|
fi
|
|
|
|
echo "Activating the python venv..."
|
|
source venv/bin/activate
|
|
|
|
echo "Installing appimage-builder..."
|
|
pip3 install appimage-builder==1.1.0
|
|
|
|
echo "Unpatching appimage-builder for ARM..."
|
|
sed -i -E 's/^\s*"\*\*\/ld-linux-aarch64.so\*",\s*$//' venv/lib/*/site-packages/appimagebuilder/modules/setup/apprun_2/apprun2.py
|
|
|
|
echo "Copying appimage source files..."
|
|
cp "$rootdir/prosody/appimage_x86_64.yml" "$prosody_build_dir/appimage_x86_64.yml"
|
|
cp "$rootdir/prosody/appimage_aarch64.yml" "$prosody_build_dir/appimage_aarch64.yml"
|
|
cp "$rootdir/prosody/launcher.lua" "$prosody_build_dir/launcher.lua"
|
|
|
|
echo "Building Prosody x86_64..."
|
|
appimage-builder --recipe "$prosody_build_dir/appimage_x86_64.yml"
|
|
|
|
echo "Cleaning build folders before building aarch64..."
|
|
rm -rf "$prosody_build_dir/AppDir"
|
|
rm -rf "$prosody_build_dir/appimage-build"
|
|
|
|
echo "Patching appimage-builder for ARM..."
|
|
sed -i -E 's/^\s*"\*\*\/ld-linux-x86-64.so.2",\s*$/"**\/ld-linux-x86-64.so.2", "**\/ld-linux-aarch64.so*",/' venv/lib/*/site-packages/appimagebuilder/modules/setup/apprun_2/apprun2.py
|
|
|
|
echo "Building Prosody aarch64..."
|
|
appimage-builder --recipe "$prosody_build_dir/appimage_aarch64.yml"
|
|
|
|
# For some obscur reason, if we keep AppDir and appimage-build folders,
|
|
# and if we try to install the plugin using the Peertube CLI,
|
|
# the installation fails because there are some subfolders that are right protected.
|
|
# To avoid that, we clean them:
|
|
echo "Cleaning build folders..."
|
|
rm -rf "$prosody_build_dir/AppDir"
|
|
rm -rf "$prosody_build_dir/appimage-build"
|
|
fi
|
|
|
|
echo "Copying Prosody dist files..."
|
|
mkdir -p "$prosody_destination_dir" && cp $prosody_build_dir/livechat-prosody-x86_64.AppImage "$prosody_destination_dir/"
|
|
mkdir -p "$prosody_destination_dir" && cp $prosody_build_dir/livechat-prosody-aarch64.AppImage "$prosody_destination_dir/"
|
|
|
|
echo "Prosody AppImages OK."
|
|
|
|
exit 0
|