# 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
#
%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 pulseaudio # pulseaudio support
%bcond_without opengl # opengl vsync
%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 ivtv # ivtv support (PVR-250, PVR-350) NFY
+%bcond_without iptv
+%bcond_without firewire # ieee1394 (NFY)
%bcond_without xvmc # do not use XvMCW
-%bcond_with mmx # enable mmx
+%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 # build vdpau support with nvidia headers
+ # instead of libvdpau
# enable mmx automatically on arches having it
%ifarch %{ix86} %{x8664}
%endif
%endif
+# dshowserver is exclusive arch for x86 x86_64 only
+%ifnarch %{ix86} %{x8664}
+%undefine with_dshowserver
+%endif
+
Summary: A personal video recorder (PVR) application
Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR)
Name: mythtv
-Version: 0.21
+Version: 0.23.1
Release: 4
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: 3379a5fd12ae866cd10c5b5d23439898
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
+Source5: pld-mythfrontend.desktop
+# Source5-md5: f37a903ac97463683bebacdf29406951
+Source6: pld-mythfrontend.png
+# Source6-md5: bf76bd1463a022e174e4af976a03e678
+Source20: dshowcodecs
+# Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c
+Patch0: %{name}-configure.patch
+Patch10: %{name}-sbinpath.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
+BuildRequires: pkgconfig
+%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
+BuildRequires: python-devel
+BuildRequires: qt4-build
+BuildRequires: qt4-qmake
+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
+%{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel}
BuildRequires: xorg-lib-libXxf86vm-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
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Requires(pre): /usr/sbin/useradd
Requires: libmyth = %{version}-%{release}
Requires: mythtv = %{version}-%{release}
+Suggests: mysql
Provides: group(mythtv)
Provides: user(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)
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
%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
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
%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.
+
%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
+%patch10 -p1
+%patch20 -p1
+#%patch30 -p1
+
+%{?with_dshowserver:%patch20 -p0}
rm -rf database/old # not supported in PLD
# lib64 fix - enable to update patch
makefile="$1"
return
;;
- esac
+ esac
shift
done
}
-qmake "$@"
+qmake-qt4 "$@"
getmakefile "$@"
if [ "$makefile" ]; then
%{__sed} -i -e '
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/perl.pro
+
%build
+
%if %{with cpu_autodetect}
# Make sure we have /proc mounted
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} \
%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_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 \
-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}
-export QTDIR="%{_prefix}"
%{__make} install \
INSTALL_ROOT=$RPM_BUILD_ROOT
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}
# 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
%files
%defattr(644,root,root,755)
%doc README* UPGRADING AUTHORS FAQ
-#%doc docs contrib configfiles
+%doc docs contrib config
%doc keys.txt mythtvosd mythwelcome mythlcdserver
%files backend
%attr(755,root,root) %{_bindir}/mythtranscode
%attr(755,root,root) %{_bindir}/mythreplex
%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
%attr(754,root,root) /etc/rc.d/init.d/mythbackend
%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}/mythavtest
%attr(755,root,root) %{_bindir}/mythtvosd
%attr(755,root,root) %{_bindir}/mythwelcome
%dir %{_datadir}/mythtv
%attr(755,root,root) %{_libdir}/mythtv/filters/*.so
%{_datadir}/mythtv/*.ttf
%dir %{_datadir}/mythtv/i18n
+%if %{with dshowserver}
+%{_datadir}/mythtv/dshowcodecs
+%endif
%{_desktopdir}/*.desktop
+%{_pixmapsdir}/*.png
%files setup
%defattr(644,root,root,755)
%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
+%{_datadir}/mythtv/*.pl
%files -n libmyth-devel
%defattr(644,root,root,755)
%files -n libmyth-static
%defattr(644,root,root,755)
+
+%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
+
+%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