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 pulseaudio # pulseaudio support
20 %bcond_without opengl # opengl vsync
21 %bcond_without dvb # DVB support
22 %bcond_without xrandr # disable X11 resolution switching
23 %bcond_without ivtv # ivtv support (PVR-250, PVR-350) NFY
25 %bcond_without firewire # ieee1394 (NFY)
26 %bcond_without xvmc # do not use XvMCW
27 %bcond_without vdpau # disable nvidia vdpau support
28 %bcond_without fftw3 # disable fftw3 support
29 %bcond_with mmx # enable MMX
30 %bcond_with dshowserver # enable directshow codecs server
32 %bcond_with nvidia_headers # build vdpau support with nvidia headers
35 # enable mmx automatically on arches having it
36 %ifarch %{ix86} %{x8664}
37 %ifnarch i386 i486 i586 i686
42 # dshowserver is exclusive arch for x86 x86_64 only
43 %ifnarch %{ix86} %{x8664}
44 %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}.tar.bz2
56 # Source0-md5: e8f8b5b6a51cd7be700e215b2a1bf2c0
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 %{!?with_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-libs}
75 %{!?with_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 %{?with_pulseaudio:BuildRequires: pulseaudio-devel}
111 %{?without_pulseaudio:BuildConflicts: pulseaudio-devel}
112 BuildRequires: qt4-build
113 BuildRequires: qt4-qmake
114 BuildRequires: rpm-pythonprov
115 BuildRequires: rpmbuild(macros) >= 1.228
116 BuildRequires: sed >= 4.0
117 %{!?with_nvidia_headers:%{?with_vdpau:BuildRequires: libvdpau-devel}}
118 BuildRequires: xorg-lib-libXext-devel
119 %{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
120 BuildRequires: xorg-lib-libXxf86vm-devel
122 BuildRequires: perl-ExtUtils-MakeMaker
123 ExclusiveArch: %{ix86} %{x8664} ppc
124 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
126 %define myth_api_version %(echo %{version} | cut -d. -f1,2)
129 MythTV implements the following PVR features, and more, with a unified
131 - Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.
132 - Video compression using RTjpeg or MPEG-4
133 - Program listing retrieval using XMLTV
134 - Themable, semi-transparent on-screen display
135 - Electronic program guide
136 - Scheduled recording of TV programs
137 - Resolution of conflicts between scheduled recordings
138 - Basic video editing
140 %description -l pl.UTF-8
141 MythTV implementuje następujące możliwości PVR, a nawet więcej, wraz z
142 ujednoliconym interfejsem graficznym:
143 - podstawowa funkcjonalność "live-tv"; pauza, szybkie przewijanie,
144 przewijanie "żywej" telewizji
145 - kompresja obrazu przy użyciu RTjpeg lub MPEG-4
146 - odczyt listy programów przy użyciu XMLTV
147 - pseudoprzezroczyste wyświetlanie na obrazie (OSD) z obsługą motywów
148 - elektroniczny przewodnik po programie
149 - planowane nagrywanie programów telewizyjnych
150 - rozwiązywanie konfliktów między planowanymi nagraniami
151 - podstawowa edycja obrazu
154 Summary: Server component of mythtv (a PVR)
155 Summary(pl.UTF-8): Część serwerowa mythtv (PVR)
156 Group: Applications/Multimedia
157 Requires(post,preun): /sbin/chkconfig
158 Requires(postun): /usr/sbin/groupdel
159 Requires(postun): /usr/sbin/userdel
160 Requires(pre): /bin/id
161 Requires(pre): /usr/bin/getgid
162 Requires(pre): /usr/sbin/groupadd
163 Requires(pre): /usr/sbin/useradd
164 Requires: libmyth = %{version}-%{release}
165 Requires: mythtv = %{version}-%{release}
167 Provides: group(mythtv)
168 Provides: user(mythtv)
171 MythTV provides a unified graphical interface for recording and
172 viewing television programs. Refer to the mythtv package for more
175 This package contains only the server software, which provides video
176 and audio capture and encoding services. In order to be useful, it
177 requires a mythtv-frontend installation, either on the same system or
178 one reachable via the network.
180 %description backend -l pl.UTF-8
181 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
182 oglądania programów telewizyjnych. Więcej informacji w pakiecie
185 Ten pakiet zawiera tylko oprogramowanie serwerowe, udostępniające
186 usługi przechwytywania i kodowania obrazu i dźwięku. Aby było
187 przydatne, wymaga instalacji mythtv-frontend - na tym samym systemie,
188 albo innym osiągalnym po sieci.
191 Summary: Client component of mythtv (a PVR)
192 Summary(pl.UTF-8): Część kliencka mythtv (PVR)
193 Group: Applications/Multimedia
194 Requires: libmyth = %{version}-%{release}
195 Requires: mythtv = %{version}-%{release}
196 Requires: mythtv-themes = %{version}-%{release}
197 Provides: mythtv-frontend-api = %{myth_api_version}
199 %description frontend
200 MythTV provides a unified graphical interface for recording and
201 viewing television programs. Refer to the mythtv package for more
204 This package contains only the client software, which provides a
205 front-end for playback and configuration. It requires access to a
206 mythtv-backend installation, either on the same system or one
207 reachable via the network.
209 %description frontend -l pl.UTF-8
210 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
211 oglądania programów telewizyjnych. Więcej informacji w pakiecie
214 Ten pakiet zawiera tylko oprogramowanie klienckie, dostarczające
215 frontend do odtwarzania i konfiguracji. Wymaga dostępu do instalacji
216 mythtv-backend - na tym samym systemie, albo innym osiągalnym po
220 Summary: Setup the mythtv backend
221 Summary(pl.UTF-8): Konfigurator backendu mythtv
222 Group: Applications/Multimedia
223 Requires: libmyth = %{version}-%{release}
226 MythTV provides a unified graphical interface for recording and
227 viewing television programs. Refer to the mythtv package for more
230 This package contains only the setup software for configuring the
233 %description setup -l pl.UTF-8
234 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
235 oglądania programów telewizyjnych. Więcej informacji w pakiecie
238 Ten pakiet zawiera tylko program do konfigurowania backendu mythtv.
241 Summary: Base themes for mythtv's frontend
242 Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv
244 Requires: %{name}-frontend = %{version}-%{release}
247 MythTV provides a unified graphical interface for recording and
248 viewing television programs. Refer to the mythtv package for more
251 This package contains only the base themes used by the frontend and
254 %description themes -l pl.UTF-8
255 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
256 oglądania programów telewizyjnych. Więcej informacji w pakiecie
259 Ten pakiet zawiera tylko podstawowe motywy używane przez frontend oraz
263 Summary: Library providing mythtv support
264 Summary(pl.UTF-8): Biblioteka udostępniająca obsługę mythtv
266 Requires: QtSql-mysql
267 Requires: freetype >= 1:2.0.0
270 %description -n libmyth
271 Common library code for MythTV and add-on modules (development) MythTV
272 provides a unified graphical interface for recording and viewing
273 television programs. Refer to the mythtv package for more information.
275 %description -n libmyth -l pl.UTF-8
276 Wspólny kod biblioteki dla MythTV i dodatkowych modułów MythTV
277 dostarczający ujednolicony interfejs graficzny do nagrywania i
278 oglądania programów telewizyjnych. Więcej informacji w pakiecie
281 %package -n libmyth-devel
282 Summary: Development files for libmyth
283 Summary(pl.UTF-8): Pliki nagłówkowe libmyth
284 Group: Development/Libraries
285 Requires: libmyth = %{version}-%{release}
287 %description -n libmyth-devel
288 This package contains the header files for developing add-ons for
291 %description -n libmyth-devel -l pl.UTF-8
292 Ten pakiet zawiera pliki nagłówkowe do tworzenia dodatków dla mythtv.
294 %package -n libmyth-static
295 Summary: Static libmyth library
296 Summary(pl.UTF-8): Statyczna biblioteka libmyth
297 Group: Development/Libraries
298 Requires: libmyth-devel = %{version}-%{release}
300 %description -n libmyth-static
301 Static libmyth library.
303 %description -n libmyth-static -l pl.UTF-8
304 Statyczna biblioteka libmyth.
306 %package -n perl-MythTV
307 Summary: MythTV Perl bindings
308 Summary(pl.UTF-8): Interfejs Perla dla MythTV
311 %description -n perl-MythTV
312 MythTV Perl bindings.
314 %description -n perl-MythTV -l pl.UTF-8
315 Ten pakiet zawiera moduły Perla do tworzenia dodatków dla mythtv.
317 %package -n python-MythTV
318 Summary: MythTV Python bindings
319 Summary(pl.UTF-8): Interfejs Pythona dla MythTV
321 Requires: MySQL-python
323 %description -n python-MythTV
324 MythTV Python bindings.
326 %description -n python-MythTV -l pl.UTF-8
327 Ten pakiet zawiera moduły Pythona do tworzenia dodatków dla mythtv.
331 %setup -q -n %{name}-%{version}
340 %{?with_dshowserver:%patch20 -p1}
341 rm -rf database/old # not supported in PLD
343 # lib64 fix - enable to update patch
344 %if %{_lib} != "lib" && 0
345 find '(' -name '*.[ch]' -o -name '*.cpp' -o -name '*.pro' ')' | \
346 xargs grep -l /lib . | xargs sed -i -e '
347 s,/''usr/lib/,/%{_libdir}/,g
348 s,/''lib/mythtv,/%{_lib}/mythtv,g
349 s,{PREFIX}/lib$,{PREFIX}/%{_lib},g
354 # Assigning null to QMAKE_LIBDIR_QT will prevent makefiles contain
355 # -L$(QTDIR)/%{_lib} and -Wl,-rpath,$(QTDIR)/%{_lib}. And that will
356 # prevent compiler finding libs from system when they should be looked
357 # from current buildtree.
358 # but that made it link with -lqt which doesn't exist, instead of -lqt-mt
359 # so we make QMAKE wrapper which will do sed subst after calling
360 # qmake. this is the wrapper.
361 cat > qmake-wrapper.sh <<'EOF'
364 while [ $# -gt 0 ]; do
378 if [ "$makefile" ]; then
380 s;-Wl,-rpath,$(QTDIR)/%{_lib};;
381 s;-L$(QTDIR)/%{_lib};;
385 chmod +x qmake-wrapper.sh
387 # move perl bindings to vendor prefix
388 sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \
389 bindings/perl/perl.pro
393 %if %{with cpu_autodetect}
394 # Make sure we have /proc mounted
395 if [ ! -r /proc/cpuinfo ]; then
396 echo "You need to have /proc mounted in order to build with cpu_autodetect!"
402 --prefix=%{_prefix} \
403 --libdir=%{_libdir} \
404 --libdir-name=`basename %{_libdir}` \
405 --mandir=%{_mandir} \
406 --disable-distcc --disable-ccache \
407 --compile-type=%{?debug:debug}%{!?debug:release} \
408 --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \
409 --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \
410 %if %{with cpu_autodetect}
417 --cpu=i386 --tune=pentium4 \
423 %{?with_mmx:--enable-mmx} \
425 %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \
426 --%{?with_arts:en}%{!?with_arts:dis}able-audio-arts \
427 --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \
428 --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \
429 --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \
430 --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \
431 --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
432 --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \
433 --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \
434 --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \
435 --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \
436 --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \
437 --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \
438 --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \
439 --%{?with_directfb:en}%{!?with_directfb:dis}able-directfb \
440 --%{?with_fftw3:en}%{!?with_fftw3:dis}able-libfftw3 \
444 %{_libdir}/qt4/bin/qmake mythtv.pro
445 #sed -i -e 's/usr\/\/usr/usr/g' config.ep
452 rm -rf $RPM_BUILD_ROOT
453 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} \
454 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_desktopdir}} \
455 $RPM_BUILD_ROOT/var/{cache,lib,log,run}/mythtv \
456 $RPM_BUILD_ROOT%{_libdir}/mythtv \
457 $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins \
458 $RPM_BUILD_ROOT%{_pixmapsdir}
461 INSTALL_ROOT=$RPM_BUILD_ROOT
463 # required to build some plugins
464 # install libs/libavcodec/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
465 # libs/libavformat/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
466 # libs/libavutil/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv
468 # Install the files that we added on top of mythtv's own stuff
469 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend
470 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend
471 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend
472 %{?with_dshowserver:install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv}
475 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
476 install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir}
478 # Install settings.pro so people can see the build options we used
479 install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build
480 install config.mak settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build
482 for p in mythfrontend; do
483 for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/i18n/${p}_*.qm; do
484 echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*${p}_\(.*\).qm\),%%lang(\2) \1,"
488 # glibc language codes. attempt was made to change it on libmyth side,
489 # but that was just asking for trouble due large coverage of
490 # language.lower() usage.
492 s,%%lang(en_gb),%%lang(en_GB),
493 s,%%lang(zh_tw),%%lang(zh_TW),
494 s,%%lang(pt_br),%%lang(pt_BR),
497 rm -rf mythtvosd mythwelcome mythlcdserver
498 install -d mythtvosd mythwelcome
499 cp -a programs/mythtvosd/{README,*.xml} mythtvosd
500 cp -a programs/mythwelcome/README mythwelcome
501 cp -a programs/mythlcdserver/README mythlcdserver
504 rm -rf $RPM_BUILD_ROOT
506 # Empty newline after %addusertogroup %{name} video below is intended.
507 # Do not remove it until rpm stop joining lines with that macro.
509 %groupadd -g 149 %{name}
510 %useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name}
511 %addusertogroup %{name} video
512 %addusertogroup %{name} audio
515 /sbin/chkconfig --add mythbackend
518 if [ "$1" = "0" ]; then
519 %service -q mythbackend stop
520 /sbin/chkconfig --del mythbackend
524 if [ "$1" = "0" ]; then
529 %post -n libmyth -p /sbin/ldconfig
530 %postun -n libmyth -p /sbin/ldconfig
533 if [ "$1" = 1 ]; then
534 %banner -e %{name}-setup <<EOF
535 To grant mysql permissions to mythtv, please run
536 zcat %{_docdir}/%{name}-setup-%{version}/database/mc.sql.gz | mysql
541 %defattr(644,root,root,755)
542 %doc README* UPGRADING AUTHORS FAQ
543 %doc docs contrib config
544 %doc keys.txt mythtvosd mythwelcome mythlcdserver
547 %defattr(644,root,root,755)
548 %attr(755,root,root) %{_sbindir}/mythbackend
549 %attr(755,root,root) %{_sbindir}/mythcommflag
550 %attr(755,root,root) %{_bindir}/mythfilldatabase
551 %attr(755,root,root) %{_sbindir}/mythjobqueue
552 %attr(755,root,root) %{_sbindir}/mythlcdserver
553 %attr(755,root,root) %{_bindir}/mythtranscode
554 %attr(755,root,root) %{_bindir}/mythreplex
555 %attr(775,root,mythtv) %dir /var/lib/mythtv
556 %attr(775,root,mythtv) %dir /var/cache/mythtv
557 %attr(775,root,mythtv) %dir /var/run/mythtv
558 %attr(754,root,root) /etc/rc.d/init.d/mythbackend
559 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend
560 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mythbackend
561 %attr(775,root,mythtv) %dir %{_localstatedir}/log/mythtv
563 %files frontend -f mythfrontend.lang
564 %defattr(644,root,root,755)
565 %attr(755,root,root) %{_bindir}/mythfrontend
566 %attr(755,root,root) %{_bindir}/mythshutdown
567 %attr(755,root,root) %{_bindir}/mythavtest
568 %attr(755,root,root) %{_bindir}/mythtvosd
569 %attr(755,root,root) %{_bindir}/mythwelcome
570 %dir %{_datadir}/mythtv
571 %dir %{_datadir}/mythtv/themes
572 %dir %{_libdir}/mythtv
573 %{_datadir}/mythtv/*.xml
574 %dir %{_libdir}/mythtv/filters
575 %dir %{_libdir}/mythtv/plugins
576 %attr(755,root,root) %{_libdir}/mythtv/filters/*.so
577 %{_datadir}/mythtv/*.ttf
578 %dir %{_datadir}/mythtv/i18n
579 %if %{with dshowserver}
580 %{_datadir}/mythtv/dshowcodecs
582 %{_desktopdir}/*.desktop
586 %defattr(644,root,root,755)
588 %attr(755,root,root) %{_bindir}/mythtv-setup
591 %defattr(644,root,root,755)
592 %{_datadir}/mythtv/themes/*
595 %defattr(644,root,root,755)
596 %attr(755,root,root) %{_libdir}/lib*.so*
597 %attr(755,root,root) %{_libdir}/lib*.a
598 %{_datadir}/mythtv/*.pl
600 %files -n libmyth-devel
601 %defattr(644,root,root,755)
602 %attr(755,root,root) %{_libdir}/*.so
604 %{_datadir}/mythtv/build
606 %files -n libmyth-static
607 %defattr(644,root,root,755)
609 %files -n perl-MythTV
610 %defattr(644,root,root,755)
611 %{perl_vendorlib}/MythTV.pm
612 %dir %{perl_vendorlib}/MythTV
613 %{perl_vendorlib}/MythTV/*.pm
614 %dir %{perl_vendorlib}/IO/Socket/INET
615 %{perl_vendorlib}/IO/Socket/INET/MythTV.pm
616 %exclude %{perl_vendorarch}/auto/MythTV/.packlist
618 %files -n python-MythTV
619 %defattr(644,root,root,755)
620 %dir %{py_sitescriptdir}/MythTV
621 # XXX: package .py[co] only
622 %{py_sitescriptdir}/MythTV/*
623 %{py_sitescriptdir}/*.egg-info