Rework the build scripts and dockerfiles with generic embedded targets

This commit is contained in:
Cameron Gutman
2023-09-19 23:43:43 +00:00
parent a8aef4714c
commit 72ec840806
34 changed files with 304 additions and 98 deletions

View File

@@ -0,0 +1,22 @@
FROM arm64v8/debian:bookworm
ENV TARGET=embedded
ENV DISTRO=bookworm
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY dav1d /opt/dav1d
COPY FFmpeg /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

View File

@@ -0,0 +1,25 @@
FROM arm64v8/debian:bullseye
ENV TARGET=embedded
ENV DISTRO=bullseye
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list && \
apt-get update && \
apt-get install -y --no-install-recommends linux-libc-dev/bullseye-backports && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY dav1d /opt/dav1d
COPY FFmpeg /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

View File

@@ -1,6 +1,7 @@
FROM amd64/debian:buster
ENV TARGET=desktop
ENV DISTRO=buster
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \

22
Dockerfile.armhf.bookworm Normal file
View File

@@ -0,0 +1,22 @@
FROM arm32v7/debian:bookworm
ENV TARGET=embedded
ENV DISTRO=bookworm
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY dav1d /opt/dav1d
COPY FFmpeg /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

25
Dockerfile.armhf.bullseye Normal file
View File

@@ -0,0 +1,25 @@
FROM arm32v7/debian:bullseye
ENV TARGET=embedded
ENV DISTRO=bullseye
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list && \
apt-get update && \
apt-get install -y --no-install-recommends linux-libc-dev/bullseye-backports && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY dav1d /opt/dav1d
COPY FFmpeg /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

View File

@@ -1,6 +1,7 @@
FROM nvcr.io/nvidia/l4t-base:r32.3.1
ENV TARGET=l4t
ENV DISTRO=bionic
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \

22
Dockerfile.riscv64.sid Normal file
View File

@@ -0,0 +1,22 @@
FROM riscv64/debian:sid
ENV TARGET=embedded
ENV DISTRO=sid
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY dav1d /opt/dav1d
COPY FFmpeg /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

27
Dockerfile.rpi.bookworm Normal file
View File

@@ -0,0 +1,27 @@
FROM arm32v7/debian:bookworm
ENV TARGET=rpi
ENV DISTRO=bookworm
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get install -y --no-install-recommends gnupg && \
echo "deb http://archive.raspberrypi.org/debian/ $DISTRO main" >> /etc/apt/sources.list && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 82B129927FA3303E && \
apt-get update && \
apt-get install -y --no-install-recommends libraspberrypi-dev linux-libc-dev && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY dav1d /opt/dav1d
COPY FFmpeg-rpi /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

View File

@@ -1,11 +1,12 @@
FROM arm32v7/debian:buster
ENV TARGET=rpi
ENV DISTRO=buster
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get install -y --no-install-recommends gnupg && \
echo "deb http://archive.raspberrypi.org/debian/ buster main" >> /etc/apt/sources.list && \
echo "deb http://archive.raspberrypi.org/debian/ $DISTRO main" >> /etc/apt/sources.list && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 82B129927FA3303E && \
apt-get update && \
apt-get install -y --no-install-recommends libraspberrypi-dev linux-libc-dev && \

28
Dockerfile.rpi64.bookworm Normal file
View File

@@ -0,0 +1,28 @@
FROM arm64v8/debian:bookworm
ENV TARGET=rpi64
ENV DISTRO=bookworm
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get install -y --no-install-recommends gnupg && \
echo "deb http://archive.raspberrypi.org/debian/ $DISTRO main" >> /etc/apt/sources.list && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 82B129927FA3303E && \
apt-get update && \
apt-get install -y --no-install-recommends linux-libc-dev && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
COPY rpi-userland /opt/rpi-userland
COPY dav1d /opt/dav1d
COPY FFmpeg-rpi /opt/FFmpeg
COPY SDL2 /opt/SDL2
COPY SDL_ttf /opt/SDL_ttf
COPY scripts/build-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/build-deps.sh
COPY scripts/build-package.sh /opt/scripts/
VOLUME "/out"
ENTRYPOINT [ "/bin/bash", "-c", "/opt/scripts/build-package.sh" ]

View File

@@ -1,11 +1,12 @@
FROM arm64v8/debian:buster
ENV TARGET=rpi64
ENV DISTRO=buster
COPY scripts/install-base-deps.sh /opt/scripts/
RUN /bin/bash -c /opt/scripts/install-base-deps.sh && \
apt-get install -y --no-install-recommends gnupg && \
echo "deb http://archive.raspberrypi.org/debian/ buster main" >> /etc/apt/sources.list && \
echo "deb http://archive.raspberrypi.org/debian/ $DISTRO main" >> /etc/apt/sources.list && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 82B129927FA3303E && \
apt-get update && \
apt-get install -y --no-install-recommends linux-libc-dev && \

2
FFmpeg

Submodule FFmpeg updated: 3392f30812...7000b5396c

View File

@@ -5,13 +5,13 @@ clone_depth: 1
environment:
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
BUILD_SCRIPT: ./build-amd64.sh
BUILD_SCRIPT: ./build-amd64-buster.sh
- APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
BUILD_SCRIPT: ./build-rpi.sh
BUILD_SCRIPT: ./build-rpi-buster.sh
- APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
BUILD_SCRIPT: ./build-rpi64.sh
BUILD_SCRIPT: ./build-rpi64-buster.sh
- APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
BUILD_SCRIPT: ./build-l4t.sh
BUILD_SCRIPT: ./build-l4t-bionic.sh
install:
- sh: 'sudo apt update || true'

4
build-aarch64-bookworm.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="aarch64-bookworm"
DOCKERFILE="Dockerfile.aarch64.bookworm"
source ./build-common.sh

4
build-aarch64-bullseye.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="aarch64-bullseye"
DOCKERFILE="Dockerfile.aarch64.bullseye"
source ./build-common.sh

4
build-amd64-buster.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="amd64-buster"
DOCKERFILE="Dockerfile.amd64.buster"
source ./build-common.sh

View File

@@ -1,24 +0,0 @@
TARGET_NAME="amd64-buster"
DOCKERFILE="Dockerfile.amd64.buster"
TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16`
TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}"
OUT_DIR="out_$TARGET_NAME"
docker pull cgutman/moonlight-packaging:$TAG_NAME
PULL_EXIT_CODE=$?
rm -rf $OUT_DIR
set -e
mkdir $OUT_DIR
if [ $PULL_EXIT_CODE -eq 0 ]; then
echo Using pre-built Docker image - cgutman/moonlight-packaging:$TAG_NAME
else
echo Pre-built image not available - building cgutman/moonlight-packaging:$TAG_NAME
docker build --pull -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME .
echo Built Docker image - cgutman/moonlight-packaging:$TAG_NAME
fi
docker run --rm --mount type=bind,source="$(pwd)"/$OUT_DIR,target=/out --mount type=bind,source="$(pwd)"/debian,target=/opt/debian -e COMMIT="$1" cgutman/moonlight-packaging:$TAG_NAME

4
build-armhf-bookworm.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="armhf-bookworm"
DOCKERFILE="Dockerfile.armhf.bookworm"
source ./build-common.sh

4
build-armhf-bullseye.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="armhf-bullseye"
DOCKERFILE="Dockerfile.armhf.bullseye"
source ./build-common.sh

View File

@@ -1,6 +1,3 @@
TARGET_NAME="l4t-bionic"
DOCKERFILE="Dockerfile.l4t.bionic"
TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16`
TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}"
OUT_DIR="out_$TARGET_NAME"

4
build-l4t-bionic.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="l4t-bionic"
DOCKERFILE="Dockerfile.l4t.bionic"
source ./build-common.sh

4
build-riscv64-sid.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="riscv64-sid"
DOCKERFILE="Dockerfile.riscv64.sid"
source ./build-common.sh

4
build-rpi-bookworm.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="rpi-bookworm"
DOCKERFILE="Dockerfile.rpi.bookworm"
source ./build-common.sh

4
build-rpi-buster.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="rpi-buster"
DOCKERFILE="Dockerfile.rpi.buster"
source ./build-common.sh

View File

@@ -1,24 +0,0 @@
TARGET_NAME="rpi-buster"
DOCKERFILE="Dockerfile.rpi.buster"
TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16`
TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}"
OUT_DIR="out_$TARGET_NAME"
docker pull cgutman/moonlight-packaging:$TAG_NAME
PULL_EXIT_CODE=$?
rm -rf $OUT_DIR
set -e
mkdir $OUT_DIR
if [ $PULL_EXIT_CODE -eq 0 ]; then
echo Using pre-built Docker image - cgutman/moonlight-packaging:$TAG_NAME
else
echo Pre-built image not available - building cgutman/moonlight-packaging:$TAG_NAME
docker build --pull -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME .
echo Built Docker image - cgutman/moonlight-packaging:$TAG_NAME
fi
docker run --rm --mount type=bind,source="$(pwd)"/$OUT_DIR,target=/out --mount type=bind,source="$(pwd)"/debian,target=/opt/debian -e COMMIT="$1" cgutman/moonlight-packaging:$TAG_NAME

4
build-rpi64-bookworm.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="rpi64-bookworm"
DOCKERFILE="Dockerfile.rpi64.bookworm"
source ./build-common.sh

4
build-rpi64-buster.sh Executable file
View File

@@ -0,0 +1,4 @@
TARGET_NAME="rpi64-buster"
DOCKERFILE="Dockerfile.rpi64.buster"
source ./build-common.sh

View File

@@ -1,24 +0,0 @@
TARGET_NAME="rpi-buster64"
DOCKERFILE="Dockerfile.rpi.buster64"
TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16`
TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}"
OUT_DIR="out_$TARGET_NAME"
docker pull cgutman/moonlight-packaging:$TAG_NAME
PULL_EXIT_CODE=$?
rm -rf $OUT_DIR
set -e
mkdir $OUT_DIR
if [ $PULL_EXIT_CODE -eq 0 ]; then
echo Using pre-built Docker image - cgutman/moonlight-packaging:$TAG_NAME
else
echo Pre-built image not available - building cgutman/moonlight-packaging:$TAG_NAME
docker build --pull -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME .
echo Built Docker image - cgutman/moonlight-packaging:$TAG_NAME
fi
docker run --rm --mount type=bind,source="$(pwd)"/$OUT_DIR,target=/out --mount type=bind,source="$(pwd)"/debian,target=/opt/debian -e COMMIT="$1" cgutman/moonlight-packaging:$TAG_NAME

2
debian/control vendored
View File

@@ -3,7 +3,7 @@ Maintainer: Cameron Gutman <aicommander@gmail.com>
Section: misc
Priority: optional
Standards-Version: 4.3.0
Build-Depends: debhelper (>= 10), libssl-dev, qtbase5-dev, qtquickcontrols2-5-dev, qtdeclarative5-dev, libqt5svg5-dev, libxkbcommon-dev, libopus-dev, libgbm-dev, libdrm-dev, libfreetype6-dev, libasound2-dev, libdbus-1-dev, libegl1-mesa-dev, libgl1-mesa-dev, libgles2-mesa-dev, libglu1-mesa-dev, libibus-1.0-dev, libpulse-dev, libudev-dev, libx11-dev, libxcursor-dev, libxext-dev, libxi-dev, libxinerama-dev, libxrandr-dev, libxss-dev, libxt-dev, libxv-dev, libxxf86vm-dev, EXTRA_BUILD_DEPS
Build-Depends: debhelper (>= 10), libssl-dev, qtbase5-dev, qtquickcontrols2-5-dev, qtdeclarative5-dev, libqt5svg5-dev, libxkbcommon-dev, libopus-dev, libgbm-dev, libdrm-dev, libasound2-dev, libdbus-1-dev, libegl1-mesa-dev, libgles2-mesa-dev, libglu1-mesa-dev, libibus-1.0-dev, libpulse-dev, libudev-dev, libx11-dev, libxcursor-dev, libxext-dev, libxi-dev, libxinerama-dev, libxrandr-dev, libxss-dev, libxt-dev, libxv-dev, libxxf86vm-dev, EXTRA_BUILD_DEPS
Package: moonlight-qt
Architecture: any

View File

@@ -12,21 +12,42 @@ set -e
./push-images.sh
# Build the packages
./build-l4t.sh $1 &
./build-rpi.sh $1 &
./build-rpi64.sh $1 &
./build-l4t-bionic.sh $1 &
./build-rpi-buster.sh $1 &
./build-rpi64-buster.sh $1 &
./build-armhf-bullseye.sh $1 &
./build-aarch64-bullseye.sh $1 &
#./build-rpi-bookworm.sh $1 &
#./build-rpi64-bookworm.sh $1 &
./build-armhf-bookworm.sh $1 &
./build-aarch64-bookworm.sh $1 &
./build-riscv64-sid.sh $1 &
wait
# Push the moonlight-qt packages to Cloudsmith repos
cloudsmith push deb moonlight-game-streaming/moonlight-l4t/ubuntu/bionic out_l4t-bionic/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/buster out_rpi-buster/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bullseye out_rpi-buster/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/buster out_rpi-buster64/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bullseye out_rpi-buster64/moonlight-qt_*.deb
#cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bookworm out_rpi-bookworm/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/buster out_rpi64-buster/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bullseye out_rpi64-buster/moonlight-qt_*.deb
#cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bookworm out_rpi64-bookworm/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bullseye out_armhf-bullseye/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bookworm out_armhf-bookworm/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bullseye out_aarch64-bullseye/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bookworm out_aarch64-bookworm/moonlight-qt_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/sid out_riscv64-sid/moonlight-qt_*.deb
# Push the moonlight-qt-dbgsym packages to Cloudsmith repos
cloudsmith push deb moonlight-game-streaming/moonlight-l4t/ubuntu/bionic out_l4t-bionic/moonlight-qt-dbgsym_*.ddeb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/buster out_rpi-buster/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bullseye out_rpi-buster/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/buster out_rpi-buster64/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bullseye out_rpi-buster64/moonlight-qt-dbgsym_*.deb
#cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bookworm out_rpi-bookworm/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/buster out_rpi64-buster/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bullseye out_rpi64-buster/moonlight-qt-dbgsym_*.deb
#cloudsmith push deb moonlight-game-streaming/moonlight-qt/raspbian/bookworm out_rpi64-bookworm/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bullseye out_armhf-bullseye/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bookworm out_armhf-bookworm/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bullseye out_aarch64-bullseye/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/bookworm out_aarch64-bookworm/moonlight-qt-dbgsym_*.deb
cloudsmith push deb moonlight-game-streaming/moonlight-qt/debian/sid out_riscv64-sid/moonlight-qt-dbgsym_*.deb

View File

@@ -3,12 +3,26 @@ set -e
TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16`
docker build --pull -f Dockerfile.rpi.buster -t cgutman/moonlight-packaging:rpi-buster_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.rpi.buster64 -t cgutman/moonlight-packaging:rpi-buster64_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.rpi64.buster -t cgutman/moonlight-packaging:rpi64-buster_$TAG_UNIQUE_ID . &
#docker build --pull -f Dockerfile.rpi.bookworm -t cgutman/moonlight-packaging:rpi-bookworm_$TAG_UNIQUE_ID . &
#docker build --pull -f Dockerfile.rpi64.bookworm -t cgutman/moonlight-packaging:rpi64-bookworm_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.amd64.buster -t cgutman/moonlight-packaging:amd64-buster_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.l4t.bionic -t cgutman/moonlight-packaging:l4t-bionic_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.aarch64.bullseye -t cgutman/moonlight-packaging:aarch64-bullseye_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.aarch64.bookworm -t cgutman/moonlight-packaging:aarch64-bookworm_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.armhf.bullseye -t cgutman/moonlight-packaging:armhf-bullseye_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.armhf.bookworm -t cgutman/moonlight-packaging:armhf-bookworm_$TAG_UNIQUE_ID . &
docker build --pull -f Dockerfile.riscv64.sid -t cgutman/moonlight-packaging:riscv64-sid_$TAG_UNIQUE_ID . &
wait
docker push cgutman/moonlight-packaging:rpi-buster_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:rpi-buster64_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:rpi64-buster_$TAG_UNIQUE_ID
#docker push cgutman/moonlight-packaging:rpi-bookworm_$TAG_UNIQUE_ID
#docker push cgutman/moonlight-packaging:rpi64-bookworm_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:amd64-buster_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:l4t-bionic_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:armhf-bullseye_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:armhf-bookworm_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:aarch64-bullseye_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:aarch64-bookworm_$TAG_UNIQUE_ID
docker push cgutman/moonlight-packaging:riscv64-sid_$TAG_UNIQUE_ID

View File

@@ -1,6 +1,6 @@
set -e
BASE_FFMPEG_ARGS="--enable-pic --enable-static --disable-shared --disable-all --enable-avcodec --enable-decoder=h264 --enable-decoder=hevc --enable-decoder=av1 --enable-libdrm --enable-decoder=h264_v4l2m2m --enable-decoder=hevc_v4l2m2m --extra-cflags=-I/usr/include/libdrm"
BASE_FFMPEG_ARGS="--enable-pic --enable-static --disable-shared --disable-all --disable-vulkan --enable-avcodec --enable-decoder=h264 --enable-decoder=hevc --enable-decoder=av1 --enable-libdrm --enable-decoder=h264_v4l2m2m --enable-decoder=hevc_v4l2m2m --extra-cflags=-I/usr/include/libdrm"
echo "Building dependencies for $TARGET"
if [ "$TARGET" == "rpi" ] || [ "$TARGET" == "rpi64" ]; then
@@ -33,6 +33,9 @@ elif [ "$TARGET" == "desktop" ]; then
# Enable VAAPI, VDPAU, and NVDEC decoders
EXTRA_FFMPEG_ARGS="--enable-nvdec --enable-hwaccel=h264_nvdec --enable-hwaccel=hevc_nvdec --enable-hwaccel=av1_nvdec --enable-hwaccel=h264_vaapi --enable-hwaccel=hevc_vaapi --enable-hwaccel=av1_vaapi --enable-hwaccel=h264_vdpau --enable-hwaccel=hevc_vdpau --enable-hwaccel=av1_vdpau"
elif [ "$TARGET" == "embedded" ]; then
# Enable stateless V4L2 support
EXTRA_FFMPEG_ARGS="--enable-v4l2-request --enable-hwaccel=h264_v4l2request --enable-hwaccel=hevc_v4l2request"
else
echo "Unrecognized target: $TARGET"
exit 1

View File

@@ -18,18 +18,30 @@ if [ "$TARGET" == "rpi" ]; then
EXTRA_DEPS="libraspberrypi0 | rbp-userland-osmc"
EXTRA_CONFIG="CONFIG+=glslow"
elif [ "$TARGET" == "rpi64" ]; then
EXTRA_BUILD_DEPS=""
EXTRA_DEPS=""
EXTRA_CONFIG="CONFIG+=glslow"
elif [ "$TARGET" == "l4t" ]; then
EXTRA_BUILD_DEPS=""
EXTRA_DEPS=""
elif [ "$TARGET" == "desktop" ]; then
EXTRA_BUILD_DEPS="libwayland-dev, wayland-protocols, libva-dev, libvdpau-dev"
elif [ "$TARGET" == "embedded" ]; then
EXTRA_CONFIG="CONFIG+=glslow"
else
echo "Unrecognized target: $TARGET"
exit 1
fi
# Determine extra distro-specific dependencies
if [ "$DISTRO" != "buster" ] && [ $DISTRO != "bionic" ]; then
EXTRA_BUILD_DEPS="$EXTRA_BUILD_DEPS, libfreetype-dev"
else
EXTRA_BUILD_DEPS="$EXTRA_BUILD_DEPS, libfreetype6-dev"
fi
if [ "$DISTRO" != "bionic" ]; then
EXTRA_BUILD_DEPS="$EXTRA_BUILD_DEPS, libgl-dev"
else
EXTRA_BUILD_DEPS="$EXTRA_BUILD_DEPS, libgl1-mesa-dev"
fi
# Create a build directory
mkdir /opt/build

View File

@@ -1,6 +1,18 @@
set -e
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y curl g++ make ninja-build python3-pip devscripts fakeroot debhelper git nasm libgbm-dev libdrm-dev libfreetype6-dev libasound2-dev libdbus-1-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libibus-1.0-dev libpulse-dev libudev-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev cmake
apt-get install -y curl g++ make ninja-build meson devscripts fakeroot debhelper git nasm libgbm-dev libdrm-dev libasound2-dev libdbus-1-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libibus-1.0-dev libpulse-dev libudev-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev cmake
apt-get install -y --no-install-recommends libssl-dev qtbase5-dev qtquickcontrols2-5-dev qtdeclarative5-dev libqt5svg5-dev libopus-dev
pip3 install meson==0.61.5 # Last version compatible with Python 3.6 on Bionic
if [ "$DISTRO" != "buster" ] && [ "$DISTRO" != "bionic" ]; then
apt-get install -y libfreetype-dev
else
apt-get install -y libfreetype6-dev
fi
if [ "$DISTRO" != "bionic" ]; then
apt-get install -y libgl-dev
else
apt-get install -y libgl1-mesa-dev
fi