Difference between revisions of "Mythplugins-svn-rpmbuild.spec"

From MythTV Official Wiki
Jump to: navigation, search
Line 37: Line 37:
 
# --without mythgallery
 
# --without mythgallery
 
# --without mythgame
 
# --without mythgame
 +
# --without mythmovies
 
# --without mythmusic
 
# --without mythmusic
 
# --without mythnews
 
# --without mythnews
Line 101: Line 102:
 
%define with_mythgallery    %{?_without_mythgallery:    0} %{!?_without_mythgallery:    1}
 
%define with_mythgallery    %{?_without_mythgallery:    0} %{!?_without_mythgallery:    1}
 
%define with_mythgame      %{?_without_mythgame:      0} %{!?_without_mythgame:        1}
 
%define with_mythgame      %{?_without_mythgame:      0} %{!?_without_mythgame:        1}
 +
%define with_mythmovies    %{?_without_mythmovies:    0} %{!?_without_mythmovies:      1}
 
%define with_mythmusic      %{?_without_mythmusic:      0} %{!?_without_mythmusic:      1}
 
%define with_mythmusic      %{?_without_mythmusic:      0} %{!?_without_mythmusic:      1}
 
%define with_mythnews      %{?_without_mythnews:      0} %{!?_without_mythnews:        1}
 
%define with_mythnews      %{?_without_mythnews:      0} %{!?_without_mythnews:        1}
Line 331: Line 333:
 
%description -n mythgame
 
%description -n mythgame
 
A game frontend (xmame, nes, snes, pc) for MythTV.
 
A game frontend (xmame, nes, snes, pc) for MythTV.
 +
 +
%endif
 +
################################################################################
 +
%if %{with_mythmovies}
 +
 +
%package -n mythmovies
 +
Summary:    A movie-times listing plugin for MythTV.
 +
Group:      Applications/Multimedia
 +
Requires:  mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')
 +
 +
%description -n mythmovies
 +
A plugin for MythTV that provides information about local movie/theatre listings.
  
 
%endif
 
%endif
Line 505: Line 519:
 
%if !%{with_mythgame}
 
%if !%{with_mythgame}
 
     OPTS="$OPTS --disable-mythgame"
 
     OPTS="$OPTS --disable-mythgame"
 +
%endif
 +
%if !%{with_mythmovies}
 +
    OPTS="$OPTS --disable-mythmovies"
 
%endif
 
%endif
 
%if !%{with_mythmusic}
 
%if !%{with_mythmusic}
Line 716: Line 733:
 
# so people can run xmame and mythgame from the same set of config files.
 
# so people can run xmame and mythgame from the same set of config files.
 
%{_datadir}/xmame
 
%{_datadir}/xmame
 +
 +
%endif
 +
################################################################################
 +
%if %{with_mythmovies}
 +
 +
%files -n mythmovies
 +
%defattr(-,root,root,-)
 +
%doc mythmovies/README mythmovies/TODO
 +
%{_bindir}/ignyte
 +
%{_libdir}/mythtv/plugins/libmythmovies.so
 +
%{_datadir}/mythtv/themes/default/movies-ui.xml
  
 
%endif
 
%endif
Line 763: Line 791:
 
%{_libdir}/mythtv/plugins/libmythnews.so
 
%{_libdir}/mythtv/plugins/libmythnews.so
 
%{_datadir}/mythtv/mythnews
 
%{_datadir}/mythtv/mythnews
%{_datadir}/mythtv/themes/default/news-ui.xml
+
%{_datadir}/mythtv/themes/default/enclosures.png
 +
%{_datadir}/mythtv/themes/default/need-download.png
 
%{_datadir}/mythtv/themes/default/news-info-bg.png
 
%{_datadir}/mythtv/themes/default/news-info-bg.png
 +
%{_datadir}/mythtv/themes/default/news-ui.xml
 
%{_datadir}/mythtv/i18n/mythnews_*.qm
 
%{_datadir}/mythtv/i18n/mythnews_*.qm
  
Line 813: Line 843:
 
%{_datadir}/mythtv/i18n/mythweather_*.qm
 
%{_datadir}/mythtv/i18n/mythweather_*.qm
 
%{_datadir}/mythtv/mythweather/
 
%{_datadir}/mythtv/mythweather/
 +
%{_datadir}/mythtv/weather_settings.xml
 
%{_datadir}/mythtv/themes/default/weather-ui.xml
 
%{_datadir}/mythtv/themes/default/weather-ui.xml
 
%{_datadir}/mythtv/themes/default/cloudy.png
 
%{_datadir}/mythtv/themes/default/cloudy.png
Line 821: Line 852:
 
%{_datadir}/mythtv/themes/default/lshowers.png
 
%{_datadir}/mythtv/themes/default/lshowers.png
 
%{_datadir}/mythtv/themes/default/mcloudy.png
 
%{_datadir}/mythtv/themes/default/mcloudy.png
%{_datadir}/mythtv/themes/default/mw-*.png
+
%{_datadir}/mythtv/themes/default/mw_*.png
 
%{_datadir}/mythtv/themes/default/mwmain.png
 
%{_datadir}/mythtv/themes/default/mwmain.png
 
%{_datadir}/mythtv/themes/default/pcloudy.png
 
%{_datadir}/mythtv/themes/default/pcloudy.png
Line 842: Line 873:
 
%{_datadir}/mythtv/themes/default/mz_*
 
%{_datadir}/mythtv/themes/default/mz_*
 
%{_datadir}/mythtv/themes/default/zoneminder-ui.xml
 
%{_datadir}/mythtv/themes/default/zoneminder-ui.xml
 +
%{_datadir}/mythtv/themes/default-wide/zoneminder-ui.xml
 
%{_datadir}/mythtv/zonemindermenu.xml
 
%{_datadir}/mythtv/zonemindermenu.xml
  
Line 848: Line 880:
  
 
%changelog
 
%changelog
 +
 +
* Sun Sep 16 2007 Chris Petersen <rpm@forevermore.net>
 +
- Add some new mythnews images
 +
 +
* Fri Sep  7 2007 Chris Petersen <rpm@forevermore.net>
 +
- Add datadir/mythtv/themes/default-wide/zoneminder-ui.xml
 +
- Remove mythweather mw-*png files, which have been renamed upstream
 +
 +
* Tue Jul 17 2007 Chris Petersen <rpm@forevermore.net>
 +
- Add weather_settings.xml and new images to mythweather subpackage
 +
- Add new mythmovies plugin
  
 
* Tue May  1 2007 Chris Petersen <rpm@forevermore.net>
 
* Tue May  1 2007 Chris Petersen <rpm@forevermore.net>

Revision as of 07:50, 17 October 2007

This spec is for building MythPlugin RPM packages from a subversion checkout.

It works with both modular (FC5 and later) and non-modular versions of X. Please read the documentation at the top of the file before using it.

#
# Specfile for building MythTV RPMs from a subversion checkout.
#
# by:   Chris Petersen <rpm@forevermore.net>
#
#  Modified/Extended from the great (non-svn based) work of:
#     David Bussenschutt <buzz@oska.com>
#     Axel Thimm <Axel.Thimm@ATrpms.net>
#     and others; see changelog at bottom for details.
#
# The latest version of this file can be found at:
#
#     http://www.mythtv.org/wiki/index.php/Mythplugins-svn-rpmbuild.spec
#
# Note:
#
#     This spec relies upon several files included in the ATRPMS mythplugins
#     src.rpm file.  Please install it into your build tree before trying to
#     build anything with this spec.
#
# Explanation of options:
#
# --with(out) modular_x     Override the default detection code for modular X.org
#
# # All plugins get built by default, but you can disable them as you wish:
#
# --without mytharchive
# --without mythbrowser
# --without mythcontrols
# --without mythflix
# --without mythgallery
# --without mythgame
# --without mythmovies
# --without mythmusic
# --without mythnews
# --without mythphone
# --without mythvideo
# --without mythweather
#
# The following options are disabled by default.  Use these options to enable:
#
# --with festival           Enable festival/festvox support in MythPhone
# --with transcode          Enable transcode support in MythVideo
#
# The following options are enabled by default.  Use these options to disable:
#
# --without opengl          Disable OpenGL support in MythMusic and MythGallery
# --without exif            Disable EXIF support in MythGallery
# --without aac             Enable AAC support in MythMusic
# --without fftw            Disable FFTW support in MythMusic
# --without libvisual       Disable libvisual plugin support in MythMusic
# --without sdl             Disable SDL support in MythMusic
# --without vcd             Enable VideoCD support in MythVideo
#

# Edit the following path to point to where you keep your SVN checkout.  Among
# others, it will contain both the mythtv/ and mythplugins/ subdirectories.
%define _svn_root '/usr/src/mythtv-svn/'

################################################################################
# The only thing below here that you should feel the need to edit is the
# Version tag, which should be set to the *next* MythTV release.
################################################################################

# Are we running modular Xorg?  Default is to auto-detect FC5 or later, but you
# can also specify --with modular_x or --without modular_x to override.
%define _modular_x %(if [ "%{?_with_modular_x}" ]; then echo 1; elif [ "%{?_without_modular_x}" ]; then echo 0; elif [ `rpm -q --queryformat='%{VERSION}' fedora-release` -ge 5 ]; then echo 1; else echo 0; fi)

# This script verifies that there is a mythtv SVN checkout at %{_svn_root} and
# if there isn't one, performs an anonymous checkout.  If the checkout already
# exists, it grabs the latest update.  The return value is the current SVN
# revision or a blank string (which will be checked below for errors).
%define _svn_rev %( if [ ! -d '%{_svn_root}/.svn' ] ; then REL=`svn co http://svn.mythtv.org/svn/trunk/ '%{_svn_root}'` ; else REL=`svn update '%{_svn_root}'`; fi; if [ $? != 0 ]; then echo '' ; else echo "$REL" | grep -i revision | sed -e 's/[^0-9]\\+//g'; fi )

#
# Basic descriptive tags for this package:
#
Name:           mythplugins
Version:        0.21
Release:        0.%{_svn_rev}.svn
Summary:        Main plugins to accompany the MythTV DVR.

URL:            http://www.mythtv.org/
License:        GPL
Group:          Applications/Multimedia

# The following options are enabled by default.  Use --without to disable them
# OpenGL for MythMusic and MythGallery
%define with_opengl        %{?_without_opengl:  0} %{!?_without_opengl:  1}

# All plugins get built by default, but you can disable them as you wish
%define with_mytharchive    %{?_without_mytharchive:    0} %{!?_without_mytharchive:     1}
%define with_mythbrowser    %{?_without_mythbrowser:    0} %{!?_without_mythbrowser:     1}
%define with_mythcontrols   %{?_without_mythcontrols:   0} %{!?_without_mythcontrols:    1}
%define with_mythflix       %{?_without_mythflix:       0} %{!?_without_mythflix:        1}
%define with_mythgallery    %{?_without_mythgallery:    0} %{!?_without_mythgallery:     1}
%define with_mythgame       %{?_without_mythgame:       0} %{!?_without_mythgame:        1}
%define with_mythmovies     %{?_without_mythmovies:     0} %{!?_without_mythmovies:      1}
%define with_mythmusic      %{?_without_mythmusic:      0} %{!?_without_mythmusic:       1}
%define with_mythnews       %{?_without_mythnews:       0} %{!?_without_mythnews:        1}
%define with_mythphone      %{?_without_mythphone:      0} %{!?_without_mythphone:       1}
%define with_mythvideo      %{?_without_mythvideo:      0} %{!?_without_mythvideo:       1}
%define with_mythweather    %{?_without_mythweather:    0} %{!?_without_mythweather:     1}
%define with_mythzoneminder %{?_without_mythzoneminder: 0} %{!?_without_mythzoneminder:  1}

# MythGallery
%define with_exif           %{?_without_exif:         0} %{!?_without_exif:         1}
# MythMusic
%define with_fftw           %{?_without_fftw:         0} %{!?_without_fftw:         1}
%define with_sdl            %{?_without_sdl:          0} %{!?_without_sdl:          1}
%define with_aac            %{?_without_aac:          0} %{!?_without_aac:          1}
%define with_libvisual      %{?_without_libvisual:    0} %{!?_without_libvisual:    1}
# MythVideo
%define with_vcd            %{?_without_vcd:          0} %{!?_without_vcd:          1}

# The following options are disabled by default.  Use --with to enable them

# MythPhone
%define with_festival       %{?_with_festival:        1} %{!?_with_festival:        0}
# MythVideo
%define with_transcode      %{?_with_transcode:       1} %{!?_with_transcode:       0}

################################################################################

# This directory isn't defined in rpm's own macro library
%define _varlibdir     %{_localstatedir}/lib

################################################################################

Source0:        http://www.mythtv.org/mc/%{name}-%{version}.tar.bz2

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

################################################################################

# Global build requirements
BuildRequires:  gcc-c++
BuildRequires:  qt-devel >= 3

# Yeah. we do need subversion, don't we...
BuildRequires:  subversion

# The modular version of Xorg requires a different set of build packages
%if %{_modular_x}
BuildRequires:  mesa-libGLU-devel
BuildRequires:  libXv-devel
BuildRequires:  libXxf86vm-devel
BuildRequires:  libXmu-devel
%else
BuildRequires:  XFree86-devel
%endif

%if %{with_opengl}
BuildRequires:  /usr/include/GL/gl.h
%endif

%if %{with_mythbrowser}
Requires:       mythbrowser      >= %{version}
BuildRequires:  libmyth-devel    >= %{version}
BuildRequires:  kdelibs-devel
%endif

%if %{with_transcode}
BuildRequires:  transcode        >= 0.6.8
%endif

%if %{with_mythgallery}
Requires:       mythgallery      >= %{version}
BuildRequires:  libtiff-devel
BuildRequires:  libexif-devel
%endif

%if %{with_mythgame}
Requires:       mythgame         >= %{version}
BuildRequires:  zlib-devel
%endif

%if %{with_mythmusic}
Requires:       mythmusic     >= %{version}
BuildRequires:  libmad-devel
BuildRequires:  taglib-devel
BuildRequires:  libvorbis-devel >= 1.0
BuildRequires:  flac-devel >= 1.0.4
BuildRequires:  libcdaudio-devel >= 0.99.6
BuildRequires:  cdparanoia-devel
BuildRequires:  lame-devel
%endif
%if %{with_fftw}
BuildRequires:  fftw2-devel >= 2.1.3
BuildRequires:  fftw2-devel < 3
%endif
%if %{with_sdl}
BuildRequires:  SDL-devel
%endif
%if %{with_aac}
BuildRequires:  faad2-devel
%endif
%if %{with_libvisual}
BuildRequires:  libvisual-devel
%endif

%if %{with_mythnews}
Requires:       mythnews         >= %{version}
%endif

%if %{with_mythphone}
Requires:       mythphone        >= %{version}
BuildRequires:  libmyth-devel    >= %{version}
BuildRequires:  libtermcap-devel
%endif
%if %{with_festival}
BuildRequires:  festival-devel
%endif

%if %{with_mythvideo}
Requires:       mythvideo        >= %{version}
Requires:       perl-XML-Simple
BuildRequires:  libdvdread-devel >= 0.9.4
BuildRequires:  nasm
BuildRequires:  mjpegtools-devel >= 1.6.1
BuildRequires:  xvidcore-devel   >= 0.9.1
BuildRequires:  a52dec-devel
BuildRequires:  libfame-devel    >= 0.9.0
BuildRequires:  libdvdcss-devel  >= 1.2.7
%endif

%if %{with_mythweather}
Requires:       mythweather      >= %{version}
%endif

%if %{with_mythzoneminder}
Requires:       mythzoneminder   >= %{version}
%endif

%description
This is a consolidation of all the official MythTV plugins that used to be
distributed as separate downloads from mythtv.org.

################################################################################
%if %{with_mytharchive}

%package -n mytharchive
Summary:    A plugin to archive your recordings to DVD
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

Requires:   python >= 2.3.5
Requires:   python-imaging
Requires:   mjpegtools
Requires:   ffmpeg
Requires:   dvdauthor >= 0.6.11
Requires:   mkisofs   >= 2.01.01.0.a03
Requires:   growisofs

%description -n mytharchive
MythArchive is a MythTV style plugin that uses the Mythburn Script to
create and burn DVD's from MythTV recordings, MythVideo files or any
video files available on a MythTV system. It can also export recordings
to a native archive format that can then be imported back into a mythtv
system restoring all the associated metadata.

%endif
################################################################################
%if %{with_mythbrowser}

%package -n mythbrowser
Summary:    A small web browser module for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythbrowser
MythBrowser is a full fledged web-browser (multiple tabs) to display
webpages in full-screen mode. Simple page navigation is
possible. Starting with version 0.13 it also has full support for
mouse driven navigation (right mouse opens and clos es the popup
menu).

MythBrowser also contains a BookmarkManager to manage the website
links in a simple mythplugin.

%endif
################################################################################
%if %{with_mythcontrols}

%package -n mythcontrols
Summary:    A key control editor plugin for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythcontrols
A key control editor plugin for MythTV.

%endif
################################################################################
%if %{with_mythflix}

%package -n mythflix
Summary:    A Netflix module for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythflix
MyhtFlix is a MythTV plugin for adding movies to your Netflix queue. It
currently supports the ablity to view your queue and add movies to your queue.

%endif
################################################################################
%if %{with_mythgallery}

%package -n mythgallery
Summary:    A gallery/slideshow module for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythgallery
A gallery/slideshow module for MythTV.

%endif
################################################################################
%if %{with_mythgame}

%package -n mythgame
Summary:    A game frontend (xmame, nes, snes, pc) for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythgame
A game frontend (xmame, nes, snes, pc) for MythTV.

%endif
################################################################################
%if %{with_mythmovies}

%package -n mythmovies
Summary:    A movie-times listing plugin for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythmovies
A plugin for MythTV that provides information about local movie/theatre listings.

%endif
################################################################################
%if %{with_mythmusic}

%package -n mythmusic
Summary:    The music player add-on module for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythmusic
Music add-on for mythtv.

%endif
################################################################################
%if %{with_mythnews}

%package -n mythnews
Summary:    An RSS news feed plugin for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythnews
An RSS news feed plugin for MythTV.

%endif
################################################################################
%if %{with_mythphone}

%package -n mythphone
Summary:    A video conferencing module for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythphone
Mythphone is a phone and videophone capability on MYTH using the
standard SIP protocol.  It is compatible with Microsoft XP Messenger
and with SIP Service Providers such as Free World Dialup
(fwd.pulver.com).

%endif
################################################################################
%if %{with_mythvideo}

%package -n mythvideo
Summary:    A generic video player frontend module for MythTV.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')
Requires:   mplayer

%description -n mythvideo
A generic video player frontend module for MythTV.  This module also supports
playback of DVD files, and (optionally) rip DVDs and transcode their video and
audio content to other (generally smaller) formats.  Transcoding is based on
and derived from the excellent transcode package.

%endif
################################################################################
%if %{with_mythweather}

%package -n mythweather
Summary:    A MythTV module that displays a weather forcast.
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythweather
A MythTV module that displays a weather forcast.

%endif
################################################################################
%if %{with_mythzoneminder}

%package -n mythzoneminder
Summary:    A MythTV module to interact with ZoneMinder
Group:      Applications/Multimedia
Requires:   mythtv-frontend-api = %(echo %{version} | awk -F. '{print $1 "." $2}')

%description -n mythzoneminder
A MythTV module to interact with ZoneMinder

%endif
################################################################################

%prep

# If there was a problem getting the svn revision, we need to alert the user.
%if !%{_svn_rev}
    echo -e "\n\nThere was a problem determing the current SVN revision."   \
            "\nAny subversion errors should be listed a few lines above"    \
            "\nthis error message.  Please resolve them and try again.\n\n"
    exit 1
%endif

# Since we'll be copying the files from the repository checkout instead of
# extracting a tarball (-T), we only need to create the target directory (-c).
%setup -q -T -c

# Copy the checkout to the rpm build directory.
    rsync -a --cvs-exclude               \
          %{_svn_root}/%{name}/*         \
          %{_builddir}/%{name}-%{version}/

# Replace static lib paths with %{_lib} so we build properly on x86_64
# systems, where the libs are actually in lib64.
    if [ "%{_lib}" != "lib" ]; then
        grep -rl '"lib"' . | xargs sed -i -e 's,/lib/,/%{_lib}/,g'
        grep -rl /lib/   . | xargs sed -i -e 's,/lib/,/%{_lib}/,g'
        grep -rl /lib$   . | xargs sed -i -e 's,/lib$,/%{_lib},'
        grep -rl '/lib ' . | xargs sed -i -e 's,/lib ,/%{_lib} ,g'
    fi

# MythMusic fix:  /mnt/store -> /var/lib/mythmusic
%if %{with_mythmusic}
sed -i -e 's#/mnt/store/music#%{_varlibdir}/mythmusic#' mythmusic/mythmusic/globalsettings.cpp
%endif

# MythVideo fix:  /mnt/store -> /var/lib/mythvideo
%if %{with_mythvideo}
sed -i -e 's#/var/\w\+/mythdvd/temp#%{_varlibdir}/mythvideo#' mythvideo/mythvideo/globalsettings.cpp
%endif

# Add some include paths
#cat >> settings.pro << EOF
#INCLUDEPATH += %{_includedir}/mythtv
#INCLUDEPATH += %{_includedir}/speech_tools
#EOF

#%if %{with_festival}
#cat >> settings.pro << EOF
#INCLUDEPATH += %{_includedir}/festival
#EOF
#%endif

# Prevent all of those nasty installs to ../../../../../bin/whatever
echo "QMAKE_PROJECT_DEPTH = 0" >> mythtv.pro
echo "QMAKE_PROJECT_DEPTH = 0" >> settings.pro

################################################################################

%build
# Need to set $QTDIR?
[ -n "$QTDIR" ] || . %{_sysconfdir}/profile.d/qt.sh

# Initialize the options string
OPTS=""

# Enable OpenGL (for MythMusic and MythGallery)
%if %{with_opengl}
    OPTS="$OPTS --enable-opengl"
%else
    OPTS="$OPTS --disable-opengl"
%endif

# Disable any of the plugins?
%if !%{with_mythmusic}
    OPTS="$OPTS --disable-mythmusic"
%endif
%if !%{with_mytharchive}
  --disable-mytharchive
%endif
%if !%{with_mythbrowser}
    OPTS="$OPTS --disable-mythbrowser"
%endif
%if !%{with_mythcontrols}
    OPTS="$OPTS --disable-mythcontrols"
%endif
%if !%{with_mythflix}
    OPTS="$OPTS --disable-mythflix"
%endif
%if !%{with_mythgallery}
    OPTS="$OPTS --disable-mythgallery"
%endif
%if !%{with_mythgame}
    OPTS="$OPTS --disable-mythgame"
%endif
%if !%{with_mythmovies}
    OPTS="$OPTS --disable-mythmovies"
%endif
%if !%{with_mythmusic}
    OPTS="$OPTS --disable-mythmusic"
%endif
%if !%{with_mythnews}
    OPTS="$OPTS --disable-mythnews"
%endif
%if !%{with_mythphone}
    OPTS="$OPTS --disable-mythphone"
%endif
%if !%{with_mythvideo}
    OPTS="$OPTS --disable-mythvideo"
%endif
%if !%{with_mythweather}
    OPTS="$OPTS --disable-mythweather"
%endif
%if !%{with_mythzoneminder}
    OPTS="$OPTS --disable-mythzoneminder"
%endif

# MythGallery options
%if %{with_exif}
    OPTS="$OPTS --enable-exif"
%else
    OPTS="$OPTS --disable-exif"
%endif

# MythMusic options
%if %{with_aac}
    OPTS="$OPTS --enable-aac"
%else
    OPTS="$OPTS --disable-aac"
%endif
%if %{with_fftw}
    OPTS="$OPTS --enable-fftw"
%else
    OPTS="$OPTS --disable-fftw"
%endif
%if %{with_sdl}
    OPTS="$OPTS --enable-sdl"
%else
    OPTS="$OPTS --disable-sdl"
%endif
%if %{with_libvisual}
    OPTS="$OPTS --enable-libvisual"
%else
    OPTS="$OPTS --disable-libvisual"
%endif

# MythPhone options
%if %{with_festival}
    OPTS="$OPTS --enable-festival"
%else
    OPTS="$OPTS --disable-festival"
%endif

# MythVideo options
%if %{with_transcode}
    OPTS="$OPTS --enable-transcode"
%else
    OPTS="$OPTS --disable-transcode"
%endif
%if %{with_vcd}
    OPTS="$OPTS --enable-vcd"
%else
    OPTS="$OPTS --disable-vcd"
%endif

# Configure
./configure \
    --prefix=%{_prefix}            \
    --libdir-name=%{_lib}          \
    --libdir=%{_libdir}            \
    --mandir=%{_mandir}            \
    $OPTS

# Make
#qmake mythplugins.pro
make

################################################################################

%install
rm -rf %{buildroot}
make install INSTALL_ROOT=%{buildroot}

# Create some directories that are specific to the rpm installation

%if %{with_mythgallery}
mkdir -p %{buildroot}%{_varlibdir}/pictures
%endif

%if %{with_mythgame}
mkdir -p %{buildroot}%{_datadir}/mythtv/games/nes/{roms,screens}
mkdir -p %{buildroot}%{_datadir}/mythtv/games/snes/{roms,screens}
mkdir -p %{buildroot}%{_datadir}/mythtv/games/PC/screens
cp -a mythgame/gamelist.xml %{buildroot}%{_datadir}/mythtv/games/PC/
# Link MythGame's xmame directory to the main xmame one, so users can use
# either app.
mkdir -p %{buildroot}%{_datadir}/xmame/{flyers,screens}
ln -s %{_datadir}/xmame %{buildroot}%{_datadir}/mythtv/games/xmame
%endif

%if %{with_mythmusic}
mkdir -p %{buildroot}%{_varlibdir}/mythmusic
%endif

%if %{with_mythvideo}
mkdir -p %{buildroot}%{_varlibdir}/mythvideo
%endif

################################################################################

%clean
rm -rf %{buildroot}

################################################################################

%files
%defattr(-,root,root,-)
%doc COPYING

################################################################################
%if %{with_mytharchive}

%files -n mytharchive
%defattr(-,root,root,-)
%doc mytharchive/README mytharchive/COPYING mytharchive/AUTHORS
%{_bindir}/mytharchivehelper
%{_libdir}/mythtv/plugins/libmytharchive.so
%{_datadir}/mythtv/mytharchive
%{_datadir}/mythtv/archive*.xml
%{_datadir}/mythtv/i18n/mytharchive_*.qm
%{_datadir}/mythtv/themes/default/ma_*png
%{_datadir}/mythtv/themes/default/mytharchive-ui.xml
%{_datadir}/mythtv/themes/default/mythburn-ui.xml
%{_datadir}/mythtv/themes/default/mythnative-ui.xml

%endif
################################################################################
%if %{with_mythbrowser}

%files -n mythbrowser
%defattr(-,root,root,-)
%doc mythbrowser/README mythbrowser/COPYING mythbrowser/AUTHORS
%{_bindir}/mythbrowser
%{_libdir}/mythtv/plugins/libmythbookmarkmanager.so
%{_datadir}/mythtv/themes/default/webpage.png
%{_datadir}/mythtv/i18n/mythbrowser_*.qm

%endif
################################################################################
%if %{with_mythcontrols}

%files -n mythcontrols
%defattr(-,root,root,-)
%doc mythcontrols/AUTHORS mythcontrols/TODO mythcontrols/COPYING mythcontrols/README
%{_datadir}/mythtv/i18n/mythcontrols_*.qm
%{_libdir}/mythtv/plugins/libmythcontrols.so
%{_datadir}/mythtv/themes/default/controls-ui.xml
%{_datadir}/mythtv/themes/default/kb-button-off.png
%{_datadir}/mythtv/themes/default/kb-button-on.png

%endif
################################################################################
%if %{with_mythflix}

%files -n mythflix
%defattr(-,root,root,-)
%doc mythflix/README mythflix/COPYING
%{_datadir}/mythtv/i18n/mythflix_*
%{_datadir}/mythtv/mythflix/
%{_datadir}/mythtv/netflix_menu.xml
%{_datadir}/mythtv/themes/default/netflix-ui.xml
%{_datadir}/mythtv/themes/default/title_netflix.png
%{_libdir}/mythtv/plugins/libmythflix.so

%endif
################################################################################
%if %{with_mythgallery}

%files -n mythgallery
%defattr(-,root,root,-)
%doc mythgallery/README mythgallery/COPYING
%{_libdir}/mythtv/plugins/libmythgallery.so
%{_datadir}/mythtv/themes/default/gallery-*
%{_datadir}/mythtv/i18n/mythgallery_*.qm
%{_varlibdir}/pictures

%endif
################################################################################
%if %{with_mythgame}

%files -n mythgame
%defattr(-,root,root,-)
%doc mythgame/README
%{_libdir}/mythtv/plugins/libmythgame.so
%{_datadir}/mythtv/game_settings.xml
%{_datadir}/mythtv/themes/default/game-ui.xml
%{_datadir}/mythtv/i18n/mythgame_*.qm
# What a mess.  And all we really want to do is say that gamelist.xml is a
# config file.
%{_datadir}/mythtv/games/nes
%{_datadir}/mythtv/games/snes
%{_datadir}/mythtv/games/xmame
%dir %{_datadir}/mythtv/games/PC
%{_datadir}/mythtv/games/PC/screens
%config %{_datadir}/mythtv/games/PC/gamelist.xml
# xmame should technically own this directory, but we've installed it here
# so people can run xmame and mythgame from the same set of config files.
%{_datadir}/xmame

%endif
################################################################################
%if %{with_mythmovies}

%files -n mythmovies
%defattr(-,root,root,-)
%doc mythmovies/README mythmovies/TODO
%{_bindir}/ignyte
%{_libdir}/mythtv/plugins/libmythmovies.so
%{_datadir}/mythtv/themes/default/movies-ui.xml

%endif
################################################################################
%if %{with_mythmusic}

%files -n mythmusic
%defattr(-,root,root,-)
%doc mythmusic/README mythmusic/COPYING mythmusic/AUTHORS mythmusic/musicdb
%{_libdir}/mythtv/plugins/libmythmusic.so
%{_varlibdir}/mythmusic
%{_datadir}/mythtv/music*.xml
%{_datadir}/mythtv/i18n/mythmusic_*.qm
%{_datadir}/mythtv/themes/default/ff_button_off.png
%{_datadir}/mythtv/themes/default/ff_button_on.png
%{_datadir}/mythtv/themes/default/ff_button_pushed.png
%{_datadir}/mythtv/themes/default/mm_*
%{_datadir}/mythtv/themes/default/music*
%{_datadir}/mythtv/themes/default/next_button_off.png
%{_datadir}/mythtv/themes/default/next_button_on.png
%{_datadir}/mythtv/themes/default/next_button_pushed.png
%{_datadir}/mythtv/themes/default/pause_button_off.png
%{_datadir}/mythtv/themes/default/pause_button_on.png
%{_datadir}/mythtv/themes/default/pause_button_pushed.png
%{_datadir}/mythtv/themes/default/play_button_off.png
%{_datadir}/mythtv/themes/default/play_button_on.png
%{_datadir}/mythtv/themes/default/play_button_pushed.png
%{_datadir}/mythtv/themes/default/prev_button_off.png
%{_datadir}/mythtv/themes/default/prev_button_on.png
%{_datadir}/mythtv/themes/default/prev_button_pushed.png
%{_datadir}/mythtv/themes/default/rew_button_off.png
%{_datadir}/mythtv/themes/default/rew_button_on.png
%{_datadir}/mythtv/themes/default/rew_button_pushed.png
%{_datadir}/mythtv/themes/default/selectionbar.png
%{_datadir}/mythtv/themes/default/stop_button_off.png
%{_datadir}/mythtv/themes/default/stop_button_on.png
%{_datadir}/mythtv/themes/default/stop_button_pushed.png
%{_datadir}/mythtv/themes/default/track_info_background.png

%endif
################################################################################
%if %{with_mythnews}

%files -n mythnews
%defattr(-,root,root,-)
%doc mythnews/README mythnews/AUTHORS mythnews/COPYING
%{_libdir}/mythtv/plugins/libmythnews.so
%{_datadir}/mythtv/mythnews
%{_datadir}/mythtv/themes/default/enclosures.png
%{_datadir}/mythtv/themes/default/need-download.png
%{_datadir}/mythtv/themes/default/news-info-bg.png
%{_datadir}/mythtv/themes/default/news-ui.xml
%{_datadir}/mythtv/i18n/mythnews_*.qm

%endif
################################################################################
%if %{with_mythphone}

%files -n mythphone
%defattr(-,root,root,-)
%doc mythphone/README mythphone/COPYING mythphone/AUTHORS mythphone/TODO
%{_libdir}/mythtv/plugins/libmythphone.so
%{_datadir}/mythtv/themes/default/phone-ui.xml
%{_datadir}/mythtv/themes/default/webcam-ui.xml
%{_datadir}/mythtv/themes/default/mp_*.png
%{_datadir}/mythtv/themes/default/phone.png
%{_datadir}/mythtv/i18n/mythphone_*.qm

%endif
################################################################################
%if %{with_mythvideo}

%files -n mythvideo
%defattr(-,root,root,-)
%doc mythvideo/README mythvideo/COPYING mythvideo/videodb
%{_bindir}/mtd
%{_libdir}/mythtv/plugins/libmythvideo.so
%{_datadir}/mythtv/i18n/mythvideo_*.qm
%{_datadir}/mythtv/video_settings.xml
%{_datadir}/mythtv/videomenu.xml
%{_datadir}/mythtv/mythvideo/
%{_varlibdir}/mythvideo
%{_datadir}/mythtv/themes/default/video-ui.xml
%{_datadir}/mythtv/themes/default/mv-*.png
%{_datadir}/mythtv/themes/default/mv_*.png
%{_datadir}/mythtv/themes/default/md_*.png
%{_datadir}/mythtv/themes/default-wide/dvd-ui.xml
%{_datadir}/mythtv/themes/default-wide/video-ui.xml
%{_datadir}/mythtv/themes/default/dvd-ui.xml

%endif
################################################################################
%if %{with_mythweather}

%files -n mythweather
%defattr(-,root,root,-)
%doc mythweather/README mythweather/COPYING
%{_libdir}/mythtv/plugins/libmythweather.so
%{_datadir}/mythtv/i18n/mythweather_*.qm
%{_datadir}/mythtv/mythweather/
%{_datadir}/mythtv/weather_settings.xml
%{_datadir}/mythtv/themes/default/weather-ui.xml
%{_datadir}/mythtv/themes/default/cloudy.png
%{_datadir}/mythtv/themes/default/fair.png
%{_datadir}/mythtv/themes/default/flurries.png
%{_datadir}/mythtv/themes/default/fog.png
%{_datadir}/mythtv/themes/default/logo.png
%{_datadir}/mythtv/themes/default/lshowers.png
%{_datadir}/mythtv/themes/default/mcloudy.png
%{_datadir}/mythtv/themes/default/mw_*.png
%{_datadir}/mythtv/themes/default/mwmain.png
%{_datadir}/mythtv/themes/default/pcloudy.png
%{_datadir}/mythtv/themes/default/rainsnow.png
%{_datadir}/mythtv/themes/default/showers.png
%{_datadir}/mythtv/themes/default/snowshow.png
%{_datadir}/mythtv/themes/default/sunny.png
%{_datadir}/mythtv/themes/default/thunshowers.png
%{_datadir}/mythtv/themes/default/unknown.png

%endif
################################################################################
%if %{with_mythzoneminder}

%files -n mythzoneminder
%defattr(-,root,root,-)
%doc mythzoneminder/AUTHORS mythzoneminder/README mythzoneminder/COPYING
%{_bindir}/mythzmserver
%{_libdir}/mythtv/plugins/libmythzoneminder.so
%{_datadir}/mythtv/themes/default/mz_*
%{_datadir}/mythtv/themes/default/zoneminder-ui.xml
%{_datadir}/mythtv/themes/default-wide/zoneminder-ui.xml
%{_datadir}/mythtv/zonemindermenu.xml

%endif
################################################################################

%changelog

* Sun Sep 16 2007 Chris Petersen <rpm@forevermore.net>
- Add some new mythnews images

* Fri Sep  7 2007 Chris Petersen <rpm@forevermore.net>
- Add datadir/mythtv/themes/default-wide/zoneminder-ui.xml
- Remove mythweather mw-*png files, which have been renamed upstream

* Tue Jul 17 2007 Chris Petersen <rpm@forevermore.net>
- Add weather_settings.xml and new images to mythweather subpackage
- Add new mythmovies plugin

* Tue May  1 2007 Chris Petersen <rpm@forevermore.net>
- Enable libvisual in MythMusic
- Enable VCD support by default
- Attempt to enable AAC by default (requires libmp4ff, which isn't in livna)
- Fix MythVideo's tmpdir string replacement

* Thu Apr  5 2007 Chris Petersen <rpm@forevermore.net>
- Replace MythMusic libid3tag dependency with taglib

* Sat Jan 13 2007 Chris Petersen <rpm@forevermore.net>
- Rearrange things to account for MythDVD and MythVideo merging
- Fix a couple of file locations for MythGame
- Clean up the files section to use more wildcards

* Wed Nov 29 2006 Chris Petersen <rpm@forevermore.net>
- Add mythzoneminder

* Mon Sep 11 2006 Chris Petersen <rpm@forevermore.net>
- Update now that .20 has been released
- Deal with missing/changed files

* Wed Aug 30 2006 Chris Petersen <rpm@forevermore.net>
- add -i to the SVN grep to account for certain foreign languages that capitalize "Revision"
- Add support for mytharchive

* Sat Apr 01 2006 Chris Petersen <rpm@forevermore.net>
- Enhance SVN support so that the build doesn't fail if there were updated files in the repository.
- Add detection for modular X.org so we don't need two spec files.
- Add documentation at the top of the file for the --with and --without options.

* Sun Nov 27 2005 Martin Ebourne <martin@zepler.org>
- Added MythFlix

* Fri Jul 22 2005 Chris Petersen <rpm@forevermore.net>
- Add mythcontrols
- General cleanup and adding of conditionals

* Sat Jul 16 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Reenable mythplugins.

* Tue Jun  7 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Disable transcode for now until transcode catches up with ffmpeg
  and libquicktime.

* Tue May 17 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Update to 0.18.1.

* Thu May 12 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Update the cvs fixes.

* Thu Apr 21 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Add cvsfixes for 0.18.

* Fri Apr 15 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Update to 0.18.

* Thu Apr 14 2005 Axel Thimm <Axel.Thimm@ATrpms.net>
- Merging plugins into one build (matching the new source layout).