1 |
|
2 |
%define name xbmc |
3 |
%define branch_release dharma |
4 |
%define extra_feature pvr |
5 |
%define version 10.1 |
6 |
%define snap 0 |
7 |
%define rel 5 |
8 |
|
9 |
%if %snap |
10 |
%define branch %branch_release.%extra_feature |
11 |
%else |
12 |
%define branch %extra_feature |
13 |
%endif |
14 |
|
15 |
%define branchr %([ "%branch" ] && echo .%branch | tr - _) |
16 |
|
17 |
# There are some compatibility issues with the various python addons which |
18 |
# are mostly tested against bundled python only, and there are too many of |
19 |
# them to be checked out and fixed by us for system python compatibility. |
20 |
# Additional issues are caused by the bundled python having several system |
21 |
# calls redirected through xbmc VFS layer, which doesn't currently work when |
22 |
# using the system python. Usage of system python can probably be safely |
23 |
# re-enabled when XBMC upstream migrates away from python 2.4 and fixes the |
24 |
# issues regarding external python (this is planned). -Anssi 11/2010 |
25 |
%define system_python 0 |
26 |
|
27 |
# using system python2.7+ reportedly causes problems with |
28 |
# getcwd() and chdir() calls from python |
29 |
# http://trac.xbmc.org/ticket/8658 |
30 |
%define system_python 0 |
31 |
|
32 |
Summary: XBMC Media Center - media player and home entertainment system |
33 |
Name: %{name} |
34 |
Version: %{version} |
35 |
%if %snap |
36 |
Release: %mkrel 0.svn%snap%branchr.%rel |
37 |
# REV=$(git log -1 origin/Dharma | grep git-svn-id | sed -ne 's,^.*@\([^ ]\+\).*$,\1,p') |
38 |
# git archive --prefix=xbmc-dharma-$REV/ origin/Dharma | xz > xbmc-dharma-$REV.tar.xz |
39 |
Source: %{name}-%branch_release-%snap.tar.xz |
40 |
%else |
41 |
Release: %mkrel 1.%branch.%rel |
42 |
Source: %{name}-%{version}.tar.gz |
43 |
%endif |
44 |
URL: http://xbmc.org/ |
45 |
|
46 |
# needed modules when using bundled python (versions are those expected by the Makefiles): |
47 |
Source11: http://www.effbot.org/downloads/Imaging-1.1.7.tar.gz |
48 |
Source12: http://pysqlite.googlecode.com/files/pysqlite-2.5.6.tar.gz |
49 |
|
50 |
# bring snapshot up-to-date with pvr branch |
51 |
# https://github.com/opdenkamp/xbmc/tree/Dharma-pvr |
52 |
Patch0: xbmc-10.0-opdenkamp-pvr-fdb057b7754.patch |
53 |
|
54 |
# bring snapshot up-to-date with main branch (patches rediffed for pvr): |
55 |
# already up-to-date |
56 |
#Patch18: xbmc-dharma-r35305-r%svnsnap.patch |
57 |
|
58 |
# VDPAU backports from upstream master |
59 |
Patch31: 0001-changed-split-CDVDVideoCodecFFmpeg-GetPicture.patch |
60 |
Patch32: 0002-fixed-VDPAU-temporal-deinterlacer-was-not-provided-e.patch |
61 |
Patch33: 0003-changed-allow-VDPAU-reverse-telecine-when-deinterlac.patch |
62 |
Patch34: 0004-fixed-VDPAU-reverse-telecine.patch |
63 |
Patch35: 0005-changed-enable-VDPAU-temporal-deinterlacer-when-temp.patch |
64 |
Patch36: 0006-fixed-flush-VDPAU-video-surfaces-and-picture-queue-w.patch |
65 |
Patch37: 0007-fixed-picture.iDuration-0-comparison.patch |
66 |
Patch38: 0008-fixed-vdpau-needs-to-memset-its-DVDVideoPicture-stru.patch |
67 |
|
68 |
# backports from upstream master |
69 |
Patch40: 0001-added-note-in-linux-crashlog-if-gdb-is-not-installed.patch |
70 |
Patch41: 0001-Added-9763-Fix-64-bit-WiiRemote-connection-issues-Th.patch |
71 |
|
72 |
# adapt to the current FFmpeg API (upstream patches) |
73 |
Patch101: 0001-changed-use-the-new-ffmpeg-decoding-functions.patch |
74 |
Patch102: 0002-changed-replace-use-of-deprecated-CH_-and-SampleForm.patch |
75 |
Patch103: 0003-changed-use-the-new-ffmpeg-parser-function.patch |
76 |
Patch104: 0004-changed-use-av_metadata_get-instead-of-the-deprecate.patch |
77 |
Patch105: 0005-changed-replace-deprecated-use-of-CODEC_TYPE_-defini.patch |
78 |
Patch106: 0006-fixed-build-with-recent-external-ffmpeg-fixes-11259.patch |
79 |
Patch107: 0007-removed-use-of-AVFormatParameters-when-encoding.patch |
80 |
Patch108: 0008-Fix-compile-against-latest-ffmpeg.patch |
81 |
Patch109: 0009-remove-hurry_up-in-VDPAU.cpp.patch |
82 |
Patch110: 0010-fixed-use-ffmpeg-cpu-autodetection-for-audio-and-ove.patch |
83 |
Patch111: 0011-added-import-av_set_string3-from-libavutil.patch |
84 |
Patch112: 0012-removed-unused-function-CDVDFileInfo-GetFileMetaData.patch |
85 |
|
86 |
# Disable updates of the default skin. Our one is the PVR version, while the |
87 |
# one in the XBMC.org addon repository would be the vanilla one (Confluence |
88 |
# is currently not in the addon repository, though, as of 2010-10). |
89 |
Patch201: xbmc-disable-confluence-update.patch |
90 |
|
91 |
# Workaround http://www.nvnews.net/vbulletin/showthread.php?t=156665 |
92 |
# by forcing SDL to use alsa when pulse is disabled and nvidia proprietary |
93 |
# driver version 260.x.y older than 260.19.21 is active. |
94 |
Patch202: 0001-added-workaround-for-crash-with-nonpulse-nvidia260.patch |
95 |
|
96 |
# forkpty and openpty are in -lutil |
97 |
Patch203: 0001-fixed-undefined-symbols-in-internal-python.patch |
98 |
|
99 |
# Ensure backward-compatibility with pvr-testing2 and prevent future compatibility |
100 |
# issues with trunk Addons database format |
101 |
Patch204: 0001-changed-use-the-legacy-pvr-testing2-addon-database.patch |
102 |
|
103 |
# Do not use avg_frame_rate for mkv files on 2010.1 and older, instead |
104 |
# use time_base if needed (fixes MicroDVD subtitles with 23.976 H.264 mkv) |
105 |
Patch205: xbmc-old-libavformat-mkv-subs.patch |
106 |
|
107 |
# build faad support with internal headers, but do not build the |
108 |
# internal library; use system lib with dlopen instead; |
109 |
# this allows keeping it as an optional external library |
110 |
Patch206: xbmc-hack-ext-faad-with-int-headers.patch |
111 |
|
112 |
# adapt PVR patch to the current FFmpeg API |
113 |
Patch207: xbmc-pvr-new-ffmpeg.patch |
114 |
|
115 |
# use libpng12.pc instead of libpng.pc (incompatible API) |
116 |
Patch208: xbmc-use-libpng12.patch |
117 |
|
118 |
# link WiiRemote event client to -lbluetooth, for missing symbol 'hci_get_route' |
119 |
# (fixes build) |
120 |
Patch209: xbmc-wiiremote-link-bluetooth.patch |
121 |
|
122 |
# CVE fixes for the internal python |
123 |
Patch301: 0001-fixed-CVE-2007-2052-in-internal-python-Mandriva.patch |
124 |
Patch302: 0002-fixed-CVE-2007-4965-in-internal-python-upstream.patch |
125 |
Patch303: 0003-fixed-CVE-2008-1679-in-internal-python-upstream.patch |
126 |
Patch304: 0004-fixed-CVE-2008-1887-in-internal-python-upstream.patch |
127 |
Patch305: 0005-fixed-CVE-2008-1721-in-internal-python-upstream.patch |
128 |
Patch306: 0006-fixed-CVE-2008-2315-in-internal-python-Gentoo.patch |
129 |
Patch307: 0007-fixed-CVE-2008-3142-in-internal-python-Gentoo.patch |
130 |
Patch308: 0008-fixed-CVE-2008-3144-in-internal-python-Gentoo.patch |
131 |
Patch309: 0009-fixed-CVE-2008-4864-in-internal-python-Mandriva.patch |
132 |
Patch310: 0010-fixed-CVE-2008-5031-in-internal-python-upstream.patch |
133 |
Patch311: 0011-fixed-CVE-2010-1634-in-internal-python-Mandriva.patch |
134 |
Patch312: 0012-fixed-CVE-2010-2089-in-internal-python-Mandriva.patch |
135 |
Patch313: 0013-fixed-CVE-2009-2625-in-internal-python-Mandriva.patch |
136 |
Patch314: 0014-fixed-CVE-2010-3492-in-internal-python-Mandriva.patch |
137 |
Patch315: 0015-fixed-CVE-2010-3493-in-internal-python-Mandriva.patch |
138 |
|
139 |
|
140 |
# nosefart audio plugin and RSXS-0.9 based screensavers are GPLv2 only |
141 |
# libhts, libhdhomerun and several eventclients are GPLv3+ |
142 |
# the rest is GPLv2+ |
143 |
License: GPLv3+ and GPLv2+ and GPLv2 |
144 |
Group: Video |
145 |
BuildRoot: %{_tmppath}/%{name}-root |
146 |
BuildRequires: boost-devel |
147 |
BuildRequires: ffmpeg-devel |
148 |
BuildRequires: libmpeg2dec-devel |
149 |
BuildRequires: libogg-devel |
150 |
BuildRequires: libwavpack-devel |
151 |
BuildRequires: python-devel |
152 |
BuildRequires: glew-devel |
153 |
BuildRequires: mesagl-devel |
154 |
BuildRequires: mesaglu-devel |
155 |
BuildRequires: libmad-devel |
156 |
BuildRequires: libjpeg-devel |
157 |
BuildRequires: libsamplerate-devel |
158 |
BuildRequires: libvorbis-devel |
159 |
BuildRequires: bzip2-devel |
160 |
BuildRequires: mysql-devel |
161 |
BuildRequires: liblzo2-devel |
162 |
BuildRequires: zlib-devel |
163 |
BuildRequires: openssl-devel |
164 |
BuildRequires: fontconfig-devel |
165 |
BuildRequires: fribidi-devel |
166 |
BuildRequires: sqlite3-devel |
167 |
BuildRequires: libpng12-devel |
168 |
BuildRequires: libpcre-devel |
169 |
BuildRequires: libcdio-devel |
170 |
BuildRequires: libmms-devel |
171 |
BuildRequires: freetype2-devel |
172 |
BuildRequires: libflac-devel |
173 |
BuildRequires: libsmbclient-devel |
174 |
BuildRequires: SDL_mixer-devel |
175 |
BuildRequires: libjasper-devel |
176 |
BuildRequires: libtiff-devel |
177 |
BuildRequires: SDL_image-devel |
178 |
BuildRequires: libalsa-devel |
179 |
BuildRequires: enca-devel |
180 |
BuildRequires: libxt-devel |
181 |
BuildRequires: libxtst-devel |
182 |
BuildRequires: libxmu-devel |
183 |
BuildRequires: libxinerama-devel |
184 |
BuildRequires: libcurl-devel |
185 |
BuildRequires: dbus-devel |
186 |
BuildRequires: hal-devel |
187 |
BuildRequires: SDL-devel |
188 |
BuildRequires: pulseaudio-devel |
189 |
BuildRequires: avahi-common-devel |
190 |
BuildRequires: avahi-client-devel |
191 |
BuildRequires: libxrandr-devel |
192 |
BuildRequires: vdpau-devel |
193 |
BuildRequires: cwiid-devel |
194 |
BuildRequires: libice-devel |
195 |
BuildRequires: libx11-devel |
196 |
BuildRequires: crystalhd-devel |
197 |
BuildRequires: libmicrohttpd-devel |
198 |
BuildRequires: libmodplug-devel |
199 |
BuildRequires: ssh-devel |
200 |
BuildRequires: libva-devel |
201 |
BuildRequires: gettext-devel |
202 |
BuildRequires: expat-devel |
203 |
BuildRequires: libass-devel |
204 |
BuildRequires: rtmp-devel |
205 |
BuildRequires: bluray-devel |
206 |
BuildRequires: bluez-devel |
207 |
BuildRequires: cmake |
208 |
BuildRequires: gperf |
209 |
BuildRequires: zip |
210 |
%ifarch %ix86 |
211 |
BuildRequires: nasm |
212 |
%endif |
213 |
%if !%system_python |
214 |
# python-imaging |
215 |
BuildRequires: lcms-devel |
216 |
%endif |
217 |
Requires: lsb-release |
218 |
# dlopened (existence check required by rpm5 as it doesn't use stderr): |
219 |
%define dlopenreq() %([ -e %{_libdir}/lib%{1}.so ] && rpm -qf --qf '%%{name}' $(readlink -f %{_libdir}/lib%{1}.so) 2>/dev/null || echo %{name}) |
220 |
Requires: %dlopenreq curl |
221 |
Requires: %dlopenreq FLAC |
222 |
Requires: %dlopenreq mad |
223 |
Requires: %dlopenreq ogg |
224 |
Requires: %dlopenreq vorbis |
225 |
Requires: %dlopenreq vorbisenc |
226 |
Requires: %dlopenreq vorbisfile |
227 |
Requires: %dlopenreq modplug |
228 |
Requires: %dlopenreq rtmp |
229 |
# not nearly as common as the above, so just suggest instead for now: |
230 |
Suggests: %dlopenreq bluray |
231 |
Suggests: %dlopenreq crystalhd |
232 |
# for FEH.py, to check current configuration is ok for xbmc: |
233 |
Requires: xdpyinfo |
234 |
Requires: glxinfo |
235 |
# for FEH.py to allow it to give an error message (should be available already |
236 |
# on most systems): |
237 |
Requires: pygtk2 |
238 |
%if %system_python |
239 |
# for xbmc python scripts: |
240 |
Requires: python-imaging |
241 |
Requires: python-sqlite2 |
242 |
%endif |
243 |
# Packages not shipped by Mandriva: |
244 |
Suggests: %{_lib}faad2_2 |
245 |
Suggests: %{_lib}lame0 |
246 |
Suggests: %{_lib}dca0 |
247 |
Suggests: %{_lib}dvdcss2 |
248 |
|
249 |
# Packages have been merged |
250 |
Obsoletes: xbmc-core < 9.11-1.svn29468 |
251 |
Obsoletes: xbmc-skin-confluence < 9.11-1.svn29468 |
252 |
Obsoletes: xbmc-skin-pm3-hd < 9.11-1.svn29468 |
253 |
Obsoletes: xbmc-nosefart < 9.11-1.svn29468 |
254 |
Obsoletes: xbmc-screensavers-default < 9.11-1.svn29468 |
255 |
Obsoletes: xbmc-script-examples < 9.11-1.svn27796 |
256 |
Obsoletes: xbmc-web-pm3 < 9.11-1.svn27796 |
257 |
|
258 |
%description |
259 |
XBMC is an award-winning free and open source software media player |
260 |
and entertainment hub for digital media. |
261 |
|
262 |
While XBMC functions very well as a standard media player application |
263 |
for your computer, it has been designed to be the perfect companion |
264 |
for your HTPC. Supporting an almost endless range of remote controls, |
265 |
and combined with its beautiful interface and powerful skinning |
266 |
engine, XBMC feels very natural to use from the couch and is the |
267 |
ideal solution for your home theater. |
268 |
|
269 |
This is the stable version of XBMC from the dharma release branch, |
270 |
with PVR support added from opdenkamp Dharma-pvr branch. Support for |
271 |
RAR files and XBMS protocol is not included due to license issues. |
272 |
|
273 |
%package eventclients-common |
274 |
Summary: Common files for XBMC eventclients |
275 |
Group: Video |
276 |
%py_requires |
277 |
|
278 |
%description eventclients-common |
279 |
XBMC is an award-winning free and open source software media player |
280 |
and entertainment hub for digital media. |
281 |
|
282 |
This package contains common files for eventclients. |
283 |
|
284 |
%package eventclients-devel |
285 |
Summary: Development files for XBMC eventclients |
286 |
Group: Development/C |
287 |
|
288 |
%description eventclients-devel |
289 |
XBMC is an award-winning free and open source software media player |
290 |
and entertainment hub for digital media. |
291 |
|
292 |
This package contains files needed to build eventclients. |
293 |
|
294 |
%package eventclient-wiiremote |
295 |
Summary: Wii Remote eventclient for XBMC |
296 |
Group: Video |
297 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
298 |
|
299 |
%description eventclient-wiiremote |
300 |
XBMC is an award-winning free and open source software media player |
301 |
and entertainment hub for digital media. |
302 |
|
303 |
This package contains the Wii Remote eventclient. |
304 |
|
305 |
%package eventclient-j2me |
306 |
Summary: J2ME eventclient for XBMC |
307 |
Group: Video |
308 |
Requires: python-pybluez |
309 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
310 |
|
311 |
%description eventclient-j2me |
312 |
XBMC is an award-winning free and open source software media player |
313 |
and entertainment hub for digital media. |
314 |
|
315 |
This package contains the J2ME eventclient, providing a bluetooth |
316 |
server that can communicate with a mobile tool supporting J2ME. |
317 |
|
318 |
%package eventclient-ps3 |
319 |
Summary: PS3 eventclients for XBMC |
320 |
Group: Video |
321 |
Requires: python-pybluez |
322 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
323 |
# requires via zeroconf.py, only used by xbmc-ps3d: |
324 |
Requires: python-gobject avahi-python python-dbus |
325 |
# TODO merge all these?, and TODO zeroconf.py to a correct package? :) |
326 |
Obsoletes: eventclient-ps3remote < 9.11-1.svn31936 |
327 |
|
328 |
%description eventclient-ps3 |
329 |
XBMC is an award-winning free and open source software media player |
330 |
and entertainment hub for digital media. |
331 |
|
332 |
This package contains the PS3 remote and sixaxis eventclients. |
333 |
|
334 |
%package eventclient-xbmc-send |
335 |
Summary: PS3 eventclient for XBMC |
336 |
Group: Video |
337 |
Requires: %{name}-eventclients-common = %{version}-%{release} |
338 |
|
339 |
%description eventclient-xbmc-send |
340 |
XBMC is an award-winning free and open source software media player |
341 |
and entertainment hub for digital media. |
342 |
|
343 |
This package contains the xbmc-send eventclient. |
344 |
|
345 |
%prep |
346 |
%if %snap |
347 |
%setup -q -n %name-%branch_release-%snap |
348 |
%else |
349 |
%setup -q |
350 |
%endif |
351 |
%apply_patches |
352 |
# otherwise backups end up in binary rpms |
353 |
find -type f \( -name '*.00??' -o -name '*.00??~' \) -print -delete |
354 |
|
355 |
# remove prebuilt libraries |
356 |
find -type f \( -iname '*.so' -o -iname '*.dll' -o -iname '*.exe' \) -delete |
357 |
|
358 |
# GPLv2 only |
359 |
rm -r xbmc/lib/cmyth/Win32/include/mysql |
360 |
# BSD 4-clause |
361 |
rm -r xbmc/cores/DllLoader/exports/emu_socket |
362 |
|
363 |
# rm disabled stuff to detect possible bugs |
364 |
rm -rf xbmc/cores/dvdplayer/Codecs/{libdts,liba52} xbmc/cores/paplayer/AC3Codec/liba52 |
365 |
|
366 |
# win32 only |
367 |
rm -rf system/players/dvdplayer/etc/fonts |
368 |
|
369 |
%if !%system_python |
370 |
cp %{SOURCE11} lib/addons/script.module.pil |
371 |
cp %{SOURCE12} lib/addons/script.module.pysqlite |
372 |
|
373 |
# we need to fix the lookup directories (otherwise setup.py queries |
374 |
# incorrect information from the bundled python) |
375 |
tar -xzf %{SOURCE11} -C lib/addons/script.module.pil |
376 |
sed -ri 's|^([A-Z0-9]+_ROOT =) None|\1 "%{_libdir}", "%{_includedir}"|' lib/addons/script.module.pil/Imaging-*/setup.py |
377 |
%endif |
378 |
|
379 |
%build |
380 |
%if %snap |
381 |
export GIT_REV=%snap |
382 |
%else |
383 |
export GIT_REV=$(basename %SOURCE0) |
384 |
%endif |
385 |
./bootstrap |
386 |
|
387 |
# due to xbmc modules that use symbols from xbmc binary |
388 |
# and are not using libtool |
389 |
%define _disable_ld_no_undefined 1 |
390 |
|
391 |
# Seems libpng12.patch is not enough, -lpng is hardcoded in several places. |
392 |
# Hack around it (Anssi 12/2011) |
393 |
mkdir -p libpng12 |
394 |
ln -snf %{_libdir}/libpng12.so libpng12/libpng.so |
395 |
export LDFLAGS="%ldflags -L$PWD/libpng12" |
396 |
# and hack a libpng-config for rsxs configure as well: |
397 |
ln -snf %{_bindir}/libpng12-config libpng12/libpng-config |
398 |
export PATH="$PWD/libpng12:$PATH" |
399 |
|
400 |
# Workaround configure using git to override GIT_REV (TODO: fix it properly) |
401 |
export ac_cv_prog_HAVE_GIT="no" |
402 |
|
403 |
%configure2_5x \ |
404 |
--disable-debug \ |
405 |
--disable-ccache \ |
406 |
--enable-external-libraries \ |
407 |
%if !%system_python |
408 |
--disable-external-python \ |
409 |
%endif |
410 |
--disable-non-free \ |
411 |
--disable-dvdcss \ |
412 |
--disable-faac \ |
413 |
--enable-goom \ |
414 |
--with-lirc-device=/var/run/lirc/lircd |
415 |
|
416 |
# non-free = unrar + xbms |
417 |
# dvdcss is handled via dlopen when disabled |
418 |
# faac is always handled via libavcodec |
419 |
|
420 |
%make |
421 |
%make -C tools/EventClients wiimote |
422 |
|
423 |
%if !%system_python |
424 |
for dir in lib/addons/script.module.*; do |
425 |
%make -C $dir |
426 |
done |
427 |
%endif |
428 |
|
429 |
%install |
430 |
rm -rf %{buildroot} |
431 |
%makeinstall_std |
432 |
%makeinstall_std -C tools/EventClients |
433 |
|
434 |
# unused |
435 |
rm %{buildroot}%{_datadir}/xsessions/XBMC.desktop |
436 |
# our version of the above: |
437 |
install -d -m755 %{buildroot}%{_sysconfdir}/X11/wmsession.d |
438 |
cat > %{buildroot}%{_sysconfdir}/X11/wmsession.d/15XBMC <<EOF |
439 |
NAME=XBMC |
440 |
ICON=xbmc.png |
441 |
DESC=XBMC Media Center |
442 |
EXEC=%{_bindir}/xbmc-standalone |
443 |
SCRIPT: |
444 |
exec %{_bindir}/xbmc-standalone |
445 |
EOF |
446 |
|
447 |
# unused files, TODO fix this upstream: |
448 |
find %{buildroot}%{_datadir}/xbmc/addons/skin.*/media -name '*.png' -delete |
449 |
|
450 |
( # for IFS and +x |
451 |
# Check for issues in ELF binaries |
452 |
undefined= |
453 |
fhserr= |
454 |
echo Silencing output of undefined symbol and FHS conformance checks |
455 |
set +x |
456 |
IFS=$'\n' |
457 |
for file in $(find %{buildroot} -type f); do |
458 |
type="$(file "$file")" |
459 |
echo "$type" | grep -q "ELF" || continue |
460 |
|
461 |
# Check that a binary file is not in datadir: |
462 |
echo "$file" | grep -q "%{_datadir}" && fhserr="${fhserr}$file\n" |
463 |
|
464 |
# check for undefined symbols in XBMC modules |
465 |
echo "$type" | grep -q "shared object" || continue |
466 |
for symbol in $(LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir} ldd -r "$file" 2>&1 | grep undefined | awk '{ print $3 }'); do |
467 |
# undefined symbols may also be provided by XBMC: |
468 |
nm -f posix -D --no-demangle --defined-only %{buildroot}%{_libdir}/xbmc/xbmc.bin | grep -q "^$symbol " && continue |
469 |
# The symbol was not provided by XBMC. |
470 |
# Check if it is available through its dependencies: |
471 |
for filename in $(objdump -p %{buildroot}%{_libdir}/xbmc/xbmc.bin | grep NEEDED | awk '{ print $2 }'); do |
472 |
depfile="/%{_lib}/$filename" |
473 |
[ -e "$depfile" ] || depfile="%{_libdir}/$filename" |
474 |
nm -f posix -D --no-demangle --defined-only $depfile | grep -q "^$symbol " && continue 2 |
475 |
done |
476 |
# Euphoria references rsxs PNG class, but it is never used at runtime, |
477 |
# so it results in no errors due to RTLD_LAZY being used by xbmc module loader. |
478 |
# _imaging*.so and _sqlite.so are python modules that exist when using bundled python |
479 |
case $file:$symbol in */Euphoria.xbs:_ZN3PNG*|*/_imaging*.so:*|*/_sqlite.so:*) continue; esac |
480 |
# the symbol was not found |
481 |
undefined="${undefined}$file: $symbol\n" |
482 |
done |
483 |
done |
484 |
ok=1 |
485 |
[ -n "$undefined" ] && echo -e "$undefined" && echo "Undefined symbols!" && ok= |
486 |
[ -n "$fhserr" ] && echo -e "$fhserr" && echo "Binaries in datadir!" && ok= |
487 |
[ -n "$ok" ] |
488 |
) |
489 |
|
490 |
%clean |
491 |
rm -rf %{buildroot} |
492 |
|
493 |
%files |
494 |
%defattr(-,root,root) |
495 |
%doc %{_docdir}/xbmc |
496 |
%{_sysconfdir}/X11/wmsession.d/15XBMC |
497 |
%{_bindir}/xbmc |
498 |
%{_bindir}/xbmc-standalone |
499 |
%dir %{_libdir}/xbmc |
500 |
%dir %{_libdir}/xbmc/addons |
501 |
%dir %{_libdir}/xbmc/system |
502 |
%dir %{_libdir}/xbmc/system/players |
503 |
%dir %{_libdir}/xbmc/system/players/dvdplayer |
504 |
%dir %{_libdir}/xbmc/system/players/paplayer |
505 |
%dir %{_libdir}/xbmc/system/python |
506 |
%{_libdir}/xbmc/xbmc.bin |
507 |
%{_libdir}/xbmc/xbmc-xrandr |
508 |
%dir %{_libdir}/xbmc/addons/* |
509 |
%{_libdir}/xbmc/addons/*/*.so |
510 |
%{_libdir}/xbmc/addons/*/*.pvr |
511 |
%{_libdir}/xbmc/addons/*/*.vis |
512 |
%{_libdir}/xbmc/addons/*/*.xbs |
513 |
%{_libdir}/xbmc/addons/script.module.*/*.xml |
514 |
%{_libdir}/xbmc/system/ImageLib-*-linux.so |
515 |
%{_libdir}/xbmc/system/hdhomerun-*-linux.so |
516 |
%{_libdir}/xbmc/system/libcpluff-*-linux.so |
517 |
%{_libdir}/xbmc/system/libexif-*-linux.so |
518 |
%{_libdir}/xbmc/system/libid3tag-*-linux.so |
519 |
%{_libdir}/xbmc/system/players/dvdplayer/libdvdnav-*-linux.so |
520 |
%{_libdir}/xbmc/system/players/paplayer/adpcm-*-linux.so |
521 |
%{_libdir}/xbmc/system/players/paplayer/libsidplay2-*-linux.so |
522 |
%{_libdir}/xbmc/system/players/paplayer/nosefart-*-linux.so |
523 |
%{_libdir}/xbmc/system/players/paplayer/stsoundlibrary-*-linux.so |
524 |
%{_libdir}/xbmc/system/players/paplayer/timidity-*-linux.so |
525 |
%{_libdir}/xbmc/system/players/paplayer/vgmstream-*-linux.so |
526 |
%ifarch %ix86 |
527 |
%{_libdir}/xbmc/system/players/paplayer/SNESAPU-*-linux.so |
528 |
%endif |
529 |
%{_libdir}/xbmc/system/python/python*-*-linux.so |
530 |
%if !%system_python |
531 |
%{_libdir}/xbmc/addons/script.module.pil/* |
532 |
%{_libdir}/xbmc/addons/script.module.pysqlite/* |
533 |
%{_libdir}/xbmc/system/python/python*.zip |
534 |
%endif |
535 |
%dir %{_datadir}/xbmc |
536 |
%{_datadir}/xbmc/addons |
537 |
%{_datadir}/xbmc/FEH.py |
538 |
%{_datadir}/xbmc/language |
539 |
%{_datadir}/xbmc/media |
540 |
%{_datadir}/xbmc/sounds |
541 |
%{_datadir}/xbmc/system |
542 |
%{_datadir}/xbmc/userdata |
543 |
%{_datadir}/applications/xbmc.desktop |
544 |
%{_iconsdir}/hicolor/*/apps/xbmc.png |
545 |
|
546 |
%files eventclients-common |
547 |
%defattr(-,root,root) |
548 |
%python_sitelib/xbmc |
549 |
%dir %{_datadir}/pixmaps/xbmc |
550 |
%{_datadir}/pixmaps/xbmc/*.png |
551 |
|
552 |
%files eventclients-devel |
553 |
%defattr(-,root,root) |
554 |
%dir %{_includedir}/xbmc |
555 |
%{_includedir}/xbmc/xbmcclient.h |
556 |
|
557 |
%files eventclient-j2me |
558 |
%defattr(-,root,root) |
559 |
%{_bindir}/xbmc-j2meremote |
560 |
|
561 |
%files eventclient-ps3 |
562 |
%defattr(-,root,root) |
563 |
%{_bindir}/xbmc-ps3d |
564 |
%{_bindir}/xbmc-ps3remote |
565 |
|
566 |
%files eventclient-xbmc-send |
567 |
%defattr(-,root,root) |
568 |
%{_bindir}/xbmc-send |
569 |
|
570 |
%files eventclient-wiiremote |
571 |
%defattr(-,root,root) |
572 |
%{_bindir}/xbmc-wiiremote |
573 |
|
574 |
|