2 # - bconds: altivec joystick lcd
3 # - lcd? (app-misc/lcdproc)
4 # - alpha, sparc, ppc arches?
8 # MythTV now uses a fairly intelligent cpu-detection script, so if you are
9 # building an rpm by hand on the machine it will be used on, I encourage you
10 # to use "--with cpu_autodetect" to let mythtv decide for you.
13 %bcond_with cpu_autodetect # enable CPU autodetection at compile time (sets "-march", "-mcpu" compile flags really)
14 %bcond_without lirc # lirc support
15 %bcond_without alsa # alsa support
16 %bcond_without oss # oss support
17 %bcond_with arts # arts support
18 %bcond_without jack # jack audio connection kit
19 %bcond_without opengl # opengl vsync
20 %bcond_without dvb # DVB support
21 %bcond_without xrandr # disable X11 resolution switching
22 %bcond_without ivtv # ivtv support (PVR-250, PVR-350) NFY
24 %bcond_with firewire # ieee1394 (NFY)
25 %bcond_without xvmc # do not use XvMCW
26 %bcond_without vdpau # disable nvidia vdpau support
27 %bcond_without fftw3 # disable fftw3 support
28 %bcond_with mmx # enable MMX
29 %bcond_with dshowserver # enable directshow codecs server
31 %bcond_with nvidia_headers # build vdpau support with nvidia headers
34 # enable mmx automatically on arches having it
35 %ifarch %{ix86} %{x8664}
36 %ifnarch i386 i486 i586 i686
41 # dshowserver is exclusive arch for x86 x86_64 only
42 %ifnarch %{ix86} %{x8664}
43 %undefine with_dshowserver
48 Summary: A personal video recorder (PVR) application
49 Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR)
54 Group: Applications/Multimedia
55 Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}%{snap}.tar.bz2
56 # Source0-md5: 1e4be634b137e5b944c94b418d8c3791
57 Source1: mythbackend.sysconfig
58 Source2: mythbackend.init
59 Source3: mythbackend.logrotate
60 Source5: pld-mythfrontend.desktop
61 # Source5-md5: f37a903ac97463683bebacdf29406951
62 Source6: pld-mythfrontend.png
63 # Source6-md5: bf76bd1463a022e174e4af976a03e678
65 # Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
66 #Patch100: %{name}-branch.diff
67 Patch0: %{name}-configure.patch
68 #Patch1: %{name}-mythstream.patch
69 #Patch2: %{name}-pl.patch
70 Patch3: %{name}-sbinpath.patch
71 #Patch4: %{name}-dvdnav-shared.patch
72 Patch20: %{name}-dshowserver_trunk.patch
73 URL: http://www.mythtv.org/
74 %{?without_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-libs}
75 %{?without_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-devel}
76 %{?with_nvidia_headers:%{?with_vdpau:BuildRequires: xorg-driver-video-nvidia-devel}}
77 BuildRequires: Mesa-libGLU-devel
78 #BuildRequires: OpenGL-GLU-devel
79 BuildRequires: OpenGL-devel
80 BuildRequires: Qt3Support-devel
81 BuildRequires: QtCore-devel
82 BuildRequires: QtGui-devel
83 BuildRequires: QtNetwork-devel
84 BuildRequires: QtOpenGL-devel
85 BuildRequires: QtScript-devel
86 BuildRequires: QtSql-devel
87 BuildRequires: QtWebKit-devel
88 BuildRequires: QtXml-devel
89 %{?with_alsa:BuildRequires: alsa-lib-devel}
90 %{?with_arts:BuildRequires: arts-devel >= 13:0.9.5}
91 BuildRequires: ffmpeg-devel
92 BuildRequires: freetype-devel >= 1:2.0.0
93 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
94 BuildRequires: lame-libs-devel
95 %{?with_firewire:BuildRequires: libavc1394-devel}
96 BuildRequires: libdts-devel
97 %{?with_dvb:BuildRequires: libdvb-devel}
98 BuildRequires: libdvdnav-devel
99 %{?with_fftw3:BuildRequires: fftw3-devel,fftw3-single-devel}
100 %{?with_firewire:BuildRequires: libiec61883-devel}
101 %{?with_firewire:BuildRequires: libraw1394-devel}
102 BuildRequires: linux-libc-headers >= 7:2.6.10
103 %{?with_lirc:BuildRequires: lirc-devel}
104 BuildRequires: mysql-devel
105 #BuildRequires: patchutils
106 BuildRequires: perl-devel
107 BuildRequires: perl-tools-pod
108 BuildRequires: pkgconfig
109 BuildRequires: python-devel
110 BuildRequires: qt4-build
111 BuildRequires: qt4-qmake
112 BuildRequires: rpm-pythonprov
113 BuildRequires: rpmbuild(macros) >= 1.228
114 BuildRequires: sed >= 4.0
115 %{?without_nvidia_headers:%{?with_vdpau:BuildRequires: libvdpau-devel}}
116 BuildRequires: xorg-lib-libXext-devel
117 %{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
118 BuildRequires: xorg-lib-libXxf86vm-devel
120 BuildRequires: perl-ExtUtils-MakeMaker
121 ExclusiveArch: %{ix86} %{x8664} ppc
122 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
124 %define myth_api_version %(echo %{version} | cut -d. -f1,2)
127 MythTV implements the following PVR features, and more, with a unified
129 - Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.
130 - Video compression using RTjpeg or MPEG-4
131 - Program listing retrieval using XMLTV
132 - Themable, semi-transparent on-screen display
133 - Electronic program guide
134 - Scheduled recording of TV programs
135 - Resolution of conflicts between scheduled recordings
136 - Basic video editing
138 %description -l pl.UTF-8
139 MythTV implementuje następujące możliwości PVR, a nawet więcej, wraz z
140 ujednoliconym interfejsem graficznym:
141 - podstawowa funkcjonalność "live-tv"; pauza, szybkie przewijanie,
142 przewijanie "żywej" telewizji
143 - kompresja obrazu przy użyciu RTjpeg lub MPEG-4
144 - odczyt listy programów przy użyciu XMLTV
145 - pseudoprzezroczyste wyświetlanie na obrazie (OSD) z obsługą motywów
146 - elektroniczny przewodnik po programie
147 - planowane nagrywanie programów telewizyjnych
148 - rozwiązywanie konfliktów między planowanymi nagraniami
149 - podstawowa edycja obrazu
152 Summary: Server component of mythtv (a PVR)
153 Summary(pl.UTF-8): Część serwerowa mythtv (PVR)
154 Group: Applications/Multimedia
155 Requires(post,preun): /sbin/chkconfig
156 Requires(postun): /usr/sbin/groupdel
157 Requires(postun): /usr/sbin/userdel
158 Requires(pre): /bin/id
159 Requires(pre): /usr/bin/getgid
160 Requires(pre): /usr/sbin/groupadd
161 Requires(pre): /usr/sbin/useradd
162 Requires: libmyth = %{version}-%{release}
163 Requires: mythtv = %{version}-%{release}
165 Provides: group(mythtv)
166 Provides: user(mythtv)
169 MythTV provides a unified graphical interface for recording and
170 viewing television programs. Refer to the mythtv package for more
173 This package contains only the server software, which provides video
174 and audio capture and encoding services. In order to be useful, it
175 requires a mythtv-frontend installation, either on the same system or
176 one reachable via the network.
178 %description backend -l pl.UTF-8
179 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
180 oglądania programów telewizyjnych. Więcej informacji w pakiecie
183 Ten pakiet zawiera tylko oprogramowanie serwerowe, udostępniające
184 usługi przechwytywania i kodowania obrazu i dźwięku. Aby było
185 przydatne, wymaga instalacji mythtv-frontend - na tym samym systemie,
186 albo innym osiągalnym po sieci.
189 Summary: Client component of mythtv (a PVR)
190 Summary(pl.UTF-8): Część kliencka mythtv (PVR)
191 Group: Applications/Multimedia
192 Requires: libmyth = %{version}-%{release}
193 Requires: mythtv = %{version}-%{release}
194 Requires: mythtv-themes = %{version}-%{release}
195 Provides: mythtv-frontend-api = %{myth_api_version}
197 %description frontend
198 MythTV provides a unified graphical interface for recording and
199 viewing television programs. Refer to the mythtv package for more
202 This package contains only the client software, which provides a
203 front-end for playback and configuration. It requires access to a
204 mythtv-backend installation, either on the same system or one
205 reachable via the network.
207 %description frontend -l pl.UTF-8
208 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
209 oglądania programów telewizyjnych. Więcej informacji w pakiecie
212 Ten pakiet zawiera tylko oprogramowanie klienckie, dostarczające
213 frontend do odtwarzania i konfiguracji. Wymaga dostępu do instalacji
214 mythtv-backend - na tym samym systemie, albo innym osiągalnym po
218 Summary: Setup the mythtv backend
219 Summary(pl.UTF-8): Konfigurator backendu mythtv
220 Group: Applications/Multimedia
221 Requires: libmyth = %{version}-%{release}
224 MythTV provides a unified graphical interface for recording and
225 viewing television programs. Refer to the mythtv package for more
228 This package contains only the setup software for configuring the
231 %description setup -l pl.UTF-8
232 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
233 oglądania programów telewizyjnych. Więcej informacji w pakiecie
236 Ten pakiet zawiera tylko program do konfigurowania backendu mythtv.
239 Summary: Base themes for mythtv's frontend
240 Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv
242 Requires: %{name}-frontend = %{version}-%{release}
245 MythTV provides a unified graphical interface for recording and
246 viewing television programs. Refer to the mythtv package for more
249 This package contains only the base themes used by the frontend and
252 %description themes -l pl.UTF-8
253 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
254 oglądania programów telewizyjnych. Więcej informacji w pakiecie
257 Ten pakiet zawiera tylko podstawowe motywy używane przez frontend oraz
261 Summary: Library providing mythtv support
262 Summary(pl.UTF-8): Biblioteka udostępniająca obsługę mythtv
264 Requires: QtSql-mysql
265 Requires: freetype >= 1:2.0.0
268 %description -n libmyth
269 Common library code for MythTV and add-on modules (development) MythTV
270 provides a unified graphical interface for recording and viewing
271 television programs. Refer to the mythtv package for more information.
273 %description -n libmyth -l pl.UTF-8
274 Wspólny kod biblioteki dla MythTV i dodatkowych modułów MythTV
275 dostarczający ujednolicony interfejs graficzny do nagrywania i
276 oglądania programów telewizyjnych. Więcej informacji w pakiecie
279 %package -n libmyth-devel
280 Summary: Development files for libmyth
281 Summary(pl.UTF-8): Pliki nagłówkowe libmyth
282 Group: Development/Libraries
283 Requires: libmyth = %{version}-%{release}
285 %description -n libmyth-devel
286 This package contains the header files for developing add-ons for
289 %description -n libmyth-devel -l pl.UTF-8
290 Ten pakiet zawiera pliki nagłówkowe do tworzenia dodatków dla mythtv.
292 %package -n libmyth-static
293 Summary: Static libmyth library
294 Summary(pl.UTF-8): Statyczna biblioteka libmyth
295 Group: Development/Libraries
296 Requires: libmyth-devel = %{version}-%{release}
298 %description -n libmyth-static
299 Static libmyth library.
301 %description -n libmyth-static -l pl.UTF-8
302 Statyczna biblioteka libmyth.
304 %package -n perl-MythTV
305 Summary: MythTV Perl bindings
306 Summary(pl.UTF-8): Interfejs Perla dla MythTV
309 %description -n perl-MythTV
310 MythTV Perl bindings.
312 %description -n perl-MythTV -l pl.UTF-8
313 Ten pakiet zawiera moduły Perla do tworzenia dodatków dla mythtv.
315 %package -n python-MythTV
316 Summary: MythTV Python bindings
317 Summary(pl.UTF-8): Interfejs Pythona dla MythTV
319 Requires: MySQL-python
321 %description -n python-MythTV
322 MythTV Python bindings.
324 %description -n python-MythTV -l pl.UTF-8
325 Ten pakiet zawiera moduły Pythona do tworzenia dodatków dla mythtv.
329 %setup -q -n %{name}-%{version}%{snap}
338 %{?with_dshowserver:%patch20 -p1}
339 rm -rf database/old # not supported in PLD
341 # lib64 fix - enable to update patch
342 %if %{_lib} != "lib" && 0
343 find '(' -name '*.[ch]' -o -name '*.cpp' -o -name '*.pro' ')' | \
344 xargs grep -l /lib . | xargs sed -i -e '
345 s,/''usr/lib/,/%{_libdir}/,g
346 s,/''lib/mythtv,/%{_lib}/mythtv,g
347 s,{PREFIX}/lib$,{PREFIX}/%{_lib},g
352 # Assigning null to QMAKE_LIBDIR_QT will prevent makefiles contain
353 # -L$(QTDIR)/%{_lib} and -Wl,-rpath,$(QTDIR)/%{_lib}. And that will
354 # prevent compiler finding libs from system when they should be looked
355 # from current buildtree.
356 # but that made it link with -lqt which doesn't exist, instead of -lqt-mt
357 # so we make QMAKE wrapper which will do sed subst after calling
358 # qmake. this is the wrapper.
359 cat > qmake-wrapper.sh <<'EOF'
362 while [ $# -gt 0 ]; do
376 if [ "$makefile" ]; then
378 s;-Wl,-rpath,$(QTDIR)/%{_lib};;
379 s;-L$(QTDIR)/%{_lib};;
383 chmod +x qmake-wrapper.sh
385 # move perl bindings to vendor prefix
386 sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \
387 bindings/perl/perl.pro
391 %if %{with cpu_autodetect}
392 # Make sure we have /proc mounted
393 if [ ! -r /proc/cpuinfo ]; then
394 echo "You need to have /proc mounted in order to build with cpu_autodetect!"
400 --prefix=%{_prefix} \
401 --libdir=%{_libdir} \
402 --libdir-name=`basename %{_libdir}` \
403 --mandir=%{_mandir} \
404 --disable-distcc --disable-ccache \
405 --compile-type=%{?debug:debug}%{!?debug:release} \
406 --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \
407 --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \
408 %if %{with cpu_autodetect}
415 --cpu=i386 --tune=pentium4 \
421 %{?with_mmx:--enable-mmx} \
423 %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \
424 --%{?with_arts:en}%{!?with_arts:dis}able-audio-arts \
425 --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \
426 --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \
427 --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \
428 --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \
429 --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
430 --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \
431 --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \
432 --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \
433 --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \
434 --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \
435 --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \
436 --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \
437 --%{?with_directfb:en}%{!?with_directfb:dis}able-directfb \
438 --%{?with_fftw3:en}%{!?with_fftw3:dis}able-libfftw3 \
442 %{_libdir}/qt4/bin/qmake mythtv.pro
443 #sed -i -e 's/usr\/\/usr/usr/g' config.ep
450 rm -rf $RPM_BUILD_ROOT
451 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} \
452 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_desktopdir}} \
453 $RPM_BUILD_ROOT/var/{cache,lib,log,run}/mythtv \
454 $RPM_BUILD_ROOT%{_libdir}/mythtv \
455 $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins \
456 $RPM_BUILD_ROOT%{_pixmapsdir}
459 INSTALL_ROOT=$RPM_BUILD_ROOT
461 # required to build some plugins
462 # install libs/libavcodec/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
463 # libs/libavformat/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
464 # libs/libavutil/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv
466 # Install the files that we added on top of mythtv's own stuff
467 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend
468 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend
469 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend
470 %{?with_dshowserver:install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv}
473 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
474 install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir}
476 # Install settings.pro so people can see the build options we used
477 install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build
478 install config.mak settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build
480 for p in mythfrontend; do
481 for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/i18n/${p}_*.qm; do
482 echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*${p}_\(.*\).qm\),%%lang(\2) \1,"
486 # glibc language codes. attempt was made to change it on libmyth side,
487 # but that was just asking for trouble due large coverage of
488 # language.lower() usage.
490 s,%%lang(en_gb),%%lang(en_GB),
491 s,%%lang(zh_tw),%%lang(zh_TW),
492 s,%%lang(pt_br),%%lang(pt_BR),
495 rm -rf mythtvosd mythwelcome mythlcdserver
496 install -d mythtvosd mythwelcome
497 cp -a programs/mythtvosd/{README,*.xml} mythtvosd
498 cp -a programs/mythwelcome/README mythwelcome
499 cp -a programs/mythlcdserver/README mythlcdserver
502 rm -rf $RPM_BUILD_ROOT
504 # Empty newline after %addusertogroup %{name} video below is intended.
505 # Do not remove it until rpm stop joining lines with that macro.
507 %groupadd -g 149 %{name}
508 %useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name}
509 %addusertogroup %{name} video
510 %addusertogroup %{name} audio
513 /sbin/chkconfig --add mythbackend
516 if [ "$1" = "0" ]; then
517 %service -q mythbackend stop
518 /sbin/chkconfig --del mythbackend
522 if [ "$1" = "0" ]; then
527 %post -n libmyth -p /sbin/ldconfig
528 %postun -n libmyth -p /sbin/ldconfig
531 if [ "$1" = 1 ]; then
532 %banner -e %{name}-setup <<EOF
533 To grant mysql permissions to mythtv, please run
534 zcat %{_docdir}/%{name}-setup-%{version}/database/mc.sql.gz | mysql
539 %defattr(644,root,root,755)
540 %doc README* UPGRADING AUTHORS FAQ
541 %doc docs contrib config
542 %doc keys.txt mythtvosd mythwelcome mythlcdserver
545 %defattr(644,root,root,755)
546 %attr(755,root,root) %{_sbindir}/mythbackend
547 %attr(755,root,root) %{_sbindir}/mythcommflag
548 %attr(755,root,root) %{_bindir}/mythfilldatabase
549 %attr(755,root,root) %{_sbindir}/mythjobqueue
550 %attr(755,root,root) %{_sbindir}/mythlcdserver
551 %attr(755,root,root) %{_bindir}/mythtranscode
552 %attr(755,root,root) %{_bindir}/mythreplex
553 %attr(775,root,mythtv) %dir /var/lib/mythtv
554 %attr(775,root,mythtv) %dir /var/cache/mythtv
555 %attr(775,root,mythtv) %dir /var/run/mythtv
556 %attr(754,root,root) /etc/rc.d/init.d/mythbackend
557 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend
558 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mythbackend
559 %attr(775,root,mythtv) %dir %{_localstatedir}/log/mythtv
561 %files frontend -f mythfrontend.lang
562 %defattr(644,root,root,755)
563 %attr(755,root,root) %{_bindir}/mythfrontend
564 %attr(755,root,root) %{_bindir}/mythshutdown
565 %attr(755,root,root) %{_bindir}/mythavtest
566 %attr(755,root,root) %{_bindir}/mythtvosd
567 %attr(755,root,root) %{_bindir}/mythwelcome
568 %dir %{_datadir}/mythtv
569 %dir %{_datadir}/mythtv/themes
570 %dir %{_libdir}/mythtv
571 %{_datadir}/mythtv/*.xml
572 %dir %{_libdir}/mythtv/filters
573 %dir %{_libdir}/mythtv/plugins
574 %attr(755,root,root) %{_libdir}/mythtv/filters/*.so
575 %{_datadir}/mythtv/*.ttf
576 %dir %{_datadir}/mythtv/i18n
577 %if %{with dshowserver}
578 %{_datadir}/mythtv/dshowcodecs
580 %{_desktopdir}/*.desktop
584 %defattr(644,root,root,755)
586 %attr(755,root,root) %{_bindir}/mythtv-setup
589 %defattr(644,root,root,755)
590 %{_datadir}/mythtv/themes/*
593 %defattr(644,root,root,755)
594 %attr(755,root,root) %{_libdir}/lib*.so*
595 %attr(755,root,root) %{_libdir}/lib*.a
596 %{_datadir}/mythtv/*.pl
598 %files -n libmyth-devel
599 %defattr(644,root,root,755)
600 %attr(755,root,root) %{_libdir}/*.so
602 %{_datadir}/mythtv/build
604 %files -n libmyth-static
605 %defattr(644,root,root,755)
607 %files -n perl-MythTV
608 %defattr(644,root,root,755)
609 %{perl_vendorlib}/MythTV.pm
610 %dir %{perl_vendorlib}/MythTV
611 %{perl_vendorlib}/MythTV/*.pm
612 %dir %{perl_vendorlib}/IO/Socket/INET
613 %{perl_vendorlib}/IO/Socket/INET/MythTV.pm
614 %exclude %{perl_vendorarch}/auto/MythTV/.packlist
616 %files -n python-MythTV
617 %defattr(644,root,root,755)
618 %dir %{py_sitescriptdir}/MythTV
619 # XXX: package .py[co] only
620 %{py_sitescriptdir}/MythTV/*
621 %{py_sitescriptdir}/*.egg-info