Stremio for Debian
==================
This package contains Stremio, a modern media center for online video content.
Two-Package Approach
--------------------
Due to licensing constraints, Stremio is split into two packages:
1. **stremio** (main package, in main archive)
- Contains the main GPL-licensed application
- Provides core functionality without streaming server
- Can be used for basic media center operations
2. **stremio-server** (non-free package, in non-free archive)
- Contains the proprietary streaming server component (server.js)
- Required for full streaming functionality
- Distributed under proprietary license that restricts modification
Installation
------------
For basic functionality:
apt install stremio
For full streaming functionality:
apt install stremio stremio-server
Note: The stremio-server package is in the non-free section and requires
enabling non-free repositories.
Licensing Information
--------------------
**Main Package (stremio):**
- Application code: GPL-3.0
- Dependencies: Various DFSG-compatible licenses
- Complies with Debian Free Software Guidelines (DFSG)
**Server Package (stremio-server):**
- server.js: Proprietary license
- Restricts modification and redistribution
- Not DFSG-compatible, hence in non-free section
Technical Details
-----------------
1. **System Library Integration**
This package uses 100% Debian system libraries replacing all bundled dependencies:
- libmpv-dev: Replaces bundled deps/libmpv
- Qt5 libraries: qtbase5-dev, qtdeclarative5-dev, qtwebengine5-dev
- OpenSSL: libssl-dev (system version)
2. **QtWebEngine Initialization Fix**
Critical fix: QtWebEngine::initialize() must be called before QApplication
constructor to prevent QQmlApplicationEngine segmentation faults.
3. **SingleApplication Threading Compatibility**
IMPORTANT: System libsingleapplication-dev (v3.3.4) has threading incompatibilities
with QQmlApplicationEngine. This package includes a custom CompatibleSingleApp
implementation providing identical functionality without threading conflicts.
Files: compatible_singleapp.h, compatible_singleapp.cpp
4. **QML Runtime Dependencies**
All Qt5 QML modules required at runtime (automatically installed as dependencies):
- qml-module-qtwebengine, qml-module-qtwebchannel
- qml-module-qt-labs-platform, qml-module-qtquick-controls
- qml-module-qtquick-dialogs, qml-module-qt-labs-settings
- qml-module-qt-labs-folderlistmodel
5. **Widget Creation Timing**
SystemTray creation delayed until after QML engine initialization to prevent
widget creation errors.
6. **Server Component Location**
When stremio-server is installed: /usr/share/stremio/server.js
7. **Configuration**
User configuration stored in: ~/.local/share/stremio/
8. **Binary Size**
Produces ~424KB binary using only system libraries (vs. much larger bundled version)
Patches Applied
---------------
This package applies minimal patches for system integration:
1. Fix server.js path for FHS compliance
2. Disable network access during build
3. CMake system library integration (MPV, Qt5, OpenSSL)
4. QtWebEngine initialization fix
5. Custom SingleApplication implementation
Critical Runtime Requirements
-----------------------------
For proper functionality, ensure these runtime elements:
1. **QtWebEngine Initialization**: Must occur before QApplication constructor
2. **All QML modules installed**: Missing QML modules cause segmentation faults
3. **Thread-safe design**: Custom SingleApplication avoids system library threading conflicts
4. **Widget timing**: SystemTray created after QML engine ready
Build Instructions
------------------
Development build:
mkdir build && cd build && cmake .. && make
Package build:
QT_DEFAULT_MAJOR_VERSION=5 dpkg-buildpackage -us -uc
Single-instance testing:
./stremio # Primary instance
./stremio # Secondary instance (should detect and exit)
Known Limitations
-----------------
- Without stremio-server package, streaming functionality is limited
- First launch may take longer while downloading additional components
- Some advanced features require the proprietary server component
Planned Future Enhancements
---------------------------
The following improvements are planned for subsequent package uploads:
1. **Enhanced Security Hardening**
- CMake integration with dpkg-buildflags CPPFLAGS for FORTIFY_SOURCE support
- Currently shows info-level lintian message (hardening-no-fortify-functions)
- Not blocking for acceptance but will improve security posture
2. **Automated Testing Integration**
- Addition of autopkgtest suite for post-installation validation
- Tests will cover: basic startup, CLI options, dependency availability
- Helps catch regressions and ensures functionality across different environments
3. **Build System Optimizations**
- Further refinement of CMake/qmake dual build support
- Potential upstream contribution of system library integration patches
- Memory usage optimizations for resource-constrained build environments
These enhancements represent ongoing commitment to package quality and maintenance
excellence while maintaining the current high standards of policy compliance.
Support
-------
Application support: https://www.stremio.com/support
Debian packaging issues: Use 'reportbug stremio'
Homepage: https://www.stremio.com
Generated by dwww version 1.16 on Sat Oct 3 04:06:45 CEST 2026.