Skip to content

feat: Add Ubuntu 24.04 build environment and parallelize CI - #495

Open
Gusitir wants to merge 7 commits into
Stremio:masterfrom
Gusitir:soporte-ubuntu-24.04
Open

feat: Add Ubuntu 24.04 build environment and parallelize CI#495
Gusitir wants to merge 7 commits into
Stremio:masterfrom
Gusitir:soporte-ubuntu-24.04

Conversation

@Gusitir

@Gusitir Gusitir commented Jul 18, 2026

Copy link
Copy Markdown

Add Ubuntu 24.04 build environment and parallelize CI

Description

Adds native build support for Ubuntu 24.04 (and derived distros like KDE neon), addressing the deprecation of qt5-default and the transition from libmpv1 to libmpv2, without risking regressions for the existing Ubuntu 20.04 build.

Changes

  • Isolated Environment: Duplicated distros/Ubuntu into distros/Ubuntu-24.04.
  • Dockerfile Update: Upgraded base to ubuntu:24.04 and replaced qt5-default with qtbase5-dev qt5-qmake qtchooser.
  • Dependency Update: Updated package.sh to require libmpv2 (>=0.37.0).
  • Parallel CI: Refactored .travis.yml to use a DISTRO matrix instead of a sequential bash loop, building all distros concurrently to reduce CI time.

🛠️ CI/CD Technical Workarounds Applied

To get the automated Travis CI pipeline to successfully build and package an ubuntu:24.04 container, the following specific workarounds were implemented:

  1. Travis Host OS Upgrade: The .travis.yml matrix explicitly sets dist: focal for the 24.04 job. Running a modern ubuntu:24.04 container on the legacy xenial host causes an overlayfs kernel bug that crashes apt update with Error 100.
  2. Bypassing installwatch bug: In distros/Ubuntu-24.04/package.sh, the checkinstall flag was changed from --fstrans=yes to --fstrans=no. Modern versions of Ubuntu (and CMake 3.28) have a known incompatibility with installwatch within Docker containers that intercepts directory creation incorrectly, causing make install to fail. Disabling fstrans safely bypasses this within the isolated container.

🧪 Testing Performed

  • Environment: KDE neon 24.04 (Ubuntu 24.04 Noble) / KDE Plasma Bigscreen
  • Result: Successfully compiled from source using the new dependencies. The binary correctly links against libmpv.so.2 and the local streaming server boots up perfectly (127.0.0.1:11470), allowing full functionality with stremio-web running via Firefox.
  • Local Build Note: For maintainers or users wishing to compile this locally on 24.04 without Docker, the exact packages used for this successful local build were: build-essential qt5-qmake qtdeclarative5-dev qtwebengine5-dev qml-module-qtquick-controls qml-module-qtwebchannel qml-module-qtwebengine qml-module-qt-labs-platform qml-module-qtquick-dialogs libmpv-dev libssl-dev nodejs cmake.

Note on S3 Uploads: Because CI jobs now run in parallel, .deb files (which share the same filename) might overwrite each other in the S3 bucket depending on which job finishes last. Consider differentiating package names by OS in future iterations.


Architected, developed, and audited via AI Orchestration (Gemini Pro, Gemini Flash, and Claude Opus).

@Gusitir

Gusitir commented Jul 18, 2026

Copy link
Copy Markdown
Author

Note on CI Status: The continuous-integration/travis-ci/pr check might show as failing due to the ArchLinux parallel job encountering a network timeout (error: failed retrieving file 'core.db' from fastly.mirror.pkgbuild.com : Resolving timed out) during the base image setup. This is a known intermittent network issue with the Arch mirrors and is entirely unrelated to the Ubuntu 24.04 changes in this PR. The Ubuntu and Ubuntu-24.04 jobs complete successfully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant