%bcond_without avahi # Avahi support
%bcond_without dbus # DBUS support
%bcond_without dvdcss # DVDCSS support
-%bcond_without fishbmc # FishBMC visualisation
%bcond_without gl # OpenGL rendering
-%bcond_without goom # GOOM visualisation
%bcond_with gtest # configure Google Test Framework
%bcond_without joystick # SDL joystick support
%bcond_without libcap # libcap support
%bcond_with libcec # libcec support
+%bcond_without libgif # gif support via libgif
%bcond_without libusb # libusb support
%bcond_with mdnsembedded # mDNSEmbedded support
%bcond_without mysql # MySQL
%bcond_without optical_drive # optical drive
%bcond_without projectm # ProjectM visualisation
%bcond_without pulse # PulseAudio support
-%bcond_without rsxs # really slick X screensavers
%bcond_without rtmp # RTMP support via librtmp
%bcond_without samba # SAMBA support
%bcond_without sdl # SDL
-%bcond_without spectrum # Spectrum visualisation
%bcond_without ssh # SSH SFTP support
%bcond_without texturepacker # texturepacker support
%bcond_without udev # udev support
%bcond_without vaapi # VAAPI decoding
%bcond_without vdpau # VDPAU decoding
%bcond_with vtbdecoder # VTBDecoder decoding (VTB Decoder not supported on this platform)
-%bcond_without waveform # Waveform visualisation
%bcond_without webserver # webserver
%bcond_without x11 # x11 'Linux Only'
%bcond_without xrandr # XRandR support
%bcond_with wayland # wayland
# System libs:
%bcond_without system_ffmpeg # build with system ffmpeg
-%bcond_without system_dvdread # build with system dvdread
+%bcond_with system_dvdread # build with system dvdread
-%define codename Isengard
+%define codename Leia
+%define subver rc1
Summary: Kodi is a free and open source media-player and entertainment hub
Name: kodi
-Version: 15.0
-Release: 1
+Version: 18.0
+Release: 0.1
License: GPL v2+ and GPL v3+
Group: Applications/Multimedia
-Source0: http://mirrors.kodi.tv/releases/source/%{version}-%{codename}.tar.gz
-# Source0-md5: d3bd3dc9fd705bcf59d8c91199994537
-Source1: https://github.com/xbmc/FFmpeg/archive/2.6.3-%{codename}.tar.gz
-# Source1-md5: 31c6cd81c44cce93358b6d9357772aec
+#Source0: http://mirrors.kodi.tv/releases/source/%{version}-%{codename}.tar.gz
+Source0: https://github.com/xbmc/xbmc/archive/%{version}%{subver}-%{codename}.tar.gz
+# Source0-md5: 150a7fffc5ca611904005ba6445c7bf4
Patch0: jpeglib-boolean.patch
Patch1: disable-static.patch
Patch2: dvdread.patch
+Patch3: ffmpeg3.patch
+Patch4: gcc5.patch
+Patch5: libdvd.patch
URL: http://kodi.tv/
-BuildRequires: Mesa-libGLU-devel
+BuildRequires: Mesa-libEGL-devel
+BuildRequires: OpenGL-GLU-devel
BuildRequires: OpenGL-devel
BuildRequires: SDL2-devel
-BuildRequires: SDL_image-devel
-BuildRequires: SDL_mixer-devel
BuildRequires: alsa-lib-devel
-BuildRequires: autoconf
-BuildRequires: automake
BuildRequires: avahi-devel
BuildRequires: bluez-libs-devel >= 4.99
-BuildRequires: boost-devel
BuildRequires: bzip2-devel
-BuildRequires: cmake
+BuildRequires: cmake >= 3.4
+BuildRequires: crossguid-devel
BuildRequires: curl-devel
BuildRequires: dbus-devel
-BuildRequires: doxygen
+BuildRequires: libfmt-devel >= 3.0.1
+BuildRequires: rapidjson-devel >= 1.1.0
+# libavcodec >= 56.26.100 libavfilter >= 5.11.102 libavformat >= 56.25.101 libavutil >= 54.20.100 libpostproc >= 53.3.100 libswscale >= 3.1.101 libswresample >= 1.1.100
%{?with_system_ffmpeg:BuildRequires: ffmpeg-devel >= 2.4.4}
BuildRequires: flac-devel
+BuildRequires: flatbuffers-devel >= 1.9.0
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: fribidi-devel
BuildRequires: gettext-autopoint
BuildRequires: gettext-tools
BuildRequires: giflib-devel
-BuildRequires: glew-devel
+%{?with_libgif:BuildRequires: giflib-devel}
BuildRequires: gperf
-BuildRequires: jasper-devel
BuildRequires: jre
+BuildRequires: lcms2-devel
BuildRequires: libass-devel
-BuildRequires: libbluray-devel >= 0.2.1
+BuildRequires: libatomic-devel
+BuildRequires: libbluray-devel >= 0.7.0
BuildRequires: libcap-devel
BuildRequires: libcdio-devel
-%{?with_libcec:BuildRequires: libcec-devel}
+%{?with_libcec:BuildRequires: libcec-devel >= 3.0.0}
+BuildRequires: libdrm-devel
+BuildRequires: libdvdcss-devel >= 1.4.1
%{?with_system_dvdread:BuildRequires: libdvdread-devel}
-%ifarch i686 pentium4 athlon %{x8664}
-BuildRequires: libcrystalhd-devel
-%endif
BuildRequires: libgcrypt-devel
BuildRequires: libjpeg-devel
BuildRequires: libltdl-devel
-BuildRequires: libmad-devel
-BuildRequires: libmicrohttpd-devel
-BuildRequires: libmodplug-devel
-BuildRequires: libmpeg2-devel
+BuildRequires: libmicrohttpd-devel >= 0.9.40
BuildRequires: libogg-devel
BuildRequires: libplist-devel
BuildRequires: libpng-devel
BuildRequires: librtmp-devel
-BuildRequires: libsamplerate-devel
BuildRequires: libsmbclient-devel
BuildRequires: libssh-devel
-BuildRequires: libtiff-devel
+BuildRequires: libstdc++-devel
BuildRequires: libtool
+BuildRequires: libuuid-devel
BuildRequires: libva-devel
-BuildRequires: libva-glx-devel
+BuildRequires: libva-x11-devel
BuildRequires: libvdpau-devel
BuildRequires: libvorbis-devel
+BuildRequires: libxml2-devel >= 2.0
BuildRequires: libxslt-devel
BuildRequires: lzo-devel
BuildRequires: mysql-devel
%ifarch %{ix86}
BuildRequires: nasm
%endif
+BuildRequires: fstrcmp-devel >= 0.7
BuildRequires: openssl-devel
BuildRequires: pcre-cxx-devel
BuildRequires: pkgconfig
-BuildRequires: pulseaudio-devel
-BuildRequires: python-devel >= 2.4
+BuildRequires: pulseaudio-devel >= 1.0
+BuildRequires: python-devel >= 1:2.6
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.566
BuildRequires: sed >= 4.0
BuildRequires: sqlite3-devel
BuildRequires: swig
BuildRequires: taglib-devel >= 1.8
-BuildRequires: tinyxml-devel
+BuildRequires: tinyxml-devel >= 2.6.2
BuildRequires: udev-devel
BuildRequires: unzip
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXext-devel
-BuildRequires: xorg-lib-libXinerama-devel
-BuildRequires: xorg-lib-libXmu-devel
BuildRequires: xorg-lib-libXrandr-devel
-BuildRequires: xorg-lib-libXt-devel
-BuildRequires: xorg-lib-libXtst-devel
-BuildRequires: yajl-devel
-BuildRequires: yasm
+BuildRequires: yajl-devel >= 2
BuildRequires: zip
BuildRequires: zlib-devel
# kodi uses it's own, modified squish
BuildConflicts: squish-devel
#https://github.com/sahlberg/libnfs
-#BuildRequires: libnfs-devel
+BuildRequires: libnfs-devel
#http://sites.google.com/site/alexthepuffin/home
#BuildRequires: afpfs-ng-devel
-#http://mirrors.xbmc.org/build-deps/darwin-libs/libshairport-1.2.0.20310_lib.tar.gz
-#https://github.com/albertz/shairport
-#BuildRequires: libshairport
+#BuildRequires: shairplay-devel
Requires: /usr/bin/glxinfo
Requires: SDL >= 1.2.14-5
Requires: lsb-release
Obsoletes: xbmc < 14.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# extracting debug info from /home/users/glen/tmp/kodi-18.0-root-glen/usr/lib64/kodi/kodi-x11
+# /usr/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character
+%define _noautostrip kodi-x11
+%define _enable_debug_packages 0
+
%description
Kodi Entertainment Center (formerly XBMC) is a free and open-source
media player software developed by the XBMC Foundation, a non-profit
all common digital media files from local and network storage media.
%prep
-%setup -q -n xbmc-%{version}-%{codename}
-%patch0 -p1
+%setup -q -n xbmc-%{version}%{?subver}-%{codename}
+#%patch0 -p1
%patch1 -p1
%{?with_system_dvdread:%patch2 -p1}
+#%patch3 -p1
+#%patch4 -p1
+%patch5 -p1
-rm -r lib/cximage-6.0/zlib
-#rm -r lib/libhdhomerun
-rm -r lib/libmpeg2
-rm -r xbmc/cores/dvdplayer/DVDCodecs/Video/libmpeg2
-rm -r lib/libbluray
-rm -r lib/librtmp
-rm -r lib/win32
-%{?with_system_dvdread:rm -r lib/libdvd/libdvdread}
+#%{__rm} -r lib/cximage-6.0/zlib
+#%{__rm} -r lib/libhdhomerun
+#%{__rm} -r lib/libmpeg2
+#%{__rm} -r xbmc/cores/dvdplayer/DVDCodecs/Video/libmpeg2
+#%{__rm} -r lib/libbluray
+#%{__rm} -r lib/librtmp
+%{__rm} -r lib/win32
+#%{?with_system_dvdread:%{__rm} -r lib/libdvd/libdvdread}
%if %{without system_ffmpeg}
-ln -s %{SOURCE1} tools/depends/target/ffmpeg/ffmpeg-2.4.4-%{codename}.tar.gz
+#ln -s %{SOURCE1} tools/depends/target/ffmpeg/ffmpeg-2.4.4-%{codename}.tar.gz
%endif
%build
-./bootstrap
+install -d build
+cd build
+# cmake not picking up include path from pkgconfig
+# https://trac.kodi.tv/ticket/16861
+%define specflags -I/usr/include/freetype2
+%cmake \
+ -DENABLE_INTERNAL_LIBDVD=OFF \
+ -DENABLE_INTERNAL_CROSSGUID=OFF \
+ -DENABLE_DVDCSS=%{__true_false dvdcss} \
+ -DENABLE_UPNP=%{__true_false upnp} \
+ -DENABLE_AIRTUNES=%{__true_false airtunes} \
+ -DENABLE_OPTICAL=%{__true_false optical_drive} \
+ -DENABLE_INTERNAL_FFMPEG=%{!?with_system_ffmpeg:ON}%{?with_system_ffmpeg:OFF} \
+ ..
+%if 0
%configure \
+ ac_cv_type__Bool=yes \
--disable-silent-rules \
--disable-debug \
--disable-ccache \
--with-ffmpeg=%{!?with_system_ffmpeg:force}%{?with_system_ffmpeg:shared} \
%{__enable_disable afpclient} \
%{__enable_disable airplay} \
- %{__enable_disable airtunes} \
%{__enable_disable alsa} \
%{__enable_disable asap_codec asap-codec} \
%{__enable_disable avahi} \
%{__enable_disable dbus} \
- %{__enable_disable dvdcss} \
- %{__enable_disable fishbmc} \
%{__enable_disable gles} \
%{__enable_disable gl} \
- %{__enable_disable goom} \
%{__enable_disable gtest} \
%{__enable_disable joystick} \
%{__enable_disable libbluray} \
%{__enable_disable libcap} \
%{__enable_disable libcec} \
+ %{__enable_disable libgif} \
%{__enable_disable libusb} \
%{__enable_disable mdnsembedded} \
%{__enable_disable mid} \
%{__enable_disable nfs} \
%{__enable_disable non_free non-free} \
%{__enable_disable openmax} \
- %{__enable_disable optical_drive optical-drive} \
%{__enable_disable profiling} \
- %{__enable_disable projectm} \
%{__enable_disable pulse} \
- %{__enable_disable rsxs} \
%{__enable_disable rtmp} \
%{__enable_disable samba} \
%{__enable_disable sdl} \
- %{__enable_disable spectrum} \
%{__enable_disable ssh} \
%{__enable_disable tegra} \
%{__enable_disable texturepacker} \
%{__enable_disable vaapi} \
%{__enable_disable vdpau} \
%{__enable_disable vtbdecoder} \
- %{__enable_disable waveform} \
%{__enable_disable wayland} \
%{__enable_disable webserver} \
%{__enable_disable x11} \
%{__enable_disable xrandr} \
%{nil}
+%endif
-%{__make} V=1
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
+%{__rm} $RPM_BUILD_ROOT%{_docdir}/{version.txt,README.Linux.md,LICENSE.md}
+
+# not packaged
+%{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/kodi-*.xml
# no -devel package yet
%{__rm} -r $RPM_BUILD_ROOT%{_includedir}/kodi
-%{__rm} -r $RPM_BUILD_ROOT%{_includedir}/xbmc
-
-# no real use for symlinks to datadir, and make rpm packaging more difficult (symlink vs dir issues)
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/xbmc
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/xbmc
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README.md docs/README.linux
+%doc README.md docs/README.Linux.md
+%attr(755,root,root) %{_bindir}/TexturePacker
%attr(755,root,root) %{_bindir}/kodi
%attr(755,root,root) %{_bindir}/kodi-standalone
%{_datadir}/%{name}
%{_desktopdir}/kodi.desktop
%{_iconsdir}/hicolor/*/apps/%{name}.png
%{_datadir}/xsessions/kodi.desktop
-
-# legacy xbmc compatibility links
-%attr(755,root,root) %{_bindir}/xbmc
-%attr(755,root,root) %{_bindir}/xbmc-standalone
-%{_datadir}/xsessions/xbmc.desktop