#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.6 Release: 99%{?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-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/ %clean [ "%{buildroot}" != "/" ] && [ -d "%{buildroot}" ] && rm -rf %{buildroot} %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 * Fri Feb 23 2018 Daniel Steiner - 17.6-2 - OpenGL '--gl' deleted (disabled) * Wed Oct 25 2017 Daniel Steiner - 17.5-1 - Updated to Kodi 17.5 * Sat Sep 2 2017 Daniel Steiner - 17.4-1 - Updated to Kodi 17.4 * Tue Jul 18 2017 Daniel Steiner - 17.3-1 - Kodi 17.3 final for Fedora 26