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 BuildConflicts: xorg-driver-video-nvidia-libs
72 BuildConflicts: xorg-driver-video-nvidia-devel
73 BuildRequires: Mesa-libGLU-devel
74 #BuildRequires: OpenGL-GLU-devel
75 BuildRequires: OpenGL-devel
76 BuildRequires: Qt3Support-devel
77 BuildRequires: QtCore-devel
78 BuildRequires: QtGui-devel
79 BuildRequires: QtNetwork-devel
80 BuildRequires: QtOpenGL-devel
81 BuildRequires: QtScript-devel
82 BuildRequires: QtSql-devel
83 BuildRequires: QtWebKit-devel
84 BuildRequires: QtXml-devel
85 %{?with_alsa:BuildRequires: alsa-lib-devel}
86 %{?with_arts:BuildRequires: arts-devel >= 13:0.9.5}
87 BuildRequires: ffmpeg-devel
88 BuildRequires: freetype-devel >= 1:2.0.0
89 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
90 BuildRequires: lame-libs-devel
91 %{?with_firewire:BuildRequires: libavc1394-devel}
92 BuildRequires: libdts-devel
93 %{?with_dvb:BuildRequires: libdvb-devel}
94 BuildRequires: libdvdnav-devel
95 %{?with_firewire:BuildRequires: libiec61883-devel}
96 %{?with_firewire:BuildRequires: libraw1394-devel}
97 BuildRequires: linux-libc-headers >= 7:2.6.10
98 %{?with_lirc:BuildRequires: lirc-devel}
99 BuildRequires: mysql-devel
100 #BuildRequires: patchutils
101 BuildRequires: perl-devel
102 BuildRequires: perl-tools-pod
103 BuildRequires: pkgconfig
104 BuildRequires: python-devel
105 BuildRequires: qt4-build
106 BuildRequires: qt4-qmake
107 BuildRequires: rpm-pythonprov
108 BuildRequires: rpmbuild(macros) >= 1.228
109 BuildRequires: sed >= 4.0
110 %{?with_vdpau:BuildRequires: libvdpau-devel}
111 BuildRequires: xorg-lib-libXext-devel
112 %{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
113 BuildRequires: xorg-lib-libXxf86vm-devel
115 BuildRequires: perl-ExtUtils-MakeMaker
116 ExclusiveArch: %{ix86} %{x8664} ppc
117 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
119 %define myth_api_version %(echo %{version} | cut -d. -f1,2)
122 MythTV implements the following PVR features, and more, with a unified
124 - Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.
125 - Video compression using RTjpeg or MPEG-4
126 - Program listing retrieval using XMLTV
127 - Themable, semi-transparent on-screen display
128 - Electronic program guide
129 - Scheduled recording of TV programs
130 - Resolution of conflicts between scheduled recordings
131 - Basic video editing
133 %description -l pl.UTF-8
134 MythTV implementuje następujące możliwości PVR, a nawet więcej, wraz z
135 ujednoliconym interfejsem graficznym:
136 - podstawowa funkcjonalność "live-tv"; pauza, szybkie przewijanie,
137 przewijanie "żywej" telewizji
138 - kompresja obrazu przy użyciu RTjpeg lub MPEG-4
139 - odczyt listy programów przy użyciu XMLTV
140 - pseudoprzezroczyste wyświetlanie na obrazie (OSD) z obsługą motywów
141 - elektroniczny przewodnik po programie
142 - planowane nagrywanie programów telewizyjnych
143 - rozwiązywanie konfliktów między planowanymi nagraniami
144 - podstawowa edycja obrazu
147 Summary: Server component of mythtv (a PVR)
148 Summary(pl.UTF-8): Część serwerowa mythtv (PVR)
149 Group: Applications/Multimedia
150 Requires(post,preun): /sbin/chkconfig
151 Requires(postun): /usr/sbin/groupdel
152 Requires(postun): /usr/sbin/userdel
153 Requires(pre): /bin/id
154 Requires(pre): /usr/bin/getgid
155 Requires(pre): /usr/sbin/groupadd
156 Requires(pre): /usr/sbin/useradd
157 Requires: libmyth = %{version}-%{release}
158 Requires: mythtv = %{version}-%{release}
160 Provides: group(mythtv)
161 Provides: user(mythtv)
164 MythTV provides a unified graphical interface for recording and
165 viewing television programs. Refer to the mythtv package for more
168 This package contains only the server software, which provides video
169 and audio capture and encoding services. In order to be useful, it
170 requires a mythtv-frontend installation, either on the same system or
171 one reachable via the network.
173 %description backend -l pl.UTF-8
174 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
175 oglądania programów telewizyjnych. Więcej informacji w pakiecie
178 Ten pakiet zawiera tylko oprogramowanie serwerowe, udostępniające
179 usługi przechwytywania i kodowania obrazu i dźwięku. Aby było
180 przydatne, wymaga instalacji mythtv-frontend - na tym samym systemie,
181 albo innym osiągalnym po sieci.
184 Summary: Client component of mythtv (a PVR)
185 Summary(pl.UTF-8): Część kliencka mythtv (PVR)
186 Group: Applications/Multimedia
187 Requires: libmyth = %{version}-%{release}
188 Requires: mythtv = %{version}-%{release}
189 Requires: mythtv-themes = %{version}-%{release}
190 Provides: mythtv-frontend-api = %{myth_api_version}
192 %description frontend
193 MythTV provides a unified graphical interface for recording and
194 viewing television programs. Refer to the mythtv package for more
197 This package contains only the client software, which provides a
198 front-end for playback and configuration. It requires access to a
199 mythtv-backend installation, either on the same system or one
200 reachable via the network.
202 %description frontend -l pl.UTF-8
203 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
204 oglądania programów telewizyjnych. Więcej informacji w pakiecie
207 Ten pakiet zawiera tylko oprogramowanie klienckie, dostarczające
208 frontend do odtwarzania i konfiguracji. Wymaga dostępu do instalacji
209 mythtv-backend - na tym samym systemie, albo innym osiągalnym po
213 Summary: Setup the mythtv backend
214 Summary(pl.UTF-8): Konfigurator backendu mythtv
215 Group: Applications/Multimedia
216 Requires: libmyth = %{version}-%{release}
219 MythTV provides a unified graphical interface for recording and
220 viewing television programs. Refer to the mythtv package for more
223 This package contains only the setup software for configuring the
226 %description setup -l pl.UTF-8
227 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
228 oglądania programów telewizyjnych. Więcej informacji w pakiecie
231 Ten pakiet zawiera tylko program do konfigurowania backendu mythtv.
234 Summary: Base themes for mythtv's frontend
235 Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv
237 Requires: %{name}-frontend = %{version}-%{release}
240 MythTV provides a unified graphical interface for recording and
241 viewing television programs. Refer to the mythtv package for more
244 This package contains only the base themes used by the frontend and
247 %description themes -l pl.UTF-8
248 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
249 oglądania programów telewizyjnych. Więcej informacji w pakiecie
252 Ten pakiet zawiera tylko podstawowe motywy używane przez frontend oraz
256 Summary: Library providing mythtv support
257 Summary(pl.UTF-8): Biblioteka udostępniająca obsługę mythtv
259 Requires: QtSql-mysql
260 Requires: freetype >= 1:2.0.0
263 %description -n libmyth
264 Common library code for MythTV and add-on modules (development) MythTV
265 provides a unified graphical interface for recording and viewing
266 television programs. Refer to the mythtv package for more information.
268 %description -n libmyth -l pl.UTF-8
269 Wspólny kod biblioteki dla MythTV i dodatkowych modułów MythTV
270 dostarczający ujednolicony interfejs graficzny do nagrywania i
271 oglądania programów telewizyjnych. Więcej informacji w pakiecie
274 %package -n libmyth-devel
275 Summary: Development files for libmyth
276 Summary(pl.UTF-8): Pliki nagłówkowe libmyth
277 Group: Development/Libraries
278 Requires: libmyth = %{version}-%{release}
280 %description -n libmyth-devel
281 This package contains the header files for developing add-ons for
284 %description -n libmyth-devel -l pl.UTF-8
285 Ten pakiet zawiera pliki nagłówkowe do tworzenia dodatków dla mythtv.
287 %package -n libmyth-static
288 Summary: Static libmyth library
289 Summary(pl.UTF-8): Statyczna biblioteka libmyth
290 Group: Development/Libraries
291 Requires: libmyth-devel = %{version}-%{release}
293 %description -n libmyth-static
294 Static libmyth library.
296 %description -n libmyth-static -l pl.UTF-8
297 Statyczna biblioteka libmyth.
299 %package -n perl-MythTV
300 Summary: MythTV Perl bindings
301 Summary(pl.UTF-8): Interfejs Perla dla MythTV
304 %description -n perl-MythTV
305 MythTV Perl bindings.
307 %description -n perl-MythTV -l pl.UTF-8
308 Ten pakiet zawiera moduły Perla do tworzenia dodatków dla mythtv.
310 %package -n python-MythTV
311 Summary: MythTV Python bindings
312 Summary(pl.UTF-8): Interfejs Pythona dla MythTV
314 Requires: MySQL-python
316 %description -n python-MythTV
317 MythTV Python bindings.
319 %description -n python-MythTV -l pl.UTF-8
320 Ten pakiet zawiera moduły Pythona do tworzenia dodatków dla mythtv.
324 %setup -q -n %{name}-%{version}%{snap}
333 %{?with_dshowserver:%patch20 -p1}
334 rm -rf database/old # not supported in PLD
336 # lib64 fix - enable to update patch
337 %if %{_lib} != "lib" && 0
338 find '(' -name '*.[ch]' -o -name '*.cpp' -o -name '*.pro' ')' | \
339 xargs grep -l /lib . | xargs sed -i -e '
340 s,/''usr/lib/,/%{_libdir}/,g
341 s,/''lib/mythtv,/%{_lib}/mythtv,g
342 s,{PREFIX}/lib$,{PREFIX}/%{_lib},g
347 # Assigning null to QMAKE_LIBDIR_QT will prevent makefiles contain
348 # -L$(QTDIR)/%{_lib} and -Wl,-rpath,$(QTDIR)/%{_lib}. And that will
349 # prevent compiler finding libs from system when they should be looked
350 # from current buildtree.
351 # but that made it link with -lqt which doesn't exist, instead of -lqt-mt
352 # so we make QMAKE wrapper which will do sed subst after calling
353 # qmake. this is the wrapper.
354 cat > qmake-wrapper.sh <<'EOF'
357 while [ $# -gt 0 ]; do
371 if [ "$makefile" ]; then
373 s;-Wl,-rpath,$(QTDIR)/%{_lib};;
374 s;-L$(QTDIR)/%{_lib};;
378 chmod +x qmake-wrapper.sh
380 # move perl bindings to vendor prefix
381 sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \
382 bindings/perl/perl.pro
386 %if %{with cpu_autodetect}
387 # Make sure we have /proc mounted
388 if [ ! -r /proc/cpuinfo ]; then
389 echo "You need to have /proc mounted in order to build with cpu_autodetect!"
395 --prefix=%{_prefix} \
396 --libdir=%{_libdir} \
397 --libdir-name=`basename %{_libdir}` \
398 --mandir=%{_mandir} \
399 --disable-distcc --disable-ccache \
400 --compile-type=%{?debug:debug}%{!?debug:release} \
401 --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \
402 --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \
403 %if %{with cpu_autodetect}
410 --cpu=i386 --tune=pentium4 \
416 %{?with_mmx:--enable-mmx} \
418 %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \
419 --%{?with_arts:en}%{!?with_arts:dis}able-audio-arts \
420 --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \
421 --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \
422 --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \
423 --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \
424 --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
425 --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \
426 --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \
427 --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \
428 --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \
429 --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \
430 --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \
431 --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \
432 --%{?with_directfb:en}%{!?with_directfb:dis}able-directfb \
436 %{_libdir}/qt4/bin/qmake mythtv.pro
437 #sed -i -e 's/usr\/\/usr/usr/g' config.ep
444 rm -rf $RPM_BUILD_ROOT
445 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} \
446 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_desktopdir}} \
447 $RPM_BUILD_ROOT/var/{cache,lib,log,run}/mythtv \
448 $RPM_BUILD_ROOT%{_libdir}/mythtv \
449 $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins \
450 $RPM_BUILD_ROOT%{_pixmapsdir}
453 INSTALL_ROOT=$RPM_BUILD_ROOT
455 # required to build some plugins
456 # install libs/libavcodec/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
457 # libs/libavformat/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
458 # libs/libavutil/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv
460 # Install the files that we added on top of mythtv's own stuff
461 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend
462 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend
463 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend
464 %{?with_dshowserver:install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv}
467 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
468 install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir}
470 # Install settings.pro so people can see the build options we used
471 install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build
472 install config.mak settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build
474 for p in mythfrontend; do
475 for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/i18n/${p}_*.qm; do
476 echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*${p}_\(.*\).qm\),%%lang(\2) \1,"
480 # glibc language codes. attempt was made to change it on libmyth side,
481 # but that was just asking for trouble due large coverage of
482 # language.lower() usage.
484 s,%%lang(en_gb),%%lang(en_GB),
485 s,%%lang(zh_tw),%%lang(zh_TW),
486 s,%%lang(pt_br),%%lang(pt_BR),
489 rm -rf mythtvosd mythwelcome mythlcdserver
490 install -d mythtvosd mythwelcome
491 cp -a programs/mythtvosd/{README,*.xml} mythtvosd
492 cp -a programs/mythwelcome/README mythwelcome
493 cp -a programs/mythlcdserver/README mythlcdserver
496 rm -rf $RPM_BUILD_ROOT
498 # Empty newline after %addusertogroup %{name} video below is intended.
499 # Do not remove it until rpm stop joining lines with that macro.
501 %groupadd -g 149 %{name}
502 %useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name}
503 %addusertogroup %{name} video
504 %addusertogroup %{name} audio
507 /sbin/chkconfig --add mythbackend
510 if [ "$1" = "0" ]; then
511 %service -q mythbackend stop
512 /sbin/chkconfig --del mythbackend
516 if [ "$1" = "0" ]; then
521 %post -n libmyth -p /sbin/ldconfig
522 %postun -n libmyth -p /sbin/ldconfig
525 if [ "$1" = 1 ]; then
526 %banner -e %{name}-setup <<EOF
527 To grant mysql permissions to mythtv, please run
528 zcat %{_docdir}/%{name}-setup-%{version}/database/mc.sql.gz | mysql
533 %defattr(644,root,root,755)
534 %doc README* UPGRADING AUTHORS FAQ
535 %doc docs contrib config
536 %doc keys.txt mythtvosd mythwelcome mythlcdserver
539 %defattr(644,root,root,755)
540 %attr(755,root,root) %{_sbindir}/mythbackend
541 %attr(755,root,root) %{_sbindir}/mythcommflag
542 %attr(755,root,root) %{_bindir}/mythfilldatabase
543 %attr(755,root,root) %{_sbindir}/mythjobqueue
544 %attr(755,root,root) %{_sbindir}/mythlcdserver
545 %attr(755,root,root) %{_bindir}/mythtranscode
546 %attr(755,root,root) %{_bindir}/mythreplex
547 %attr(775,root,mythtv) %dir /var/lib/mythtv
548 %attr(775,root,mythtv) %dir /var/cache/mythtv
549 %attr(775,root,mythtv) %dir /var/run/mythtv
550 %attr(754,root,root) /etc/rc.d/init.d/mythbackend
551 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend
552 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mythbackend
553 %attr(775,root,mythtv) %dir %{_localstatedir}/log/mythtv
555 %files frontend -f mythfrontend.lang
556 %defattr(644,root,root,755)
557 %attr(755,root,root) %{_bindir}/mythfrontend
558 %attr(755,root,root) %{_bindir}/mythshutdown
559 %attr(755,root,root) %{_bindir}/mythavtest
560 %attr(755,root,root) %{_bindir}/mythtvosd
561 %attr(755,root,root) %{_bindir}/mythwelcome
562 %dir %{_datadir}/mythtv
563 %dir %{_datadir}/mythtv/themes
564 %dir %{_libdir}/mythtv
565 %{_datadir}/mythtv/*.xml
566 %dir %{_libdir}/mythtv/filters
567 %dir %{_libdir}/mythtv/plugins
568 %attr(755,root,root) %{_libdir}/mythtv/filters/*.so
569 %{_datadir}/mythtv/*.ttf
570 %dir %{_datadir}/mythtv/i18n
571 %if %{with dshowserver}
572 %{_datadir}/mythtv/dshowcodecs
574 %{_desktopdir}/*.desktop
578 %defattr(644,root,root,755)
580 %attr(755,root,root) %{_bindir}/mythtv-setup
583 %defattr(644,root,root,755)
584 %{_datadir}/mythtv/themes/*
587 %defattr(644,root,root,755)
588 %attr(755,root,root) %{_libdir}/lib*.so*
589 %attr(755,root,root) %{_libdir}/lib*.a
590 %{_datadir}/mythtv/*.pl
592 %files -n libmyth-devel
593 %defattr(644,root,root,755)
594 %attr(755,root,root) %{_libdir}/*.so
596 %{_datadir}/mythtv/build
598 %files -n libmyth-static
599 %defattr(644,root,root,755)
601 %files -n perl-MythTV
602 %defattr(644,root,root,755)
603 %{perl_vendorlib}/MythTV.pm
604 %dir %{perl_vendorlib}/MythTV
605 %{perl_vendorlib}/MythTV/*.pm
606 %{perl_vendorlib}/IO/Socket/INET/MythTV.pm
607 %exclude %{perl_vendorarch}/auto/MythTV/.packlist
609 %files -n python-MythTV
610 %defattr(644,root,root,755)
611 %dir %{py_sitescriptdir}/MythTV
612 # XXX: package .py[co] only
613 %{py_sitescriptdir}/MythTV/*
614 %{py_sitescriptdir}/*.egg-info