Skip to content

Instantly share code, notes, and snippets.

@simos
Created March 14, 2018 19:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save simos/ab8e0e3ac5889a3090b9be953c81150b to your computer and use it in GitHub Desktop.
Save simos/ab8e0e3ac5889a3090b9be953c81150b to your computer and use it in GitHub Desktop.
Script to compile Kodi with --headless option on Ubuntu 16.04 (in a LXD container)
#!/bin/sh
# Converted from https://github.com/linuxserver/docker-kodi-headless/blob/master/Dockerfile
#FROM lsiobase/xenial
#
## set version label
#ARG BUILD_DATE
#ARG VERSION
#LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
#LABEL maintainer="sparklyballs"
#
## package versions
KODI_NAME="Krypton"
KODI_VER="17.6"
#
## environment settings
#ARG DEBIAN_FRONTEND="noninteractive"
#ENV HOME="/config"
#
## copy patches and excludes
#COPY patches/ /patches/
#COPY excludes /etc/dpkg/dpkg.cfg.d/excludes
# build packages variable
BUILD_DEPENDENCIES="\
ant \
autoconf \
automake \
autopoint \
binutils \
cmake \
curl \
default-jdk \
doxygen \
g++ \
gawk \
gcc \
git-core \
gperf \
libass-dev \
libavahi-client-dev \
libbluray-dev \
libboost1.58-dev \
libbz2-ocaml-dev \
libcap-dev \
libcurl4-openssl-dev \
libegl1-mesa-dev \
libflac-dev \
libfreetype6-dev \
libgif-dev \
libgle3-dev \
libglew-dev \
libgnutls-dev \
libiso9660-dev \
libjasper-dev \
libjpeg-dev \
liblcms2-dev \
liblzo2-dev \
libmicrohttpd-dev \
libmpeg2-4-dev \
libmysqlclient-dev \
libnfs-dev \
libpcre3-dev \
libplist-dev \
libsmbclient-dev \
libsqlite3-dev \
libssh-dev \
libtag1-dev \
libtiff5-dev \
libtinyxml-dev \
libtool \
libvorbis-dev \
libxml2-dev \
libxrandr-dev \
libxslt-dev \
libyajl-dev \
m4 \
make \
openjdk-8-jre-headless \
python-dev \
swig \
uuid-dev \
yasm \
zip"
# runtime packages variable
export RUNTIME_DEPENDENCIES="\
libcdio13 \
libcurl3 \
libegl1-mesa \
libfreetype6 \
libfribidi0 \
libglew1.13 \
libjpeg8 \
liblcms2-2 \
liblzo2-2 \
libmicrohttpd10 \
libmysqlclient20 \
libnfs8 \
libpcrecpp0v5 \
libplist3 \
libpython2.7 \
libsmbclient \
libssh-4 \
libtag1v5 \
libtinyxml2.6.2v5 \
libvorbisenc2 \
libxml2 \
libxrandr2 \
libxslt1.1 \
libyajl2"
echo "**** clone the docker Kodi-headless repository to get access to the --headless patch ***"
cd
git clone https://github.com/linuxserver/docker-kodi-headless.git
echo "**** add cmake repository ****"
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 828AB726
echo "deb http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu xenial main" >> \
/etc/apt/sources.list.d/cmake.list
echo "deb-src http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu xenial main" >> \
/etc/apt/sources.list.d/cmake.list
echo "**** install build packages ****"
sudo apt-get update
sudo apt-get install -y $BUILD_DEPENDENCIES
echo "**** compile kodi ****"
mkdir -p /tmp/kodi-source
curl -o /tmp/kodi.tar.gz -L "https://github.com/xbmc/xbmc/archive/${KODI_VER}-${KODI_NAME}.tar.gz"
tar xf /tmp/kodi.tar.gz -C /tmp/kodi-source --strip-components=1
cd /tmp/kodi-source
git apply ~/docker-kodi-headless/patches/"${KODI_NAME}"/headless.patch
mkdir -p /tmp/kodi-source/build
cd /tmp/kodi-source/build
cmake ../project/cmake/ \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_AIRTUNES=OFF \
-DENABLE_ALSA=OFF \
-DENABLE_AVAHI=OFF \
-DENABLE_BLUETOOTH=OFF \
-DENABLE_BLURAY=ON \
-DENABLE_CAP=OFF \
-DENABLE_CEC=OFF \
-DENABLE_DBUS=OFF \
-DENABLE_DVDCSS=OFF \
-DENABLE_LIBUSB=OFF \
-DENABLE_NFS=ON \
-DENABLE_NONFREE=OFF \
-DENABLE_OPTICAL=OFF \
-DENABLE_PULSEAUDIO=OFF \
-DENABLE_SDL=OFF \
-DENABLE_SSH=ON \
-DENABLE_UDEV=OFF \
-DENABLE_UPNP=ON \
-DENABLE_VAAPI=OFF \
-DENABLE_VDPAU=OFF
make
sudo make install
echo "**** install kodi-send ****"
sudo install -Dm755 \
/tmp/kodi-source/tools/EventClients/Clients/Kodi\ Send/kodi-send.py \
/usr/bin/kodi-send
sudo install -Dm644 \
/tmp/kodi-source/tools/EventClients/lib/python/xbmcclient.py \
/usr/lib/python2.7/xbmcclient.py
echo "**** uninstall build packages ****"
sudo apt-get purge -y --auto-remove $BUILD_DEPENDENCIES
echo "**** install runtime packages ****"
sudo apt-get update
sudo apt-get install -y \
--no-install-recommends \
$RUNTIME_DEPENDENCIES
echo "**** cleanup ****"
sudo apt-get clean
sudo rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# add local files
#COPY root/ /
# ports and volumes
#VOLUME /config/.kodi
#EXPOSE 8080 9777/udp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment