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_with mmx # enable MMX
28 %bcond_with dshowserver # enable directshow codecs server
31 # enable mmx automatically on arches having it
32 %ifarch %{ix86} %{x8664}
33 %ifnarch i386 i486 i586 i686
38 # dshowserver is exclusive arch for x86 x86_64 only
39 %ifnarch %{ix86} %{x8664}
40 %undefine with_dshowserver
45 Summary: A personal video recorder (PVR) application
46 Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR)
51 Group: Applications/Multimedia
52 Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}%{snap}.tar.bz2
53 # Source0-md5: 049e93d78d5370351539c9a23b47e1af
54 Source1: mythbackend.sysconfig
55 Source2: mythbackend.init
56 Source3: mythbackend.logrotate
57 Source5: pld-mythfrontend.desktop
58 # Source5-md5: f37a903ac97463683bebacdf29406951
59 Source6: pld-mythfrontend.png
60 # Source6-md5: bf76bd1463a022e174e4af976a03e678
62 # Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
63 #Patch100: %{name}-branch.diff
64 Patch0: %{name}-configure.patch
65 #Patch1: %{name}-mythstream.patch
66 #Patch2: %{name}-pl.patch
67 Patch3: %{name}-sbinpath.patch
68 #Patch4: %{name}-dvdnav-shared.patch
69 Patch20: %{name}-dshowserver_trunk.patch
70 URL: http://www.mythtv.org/
71 BuildRequires: Mesa-libGLU-devel
72 #BuildRequires: OpenGL-GLU-devel
73 %{?without_vdpau:BuildRequires: OpenGL-devel}
74 BuildRequires: Qt3Support-devel
75 BuildRequires: QtCore-devel
76 BuildRequires: QtGui-devel
77 BuildRequires: QtNetwork-devel
78 BuildRequires: QtOpenGL-devel
79 BuildRequires: QtScript-devel
80 BuildRequires: QtSql-devel
81 BuildRequires: QtWebKit-devel
82 BuildRequires: QtXml-devel
83 %{?with_alsa:BuildRequires: alsa-lib-devel}
84 %{?with_arts:BuildRequires: arts-devel >= 13:0.9.5}
85 BuildRequires: ffmpeg-devel
86 BuildRequires: freetype-devel >= 1:2.0.0
87 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
88 BuildRequires: lame-libs-devel
89 %{?with_firewire:BuildRequires: libavc1394-devel}
90 BuildRequires: libdts-devel
91 %{?with_dvb:BuildRequires: libdvb-devel}
92 BuildRequires: libdvdnav-devel
93 %{?with_firewire:BuildRequires: libiec61883-devel}
94 %{?with_firewire:BuildRequires: libraw1394-devel}
95 BuildRequires: linux-libc-headers >= 7:2.6.10
96 %{?with_lirc:BuildRequires: lirc-devel}
97 BuildRequires: mysql-devel
98 #BuildRequires: patchutils
99 BuildRequires: perl-devel
100 BuildRequires: perl-tools-pod
101 BuildRequires: pkgconfig
102 BuildRequires: python-devel
103 BuildRequires: qt4-build
104 BuildRequires: qt4-qmake
105 BuildRequires: rpm-pythonprov
106 BuildRequires: rpmbuild(macros) >= 1.228
107 BuildRequires: sed >= 4.0
108 %{?with_vdpau:BuildRequires: xorg-driver-video-nvidia-devel}
109 BuildRequires: xorg-lib-libXext-devel
110 %{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
111 BuildRequires: xorg-lib-libXxf86vm-devel
113 BuildRequires: perl-ExtUtils-MakeMaker
114 ExclusiveArch: %{ix86} %{x8664} ppc
115 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
117 %define myth_api_version %(echo %{version} | cut -d. -f1,2)
120 MythTV implements the following PVR features, and more, with a unified
122 - Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.
123 - Video compression using RTjpeg or MPEG-4
124 - Program listing retrieval using XMLTV
125 - Themable, semi-transparent on-screen display
126 - Electronic program guide
127 - Scheduled recording of TV programs
128 - Resolution of conflicts between scheduled recordings
129 - Basic video editing
131 %description -l pl.UTF-8
132 MythTV implementuje następujące możliwości PVR, a nawet więcej, wraz z
133 ujednoliconym interfejsem graficznym:
134 - podstawowa funkcjonalność "live-tv"; pauza, szybkie przewijanie,
135 przewijanie "żywej" telewizji
136 - kompresja obrazu przy użyciu RTjpeg lub MPEG-4
137 - odczyt listy programów przy użyciu XMLTV
138 - pseudoprzezroczyste wyświetlanie na obrazie (OSD) z obsługą motywów
139 - elektroniczny przewodnik po programie
140 - planowane nagrywanie programów telewizyjnych
141 - rozwiązywanie konfliktów między planowanymi nagraniami
142 - podstawowa edycja obrazu
145 Summary: Server component of mythtv (a PVR)
146 Summary(pl.UTF-8): Część serwerowa mythtv (PVR)
147 Group: Applications/Multimedia
148 Requires(post,preun): /sbin/chkconfig
149 Requires(postun): /usr/sbin/groupdel
150 Requires(postun): /usr/sbin/userdel
151 Requires(pre): /bin/id
152 Requires(pre): /usr/bin/getgid
153 Requires(pre): /usr/sbin/groupadd
154 Requires(pre): /usr/sbin/useradd
155 Requires: libmyth = %{version}-%{release}
156 Requires: mythtv = %{version}-%{release}
158 Provides: group(mythtv)
159 Provides: user(mythtv)
162 MythTV provides a unified graphical interface for recording and
163 viewing television programs. Refer to the mythtv package for more
166 This package contains only the server software, which provides video
167 and audio capture and encoding services. In order to be useful, it
168 requires a mythtv-frontend installation, either on the same system or
169 one reachable via the network.
171 %description backend -l pl.UTF-8
172 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
173 oglądania programów telewizyjnych. Więcej informacji w pakiecie
176 Ten pakiet zawiera tylko oprogramowanie serwerowe, udostępniające
177 usługi przechwytywania i kodowania obrazu i dźwięku. Aby było
178 przydatne, wymaga instalacji mythtv-frontend - na tym samym systemie,
179 albo innym osiągalnym po sieci.
182 Summary: Client component of mythtv (a PVR)
183 Summary(pl.UTF-8): Część kliencka mythtv (PVR)
184 Group: Applications/Multimedia
185 Requires: libmyth = %{version}-%{release}
186 Requires: mythtv = %{version}-%{release}
187 Requires: mythtv-themes = %{version}-%{release}
188 Provides: mythtv-frontend-api = %{myth_api_version}
190 %description frontend
191 MythTV provides a unified graphical interface for recording and
192 viewing television programs. Refer to the mythtv package for more
195 This package contains only the client software, which provides a
196 front-end for playback and configuration. It requires access to a
197 mythtv-backend installation, either on the same system or one
198 reachable via the network.
200 %description frontend -l pl.UTF-8
201 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
202 oglądania programów telewizyjnych. Więcej informacji w pakiecie
205 Ten pakiet zawiera tylko oprogramowanie klienckie, dostarczające
206 frontend do odtwarzania i konfiguracji. Wymaga dostępu do instalacji
207 mythtv-backend - na tym samym systemie, albo innym osiągalnym po
211 Summary: Setup the mythtv backend
212 Summary(pl.UTF-8): Konfigurator backendu mythtv
213 Group: Applications/Multimedia
214 Requires: libmyth = %{version}-%{release}
217 MythTV provides a unified graphical interface for recording and
218 viewing television programs. Refer to the mythtv package for more
221 This package contains only the setup software for configuring the
224 %description setup -l pl.UTF-8
225 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
226 oglądania programów telewizyjnych. Więcej informacji w pakiecie
229 Ten pakiet zawiera tylko program do konfigurowania backendu mythtv.
232 Summary: Base themes for mythtv's frontend
233 Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv
235 Requires: %{name}-frontend = %{version}-%{release}
238 MythTV provides a unified graphical interface for recording and
239 viewing television programs. Refer to the mythtv package for more
242 This package contains only the base themes used by the frontend and
245 %description themes -l pl.UTF-8
246 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
247 oglądania programów telewizyjnych. Więcej informacji w pakiecie
250 Ten pakiet zawiera tylko podstawowe motywy używane przez frontend oraz
254 Summary: Library providing mythtv support
255 Summary(pl.UTF-8): Biblioteka udostępniająca obsługę mythtv
257 Requires: QtSql-mysql
258 Requires: freetype >= 1:2.0.0
260 %{?with_vdpau:Requires: libvdpau.so.1}
262 %description -n libmyth
263 Common library code for MythTV and add-on modules (development) MythTV
264 provides a unified graphical interface for recording and viewing
265 television programs. Refer to the mythtv package for more information.
267 %description -n libmyth -l pl.UTF-8
268 Wspólny kod biblioteki dla MythTV i dodatkowych modułów MythTV
269 dostarczający ujednolicony interfejs graficzny do nagrywania i
270 oglądania programów telewizyjnych. Więcej informacji w pakiecie
273 %package -n libmyth-devel
274 Summary: Development files for libmyth
275 Summary(pl.UTF-8): Pliki nagłówkowe libmyth
276 Group: Development/Libraries
277 Requires: libmyth = %{version}-%{release}
279 %description -n libmyth-devel
280 This package contains the header files for developing add-ons for
283 %description -n libmyth-devel -l pl.UTF-8
284 Ten pakiet zawiera pliki nagłówkowe do tworzenia dodatków dla mythtv.
286 %package -n libmyth-static
287 Summary: Static libmyth library
288 Summary(pl.UTF-8): Statyczna biblioteka libmyth
289 Group: Development/Libraries
290 Requires: libmyth-devel = %{version}-%{release}
292 %description -n libmyth-static
293 Static libmyth library.
295 %description -n libmyth-static -l pl.UTF-8
296 Statyczna biblioteka libmyth.
298 %package -n perl-MythTV
299 Summary: MythTV Perl bindings
300 Summary(pl.UTF-8): Interfejs Perla dla MythTV
303 %description -n perl-MythTV
304 MythTV Perl bindings.
306 %description -n perl-MythTV -l pl.UTF-8
307 Ten pakiet zawiera moduły Perla do tworzenia dodatków dla mythtv.
309 %package -n python-MythTV
310 Summary: MythTV Python bindings
311 Summary(pl.UTF-8): Interfejs Pythona dla MythTV
313 Requires: MySQL-python
315 %description -n python-MythTV
316 MythTV Python bindings.
318 %description -n python-MythTV -l pl.UTF-8
319 Ten pakiet zawiera moduły Pythona do tworzenia dodatków dla mythtv.
323 %setup -q -n %{name}-%{version}%{snap}
332 %{?with_dshowserver:%patch20 -p1}
333 rm -rf database/old # not supported in PLD
335 # lib64 fix - enable to update patch
336 %if %{_lib} != "lib" && 0
337 find '(' -name '*.[ch]' -o -name '*.cpp' -o -name '*.pro' ')' | \
338 xargs grep -l /lib . | xargs sed -i -e '
339 s,/''usr/lib/,/%{_libdir}/,g
340 s,/''lib/mythtv,/%{_lib}/mythtv,g
341 s,{PREFIX}/lib$,{PREFIX}/%{_lib},g
346 # Assigning null to QMAKE_LIBDIR_QT will prevent makefiles contain
347 # -L$(QTDIR)/%{_lib} and -Wl,-rpath,$(QTDIR)/%{_lib}. And that will
348 # prevent compiler finding libs from system when they should be looked
349 # from current buildtree.
350 # but that made it link with -lqt which doesn't exist, instead of -lqt-mt
351 # so we make QMAKE wrapper which will do sed subst after calling
352 # qmake. this is the wrapper.
353 cat > qmake-wrapper.sh <<'EOF'
356 while [ $# -gt 0 ]; do
370 if [ "$makefile" ]; then
372 s;-Wl,-rpath,$(QTDIR)/%{_lib};;
373 s;-L$(QTDIR)/%{_lib};;
377 chmod +x qmake-wrapper.sh
379 # move perl bindings to vendor prefix
380 sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \
381 bindings/perl/perl.pro
385 %if %{with cpu_autodetect}
386 # Make sure we have /proc mounted
387 if [ ! -r /proc/cpuinfo ]; then
388 echo "You need to have /proc mounted in order to build with cpu_autodetect!"
394 --prefix=%{_prefix} \
395 --libdir=%{_libdir} \
396 --libdir-name=`basename %{_libdir}` \
397 --mandir=%{_mandir} \
398 --disable-distcc --disable-ccache \
399 --compile-type=%{?debug:debug}%{!?debug:release} \
400 --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \
401 --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \
402 %if %{with cpu_autodetect}
409 --cpu=i386 --tune=pentium4 \
415 %{?with_mmx:--enable-mmx} \
417 %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \
418 --%{?with_arts:en}%{!?with_arts:dis}able-audio-arts \
419 --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \
420 --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \
421 --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \
422 --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \
423 --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
424 --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \
425 --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \
426 --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \
427 --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \
428 --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \
429 --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \
430 --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \
431 --%{?with_directfb:en}%{!?with_directfb:dis}able-directfb \
435 %{_libdir}/qt4/bin/qmake mythtv.pro
436 #sed -i -e 's/usr\/\/usr/usr/g' config.ep
443 rm -rf $RPM_BUILD_ROOT
444 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} \
445 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_desktopdir}} \
446 $RPM_BUILD_ROOT/var/{cache,lib,log,run}/mythtv \
447 $RPM_BUILD_ROOT%{_libdir}/mythtv \
448 $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins \
449 $RPM_BUILD_ROOT%{_pixmapsdir}
452 INSTALL_ROOT=$RPM_BUILD_ROOT
454 # required to build some plugins
455 # install libs/libavcodec/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
456 # libs/libavformat/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
457 # libs/libavutil/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv
459 # Install the files that we added on top of mythtv's own stuff
460 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend
461 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend
462 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend
463 %{?with_dshowserver:install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv}
466 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
467 install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir}
469 # Install settings.pro so people can see the build options we used
470 install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build
471 install config.mak settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build
473 for p in mythfrontend; do
474 for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/i18n/${p}_*.qm; do
475 echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*${p}_\(.*\).qm\),%%lang(\2) \1,"
479 # glibc language codes. attempt was made to change it on libmyth side,
480 # but that was just asking for trouble due large coverage of
481 # language.lower() usage.
483 s,%%lang(en_gb),%%lang(en_GB),
484 s,%%lang(zh_tw),%%lang(zh_TW),
485 s,%%lang(pt_br),%%lang(pt_BR),
488 rm -rf mythtvosd mythwelcome mythlcdserver
489 install -d mythtvosd mythwelcome
490 cp -a programs/mythtvosd/{README,*.xml} mythtvosd
491 cp -a programs/mythwelcome/README mythwelcome
492 cp -a programs/mythlcdserver/README mythlcdserver
495 rm -rf $RPM_BUILD_ROOT
497 # Empty newline after %addusertogroup %{name} video below is intended.
498 # Do not remove it until rpm stop joining lines with that macro.
500 %groupadd -g 149 %{name}
501 %useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name}
502 %addusertogroup %{name} video
503 %addusertogroup %{name} audio
506 /sbin/chkconfig --add mythbackend
509 if [ "$1" = "0" ]; then
510 %service -q mythbackend stop
511 /sbin/chkconfig --del mythbackend
515 if [ "$1" = "0" ]; then
520 %post -n libmyth -p /sbin/ldconfig
521 %postun -n libmyth -p /sbin/ldconfig
524 if [ "$1" = 1 ]; then
525 %banner -e %{name}-setup <<EOF
526 To grant mysql permissions to mythtv, please run
527 zcat %{_docdir}/%{name}-setup-%{version}/database/mc.sql.gz | mysql
532 %defattr(644,root,root,755)
533 %doc README* UPGRADING AUTHORS FAQ
534 %doc docs contrib config
535 %doc keys.txt mythtvosd mythwelcome mythlcdserver
538 %defattr(644,root,root,755)
539 %attr(755,root,root) %{_sbindir}/mythbackend
540 %attr(755,root,root) %{_sbindir}/mythcommflag
541 %attr(755,root,root) %{_bindir}/mythfilldatabase
542 %attr(755,root,root) %{_sbindir}/mythjobqueue
543 %attr(755,root,root) %{_sbindir}/mythlcdserver
544 %attr(755,root,root) %{_bindir}/mythtranscode
545 %attr(755,root,root) %{_bindir}/mythreplex
546 %attr(775,root,mythtv) %dir /var/lib/mythtv
547 %attr(775,root,mythtv) %dir /var/cache/mythtv
548 %attr(775,root,mythtv) %dir /var/run/mythtv
549 %attr(754,root,root) /etc/rc.d/init.d/mythbackend
550 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend
551 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mythbackend
552 %attr(775,root,mythtv) %dir %{_localstatedir}/log/mythtv
554 %files frontend -f mythfrontend.lang
555 %defattr(644,root,root,755)
556 %attr(755,root,root) %{_bindir}/mythfrontend
557 %attr(755,root,root) %{_bindir}/mythshutdown
558 %attr(755,root,root) %{_bindir}/mythavtest
559 %attr(755,root,root) %{_bindir}/mythtvosd
560 %attr(755,root,root) %{_bindir}/mythwelcome
561 %dir %{_datadir}/mythtv
562 %dir %{_datadir}/mythtv/themes
563 %dir %{_libdir}/mythtv
564 %{_datadir}/mythtv/*.xml
565 %dir %{_libdir}/mythtv/filters
566 %dir %{_libdir}/mythtv/plugins
567 %attr(755,root,root) %{_libdir}/mythtv/filters/*.so
568 %{_datadir}/mythtv/*.ttf
569 %dir %{_datadir}/mythtv/i18n
570 %if %{with dshowserver}
571 %{_datadir}/mythtv/dshowcodecs
573 %{_desktopdir}/*.desktop
577 %defattr(644,root,root,755)
579 %attr(755,root,root) %{_bindir}/mythtv-setup
582 %defattr(644,root,root,755)
583 %{_datadir}/mythtv/themes/*
586 %defattr(644,root,root,755)
587 %attr(755,root,root) %{_libdir}/lib*.so*
588 %attr(755,root,root) %{_libdir}/lib*.a
589 %{_datadir}/mythtv/*.pl
591 %files -n libmyth-devel
592 %defattr(644,root,root,755)
593 %attr(755,root,root) %{_libdir}/*.so
595 %{_datadir}/mythtv/build
597 %files -n libmyth-static
598 %defattr(644,root,root,755)
600 %files -n perl-MythTV
601 %defattr(644,root,root,755)
602 %{perl_vendorlib}/MythTV.pm
603 %dir %{perl_vendorlib}/MythTV
604 %{perl_vendorlib}/MythTV/*.pm
605 %{perl_vendorlib}/IO/Socket/INET/MythTV.pm
606 %exclude %{perl_vendorarch}/auto/MythTV/.packlist
608 %files -n python-MythTV
609 %defattr(644,root,root,755)
610 %dir %{py_sitescriptdir}/MythTV
611 # XXX: package .py[co] only
612 %{py_sitescriptdir}/MythTV/*
613 %{py_sitescriptdir}/*.egg-info