# - bconds: altivec joystick lcd
# - lcd? (app-misc/lcdproc)
# - alpha, sparc, ppc arches?
+# - http://outflux.net/software/pkgs/mythtvfs-fuse/
+# - vaapi support - check for compatible versions of libva?
+# - bindings:
+# WARNING: disabling Python bindings; missing MySQLdb
+# WARNING: disabling Perl bindings; missing Net::UPnP::QueryResponse
+# WARNING: disabling Perl bindings; missing Net::UPnP::ControlPoint
+# - dozen of unpackaged files
#
# Specfile for MythTV
#
%bcond_without lirc # lirc support
%bcond_without alsa # alsa support
%bcond_without oss # oss support
-%bcond_with 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_without ivtv # ivtv support (PVR-250, PVR-350) NFY
%bcond_without iptv
-%bcond_with firewire # ieee1394 (NFY)
-%bcond_without xvmc # do not use XvMCW
+%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_with directfb
-%bcond_with nvidia_headers
+%bcond_with perl
+%bcond_with php
+%bcond_with python
+%bcond_with nvidia_headers # build vdpau support with nvidia headers
+ # instead of libvdpau
# enable mmx automatically on arches having it
%ifarch %{ix86} %{x8664}
%undefine with_dshowserver
%endif
-%define snap rc1
-#%define rel 0.1
+%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.22
-Release: 0.%{snap}.1
+Version: 0.26.0
+Release: 2
License: GPL v2
Group: Applications/Multimedia
-Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}%{snap}.tar.bz2
-# Source0-md5: 049e93d78d5370351539c9a23b47e1af
+Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}.tar.bz2
+# Source0-md5: f57066bf75e6f14824c494d41639f4f9
Source1: mythbackend.sysconfig
Source2: mythbackend.init
Source3: mythbackend.logrotate
+Source4: %{name}.tmpfiles
Source5: pld-mythfrontend.desktop
-# Source5-md5: f37a903ac97463683bebacdf29406951
+# Source5-md5: f37a903ac97463683bebacdf29406951
Source6: pld-mythfrontend.png
-# Source6-md5: bf76bd1463a022e174e4af976a03e678
+# Source6-md5: bf76bd1463a022e174e4af976a03e678
Source20: dshowcodecs
-# Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
-#Patch100: %{name}-branch.diff
+# Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
Patch0: %{name}-configure.patch
-#Patch1: %{name}-mythstream.patch
-#Patch2: %{name}-pl.patch
-Patch3: %{name}-sbinpath.patch
-#Patch4: %{name}-dvdnav-shared.patch
-Patch20: %{name}-dshowserver_trunk.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/
-%{?without_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-libs}
-%{?without_nvidia_headers:BuildConflicts: xorg-driver-video-nvidia-devel}
BuildRequires: Mesa-libGLU-devel
-#BuildRequires: OpenGL-GLU-devel
BuildRequires: OpenGL-devel
BuildRequires: Qt3Support-devel
BuildRequires: QtCore-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
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: patchutils
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-QueryResponse
+BuildRequires: perl-Net-UPnP-ControlPoint
+BuildRequires: perl-IO-Socket-INET6
+%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
-%{?with_vdpau:BuildRequires: libvdpau-devel}
+BuildRequires: which
+%{?with_nvidia_headers:%{?with_vdpau:BuildRequires: xorg-driver-video-nvidia-devel}}
BuildRequires: xorg-lib-libXext-devel
-%{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
BuildRequires: xorg-lib-libXxf86vm-devel
+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} ppc
%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:
Suggests: mysql
Provides: group(mythtv)
Provides: user(mythtv)
+Conflicts: logrotate < 3.8.0
%description backend
MythTV provides a unified graphical interface for recording and
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)
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
Summary: MythTV Python bindings
Summary(pl.UTF-8): Interfejs Pythona dla MythTV
Group: Libraries
-Requires: MySQL-python
+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.
-%prep
+%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.
-%setup -q -n %{name}-%{version}%{snap}
+%prep
+%setup -q
-%patch0 -p1
-#%patch1 -p1
-#%patch2 -p1
-%patch3 -p1
-#%patch4 -p1
+%{__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
# lib64 fix - enable to update patch
# move perl bindings to vendor prefix
sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' \
- bindings/perl/perl.pro
+ bindings/perl/Makefile
%build
./configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
- --libdir-name=`basename %{_libdir}` \
+ --libdir-name=%{_lib} \
--mandir=%{_mandir} \
--disable-distcc --disable-ccache \
--compile-type=%{?debug:debug}%{!?debug:release} \
%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
%{?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_directfb:en}%{!?with_directfb:dis}able-directfb \
+ --%{?with_fftw3:en}%{!?with_fftw3:dis}able-libfftw3 \
--enable-xv \
--enable-x11 \
-%{_libdir}/qt4/bin/qmake mythtv.pro
-#sed -i -e 's/usr\/\/usr/usr/g' config.ep
-
-
+#%{_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/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%{_pixmapsdir} \
+ $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
%{__make} install \
INSTALL_ROOT=$RPM_BUILD_ROOT
-# required to build some plugins
-# install libs/libavcodec/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
-# libs/libavformat/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv \
-# libs/libavutil/*.h $RPM_BUILD_ROOT%{_includedir}/mythtv
-
# 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
-%{?with_dshowserver:install %{SOURCE20} $RPM_BUILD_ROOT%{_datadir}/mythtv}
+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}
done > $p.lang
done
+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.
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
%clean
rm -rf $RPM_BUILD_ROOT
-# Empty newline after %addusertogroup %{name} video below is intended.
-# Do not remove it until rpm stop joining lines with that macro.
%pre backend
%groupadd -g 149 %{name}
%useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name}
%files
%defattr(644,root,root,755)
%doc README* UPGRADING AUTHORS FAQ
-%doc docs contrib config
-%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}/mythavtest
-%attr(755,root,root) %{_bindir}/mythtvosd
%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
%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)
%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
-# XXX: package .py[co] only
%{py_sitescriptdir}/MythTV/*
%{py_sitescriptdir}/*.egg-info
+%endif
+
+%if %{with php}
+%files -n php-MythTV
+%defattr(644,root,root,755)
+%endif