1 |
|
|
2 |
%define name xbmc |
%define name xbmc |
3 |
%define branch_release Eden |
%define branch_release Frodo |
4 |
%define extra_feature pvr |
%define version 12.0 |
|
%define version 11.0 |
|
5 |
%define snap 0 |
%define snap 0 |
6 |
%define pre 0 |
%define pre rc3 |
7 |
%define rel 6 |
%define rel 1 |
8 |
|
|
9 |
%if %snap |
%if %snap |
10 |
%define branch %branch_release.%extra_feature |
%define branch %branch_release |
11 |
%else |
%else |
12 |
%define branch %extra_feature |
%define branch %nil |
13 |
%endif |
%endif |
14 |
|
|
15 |
%define branchr %([ "%branch" ] && echo .%branch | tr - _) |
%define branchr %([ "%branch" ] && echo .%branch | tr - _) |
23 |
%define Werror_cflags %nil |
%define Werror_cflags %nil |
24 |
%endif |
%endif |
25 |
|
|
26 |
|
# Nightly-build mode (no patches, externally specified snapshot) |
27 |
|
# (never enabled by default) |
28 |
|
%if 0 && "%nightly_date" != "" && "%nightly_git" != "" && "%nightly_branch" != "" && "%nightly_rel" != "" |
29 |
|
%define nightly 1 |
30 |
|
%define version %nightly_date |
31 |
|
%define rel %nightly_rel |
32 |
|
%else |
33 |
|
%define nightly 0 |
34 |
|
%endif |
35 |
|
|
36 |
Summary: XBMC Media Center - media player and home entertainment system |
Summary: XBMC Media Center - media player and home entertainment system |
37 |
Name: %{name} |
Name: %{name} |
38 |
Version: %{version} |
Version: %{version} |
39 |
|
%if %nightly |
40 |
|
Release: %mkrel 1.%nightly_git.%nightly_branch.%rel |
41 |
|
Source: %{name}-%{nightly_date}-%{nightly_git}-%{nightly_branch}.tar.xz |
42 |
|
%else |
43 |
%if %snap |
%if %snap |
44 |
Release: %mkrel 0.git%snap%branchr.%rel |
Release: %mkrel 0.git%snap%branchr.%rel |
45 |
Source: %{name}-%branch_release-%snap.tar.xz |
Source: %{name}-%branch_release-%snap.tar.xz |
46 |
%else |
%else |
47 |
%if %pre |
%if %pre |
48 |
Release: %mkrel 0.%pre%branchr.%rel |
Release: %mkrel 0.%pre%branchr.%rel |
49 |
Source: %{name}-%{version}-%{branch_release}_%{pre}.tar.gz |
#Source: %{name}-%{version}-%{branch_release}_%{pre}.tar.gz |
50 |
|
Source: %{branch_release}_%{pre}.tar.gz |
51 |
%else |
%else |
52 |
Release: %mkrel 1.%branch.%rel |
Release: %mkrel 1.%branch.%rel |
53 |
Source: %{name}-%{version}.tar.gz |
Source: %{name}-%{version}.tar.gz |
54 |
%endif |
%endif |
55 |
%endif |
%endif |
56 |
|
%endif |
57 |
URL: http://xbmc.org/ |
URL: http://xbmc.org/ |
58 |
|
|
59 |
# bring snapshot up-to-date with pvr branch |
%if !%nightly |
60 |
# https://github.com/opdenkamp/xbmc |
|
61 |
# git diff 11.0-Eden-r2..11.0-Eden-pvr |
# Use system groovy |
62 |
Patch0: xbmc-Eden-pvr-11.0.patch |
Patch0: xbmc-system-groovy.patch |
63 |
|
|
64 |
# Fix wiiremote eventclient build: |
# Disable a non-critical documentation part of code generator which does not |
65 |
Patch1: xbmc-wiiremote-missing-include.patch |
# seem to work with system groovy |
66 |
|
Patch1: xbmc-system-groovy-hack.patch |
67 |
# Backports to fix build with FFmpeg |
|
68 |
Patch101: 0101-Update-ffmpeg-to-n0.10.2-f139838d6473c7b5152178f602c.patch |
# Fix bootstrap script return value on error |
69 |
Patch102: 0102-Update-patches.patch |
Patch5: xbmc-bootstrap-return-value.patch |
|
Patch103: 0103-Drop-neon-patch-that-doesn-t-apply-anymore.patch |
|
|
Patch104: 0104-Drop-patch-for-win32-build.patch |
|
|
Patch105: 0105-Drop-patch-for-cdxa-probe-it-causes-missdetections-o.patch |
|
|
Patch106: 0106-Drop-now-merged-or-redundant-patches.patch |
|
|
Patch107: 0107-replace-depreciated-av_open_input_stream-file-with-n.patch |
|
|
Patch108: 0108-replace-depreciated-ByteIOContext-with-AVIOContext.patch |
|
|
Patch109: 0109-replace-depreciated-AVMetadata-Tag-with-AVDictionary.patch |
|
|
Patch110: 0110-Don-t-listen-to-depreciated-return-value-of-av_read_.patch |
|
|
Patch111: 0111-Don-t-use-depreciated-avcodec_thread_init.patch |
|
|
Patch112: 0112-Replace-depreciated-av_find_stream_info-with-avforma.patch |
|
|
Patch113: 0113-Replace-more-depreciated-ffmpeg-functions.patch |
|
|
Patch114: 0114-Drop-support-for-ffmpeg-version-older-than-our-built.patch |
|
|
Patch115: 0115-Replace-deprecated-is_streamed-with-new-seekable-fla.patch |
|
|
Patch116: 0116-Remove-old-code-depending-on-deprecated-file_size.patch |
|
|
Patch117: 0117-changed-replace-old-libavfilter-integration-with-nul.patch |
|
|
Patch118: 0118-changed-replace-old-swscale-pixel-format-conversion-.patch |
|
|
Patch119: 0119-Drop-url_set_interrupt_cb-usage-which-was-removed-in.patch |
|
|
Patch120: 0120-Do-not-map-url_fdopen-as-it-is-deprecated-and-gone-i.patch |
|
|
Patch121: 0121-Replace-av_write_header-by-avformat_write_header.patch |
|
|
Patch122: 0122-Remove-av_set_parameters.patch |
|
|
Patch123: 0123-Replace-av_metadata_-get-set2-by-av_dict_-get-set.patch |
|
|
Patch124: 0124-Merge-av_close_input_-file-stream-into-avformat_clos.patch |
|
|
Patch125: 0125-Replace-init_put_byte-by-avio_alloc_context.patch |
|
|
Patch126: 0126-Replace-dump_format-by-av_dump_format.patch |
|
|
Patch127: 0127-Replace-url_-functions-by-their-avio_-counterparts.patch |
|
|
Patch128: 0128-Remove-av_alloc_put_byte-and-replace-its-occurences-.patch |
|
|
Patch129: 0129-Include-libavfilter-avcodec.h-for-av_vsrc_buffer_add.patch |
|
|
Patch130: 0130-Remove-assignment-to-stream_copy-which-is-never-read.patch |
|
|
Patch131: 0131-Do-not-set-AVFrame.age.patch |
|
|
Patch132: 0132-Use-av_opt_set-instead-of-av_set_string3-and-drop-su.patch |
|
|
Patch133: 0133-Replace-deprecated-av_get_bits_per_sample_fmt-by-av_.patch |
|
|
Patch134: 0134-Convert-to-avcodec_decode_audio4-and-drop-avcodec_de.patch |
|
|
Patch135: 0135-osx-ios-atv2-build-and-link-static-libs-for-ffmpeg-b.patch |
|
|
Patch136: 0136-changed-Only-allow-slice-based-parallel-decoding.patch |
|
|
Patch137: 0137-fixed-crash-if-audio-decoder-for-some-reason-doesn-t.patch |
|
|
Patch138: 0138-dvdplayer-previous-picture-is-invalidated-by-a-call-.patch |
|
|
Patch139: 0139-dvdplayer-Recalculate-codecname-when-we-update-based.patch |
|
|
Patch140: 0140-dvdplayer-avoid-crashing-if-ffmpeg-contains-more-tha.patch |
|
|
Patch141: 0141-Add-support-for-new-ffmpeg-10-11-api.patch |
|
|
Patch142: 0142-Bring-av_read_frame_flush-in-line-with-ffmpeg-git.patch |
|
|
Patch143: 0143-avutil-add-av_get_default_channel_layout-for-later-u.patch |
|
|
Patch144: 0144-Use-libavutil-av_get_default_channel_layout-instead-.patch |
|
|
Patch145: 0145-DllAvCodec-Remove-now-unused-private-avcodec_guess_c.patch |
|
|
|
|
|
# Disable updates of the default skin. Our one is the PVR version, while the |
|
|
# one in the XBMC.org addon repository would be the vanilla one (Confluence |
|
|
# is currently not in the addon repository, though, as of 2012-03). |
|
|
Patch201: xbmc-disable-confluence-update.patch |
|
70 |
|
|
71 |
# Make the MythTV PVR client buildable (submitted upstream): |
# Fix bootstrap with automake 1.13+ |
72 |
Patch211: 0001-fixed-undefined-symbols-in-MythTV-PVR-client.patch |
Patch6: xbmc-automake1.13.patch |
73 |
|
|
74 |
# Hack to workaround upgrading from our old hack... see patch header for more |
# Hack to workaround upgrading from our old hack... see patch header for more |
75 |
# details and an upstreaming plan. |
# details and an upstreaming plan. |
76 |
Patch213: 0001-hack-workaround-for-old-incompatible-PVR-addon-datab.patch |
Patch213: 0001-hack-workaround-for-old-incompatible-PVR-addon-datab.patch |
77 |
|
%endif |
78 |
|
|
79 |
# nosefart audio plugin and RSXS-0.9 based screensavers are GPLv2 only |
# nosefart audio plugin and RSXS-0.9 based screensavers are GPLv2 only |
80 |
# several eventclients are GPLv3+ (in subpackages) |
# several eventclients are GPLv3+ (in subpackages) |
154 |
BuildRequires: libplist-devel |
BuildRequires: libplist-devel |
155 |
BuildRequires: shairport-devel |
BuildRequires: shairport-devel |
156 |
BuildRequires: cec-devel |
BuildRequires: cec-devel |
157 |
|
BuildRequires: tinyxml-devel |
158 |
|
BuildRequires: taglib-devel |
159 |
BuildRequires: cmake |
BuildRequires: cmake |
160 |
BuildRequires: gperf |
BuildRequires: gperf |
161 |
BuildRequires: zip |
BuildRequires: zip |
162 |
|
# codegenerator.mk |
163 |
|
# TODO: Something is wrong with java macros in mga2+, %java does not actually use java-rpmbuild |
164 |
|
BuildRequires: java-rpmbuild |
165 |
|
BuildRequires: swig |
166 |
|
BuildRequires: groovy |
167 |
|
BuildRequires: apache-commons-lang |
168 |
|
BuildRequires: doxygen |
169 |
%ifarch %ix86 |
%ifarch %ix86 |
170 |
BuildRequires: nasm |
BuildRequires: nasm |
171 |
%endif |
%endif |
172 |
Requires: lsb-release |
Requires: lsb-release |
173 |
# dlopened (existence check required by rpm5 as it doesn't use stderr): |
# dlopened (existence check required by rpm5 as it doesn't use stderr): |
174 |
%define dlopenreq() %([ -e %{_libdir}/lib%{1}.so ] && rpm -qf --qf '%%{name}' $(readlink -f %{_libdir}/lib%{1}.so) 2>/dev/null || echo %{name}) |
%define dlopenreq() %([ -e %{_libdir}/lib%{1}.so ] && rpm -qf --qf '%%{name}' $(readlink -f %{_libdir}/lib%{1}.so) 2>/dev/null || echo "xbmc-missing-buildrequires-on-%{1}") |
175 |
Requires: %dlopenreq curl |
Requires: %dlopenreq curl |
176 |
Requires: %dlopenreq FLAC |
Requires: %dlopenreq FLAC |
177 |
Requires: %dlopenreq mad |
Requires: %dlopenreq mad |
224 |
engine, XBMC feels very natural to use from the couch and is the |
engine, XBMC feels very natural to use from the couch and is the |
225 |
ideal solution for your home theater. |
ideal solution for your home theater. |
226 |
|
|
227 |
This is the stable version of XBMC from the %branch_release release branch, |
%if !%nightly |
228 |
with PVR support added from opdenkamp %branch_release-pvr branch. Support for |
This is the stable version of XBMC from the %branch_release release branch. |
229 |
RAR files is not included due to license issues. |
Support for RAR files is not included due to license issues. |
230 |
|
%endif |
231 |
|
|
232 |
%package eventclients-common |
%package eventclients-common |
233 |
Summary: Common files for XBMC eventclients |
Summary: Common files for XBMC eventclients |
308 |
This package contains the xbmc-send eventclient. |
This package contains the xbmc-send eventclient. |
309 |
|
|
310 |
%prep |
%prep |
311 |
|
%if %nightly |
312 |
|
%setup -q -n %name-%nightly_date-%nightly_git-%nightly_branch |
313 |
|
%else |
314 |
%if %snap |
%if %snap |
315 |
%setup -q -n %name-%branch_release-%snap |
%setup -q -n %name-%branch_release-%snap |
316 |
%else |
%else |
317 |
%if %pre |
%if %pre |
318 |
%setup -q -n %{name}-%{version}-%{branch_release}_%{pre} |
%setup -q -n %{name}-%{branch_release}_%{pre} |
319 |
%else |
%else |
320 |
%setup -q |
%setup -q |
321 |
%endif |
%endif |
322 |
%endif |
%endif |
323 |
|
%endif |
324 |
%apply_patches |
%apply_patches |
325 |
# otherwise backups end up in binary rpms |
# otherwise backups end up in binary rpms |
326 |
find -type f \( -name '*.00??' -o -name '*.00??~' \) -print -delete |
find -type f \( -name '*.00??' -o -name '*.00??~' \) -print -delete |
327 |
|
|
328 |
# remove prebuilt libraries |
# remove prebuilt libraries |
329 |
find -type f \( -iname '*.so' -o -iname '*.dll' -o -iname '*.exe' \) -delete |
find -type f \( -iname '*.so' -o -iname '*.dll' -o -iname '*.exe' -o -iname '*.jar' \) -print -delete |
330 |
|
|
331 |
# GPLv2 only |
# GPLv2 only |
332 |
rm -r lib/cmyth/Win32/include/mysql |
rm -r lib/cmyth/Win32/include/mysql |
337 |
rm -rf system/players/dvdplayer/etc/fonts |
rm -rf system/players/dvdplayer/etc/fonts |
338 |
|
|
339 |
%build |
%build |
340 |
|
%if %nightly |
341 |
|
export GIT_REV=%nightly_git |
342 |
|
%else |
343 |
%if %snap |
%if %snap |
344 |
export GIT_REV=%snap |
export GIT_REV=%snap |
345 |
%else |
%else |
346 |
export GIT_REV="tarball" |
export GIT_REV="tarball" |
347 |
%endif |
%endif |
348 |
./bootstrap |
%endif |
349 |
|
|
350 |
|
JAVA=%{java} CLASSPATH=$(build-classpath commons-lang) ./bootstrap |
351 |
|
|
352 |
# due to xbmc modules that use symbols from xbmc binary |
# due to xbmc modules that use symbols from xbmc binary |
353 |
# and are not using libtool |
# and are not using libtool |
456 |
%{_libdir}/xbmc/xbmc-xrandr |
%{_libdir}/xbmc/xbmc-xrandr |
457 |
%dir %{_libdir}/xbmc/addons/* |
%dir %{_libdir}/xbmc/addons/* |
458 |
%{_libdir}/xbmc/addons/*/*.so |
%{_libdir}/xbmc/addons/*/*.so |
|
%{_libdir}/xbmc/addons/*/*.pvr |
|
459 |
%{_libdir}/xbmc/addons/*/*.vis |
%{_libdir}/xbmc/addons/*/*.vis |
460 |
%{_libdir}/xbmc/addons/*/*.xbs |
%{_libdir}/xbmc/addons/*/*.xbs |
461 |
%{_libdir}/xbmc/system/ImageLib-*-linux.so |
%{_libdir}/xbmc/system/ImageLib-*-linux.so |
463 |
%{_libdir}/xbmc/system/libcmyth-*-linux.so |
%{_libdir}/xbmc/system/libcmyth-*-linux.so |
464 |
%{_libdir}/xbmc/system/libcpluff-*-linux.so |
%{_libdir}/xbmc/system/libcpluff-*-linux.so |
465 |
%{_libdir}/xbmc/system/libexif-*-linux.so |
%{_libdir}/xbmc/system/libexif-*-linux.so |
|
%{_libdir}/xbmc/system/libid3tag-*-linux.so |
|
466 |
%{_libdir}/xbmc/system/players/dvdplayer/libdvdnav-*-linux.so |
%{_libdir}/xbmc/system/players/dvdplayer/libdvdnav-*-linux.so |
467 |
%if %with internal_ffmpeg |
%if %with internal_ffmpeg |
468 |
%{_libdir}/xbmc/system/players/dvdplayer/av*-linux.so |
%{_libdir}/xbmc/system/players/dvdplayer/av*-linux.so |