Installation Troubleshooting Guide¶
This guide helps resolve common issues encountered when building and installing Movian on various platforms.
Quick Diagnosis¶
Build Issues Checklist¶
Before diving into specific problems, run through this quick checklist:
- [ ] Dependencies installed: All required libraries and development packages
- [ ] Compiler version: GCC 4.8+ or Clang 3.4+ with C99/C++11 support
- [ ] Disk space: At least 2GB free space for build
- [ ] Network access: Required for downloading dependencies
- [ ] Permissions: Write access to build directory
Common Error Patterns¶
| Error Pattern | Likely Cause | Quick Fix |
|---|---|---|
Package 'X' not found |
Missing development package | Install libX-dev package |
undefined reference to 'symbol' |
Missing library | Add library to linker flags |
No such file or directory |
Missing header | Install development headers |
Permission denied |
Insufficient permissions | Use sudo or fix ownership |
configure: error: |
Configuration failure | Check dependencies and flags |
Platform-Specific Issues¶
Linux Issues¶
Ubuntu/Debian Package Problems¶
Problem: Package not found errors
# Error examples:
# Package 'freetype2' not found
# Package 'fontconfig' not found
# Package 'x11' not found
Solution: Install development packages
# Update package database first
sudo apt-get update
# Install missing packages
sudo apt-get install libfreetype6-dev # for freetype2
sudo apt-get install libfontconfig1-dev # for fontconfig
sudo apt-get install libx11-dev # for x11
sudo apt-get install libxext-dev # for xext
# Install all common dependencies at once
sudo apt-get install -y \
libfreetype6-dev libfontconfig1-dev libxext-dev \
libgl1-mesa-dev libasound2-dev libgtk2.0-dev \
libxss-dev libxxf86vm-dev libxv-dev libvdpau-dev \
yasm libpulse-dev libssl-dev curl \
libwebkitgtk-dev libsqlite3-dev libavahi-client-dev
Problem: WebKit version conflicts
Solution: Use alternative WebKit package or disable
# Try different WebKit packages
sudo apt-get install libwebkit2gtk-4.0-dev # Ubuntu 18.04+
sudo apt-get install libwebkitgtk-3.0-dev # Ubuntu 16.04
# Or disable WebKit entirely
./configure --disable-webkit
Fedora/CentOS/RHEL Issues¶
Problem: Development tools not available
Solution: Install development group
# Fedora
sudo dnf groupinstall "Development Tools"
sudo dnf install gcc gcc-c++ make
# CentOS/RHEL 8
sudo dnf groupinstall "Development Tools"
# CentOS/RHEL 7
sudo yum groupinstall "Development Tools"
Problem: EPEL repository needed
Solution: Enable EPEL repository
# CentOS/RHEL 8
sudo dnf install epel-release
sudo dnf config-manager --set-enabled powertools
# CentOS/RHEL 7
sudo yum install epel-release
Problem: GCC version too old (CentOS 7)
Solution: Install newer GCC from SCL
sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
# Enable for current session
scl enable devtoolset-8 bash
# Or configure with specific compiler
./configure --cc=/opt/rh/devtoolset-8/root/usr/bin/gcc
macOS Issues¶
Xcode Command Line Tools Problems¶
Problem: Xcode license not accepted
Solution: Accept license
Problem: Command Line Tools not installed
Solution: Install Command Line Tools
xcode-select --install
# If that fails, reset and try again
sudo xcode-select --reset
xcode-select --install
Homebrew Issues¶
Problem: Homebrew not found
Solution: Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Add to PATH (Apple Silicon)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
# Add to PATH (Intel)
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
Problem: OpenSSL not found
Solution: Install and configure OpenSSL
# Install OpenSSL
brew install openssl
# Configure build (Intel Mac)
./configure --extra-cflags="-I/usr/local/opt/openssl/include" \
--extra-ldflags="-L/usr/local/opt/openssl/lib"
# Configure build (Apple Silicon)
./configure --extra-cflags="-I/opt/homebrew/opt/openssl/include" \
--extra-ldflags="-L/opt/homebrew/opt/openssl/lib"
Apple Silicon (M1/M2) Issues¶
Problem: Architecture mismatch
Solution: Specify correct architecture
# Check current architecture
uname -m
# Configure for native architecture
./configure --arch=$(uname -m)
# Or force specific architecture
./configure --arch=arm64 # Apple Silicon
./configure --arch=x86_64 # Intel/Rosetta
Windows Issues (MinGW/MSYS2)¶
MSYS2 Setup Problems¶
Problem: MSYS2 packages not found
Solution: Update package database
# Update MSYS2
pacman -Syu
# Install base development tools
pacman -S base-devel mingw-w64-x86_64-toolchain
# Install Movian dependencies
pacman -S mingw-w64-x86_64-freetype \
mingw-w64-x86_64-fontconfig \
mingw-w64-x86_64-openssl
Build Configuration Issues¶
Configure Script Failures¶
Missing pkg-config¶
Problem: pkg-config not found
Solution: Install pkg-config
# Ubuntu/Debian
sudo apt-get install pkg-config
# Fedora/CentOS
sudo dnf install pkgconf-devel # Fedora
sudo yum install pkgconfig # CentOS 7
# macOS
brew install pkg-config
Library Detection Issues¶
Problem: Libraries installed but not detected
Solution: Check and fix pkg-config paths
# Check current pkg-config paths
pkg-config --variable pc_path pkg-config
# Add custom paths
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
# For 64-bit systems, also check lib64
export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH"
# Verify library is found
pkg-config --exists freetype2 && echo "Found" || echo "Not found"
Custom Library Locations¶
Problem: Libraries in non-standard locations
Solution: Specify custom paths
# Configure with custom paths
./configure \
--extra-cflags="-I/opt/local/include -I/usr/local/include" \
--extra-ldflags="-L/opt/local/lib -L/usr/local/lib"
# Or set environment variables
export CPPFLAGS="-I/opt/local/include"
export LDFLAGS="-L/opt/local/lib"
./configure
Compilation Issues¶
Compiler Errors¶
C99/C++11 Support¶
Problem: Compiler doesn't support required standards
Solution: Use newer compiler or specify standards
# Install newer GCC
sudo apt-get install gcc-8 g++-8
# Configure with specific compiler
./configure --cc=gcc-8 --cxx=g++-8
# Or add standard flags
./configure --extra-cflags="-std=c99" --extra-cxxflags="-std=c++11"
Missing Headers¶
Problem: System headers not found
Solution: Install system development packages
# Ubuntu/Debian
sudo apt-get install libc6-dev build-essential
# Fedora/CentOS
sudo dnf install glibc-devel kernel-headers
# Check compiler installation
gcc --version
which gcc
Symbol Resolution Issues¶
Problem: Undefined references during linking
Solution: Add missing libraries
# Common missing libraries and their flags
# pthread: -lpthread
# dl: -ldl
# math: -lm
# rt: -lrt
# Configure with additional libraries
./configure --extra-ldflags="-lpthread -ldl -lm -lrt"
Memory and Resource Issues¶
Out of Memory During Compilation¶
Problem: Compilation fails due to insufficient memory
Solution: Reduce parallel jobs or add swap
# Reduce parallel compilation
make -j1 # Use single thread
make -j2 # Use 2 threads instead of all cores
# Add swap space (Linux)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Check available memory
free -h
Disk Space Issues¶
Problem: No space left on device
Solution: Clean up and free space
# Check disk usage
df -h
# Clean build directory
make clean
make distclean
# Remove temporary files
rm -rf /tmp/*
# Clean package cache (Ubuntu/Debian)
sudo apt-get clean
sudo apt-get autoremove
Runtime Issues¶
Library Loading Problems¶
Missing Shared Libraries¶
Problem: Shared library not found at runtime
Solution: Install runtime libraries or fix paths
# Check missing libraries
ldd build.linux/movian
# Install missing runtime packages
sudo apt-get install libssl1.1 # for libssl.so.1.1
sudo apt-get install libpulse0 # for libpulse.so.0
# Or add library path
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
Version Conflicts¶
Problem: Library version mismatch
Solution: Check compatibility or rebuild
# Check glibc version
ldd --version
# Check required versions
objdump -T build.linux/movian | grep GLIBC
# If incompatible, rebuild on target system
# Or use static linking
./configure --enable-static
Permission Issues¶
Audio/Video Device Access¶
Problem: Cannot access audio or video devices
Solution: Add user to appropriate groups
# Add to audio group
sudo usermod -a -G audio $USER
# Add to video group
sudo usermod -a -G video $USER
# Log out and back in for changes to take effect
# Or use newgrp to activate groups immediately
newgrp audio
newgrp video
File System Permissions¶
Problem: Cannot read media files
Solution: Fix file permissions or run with appropriate privileges
# Check file permissions
ls -la /path/to/media/file
# Fix permissions if needed
chmod 644 /path/to/media/file
# Or run with sudo (not recommended for regular use)
sudo ./build.linux/movian
Display and Graphics Issues¶
X11 Connection Problems¶
Problem: Cannot connect to X server
Solution: Fix X11 configuration
# Set DISPLAY variable
export DISPLAY=:0
# Allow X11 connections (temporary, security risk)
xhost +local:
# Better: use proper authentication
xauth list
# Copy .Xauthority to user's home directory if needed
OpenGL Issues¶
Problem: OpenGL not available
Solution: Install proper graphics drivers
# Check OpenGL support
glxinfo | grep "direct rendering"
# Install Mesa drivers (open source)
sudo apt-get install mesa-utils libgl1-mesa-dri
# For NVIDIA proprietary drivers
sudo apt-get install nvidia-driver-XXX # Replace XXX with version
# For AMD proprietary drivers
sudo apt-get install amdgpu-pro
Advanced Troubleshooting¶
Debug Builds¶
Create debug builds for better error information:
# Configure for debugging
./configure --optlevel=g --enable-bughunt
# Build with debug symbols
make -j$(nproc)
# Run with debugger
gdb ./build.linux/movian
(gdb) run
(gdb) bt # Get backtrace on crash
Verbose Output¶
Enable verbose output for detailed information:
# Verbose configure
./configure --verbose
# Verbose make
make V=1
# Verbose runtime (if supported)
./build.linux/movian --verbose --debug
Sanitizers¶
Use sanitizers to detect memory and threading issues:
# Address Sanitizer (memory errors)
./configure --extra-cflags="-fsanitize=address -fno-omit-frame-pointer" \
--extra-ldflags="-fsanitize=address"
# Thread Sanitizer (threading issues)
./configure --extra-cflags="-fsanitize=thread" \
--extra-ldflags="-fsanitize=thread"
# Undefined Behavior Sanitizer
./configure --extra-cflags="-fsanitize=undefined" \
--extra-ldflags="-fsanitize=undefined"
System Information Collection¶
Collect system information for bug reports:
#!/bin/bash
# System information script
echo "=== System Information ==="
uname -a
echo
echo "=== Distribution ==="
if [ -f /etc/os-release ]; then
cat /etc/os-release
elif [ -f /etc/redhat-release ]; then
cat /etc/redhat-release
fi
echo
echo "=== Compiler Information ==="
gcc --version 2>/dev/null || echo "GCC not found"
clang --version 2>/dev/null || echo "Clang not found"
echo
echo "=== Library Versions ==="
pkg-config --modversion freetype2 2>/dev/null || echo "freetype2 not found"
pkg-config --modversion fontconfig 2>/dev/null || echo "fontconfig not found"
pkg-config --modversion openssl 2>/dev/null || echo "openssl not found"
echo
echo "=== Build Configuration ==="
if [ -f build.linux/config.mak ]; then
grep "^CONFIG_" build.linux/config.mak
fi
Getting Help¶
Before Asking for Help¶
- Search existing issues: Check GitHub issues for similar problems
- Collect information: Run the system information script above
- Minimal reproduction: Create minimal steps to reproduce the issue
- Try workarounds: Attempt suggested solutions in this guide
Where to Get Help¶
- GitHub Issues: Report bugs and build issues
- Community Forum: General discussion and help
- Documentation: Complete documentation
Information to Include¶
When reporting issues, include:
- Platform: OS, version, architecture
- Build configuration: Configure command and flags used
- Error messages: Complete error output, not just summaries
- System info: Output from system information script
- Steps to reproduce: Exact commands that cause the issue
Source References:
- configure.linux, configure.osx - Platform-specific configuration
- support/configure.inc - Common configuration functions
- Community forum posts and GitHub issues
Accuracy Status: 🟢 Verified solutions from real user reports
Last Updated: November 2025
Covers: Linux, macOS, Windows build issues