/[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 226110 - (hide annotations) (download)
Sat Mar 24 20:46:00 2012 UTC (12 years ago) by anssi
File size: 14264 byte(s)
- XBMC 11.0 Eden final
- update PVR patchset snapshot
- drop patches applied upstream (libpng1.5 build fix, archived subtitle
  loading fix)

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

  ViewVC Help
Powered by ViewVC 1.1.30