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