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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 217508 - (hide 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 ennael 78010
2     %define name xbmc
3 anssi 217508 %define branch_release Eden
4 ennael 78010 %define extra_feature pvr
5 anssi 217508 %define version 11.0
6 anssi 93516 %define snap 0
7 anssi 217508 %define pre rc2
8     %define rel 1
9 ennael 78010
10 anssi 93516 %if %snap
11 ennael 78010 %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 anssi 93516 %if %snap
22 anssi 217508 Release: %mkrel 0.git%snap%branchr.%rel
23 anssi 93516 Source: %{name}-%branch_release-%snap.tar.xz
24 ennael 78010 %else
25 anssi 217508 %if %pre
26     Release: %mkrel 0.%pre%branchr.%rel
27     Source: %{name}-%{version}-%{branch_release}_%{pre}.tar.gz
28     %else
29 ennael 78010 Release: %mkrel 1.%branch.%rel
30     Source: %{name}-%{version}.tar.gz
31     %endif
32 anssi 217508 %endif
33 ennael 78010 URL: http://xbmc.org/
34    
35     # bring snapshot up-to-date with pvr branch
36 anssi 217508 # 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 ennael 78010
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 anssi 217508 # is currently not in the addon repository, though, as of 2012-03).
44 anssi 162472 Patch201: xbmc-disable-confluence-update.patch
45 ennael 78010
46 anssi 217508 # 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 ennael 78010
51 anssi 217508 # Make the MythTV PVR client buildable:
52     Patch211: 0001-fixed-undefined-symbols-in-MythTV-PVR-client.patch
53 ennael 78010
54     # nosefart audio plugin and RSXS-0.9 based screensavers are GPLv2 only
55 anssi 217508 # several eventclients are GPLv3+ (in subpackages)
56     # libhdhomerun is LGPLv3+ with an exception (always ok to link against it)
57 ennael 78010 # the rest is GPLv2+
58 anssi 217508 # 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 ennael 78010 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 anssi 217508 BuildRequires: libpng-devel
86 ennael 78010 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 anssi 217508 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 ennael 78010 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 anssi 217508 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 ennael 78010 # 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 anssi 217508 # Packages not shipped in core:
169 ennael 78010 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 anssi 217508 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 ennael 78010
196     %package eventclients-common
197     Summary: Common files for XBMC eventclients
198     Group: Video
199 anssi 217508 License: GPLv2+
200 ennael 78010 %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 anssi 217508 License: GPLv2+
212 ennael 78010
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 anssi 217508 License: GPLv3+
223 ennael 78010 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 anssi 217508 License: GPLv2+
235 ennael 78010 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 anssi 217508 License: GPLv2+
249 ennael 78010 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 anssi 217508 License: GPLv2+
266 ennael 78010 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 anssi 93516 %if %snap
276     %setup -q -n %name-%branch_release-%snap
277 ennael 78010 %else
278 anssi 217508 %if %pre
279     %setup -q -n %{name}-%{version}-%{branch_release}_%{pre}
280     %else
281 ennael 78010 %setup -q
282     %endif
283 anssi 217508 %endif
284 ennael 78010 %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 anssi 217508 rm -r lib/cmyth/Win32/include/mysql
293 ennael 78010 # 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 anssi 93516 %if %snap
301     export GIT_REV=%snap
302 ennael 78010 %else
303 anssi 93516 export GIT_REV=$(basename %SOURCE0)
304 ennael 78010 %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 anssi 93516 # Workaround configure using git to override GIT_REV (TODO: fix it properly)
312     export ac_cv_prog_HAVE_GIT="no"
313    
314 ennael 78010 %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 anssi 217508 # non-free = unrar
324 ennael 78010 # 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 anssi 162472 echo Silencing output of undefined symbol and FHS conformance checks
355 ennael 78010 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 anssi 217508 case $file:$symbol in */Euphoria.xbs:_ZN3PNG*) continue; esac
379 ennael 78010 # 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 anssi 217508 %{_libdir}/xbmc/system/libcmyth-*-linux.so
414 ennael 78010 %{_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