X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=mythtv.spec;h=60bdddca4dd1c6b56c3eae4b7cf6895cf266d0d0;hb=2b4bded39b37dbfea4aec03f645576cdbc85fa43;hp=68af8ea977b51949787a73002f34b1820e2b1c06;hpb=aaf92077ae5232c34c4e00f786a29c349be7a0c8;p=packages%2Fmythtv.git diff --git a/mythtv.spec b/mythtv.spec index 68af8ea..60bdddc 100644 --- a/mythtv.spec +++ b/mythtv.spec @@ -1,8 +1,9 @@ # TODO # - bconds: altivec joystick lcd # - lcd? (app-misc/lcdproc) -# - icons for desktop entries # - alpha, sparc, ppc arches? +# - http://outflux.net/software/pkgs/mythtvfs-fuse/ +# - vaapi support - check for compatible versions of libva? # # Specfile for MythTV # @@ -15,15 +16,24 @@ %bcond_without lirc # lirc support %bcond_without alsa # alsa support %bcond_without oss # oss support -%bcond_without arts # arts support %bcond_without jack # jack audio connection kit -%bcond_without opengl # opengl vsync +%bcond_without pulseaudio # pulseaudio support %bcond_without dvb # DVB support %bcond_without xrandr # disable X11 resolution switching -%bcond_with ivtv # ivtv support (PVR-250, PVR-350) NFY -%bcond_with firewire # ieee1394 (NFY) -%bcond_without xvmc # do not use XvMCW -%bcond_with mmx # enable mmx +%bcond_without ivtv # ivtv support (PVR-250, PVR-350) NFY +%bcond_without iptv +%bcond_without firewire # ieee1394 (NFY) +%bcond_without vdpau # disable nvidia vdpau support +%bcond_without fftw3 # disable fftw3 support +%bcond_with mmx # enable MMX +%bcond_without nellymoserdec +%bcond_with vaapi # enable vaapi +%bcond_with dshowserver # enable directshow codecs server +%bcond_without perl +%bcond_with php +%bcond_without python +%bcond_with nvidia_headers # build vdpau support with nvidia headers + # instead of libvdpau # enable mmx automatically on arches having it %ifarch %{ix86} %{x8664} @@ -32,62 +42,106 @@ %endif %endif +# dshowserver is exclusive arch for x86 x86_64 only +%ifnarch %{ix86} %{x8664} +%undefine with_dshowserver +%endif + +%include /usr/lib/rpm/macros.perl Summary: A personal video recorder (PVR) application Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR) Name: mythtv -Version: 0.21 -Release: 4 +Version: 0.26.1 +Release: 2 License: GPL v2 Group: Applications/Multimedia -Source0: http://www.mythtv.org/mc/%{name}-%{version}.tar.bz2 -# Source0-md5: 49fc135e1cde90cd935c1229467fa37e +Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}.tar.bz2 +# Source0-md5: ef25a9b86f4a23d6f07d83791a1e5c9e Source1: mythbackend.sysconfig Source2: mythbackend.init Source3: mythbackend.logrotate -Source5: mythfrontend.desktop -#Patch100: %{name}-branch.diff -Patch0: %{name}-lib64.patch -Patch1: mythtv-configure.patch -Patch2: %{name}-mythstream.patch -Patch3: %{name}-ldconfig.patch -#Patch4: %{name}-pl.patch -Patch5: %{name}-sbinpath.patch -Patch6: mythtv-dvdnav-shared.patch -Patch7: %{name}-libs.patch -Patch8: %{name}-fixes.patch +Source4: %{name}.tmpfiles +Source5: pld-mythfrontend.desktop +# Source5-md5: f37a903ac97463683bebacdf29406951 +Source6: pld-mythfrontend.png +# Source6-md5: bf76bd1463a022e174e4af976a03e678 +Source20: dshowcodecs +# Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c +Patch0: %{name}-configure.patch +Patch1: system-zeromq.patch +Patch20: %{name}-compile_fixes_for_qt_4_7.patch +Patch30: %{name}-dshowserver-0.22.patch URL: http://www.mythtv.org/ -#BuildRequires: DirectFB-devel -#BuildRequires: XFree86-devel +BuildRequires: Mesa-libGLU-devel BuildRequires: OpenGL-devel -BuildRequires: OpenGL-GLU-devel +BuildRequires: Qt3Support-devel +BuildRequires: QtCore-devel +BuildRequires: QtGui-devel +BuildRequires: QtNetwork-devel +BuildRequires: QtOpenGL-devel +BuildRequires: QtScript-devel +BuildRequires: QtSql-devel +BuildRequires: QtWebKit-devel +BuildRequires: QtXml-devel %{?with_alsa:BuildRequires: alsa-lib-devel} -%{?with_arts:BuildRequires: arts-devel >= 13:0.9.5} +BuildRequires: ffmpeg-devel +%{?with_fftw3:BuildRequires: fftw3-devel,fftw3-single-devel} BuildRequires: freetype-devel >= 1:2.0.0 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel} BuildRequires: lame-libs-devel -%{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel} %{?with_firewire:BuildRequires: libavc1394-devel} +BuildRequires: libdts-devel %{?with_dvb:BuildRequires: libdvb-devel} BuildRequires: libdvdnav-devel %{?with_firewire:BuildRequires: libiec61883-devel} %{?with_firewire:BuildRequires: libraw1394-devel} +%{!?with_nvidia_headers:%{?with_vdpau:BuildRequires: libvdpau-devel}} BuildRequires: linux-libc-headers >= 7:2.6.10 %{?with_lirc:BuildRequires: lirc-devel} BuildRequires: mysql-devel -BuildRequires: qmake >= 6:3.2.1-4 -BuildRequires: qt-devel >= 6:3.2.1-4 +BuildRequires: perl-devel +BuildRequires: perl-tools-pod +%if %{with perl} +BuildRequires: perl-DBI +BuildRequires: perl-DBD-mysql +BuildRequires: perl-HTTP-Message +BuildRequires: perl-libwww +BuildRequires: perl-Net-UPnP +BuildRequires: perl-IO-Socket-INET6 +%endif +%if %{with python} +BuildRequires: python-MySQLdb +BuildRequires: python-lxml +BuildRequires: python-urlgrabber +%endif +BuildRequires: pkgconfig +%{?with_pulseaudio:BuildRequires: pulseaudio-devel} +BuildRequires: python-devel +BuildRequires: qt4-build +BuildRequires: qt4-qmake +BuildRequires: rpm-perlprov >= 4.1-13 +BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.228 BuildRequires: sed >= 4.0 -# for bundled libavcodec -BuildRequires: libdts-devel -#BuildConflicts: libmyth-devel +BuildRequires: which +%{?with_nvidia_headers:%{?with_vdpau:BuildRequires: xorg-driver-video-nvidia-devel}} BuildRequires: xorg-lib-libXext-devel BuildRequires: xorg-lib-libXxf86vm-devel -ExclusiveArch: %{ix86} %{x8664} ppc +BuildRequires: zeromq-devel +%{!?with_pulseaudio:BuildConflicts: pulseaudio-devel} +%{!?with_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-devel} +# for Perl bindings +BuildRequires: perl-ExtUtils-MakeMaker +ExclusiveArch: %{ix86} %{x8664} x32 ppc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define myth_api_version %(echo %{version} | cut -d. -f1,2) +# libmythavdevice.so.52.2.1 missing -l???: sem_init sem_destroy sem_post sem_timedwait +# libmythavcodec.so.52.86.1 missing -lpthread: pthread_create pthread_join +%define skip_post_check_so libmythavdevice.so libmythavcodec.so +%define no_install_post_check_so 1 + %description MythTV implements the following PVR features, and more, with a unified graphical interface: @@ -126,8 +180,10 @@ Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires: libmyth = %{version}-%{release} Requires: mythtv = %{version}-%{release} +Suggests: mysql Provides: group(mythtv) Provides: user(mythtv) +Conflicts: logrotate < 3.8.0 %description backend MythTV provides a unified graphical interface for recording and @@ -147,7 +203,7 @@ mythtv. Ten pakiet zawiera tylko oprogramowanie serwerowe, udostępniające usługi przechwytywania i kodowania obrazu i dźwięku. Aby było przydatne, wymaga instalacji mythtv-frontend - na tym samym systemie, -albo innym osiągalnym po sieci. +albo innym osiągalnym w sieci. %package frontend Summary: Client component of mythtv (a PVR) @@ -175,8 +231,7 @@ mythtv. Ten pakiet zawiera tylko oprogramowanie klienckie, dostarczające frontend do odtwarzania i konfiguracji. Wymaga dostępu do instalacji -mythtv-backend - na tym samym systemie, albo innym osiągalnym po -sieci. +mythtv-backend - na tym samym systemie, albo innym osiągalnym w sieci. %package setup Summary: Setup the mythtv backend @@ -202,8 +257,8 @@ Ten pakiet zawiera tylko program do konfigurowania backendu mythtv. %package themes Summary: Base themes for mythtv's frontend Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv -Requires: %{name}-frontend = %{version}-%{release} Group: Themes +Requires: %{name}-frontend = %{version}-%{release} %description themes MythTV provides a unified graphical interface for recording and @@ -225,10 +280,9 @@ mythtvsetup. Summary: Library providing mythtv support Summary(pl.UTF-8): Biblioteka udostępniająca obsługę mythtv Group: Libraries +Requires: QtSql-mysql Requires: freetype >= 1:2.0.0 Requires: lame -Requires: qt >= 6:3.2.1-4 -Requires: qt-plugin-mysql >= 6:3.2.1-4 %description -n libmyth Common library code for MythTV and add-on modules (development) MythTV @@ -266,19 +320,51 @@ Static libmyth library. %description -n libmyth-static -l pl.UTF-8 Statyczna biblioteka libmyth. +%package -n perl-MythTV +Summary: MythTV Perl bindings +Summary(pl.UTF-8): Interfejs Perla dla MythTV +Group: Libraries + +%description -n perl-MythTV +MythTV Perl bindings. + +%description -n perl-MythTV -l pl.UTF-8 +Ten pakiet zawiera moduły Perla do tworzenia dodatków dla mythtv. + +%package -n python-MythTV +Summary: MythTV Python bindings +Summary(pl.UTF-8): Interfejs Pythona dla MythTV +Group: Libraries +Requires: python-MySQLdb + +%description -n python-MythTV +MythTV Python bindings. + +%description -n python-MythTV -l pl.UTF-8 +Ten pakiet zawiera moduły Pythona do tworzenia dodatków dla mythtv. + +%package -n php-MythTV +Summary: MythTV PHP bindings +Summary(pl.UTF-8): Interfejs PHP dla MythTV +Group: Libraries + +%description -n php-MythTV +MythTV PHP bindings. + +%description -n php-MythTV -l pl.UTF-8 +Ten pakiet zawiera moduły PHP do tworzenia dodatków dla mythtv. + %prep -%setup -q %{?_rev:-n %{name}} -%if %{_lib} != "lib" -#%patch0 -p1 -%endif -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -#%patch4 -p1 REDIFF and submit -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 + +%setup -q + +%{__sed} -i -e 's,/var/log/mythfilldatabase.log,/var/log/mythtv/mythfilldatabase.log,' \ + programs/mythbackend/housekeeper.cpp programs/mythwelcome/welcomedialog.cpp + +%patch0 -p1 +%patch1 -p1 +%{?with_dshowserver:%patch20 -p1} +#%patch30 -p1 rm -rf database/old # not supported in PLD @@ -310,12 +396,12 @@ getmakefile() { makefile="$1" return ;; - esac + esac shift done } -qmake "$@" +qmake-qt4 "$@" getmakefile "$@" if [ "$makefile" ]; then %{__sed} -i -e ' @@ -326,7 +412,12 @@ fi EOF chmod +x qmake-wrapper.sh +# move perl bindings to vendor prefix +sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \ + bindings/perl/Makefile + %build + %if %{with cpu_autodetect} # Make sure we have /proc mounted if [ ! -r /proc/cpuinfo ]; then @@ -335,19 +426,15 @@ if [ ! -r /proc/cpuinfo ]; then fi %endif -# NB: not autoconf configure -# help configure::has_library() to locate libs -LD_LIBRARY_PATH=%{_libdir} \ -CC="%{__cc}" \ -CXX="%{__cxx}" \ ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ + --libdir-name=%{_lib} \ --mandir=%{_mandir} \ --disable-distcc --disable-ccache \ --compile-type=%{?debug:debug}%{!?debug:release} \ - --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \ - --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \ + --extra-cflags="%{rpmcflags} -fomit-frame-pointer -fno-devirtualize" \ + --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer -fno-devirtualize" \ %if %{with cpu_autodetect} --enable-proc-opt \ %else @@ -355,53 +442,64 @@ CXX="%{__cxx}" \ %ifarch athlon --arch=athlon \ %else - --cpu=i386 --tune=pentium4 \ + --cpu=%{_target_cpu} --tune=pentium4 \ %endif %endif + %ifarch i386 i486 i586 + --enable-disable-mmx-for-debugging \ + %endif %ifarch %{x8664} --arch=x86_64 \ %endif + %ifarch x32 + --disable-asm \ + %endif %{?with_mmx:--enable-mmx} \ %endif %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \ - --%{?with_arts:en}%{!?with_arts:dis}able-audio-arts \ --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \ --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \ --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \ - --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \ --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \ --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \ --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \ - --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \ + --%{?with_ivtv:en}%{!?with_ivtv:dis}able-ivtv \ + --%{?with_iptv:en}%{!?with_iptv:dis}able-iptv \ + --%{?with_nellymoserdec:en}%{!?with_nellymoserdec:dis}able-decoder=nellymoser \ + --%{?with_vaapi:en}%{!?with_vaapi:dis}able-vaapi \ + --%{?with_vdpau:en}%{!?with_vdpau:dis}able-vdpau \ + --%{?with_fftw3:en}%{!?with_fftw3:dis}able-libfftw3 \ --enable-xv \ --enable-x11 \ -qmake mythtv.pro \ -QTDIR="%{_prefix}" \ -QMAKE_LIBDIR_X11=%{?_x_libraries}%{!?_x_libraries:%{_libdir}} - -%{__make} \ - QTDIR="%{_prefix}" \ - QMAKE=$(pwd)/qmake-wrapper.sh +#%{_libdir}/qt4/bin/qmake mythtv.pro +%{__make} %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} \ $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_desktopdir}} \ - $RPM_BUILD_ROOT/var/{cache,lib,log,run}/mythtv \ - $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins + $RPM_BUILD_ROOT/var/{cache,log,run}/mythtv \ + $RPM_BUILD_ROOT/var/lib/mythtv/tmp \ + $RPM_BUILD_ROOT%{_libdir}/mythtv \ + $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins \ + $RPM_BUILD_ROOT%{_pixmapsdir} \ + $RPM_BUILD_ROOT/usr/lib/tmpfiles.d -export QTDIR="%{_prefix}" %{__make} install \ INSTALL_ROOT=$RPM_BUILD_ROOT # Install the files that we added on top of mythtv's own stuff -install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend -install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend -install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend +install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend +cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend +cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/mythbackend +%{?with_dshowserver:cp -p %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv} + +install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf # desktop entries install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir} +install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir} # Install settings.pro so people can see the build options we used install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build @@ -413,6 +511,11 @@ for p in mythfrontend; do done > $p.lang done +echo "%dir %{_datadir}/mythtv/locales" > mythbackend.lang +for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/locales/*.xml; do + echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*/\(.*\).xml\),%%lang(\2) \1," +done >> mythbackend.lang + # glibc language codes. attempt was made to change it on libmyth side, # but that was just asking for trouble due large coverage of # language.lower() usage. @@ -422,9 +525,8 @@ s,%%lang(zh_tw),%%lang(zh_TW), s,%%lang(pt_br),%%lang(pt_BR), ' *.lang -rm -rf mythtvosd mythwelcome mythlcdserver -install -d mythtvosd mythwelcome -cp -a programs/mythtvosd/{README,*.xml} mythtvosd +rm -rf mythwelcome mythlcdserver +install -d mythwelcome cp -a programs/mythwelcome/README mythwelcome cp -a programs/mythlcdserver/README mythlcdserver @@ -466,43 +568,65 @@ fi %files %defattr(644,root,root,755) %doc README* UPGRADING AUTHORS FAQ -#%doc docs contrib configfiles -%doc keys.txt mythtvosd mythwelcome mythlcdserver +%doc docs contrib +%doc keys.txt mythwelcome mythlcdserver -%files backend +%files backend -f mythbackend.lang %defattr(644,root,root,755) -%attr(755,root,root) %{_sbindir}/mythbackend -%attr(755,root,root) %{_sbindir}/mythcommflag +%attr(755,root,root) %{_bindir}/mythbackend +%attr(755,root,root) %{_bindir}/mythcommflag %attr(755,root,root) %{_bindir}/mythfilldatabase -%attr(755,root,root) %{_sbindir}/mythjobqueue -%attr(755,root,root) %{_sbindir}/mythlcdserver +%attr(755,root,root) %{_bindir}/mythjobqueue +%attr(755,root,root) %{_bindir}/mythlcdserver +%attr(755,root,root) %{_bindir}/mythlogserver +%attr(755,root,root) %{_bindir}/mythmediaserver %attr(755,root,root) %{_bindir}/mythtranscode %attr(755,root,root) %{_bindir}/mythreplex +%attr(755,root,root) %{_bindir}/mythffmpeg +%attr(755,root,root) %{_bindir}/mythpreviewgen +%attr(755,root,root) %{_bindir}/mythccextractor +%attr(755,root,root) %{_bindir}/mythmetadatalookup +%attr(755,root,root) %{_bindir}/mythutil + %attr(775,root,mythtv) %dir /var/lib/mythtv +%attr(700,root,mythtv) %dir /var/lib/mythtv/tmp %attr(775,root,mythtv) %dir /var/cache/mythtv %attr(775,root,mythtv) %dir /var/run/mythtv +/usr/lib/tmpfiles.d/%{name}.conf %attr(754,root,root) /etc/rc.d/init.d/mythbackend %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mythbackend %attr(775,root,mythtv) %dir %{_localstatedir}/log/mythtv +%{_datadir}/mythtv/backend-config +%{_datadir}/mythtv/html %files frontend -f mythfrontend.lang %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/mythfrontend %attr(755,root,root) %{_bindir}/mythshutdown -%attr(755,root,root) %{_bindir}/mythtv -%attr(755,root,root) %{_bindir}/mythtvosd +%attr(755,root,root) %{_bindir}/mythavtest %attr(755,root,root) %{_bindir}/mythwelcome %dir %{_datadir}/mythtv %dir %{_datadir}/mythtv/themes +%{_datadir}/mythtv/internetcontent +%if %{without perl} +%exclude %{_datadir}/mythtv/internetcontent/nv_perl_libs +%endif +%{_datadir}/mythtv/metadata %dir %{_libdir}/mythtv %{_datadir}/mythtv/*.xml %dir %{_libdir}/mythtv/filters %dir %{_libdir}/mythtv/plugins %attr(755,root,root) %{_libdir}/mythtv/filters/*.so -%{_datadir}/mythtv/*.ttf +%dir %{_datadir}/mythtv/fonts +%{_datadir}/mythtv/fonts/*.ttf +%{_datadir}/mythtv/fonts/*.otf %dir %{_datadir}/mythtv/i18n +%if %{with dshowserver} +%{_datadir}/mythtv/dshowcodecs +%endif %{_desktopdir}/*.desktop +%{_pixmapsdir}/*.png %files setup %defattr(644,root,root,755) @@ -515,7 +639,11 @@ fi %files -n libmyth %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/lib*.so.*.*.* +%attr(755,root,root) %{_libdir}/lib*.so.* +%attr(755,root,root) %{_libdir}/lib*.a +%dir %{_datadir}/mythtv +%{_datadir}/mythtv/*.pl +%{_datadir}/mythtv/hardwareprofile %files -n libmyth-devel %defattr(644,root,root,755) @@ -525,3 +653,28 @@ fi %files -n libmyth-static %defattr(644,root,root,755) + +%if %{with perl} +%files -n perl-MythTV +%defattr(644,root,root,755) +%{perl_vendorlib}/MythTV.pm +%dir %{perl_vendorlib}/MythTV +%{perl_vendorlib}/MythTV/*.pm +%dir %{perl_vendorlib}/IO/Socket/INET +%{perl_vendorlib}/IO/Socket/INET/MythTV.pm +%exclude %{perl_vendorarch}/auto/MythTV/.packlist +%endif + +%if %{with python} +%files -n python-MythTV +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/mythpython +%dir %{py_sitescriptdir}/MythTV +%{py_sitescriptdir}/MythTV/* +%{py_sitescriptdir}/*.egg-info +%endif + +%if %{with php} +%files -n php-MythTV +%defattr(644,root,root,755) +%endif