/[packages]/cauldron/xbmc/current/SPECS/xbmc.spec
ViewVC logotype

Contents of /cauldron/xbmc/current/SPECS/xbmc.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 223735 - (show annotations) (download)
Sat Mar 17 02:13:29 2012 UTC (12 years ago) by anssi
File size: 14573 byte(s)
- do not load non-matching subtitles from archives (upstream ticket
  #12719, fixed-don-t-load-non-matching-archived-subtitles-fix.patch,
  applied upstream)
- add a workaround for upgrading from old incompatible addon database
  (hack-workaround-for-old-incompatible-PVR-addon-datab.patch)

1
2 %define name xbmc
3 %define branch_release Eden
4 %define extra_feature pvr
5 %define version 11.0
6 %define snap 0
7 %define pre rc2
8 %define rel 3
9
10 %if %snap
11 %define branch %branch_release.%extra_feature
12 %else
13 %define branch %extra_feature
14 %endif
15
16 %define branchr %([ "%branch" ] && echo .%branch | tr - _)
17
18 Summary: XBMC Media Center - media player and home entertainment system
19 Name: %{name}
20 Version: %{version}
21 %if %snap
22 Release: %mkrel 0.git%snap%branchr.%rel
23 Source: %{name}-%branch_release-%snap.tar.xz
24 %else
25 %if %pre
26 Release: %mkrel 0.%pre%branchr.%rel
27 Source: %{name}-%{version}-%{branch_release}_%{pre}.tar.gz
28 %else
29 Release: %mkrel 1.%branch.%rel
30 Source: %{name}-%{version}.tar.gz
31 %endif
32 %endif
33 URL: http://xbmc.org/
34
35 # bring snapshot up-to-date with pvr branch
36 # https://github.com/opdenkamp/xbmc
37 # git diff 4246dffa9896d0c66dc79a97c2d3c8a3d4c4a183..opdenkamp/Eden-pvr
38 # rediffed with already-applied hunks removed
39 Patch0: xbmc-Eden-pvr-rc1.1.patch
40
41 # Disable updates of the default skin. Our one is the PVR version, while the
42 # one in the XBMC.org addon repository would be the vanilla one (Confluence
43 # is currently not in the addon repository, though, as of 2012-03).
44 Patch201: xbmc-disable-confluence-update.patch
45
46 # fix build with libpng 1.5
47 # https://github.com/xbmc/xbmc/pull/601
48 # patch of Zenkibou @ 2012-01-14
49 Patch210: xbmc-libpng-1.5.patch
50
51 # Make the MythTV PVR client buildable (submitted upstream):
52 Patch211: 0001-fixed-undefined-symbols-in-MythTV-PVR-client.patch
53
54 # fix for upstream #12719, applied upstream
55 Patch212: 0001-fixed-don-t-load-non-matching-archived-subtitles-fix.patch
56
57 # Hack to workaround upgrading from our old hack... see patch header for more
58 # details and an upstreaming plan.
59 Patch213: 0001-hack-workaround-for-old-incompatible-PVR-addon-datab.patch
60
61 # nosefart audio plugin and RSXS-0.9 based screensavers are GPLv2 only
62 # several eventclients are GPLv3+ (in subpackages)
63 # libhdhomerun is LGPLv3+ with an exception (always ok to link against it)
64 # the rest is GPLv2+
65 # both GPLv2+ and GPLv2 are mentioned because plugins are not part of core
66 # xbmc and therefore e.g. /usr/bin/xbmc is GPLv2+ with LGPLv3+ part
67 # as allowed by a license exception
68 License: GPLv2+ and GPLv2 and (LGPLv3+ with exceptions)
69 Group: Video
70 BuildRoot: %{_tmppath}/%{name}-root
71 BuildRequires: boost-devel
72 BuildRequires: ffmpeg-devel
73 BuildRequires: libmpeg2dec-devel
74 BuildRequires: libogg-devel
75 BuildRequires: libwavpack-devel
76 BuildRequires: python-devel
77 BuildRequires: glew-devel
78 BuildRequires: mesagl-devel
79 BuildRequires: mesaglu-devel
80 BuildRequires: libmad-devel
81 BuildRequires: libjpeg-devel
82 BuildRequires: libsamplerate-devel
83 BuildRequires: libvorbis-devel
84 BuildRequires: bzip2-devel
85 BuildRequires: mysql-devel
86 BuildRequires: liblzo2-devel
87 BuildRequires: zlib-devel
88 BuildRequires: openssl-devel
89 BuildRequires: fontconfig-devel
90 BuildRequires: fribidi-devel
91 BuildRequires: sqlite3-devel
92 BuildRequires: libpng-devel
93 BuildRequires: libpcre-devel
94 BuildRequires: libcdio-devel
95 BuildRequires: libmms-devel
96 BuildRequires: freetype2-devel
97 BuildRequires: libflac-devel
98 BuildRequires: libsmbclient-devel
99 BuildRequires: SDL_mixer-devel
100 BuildRequires: libjasper-devel
101 BuildRequires: libtiff-devel
102 BuildRequires: SDL_image-devel
103 BuildRequires: libalsa-devel
104 BuildRequires: enca-devel
105 BuildRequires: libxt-devel
106 BuildRequires: libxtst-devel
107 BuildRequires: libxmu-devel
108 BuildRequires: libxinerama-devel
109 BuildRequires: libcurl-devel
110 BuildRequires: dbus-devel
111 BuildRequires: hal-devel
112 BuildRequires: SDL-devel
113 BuildRequires: pulseaudio-devel
114 BuildRequires: avahi-common-devel
115 BuildRequires: avahi-client-devel
116 BuildRequires: libxrandr-devel
117 BuildRequires: vdpau-devel
118 BuildRequires: cwiid-devel
119 BuildRequires: libice-devel
120 BuildRequires: libx11-devel
121 BuildRequires: crystalhd-devel
122 BuildRequires: libmicrohttpd-devel
123 BuildRequires: libmodplug-devel
124 BuildRequires: ssh-devel
125 BuildRequires: libva-devel
126 BuildRequires: gettext-devel
127 BuildRequires: expat-devel
128 BuildRequires: libass-devel
129 BuildRequires: rtmp-devel
130 BuildRequires: bluray-devel
131 BuildRequires: bluez-devel
132 BuildRequires: udev-devel
133 BuildRequires: yajl-devel
134 BuildRequires: nfs-devel
135 BuildRequires: afpclient-devel
136 BuildRequires: libplist-devel
137 BuildRequires: shairport-devel
138 BuildRequires: cec-devel
139 BuildRequires: cmake
140 BuildRequires: gperf
141 BuildRequires: zip
142 %ifarch %ix86
143 BuildRequires: nasm
144 %endif
145 Requires: lsb-release
146 # dlopened (existence check required by rpm5 as it doesn't use stderr):
147 %define dlopenreq() %([ -e %{_libdir}/lib%{1}.so ] && rpm -qf --qf '%%{name}' $(readlink -f %{_libdir}/lib%{1}.so) 2>/dev/null || echo %{name})
148 Requires: %dlopenreq curl
149 Requires: %dlopenreq FLAC
150 Requires: %dlopenreq mad
151 Requires: %dlopenreq ogg
152 Requires: %dlopenreq vorbis
153 Requires: %dlopenreq vorbisenc
154 Requires: %dlopenreq vorbisfile
155 Requires: %dlopenreq modplug
156 Requires: %dlopenreq rtmp
157 Requires: %dlopenreq mpeg2
158 Requires: %dlopenreq ass
159 Requires: %dlopenreq bluray
160 Requires: %dlopenreq nfs
161 Requires: %dlopenreq afpclient
162 Requires: %dlopenreq plist
163 Requires: %dlopenreq shairport
164 Requires: %dlopenreq cec
165 # not nearly as common as the above, so just suggest instead for now:
166 Suggests: %dlopenreq crystalhd
167 # TODO: FEH.py is useless nowadays, drop it here and upstream.
168 # for FEH.py, to check current configuration is ok for xbmc:
169 Requires: xdpyinfo
170 Requires: glxinfo
171 # for FEH.py to allow it to give an error message (should be available already
172 # on most systems):
173 Requires: pygtk2
174 # for xbmc python scripts:
175 Requires: python-imaging
176 # Packages not shipped in core:
177 Suggests: %{_lib}lame0
178 Suggests: %{_lib}dvdcss2
179
180 # Packages have been merged
181 Obsoletes: xbmc-core < 9.11-1.svn29468
182 Obsoletes: xbmc-skin-confluence < 9.11-1.svn29468
183 Obsoletes: xbmc-skin-pm3-hd < 9.11-1.svn29468
184 Obsoletes: xbmc-nosefart < 9.11-1.svn29468
185 Obsoletes: xbmc-screensavers-default < 9.11-1.svn29468
186 Obsoletes: xbmc-script-examples < 9.11-1.svn27796
187 Obsoletes: xbmc-web-pm3 < 9.11-1.svn27796
188
189 %description
190 XBMC is an award-winning free and open source software media player
191 and entertainment hub for digital media.
192
193 While XBMC functions very well as a standard media player application
194 for your computer, it has been designed to be the perfect companion
195 for your HTPC. Supporting an almost endless range of remote controls,
196 and combined with its beautiful interface and powerful skinning
197 engine, XBMC feels very natural to use from the couch and is the
198 ideal solution for your home theater.
199
200 This is the stable version of XBMC from the %branch_release release branch,
201 with PVR support added from opdenkamp %branch_release-pvr branch. Support for
202 RAR files is not included due to license issues.
203
204 %package eventclients-common
205 Summary: Common files for XBMC eventclients
206 Group: Video
207 License: GPLv2+
208 %py_requires
209
210 %description eventclients-common
211 XBMC is an award-winning free and open source software media player
212 and entertainment hub for digital media.
213
214 This package contains common files for eventclients.
215
216 %package eventclients-devel
217 Summary: Development files for XBMC eventclients
218 Group: Development/C
219 License: GPLv2+
220
221 %description eventclients-devel
222 XBMC is an award-winning free and open source software media player
223 and entertainment hub for digital media.
224
225 This package contains files needed to build eventclients.
226
227 %package eventclient-wiiremote
228 Summary: Wii Remote eventclient for XBMC
229 Group: Video
230 License: GPLv3+
231 Requires: %{name}-eventclients-common = %{version}-%{release}
232
233 %description eventclient-wiiremote
234 XBMC is an award-winning free and open source software media player
235 and entertainment hub for digital media.
236
237 This package contains the Wii Remote eventclient.
238
239 %package eventclient-j2me
240 Summary: J2ME eventclient for XBMC
241 Group: Video
242 License: GPLv2+
243 Requires: python-pybluez
244 Requires: %{name}-eventclients-common = %{version}-%{release}
245
246 %description eventclient-j2me
247 XBMC is an award-winning free and open source software media player
248 and entertainment hub for digital media.
249
250 This package contains the J2ME eventclient, providing a bluetooth
251 server that can communicate with a mobile tool supporting J2ME.
252
253 %package eventclient-ps3
254 Summary: PS3 eventclients for XBMC
255 Group: Video
256 License: GPLv2+
257 Requires: python-pybluez
258 Requires: %{name}-eventclients-common = %{version}-%{release}
259 # requires via zeroconf.py, only used by xbmc-ps3d:
260 Requires: python-gobject avahi-python python-dbus
261 # TODO merge all these?, and TODO zeroconf.py to a correct package? :)
262 Obsoletes: eventclient-ps3remote < 9.11-1.svn31936
263
264 %description eventclient-ps3
265 XBMC is an award-winning free and open source software media player
266 and entertainment hub for digital media.
267
268 This package contains the PS3 remote and sixaxis eventclients.
269
270 %package eventclient-xbmc-send
271 Summary: PS3 eventclient for XBMC
272 Group: Video
273 License: GPLv2+
274 Requires: %{name}-eventclients-common = %{version}-%{release}
275
276 %description eventclient-xbmc-send
277 XBMC is an award-winning free and open source software media player
278 and entertainment hub for digital media.
279
280 This package contains the xbmc-send eventclient.
281
282 %prep
283 %if %snap
284 %setup -q -n %name-%branch_release-%snap
285 %else
286 %if %pre
287 %setup -q -n %{name}-%{version}-%{branch_release}_%{pre}
288 %else
289 %setup -q
290 %endif
291 %endif
292 %apply_patches
293 # otherwise backups end up in binary rpms
294 find -type f \( -name '*.00??' -o -name '*.00??~' \) -print -delete
295
296 # remove prebuilt libraries
297 find -type f \( -iname '*.so' -o -iname '*.dll' -o -iname '*.exe' \) -delete
298
299 # GPLv2 only
300 rm -r lib/cmyth/Win32/include/mysql
301 # BSD 4-clause
302 rm -r xbmc/cores/DllLoader/exports/emu_socket
303
304 # win32 only
305 rm -rf system/players/dvdplayer/etc/fonts
306
307 %build
308 %if %snap
309 export GIT_REV=%snap
310 %else
311 export GIT_REV="tarball"
312 %endif
313 ./bootstrap
314
315 # due to xbmc modules that use symbols from xbmc binary
316 # and are not using libtool
317 %define _disable_ld_no_undefined 1
318
319 # Workaround configure using git to override GIT_REV (TODO: fix it properly)
320 export ac_cv_prog_HAVE_GIT="no"
321
322 %configure2_5x \
323 --disable-debug \
324 --disable-ccache \
325 --enable-external-libraries \
326 --disable-non-free \
327 --disable-dvdcss \
328 --enable-goom \
329 --with-lirc-device=/var/run/lirc/lircd
330
331 # non-free = unrar
332 # dvdcss is handled via dlopen when disabled
333
334 %make
335 %make -C tools/EventClients wiimote
336
337 %install
338 rm -rf %{buildroot}
339 %makeinstall_std
340 %makeinstall_std -C tools/EventClients
341
342 # unused
343 rm %{buildroot}%{_datadir}/xsessions/XBMC.desktop
344 # our version of the above:
345 install -d -m755 %{buildroot}%{_sysconfdir}/X11/wmsession.d
346 cat > %{buildroot}%{_sysconfdir}/X11/wmsession.d/15XBMC <<EOF
347 NAME=XBMC
348 ICON=xbmc.png
349 DESC=XBMC Media Center
350 EXEC=%{_bindir}/xbmc-standalone
351 SCRIPT:
352 exec %{_bindir}/xbmc-standalone
353 EOF
354
355 # unused files, TODO fix this upstream:
356 find %{buildroot}%{_datadir}/xbmc/addons/skin.*/media -name '*.png' -delete
357
358 ( # for IFS and +x
359 # Check for issues in ELF binaries
360 undefined=
361 fhserr=
362 echo Silencing output of undefined symbol and FHS conformance checks
363 set +x
364 IFS=$'\n'
365 for file in $(find %{buildroot} -type f); do
366 type="$(file "$file")"
367 echo "$type" | grep -q "ELF" || continue
368
369 # Check that a binary file is not in datadir:
370 echo "$file" | grep -q "%{_datadir}" && fhserr="${fhserr}$file\n"
371
372 # check for undefined symbols in XBMC modules
373 echo "$type" | grep -q "shared object" || continue
374 for symbol in $(LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir} ldd -r "$file" 2>&1 | grep undefined | awk '{ print $3 }'); do
375 # undefined symbols may also be provided by XBMC:
376 nm -f posix -D --no-demangle --defined-only %{buildroot}%{_libdir}/xbmc/xbmc.bin | grep -q "^$symbol " && continue
377 # The symbol was not provided by XBMC.
378 # Check if it is available through its dependencies:
379 for filename in $(objdump -p %{buildroot}%{_libdir}/xbmc/xbmc.bin | grep NEEDED | awk '{ print $2 }'); do
380 depfile="/%{_lib}/$filename"
381 [ -e "$depfile" ] || depfile="%{_libdir}/$filename"
382 nm -f posix -D --no-demangle --defined-only $depfile | grep -q "^$symbol " && continue 2
383 done
384 # Euphoria references rsxs PNG class, but it is never used at runtime,
385 # so it results in no errors due to RTLD_LAZY being used by xbmc module loader.
386 case $file:$symbol in */Euphoria.xbs:_ZN3PNG*) continue; esac
387 # the symbol was not found
388 undefined="${undefined}$file: $symbol\n"
389 done
390 done
391 ok=1
392 [ -n "$undefined" ] && echo -e "$undefined" && echo "Undefined symbols!" && ok=
393 [ -n "$fhserr" ] && echo -e "$fhserr" && echo "Binaries in datadir!" && ok=
394 [ -n "$ok" ]
395 )
396
397 %clean
398 rm -rf %{buildroot}
399
400 %files
401 %defattr(-,root,root)
402 %doc %{_docdir}/xbmc
403 %{_sysconfdir}/X11/wmsession.d/15XBMC
404 %{_bindir}/xbmc
405 %{_bindir}/xbmc-standalone
406 %dir %{_libdir}/xbmc
407 %dir %{_libdir}/xbmc/addons
408 %dir %{_libdir}/xbmc/system
409 %dir %{_libdir}/xbmc/system/players
410 %dir %{_libdir}/xbmc/system/players/dvdplayer
411 %dir %{_libdir}/xbmc/system/players/paplayer
412 %{_libdir}/xbmc/xbmc.bin
413 %{_libdir}/xbmc/xbmc-xrandr
414 %dir %{_libdir}/xbmc/addons/*
415 %{_libdir}/xbmc/addons/*/*.so
416 %{_libdir}/xbmc/addons/*/*.pvr
417 %{_libdir}/xbmc/addons/*/*.vis
418 %{_libdir}/xbmc/addons/*/*.xbs
419 %{_libdir}/xbmc/system/ImageLib-*-linux.so
420 %{_libdir}/xbmc/system/hdhomerun-*-linux.so
421 %{_libdir}/xbmc/system/libcmyth-*-linux.so
422 %{_libdir}/xbmc/system/libcpluff-*-linux.so
423 %{_libdir}/xbmc/system/libexif-*-linux.so
424 %{_libdir}/xbmc/system/libid3tag-*-linux.so
425 %{_libdir}/xbmc/system/players/dvdplayer/libdvdnav-*-linux.so
426 %{_libdir}/xbmc/system/players/paplayer/adpcm-*-linux.so
427 %{_libdir}/xbmc/system/players/paplayer/libsidplay2-*-linux.so
428 %{_libdir}/xbmc/system/players/paplayer/nosefart-*-linux.so
429 %{_libdir}/xbmc/system/players/paplayer/stsoundlibrary-*-linux.so
430 %{_libdir}/xbmc/system/players/paplayer/timidity-*-linux.so
431 %{_libdir}/xbmc/system/players/paplayer/vgmstream-*-linux.so
432 %ifarch %ix86
433 %{_libdir}/xbmc/system/players/paplayer/SNESAPU-*-linux.so
434 %endif
435 %dir %{_datadir}/xbmc
436 %{_datadir}/xbmc/addons
437 %{_datadir}/xbmc/FEH.py
438 %{_datadir}/xbmc/language
439 %{_datadir}/xbmc/media
440 %{_datadir}/xbmc/sounds
441 %{_datadir}/xbmc/system
442 %{_datadir}/xbmc/userdata
443 %{_datadir}/applications/xbmc.desktop
444 %{_iconsdir}/hicolor/*/apps/xbmc.png
445
446 %files eventclients-common
447 %defattr(-,root,root)
448 %python_sitelib/xbmc
449 %dir %{_datadir}/pixmaps/xbmc
450 %{_datadir}/pixmaps/xbmc/*.png
451
452 %files eventclients-devel
453 %defattr(-,root,root)
454 %dir %{_includedir}/xbmc
455 %{_includedir}/xbmc/xbmcclient.h
456
457 %files eventclient-j2me
458 %defattr(-,root,root)
459 %{_bindir}/xbmc-j2meremote
460
461 %files eventclient-ps3
462 %defattr(-,root,root)
463 %{_bindir}/xbmc-ps3d
464 %{_bindir}/xbmc-ps3remote
465
466 %files eventclient-xbmc-send
467 %defattr(-,root,root)
468 %{_bindir}/xbmc-send
469
470 %files eventclient-wiiremote
471 %defattr(-,root,root)
472 %{_bindir}/xbmc-wiiremote
473
474

  ViewVC Help
Powered by ViewVC 1.1.30