update #300
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: enigma2 build | |
on: | |
push: | |
branches: [ 7.3, ] | |
pull_request: | |
branches: [ 7.3, ] | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Build Enigma2 | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
gcc: [13, 14] | |
python: ['3.12', '3.13'] | |
steps: | |
- name: Install prerequisites | |
run: | | |
sudo apt-get -q update | |
sudo add-apt-repository -y ppa:deadsnakes/ppa | |
sudo apt remove -y libunwind-14-dev | |
sudo apt-get install -y \ | |
g++-${{ matrix.gcc }} linux-libc-dev git build-essential automake autoconf libtool \ | |
python${{ matrix.python }}-dev zlib1g-dev gettext swig \ | |
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libfreetype6-dev \ | |
libfribidi-dev libavahi-client-dev libjpeg-turbo8-dev libgif-dev \ | |
libcurl4-openssl-dev mm-common | |
- name: Cache build dependencies | |
uses: actions/cache@v3 | |
with: | |
path: /usr/local/lib | |
key: ${{ runner.os }}-libs-${{ matrix.gcc }}-${{ matrix.python }} | |
restore-keys: | | |
${{ runner.os }}-libs- | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Clear Python bytecode cache | |
run: | | |
find . -name "*.pyc" -delete | |
- name: Build dependencies | |
id: depends | |
env: | |
CC: "gcc-${{ matrix.gcc }}" | |
CXX: "g++-${{ matrix.gcc }}" | |
run: | | |
echo "Installing libdvbsi++" | |
git clone --depth 1 https://github.com/oe-alliance/libdvbsi.git /tmp/libdvbsi | |
(cd /tmp/libdvbsi && autoreconf -i && ./configure && make && sudo make install) | |
echo "Installing libsigc++-3.0" | |
git clone --depth 1 https://github.com/TwolDE2/libsigc--3.0.git /tmp/libsigc++ | |
(cd /tmp/libsigc++ && autoreconf -i && ./configure && make && sudo make install) | |
echo "Installing tuxbox" | |
git clone --depth 1 https://github.com/oe-alliance/tuxtxt.git /tmp/tuxtxt | |
(cd /tmp/tuxtxt/libtuxtxt && autoreconf -i && ./configure --with-boxtype=generic DVB_API_VERSION=5 && make && sudo make install) | |
(cd /tmp/tuxtxt/tuxtxt && autoreconf -i && ./configure --with-boxtype=generic DVB_API_VERSION=5 && make && sudo make install) | |
- name: Check dependency build | |
if: steps.depends.outcome != 'success' | |
run: | | |
echo "Dependencies failed to build. Check logs:" | |
find /tmp -name "*.log" -exec cat {} \; | |
exit 1 | |
- name: Build Enigma2 | |
env: | |
CC: "gcc-${{ matrix.gcc }}" | |
CXX: "g++-${{ matrix.gcc }}" | |
run: | | |
pip install --upgrade pip six | |
echo "Compiling Enigma2" | |
sed -i "s/sigc++-2.0/sigc++-3.0/g" ./configure.ac | |
sed -i "s/sigc++-2.0/sigc++-3.0/g" ./enigma2.pc.in | |
autoreconf -i | |
./configure --with-libsigcversion=3.0 \ | |
--with-libsdl=no \ | |
--with-boxtype=nobox \ | |
--enable-dependency-tracking \ | |
ac_cv_prog_c_openmp=-fopenmp \ | |
--with-gstversion=1.0 \ | |
--with-textlcd | |
make | |
python -m compileall . || true | |
echo "Build completed successfully!" | |
- name: Collect build artifacts and logs | |
if: failure() | |
run: | | |
echo "Collecting logs for debugging..." | |
find . -name "*.log" -exec cat {} \; | |
- name: Upload Logs | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-logs | |
path: ./**/*.log | |