X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=mythtv.spec;h=c1fd5368ff0151f77e06e295f0c488fb45024f2b;hb=f19924616b4fbd75ea1e9bb55656cb456fa76997;hp=2e21c60d535901d8c4fe67b46c6afc872ece7b25;hpb=6e738c98c29759a7d3c04735b45d3b9b650b05b9;p=packages%2Fmythtv.git diff --git a/mythtv.spec b/mythtv.spec index 2e21c60..c1fd536 100644 --- a/mythtv.spec +++ b/mythtv.spec @@ -1,6 +1,8 @@ # TODO -# - bconds broken? (???) -# - what about Patch0? +# - bconds: altivec joystick lcd +# - lcd? (app-misc/lcdproc) +# - icons for desktop entries +# - alpha, sparc, ppc arches? # # Specfile for MythTV # @@ -9,53 +11,85 @@ # to use "--with cpu_autodetect" to let mythtv decide for you. # # Conditional build: -%bcond_with lirc # lirc support +%bcond_with cpu_autodetect # enable CPU autodetection at compile time (sets "-march", "-mcpu" compile flags really) +%bcond_without lirc # lirc support %bcond_without alsa # alsa support -%bcond_without oss # oss -%bcond_with opengl_vsync # opengl vsync -%bcond_with arts # arts support -%bcond_with xvmc # xvmc support -%bcond_with cpu_autodetect # enable CPU autodetection at compile time -# +%bcond_without oss # oss support +%bcond_without arts # arts support +%bcond_without jack # jack audio connection kit +%bcond_with oggvorbis # ogg vorbis (gone?!) +%bcond_without opengl # opengl vsync +%bcond_with dvb # DVB support # invalid option +%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 + +# enable mmx automatically on arches having it +%ifarch %{ix86} %{x8664} +%ifnarch i386 i486 i586 i686 +%define with_mmx 1 +%endif +%endif + +#define _snap 20060905 +#define _rev 11046 +%define _rel 0.1 Summary: A personal video recorder (PVR) application Summary(pl): Osobista aplikacja do nagrywania obrazu (PVR) Name: mythtv -Version: 0.18.1 -#define _snap 20050326 -Release: 0.5 +Version: 0.20 +Release: %{?_snap:0.%{_snap}.%{_rev}.}%{_rel} License: GPL v2 Group: Applications/Multimedia Source0: http://www.mythtv.org/mc/%{name}-%{version}.tar.bz2 -# Source0-md5: e6cabf88feeaf6ae8f830d3fdf7b113d +# Source0-md5: 52bec1e0fadf7d24d6dcac3f773ddf74 +#Source0: %{name}-%{_snap}.%{_rev}.tar.bz2 Source1: mythbackend.sysconfig Source2: mythbackend.init Source3: mythbackend.logrotate -Patch0: %{name}-configure.patch -Patch1: %{name}-lib64.patch -Patch2: %{name}-x86_64-configure.patch -Patch3: %{name}-x11.patch +Source5: mythfrontend.desktop +Patch0: %{name}-lib64.patch +Patch1: mythtv-configure.patch +Patch2: %{name}-mythstream.patch +Patch3: %{name}-ldconfig.patch +#Patch4: %{name}-pl.patch +Patch5: %{name}-sbinpath.patch + +Patch7: %{name}-optflags.patch +#Patch8: %{name}-branch.diff URL: http://www.mythtv.org/ -BuildRequires: XFree86-devel #BuildRequires: DirectFB-devel +BuildRequires: XFree86-devel %{?with_alsa:BuildRequires: alsa-lib-devel} %{?with_arts:BuildRequires: arts-devel >= 13:0.9.5} -#BuildRequires: desktop-file-utils BuildRequires: freetype-devel >= 1:2.0.0 -BuildRequires: gcc-c++ +%{?with_jack:BuildRequires: jack-audio-connection-kit-devel} BuildRequires: lame-libs-devel +%{?with_xvmc:BuildRequires: libXvMCW-devel} +%{?with_firewire:BuildRequires: libavc1394-devel} +%{?with_dvb:BuildRequires: libdvb-devel} +BuildRequires: libdvdnav-devel +%{?with_firewire:BuildRequires: libiec61883-devel} +%{?with_firewire:BuildRequires: libraw1394-devel} +%{?with_oggvorbis:BuildRequires: libvorbis-devel} BuildRequires: linux-libc-headers >= 7:2.6.10 %{?with_lirc:BuildRequires: lirc-devel} BuildRequires: mysql-devel -%{?with_xvmc:BuildRequires: nvidia-graphics-devel} -%{?with_opengl_vsync:BuildRequires: nvidia-graphics-devel} +BuildRequires: patchutils BuildRequires: qmake >= 6:3.2.1-4 BuildRequires: qt-devel >= 6:3.2.1-4 -BuildRequires: rpmbuild(macros) >= 1.213 +BuildRequires: rpmbuild(macros) >= 1.228 BuildRequires: sed >= 4.0 -# ??? -ExclusiveArch: i386 i686 athlon %{x8664} +# for bundled libavcodec +BuildRequires: libdts-devel +#BuildConflicts: libmyth-devel +ExclusiveArch: %{ix86} %{x8664} ppc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define myth_api_version %(echo %{version} | cut -d. -f1,2) + %description MythTV implements the following PVR features, and more, with a unified graphical interface: @@ -85,16 +119,17 @@ ujednoliconym interfejsem graficznym: Summary: Server component of mythtv (a PVR) Summary(pl): Czê¶æ serwerowa mythtv (PVR) Group: Applications/Multimedia +Requires(post,preun): /sbin/chkconfig +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd -Requires(postun): /usr/sbin/groupdel -Requires(postun): /usr/sbin/userdel +Requires: libmyth = %{version}-%{release} Requires: mythtv = %{version}-%{release} -Provides: user(mythtv) Provides: group(mythtv) -Conflicts: xmltv-grabbers < 0.5.34 +Provides: user(mythtv) %description backend MythTV provides a unified graphical interface for recording and @@ -120,9 +155,10 @@ albo innym osi Summary: Client component of mythtv (a PVR) Summary(pl): Czê¶æ kliencka mythtv (PVR) Group: Applications/Multimedia +Requires: libmyth = %{version}-%{release} Requires: mythtv = %{version}-%{release} Requires: mythtv-themes = %{version}-%{release} -Provides: mythtv-frontend-api = %(echo %{version} | cut -d. -f1,2) +Provides: mythtv-frontend-api = %{myth_api_version} %description frontend MythTV provides a unified graphical interface for recording and @@ -148,9 +184,7 @@ sieci. Summary: Setup the mythtv backend Summary(pl): Konfigurator backendu mythtv Group: Applications/Multimedia -Requires: mythtv-backend = %{version}-%{release} -Requires: mythtv-themes = %{version}-%{release} -Provides: mythtvsetup +Requires: libmyth = %{version}-%{release} %description setup MythTV provides a unified graphical interface for recording and @@ -171,7 +205,6 @@ Ten pakiet zawiera tylko program do konfigurowania backendu mythtv. Summary: Base themes for mythtv's frontend Summary(pl): Podstawowe motywy dla frontendu mythtv Group: Applications/Multimedia -Obsoletes: mythtv-theme-Titivillus %description themes MythTV provides a unified graphical interface for recording and @@ -235,14 +268,31 @@ Static libmyth library. Statyczna biblioteka libmyth. %prep -%setup -q +%setup -q %{?_rev:-n %{name}} +%if %{_lib} != "lib" #%patch0 -p1 +%endif %patch1 -p1 %patch2 -p1 %patch3 -p1 +#%patch4 -p1 REDIFF and submit +%patch5 -p1 + +%patch7 -p1 rm -rf database/old # not supported in PLD +# lib64 fix - enable to update patch +%if %{_lib} != "lib" && 0 +find '(' -name '*.[ch]' -o -name '*.cpp' -o -name '*.pro' ')' | \ +xargs grep -l /lib . | xargs sed -i -e ' + s,/''usr/lib/,/%{_libdir}/,g + s,/''lib/mythtv,/%{_lib}/mythtv,g + s,{PREFIX}/lib$,{PREFIX}/%{_lib},g +' +exit 1 +%endif + %build %if %{with cpu_autodetect} # Make sure we have /proc mounted @@ -252,114 +302,124 @@ if [ ! -r /proc/cpuinfo ]; then fi %endif export QTDIR="%{_prefix}" -export QMAKESPEC="linux-g++" %if "%{_lib}" != "lib" export QMAKE_LIBDIR_X11=%{_prefix}/X11R6/%{_lib} +# help configure::has_library() to locate libs +export LD_LIBRARY_PATH=%{_libdir} %endif -#export CFLAGS="%{rpmcflags} -fomit-frame-pointer" -# BTW: this is not autoconf configure -%configure \ - --compile-type=%{?debug:debug}%{!?debug:release} \ - --disable-audio-jack \ - --enable-dvb --dvb-path=%{_includedir} \ +# NB: not autoconf configure +export CC="%{__cc}" +export CXX="%{__cxx}" +./configure \ + --prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --disable-opts \ + --disable-distcc --disable-ccache \ + --compile-type=%{?debug:debug}%{!?debug:release} \ --extra-cflags="%{rpmcflags} -fomit-frame-pointer" \ --extra-cxxflags="%{rpmcxxflags} -fomit-frame-pointer" \ %if %{with cpu_autodetect} - %ifarch i386 i686 - --cpu=i386 --tune=pentium4 --enable-mmx \ - %endif - %ifarch athlon - --arch=athlon \ - %endif - %ifarch %{x8664} - --arch=x86_64 \ - %endif + --enable-proc-opt \ +%else + %ifarch %{ix86} + %ifarch athlon + --arch=athlon \ + %else + --cpu=i386 --tune=pentium4 \ + %endif + %endif + %ifarch %{x8664} + --arch=x86_64 \ + %endif + %{?with_mmx:--enable-mmx} \ %endif - %ifarch %{x8664} - --enable-mmx \ - %endif + %{?with_dvb:--enable-dvb --dvb-path=%{_includedir} --enable-dvb-eit} \ --%{?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_opengl_vsync:en}%{!?with_openvl_vsync:dis}able-opengl-vsync \ + --%{?with_jack:en}%{!?with_jack:dis}able-audio-jack \ + %{?with_new:--enable-dvd} \ + --%{?with_opengl:en}%{!?with_opengl:dis}able-opengl-vsync \ --%{?with_lirc:en}%{!?with_lirc:dis}able-lirc \ - %{?with_xvmc:--enable-xvmc --enable-xvmc-vld} \ - %{!?with_xvmc:--disable-xvmc --disable-xvmc-vld} \ -# --disable-joystick-menu \ -# --disable-firewire \ -# --disable-ivtv \ -# --enable-dvb-eit \ -# --disable-x11 disable X11 support -# --disable-xrandr disable X11 resolution switching -# --disable-xv disable XVideo (X11 video output accel.) -# --enable-directfb enable DirectFB (Linux non-X11 video) -# --enable-directx enable DirectX (Microsoft video) - -#sed -i -e 's:OPTFLAGS=.*:OPTFLAGS=%{rpmcflags} -Wno-switch:g' config.mak -# dunno. the configure doesn't take --prefix... -#sed -i -e 's:PREFIX =.*:PREFIX = %{_prefix}:g' settings.pro - -# lib64 hack -#echo "LIBDIR=%{_libdir}" >> config.mak - -# MythTV doesn't support parallel builds -#qmake -o Makefile mythtv.pro \ -# QMAKE_CXX="%{__cxx}" \ -# QMAKE_LINK="%{__cxx}" \ -# QMAKE_CXXFLAGS_RELEASE="%{rpmcflags}" + --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \ + --%{?with_xrandr:en}%{!?with_xrandr:dis}able-xrandr \ + --%{?with_xvmc:en}%{!?with_xvmc:dis}able-xvmc \ + --enable-xv \ + --enable-x11 \ + +# --%{?with_oggvorbis:en}%{!?with_oggvorbis:dis}able-vorbis \ +# --disable-joystick-menu \ +# --disable-ivtv \ +# --enable-directfb enable DirectFB (Linux non-X11 video) +# --enable-directx enable DirectX (Microsoft video) qmake mythtv.pro - -%{__make} qmake +%{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $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 export QTDIR="%{_prefix}" %{__make} install \ INSTALL_ROOT=$RPM_BUILD_ROOT # Install the files that we added on top of mythtv's own stuff -install -pD %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mythbackend -install -pD %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/mythbackend -install -pD %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mythbackend - -# Desktop entries -#mkdir -p %{buildroot}%{_datadir}/pixmaps -#mkdir -p %{buildroot}%{_datadir}/applications -#for file in %{desktop_applications}; do -# install -p %{_sourcedir}/$file.png %{buildroot}%{_datadir}/pixmaps/$file.png -# desktop-file-install --vendor %{desktop_vendor} \ -# --dir %{buildroot}%{_datadir}/applications \ -# --add-category X-Red-Hat-Extra \ -# --add-category Application \ -# --add-category AudioVideo \ -# %{_sourcedir}/$file.desktop -#done - -# Various utility directories that we want rpm to keep track of mythtv ownership -install -d $RPM_BUILD_ROOT/var/lib/mythtv -install -d $RPM_BUILD_ROOT/var/cache/mythtv -install -d $RPM_BUILD_ROOT%{_localstatedir}/log/mythtv -install -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d -install -d $RPM_BUILD_ROOT/etc/rc.d/init.d -install -d $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig - -# Create the plugins directory, so rpm can know mythtv owns it -install -d $RPM_BUILD_ROOT%{_libdir}/mythtv/plugins +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 + +# desktop entries +install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir} # Install settings.pro so people can see the build options we used -install -pD settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build/settings.pro +install -d $RPM_BUILD_ROOT%{_datadir}/mythtv/build +install config.mak settings.pro $RPM_BUILD_ROOT%{_datadir}/mythtv/build + +for p in mythfrontend; do + for l in $RPM_BUILD_ROOT%{_datadir}/mythtv/i18n/${p}_*.qm; do + echo $l | sed -e "s,^$RPM_BUILD_ROOT\(.*${p}_\(.*\).qm\),%%lang(\2) \1," + done > $p.lang +done + +# 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. +sed -i -e ' +s,%%lang(en_gb),%%lang(en_GB), +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 +cp -a programs/mythwelcome/README mythwelcome +cp -a programs/mythlcdserver/README mythlcdserver %clean rm -rf $RPM_BUILD_ROOT %pre backend %groupadd -g 149 %{name} -%useradd -u 149 -d /usr/share/empty -g %{name} -c "MythTV User" %{name} +%useradd -u 149 -d /var/lib/mythtv -g %{name} -c "MythTV User" %{name} +%addusertogroup %{name} video +%addusertogroup %{name} audio + +%post backend +/sbin/chkconfig --add mythbackend + +%preun backend +if [ "$1" = "0" ]; then + %service -q mythbackend stop + /sbin/chkconfig --del mythbackend +fi %postun backend if [ "$1" = "0" ]; then @@ -371,49 +431,52 @@ fi %postun -n libmyth -p /sbin/ldconfig %post setup -#if [ "$1" = 1 ]; then +if [ "$1" = 1 ]; then %banner -e %{name}-setup <