Almost working breezy multi-arch build

This commit is contained in:
wheaney 2024-07-16 19:38:00 -07:00
parent 3818ac3a33
commit 3b437f1b41
7 changed files with 23 additions and 20 deletions

View File

@ -24,7 +24,7 @@ XREAL_DRIVER_DIR=$ROOT_DIR/modules/XRLinuxDriver
source $XREAL_DRIVER_DIR/bin/inject_ua
# check out submodules, recursively for nested ones
git submodule update --init --recursive
# git submodule update --init --recursive
# if a custom_banner image exists, copy it over the sombrero one
if [ -e "$VULKAN_DIR/custom_banner.png" ]; then

View File

@ -1,4 +1,4 @@
# To run the build from the package root:
# To run the build from the package root (note: requires non-root docker):
# docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile -t "breezy-desktop:amd64" --load .
# docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-desktop:arm64" --load .
# docker buildx build --platform linux/arm/v7 -f ./docker-build/Dockerfile -t "breezy-desktop:armv7" --load .
@ -24,9 +24,20 @@ RUN apt-get update && apt-get install -y \
python3 \
python3-yaml \
flatpak \
flatpak-builder
flatpak-builder \
libglib2.0-dev \
gnome-shell-extensions
RUN case "${TARGETPLATFORM}" in \
"linux/amd64") FLATPAK_ARCH="x86_64" ;; \
"linux/arm64") FLATPAK_ARCH="aarch64" ;; \
*) FLATPAK_ARCH="x86_64" ;; \
esac && \
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && \
flatpak install --user --noninteractive runtime/org.gnome.Sdk/${FLATPAK_ARCH}/46 && \
flatpak install --user --noninteractive runtime/org.gnome.Platform/${FLATPAK_ARCH}/46
VOLUME /out
WORKDIR /source
CMD bin/package_gnome && cp build/*.tar.gz /out/
CMD bin/package_gnome && cp gnome/build/*.tar.gz /out/

3
docker-build/init.sh Normal file → Executable file
View File

@ -12,5 +12,4 @@ fi
echo "Building docker image"
docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile -t "breezy-desktop:amd64" --load .
docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-desktop:arm64" --load .
docker buildx build --platform linux/arm/v7 -f ./docker-build/Dockerfile -t "breezy-desktop:armv7" --load .
docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-desktop:arm64" --load .

View File

@ -3,17 +3,14 @@
set -e
# Create output directories
mkdir -p out/x86_64 out/aarch64 out/armv7
mkdir -p out/x86_64 out/aarch64
# Run containers for each architecture
sudo rm -rf build/
docker run --rm -t -v ./:/source -v ./out/x86_64:/out --platform linux/amd64 "breezy-desktop:amd64"
docker run --privileged --rm -t -v ./:/source -v ./out/x86_64:/out --platform linux/amd64 "breezy-desktop:amd64"
sudo rm -rf build/
docker run --rm -t -v ./:/source -v ./out/aarch64:/out --platform linux/arm64 "breezy-desktop:arm64"
sudo rm -rf build/
docker run --rm -t -v ./:/source -v ./out/armv7:/out --platform linux/arm/v7 "breezy-desktop:armv7"
docker run --privileged --rm -t -v ./:/source -v ./out/aarch64:/out --platform linux/arm64 "breezy-desktop:arm64"
# build directory structure is all owned by root because of docker, delete it all now
sudo rm -rf build/

View File

@ -5,11 +5,6 @@ UUID="breezydesktop@xronlinux.com"
# fail on error
set -e
if [[ $EUID -eq 0 ]]; then
echo "This script must NOT be run as root" 1>&2
exit 1
fi
# https://stackoverflow.com/a/246128
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)

@ -1 +1 @@
Subproject commit 68e1c44d890cc317241dae25abba6cde8093e22a
Subproject commit bbf77403b432e25b763900a6fc90ff551b914155

View File

@ -16,12 +16,13 @@ check_command "flatpak-builder"
# https://stackoverflow.com/a/246128
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
TMP_DIR=$(mktemp -d -t breezy-ui-flatpak-XXXXXXXXXX)
TMP_DIR=$(mktemp -d --tmpdir=$SCRIPT_DIR -t breezy-ui-flatpak-XXXXXXXXXX)
OUT_DIR=$SCRIPT_DIR/../out
rm -rf $OUT_DIR
mkdir -p $OUT_DIR
flatpak-builder --force-clean $TMP_DIR/build $SCRIPT_DIR/../com.xronlinux.BreezyDesktop.json
flatpak build-init $TMP_DIR/build org.example.myapp org.gnome.Sdk org.gnome.Platform
flatpak-builder --disable-rofiles-fuse --disable-cache --force-clean $TMP_DIR/build $SCRIPT_DIR/../com.xronlinux.BreezyDesktop.json
flatpak build-export $TMP_DIR/export $TMP_DIR/build
flatpak build-bundle $TMP_DIR/export $OUT_DIR/com.xronlinux.BreezyDesktop.flatpak com.xronlinux.BreezyDesktop --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo