436 lines
12 KiB
RPMSpec
436 lines
12 KiB
RPMSpec
#global PRERELEASE rc4
|
|
%global DIRVERSION %{version}
|
|
#global GITCOMMIT Gotham_r2-ge988513
|
|
# use the line below for pre-releases
|
|
#global DIRVERSION %{version}%{PRERELEASE}
|
|
%global _hardened_build 1
|
|
%global _with_dvd 0
|
|
|
|
Name: kodi
|
|
Version: 17.4
|
|
Release: 1%{?dist}
|
|
Summary: Media center
|
|
|
|
License: GPLv2+ and GPLv3+ and LGPLv2+ and BSD and MIT
|
|
# Main binary and all supporting files are GPLv2+/GPLv3+
|
|
# Some supporting libraries use the LGPL / BSD / MIT license
|
|
Group: Applications/Multimedia
|
|
URL: http://www.kodi.tv/
|
|
Source0: %{name}-%{DIRVERSION}-patched.tar.xz
|
|
# kodi contains code that we cannot ship, as well as redundant private
|
|
# copies of upstream libraries that we already distribute. Therefore
|
|
# we use this script to remove the code before shipping it.
|
|
# Invoke this script while in the directory where the tarball is located:
|
|
# ./kodi-generate-tarball-xz.sh
|
|
Source1: kodi-generate-tarball-xz.sh
|
|
|
|
%if 0%{?_with_dvd}
|
|
# kodi uses modified libdvd{css,nav,read} source and downloads at build time
|
|
# wget -O kodi-libdvdnav-master.tar.gz https://github.com/xbmc/libdvdnav/archive/master.tar.gz
|
|
Source2: kodi-libdvdnav-master.tar.gz
|
|
# wget -O kodi-libdvdread-master.tar.gz https://github.com/xbmc/libdvdread/archive/master.tar.gz
|
|
Source3: kodi-libdvdread-master.tar.gz
|
|
# wget -O kodi-libdvdcss-master.tar.gz https://github.com/xbmc/libdvdcss/archive/master.tar.gz
|
|
Source4: kodi-libdvdcss-master.tar.gz
|
|
%endif
|
|
|
|
# Set program version parameters
|
|
Patch1: kodi-16.0-versioning.patch
|
|
|
|
# Drop DVD library support
|
|
Patch2: kodi-17a2-libdvd.patch
|
|
|
|
# Problem with variable definitions in FTPParse module:
|
|
Patch3: kodi-ftpparse.patch
|
|
|
|
# Optional deps (not in EPEL)
|
|
%if 0%{?fedora}
|
|
# (libbluray in EPEL 6 is too old.)
|
|
%global _with_libbluray 1
|
|
%global _with_cwiid 1
|
|
%global _with_libssh 1
|
|
%global _with_libcec 1
|
|
%global _with_external_ffmpeg 1
|
|
%global _with_wayland 0
|
|
%endif
|
|
|
|
%ifarch x86_64 i686
|
|
%global _with_crystalhd 1
|
|
%endif
|
|
|
|
# Upstream does not support ppc64
|
|
# ARM support is restricted to one GPU per build
|
|
ExclusiveArch: i686 x86_64
|
|
|
|
BuildRequires: SDL2-devel
|
|
BuildRequires: SDL_image-devel
|
|
BuildRequires: a52dec-devel
|
|
BuildRequires: afpfs-ng-devel
|
|
BuildRequires: avahi-devel
|
|
BuildRequires: bluez-libs-devel
|
|
BuildRequires: boost-devel
|
|
BuildRequires: bzip2-devel
|
|
BuildRequires: cmake
|
|
BuildRequires: crossguid-devel
|
|
%if 0%{?_with_cwiid}
|
|
BuildRequires: cwiid-devel
|
|
%endif
|
|
BuildRequires: dbus-devel
|
|
BuildRequires: desktop-file-utils
|
|
BuildRequires: e2fsprogs-devel
|
|
BuildRequires: enca-devel
|
|
BuildRequires: expat-devel
|
|
BuildRequires: faad2-devel
|
|
%if 0%{?_with_external_ffmpeg}
|
|
BuildRequires: ffmpeg-devel
|
|
%endif
|
|
BuildRequires: flac-devel
|
|
BuildRequires: flex
|
|
BuildRequires: fontconfig-devel
|
|
BuildRequires: fontpackages-devel
|
|
BuildRequires: freetype-devel
|
|
BuildRequires: fribidi-devel
|
|
%if 0%{?el6}
|
|
BuildRequires: gettext-devel
|
|
%else
|
|
BuildRequires: gettext-autopoint
|
|
%endif
|
|
BuildRequires: glew-devel
|
|
BuildRequires: glib2-devel
|
|
BuildRequires: gperf
|
|
BuildRequires: jasper-devel
|
|
BuildRequires: java-devel
|
|
BuildRequires: lame-devel
|
|
BuildRequires: lcms2-devel
|
|
BuildRequires: libXinerama-devel
|
|
BuildRequires: libXmu-devel
|
|
BuildRequires: libXtst-devel
|
|
BuildRequires: libass-devel >= 0.9.7
|
|
%if 0%{?_with_libbluray}
|
|
BuildRequires: libbluray-devel
|
|
%endif
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: libcdio-devel
|
|
%if 0%{?_with_libcec}
|
|
%if 0%{?fedora} > 24
|
|
BuildRequires: libcec-devel >= 4.0.0
|
|
%else
|
|
BuildRequires: libcec-devel < 4.0.0
|
|
%endif
|
|
%endif
|
|
%if 0%{?_with_crystalhd}
|
|
BuildRequires: libcrystalhd-devel
|
|
%endif
|
|
BuildRequires: libcurl-devel
|
|
BuildRequires: libdca-devel
|
|
%if 0%{?el6}
|
|
BuildRequires: libjpeg-devel
|
|
%else
|
|
BuildRequires: libjpeg-turbo-devel
|
|
%endif
|
|
BuildRequires: libmad-devel
|
|
BuildRequires: libmicrohttpd-devel
|
|
BuildRequires: libmms-devel
|
|
BuildRequires: libmodplug-devel
|
|
BuildRequires: libmpcdec-devel
|
|
BuildRequires: libmpeg2-devel
|
|
BuildRequires: libnfs-devel
|
|
BuildRequires: libogg-devel
|
|
# for AirPlay support
|
|
BuildRequires: shairplay-devel
|
|
BuildRequires: libplist-devel
|
|
BuildRequires: libpng-devel
|
|
BuildRequires: librtmp-devel
|
|
BuildRequires: libsamplerate-devel
|
|
BuildRequires: libsmbclient-devel
|
|
%if 0%{?_with_libssh}
|
|
BuildRequires: libssh-devel
|
|
%endif
|
|
BuildRequires: libtiff-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: libuuid-devel
|
|
%ifnarch %{arm}
|
|
BuildRequires: libva-devel
|
|
BuildRequires: libvdpau-devel
|
|
%endif
|
|
BuildRequires: libvorbis-devel
|
|
%if 0%{?_with_wayland}
|
|
BuildRequires: libwayland-client-devel
|
|
%endif
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libxslt-devel
|
|
BuildRequires: lzo-devel
|
|
BuildRequires: mariadb-devel
|
|
# ARM uses GLES
|
|
%ifarch %{arm}
|
|
BuildRequires: mesa-libEGL-devel
|
|
BuildRequires: mesa-libGLES-devel
|
|
%endif
|
|
BuildRequires: nasm
|
|
BuildRequires: pcre-devel
|
|
BuildRequires: pixman-devel
|
|
BuildRequires: pulseaudio-libs-devel
|
|
BuildRequires: python-devel
|
|
BuildRequires: python-pillow
|
|
BuildRequires: sqlite-devel
|
|
BuildRequires: swig
|
|
BuildRequires: systemd-devel
|
|
BuildRequires: taglib-devel >= 1.8
|
|
BuildRequires: tinyxml-devel
|
|
BuildRequires: tre-devel
|
|
BuildRequires: trousers-devel
|
|
BuildRequires: wavpack-devel
|
|
%if 0%{?_with_wayland}
|
|
BuildRequires: weston-devel
|
|
%endif
|
|
BuildRequires: yajl-devel
|
|
BuildRequires: zlib-devel
|
|
|
|
Requires: dejavu-sans-fonts
|
|
# need explicit requires for these packages
|
|
# as they are dynamically loaded via XBMC's arcane
|
|
# pseudo-DLL loading scheme (sigh)
|
|
%if 0%{?_with_libbluray}
|
|
Requires: libbluray%{?_isa}
|
|
%endif
|
|
%if 0%{?_with_libcec}
|
|
%if 0%{?fedora} > 24
|
|
Requires: libcec%{?_isa} >= 4.0.0
|
|
%else
|
|
Requires: libcec%{?_isa} < 4.0.0
|
|
%endif
|
|
%endif
|
|
%if 0%{?_with_crystalhd}
|
|
Requires: libcrystalhd%{?_isa}
|
|
%endif
|
|
Requires: libmad%{?_isa}
|
|
Requires: librtmp%{?_isa}
|
|
Requires: shairplay-libs%{?_isa}
|
|
|
|
# needed when doing a minimal install, see
|
|
# https://bugzilla.rpmfusion.org/show_bug.cgi?id=1844
|
|
Requires: glx-utils
|
|
Requires: xorg-x11-utils
|
|
|
|
# This is just symlinked to, but needed both at build-time
|
|
# and for installation
|
|
Requires: python-pillow%{?_isa}
|
|
|
|
|
|
%description
|
|
Kodi is a free cross-platform media-player jukebox and entertainment hub.
|
|
Kodi can play a spectrum of of multimedia formats, and featuring playlist,
|
|
audio visualizations, slideshow, and weather forecast functions, together
|
|
third-party plugins.
|
|
|
|
|
|
%package devel
|
|
Summary: Development files needed to compile C programs against kodi
|
|
Group: Development/Libraries
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Obsoletes: xbmc-devel < 14.0
|
|
Provides: xbmc-devel = %{version}
|
|
|
|
%description devel
|
|
Kodi is a free cross-platform media-player jukebox and entertainment hub.
|
|
If you want to develop programs which use Kodi's libraries, you need to
|
|
install this package.
|
|
|
|
|
|
%package eventclients
|
|
Summary: Media center event client remotes
|
|
Obsoletes: xbmc-eventclients < 14.0
|
|
Provides: xbmc-eventclients = %{version}
|
|
|
|
%description eventclients
|
|
This package contains support for using Kodi with the PS3 Remote, the Wii
|
|
Remote, a J2ME based remote and the command line xbmc-send utility.
|
|
|
|
%package eventclients-devel
|
|
Summary: Media center event client remotes development files
|
|
Requires: %{name}-eventclients%{?_isa} = %{version}-%{release}
|
|
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
|
Obsoletes: xbmc-eventclients-devel < 14.0
|
|
Provides: xbmc-eventclients-devel = %{version}
|
|
|
|
%description eventclients-devel
|
|
This package contains the development header files for the eventclients
|
|
library.
|
|
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{DIRVERSION}
|
|
%patch1 -p1 -b.versioning
|
|
%if 0%{?_with_dvd}
|
|
cp -p %{SOURCE2} tools/depends/target/libdvdnav/libdvdnav-master.tar.gz
|
|
cp -p %{SOURCE3} tools/depends/target/libdvdread/libdvdread-master.tar.gz
|
|
cp -p %{SOURCE4} tools/depends/target/libdvdcss/libdvdcss-master.tar.gz
|
|
%else
|
|
%patch2 -p1 -b.libdvd
|
|
%endif
|
|
#%patch3 -p0 -b.ftpparse
|
|
|
|
|
|
%build
|
|
chmod +x bootstrap
|
|
./bootstrap
|
|
# Can't use export nor %%configure (implies using export), because
|
|
# the Makefile pile up *FLAGS in this case.
|
|
|
|
./configure \
|
|
--prefix=%{_prefix} --bindir=%{_bindir} --includedir=%{_includedir} \
|
|
--libdir=%{_libdir} --datadir=%{_datadir} \
|
|
--with-lirc-device=/var/run/lirc/lircd \
|
|
%if 0%{?_with_external_ffmpeg}
|
|
--with-ffmpeg=shared \
|
|
%endif
|
|
%if 0%{?_with_wayland}
|
|
--enable-wayland \
|
|
%endif
|
|
--enable-pulse \
|
|
%if 0%{?_with_libcec}
|
|
--enable-libcec \
|
|
%else
|
|
--disable-libcec \
|
|
%endif
|
|
%if 0%{?_with_libssh}
|
|
--enable-ssh \
|
|
%else
|
|
--disable-ssh \
|
|
%endif
|
|
%if ! 0%{?_with_dvd}
|
|
--disable-optical-drive \
|
|
%endif
|
|
--disable-optimizations --disable-debug \
|
|
%ifnarch %{arm}
|
|
--enable-gl \
|
|
--disable-gles \
|
|
--enable-vdpau \
|
|
%else
|
|
--enable-gl \
|
|
--enable-gles \
|
|
--enable-vdpau \
|
|
--enable-vaapi \
|
|
%ifarch armv7hl \
|
|
--enable-tegra \
|
|
%endif
|
|
%endif
|
|
CFLAGS="$RPM_OPT_FLAGS -fPIC -I/usr/include/afpfs-ng/ -I/usr/include/samba-4.0/ -D__STDC_CONSTANT_MACROS" \
|
|
CXXFLAGS="$RPM_OPT_FLAGS -fPIC -I/usr/include/afpfs-ng/ -I/usr/include/samba-4.0/ -D__STDC_CONSTANT_MACROS" \
|
|
LDFLAGS="$RPM_LD_FLAGS -fPIC" \
|
|
ASFLAGS=-fPIC
|
|
|
|
make %{?_smp_mflags} V=1
|
|
|
|
|
|
%install
|
|
rm -rf $RPM_BUILD_ROOT
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
make -C tools/EventClients DESTDIR=$RPM_BUILD_ROOT install
|
|
# remove the doc files from unversioned /usr/share/doc/xbmc, they should be in versioned docdir
|
|
rm -r $RPM_BUILD_ROOT/%{_datadir}/doc/
|
|
|
|
desktop-file-install \
|
|
--dir=${RPM_BUILD_ROOT}%{_datadir}/applications \
|
|
$RPM_BUILD_ROOT%{_datadir}/applications/kodi.desktop
|
|
|
|
# Stop shipping the duplicate xsession file
|
|
rm -f $RPM_BUILD_ROOT/%{_datadir}/xsessions/xbmc.desktop
|
|
|
|
# Normally we are expected to build these manually. But since we are using
|
|
# the system Python interpreter, we also want to use the system libraries
|
|
install -d $RPM_BUILD_ROOT%{_libdir}/kodi/addons/script.module.pil/lib
|
|
ln -s %{python_sitearch}/PIL $RPM_BUILD_ROOT%{_libdir}/kodi/addons/script.module.pil/lib/PIL
|
|
#install -d $RPM_BUILD_ROOT%{_libdir}/xbmc/addons/script.module.pysqlite/lib
|
|
#ln -s %{python_sitearch}/pysqlite2 $RPM_BUILD_ROOT%{_libdir}/xbmc/addons/script.module.pysqlite/lib/pysqlite2
|
|
|
|
# Use external font files instead of bundled ones
|
|
ln -sf %{_fontbasedir}/dejavu/DejaVuSans-Bold.ttf ${RPM_BUILD_ROOT}%{_datadir}/kodi/addons/skin.estouchy/fonts/
|
|
|
|
# Move man-pages into system dir
|
|
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/
|
|
mv docs/manpages ${RPM_BUILD_ROOT}%{_mandir}/man1/
|
|
|
|
|
|
%post
|
|
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
|
|
|
|
|
%postun
|
|
if [ $1 -eq 0 ] ; then
|
|
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
|
|
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|
fi
|
|
|
|
|
|
%posttrans
|
|
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|
if [ ! -L %{_libdir}/xbmc ] ; then
|
|
if [ -d %{_libdir}/xbmc ] ; then
|
|
rmdir %{_libdir}/xbmc %{_datadir}/xbmc
|
|
fi
|
|
ln -s kodi ${RPM_BUILD_ROOT}%{_libdir}/xbmc
|
|
ln -s kodi ${RPM_BUILD_ROOT}%{_datadir}/xbmc
|
|
fi
|
|
|
|
|
|
%posttrans devel
|
|
if [ ! -L %{_includedir}/xbmc ] ; then
|
|
if [ -d %{_includedir}/xbmc ] ; then
|
|
rmdir %{_includedir}/xbmc
|
|
fi
|
|
ln -s kodi ${RPM_BUILD_ROOT}%{_includedir}/xbmc
|
|
fi
|
|
|
|
|
|
%files
|
|
%license copying.txt LICENSE.GPL
|
|
%doc CONTRIBUTING.md README.md docs
|
|
%{_bindir}/kodi
|
|
%{_bindir}/kodi-standalone
|
|
%{_bindir}/xbmc
|
|
%{_bindir}/xbmc-standalone
|
|
%{_libdir}/kodi
|
|
%ghost %{_libdir}/xbmc
|
|
%{_datadir}/kodi
|
|
%ghost %{_datadir}/xbmc
|
|
%{_datadir}/xsessions/kodi.desktop
|
|
%{_datadir}/applications/kodi.desktop
|
|
%{_datadir}/icons/hicolor/*/*/*.png
|
|
%{_mandir}/man1/kodi.1.gz
|
|
%{_mandir}/man1/kodi.bin.1.gz
|
|
%{_mandir}/man1/kodi-standalone.1.gz
|
|
|
|
|
|
%files devel
|
|
%{_includedir}/kodi
|
|
%ghost %{_includedir}/xbmc
|
|
|
|
|
|
%files eventclients
|
|
%license copying.txt LICENSE.GPL
|
|
%python_sitelib/kodi
|
|
%dir %{_datadir}/pixmaps/kodi
|
|
%{_datadir}/pixmaps/kodi/*.png
|
|
%{_bindir}/kodi-ps3d
|
|
%{_bindir}/kodi-ps3remote
|
|
%{_bindir}/kodi-send
|
|
%{_bindir}/kodi-wiiremote
|
|
%{_mandir}/man1/kodi-ps3remote.1.gz
|
|
%{_mandir}/man1/kodi-send.1.gz
|
|
%{_mandir}/man1/kodi-standalone.1.gz
|
|
%{_mandir}/man1/kodi-wiiremote.1.gz
|
|
|
|
|
|
%files eventclients-devel
|
|
%{_includedir}/kodi/xbmcclient.h
|
|
|
|
|
|
%changelog
|
|
* Sat Sep 2 2017 Daniel Steiner <dsteiner@redhat.com> - 17.4-1
|
|
- Updated to Kodi 17.4
|
|
|
|
* Tue Jul 18 2017 Daniel Steiner <dsteiner@redhat.com> - 17.3-1
|
|
- Kodi 17.3 final for Fedora 26
|
|
|