File kodi.spec of Package kodi
%define _libtag_ver %(version="`rpm -q --qf '%{VERSION}' libtag-devel`"; echo "$version")
# Do not use X11
%define noX_build 0
# Raspberry Pi can only be build when noX_build is set to 1
%define rpi_build 0
%ifarch armv6l armv6hl armv7l armv7hl
%define noX_build 1
%define rpi_build 1
%endif
#default values
%define enable_rpi_build 0
%define enable_noX_build 0
%define enable_opengl 1
%define enable_opengles 0
# Check for noX and rpi builds
%if 0%{?noX_build}
%define enable_noX_build 1
%define enable_opengl 0
%define enable_opengles 1
%ifarch armv6l armv6hl armv7l armv7hl
%if 0%{?rpi_build}
%define enable_rpi_build 1
%endif
%endif
%endif
%if 0%{?enable_noX_build}
Name: kodi-noX
%else
Name: kodi
%endif
Version: 0
Release: 0
Summary: KODI Media center
License: GPL-2.0+ and GPL-3.0+
Group: Productivity/Multimedia/Video/Players
Url: http://www.kodi.tv/
Source0: xbmc-%{version}.tar.xz
Patch100: use-system-libdvd.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExcludeArch: ppc64
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: crossguid-devel < 0.2
BuildRequires: desktop-file-utils
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++ >= 4.7
%if 0%{?fedora} >= 14
BuildRequires: gettext-autopoint
%else
BuildRequires: gettext
%endif
%if 0%{?enable_opengl}
BuildRequires: glew-devel
%endif
BuildRequires: glibc-devel
BuildRequires: gperf
BuildRequires: gtk2-tools
BuildRequires: java-headless >= 1.7
BuildRequires: hicolor-icon-theme
%if 0%{?suse_version} < 150000
BuildRequires: libcap-devel
%endif
%ifarch %ix86 x86_64
BuildRequires: libcrystalhd-devel
%endif
BuildRequires: libdvdread-devel-static
BuildRequires: libdvdnav-devel-static
BuildRequires: libdvdcss-devel-static
%ifnarch %arm
BuildRequires: libhdhomerun-devel
%endif
BuildRequires: libmysqlclient-devel
BuildRequires: libtool
BuildRequires: makeinfo
BuildRequires: nasm
BuildRequires: pcre-devel
BuildRequires: pkg-config
BuildRequires: python-devel >= 2.4
BuildRequires: readline-devel
BuildRequires: swig
BuildRequires: texturepacker >= %{version}
BuildRequires: tinyxml-devel
BuildRequires: unzip
BuildRequires: update-desktop-files
%if !0%{?enable_noX_build}
BuildRequires: xorg-x11-devel
%endif
BuildRequires: xz-devel
BuildRequires: yasm
BuildRequires: zip
## pkg-configs
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(ao)
BuildRequires: pkgconfig(avahi-client)
BuildRequires: pkgconfig(avahi-core)
BuildRequires: pkgconfig(bluez)
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(dcadec)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dvdnav)
BuildRequires: pkgconfig(dvdread)
BuildRequires: pkgconfig(enca)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(fribidi)
BuildRequires: pkgconfig(ftgl)
BuildRequires: pkgconfig(glib-2.0)
%if 0%{?suse_version} < 1140
BuildRequires: pkgconfig(hal)
%endif
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(libass) >= 0.12.1
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(libavfilter)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavresample)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libbluray)
%if 0%{?suse_version} >= 150000
BuildRequires: pkgconfig(libcap)
%endif
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libcec)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libdvdcss)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libmicrohttpd)
BuildRequires: pkgconfig(libmodplug)
BuildRequires: pkgconfig(libmpeg2)
BuildRequires: pkgconfig(libnfs) >= 1.6
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libplist)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libpostproc)
BuildRequires: pkgconfig(libssh)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(libswresample)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libva)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(lirc)
BuildRequires: pkgconfig(lzo2)
BuildRequires: pkgconfig(mad)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(p8-platform)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(SDL2_image)
BuildRequires: pkgconfig(SDL2_mixer)
BuildRequires: pkgconfig(smbclient)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(taglib) >= 1.8
BuildRequires: pkgconfig(uuid)
%if 0%{?enable_opengl}
BuildRequires: pkgconfig(vdpau)
%endif
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(yajl)
BuildRequires: pkgconfig(zlib)
## kodi needs the same libtag version which was used to build against
Requires: libtag1 = %{_libtag_ver}
# glxinfo is needed to check hw accel
%if 0%{?suse_version} >= 1220
%if !0%{?enable_noX_build}
Requires: Mesa-demo-x
%endif
%endif
%if 0%{?enable_opengles}
%if 0%{?enable_rpi_build}
BuildRequires: raspberrypi-userland-devel >= 2014.05.03
%else
BuildRequires: Mesa-libEGL-devel
BuildRequires: Mesa-libGLESv2-devel
%endif
%endif
#Requires: libFLAC8
#Requires: libass5
#Requires: libcec3
#Requires: libcurl4
#Requires: libmad0
#Requires: libmodplug1
#Requires: libmpeg2-0
#Requires: libnfs8
#Requires: libplist2
#Requires: librtmp1
#Requires: libvorbisfile3
Conflicts: xbmc xbmc-noX
%if 0%{?enable_noX_build}
Conflicts: kodi
Provides: kodi
%else
Conflicts: kodi-noX
%endif
%description
Kodi (formally known as XBMC) is an award-winning free and open source (GPL) software media player and entertainment hub that can be installed on Linux, OSX, Windows, iOS, and Android, featuring a 10-foot user interface for use with televisions and remote controls. It allows users to play and view most videos, music, podcasts, and other digital media files from local and network storage media and the internet.
%package devel
Summary: KODI Media center devel files
Group: Development/Languages/C and C++
Requires: %{name}
BuildArch: noarch
%if 0%{?enable_noX_build}
Provides: kodi-devel = %{version}
%endif
%description devel
Development files for the KODI media Center
%prep
%setup -q -n xbmc-%{version}
%patch100 -p1
%if 0%{?enable_noX_build}
echo "--- Make no X11 build ---"
%if 0%{?enable_rpi_build}
%ifarch armv6l armv6hl
echo "--- Build for the raspberry Pi ---"
%define pi_platform raspberry-pi
%else
%ifarch armv7l armv7hl
echo "--- Build for the raspberry Pi 2 ---"
%define pi_platform raspberry-pi2
%endif
%endif
%endif
%endif
./bootstrap
%build
export CFLAGS="%{optflags} -D__STDC_CONSTANT_MACROS"
export CXXFLAGS="%{optflags} -D__STDC_CONSTANT_MACROS"
export LDFLAGS="-Wl,--no-as-needed -Wl,--no-allow-shlib-undefined"
%configure \
--prefix=%{_prefix} \
--disable-profiling \
--disable-ccache \
--enable-optimizations \
--enable-ssh \
--disable-debug \
--disable-static \
--enable-libcec \
--enable-mid \
--enable-nfs \
--enable-libbluray \
--enable-alsa \
--enable-pulse \
--enable-samba \
--enable-avahi \
--enable-non-free \
--enable-mysql \
--enable-webserver \
--enable-udev \
--enable-libcap \
--disable-libav-compat \
--enable-libxslt \
--enable-texturepacker \
--enable-lirc \
--enable-libusb \
--enable-lcms2 \
--enable-libbluetooth \
%if 0%{?enable_opengl}
--enable-vaapi \
--enable-vdpau \
--enable-gl \
%else
--disable-vaapi \
--disable-vdpau \
--disable-gl \
%endif
%if 0%{?enable_opengles}
--enable-gles \
%else
--disable-gles \
%endif
%if 0%{?enable_rpi_build}
--with-platform=%{pi_platform} \
--enable-player=omxplayer \
--disable-optical-drive \
--disable-projectm \
--enable-openmax \
%endif
%ifarch armv7l armv7hl
--enable-tegra \
%endif
%if 0%{?enable_noX_build}
--disable-x11 \
--disable-xrandr \
--disable-sdl \
--disable-joystick \
%endif
--with-ffmpeg=shared \
--with-dvdread=system \
--with-dvdnav=system \
--with-dvdcss=system
make %{?_smp_mflags}
%install
%make_install
# remove the doc files from unversioned /usr/share/doc/xbmc, they should be in versioned docdir
rm -r %{buildroot}/%{_datadir}/doc/
# copy manpages
install -m 644 -D docs/manpages/kodi-standalone.1 %{buildroot}%{_mandir}/man1/kodi-standalone.1
install -m 644 -D docs/manpages/kodi.bin.1 %{buildroot}%{_mandir}/man1/kodi.1
%suse_update_desktop_file kodi Multimedia
%fdupes -s %{buildroot}
%post
%if 0%{?suse_version} >= 1140
%desktop_database_post
%icon_theme_cache_post
%endif
%postun
%if 0%{?suse_version} >= 1140
%desktop_database_postun
%icon_theme_cache_postun
%endif
%files
%defattr(-,root,root)
%doc copying.txt LICENSE.GPL docs/README.linux
%{_bindir}/kodi
%{_bindir}/xbmc
%{_bindir}/kodi-standalone
%{_bindir}/xbmc-standalone
%{_libdir}/kodi
%{_libdir}/xbmc
%{_datadir}/xsessions/kodi.desktop
%{_datadir}/xsessions/xbmc.desktop
%{_datadir}/applications/kodi.desktop
%{_datadir}/icons/hicolor/*/*/*.png
%{_mandir}/man1/kodi-standalone.1.gz
%{_mandir}/man1/kodi.1.gz
%{_datadir}/kodi
%{_datadir}/xbmc
%if 0
%dir %{_datadir}/kodi
%{_datadir}/xbmc
%dir %{_datadir}/kodi/addons
%{_datadir}/kodi/addons/audioencoder.xbmc.builtin.wma
%{_datadir}/kodi/addons/audioencoder.xbmc.builtin.aac
%{_datadir}/kodi/addons/metadata.album.universal
%{_datadir}/kodi/addons/metadata.artists.universal
%{_datadir}/kodi/addons/metadata.common.allmusic.com
%{_datadir}/kodi/addons/metadata.common.fanart.tv
# % {_datadir}/kodi/addons/metadata.common.htbackdrops.com
%{_datadir}/kodi/addons/metadata.common.imdb.com
%{_datadir}/kodi/addons/metadata.common.musicbrainz.org
%{_datadir}/kodi/addons/metadata.common.theaudiodb.com
%{_datadir}/kodi/addons/metadata.common.themoviedb.org
%{_datadir}/kodi/addons/metadata.local
%{_datadir}/kodi/addons/metadata.themoviedb.org
%{_datadir}/kodi/addons/metadata.tvdb.com
%{_datadir}/kodi/addons/repository.xbmc.org
%{_datadir}/kodi/addons/resource.images.weathericons.default
%{_datadir}/kodi/addons/service.xbmc.versioncheck
%{_datadir}/kodi/addons/screensaver.*
%{_datadir}/kodi/addons/script.module.pil
# % {_datadir}/kodi/addons/skin.confluence
%{_datadir}/kodi/addons/webinterface.default
%{_datadir}/kodi/addons/kodi.adsp
%{_datadir}/kodi/addons/xbmc.addon
%{_datadir}/kodi/addons/xbmc.codec
%{_datadir}/kodi/addons/xbmc.core
%{_datadir}/kodi/addons/xbmc.gui
%{_datadir}/kodi/addons/xbmc.json
%{_datadir}/kodi/addons/xbmc.metadata
%{_datadir}/kodi/addons/xbmc.pvr
%{_datadir}/kodi/addons/xbmc.python
%{_datadir}/kodi/addons/kodi.audiodecoder
%{_datadir}/kodi/addons/kodi.guilib
%{_datadir}/kodi/addons/kodi.resource
%{_datadir}/kodi/addons/resource.language.en_gb
# % {_datadir}/kodi/addons/resource.uisounds.confluence
%{_datadir}/kodi/addons/xbmc.audioencoder
%{_datadir}/kodi/addons/xbmc.webinterface
# % dir % {_datadir}/kodi/addons/library.kodi.adsp
# % dir % {_datadir}/kodi/addons/library.kodi.audioengine
# % dir % {_datadir}/kodi/addons/library.kodi.guilib
# % dir % {_datadir}/kodi/addons/library.xbmc.addon
# % dir % {_datadir}/kodi/addons/library.xbmc.codec
# % dir % {_datadir}/kodi/addons/library.xbmc.pvr
%{_datadir}/kodi/media
%{_datadir}/kodi/system
%{_datadir}/kodi/userdata
%{_datadir}/kodi/addons/game.controller.default
%{_datadir}/kodi/addons/kodi.game
%{_datadir}/kodi/addons/kodi.inputstream
%{_datadir}/kodi/addons/kodi.peripheral
%{_datadir}/kodi/addons/resource.uisounds.kodi
%{_datadir}/kodi/addons/skin.estouchy
%{_datadir}/kodi/privacy-policy.txt
%endif
%files devel
%defattr(-,root,root)
%{_includedir}/kodi
%{_includedir}/xbmc
# % {_datadir}/kodi/addons/library.xbmc.addon/dlfcn-win32.cpp
# % {_datadir}/kodi/addons/library.xbmc.addon/dlfcn-win32.h
# % {_datadir}/kodi/addons/library.xbmc.codec/libXBMC_codec.h
# % {_datadir}/kodi/addons/library.xbmc.addon/libXBMC_addon.h
# % {_datadir}/kodi/addons/library.xbmc.pvr/libXBMC_pvr.h
# % {_datadir}/kodi/addons/library.kodi.adsp/libKODI_adsp.h
# % {_datadir}/kodi/addons/library.kodi.audioengine/libKODI_audioengine.h
# % {_datadir}/kodi/addons/library.kodi.guilib/libKODI_guilib.h
%changelog