2 # - bconds: altivec joystick lcd
3 # - lcd? (app-misc/lcdproc)
4 # - alpha, sparc, ppc arches?
5 # - http://outflux.net/software/pkgs/mythtvfs-fuse/
6 # - vaapi support - check for compatible versions of libva?
10 # MythTV now uses a fairly intelligent cpu-detection script, so if you are
11 # building an rpm by hand on the machine it will be used on, I encourage you
12 # to use "--with cpu_autodetect" to let mythtv decide for you.
15 %bcond_with cpu_autodetect # enable CPU autodetection at compile time (sets "-march", "-mcpu" compile flags really)
16 %bcond_without lirc # lirc support
17 %bcond_without alsa # alsa support
18 %bcond_without oss # oss support
19 %bcond_without jack # jack audio connection kit
20 %bcond_without pulseaudio # pulseaudio support
21 %bcond_without opengl # opengl vsync
22 %bcond_without dvb # DVB support
23 %bcond_without xrandr # disable X11 resolution switching
24 %bcond_without ivtv # ivtv support (PVR-250, PVR-350) NFY
26 %bcond_without firewire # ieee1394 (NFY)
27 %bcond_without xvmc # do not use XvMCW
28 %bcond_without vdpau # disable nvidia vdpau support
29 %bcond_without fftw3 # disable fftw3 support
30 %bcond_with mmx # enable MMX
31 %bcond_without nellymoserdec
32 %bcond_with vaapi # enable vaapi
33 %bcond_with dshowserver # enable directshow codecs server
35 %bcond_with nvidia_headers # build vdpau support with nvidia headers
38 # enable mmx automatically on arches having it
39 %ifarch %{ix86} %{x8664}
40 %ifnarch i386 i486 i586 i686
45 # dshowserver is exclusive arch for x86 x86_64 only
46 %ifnarch %{ix86} %{x8664}
47 %undefine with_dshowserver
50 Summary: A personal video recorder (PVR) application
51 Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR)
56 Group: Applications/Multimedia
57 Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}.tar.bz2
58 # Source0-md5: 3c58f4f45a550b60fbddfb8726d7fc38
59 Source1: mythbackend.sysconfig
60 Source2: mythbackend.init
61 Source3: mythbackend.logrotate
62 Source5: pld-mythfrontend.desktop
63 # Source5-md5: f37a903ac97463683bebacdf29406951
64 Source6: pld-mythfrontend.png
65 # Source6-md5: bf76bd1463a022e174e4af976a03e678
67 # Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
68 #Patch100: %{name}-branch.diff
69 Patch0: %{name}-configure.patch
70 #Patch1: %{name}-mythstream.patch
71 #Patch2: %{name}-pl.patch
72 Patch3: %{name}-sbinpath.patch
73 #Patch4: %{name}-dvdnav-shared.patch
74 Patch20: %{name}-dshowserver-0.22.patch
75 URL: http://www.mythtv.org/
76 %{!?with_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-devel}
77 %{?with_nvidia_headers:%{?with_vdpau:BuildRequires: xorg-driver-video-nvidia-devel}}
78 BuildRequires: Mesa-libGLU-devel
79 #BuildRequires: OpenGL-GLU-devel
80 BuildRequires: OpenGL-devel
81 BuildRequires: Qt3Support-devel
82 BuildRequires: QtCore-devel
83 BuildRequires: QtGui-devel
84 BuildRequires: QtNetwork-devel
85 BuildRequires: QtOpenGL-devel
86 BuildRequires: QtScript-devel
87 BuildRequires: QtSql-devel
88 BuildRequires: QtWebKit-devel
89 BuildRequires: QtXml-devel
90 %{?with_alsa:BuildRequires: alsa-lib-devel}
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 %{!?with_nvidia_headers:%{?with_vdpau:BuildRequires: libvdpau-devel}}
103 BuildRequires: linux-libc-headers >= 7:2.6.10
104 %{?with_lirc:BuildRequires: lirc-devel}
105 BuildRequires: mysql-devel
106 #BuildRequires: patchutils
107 BuildRequires: perl-devel
108 BuildRequires: perl-tools-pod
109 BuildRequires: pkgconfig
110 BuildRequires: python-devel
111 %{?with_pulseaudio:BuildRequires: pulseaudio-devel}
112 %{!?with_pulseaudio:BuildConflicts: pulseaudio-devel}
113 BuildRequires: qt4-build
114 BuildRequires: qt4-qmake
115 BuildRequires: rpm-pythonprov
116 BuildRequires: rpmbuild(macros) >= 1.228
117 BuildRequires: sed >= 4.0
119 BuildRequires: xorg-lib-libXext-devel
120 %{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
121 BuildRequires: xorg-lib-libXxf86vm-devel
123 BuildRequires: perl-ExtUtils-MakeMaker
124 ExclusiveArch: %{ix86} %{x8664} ppc
125 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
127 %define myth_api_version %(echo %{version} | cut -d. -f1,2)
130 MythTV implements the following PVR features, and more, with a unified
132 - Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.
133 - Video compression using RTjpeg or MPEG-4
134 - Program listing retrieval using XMLTV
135 - Themable, semi-transparent on-screen display
136 - Electronic program guide
137 - Scheduled recording of TV programs
138 - Resolution of conflicts between scheduled recordings
139 - Basic video editing
141 %description -l pl.UTF-8
142 MythTV implementuje następujące możliwości PVR, a nawet więcej, wraz z
143 ujednoliconym interfejsem graficznym:
144 - podstawowa funkcjonalność "live-tv"; pauza, szybkie przewijanie,
145 przewijanie "żywej" telewizji
146 - kompresja obrazu przy użyciu RTjpeg lub MPEG-4
147 - odczyt listy programów przy użyciu XMLTV
148 - pseudoprzezroczyste wyświetlanie na obrazie (OSD) z obsługą motywów
149 - elektroniczny przewodnik po programie
150 - planowane nagrywanie programów telewizyjnych
151 - rozwiązywanie konfliktów między planowanymi nagraniami
152 - podstawowa edycja obrazu
155 Summary: Server component of mythtv (a PVR)
156 Summary(pl.UTF-8): Część serwerowa mythtv (PVR)
157 Group: Applications/Multimedia
158 Requires(post,preun): /sbin/chkconfig
159 Requires(postun): /usr/sbin/groupdel
160 Requires(postun): /usr/sbin/userdel
161 Requires(pre): /bin/id
162 Requires(pre): /usr/bin/getgid
163 Requires(pre): /usr/sbin/groupadd
164 Requires(pre): /usr/sbin/useradd
165 Requires: libmyth = %{version}-%{release}
166 Requires: mythtv = %{version}-%{release}
168 Provides: group(mythtv)
169 Provides: user(mythtv)
172 MythTV provides a unified graphical interface for recording and
173 viewing television programs. Refer to the mythtv package for more
176 This package contains only the server software, which provides video
177 and audio capture and encoding services. In order to be useful, it
178 requires a mythtv-frontend installation, either on the same system or
179 one reachable via the network.
181 %description backend -l pl.UTF-8
182 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
183 oglądania programów telewizyjnych. Więcej informacji w pakiecie
186 Ten pakiet zawiera tylko oprogramowanie serwerowe, udostępniające
187 usługi przechwytywania i kodowania obrazu i dźwięku. Aby było
188 przydatne, wymaga instalacji mythtv-frontend - na tym samym systemie,
189 albo innym osiągalnym w sieci.
192 Summary: Client component of mythtv (a PVR)
193 Summary(pl.UTF-8): Część kliencka mythtv (PVR)
194 Group: Applications/Multimedia
195 Requires: libmyth = %{version}-%{release}
196 Requires: mythtv = %{version}-%{release}
197 Requires: mythtv-themes = %{version}-%{release}
198 Provides: mythtv-frontend-api = %{myth_api_version}
200 %description frontend
201 MythTV provides a unified graphical interface for recording and
202 viewing television programs. Refer to the mythtv package for more
205 This package contains only the client software, which provides a
206 front-end for playback and configuration. It requires access to a
207 mythtv-backend installation, either on the same system or one
208 reachable via the network.
210 %description frontend -l pl.UTF-8
211 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
212 oglądania programów telewizyjnych. Więcej informacji w pakiecie
215 Ten pakiet zawiera tylko oprogramowanie klienckie, dostarczające
216 frontend do odtwarzania i konfiguracji. Wymaga dostępu do instalacji
217 mythtv-backend - na tym samym systemie, albo innym osiągalnym w
221 Summary: Setup the mythtv backend
222 Summary(pl.UTF-8): Konfigurator backendu mythtv
223 Group: Applications/Multimedia
224 Requires: libmyth = %{version}-%{release}
227 MythTV provides a unified graphical interface for recording and
228 viewing television programs. Refer to the mythtv package for more
231 This package contains only the setup software for configuring the
234 %description setup -l pl.UTF-8
235 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
236 oglądania programów telewizyjnych. Więcej informacji w pakiecie
239 Ten pakiet zawiera tylko program do konfigurowania backendu mythtv.
242 Summary: Base themes for mythtv's frontend
243 Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv
245 Requires: %{name}-frontend = %{version}-%{release}
248 MythTV provides a unified graphical interface for recording and
249 viewing television programs. Refer to the mythtv package for more
252 This package contains only the base themes used by the frontend and
255 %description themes -l pl.UTF-8
256 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i
257 oglądania programów telewizyjnych. Więcej informacji w pakiecie
260 Ten pakiet zawiera tylko podstawowe motywy używane przez frontend oraz
264 Summary: Library providing mythtv support
265 Summary(pl.UTF-8): Biblioteka udostępniająca obsługę mythtv
267 Requires: QtSql-mysql
268 Requires: freetype >= 1:2.0.0
271 %description -n libmyth
272 Common library code for MythTV and add-on modules (development) MythTV
273 provides a unified graphical interface for recording and viewing
274 television programs. Refer to the mythtv package for more information.
276 %description -n libmyth -l pl.UTF-8
277 Wspólny kod biblioteki dla MythTV i dodatkowych modułów MythTV
278 dostarczający ujednolicony interfejs graficzny do nagrywania i
279 oglądania programów telewizyjnych. Więcej informacji w pakiecie
282 %package -n libmyth-devel
283 Summary: Development files for libmyth
284 Summary(pl.UTF-8): Pliki nagłówkowe libmyth
285 Group: Development/Libraries
286 Requires: libmyth = %{version}-%{release}
288 %description -n libmyth-devel
289 This package contains the header files for developing add-ons for
292 %description -n libmyth-devel -l pl.UTF-8
293 Ten pakiet zawiera pliki nagłówkowe do tworzenia dodatków dla mythtv.
295 %package -n libmyth-static
296 Summary: Static libmyth library
297 Summary(pl.UTF-8): Statyczna biblioteka libmyth
298 Group: Development/Libraries
299 Requires: libmyth-devel = %{version}-%{release}
301 %description -n libmyth-static
302 Static libmyth library.
304 %description -n libmyth-static -l pl.UTF-8
305 Statyczna biblioteka libmyth.
307 %package -n perl-MythTV
308 Summary: MythTV Perl bindings
309 Summary(pl.UTF-8): Interfejs Perla dla MythTV
312 %description -n perl-MythTV
313 MythTV Perl bindings.
315 %description -n perl-MythTV -l pl.UTF-8
316 Ten pakiet zawiera moduły Perla do tworzenia dodatków dla mythtv.
318 %package -n python-MythTV
319 Summary: MythTV Python bindings
320 Summary(pl.UTF-8): Interfejs Pythona dla MythTV
322 Requires: python-MySQLdb
324 %description -n python-MythTV
325 MythTV Python bindings.
327 %description -n python-MythTV -l pl.UTF-8
328 Ten pakiet zawiera moduły Pythona do tworzenia dodatków dla mythtv.
341 %{?with_dshowserver:%patch20 -p0}
342 rm -rf database/old # not supported in PLD
344 # lib64 fix - enable to update patch
345 %if %{_lib} != "lib" && 0
346 find '(' -name '*.[ch]' -o -name '*.cpp' -o -name '*.pro' ')' | \
347 xargs grep -l /lib . | xargs sed -i -e '
348 s,/''usr/lib/,/%{_libdir}/,g
349 s,/''lib/mythtv,/%{_lib}/mythtv,g
350 s,{PREFIX}/lib$,{PREFIX}/%{_lib},g
355 # Assigning null to QMAKE_LIBDIR_QT will prevent makefiles contain
356 # -L$(QTDIR)/%{_lib} and -Wl,-rpath,$(QTDIR)/%{_lib}. And that will
357 # prevent compiler finding libs from system when they should be looked
358 # from current buildtree.
359 # but that made it link with -lqt which doesn't exist, instead of -lqt-mt
360 # so we make QMAKE wrapper which will do sed subst after calling
361 # qmake. this is the wrapper.
362 cat > qmake-wrapper.sh <<'EOF'
365 while [ $# -gt 0 ]; do
379 if [ "$makefile" ]; then
381 s;-Wl,-rpath,$(QTDIR)/%{_lib};;
382 s;-L$(QTDIR)/%{_lib};;
386 chmod +x qmake-wrapper.sh
388 # move perl bindings to vendor prefix
389 sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \
390 bindings/perl/perl.pro
394 %if %{with cpu_autodetect}
395 # Make sure we have /proc mounted
396 if [ ! -r /proc/cpuinfo ]; then
397 echo "You need to have /proc mounted in order to build with cpu_autodetect!"
403 --prefix=%{_prefix} \
404 --libdir=%{_libdir} \
405 --libdir-name=%{_lib} \
406 --mandir=%{_mandir} \
407 --disable-distcc --disable-ccache \
408 --compile-type=%{?debug:debug}%{!?debug:release} \
409 --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \
410 --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \
411 %if %{with cpu_autodetect}
418 --cpu=%{_target_cpu} --tune=pentium4 \
421 %ifarch i386 i486 i586
422 --enable-disable-mmx-for-debugging \
427 %{?with_mmx:--enable-mmx} \
429 %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \
430 --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \
431 --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \
432 --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \
433 --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \
434 --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
435 --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \
436 --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \
437 --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \
438 --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \
439 --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \
440 --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \
441 --%{?with_vaapi:en}%{!?with_vaapi:dis}able-vaapi \
442 --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \
443 --%{?with_directfb:en}%{!?with_directfb:dis}able-directfb \
444 --%{?with_fftw3:en}%{!?with_fftw3:dis}able-libfftw3 \
448 %{_libdir}/qt4/bin/qmake mythtv.pro
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