aboutsummaryrefslogtreecommitdiff
path: root/docs/README.Linux.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/README.Linux.md')
-rw-r--r--docs/README.Linux.md279
1 files changed, 279 insertions, 0 deletions
diff --git a/docs/README.Linux.md b/docs/README.Linux.md
new file mode 100644
index 0000000000..cc517095f8
--- /dev/null
+++ b/docs/README.Linux.md
@@ -0,0 +1,279 @@
+TOC
+1. Introduction
+2. Getting the source code
+3. Installing the required libraries and headers
+4. How to compile
+ 4.4 Binary addons
+ 4.5 Test suite
+5. How to run
+6. Uninstalling
+
+-----------------------------------------------------------------------------
+1. Introduction
+-----------------------------------------------------------------------------
+
+A graphics-adapter with OpenGL acceleration is highly recommended.
+24/32 bitdepth is required along with OpenGL.
+
+Note to new Linux users:
+All lines that are prefixed with the '$' character are commands,
+that need to be typed into a terminal window / console. The '$' equals the prompt.
+Note: The '$' character itself should NOT be typed as part of the command.
+
+-----------------------------------------------------------------------------
+2. Getting the source code
+-----------------------------------------------------------------------------
+
+You will have to grab the source code of course, here we use git as example.
+First install the git package provided by your distribution.
+Then from a terminal, type:
+
+.0 $ cd $HOME
+.1 $ git clone git://github.com/xbmc/xbmc.git kodi
+
+Note: You can clone any specific branch.
+
+.1 $ git clone -b <branch> git://github.com/xbmc/xbmc.git kodi
+
+-----------------------------------------------------------------------------
+3. Installing the required libraries and headers
+-----------------------------------------------------------------------------
+
+You will then need the required libraries. The following is the list of packages
+that are used to build Kodi packages on Debian/Ubuntu (with all supported
+external libraries enabled).
+
+Build-Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl,
+ default-jre, gawk, gperf, libao-dev, libasound2-dev,
+ libass-dev (>= 0.9.8), libavahi-client-dev, libavahi-common-dev, libbluetooth-dev,
+ libbluray-dev (>= 0.9.3), libbz2-dev, libcap-dev,
+ libcdio-dev, libcec-dev, libcurl4-openssl-dev | libcurl4-gnutls-dev | libcurl-dev,
+ libcwiid-dev, libdbus-1-dev, libegl1-mesa-dev, libfmt3-dev, libfontconfig-dev, libfreetype6-dev,
+ libfribidi-dev, libgif-dev (>= 4.1.6), libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev,
+ libiso9660-dev, libjpeg-dev, libltdl-dev, liblzo2-dev, libmicrohttpd-dev,
+ libmpcdec-dev, libmysqlclient-dev, libnfs-dev,
+ libpcre3-dev, libplist-dev, libpng12-dev | libpng-dev, libpulse-dev,
+ libshairplay-dev, libsmbclient-dev, libsqlite3-dev, libssl-dev, libswscale-dev,
+ libtag1-dev (>= 1.8), libtinyxml-dev (>= 2.6.2), libtool, libudev-dev,
+ libusb-dev, libva-dev, libvdpau-dev, libxml2-dev,
+ libxmu-dev, libxrandr-dev, libxslt1-dev, libxt-dev, lsb-release, rapidjson-dev,
+ nasm [!amd64], python-dev, python-imaging, python-support, swig, uuid-dev, yasm, zlib1g-dev,
+ liblirc-dev
+
+If you want to build with Wayland instead of X11, you will need:
+ wayland-protocols (>= 1.7), libwaylandpp-dev
+
+[NOTICE] crossguid / libcrossguid-dev all Linux distributions.
+Kodi now requires crossguid which is not available in Ubuntu repositories at this time.
+We supply a Makefile in tools/depends/target/crossguid
+to make it easy to install into /usr/local.
+ $ make -C tools/depends/target/crossguid PREFIX=/usr/local
+
+[NOTICE] libfmt / libfmt3-dev all Linux distributions.
+Kodi now requires libfmt which is not available in Ubuntu repositories at this time.
+We supply a Makefile in tools/depends/target/libfmt
+to make it easy to install into /usr/local.
+ $ make -C tools/depends/target/libfmt PREFIX=/usr/local
+
+[NOTICE] wayland-protocols all Linux distributions.
+Building Kodi with Wayland requires a recent version of wayland-protocols (at least 1.7)
+which is not available in the Ubuntu LTS repostiories at this time.
+We supply a Makefile in tools/depends/target/wayland-protocols to make it easy to install
+into /usr/local.
+ $ make -C tools/depends/target/wayland-protocols PREFIX=/usr/local
+
+[NOTICE] waylandpp all Linux distributions.
+Building Kodi with Wayland requires waylandpp which is not available in repositories
+of most major distributions at this time.
+We supply a Makefile in tools/depends/target/waylandpp to make it easy to install
+into /usr/local.
+Note that building waylandpp has some dependencies of its own: scons,
+libwayland-dev (>= 1.11.0), libwayland-egl1-mesa
+ $ make -C tools/depends/target/waylandpp PREFIX=/usr/local
+
+Note: For developers and anyone else who compiles frequently it is recommended to use ccache.
+ $ sudo apt-get install ccache
+
+-----------------------------------------------------------------------------
+3.1. Using the Kodi PPA to get all build dependencies (Debian/Ubuntu only)
+-----------------------------------------------------------------------------
+
+For this, you need to specify the PPA in your apt sources.
+Please find them on the following wiki link:
+Note: See README.Ubuntu.md as well
+
+http://kodi.wiki/index.php?title=Official_Ubuntu_PPA
+
+Update apt:
+ $ sudo apt-get update
+
+The command to get the build dependencies, used to compile the version on the PPA.
+ $ sudo apt-get build-dep kodi
+
+-----------------------------------------------------------------------------
+4. How to compile
+-----------------------------------------------------------------------------
+Cmake build instructions V18.0 Leia and higher
+
+Create and change to build directory
+ $ mkdir kodi-build && cd kodi-build
+
+Run CMake
+- for X11
+ $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
+- for Wayland
+ $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME=wayland -DWAYLAND_RENDER_SYSTEM=gl
+ (You can use "gles" instead of "gl" if you want to build with GLES)
+
+Build
+ $ cmake --build . -- VERBOSE=1
+
+Tip: By adding -j<number> to the make command, you describe how many
+ concurrent jobs will be used, it will speed up the build process.
+ So for quadcore the command is:
+
+ $ cmake --build . -- VERBOSE=1 -j4
+
+If the build process completes succesfully you would want to test if it is working.
+Still in the build directory type the following:
+
+ $ ./kodi.bin
+
+If everything was okay during your test you can now install the binaries to their place
+in this example "/usr/local".
+
+ $ sudo make install
+
+This will install Kodi in the prefix provided in 4.1 as well as a launcher script.
+
+Tip: By adding -j<number> to the make command, you describe how many
+ concurrent jobs will be used. So for dualcore the command is:
+
+ $ sudo make install -j2
+
+Tip: To override the location that Kodi is installed, use PREFIX=<path>.
+For example.
+
+ $ make install DESTDIR=$HOME/kodi
+
+-----------------------------------------------------------------------------
+4.4. Binary addons - compile
+-----------------------------------------------------------------------------
+
+From v14 with commit 4090a5f a new API for binary addons is available.
+You can compile all addons or only specific addons by specifying e.g. ADDONS="audioencoder.foo pvr.bar audiodecoder.baz"
+
+.0 All addons
+ $ make -C tools/depends/target/binary-addons PREFIX=/<system prefix added on step 4.1>
+
+.1 Specific addons
+ $ make -C tools/depends/target/binary-addons PREFIX=/<system prefix added on step 4.1> ADDONS="audioencoder.flac pvr.vdr.vnsi audiodecoder.snesapu"
+
+Audio decoders:
+ audiodecoder.modplug, audiodecoder.nosefart, audiodecoder.sidplay, audiodecoder.snesapu,
+ audiodecoder.stsound, audiodecoder.timidity, audiodecoder.vgmstream
+
+Audio encoders:
+ audioencoder.flac, audioencoder.lame, audioencoder.vorbis, audioencoder.wav
+
+Inputstream addons:
+ inputstream.mpd
+
+Peripheral addons:
+ peripheral.joystick
+
+PVR addons:
+ pvr.argustv, pvr.demo, pvr.dvblink, pvr.dvbviewer, pvr.filmon, pvr.hdhomerun, pvr.hts, pvr.iptvsimple,
+ pvr.mediaportal.tvserver,pvr.mythtv, pvr.nextpvr, pvr.njoy, pvr.pctv, pvr.stalker, pvr.vbox, pvr.vdr.vnsi,
+ pvr.vuplus, pvr.wmc
+
+Screensavers:
+ screensaver.asteroids, screensaver.biogenesis, screensaver.greynetic, screensaver.matrixtrails,
+ screensaver.pingpong, screensaver.pyro, screensavers.rsxs, screensaver.stars
+
+Visualizations
+ visualization.fishbmc, visualization.goom, visualization.projectm, visualization.shadertoy
+ visualization.spectrum, visualization.vsxu, visualization.waveform
+
+-----------------------------------------------------------------------------
+4.5. Test suite
+-----------------------------------------------------------------------------
+
+Kodi has a test suite which uses the Google C++ Testing Framework.
+This framework is provided directly in Kodi's source tree.
+It has very little requirements, in order to build and run.
+See the README file for the framework at 'lib/gtest/README' for specific requirements.
+
+To compile and run Kodi's test suite, type the following:
+
+ $ make check
+
+To compile the test suite without running it, type the following.
+
+ $ make kodi-test
+
+The test suite program can be run manually as well.
+The name of the test suite program is 'kodi-test' and will build in the Kodi source tree.
+To bring up the 'help' notes for the program, type the following:
+
+ $ ./kodi-test --gtest_help
+
+The most useful options are,
+
+ --gtest_list_tests
+ List the names of all tests instead of running them.
+ The name of TEST(Foo, Bar) is "Foo.Bar".
+
+ --gtest_filter=POSITIVE_PATTERNS[-NEGATIVE_PATTERNS]
+ Run only the tests whose name matches one of the positive patterns but
+ none of the negative patterns. '?' matches any single character; '*'
+ matches any substring; ':' separates two patterns.
+
+-----------------------------------------------------------------------------
+5. How to run
+-----------------------------------------------------------------------------
+
+How to run Kodi depends on the type of installation you have done.
+It is possible to run Kodi without the requirement to install Kodi anywhere else.
+In this case, type the following from the top source directory.
+
+ $ ./kodi.bin
+
+Or run in 'portable' mode
+
+ $ ./kodi.bin -p
+
+If you chose to install Kodi using '/usr' or '/usr/local' as the PREFIX,
+you can just issue 'kodi' in a terminal session.
+
+If you have overridden PREFIX to install Kodi into some non-standard location,
+you will have to run Kodi by directly running 'kodi.bin'.
+
+For example:
+
+ $ $HOME/kodi/usr/lib/kodi/kodi.bin
+
+You should still run the wrapper via
+ $ $PREFIX/bin/kodi
+
+If you wish to use VDPAU decoding you will now have to change the Render Method
+in Settings->Videos->Player from "Auto Detect" to "VDPAU".
+
+-----------------------------------------------------------------------------
+6. Uninstalling
+-----------------------------------------------------------------------------
+
+Prepend "sudo" to commands, if your user doesn't have write permission to the install directory.
+
+Note: If you have rerun configure with a different prefix,
+you will either need to rerun configure with the correct prefix for this step to work correctly.
+
+ $ make uninstall
+.0 $ sudo make uninstall
+
+If you would like to also remove any settings and 3rd party addons (skins, scripts, etc)
+you should also run:
+
+.1 $ rm -rf ~/.kodi
+
+EOF