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

  ViewVC Help
Powered by ViewVC 1.1.30