From 495548b4db809c9fa23b59dafffac7e656b6d56f Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Thu, 20 May 2021 20:51:40 +0200 Subject: [PATCH] GitHub CI [Linux ARM]: simplify bootstrap.sh --- .github/scripts/Linux/arm/bootstrap.sh | 52 +++++++++++++++++--------- .github/workflows/arm-build.yml | 6 +-- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/.github/scripts/Linux/arm/bootstrap.sh b/.github/scripts/Linux/arm/bootstrap.sh index 5b68932e2..58d4794aa 100755 --- a/.github/scripts/Linux/arm/bootstrap.sh +++ b/.github/scripts/Linux/arm/bootstrap.sh @@ -3,23 +3,39 @@ # If changing the file, do not forget to regenerate cache in ARM Build GitHub action ARCH=$1 -BUILD_DIR=$2 +OLDPWD=$(pwd) -sudo chroot $BUILD_DIR /bin/sh -ec 'if grep -q Raspbian /etc/os-release; then sed -i s-http://deb.debian.org/debian-http://mirrordirector.raspbian.org/raspbian/- /etc/apt/sources.list; apt-get -y update; fi' # https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1670905 workaround -sudo chroot $BUILD_DIR /bin/sh -ec 'apt-get -y install build-essential git pkg-config autoconf automake libtool' -sudo chroot $BUILD_DIR /bin/sh -ec 'apt-get -y install portaudio19-dev libsdl2-dev libglib2.0-dev libglew-dev libcurl4-openssl-dev freeglut3-dev libssl-dev libjack-dev libasound2-dev' -if [ $ARCH = armhf ]; then # Raspbian - build own FFmpeg with OMX camera patch - sudo chroot $BUILD_DIR /bin/sh -ec "git clone --depth 1 https://github.com/raspberrypi/firmware.git firmware && mv firmware/* / && echo /opt/vc/lib > /etc/ld.so.conf.d/00-vmcs.conf && ldconfig"\ -"&& sed -i '/^deb /p;s/deb/deb-src/' /etc/apt/sources.list "\ -"&& apt-get -y update && apt-get -y build-dep ffmpeg"\ -"&& apt-get -y remove libavcodec58 && apt-get -y autoremove"\ -"&& git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git && cd FFmpeg"\ -"&& git fetch --depth 2 https://github.com/Serveurperso/FFmpeg.git && git cherry-pick FETCH_HEAD"\ -"&& ./configure --enable-gpl --disable-stripping --enable-libaom --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libvpx --enable-libwebp --enable-libx265 --enable-omx --enable-neon --enable-libx264 --enable-mmal --enable-omx-rpi --cpu=arm1176jzf-s --enable-shared --disable-static && make -j 3 && make install"\ -"&& cd .. && rm -rf FFmpeg || exit 1" -else - sudo chroot $BUILD_DIR /bin/sh -ec 'apt-get -y install libavcodec-dev libavformat-dev libswscale-dev' +if grep -q Raspbian /etc/os-release; then # https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1670905 workaround + sed -i s-http://deb.debian.org/debian-http://mirrordirector.raspbian.org/raspbian/- /etc/apt/sources.list + apt -y update fi -sudo chroot $BUILD_DIR /bin/sh -ec 'apt-get -y install desktop-file-utils git-core libfuse-dev libcairo2-dev cmake wget zsync' # to build appimagetool -sudo chroot $BUILD_DIR /bin/sh -ec 'git clone -b 12 https://github.com/AppImage/AppImageKit.git && cd AppImageKit && patch -N -p1 < /mksquashfs-compilation-fix.patch && ./build.sh && cd build && cmake -DAUXILIARY_FILES_DESTINATION= .. && make install || exit 1' -sudo chroot $BUILD_DIR /bin/sh -ec 'rm -rf AppImageKit; apt-get -y clean' + +apt -y install build-essential git pkg-config autoconf automake libtool +apt -y install portaudio19-dev libsdl2-dev libglib2.0-dev libglew-dev libcurl4-openssl-dev freeglut3-dev libssl-dev libjack-dev libasound2-dev + +# FFmpeg +if [ $ARCH = armhf ]; then # Raspbian - build own FFmpeg with OMX camera patch + git clone --depth 1 https://github.com/raspberrypi/firmware.git firmware && mv firmware/* / && echo /opt/vc/lib > /etc/ld.so.conf.d/00-vmcs.conf && ldconfig + sed -i '/^deb /p;s/deb/deb-src/' /etc/apt/sources.list + apt -y update && apt -y build-dep ffmpeg + apt -y remove libavcodec58 && apt -y autoremove + git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git && cd FFmpeg + git fetch --depth 2 https://github.com/Serveurperso/FFmpeg.git && git cherry-pick FETCH_HEAD + ./configure --enable-gpl --disable-stripping --enable-libaom --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libvpx --enable-libwebp --enable-libx265 --enable-omx --enable-neon --enable-libx264 --enable-mmal --enable-omx-rpi --cpu=arm1176jzf-s --enable-shared --disable-static + make -j 3 install + cd $OLDPWD +else + apt -y install libavcodec-dev libavformat-dev libswscale-dev +fi + +# appimagetool +apt -y install desktop-file-utils git-core libfuse-dev libcairo2-dev cmake wget zsync +git clone -b 12 https://github.com/AppImage/AppImageKit.git +cd AppImageKit && patch -N -p1 < /mksquashfs-compilation-fix.patch +./build.sh +cd build +cmake -DAUXILIARY_FILES_DESTINATION= .. +make -j 3 install +cd $OLDPWD + +rm -rf FFmpeg AppImageKit diff --git a/.github/workflows/arm-build.yml b/.github/workflows/arm-build.yml index bfe944de1..1fc10dc23 100644 --- a/.github/workflows/arm-build.yml +++ b/.github/workflows/arm-build.yml @@ -30,7 +30,7 @@ jobs: uses: actions/cache@v2 with: path: 'chroot.tar' - key: cache-bootstrap-${{ matrix.arch }}-5 + key: cache-bootstrap-${{ matrix.arch }}-6 - name: Debootstrap if: steps.cache-bootstrap.outputs.cache-hit != 'true' run: | @@ -38,8 +38,8 @@ jobs: sudo mkdir chroot wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add -q sudo qemu-debootstrap --keyring=${{ matrix.keyring }} --arch ${{ matrix.arch }} buster chroot ${{ matrix.repo }} - sudo cp $GITHUB_WORKSPACE/.github/scripts/Linux/arm/mksquashfs-compilation-fix.patch chroot - sudo .github/scripts/Linux/arm/bootstrap.sh ${{ matrix.arch }} chroot + sudo cp $GITHUB_WORKSPACE/.github/scripts/Linux/arm/{bootstrap.sh,mksquashfs-compilation-fix.patch} chroot + sudo chroot chroot /bootstrap.sh ${{ matrix.arch }} sudo tar cf chroot.tar chroot # Create archive for caching. Needs to be created as root, therefore created manually. - name: Extract Cached Environment if: steps.cache-bootstrap.outputs.cache-hit == 'true'