diff options
author | Michael Cronenworth <mike@cchtml.com> | 2014-08-24 17:15:15 -0500 |
---|---|---|
committer | Michael Cronenworth <mike@cchtml.com> | 2014-08-24 17:15:15 -0500 |
commit | 8ea1fdeff3596828d1372156b9d48b088d6dbf7a (patch) | |
tree | c7097a709c8fcbc12b7be78a6795f2ca08a39b28 /kodi.spec | |
parent | 0e2b160ba2c3cffbcca413ccf231048dc0dc6060 (diff) | |
download | xbmc-rpm-8ea1fdeff3596828d1372156b9d48b088d6dbf7a.tar.gz xbmc-rpm-8ea1fdeff3596828d1372156b9d48b088d6dbf7a.tar.xz xbmc-rpm-8ea1fdeff3596828d1372156b9d48b088d6dbf7a.zip |
Rename xbmc to kodi
http://xbmc.org/introducing-kodi-14/
- External ffmpeg is now supported again (2.2.0 or higher required)
- Drop libshairport (libshairplay is required)
Diffstat (limited to 'kodi.spec')
-rw-r--r-- | kodi.spec | 390 |
1 files changed, 390 insertions, 0 deletions
diff --git a/kodi.spec b/kodi.spec new file mode 100644 index 0000000..b5ed360 --- /dev/null +++ b/kodi.spec @@ -0,0 +1,390 @@ +%global PRERELEASE a2 +#global DIRVERSION %{version} +#global GITCOMMIT Gotham_r2-ge988513 +# use the line below for pre-releases +%global DIRVERSION %{version}%{PRERELEASE} +%global _hardened_build 1 + +Name: kodi +Version: 14.0 +Release: 0.1.alpha2%{?dist} +Summary: Media center + +License: GPLv2+ and GPLv3+ +Group: Applications/Multimedia +URL: http://www.xbmc.org/ +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 + +# filed ticket, but patch still needs work +# http://trac.xbmc.org/ticket/9658 +Patch1: xbmc-13.0-dvdread.patch + +# need to file trac ticket, this patch just forces external hdhomerun +# functionality, needs to be able fallback internal version +Patch2: xbmc-13.0-hdhomerun.patch + +# Avoid segfault during goom's configure +# https://bugzilla.redhat.com/1069079 +Patch3: xbmc-13.0-libmysqlclient.patch + +# Set program version parameters +Patch4: kodi-14.0-versioning.patch + +# Remove call to internal ffmpeg function (misued anyway) +Patch5: kodi-14.0-dvddemux-ffmpeg.patch + +# Kodi is the renamed XBMC project +Obsoletes: xbmc < 14.0-1 +Obsoletes: xbmc-eventclients < 14.0-1 + +# 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 +%endif + +%ifarch x86_64 i686 +%global _with_crystalhd 1 +%global _with_hdhomerun 1 +%endif + +ExcludeArch: ppc64 + +BuildRequires: SDL-devel +BuildRequires: SDL_image-devel +BuildRequires: SDL_mixer-devel +BuildRequires: a52dec-devel +BuildRequires: afpfs-ng-devel +BuildRequires: avahi-devel +BuildRequires: bluez-libs-devel +BuildRequires: boost-devel +BuildRequires: bzip2-devel +BuildRequires: cmake +%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 +%if 0%{?_with_hdhomerun} +BuildRequires: hdhomerun-devel +%endif +BuildRequires: jasper-devel +BuildRequires: java-devel +BuildRequires: lame-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} +BuildRequires: libcec-devel +%endif +%if 0%{?_with_crystalhd} +BuildRequires: libcrystalhd-devel +%endif +BuildRequires: libcurl-devel +BuildRequires: libdca-devel +BuildRequires: libdvdread-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: libogg-devel +# for AirPlay support +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 +%ifnarch %{arm} +BuildRequires: libva-devel +BuildRequires: libvdpau-devel +%endif +BuildRequires: libvorbis-devel +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: 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 +BuildRequires: yajl-devel +BuildRequires: zlib-devel + +# nfs-utils-lib-devel package currently broken +#BuildRequires: nfs-utils-lib-devel + +Requires: google-roboto-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 +%endif +%if 0%{?_with_libcec} +Requires: libcec +%endif +%if 0%{?_with_crystalhd} +Requires: libcrystalhd +%endif +Requires: libmad +Requires: librtmp + +# 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-imaging + + +%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} = %{version}-%{release} + +%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 + +%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 = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} + +%description eventclients-devel +This package contains the development header files for the eventclients +library. + + +%prep +%setup -q -n %{name}-%{DIRVERSION} + +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p0 + +%if 0%{?_with_hdhomerun} +%else + # Remove hdhomerun from the build. + pushd xbmc/filesystem/ + rm HDHomeRunFile.cpp HDHomeRunFile.h + rm HDHomeRunDirectory.cpp HDHomeRunDirectory.h + sed -i Makefile.in -e '/HDHomeRunFile\.cpp/d' + sed -i Makefile.in -e '/HDHomeRunDirectory\.cpp/d' + sed -i DirectoryFactory.cpp -e '/HomeRun/d' + sed -i FileFactory.cpp -e '/HomeRun/d' + popd +%endif + + +%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 +--enable-goom \ +--enable-pulse \ +%if 0%{?_with_libcec} +--enable-libcec \ +%else +--disable-libcec \ +%endif +%if 0%{?_with_libssh} +--enable-ssh \ +%else +--disable-ssh \ +%endif +--disable-dvdcss \ +--disable-optimizations --disable-debug \ +%ifnarch %{arm} +--enable-gl \ +--disable-gles \ +--enable-vdpau \ +%else +--enable-gles \ +--disable-vdpau \ +--disable-vaapi \ +%ifarch armv7hl \ +--enable-tegra \ +--disable-neon \ +%endif +%ifarch armv7hnl +--enable-neon \ +%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="-fPIC" \ +%if 0%{?_with_hdhomerun} +LIBS=" -lhdhomerun $LIBS" \ +%endif +ASFLAGS=-fPIC + +make %{?_smp_mflags} VERBOSE=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/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}/xbmc/addons/script.module.pil/lib +ln -s %{python_sitearch}/PIL $RPM_BUILD_ROOT%{_libdir}/xbmc/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 Roboto font files instead of bundled ones +ln -sf %{_fontbasedir}/google-roboto/Roboto-Regular.ttf ${RPM_BUILD_ROOT}%{_datadir}/xbmc/addons/skin.confluence/fonts/ +ln -sf %{_fontbasedir}/google-roboto/Roboto-Bold.ttf ${RPM_BUILD_ROOT}%{_datadir}/xbmc/addons/skin.confluence/fonts/ + + +%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 || : + + +%files +%defattr(-,root,root) +%doc copying.txt CONTRIBUTORS LICENSE.GPL README +%doc docs +%{_bindir}/xbmc +%{_bindir}/xbmc-standalone +%{_libdir}/xbmc +%{_datadir}/xbmc +%{_datadir}/xsessions/XBMC.desktop +%{_datadir}/applications/xbmc.desktop +%{_datadir}/icons/hicolor/*/*/*.png + + +%files devel +%{_includedir}/xbmc + + +%files eventclients +%python_sitelib/xbmc +%dir %{_datadir}/pixmaps/xbmc +%{_datadir}/pixmaps/xbmc/*.png +%{_bindir}/xbmc-j2meremote +%{_bindir}/xbmc-ps3d +%{_bindir}/xbmc-ps3remote +%{_bindir}/xbmc-send +%{_bindir}/xbmc-wiiremote + + +%files eventclients-devel +%{_includedir}/xbmc/xbmcclient.h + + +%changelog +* Sun Aug 24 2014 Michael Cronenworth <mike@cchtml.com> - 14.0-0.1.alpha2 +- Update to 14.0 alpha 2 +- Renamed XBMC to Kodi |