X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=mythtv.spec;h=5e79c45e1fe568cd616658ae6ed6a636d2b5e9b9;hb=c8a7648ae49d87287108c3d50499faa6f3d07207;hp=cb13b77dd10ef15593a0b6ee318c3893e46e8dbe;hpb=cb059bf843e16966c04fb7a1df0ee4c180b5b430;p=packages%2Fmythtv.git diff --git a/mythtv.spec b/mythtv.spec index cb13b77..5e79c45 100644 --- a/mythtv.spec +++ b/mythtv.spec @@ -1,7 +1,14 @@ # TODO -# - what about Patch0? -# - bconds: altivec joystick lcd unichrome -# - lcd? ( app-misc/lcdproc ) +# - 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 # @@ -10,67 +17,124 @@ # to use "--with cpu_autodetect" to let mythtv decide for you. # # Conditional build: -%bcond_with cpu_autodetect # enable CPU autodetection at compile time +%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 support -%bcond_without arts # arts support %bcond_without jack # jack audio connection kit -%bcond_without oggvorbis # ogg vorbis +%bcond_without pulseaudio # pulseaudio support %bcond_without opengl # opengl vsync -%bcond_without nvidia # MPEG accel. -%bcond_without dvb # DVB -%bcond_with firewire # ieee1394 (NFY) +%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_without firewire # ieee1394 (NFY) +%bcond_without xvmc # do not use XvMCW +%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 perl +%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} +%ifnarch i386 i486 i586 i686 +%define with_mmx 1 +%endif +%endif -%if %{with nvidia} -%define with_opengl 1 +# 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): Osobista aplikacja do nagrywania obrazu (PVR) +Summary(pl.UTF-8): Osobista aplikacja do nagrywania obrazu (PVR) Name: mythtv -Version: 0.18.1 -#define _snap 20050326 -Release: 0.11 +Version: 0.24.1 +Release: 0.2 License: GPL v2 Group: Applications/Multimedia -Source0: http://www.mythtv.org/mc/%{name}-%{version}.tar.bz2 -# Source0-md5: e6cabf88feeaf6ae8f830d3fdf7b113d +Source0: ftp://ftp.osuosl.org/pub/mythtv/%{name}-%{version}.tar.bz2 +# Source0-md5: 6870c679619ec58456e76839745411d8 Source1: mythbackend.sysconfig Source2: mythbackend.init Source3: mythbackend.logrotate +Source5: pld-mythfrontend.desktop +# Source5-md5: f37a903ac97463683bebacdf29406951 +Source6: pld-mythfrontend.png +# Source6-md5: bf76bd1463a022e174e4af976a03e678 +Source20: dshowcodecs +# Source20-md5: 48327772b9e150f69e1ab8ff44b9a76c Patch0: %{name}-configure.patch -Patch1: %{name}-lib64.patch -Patch2: %{name}-x86_64-configure.patch -Patch3: %{name}-x11.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: XFree86-devel -#BuildRequires: DirectFB-devel +BuildRequires: Mesa-libGLU-devel +BuildRequires: OpenGL-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} -%{?with_dvb:BuildRequires: libdvb-devel} -%{?with_jack:BuildRequires: jack-audio-connection-kit-devel} -%{?with_oggvorbis:BuildRequires: libvorbis-devel} -%if %{with firewire} -BuildRequires: libraw1394-devel -BuildRequires: libavc1394-devel -BuildRequires: libiec61883-devel # missing in PLD? -%endif +BuildRequires: ffmpeg-devel +%{?with_fftw3:BuildRequires: fftw3-devel,fftw3-single-devel} BuildRequires: freetype-devel >= 1:2.0.0 -BuildRequires: gcc-c++ +%{?with_jack:BuildRequires: jack-audio-connection-kit-devel} BuildRequires: lame-libs-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 -%{?with_nvidia:BuildRequires: X11-driver-nvidia-devel} -%{?with_opengl:BuildRequires: X11-driver-nvidia-devel} -BuildRequires: qmake >= 6:3.2.1-4 -BuildRequires: qt-devel >= 6:3.2.1-4 -BuildRequires: rpmbuild(macros) >= 1.213 +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-perlprov >= 4.1-13 +BuildRequires: rpm-pythonprov +BuildRequires: rpmbuild(macros) >= 1.228 BuildRequires: sed >= 4.0 -ExclusiveArch: %{ix86} %{x8664} +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) +%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: @@ -83,33 +147,35 @@ graphical interface: - Resolution of conflicts between scheduled recordings - Basic video editing -%description -l pl -MythTV implementuje nastêpuj±ce mo¿liwo¶ci PVR, a nawet wiêcej, wraz z +%description -l pl.UTF-8 +MythTV implementuje następujące możliwości PVR, a nawet więcej, wraz z ujednoliconym interfejsem graficznym: -- podstawowa funkcjonalno¶æ "live-tv"; pauza, szybkie przewijanie, - przewijanie "¿ywej" telewizji -- kompresja obrazu przy u¿yciu RTjpeg lub MPEG-4 -- odczyt listy programów przy u¿yciu XMLTV -- pseudoprzezroczyste wy¶wietlanie na obrazie (OSD) z obs³ug± motywów +- podstawowa funkcjonalność "live-tv"; pauza, szybkie przewijanie, + przewijanie "żywej" telewizji +- kompresja obrazu przy użyciu RTjpeg lub MPEG-4 +- odczyt listy programów przy użyciu XMLTV +- pseudoprzezroczyste wyświetlanie na obrazie (OSD) z obsługą motywów - elektroniczny przewodnik po programie -- planowane nagrywanie programów telewizyjnych -- rozwi±zywanie konfliktów miêdzy planowanymi nagraniami +- planowane nagrywanie programów telewizyjnych +- rozwiązywanie konfliktów między planowanymi nagraniami - podstawowa edycja obrazu %package backend Summary: Server component of mythtv (a PVR) -Summary(pl): Czê¶æ serwerowa mythtv (PVR) +Summary(pl.UTF-8): 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(post,preun): /sbin/chkconfig +Requires: libmyth = %{version}-%{release} Requires: mythtv = %{version}-%{release} -Provides: user(mythtv) +Suggests: mysql Provides: group(mythtv) +Provides: user(mythtv) %description backend MythTV provides a unified graphical interface for recording and @@ -121,22 +187,24 @@ and audio capture and encoding services. In order to be useful, it requires a mythtv-frontend installation, either on the same system or one reachable via the network. -%description backend -l pl +%description backend -l pl.UTF-8 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i -ogl±dania programów telewizyjnych. Wiêcej informacji w pakiecie +oglądania programów telewizyjnych. Więcej informacji w pakiecie mythtv. -Ten pakiet zawiera tylko oprogramowanie serwerowe, udostêpniaj±ce -us³ugi przechwytywania i kodowania obrazu i d¼wiêku. Aby by³o +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) -Summary(pl): Czê¶æ kliencka mythtv (PVR) +Summary(pl.UTF-8): Część kliencka mythtv (PVR) Group: Applications/Multimedia +Requires: libmyth = %{version}-%{release} Requires: mythtv = %{version}-%{release} Requires: mythtv-themes = %{version}-%{release} +Provides: mythtv-frontend-api = %{myth_api_version} %description frontend MythTV provides a unified graphical interface for recording and @@ -148,22 +216,20 @@ front-end for playback and configuration. It requires access to a mythtv-backend installation, either on the same system or one reachable via the network. -%description frontend -l pl +%description frontend -l pl.UTF-8 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i -ogl±dania programów telewizyjnych. Wiêcej informacji w pakiecie +oglądania programów telewizyjnych. Więcej informacji w pakiecie 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. +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 w sieci. %package setup Summary: Setup the mythtv backend -Summary(pl): Konfigurator backendu mythtv +Summary(pl.UTF-8): Konfigurator backendu mythtv Group: Applications/Multimedia -Requires: mythtv-backend = %{version}-%{release} -Requires: mythtv-themes = %{version}-%{release} +Requires: libmyth = %{version}-%{release} %description setup MythTV provides a unified graphical interface for recording and @@ -173,18 +239,18 @@ information. This package contains only the setup software for configuring the mythtv backend. -%description setup -l pl +%description setup -l pl.UTF-8 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i -ogl±dania programów telewizyjnych. Wiêcej informacji w pakiecie +oglądania programów telewizyjnych. Więcej informacji w pakiecie mythtv. Ten pakiet zawiera tylko program do konfigurowania backendu mythtv. %package themes Summary: Base themes for mythtv's frontend -Summary(pl): Podstawowe motywy dla frontendu mythtv -Group: Applications/Multimedia -Obsoletes: mythtv-theme-Titivillus +Summary(pl.UTF-8): Podstawowe motywy dla frontendu mythtv +Group: Themes +Requires: %{name}-frontend = %{version}-%{release} %description themes MythTV provides a unified graphical interface for recording and @@ -194,37 +260,36 @@ information. This package contains only the base themes used by the frontend and mythtvsetup. -%description themes -l pl +%description themes -l pl.UTF-8 MythTV dostarcza ujednolicony interfejs graficzny do nagrywania i -ogl±dania programów telewizyjnych. Wiêcej informacji w pakiecie +oglądania programów telewizyjnych. Więcej informacji w pakiecie mythtv. -Ten pakiet zawiera tylko podstawowe motywy u¿ywane przez frontend oraz +Ten pakiet zawiera tylko podstawowe motywy używane przez frontend oraz mythtvsetup. %package -n libmyth Summary: Library providing mythtv support -Summary(pl): Biblioteka udostêpniaj±ca obs³ugê mythtv +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 provides a unified graphical interface for recording and viewing television programs. Refer to the mythtv package for more information. -%description -n libmyth -l pl -Wspólny kod biblioteki dla MythTV i dodatkowych modu³ów MythTV -dostarczaj±cy ujednolicony interfejs graficzny do nagrywania i -ogl±dania programów telewizyjnych. Wiêcej informacji w pakiecie +%description -n libmyth -l pl.UTF-8 +Wspólny kod biblioteki dla MythTV i dodatkowych modułów MythTV +dostarczający ujednolicony interfejs graficzny do nagrywania i +oglądania programów telewizyjnych. Więcej informacji w pakiecie mythtv. %package -n libmyth-devel Summary: Development files for libmyth -Summary(pl): Pliki nag³ówkowe libmyth +Summary(pl.UTF-8): Pliki nagłówkowe libmyth Group: Development/Libraries Requires: libmyth = %{version}-%{release} @@ -232,31 +297,108 @@ Requires: libmyth = %{version}-%{release} This package contains the header files for developing add-ons for mythtv. -%description -n libmyth-devel -l pl -Ten pakiet zawiera pliki nag³ówkowe do tworzenia dodatków dla mythtv. +%description -n libmyth-devel -l pl.UTF-8 +Ten pakiet zawiera pliki nagłówkowe do tworzenia dodatków dla mythtv. %package -n libmyth-static Summary: Static libmyth library -Summary(pl): Statyczna biblioteka libmyth +Summary(pl.UTF-8): Statyczna biblioteka libmyth Group: Development/Libraries Requires: libmyth-devel = %{version}-%{release} %description -n libmyth-static Static libmyth library. -%description -n libmyth-static -l pl +%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 -#%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 + +%{__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 +%{?with_dshowserver:%patch20 -p1} +#%patch30 -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 + +# Assigning null to QMAKE_LIBDIR_QT will prevent makefiles contain +# -L$(QTDIR)/%{_lib} and -Wl,-rpath,$(QTDIR)/%{_lib}. And that will +# prevent compiler finding libs from system when they should be looked +# from current buildtree. +# but that made it link with -lqt which doesn't exist, instead of -lqt-mt +# so we make QMAKE wrapper which will do sed subst after calling +# qmake. this is the wrapper. +cat > qmake-wrapper.sh <<'EOF' +#!/bin/sh +getmakefile() { + while [ $# -gt 0 ]; do + case "$1" in + -o) + shift + makefile="$1" + return + ;; + esac + shift + done +} + +qmake-qt4 "$@" +getmakefile "$@" +if [ "$makefile" ]; then + %{__sed} -i -e ' + s;-Wl,-rpath,$(QTDIR)/%{_lib};; + s;-L$(QTDIR)/%{_lib};; + ' $makefile +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 @@ -264,76 +406,103 @@ if [ ! -r /proc/cpuinfo ]; then exit 1 fi %endif -export QTDIR="%{_prefix}" -export QMAKESPEC="linux-g++" -%if "%{_lib}" != "lib" -export QMAKE_LIBDIR_X11=%{_prefix}/X11R6/%{_lib} -%endif -#export CFLAGS="%{rpmcflags} -fomit-frame-pointer" - -# BTW: this is not autoconf configure -%configure \ - --compile-type=%{?debug:debug}%{!?debug:release} \ - %{?with_dvb:--enable-dvb --dvb-path=%{_includedir} --enable-dvb-eit} \ +./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" \ -%if %{without cpu_autodetect} - %ifarch i386 i486 i586 i686 pentium3 pentium4 - --cpu=i386 --tune=pentium4 --enable-mmx \ - %endif - %ifarch athlon - --arch=athlon --enable-mmx \ - %endif - %ifarch %{x8664} - --arch=x86_64 --enable-mmx \ - %endif +%if %{with cpu_autodetect} + --enable-proc-opt \ +%else + %ifarch %{ix86} + %ifarch athlon + --arch=athlon \ + %else + --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_arts:en}%{!?with_arts:dis}able-audio-arts \ + %{?with_dvb:--enable-dvb --dvb-path=%{_includedir}} \ --%{?with_alsa:en}%{!?with_alsa:dis}able-audio-alsa \ --%{?with_oss:en}%{!?with_oss:dis}able-audio-oss \ - --%{?with_oss:en}%{!?with_oss:dis}able-audio-jack \ - --%{?with_opengl:en}%{!?with_openvl_vsync:dis}able-opengl-vsync \ + --%{?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_oggvorbis:en}%{!?with_oggvorbis:dis}able-vorbis \ --%{?with_firewire:en}%{!?with_firewire:dis}able-firewire \ - %{?with_nvidia:--enable-xvmc --enable-xvmc-vld} \ - %{!?with_nvidia:--disable-xvmc --disable-xvmc-vld} \ + --%{?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 \ -# --disable-joystick-menu \ -# --disable-ivtv \ -# --disable-xrandr disable X11 resolution switching -# --enable-directfb enable DirectFB (Linux non-X11 video) -# --enable-directx enable DirectX (Microsoft video) -qmake mythtv.pro -%{__make} qmake +#%{_libdir}/qt4/bin/qmake mythtv.pro +%{__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,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 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 +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} -# Various utility directories that we want rpm to keep track of mythtv ownership -install -d $RPM_BUILD_ROOT/var/{cache,lib,log,run}/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 +# 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 -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 @@ -345,8 +514,7 @@ rm -rf $RPM_BUILD_ROOT %addusertogroup %{name} audio %post backend -# NFY -#/sbin/chkconfig --add mythbackend +/sbin/chkconfig --add mythbackend %preun backend if [ "$1" = "0" ]; then @@ -373,42 +541,49 @@ fi %files %defattr(644,root,root,755) -%doc README* UPGRADING AUTHORS COPYING FAQ -%doc keys.txt -%doc docs contrib configfiles +%doc README* UPGRADING AUTHORS FAQ +%doc docs contrib config +%doc keys.txt mythtvosd mythwelcome mythlcdserver %files backend %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/mythbackend +%attr(755,root,root) %{_sbindir}/mythbackend +%attr(755,root,root) %{_sbindir}/mythcommflag %attr(755,root,root) %{_bindir}/mythfilldatabase -%attr(755,root,root) %{_bindir}/mythjobqueue +%attr(755,root,root) %{_sbindir}/mythjobqueue +%attr(755,root,root) %{_sbindir}/mythlcdserver +%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 -%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mythbackend -%config /etc/logrotate.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 -%files frontend +%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 %dir %{_libdir}/mythtv %{_datadir}/mythtv/*.xml -%attr(755,root,root) %{_bindir}/mythfrontend -%attr(755,root,root) %{_bindir}/mythtv -%attr(755,root,root) %{_bindir}/mythepg -%attr(755,root,root) %{_bindir}/mythprogfind -%attr(755,root,root) %{_bindir}/mythcommflag -%attr(755,root,root) %{_bindir}/mythtranscode -%attr(755,root,root) %{_bindir}/mythtvosd %dir %{_libdir}/mythtv/filters %dir %{_libdir}/mythtv/plugins %attr(755,root,root) %{_libdir}/mythtv/filters/*.so -%{_datadir}/mythtv/*.ttf -%{_datadir}/mythtv/i18n -#%{_datadir}/applications/*myth*.desktop -#%{_datadir}/pixmaps/myth*.png +%{_datadir}/mythtv/fonts/*.ttf +%dir %{_datadir}/mythtv/i18n +%if %{with dshowserver} +%{_datadir}/mythtv/dshowcodecs +%endif +%{_desktopdir}/*.desktop +%{_pixmapsdir}/*.png %files setup %defattr(644,root,root,755) @@ -417,19 +592,39 @@ fi %files themes %defattr(644,root,root,755) -%{_datadir}/mythtv/themes +%{_datadir}/mythtv/themes/* %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) %attr(755,root,root) %{_libdir}/*.so %{_includedir}/* -%dir %{_datadir}/mythtv/build -%{_datadir}/mythtv/build/settings.pro +%{_datadir}/mythtv/build %files -n libmyth-static %defattr(644,root,root,755) -%{_libdir}/lib*.a + +%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