Jeffrey Kardatzke edited this page Aug 24, 2016 · 10 revisions

Open Source SageTV Logo

Welcome to the Open Source SageTV wiki!

This wiki is just getting started (on May 3 2016), so bear with us and check in periodically for more information.

1. What is Open Source SageTV?

Open Source SageTV is the open source version of SageTV. It provides media centre and digital video recording functionality. It uses a client-server architecture, with a central SageTV media server providing access to tv tuners, videos, photos, music and internet media. Network clients control access to media on the server and render the audio and video. Network clients can be both 'full' and 'mini'. Full clients (e.g. SageTV Client) run a replicated version of the software running on the server and generate their own UIs. Miniclients (e.g. SageTV Placeshifter, SageTV Media Extenders, SageTV Android MiniClient) use a remote user interface technology and support LAN as well as remote internet connectivity to the SageTV Server. SageTV also has a fully customizable user interface system that uses the SageTV Studio for development with these same UIs executable on the entire set of clients. SageTV mainly supports Windows and Linux (however support for Mac did previously exist, but the open source version has not had it included yet). More detailed information is on the SageTV History page

2. How can I build Open Source SageTV from the source code?

  • For Windows, check out the README file in the github repository.
  • For Linux, the common method for building from source is (thanks to stuckless on this SageTV Forum page)

    Using Ubuntu

    • Download the latest sources from github into directory sagetv in current directory

      git clone https://github.com/google/sagetv.git

    • Install Java. SageTV needs version 5 (or 1.5 - java versioning changed at version 5) or later. To install version 8

      sudo add-apt-repository ppa:webupd8team/java
      sudo apt-get update
      sudo apt-get install -y oracle-java8-installer

    • Configure the environment for the build. There are some environment variables that are required for the build. JDK_HOME nominates where java is installed, JAVA_ARCH nominates whether the build is for 32-bit or 64-bit binaries. NOTE that this build procedure does not support cross-compilation, so if you are building for a 64-bit machine then you need to be using a 64-bit Ubuntu installation for the build. Similarly for a 32-bit build.

      export JDK_HOME=/usr/lib/jvm/java-8-oracle/

      For 32-bit,

      export JAVA_ARCH=i386

      or for 64-bit,

      export JAVA_ARCH=amd64

    • Install dependencies

      sudo apt-get install libx11-dev libxt-dev libraw1394-dev libavc1394-dev libiec61883-dev libfreetype6-dev yasm autoconf libtool build-essential

      and for mplayer audio support

      sudo apt-get install libaudio-dev libpulse-dev libasound-dev

    • If you are running Ubuntu 15.10 or later then you're default gcc is probably version 5.x. Versions 2.x through to 4.x are required for the mplayer part of the build. Run gcc --version. If the version is less that 2.x (highly unlikely) or greater than 4.x, then install a suitable version of gcc. For Ubuntu 16.04, version 4.7 is available from the default apt repositories. Run the following to install gcc 4.7

      sudo apt-get install gcc-4.7

    • Build the binaries

      cd sagetv/build

      If you had to install gcc 4.7 then run

      CC=gcc-4.7 ./buildall.sh

      Otherwise, just run


      If everything builds successfully, you should end up with client and server bundles as both Debian packages and gzipped tarballs (sagetv-{client|server}_<build version>_$JAVA_ARCH.{deb|tar.gz}).

3. Where can I find out more information?

We're still building this wiki, in the meantime check out the following for more information ...