Projects
Staging
mythtv
mythtv.spec
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mythtv.spec of Package mythtv
# # spec file for package mythtv # # Copyright (c) 2021 Packman Team <packman@links2linux.de> # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2010,2011,2012,2013 Herbert Graeber <herbert@links2linux.de> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.links2linux.org # %define _lto_cflags %{nil} %define manjor 31 %define soname libmyth %define sover 29-29 %define SYSUSER mythtv %define SYSGROUP video %define OTHERSYSGROUP audio # Save a previous major release # NOTE: You should have made sure that name of the package is # configured correctly and defines the expected version # You can add the manjor macro in the name tag # See: Conflicts Tag %define pkgmanjor %(echo %{name} | sed -ne '/-/s/[^-]*//p' -ne '/-/!s/[^0-9]*//p') %define statusrelease %(test -n '%{?pkgmanjor}' && echo legacy || echo current) %if 0%{?suse_version} <= 1500 %define mythnetvision 1 %endif # Fix: suse-filelist-forbidden-sysconfig %{!?_fillupdir:%global _fillupdir /var/adm/fillup-templates} Name: mythtv Version: 31.0+git20210808.5da2523154 Release: 0 Summary: A personal video recorder (PVR/DVR) application License: GPL-2.0-or-later Group: Productivity/Multimedia/Video/Players URL: http://mythtv.org/ Source0: mythtv-fixes-%{version}.tar.gz Source91: mythbackend.sysconfig.in Source92: mythbackend.service.in Source93: mythbackend.sysusers.in Source94: mythbackend.tmpfile.in Source95: mythbackend.rules.in Source96: mythbackend.SuSEfirewall2 Source97: mythbackend.logrotate.in Source98: mythtv-session.desktop Source99: mythfrontend.svg Source100: mythtv.rpmlintrc Patch0: mythtv-perl-install.patch Patch1: remove-unwanted-dependency.patch BuildRequires: avahi-compat-mDNSResponder-devel BuildRequires: dcraw BuildRequires: fdupes BuildRequires: fftw3 BuildRequires: fftw3-threads-devel BuildRequires: hicolor-icon-theme BuildRequires: libdvdcss-devel BuildRequires: libhdhomerun-devel BuildRequires: libfame-devel BuildRequires: libgsm-devel BuildRequires: libmp3lame-devel BuildRequires: libmysqlclient-devel BuildRequires: libsensors4-devel BuildRequires: libtool BuildRequires: libxvidcore-devel BuildRequires: lirc-devel BuildRequires: nasm BuildRequires: ncurses-devel BuildRequires: perl-libwww-perl BuildRequires: pkgconfig BuildRequires: python-curl BuildRequires: python-devel BuildRequires: python-future BuildRequires: python-lxml BuildRequires: python-mysql BuildRequires: python-simplejson BuildRequires: python-urlgrabber BuildRequires: python-requests-cache BuildRequires: update-desktop-files BuildRequires: yasm BuildRequires: perl(Config) BuildRequires: perl(DBD::mysql) BuildRequires: perl(DBI) BuildRequires: perl(Date::Manip) BuildRequires: perl(DateTime::Format::ISO8601) BuildRequires: perl(Exporter) BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: perl(Fcntl) BuildRequires: perl(File::Copy) BuildRequires: perl(HTTP::Request) BuildRequires: perl(IO::Socket::INET6) BuildRequires: perl(Image::Size) BuildRequires: perl(JSON) BuildRequires: perl(LWP::Simple) BuildRequires: perl(LWP::UserAgent) BuildRequires: perl(Net::UPnP::ControlPoint) BuildRequires: perl(Net::UPnP::QueryResponse) BuildRequires: perl(SOAP::Lite) BuildRequires: perl(Sys::Hostname) BuildRequires: perl(XML::Simple) BuildRequires: perl(XML::XPath) BuildRequires: pkgconfig(Qt5Core) >= 5.2.0 BuildRequires: pkgconfig(Qt5DBus) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Network) BuildRequires: pkgconfig(Qt5OpenGL) BuildRequires: pkgconfig(Qt5Script) BuildRequires: pkgconfig(Qt5Sql) BuildRequires: pkgconfig(Qt5WebKit) BuildRequires: pkgconfig(Qt5WebKitWidgets) BuildRequires: pkgconfig(Qt5Xml) BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(dvdnav) BuildRequires: pkgconfig(dvdread) BuildRequires: pkgconfig(exiv2) BuildRequires: pkgconfig(fftw3) BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(fribidi) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(liba52) BuildRequires: pkgconfig(libass) BuildRequires: pkgconfig(libavc1394) BuildRequires: pkgconfig(libcdaudio) >= 0.99.6 BuildRequires: pkgconfig(libcdio) BuildRequires: pkgconfig(libcdio_cdda) BuildRequires: pkgconfig(libcec) >= 1.7.0 BuildRequires: pkgconfig(libdca) BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(libiec61883) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libbluray) BuildRequires: pkgconfig(samplerate) BuildRequires: pkgconfig(libraw1394) BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(libva-glx) BuildRequires: pkgconfig(libvisual-0.4) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(lzo2) BuildRequires: pkgconfig(mad) BuildRequires: pkgconfig(minizip) BuildRequires: pkgconfig(mjpegtools) BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(phonon4qt5) BuildRequires: pkgconfig(sdl) BuildRequires: pkgconfig(taglib) >= 1.7.0 BuildRequires: pkgconfig(theora) BuildRequires: pkgconfig(udev) BuildRequires: pkgconfig(uuid) BuildRequires: pkgconfig(vdpau) BuildRequires: pkgconfig(vorbis) BuildRequires: pkgconfig(vpx) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x264) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xmu) BuildRequires: pkgconfig(xproto) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xv) BuildRequires: pkgconfig(xxf86vm) BuildRequires: pkgconfig(zlib) # FIXME: use proper Requires(pre/post/preun/...) PreReq: coreutils Provides: mythtv-%{statusrelease} Conflicts: mythtv%{!?pkgmanjor:-legacy} Conflicts: mythtv-0_28 Conflicts: mythtv-0_27 %{?systemd_requires} # SECTION check: %if 0%{?mythnetvision} BuildRequires: python-pycurl BuildRequires: python-oauth BuildRequires: python-xml %endif ExclusiveArch: %{ix86} x86_64 %ifarch %{ix86} x86_64 BuildRequires: xf86-video-intel BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glu) %endif %ifarch %{arm} aarch64 BuildRequires: pkgconfig(glesv1_cm) BuildRequires: Mesa-libGL-devel %endif %description MythTV provides a unified graphical interface for recording and viewing television programs. Refer to the mythtv package for more information. There are also several add-ons and themes available. In order to facilitate installations with smart/apt-get/yum and other related package resolvers this meta-package can be used to install all in one sweep. MythTV implements the following DVR features, and more, with a unified graphical interface: - Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV. - Video compression using RTjpeg or MPEG-4, and support for DVB and hardware encoder cards/devices. - Program listing retrieval using XMLTV - Themable, semi-transparent on-screen display - Electronic program guide - Scheduled recording of TV programs - Resolution of conflicts between scheduled recordings - Basic video editing %package docs Summary: MythTV documentation Group: Documentation/HTML Provides: mythtv-%{statusrelease}-docs Conflicts: mythtv%{!?pkgmanjor:-legacy}-docs Conflicts: mythtv-0_28-docs Conflicts: mythtv-0_27-docs BuildArch: noarch %description docs A personal video recorder (PVR/DVR) application. This package contains the %{name} documentation files. %package -n %{soname}-%{sover} Summary: Library providing %{name} support Group: Development/Libraries/C and C++ Requires: libQt5Sql5-mysql %description -n %{soname}-%{sover} A personal video recorder (PVR/DVR) application. This package contains the shared library for %{name} and add-on modules. %package devel Summary: Development files for %{soname} Group: Development/Libraries/C and C++ Requires: %{soname}-%{sover} = %{version} Provides: mythtv-%{statusrelease}-devel Conflicts: mythtv%{!?pkgmanjor:-legacy}-devel Conflicts: mythtv-0_28-devel Conflicts: mythtv-0_27-devel %description devel A personal video recorder (PVR/DVR) application. This package contains the header files and libraries for developing add-ons for %{name}. %package base-themes Summary: Core user interface themes for %{name} Group: Productivity/Multimedia/Video/Players Recommends: droid-fonts Provides: mythtv-%{statusrelease}-base-themes Conflicts: mythtv%{!?pkgmanjor:-legacy}-base-themes Conflicts: mythtv-0_28-base-themes Conflicts: mythtv-0_27-base-themes BuildArch: noarch %description base-themes A personal video recorder (PVR/DVR) application. This package contains the base themes for the %{name} user interface. %package common Summary: Common components needed by %{name} Group: Productivity/Multimedia/Video/Players Requires: python-%{name}%{?pkgmanjor} = %{version} Requires: transcode Provides: mythtv-%{statusrelease}-common Conflicts: mythtv%{!?pkgmanjor:-legacy}-common Conflicts: mythtv-0_28-common Conflicts: mythtv-0_27-common %description common A personal video recorder (PVR/DVR) application. This package contains components needed by multiple other %{name} components. %package frontend Summary: Client component of %{name} (a PVR) Group: Productivity/Multimedia/Video/Players Requires: %(rpm -qf $(readlink -qne %{_libdir}/libcec.so) --qf '%%{NAME} >= %%{VERSION}') Requires: %{name}-base-themes = %{version} Requires: %{name}-common = %{version} Requires: %{soname}-%{sover} = %{version} Provides: mythtv-%{statusrelease}-frontend Conflicts: mythtv%{!?pkgmanjor:-legacy}-frontend Conflicts: mythtv-0_28-frontend Conflicts: mythtv-0_27-frontend %description frontend MythTV provides a unified graphical interface for recording and viewing television programs. This package contains only the client software, which provides a front-end for playback and configuration. It requires access to a %{name}-backend installation, either on the same system or one reachable via the network. %package backend Summary: Server component of %{name} (a DVR) Group: Productivity/Multimedia/Video/Players Requires: %{name}-common = %{version} Requires(pre): %fillup_prereq Requires(pre): coreutils Requires(pre): shadow Requires(pre): system-group-hardware Requires(pre): util-linux-systemd Recommends: logrotate Provides: mythtv-%{statusrelease}-backend Conflicts: mythtv%{!?pkgmanjor:-legacy}-backend Conflicts: mythtv-0_28-backend Conflicts: mythtv-0_27-backend %description backend MythTV provides a unified graphical interface for recording and viewing television programs. This package contains only the server software, which provides video and audio capture and encoding services. In order to be useful, it requires a %{name}-frontend installation, either on the same system or one reachable via the network. %package setup Summary: Setup the %{name} backend Group: Productivity/Multimedia/Video/Players Requires: %{name}-backend = %{version} Requires: %{name}-base-themes = %{version} Provides: mythtv-%{statusrelease}-setup Conflicts: mythtv%{!?pkgmanjor:-legacy}-setup Conflicts: mythtv-0_28-setup Conflicts: mythtv-0_27-setup %description setup A personal video recorder (PVR/DVR) application. This package contains the program which sets up the database to use a machine as a backend server. %package -n perl-%{name} Summary: Perl bindings for %{name} Group: Development/Libraries/Perl Requires: perl(DBD::mysql) Requires: perl(Net::UPnP) Requires: perl(Net::UPnP::ControlPoint) Provides: perl-mythtv-%{statusrelease} Conflicts: perl-mythtv%{!?pkgmanjor:-legacy} Conflicts: perl-mythtv-0_28 Conflicts: perl-MythTV-0_27 BuildArch: noarch %{perl_requires} %description -n perl-%{name} A personal video recorder (PVR/DVR) application. Provides a perl-based interface to interacting with %{name}. %package -n python-%{name} Summary: Python bindings for %{name} Group: Development/Libraries/Python Requires: python-future Requires: python-lxml Requires: python-mysql Requires: python-requests-cache Requires: python-urllib3 Provides: python-mythtv-%{statusrelease} Conflicts: python-mythtv%{!?pkgmanjor:-legacy} Conflicts: python-mythtv-0_28 Conflicts: python-MythTV-0_27 BuildArch: noarch %description -n python-%{name} A personal video recorder (PVR/DVR) application. Provides a python-based interface to interacting with %{name}. %package -n php-%{name} Summary: PHP bindings for %{name} Group: Development/Libraries/Other Requires: perl-%{name} Provides: php-mythtv-%{statusrelease} Conflicts: php-mythtv%{!?pkgmanjor:-legacy} Conflicts: php-mythtv-0_28 Conflicts: php-MythTV-0_27 BuildArch: noarch %description -n php-%{name} A personal video recorder (PVR/DVR) application. Provides a php-based interface to interacting with MythTV. %package -n mythplugins-mytharchive%{?pkgmanjor} Summary: A module for %{name} for creating and burning DVDs Group: Productivity/Multimedia/Video/Players Requires: %{_bindir}/cdrecord Requires: %{_bindir}/mkisofs Requires: dvd+rw-tools Requires: dvdauthor Requires: ffmpeg Requires: mjpegtools Requires: python-imaging Requires: transcode Provides: mytharchive-%{statusrelease} Provides: mytharchive%{?pkgmanjor} = %{version} Conflicts: mytharchive%{!?pkgmanjor:-legacy} Conflicts: mytharchive-0_28 Conflicts: mytharchive-0_27 %description -n mythplugins-mytharchive%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythArchive is a new plugin for MythTV that lets you create DVDs from your recorded shows, MythVideo files and any video files available on your system. %package -n mythplugins-mythbrowser%{?pkgmanjor} Summary: A small web browser module for %{name} Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Provides: mythbrowser-%{statusrelease} Provides: mythbrowser%{?pkgmanjor} = %{version} Conflicts: mythbrowser%{!?pkgmanjor:-legacy} Conflicts: mythbrowser-0_28 Conflicts: mythbrowser-0_27 %description -n mythplugins-mythbrowser%{?pkgmanjor} A personal video recorder (PVR/DVR) application. 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. %package -n mythplugins-mythgame%{?pkgmanjor} Summary: A game frontend (xmame, nes, snes, pc) for %{name} Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Provides: mythgame-%{statusrelease} Provides: mythgame%{?pkgmanjor} = %{version} Conflicts: mythgame%{!?pkgmanjor:-legacy} Conflicts: mythgame-0_28 Conflicts: mythgame-0_27 %description -n mythplugins-mythgame%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythGame is a starter for games and emulators, so they can be run from within %{name}. %package -n mythplugins-mythmusic%{?pkgmanjor} Summary: The music player add-on module for %{name} Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Provides: mythmusic-%{statusrelease} Provides: mythmusic%{?pkgmanjor} = %{version} Conflicts: mythmusic%{!?pkgmanjor:-legacy} Conflicts: mythmusic-0_28 Conflicts: mythmusic-0_27 %description -n mythplugins-mythmusic%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythMusic is a sophisticated MythTV plugin that allows you to play and manage music and audio files .i.e MP3, Ogg, FLAC, wav etc and play radio streams from the likes of Icecast, Sky FM, Digitally Imported and Radionomy. %package -n mythplugins-mythnetvision%{?pkgmanjor} Summary: MythTV Plugin for watching internet content Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Requires: perl Requires: python-%{name} = %{version} Requires: python-curl Requires: python-oauth Requires: python-xml Provides: mythnetvision-%{statusrelease} Provides: mythnetvision%{?pkgmanjor} = %{version} Conflicts: mythnetvision%{!?pkgmanjor:-legacy} Conflicts: mythnetvision-0_28 Conflicts: mythnetvision-0_27 %description -n mythplugins-mythnetvision%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythNetvision is a plugin designed to make adding Internet video sources to MythTV fun and easy. MythNetvision consists of two components-- a search screen and a site/RSS browser screen. When installed, MythNetvision appears on the Media Library screen as the options "Search Internet Video" and "Browse Internet Video." %package -n mythplugins-mythnews%{?pkgmanjor} Summary: An RSS news feed plugin for %{name} Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Provides: mythnews-%{statusrelease} Provides: mythnews%{?pkgmanjor} = %{version} Conflicts: mythnews%{!?pkgmanjor:-legacy} Conflicts: mythnews-0_28 Conflicts: mythnews-0_27 %description -n mythplugins-mythnews%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythNews is a module which permits the user to follow their favorite news sources, available in RSS format. %package -n mythplugins-mythweather%{?pkgmanjor} Summary: A %{name} module that displays a weather forcast Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Requires: perl(DateTime::Format::ISO8601) Requires: perl(Image::Size) Requires: perl(SOAP::Lite) Requires: perl(XML::SAX::Base) Requires: perl(XML::XPath) Provides: mythweather-%{statusrelease} Provides: mythweather%{?pkgmanjor} = %{version} Conflicts: mythweather%{!?pkgmanjor:-legacy} Conflicts: mythweather-0_28 Conflicts: mythweather-0_27 %description -n mythplugins-mythweather%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythWeather is a plugin that downloads and displays weather information. %package -n mythplugins-mythzoneminder%{?pkgmanjor} Summary: A module for %{name} for camera security and surveillance Group: Productivity/Multimedia/Video/Players Requires: %{name}-frontend = %{version} Provides: mythzoneminder-%{statusrelease} Provides: mythzoneminder%{?pkgmanjor} = %{version} Conflicts: mythzoneminder%{!?pkgmanjor:-legacy} Conflicts: mythzoneminder-0_28 Conflicts: mythzoneminder-0_27 %description -n mythplugins-mythzoneminder%{?pkgmanjor} A personal video recorder (PVR/DVR) application. MythZoneMinder is a plugin to interface to some of the features of ZoneMinder. You can use it to view a status window similar to the console window in ZM. Also there are screens to view live camera shots and replay recorded events. %prep %setup -q -n mythtv-fixes-%{version} %patch -P 0 -p1 %patch -P 1 -p1 # Check app version _newversion=$(grep -os '[0-9]\+\.[.0-9]\+\?[0-9]' mythtv/SRC_VERSION | grep -m1 .) _oldversion=$(echo %{version} | grep -o '[0-9]\+\.[.0-9]\+\?[0-9]' | grep -m1 .) if [ -n "$_newversion" ]; then if [ -f %_sourcedir/_service ]; then if [[ "$_oldversion" != $_newversion ]]; then "You need to update the version number in the _service file: $_newversion" 2> /dev/null fi fi fi # Fix build gcc6 # Don't use -isystem /usr/include find . -type f -name \*.pro | while read file; do echo "QMAKE_CFLAGS_ISYSTEM =" >> "$file" done if [ "%{_lib}" != "lib" ]; then find \( -name 'configure' -o -name '*pro' -o -name 'Makefile*' \) \ -exec sed -r -i -e 's,/lib\b,/%{_lib},g' {} \+ fi # Fix: env-script-interpreter grep -rl '^\#\!\/' | xargs -r -t sed -i '/^\#\!\/.\+perl/s/env\ \+//;s|^\#\!.*python$|#!%{_bindir}/python2|' # Fix: non-executable-script find -regex ".*\.\(html\|js\|xsl\)" -type f -executable -exec chmod 644 {} \; || : pushd mythtv # Remove unnecessary ldconfig call sed -i 's/\-ldconfig//' $(grep -rl '\-ldconfig') # Use optflags when building sed -i 's/\-O3//' $(grep -rl '\-O3') cp -a %{SOURCE91} %{SOURCE92} %{SOURCE93} %{SOURCE94} %{SOURCE95} %{SOURCE96} %{SOURCE97} %{SOURCE98} %{SOURCE99} . for file in mythbackend.{service,sysusers,tmpfile,logrotate}.in; do sed -e's|@SYSUSER@|%{SYSUSER}|g' \ -e's|@SYSGROUP@|%{SYSGROUP}|g' \ -e's|@OTHERSYSGROUP@|%{OTHERSYSGROUP}|g' \ -i $file done # Remove build time references # Fix: file-contains-date-and-time FAKE_BUILDDATE=$(LC_ALL=C date -r %{_sourcedir}/mythtv.changes '+%b %e %Y') FAKE_BUILDTIME=$(LC_ALL=C date -r %{_sourcedir}/mythtv.changes '+%H:%M:%S') sed -e "s/__DATE__/\"$FAKE_BUILDDATE\"/" \ -e "s/__TIME__/\"$FAKE_BUILDTIME\"/" \ -i $(grep -rl '__DATE__\|__TIME__') || : # Switch to verbose mode #set -i 's/\(\$.MAKE. -C\)/\1 V=1/' $(grep -rl '\$.MAKE. -C') popd %build # check python libraries # can be used to send a message to _log check_py_lib() { grep '^\ \+check_py_lib\ \+' configure \ | awk '{print $2}' \ | while read _check_py_lib do python <<EOF from distutils.sysconfig import get_python_lib import sys sys.path.append(get_python_lib(prefix="${temp}%{_prefix}")) print (get_python_lib(prefix="${temp}%{_prefix}")) import ${_check_py_lib} EOF done } CFLAGS="%{optflags} -fomit-frame-pointer -fno-strict-aliasing" export CFLAGS="${CFLAGS/ -flto}" export CXXFLAGS="$CFLAGS" # Build MythTV pushd mythtv check_py_lib || : # FIXME: you should use the %%configure macro ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --libdir-name=%{_lib} \ --mandir=%{_mandir} \ --enable-pthreads \ --enable-ffmpeg-pthreads \ --enable-joystick-menu \ --enable-audio-alsa \ --enable-audio-oss \ --enable-audio-jack \ --enable-hdhomerun \ --enable-libfftw3 \ --enable-x11 \ --x11-path=%{_includedir} \ --enable-xrandr \ --enable-lirc \ --enable-ivtv \ --enable-firewire \ --enable-dvb \ --enable-libmp3lame \ --enable-libxvid \ --enable-vdpau \ --enable-vaapi \ --enable-libx264 \ --enable-libvpx \ --enable-libxvid \ --enable-libdns-sd \ --enable-nonfree \ --extra-cflags="$CFLAGS" \ --extra-cxxflags="$CXXFLAGS" \ --extra-libs="-ldl" \ --compile-type=release \ --disable-stripping \ --enable-symbol-visibility \ --enable-pic \ --python=python2 \ %make_jobs OPTFLAGS="%{optflags}" popd # Prepare to build the plugins # Make install into a temporary directory mkdir temp temp=$(pwd)/temp mkdir -p $temp%{perl_vendorlib} make %{?_smp_mflags} -C mythtv install INSTALL_ROOT=$temp export LD_LIBRARY_PATH=$temp%{_libdir}:$LD_LIBRARY_PATH # Build plugins pushd mythplugins # Fix the default mythtv location echo "QMAKE_PROJECT_DEPTH = 0" >> settings.pro find . -name \*.pro \ -exec sed -i -e "s,INCLUDEPATH += .\+/include/mythtv,INCLUDEPATH += $temp%{_includedir}/mythtv," {} \; \ -exec sed -i -e "s,DEPLIBS = \$\${SYSROOT}\$\${LIBDIR},DEPLIBS = $temp%{_libdir}," {} \; \ -exec sed -i -e "s,\$\${PREFIX}/include/mythtv,$temp%{_includedir}/mythtv," {} \; echo "QMAKE_LIBDIR += $temp%{_libdir}" >> targetdep.pro cat >> settings.pro << EOF INCLUDEPATH -= \$\${PREFIX}/include INCLUDEPATH -= \$\${SYSROOT}/\$\${PREFIX}/include INCLUDEPATH -= %{_includedir} INCLUDEPATH += $temp%{_includedir} LIBS *= -L$temp%{_libdir} EOF %if 0%{?mythnetvision} check_py_lib || mythnetvision=0 %endif # FIXME: you should use the %%configure macro ./configure \ --prefix=${temp}%{_prefix} \ --libdir=%{_libdir} \ --libdir-name=%{_lib} \ --enable-exif \ --enable-new-exif \ --enable-dcraw \ --enable-opengl \ --enable-fftw \ --enable-cdio \ --compile-type=release \ --enable-mytharchive \ --enable-mythbrowser \ --enable-mythgame \ --enable-mythmusic \ --enable-mythnews \ --enable-mythweather \ --enable-mythzoneminder \ --python=python2 \ ${mythnetvision:+--disable-mythnetvision} \ ${mythnetvision:---enable-mythnetvision} \ %make_jobs popd %install pushd mythtv %qmake5_install install -d %{buildroot}{%{_sbindir},%{_libdir}/mythtv/plugins,%{_sysconfdir}/mythtv} ln -sf mythtv-setup %{buildroot}%{_bindir}/mythtvsetup echo "# to be filled in by mythtv-setup" > %{buildroot}%{_sysconfdir}/mythtv/config.xml install -Dm0644 {./,%{buildroot}%{_datadir}/icons/hicolor/scalable/apps}/mythfrontend.svg install -Dm0644 mythbackend.sysconfig.in %{buildroot}%{_fillupdir}/sysconfig.mythbackend install -Dm0644 mythbackend.service.in %{buildroot}%{_unitdir}/mythbackend.service install -Dm0644 mythbackend.tmpfile.in %{buildroot}%{_tmpfilesdir}/mythbackend.conf install -Dm0644 mythbackend.sysusers.in %{buildroot}%{_sysusersdir}/mythbackend.conf ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcmythbackend install -Dm0644 mythbackend.rules.in %{buildroot}/%{_udevrulesdir}/99-mythbackend.rules install -Dm0644 {./,%{buildroot}%{_datadir}/mythtv/build/}settings.pro install -Dm0644 mythbackend.SuSEfirewall2 %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/mythbackend install -Dm0644 mythbackend.logrotate.in %{buildroot}%{_sysconfdir}/logrotate.d/mythtv install -d %{buildroot}$(sed -n 's/\ \+olddir\ \+//p' mythbackend.logrotate.in)$(grep -q 'olddir' mythbackend.logrotate.in) %{suse_update_desktop_file -c \ mythfrontend MythTV "PVR/DVR" mythfrontend mythfrontend Qt AudioVideo Video TV} %{suse_update_desktop_file -c \ mythtv-setup "MythTV Setup" "MythTV - Sets up the database" mythtv-setup mythfrontend Qt Settings Qt Utility Settings} # Fix: Unknown option -w/geometry in suse_update_desktop_file # Use the following lines instead of suse_update_desktop_file.sh for _application in medium-1024x576 small-800x450; do cat > %{buildroot}%{_datadir}/applications/mythfrontend-${_application#*-}.desktop << EOF [Desktop Entry] Encoding=UTF-8 Name=MythTV ${_application#*-} GenericName=PVR/DVR (${_application%-*} window size) Categories=Qt;AudioVideo;Video;TV; Type=Application Exec=mythfrontend -w -geometry ${_application#*-} Icon=mythfrontend EOF done install -Dm0644 mythtv-session.desktop %{buildroot}%{_datadir}/xsessions/mythtv.desktop popd install -d %{buildroot}%{_localstatedir}/{lib/mythtv,log/mythtv,cache/mythtv} pushd mythplugins %qmake5_install install -d %{buildroot}%{_localstatedir}/{lib/mythmusic,lib/pictures} install -d %{buildroot}%{_datadir}/mythtv/games/nes/{roms,screens} install -d %{buildroot}%{_datadir}/mythtv/games/snes/{roms,screens} install -d %{buildroot}%{_datadir}/{mythtv/games/PC/screens,mame,mame/flyers} install -d %{buildroot}%{_sysconfdir}/mythgame ln -s ../../mame %{buildroot}%{_datadir}/mythtv/games/xmame ln -s snap %{buildroot}%{_datadir}/mythtv/games/xmame/screens cp -a mythgame/gamelist.xml %{buildroot}%{_sysconfdir}/mythgame/ ln -s ../../../../../%{_sysconfdir}/mythgame/ \ %{buildroot}%{_datadir}/mythtv/games/PC/gamelist.xml popd find %{buildroot} -type f -name \*.py | while read py; do byte=$(dirname $py) %py_compile $byte done pushd %{buildroot} find . -path .%{_includedir}/mythtv -prune -o \ -iregex ".*\.\(la\|a\|pc\|hpp\|h\|.*/\..*\)" -print -exec rm {} \; popd %fdupes %{buildroot}%{_docdir} %fdupes %{buildroot}%{_datadir}/mythtv %fdupes %{buildroot}%{_includedir}/mythtv %post -n %{soname}-%{sover} -p /sbin/ldconfig %postun -n %{soname}-%{sover} -p /sbin/ldconfig %pre backend %service_add_pre mythbackend.service %post backend %{fillup_and_insserv -i -n mythbackend} %tmpfiles_create %{_tmpfilesdir}/mythbackend.conf %sysusers_create %{_sysusersdir}/mythbackend.conf %service_add_post mythbackend.service %udev_rules_update %preun backend %service_del_preun mythbackend.service %postun backend %service_del_postun mythbackend.service if [ $1 -eq 0 ]; then %udev_rules_update fi %files docs %doc mythtv/README* %doc mythtv/UPGRADING %doc mythtv/AUTHORS %doc mythtv/COPYING %doc mythtv/FAQ %doc mythtv/database %doc mythtv/keys.txt %doc mythtv/docs %doc mythtv/contrib %files common %{_bindir}/mythcommflag %{_bindir}/mythexternrecorder %{_bindir}/mythtranscode %{_bindir}/mythffmpeg %{_bindir}/mythreplex %{_bindir}/mythccextractor %{_bindir}/mythmetadatalookup %{_bindir}/mythutil %{_bindir}/mythpreviewgen %{_bindir}/mythffprobe %{_bindir}/mythscreenwizard %{_bindir}/mythfilerecorder %dir %{_datadir}/mythtv %{_datadir}/mythtv/mythconverg*.pl %dir %{_datadir}/mythtv/externrecorder/ %{_datadir}/mythtv/externrecorder/* %dir %{_datadir}/mythtv/locales %{_datadir}/mythtv/locales/* %dir %{_datadir}/mythtv/metadata %{_datadir}/mythtv/metadata/* %dir %{_datadir}/mythtv/hardwareprofile %{_datadir}/mythtv/hardwareprofile/* %{_bindir}/mythwikiscripts %{_datadir}/mythtv/CDS_scpd.xml %{_datadir}/mythtv/CMGR_scpd.xml %{_datadir}/mythtv/MFEXML_scpd.xml %{_datadir}/mythtv/MSRR_scpd.xml %{_datadir}/mythtv/devicemaster.xml %{_datadir}/mythtv/deviceslave.xml %dir %{_sysconfdir}/mythtv %config(noreplace) %{_sysconfdir}/mythtv/config.xml %files backend %{_bindir}/mythbackend %{_bindir}/mythfilldatabase %{_bindir}/mythjobqueue %{_bindir}/mythmediaserver %{_datadir}/mythtv/html/ %{_datadir}/mythtv/backend-config %{_datadir}/mythtv/MXML_scpd.xml %{_datadir}/mythtv/internetcontent/ %{_fillupdir}/sysconfig.mythbackend %ghost %attr(0750,%{SYSUSER},%{SYSGROUP}) %dir %{_localstatedir}/lib/mythtv %ghost %attr(0750,%{SYSUSER},%{SYSGROUP}) %dir %{_localstatedir}/cache/mythtv %ghost %attr(0750,%{SYSUSER},%{SYSGROUP}) %dir %{_localstatedir}/log/mythtv %ghost %attr(0750,%{SYSUSER},%{SYSGROUP}) %dir %{_localstatedir}/log/mythtv/old %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/mythbackend %config %{_sysconfdir}/logrotate.d/mythtv %{_sbindir}/rcmythbackend %{_sysusersdir}/mythbackend.conf %{_tmpfilesdir}/mythbackend.conf %{_unitdir}/mythbackend.service %{_udevrulesdir}/99-mythbackend.rules %files setup %{_bindir}/mythtv-setup %{_bindir}/mythtvsetup %{_datadir}/mythtv/setup.xml %{_datadir}/applications/*mythtv-setup.desktop %files frontend %{_bindir}/mythavtest %{_bindir}/mythfrontend %{_bindir}/mythlcdserver %{_bindir}/mythshutdown %{_bindir}/mythwelcome %dir %{_libdir}/mythtv %dir %{_libdir}/mythtv/plugins %dir %{_datadir}/mythtv/i18n %{_datadir}/mythtv/i18n/mythfrontend_*.qm %{_datadir}/applications/mythfrontend*.desktop %{_datadir}/icons/hicolor/*/apps/mythfrontend.svg %{_datadir}/xsessions/mythtv.desktop %dir %{_datadir}/mythtv/fonts %{_datadir}/mythtv/fonts/*.ttf %{_datadir}/mythtv/fonts/*.otf %{_datadir}/mythtv/fonts/tiresias_gpl3.txt %files base-themes %dir %{_datadir}/mythtv/themes %{_datadir}/mythtv/themes/* %files -n %{soname}-%{sover} %{_libdir}/*.so.* %files devel %{_includedir}/mythtv/ %{_libdir}/*.so %dir %{_datadir}/mythtv/build %{_datadir}/mythtv/build/settings.pro %files -n perl-%{name} %{perl_vendorlib}/MythTV.pm %dir %{perl_vendorlib}/MythTV %{perl_vendorlib}/MythTV/*.pm %dir %{perl_vendorlib}/IO %dir %{perl_vendorlib}/IO/Socket %dir %{perl_vendorlib}/IO/Socket/INET %{perl_vendorlib}/IO/Socket/INET/MythTV.pm %files -n python-%{name} %dir %{python_sitelib}/MythTV/ %{_bindir}/mythpython %{python_sitelib}/MythTV/* %{python_sitelib}/MythTV-*.egg-info %files -n php-%{name} %dir %{_datadir}/mythtv/bindings %{_datadir}/mythtv/bindings/php %files -n mythplugins-mytharchive%{?pkgmanjor} %{_bindir}/mytharchivehelper %{_libdir}/mythtv/plugins/%{soname}archive.so %{_datadir}/mythtv/archivemenu.xml %{_datadir}/mythtv/archiveutils.xml %{_datadir}/mythtv/mytharchive/ %{_datadir}/mythtv/i18n/mytharchive_*.qm %files -n mythplugins-mythbrowser%{?pkgmanjor} %{_libdir}/mythtv/plugins/%{soname}browser.so %{_datadir}/mythtv/i18n/mythbrowser_*.qm %files -n mythplugins-mythgame%{?pkgmanjor} %dir %{_sysconfdir}/mythgame %config(noreplace) %{_sysconfdir}/mythgame/gamelist.xml %{_libdir}/mythtv/plugins/%{soname}game.so %dir %{_datadir}/mythtv/games %dir %{_datadir}/mythtv/games/PC %{_datadir}/mythtv/games/PC/gamelist.xml %{_datadir}/mythtv/games/xmame %dir %{_datadir}/mame %{_datadir}/mame/screens %dir %{_datadir}/mame/flyers %{_datadir}/mythtv/game_settings.xml %{_datadir}/mythtv/i18n/mythgame_*.qm %files -n mythplugins-mythmusic%{?pkgmanjor} %{_libdir}/mythtv/plugins/%{soname}music.so %{_localstatedir}/lib/mythmusic %{_datadir}/mythtv/musicmenu.xml %{_datadir}/mythtv/music_settings.xml %{_datadir}/mythtv/i18n/mythmusic_*.qm %if 0%{?mythnetvision} %files -n mythplugins-mythnetvision%{?pkgmanjor} %{_bindir}/mythfillnetvision %{_libdir}/mythtv/plugins/%{soname}netvision.so %{_datadir}/mythtv/mythnetvision/ %{_datadir}/mythtv/netvisionmenu.xml %{_datadir}/mythtv/i18n/mythnetvision_*.qm %endif %files -n mythplugins-mythnews%{?pkgmanjor} %{_libdir}/mythtv/plugins/%{soname}news.so %{_datadir}/mythtv/mythnews/ %{_datadir}/mythtv/i18n/mythnews_*.qm %files -n mythplugins-mythweather%{?pkgmanjor} %{_libdir}/mythtv/plugins/%{soname}weather.so %{_datadir}/mythtv/i18n/mythweather_*.qm %{_datadir}/mythtv/weather_settings.xml %{_datadir}/mythtv/mythweather/ %files -n mythplugins-mythzoneminder%{?pkgmanjor} %{_bindir}/mythzmserver %{_datadir}/mythtv/zonemindermenu.xml %{_datadir}/mythtv/i18n/mythzoneminder_*.qm %{_libdir}/mythtv/plugins/%{soname}zoneminder.so %exclude %{_datadir}/mythtv/fonts/README-TeX-Gyre-Chorus.txt %exclude %{_datadir}/mythtv/fonts/README-droid.txt %exclude %{_datadir}/mythtv/fonts/README-freefont-20120503.txt %exclude %{_datadir}/mythtv/fonts/README-purisa.txt %changelog
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.