2 # - bconds: altivec joystick lcd
3 # - lcd? (app-misc/lcdproc)
4 # - alpha, sparc, ppc arches?
5 # - http://outflux.net/software/pkgs/mythtvfs-fuse/
9 # MythTV now uses a fairly intelligent cpu-detection script, so if you are
10 # building an rpm by hand on the machine it will be used on, I encourage you
11 # to use "--with cpu_autodetect" to let mythtv decide for you.
14 %bcond_with cpu_autodetect # enable CPU autodetection at compile time (sets "-march", "-mcpu" compile flags really)
15 %bcond_without lirc # lirc support
16 %bcond_without alsa # alsa support
17 %bcond_without oss # oss support
18 %bcond_with arts # arts 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_with dshowserver # enable directshow codecs server
33 %bcond_with nvidia_headers # build vdpau support with nvidia headers
36 # enable mmx automatically on arches having it
37 %ifarch %{ix86} %{x8664}
38 %ifnarch i386 i486 i586 i686
43 # dshowserver is exclusive arch for x86 x86_64 only
44 %ifnarch %{ix86} %{x8664}
45 %undefine with_dshowserver
49 Summary: A personal video recorder (PVR) application
50 Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR)
55 Group: Applications/Multimedia
56 Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}.tar.bz2
57 # Source0-md5: e8f8b5b6a51cd7be700e215b2a1bf2c0
58 Source1: mythbackend.sysconfig
59 Source2: mythbackend.init
60 Source3: mythbackend.logrotate
61 Source5: pld-mythfrontend.desktop
62 # Source5-md5: f37a903ac97463683bebacdf29406951
63 Source6: pld-mythfrontend.png
64 # Source6-md5: bf76bd1463a022e174e4af976a03e678
66 # Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
67 #Patch100: %{name}-branch.diff
68 Patch0: %{name}-configure.patch
69 #Patch1: %{name}-mythstream.patch
70 #Patch2: %{name}-pl.patch
71 Patch3: %{name}-sbinpath.patch
72 #Patch4: %{name}-dvdnav-shared.patch
73 Patch20: %{name}-dshowserver_trunk.patch
74 URL: http://www.mythtv.org/
75 %{!?with_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-libs}
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 %{?with_arts:BuildRequires: arts-devel >= 13:0.9.5}
92 BuildRequires: ffmpeg-devel
93 BuildRequires: freetype-devel >= 1:2.0.0
94 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
95 BuildRequires: lame-libs-devel
96 %{?with_firewire:BuildRequires: libavc1394-devel}
97 BuildRequires: libdts-devel
98 %{?with_dvb:BuildRequires: libdvb-devel}
99 BuildRequires: libdvdnav-devel
100 %{?with_fftw3:BuildRequires: fftw3-devel,fftw3-single-devel}
101 %{?with_firewire:BuildRequires: libiec61883-devel}
102 %{?with_firewire:BuildRequires: libraw1394-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 %{?without_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
118 %{!?with_nvidia_headers:%{?with_vdpau:BuildRequires: libvdpau-devel}}
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 po 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 po
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: MySQL-python
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.
332 %setup -q -n %{name}-%{version}
341 %{?with_dshowserver:%patch20 -p1}
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=i386 --tune=pentium4 \
424 %{?with_mmx:--enable-mmx} \
426 %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \
427 --%{?with_arts:en}%{!?with_arts:dis}able-audio-arts \
428 --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \
429 --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \
430 --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \
431 --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \
432 --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \
433 --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \
434 --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \
435 --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \
436 --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \
437 --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \
438 --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \
439 --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \
440 --%{?with_directfb:en}%{!?with_directfb:dis}able-directfb \
441 --%{?with_fftw3:en}%{!?with_fftw3:dis}able-libfftw3 \
445 %{_libdir}/qt4/bin/qmake mythtv.pro
449 rm -rf $RPM_BUILD_ROOT
450 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} \
451 $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_desktopdir}} \
452 $RPM_BUILD_ROOT/var/{cache,lib,log,run}/mythtv \
453 $RPM_BUILD_ROOT%{_libdir}/mythtv \
454 $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins \
455 $RPM_BUILD_ROOT%{_pixmapsdir}
458 INSTALL_ROOT=$RPM_BUILD_ROOT
460 # required to build some plugins
461 # install libs/libavcodec/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
462 # libs/libavformat/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
463 # libs/libavutil/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv
465 # Install the files that we added on top of mythtv's own stuff
466 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend
467 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend
468 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend
469 %{?with_dshowserver:install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv}
472 install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}
473 install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir}
475 # Install settings.pro so people can see the build options we used
476 install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build
477 install config.mak settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build
479 for p in mythfrontend; do
480 for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/i18n/${p}_*.qm; do
481 echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*${p}_\(.*\).qm\),%%lang(\2) \1,"
485 # glibc language codes. attempt was made to change it on libmyth side,
486 # but that was just asking for trouble due large coverage of
487 # language.lower() usage.
489 s,%%lang(en_gb),%%lang(en_GB),
490 s,%%lang(zh_tw),%%lang(zh_TW),
491 s,%%lang(pt_br),%%lang(pt_BR),
494 rm -rf mythtvosd mythwelcome mythlcdserver
495 install -d mythtvosd mythwelcome
496 cp -a programs/mythtvosd/{README,*.xml} mythtvosd
497 cp -a programs/mythwelcome/README mythwelcome
498 cp -a programs/mythlcdserver/README mythlcdserver
501 rm -rf $RPM_BUILD_ROOT
503 # Empty newline after %addusertogroup %{name} video below is intended.
504 # Do not remove it until rpm stop joining lines with that macro.
506 %groupadd -g 149 %{name}
507 %useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name}
508 %addusertogroup %{name} video
509 %addusertogroup %{name} audio
512 /sbin/chkconfig --add mythbackend
515 if [ "$1" = "0" ]; then
516 %service -q mythbackend stop
517 /sbin/chkconfig --del mythbackend
521 if [ "$1" = "0" ]; then
526 %post -n libmyth -p /sbin/ldconfig
527 %postun -n libmyth -p /sbin/ldconfig
530 if [ "$1" = 1 ]; then
531 %banner -e %{name}-setup <<EOF
532 To grant mysql permissions to mythtv, please run
533 zcat %{_docdir}/%{name}-setup-%{version}/database/mc.sql.gz | mysql
538 %defattr(644,root,root,755)
539 %doc README* UPGRADING AUTHORS FAQ
540 %doc docs contrib config
541 %doc keys.txt mythtvosd mythwelcome mythlcdserver
544 %defattr(644,root,root,755)
545 %attr(755,root,root) %{_sbindir}/mythbackend
546 %attr(755,root,root) %{_sbindir}/mythcommflag
547 %attr(755,root,root) %{_bindir}/mythfilldatabase
548 %attr(755,root,root) %{_sbindir}/mythjobqueue
549 %attr(755,root,root) %{_sbindir}/mythlcdserver
550 %attr(755,root,root) %{_bindir}/mythtranscode
551 %attr(755,root,root) %{_bindir}/mythreplex
552 %attr(775,root,mythtv) %dir /var/lib/mythtv
553 %attr(775,root,mythtv) %dir /var/cache/mythtv
554 %attr(775,root,mythtv) %dir /var/run/mythtv
555 %attr(754,root,root) /etc/rc.d/init.d/mythbackend
556 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend
557 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mythbackend
558 %attr(775,root,mythtv) %dir %{_localstatedir}/log/mythtv
560 %files frontend -f mythfrontend.lang
561 %defattr(644,root,root,755)
562 %attr(755,root,root) %{_bindir}/mythfrontend
563 %attr(755,root,root) %{_bindir}/mythshutdown
564 %attr(755,root,root) %{_bindir}/mythavtest
565 %attr(755,root,root) %{_bindir}/mythtvosd
566 %attr(755,root,root) %{_bindir}/mythwelcome
567 %dir %{_datadir}/mythtv
568 %dir %{_datadir}/mythtv/themes
569 %dir %{_libdir}/mythtv
570 %{_datadir}/mythtv/*.xml
571 %dir %{_libdir}/mythtv/filters
572 %dir %{_libdir}/mythtv/plugins
573 %attr(755,root,root) %{_libdir}/mythtv/filters/*.so
574 %{_datadir}/mythtv/*.ttf
575 %dir %{_datadir}/mythtv/i18n
576 %if %{with dshowserver}
577 %{_datadir}/mythtv/dshowcodecs
579 %{_desktopdir}/*.desktop
583 %defattr(644,root,root,755)
585 %attr(755,root,root) %{_bindir}/mythtv-setup
588 %defattr(644,root,root,755)
589 %{_datadir}/mythtv/themes/*
592 %defattr(644,root,root,755)
593 %attr(755,root,root) %{_libdir}/lib*.so*
594 %attr(755,root,root) %{_libdir}/lib*.a
595 %{_datadir}/mythtv/*.pl
597 %files -n libmyth-devel
598 %defattr(644,root,root,755)
599 %attr(755,root,root) %{_libdir}/*.so
601 %{_datadir}/mythtv/build
603 %files -n libmyth-static
604 %defattr(644,root,root,755)
606 %files -n perl-MythTV
607 %defattr(644,root,root,755)
608 %{perl_vendorlib}/MythTV.pm
609 %dir %{perl_vendorlib}/MythTV
610 %{perl_vendorlib}/MythTV/*.pm
611 %dir %{perl_vendorlib}/IO/Socket/INET
612 %{perl_vendorlib}/IO/Socket/INET/MythTV.pm
613 %exclude %{perl_vendorarch}/auto/MythTV/.packlist
615 %files -n python-MythTV
616 %defattr(644,root,root,755)
617 %dir %{py_sitescriptdir}/MythTV
618 # XXX: package .py[co] only
619 %{py_sitescriptdir}/MythTV/*
620 %{py_sitescriptdir}/*.egg-info