mythtv/mythtv.spec

420 lines
13 KiB
RPMSpec

%define MAJver %(echo %version | cut -d. -f1)
%define majver %(echo %version | cut -d. -f1-2)
Name: mythtv
Version: 32.0
Release: 2mamba
Summary: A digital video recorder (DVR) application
Group: Applications/Multimedia
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://www.mythtv.org/
Source0: https://github.com/MythTV/mythtv.git/v%{version}/mythtv-%{version}.tar.bz2
Source1: mythfrontend.desktop
Source2: mythfrontend.png
Source3: mythtv-setup.desktop
Source4: mythtv-setup.png
Source5: mythtv.desktop
Source6: mythtv.png
Source7: mythbackend.service
Source8: mythbackend.logrotate
Source9: mythbackend.sysconfig
Source10: mythweb.conf
Source11: mythtv-mysql.txt
Source12: mythtv-PACKAGE-LICENSING
Patch0: mythtv-0.26.0-libva-1.2.1.patch
Patch1: mythtv-31.0-gcc-11.patch
Patch2: mythtv-31.0-qt5-5.12.patch
Patch3: mythtv-32.0-glibc-2.35.patch
License: GPL, LGPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libQt5WebKit-devel
BuildRequires: libSDL2-devel
BuildRequires: libX11-devel
BuildRequires: libXext-devel
BuildRequires: libXrandr-devel
BuildRequires: libXv-devel
BuildRequires: libalsa-devel
BuildRequires: libaom-devel
BuildRequires: libass-devel
BuildRequires: libavc1394-devel
BuildRequires: libbluray-devel
BuildRequires: libbzip2-devel
BuildRequires: libdav1d-devel
BuildRequires: libdrm-devel
BuildRequires: libexpat-devel
BuildRequires: libfftw-devel
BuildRequires: libfreetype-devel
BuildRequires: libgcc
BuildRequires: libglvnd-devel
BuildRequires: libgnutls-devel
BuildRequires: libiec61883-devel
BuildRequires: libjack-devel
BuildRequires: liblame-devel
BuildRequires: liblzma-devel
BuildRequires: liblzo-devel
BuildRequires: libopenssl-devel
BuildRequires: libperl
BuildRequires: libpulseaudio-devel
BuildRequires: libpython3-devel
BuildRequires: libraw1394-devel
BuildRequires: libsamplerate-devel
BuildRequires: libsoundtouch-devel
BuildRequires: libstdc++6-devel
BuildRequires: libsystemd-devel
BuildRequires: libtag-devel
BuildRequires: libva-devel
BuildRequires: libvdpau-devel
BuildRequires: libwayland-devel
BuildRequires: libx264-devel
BuildRequires: libx265-devel
BuildRequires: libxcb-devel
BuildRequires: libxml2-devel
BuildRequires: libxvidcore-devel
BuildRequires: libz-devel
BuildRequires: libzip-devel
BuildRequires: perl-DBD-mysql
BuildRequires: perl-DBI
BuildRequires: perl-DateTime
BuildRequires: perl-HTML-Parser
BuildRequires: perl-HTML-Tree
BuildRequires: perl-HTTP-Message
BuildRequires: perl-IO-Socket-INET6
BuildRequires: perl-Magick
BuildRequires: perl-Net-UPnP
BuildRequires: perl-TimeDate
BuildRequires: perl-XML-Simple
BuildRequires: perl-XML-TreeBuilder
BuildRequires: perl-devel
BuildRequires: perl-libwww
BuildRequires: python3.7dist(mysqlclient)
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtscript-devel
## AUTOBUILDREQ-END
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
BuildRequires: nasm
BuildRequires: yasm-devel
BuildRequires: xproto-devel
Requires: libmythtv = %{?epoch:%epoch:}%{version}-%{release}
%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 -n libmythtv
Group: System/Libraries
Summary: Library providing mythtv support
%description -n libmythtv
MythTV provides a unified graphical interface for recording and viewing television programs.
This package contains common library code for MythTV and add-on modules (development).
%package -n libmythtv-devel
Group: Development/Libraries
Summary: Libraries and headers for %{name}
Requires: libmythtv = %{?epoch:%epoch:}%{version}-%{release}
%description -n libmythtv-devel
MythTV provides a unified graphical interface for recording and viewing television programs.
This package contains libraries and header files needed for development.
%package -n perl-MythTV
Group: Development/Libraries/Perl
Summary: Perl bindings for MythTV
Requires: perl
Requires: perl(DBD::mysql)
Requires: perl(Net::UPnP)
Requires: perl(Net::UPnP::ControlPoint)
%description -n perl-MythTV
MythTV provides a unified graphical interface for recording and viewing television programs.
This package provides a perl-based interface to interacting with MythTV.
%package -n python-MythTV
Group: Development/Libraries/Python
Summary: Python bindings for MythTV
Requires: python3.7dist(mysqlclient)
%description -n python-MythTV
MythTV provides a unified graphical interface for recording and viewing television programs.
This package provides a python-based interface to interacting with MythTV.
%package docs
Group: Documentation
Summary: Documentation for %{name}
%description docs
MythTV provides a unified graphical interface for recording and viewing television programs.
This package contains the documentation for %{name},
%debug_package
%prep
%setup -q
#-D -T
#:<< _EOF
%patch1 -p1
#%patch2 -p1
%patch3 -p1
rm -rf contrib/Win32 contrib/OSX
#chmod -x themes/default/htmls/*.html
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE3} .
cp -a %{SOURCE4} %{SOURCE5} %{SOURCE6} .
#cp -a %{SOURCE7} %{SOURCE8} %{SOURCE9}.
#cp -a %{SOURCE10} %{SOURCE12} PACKAGE-LICENSING
#sed -i -e 's#perl Makefile.PL#%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"#' bindings/perl/Makefile
#sed -i -e 's,VENDOR_XVMC_LIBS="-lXvMCNVIDIA",VENDOR_XVMC_LIBS="-lXvMCNVIDIA -lXv",' configure
%build
#:<< _EOF
cd mythtv
./configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--libdir-name=%{_lib} \
--mandir=%{_mandir} \
--extra-cflags="%{optflags} -fomit-frame-pointer -fno-devirtualize" \
--extra-cxxflags="%{optflags} -fomit-frame-pointer -fno-devirtualize" \
%ifarch %{ix86}
--cpu=i686 \
--tune=i686 \
%endif
--enable-mmx \
--qmake=%{_qt5_qmake} \
--enable-pthreads \
--enable-ffmpeg-pthreads \
--enable-joystick-menu \
--enable-audio-alsa \
--enable-audio-jack \
--enable-libfftw3 \
--enable-x11 \
--x11-path=%{_includedir} \
--enable-lirc \
--enable-firewire \
--enable-dvb \
--enable-libmp3lame \
--enable-libxvid \
--enable-vaapi \
--enable-vdpau \
--enable-sdl \
--enable-libx264 \
--enable-libx265 \
--compile-type=release \
--enable-debug \
--disable-distcc
# --enable-nonfree
# --enable-audio-oss \
# --enable-opengl-video \
# --enable-crystalhd \
# --enable-libvorbis \
# --enable-libtheora \
# --enable-libvpc \
%make
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
make INSTALL_ROOT=%{buildroot} install -C mythtv
ln -s mythtv-setup %{buildroot}%{_bindir}/mythtvsetup
mkdir -p %{buildroot}%{_localstatedir}/lib/mythtv
mkdir -p %{buildroot}%{_localstatedir}/cache/mythtv
mkdir -p %{buildroot}%{_localstatedir}/log/mythtv
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
mkdir -p %{buildroot}%{_sysconfdir}/mythtv
# mysql.txt and other config/init files
install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/mythtv/mysql.txt
echo "# to be filled in by mythtv-setup" > %{buildroot}%{_sysconfdir}/mythtv/config.xml
install -D -m0755 %{SOURCE7} %{buildroot}%{_unitdir}/mythbackend.service
#install -p -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/mythbackend
#install -p -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/logrotate.d/mythbackend
# Desktop entries
mkdir -p %{buildroot}%{_datadir}/pixmaps
mkdir -p %{buildroot}%{_datadir}/applications
for file in mythfrontend mythtv-setup mythtv ; do
install -pm 644 $file.png %{buildroot}%{_datadir}/pixmaps/$file.png
desktop-file-install --mode=644 --dir %{buildroot}%{_datadir}/applications \
--add-category AudioVideo $file.desktop
done
mkdir -p %{buildroot}%{_libdir}/mythtv/plugins
mkdir -p %{buildroot}%{_datadir}/mythtv/build/
install -pm 644 mythtv/settings.pro %{buildroot}%{_datadir}/mythtv/build/
#%ifarch x86_64
#mv %{buildroot}%{_prefix}/lib/libmythzmq.* %{buildroot}%{_libdir}
#mv %{buildroot}%{_prefix}/lib/pkgconfig %{buildroot}%{_libdir}
#%endif
rm -rf %{buildroot}%{perl_sitearch}/auto/MythTV/.packlist
rm -rf %{buildroot}%{_libdir}/libmyth*.*a
rm -rf %{buildroot}%{_libdir}/mythtv/filters/*.*a
#mv %{buildroot}%{_prefix}/MythTV/ttvdb %{buildroot}%{_datadir}/mythtv/
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%pre
%{_sbindir}/useradd -c "mythtvbackend User" \
-s /sbin/nologin -r -d %{_localstatedir}/lib/mythtv -G video mythtv 2> /dev/null || :
%post -n libmythtv -p /sbin/ldconfig
%postun -n libmythtv -p /sbin/ldconfig
%files
%defattr(-,root,root)
%dir %{_sysconfdir}/mythtv
%config(noreplace) %{_sysconfdir}/mythtv/mysql.txt
%config(noreplace) %{_sysconfdir}/mythtv/config.xml
%attr(-,mythtv,mythtv) %dir %{_localstatedir}/lib/mythtv
%attr(-,mythtv,mythtv) %dir %{_localstatedir}/cache/mythtv
%attr(-,mythtv,mythtv) %dir %{_localstatedir}/log/mythtv
%{_bindir}/myth*
%{_unitdir}/mythbackend.service
%dir %{_libdir}/mythtv
#%dir %{_libdir}/mythtv/filters
#%{_libdir}/mythtv/filters/*.so
%dir %{_libdir}/mythtv/plugins
%dir %{_datadir}/mythtv
%{_datadir}/mythtv/*.xml
%{_datadir}/mythtv/*.pl
%{_datadir}/mythtv/backend-config
%{_datadir}/mythtv/bindings
%{_datadir}/mythtv/externrecorder
%{_datadir}/mythtv/fonts
%{_datadir}/mythtv/hardwareprofile
%{_datadir}/mythtv/html
%{_datadir}/mythtv/i18n
%{_datadir}/mythtv/internetcontent
%{_datadir}/mythtv/locales
%{_datadir}/mythtv/metadata
%{_datadir}/mythtv/themes
#%{_datadir}/mythtv/ttvdb
%{_datadir}/pixmaps/*.png
%{_datadir}/applications/*.desktop
%files -n libmythtv
%defattr(-,root,root)
%{_libdir}/libmyth*.so.*
%doc mythtv/AUTHORS LICENSE
%files -n libmythtv-devel
%defattr(-,root,root)
%dir %{_includedir}/mythtv
%{_includedir}/mythtv/*.h
%{_includedir}/mythtv/mythconfig.mak
%{_includedir}/mythtv/dvdnav
%{_includedir}/mythtv/dvdread
%{_includedir}/mythtv/exiv2
%{_includedir}/mythtv/goom
%{_includedir}/mythtv/libavcodec
%{_includedir}/mythtv/libavdevice
%{_includedir}/mythtv/libavfilter
%{_includedir}/mythtv/libavformat
%{_includedir}/mythtv/libavutil
%{_includedir}/mythtv/libmyth
%{_includedir}/mythtv/libmythbase
%{_includedir}/mythtv/libmythservicecontracts
%{_includedir}/mythtv/libmythui
%{_includedir}/mythtv/libpostproc
%dir %{_includedir}/mythtv/libswresample
%{_includedir}/mythtv/libswresample/*.h
%{_includedir}/mythtv/libswscale
%{_includedir}/mythtv/metadata
%{_includedir}/mythtv/mpeg2dec
%{_includedir}/mythtv/upnp
%{_libdir}/libmyth*.so
%{_datadir}/mythtv/build
%files -n perl-MythTV
%defattr(-,root,root)
%dir %{perl_sitelib}/IO
%dir %{perl_sitelib}/IO/Socket
%dir %{perl_sitelib}/IO/Socket/INET
%{perl_sitelib}/IO/Socket/INET/MythTV.pm
%{perl_sitelib}/MythTV.pm
%dir %{perl_sitelib}/MythTV
%{perl_sitelib}/MythTV/*.pm
%dir %{perl_sitearch}/auto/MythTV
%files -n python-MythTV
%defattr(-,root,root)
%{_bindir}/mythpython
%{_bindir}/mythwikiscripts
%{python3_sitelib}/MythTV-*.egg-info
%dir %{python3_sitelib}/MythTV
%{python3_sitelib}/MythTV/*
#%files docs
#%defattr(-,root,root)
#%doc mythtv/FAQ PACKAGE-LICENSING README* UPGRADING VERSION keys.txt
##%doc contrib database
%changelog
* Sat May 07 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 32.0-2mamba
- python-MythTV: fix requirement for recent python-mysqlclient-py3
* Fri Mar 04 2022 Automatic Build System <autodist@mambasoft.it> 32.0-1mamba
- automatic version update by autodist
* Mon Nov 29 2021 Automatic Build System <autodist@mambasoft.it> 31.0-1mamba
- automatic version update by autodist
* Wed Apr 20 2016 Automatic Build System <autodist@mambasoft.it> 0.28-1mamba
- automatic version update by autodist
* Tue Feb 02 2016 Automatic Build System <autodist@mambasoft.it> 0.27.6-1mamba
- automatic version update by autodist
* Wed Jul 01 2015 Automatic Build System <autodist@mambasoft.it> 0.27.5-1mamba
- automatic version update by autodist
* Sun May 17 2015 Silvan Calarco <silvan.calarco@mambasoft.it> 0.27-1mamba
- update to 0.27
* Tue Aug 20 2013 Automatic Build System <autodist@mambasoft.it> 0.26.1-1mamba
- automatic version update by autodist
* Wed Aug 07 2013 Automatic Build System <autodist@mambasoft.it> 0.26.0-1mamba
- automatic version update by autodist
* Tue Jul 17 2012 Automatic Build System <autodist@mambasoft.it> 0.25.2-1mamba
- automatic version update by autodist
* Tue Jun 05 2012 Automatic Build System <autodist@mambasoft.it> 0.25.1-1mamba
- automatic version update by autodist
* Sun Apr 15 2012 Automatic Build System <autodist@mambasoft.it> 0.25-1mamba
- automatic version update by autodist
* Wed Jan 25 2012 Automatic Build System <autodist@mambasoft.it> 0.24.2-1mamba
- automatic version update by autodist
* Fri Jan 13 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 0.24-2mamba
- rebuilt in devel
* Mon Mar 07 2011 gil <puntogil@libero.it> 0.24-1mamba
- package created by autospec