%global version 3.32 %global commit 2983 %bcond_without curl # No HTTP support, remove dependency to libcurl # a Dektec SDK tarball is included in the source, but no sure about license implications %bcond_with dektec # (No) Dektec support, (remove) dependency to DTAPI %bcond_without editline # No interactive line editing, remove dependency to libedit %bcond_without pcsc # No smartcard support, remove dependency to pcsc-lite # RHEL 6/7 and CentOS have no librist %if 0%{?rhel} < 8 || 0%{?centos} %bcond_with rist %else %bcond_without rist # No RIST support (Reliable Internet Stream Transport), remove dependency to librist %endif # CentOS has no libsrt %if 0%{?centos} %bcond_with srt %else %bcond_without srt # No SRT support (Secure Reliable Transport), remove dependency to libsrt %endif # downloads sources at build time %bcond_with vatek # (No) Vatek support Name: tsduck Version: %{version} Release: 0.%{commit}%{dist}.2sunshine Summary: MPEG transport stream toolkit License: BSD URL: https://tsduck.io/ Source0: https://github.com/tsduck/%{name}/archive/v%{version}-%{commit}.tar.gz#/tsduck-%{version}-%{commit}.tar.gz Patch0: tsduck-3.32-2983-python3.patch BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libatomic # for build-dektec-names.py BuildRequires: python3 %{?with_curl:BuildRequires: libcurl-devel} %{?with_editline:BuildRequires: libedit-devel} %if %{with pcsc} Requires: pcsc-lite BuildRequires: pcsc-lite-devel %endif %{?with_rist:BuildRequires: librist-devel} %{?with_srt:BuildRequires: srt-devel} %{?with_vatek:BuildRequires: libusb1-devel} # only newer Fedora has the separate package, older and RHEL not %if 0%{?fedora} >= 29 BuildRequires: systemd-rpm-macros %else BuildRequires: systemd %endif %description TSDuck, the MPEG Transport Stream Toolkit, provides some simple utilities to process MPEG Transport Streams (TS), either as recorded files or live streams. %package devel Summary: Development files for %{name} %{?with_pcsc:Requires: pcsc-lite-devel} Requires: %{name} = %{version}-%{release} %description devel The %{name}-devel package contains the static library and header files for developing applications that use %{name}. %package python Summary: Python bindings for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch %description python The %{name}-python package contain the python bindings for using %{name}. %package doc Summary: Documentation for %{name} Requires: %{name} = %{version}-%{release} %description doc The %{name}-doc package contains the documentation for %{name}. # Disable debuginfo package, it's empty - for some reason, all binaries are already stripped %global debug_package %{nil} %global ts_build_opts NOTEST=true %{!?with_dektec:NODEKTEC=true} %{!?with_curl:NOCURL=true} %{!?with_editline:NOEDITLINE=true} %{!?with_pcsc:NOPCSC=true} %{!?with_rist:NORIST=true} %{!?with_srt:NOSRT=true} %{!?with_vatek:NOVATEK=true} SYSPREFIX=%{_prefix} ETCDIR=%{_sysconfdir} USRLIBDIR=%{_libdir} UDEVDIR=%{_udevrulesdir} %prep %setup -q -n %{name}-%{version}-%{commit} %patch0 -p1 -b .python3 %build %make_build %{ts_build_opts} %install %make_install install-devel %{ts_build_opts} SYSROOT=%{buildroot} # installed in spite of NODEKTEC, but referenced in the code # %{!?with_dektec:rm -fv %{buildroot}%{_datadir}/%{name}/%{name}.dektec.names} # installed into the wrong directory mv %{buildroot}%{_datadir}/pkgconfig %{buildroot}%{_libdir} %global tsduckplugindir %{_libdir}/%{name} %files # a Dektec SDK tarball is included in the source, but no sure about license implications %license LICENSE.txt %doc README.md CHANGELOG.txt CONTRIBUTORS.txt TODO.txt %{_bindir}/tsanalyze %{_bindir}/tsbitrate %{_bindir}/tscharset %{_bindir}/tscmp %{_bindir}/tsdate %{?with_dektec:%{_bindir}/tsdektec} %{_bindir}/tsdump %{_bindir}/tsecmg %{_bindir}/tseit %{_bindir}/tsfclean %{_bindir}/tsemmg %{_bindir}/tsfixcc %{_bindir}/tsftrunc %{_bindir}/tsgenecm %{_bindir}/tshides %{_bindir}/tslsdvb %{_bindir}/tsp %{_bindir}/tspacketize %{_bindir}/tspcap %{_bindir}/tspcontrol %{_bindir}/tspsi %{_bindir}/tsresync %{_bindir}/tsscan %{?with_pcsc:%{_bindir}/tssmartcard} %{_bindir}/tsstuff %{_bindir}/tsswitch %{_bindir}/tstabcomp %{_bindir}/tstabdump %{_bindir}/tstables %{_bindir}/tsterinfo %{?with_vatek:%{_bindir}/tsvatek} %{_bindir}/tsversion %{_bindir}/tsxml %{_libdir}/libtsduck.so %{tsduckplugindir}/tsplugin_aes.so %{tsduckplugindir}/tsplugin_analyze.so %{tsduckplugindir}/tsplugin_bat.so %{tsduckplugindir}/tsplugin_bitrate_monitor.so %{tsduckplugindir}/tsplugin_boostpid.so %{tsduckplugindir}/tsplugin_cat.so %{tsduckplugindir}/tsplugin_clear.so %{tsduckplugindir}/tsplugin_continuity.so %{tsduckplugindir}/tsplugin_count.so %{tsduckplugindir}/tsplugin_craft.so %{tsduckplugindir}/tsplugin_cutoff.so %{tsduckplugindir}/tsplugin_datainject.so %{tsduckplugindir}/tsplugin_decap.so %{tsduckplugindir}/tsplugin_descrambler.so %{tsduckplugindir}/tsplugin_duplicate.so %{tsduckplugindir}/tsplugin_dvb.so %{tsduckplugindir}/tsplugin_eit.so %{tsduckplugindir}/tsplugin_eitinject.so %{tsduckplugindir}/tsplugin_encap.so %{tsduckplugindir}/tsplugin_filter.so %{tsduckplugindir}/tsplugin_hides.so %{tsduckplugindir}/tsplugin_history.so %{tsduckplugindir}/tsplugin_inject.so %{tsduckplugindir}/tsplugin_limit.so %{tsduckplugindir}/tsplugin_merge.so %{tsduckplugindir}/tsplugin_mpeinject.so %{tsduckplugindir}/tsplugin_mpe.so %{tsduckplugindir}/tsplugin_mux.so %{tsduckplugindir}/tsplugin_nitscan.so %{tsduckplugindir}/tsplugin_nit.so %{tsduckplugindir}/tsplugin_pat.so %{tsduckplugindir}/tsplugin_pattern.so %{tsduckplugindir}/tsplugin_pcap.so %{tsduckplugindir}/tsplugin_pcradjust.so %{tsduckplugindir}/tsplugin_pcrbitrate.so %{tsduckplugindir}/tsplugin_pcrcopy.so %{tsduckplugindir}/tsplugin_pcredit.so %{tsduckplugindir}/tsplugin_pcrextract.so %{tsduckplugindir}/tsplugin_pcrverify.so %{tsduckplugindir}/tsplugin_pes.so %{tsduckplugindir}/tsplugin_pidshift.so %{tsduckplugindir}/tsplugin_play.so %{tsduckplugindir}/tsplugin_pmt.so %{tsduckplugindir}/tsplugin_psimerge.so %{tsduckplugindir}/tsplugin_reduce.so %{tsduckplugindir}/tsplugin_regulate.so %{tsduckplugindir}/tsplugin_remap.so %{tsduckplugindir}/tsplugin_rmorphan.so %{tsduckplugindir}/tsplugin_rmsplice.so %{tsduckplugindir}/tsplugin_scrambler.so %{tsduckplugindir}/tsplugin_sdt.so %{tsduckplugindir}/tsplugin_sections.so %{tsduckplugindir}/tsplugin_sifilter.so %{tsduckplugindir}/tsplugin_slice.so %{tsduckplugindir}/tsplugin_spliceinject.so %{tsduckplugindir}/tsplugin_splicemonitor.so %{tsduckplugindir}/tsplugin_stats.so %{tsduckplugindir}/tsplugin_stuffanalyze.so %{tsduckplugindir}/tsplugin_svremove.so %{tsduckplugindir}/tsplugin_svrename.so %{tsduckplugindir}/tsplugin_svresync.so %{tsduckplugindir}/tsplugin_t2mi.so %{tsduckplugindir}/tsplugin_timeref.so %{tsduckplugindir}/tsplugin_timeshift.so %{tsduckplugindir}/tsplugin_time.so %{tsduckplugindir}/tsplugin_trigger.so %{tsduckplugindir}/tsplugin_tsrename.so %{tsduckplugindir}/tsplugin_until.so %{tsduckplugindir}/tsplugin_zap.so %{_datadir}/%{name}/%{name}.channels.model.xml %{_datadir}/%{name}/%{name}.dektec.names %{_datadir}/%{name}/%{name}.dtv.names %{_datadir}/%{name}/%{name}.etuner.model.xml %{_datadir}/%{name}/%{name}.hfbands.model.xml %{_datadir}/%{name}/%{name}.hfbands.xml %{_datadir}/%{name}/%{name}.hides.names %{_datadir}/%{name}/%{name}.ip.names %{_datadir}/%{name}/%{name}.keytable.model.xml %{_datadir}/%{name}/%{name}.lnbs.model.xml %{_datadir}/%{name}/%{name}.lnbs.xml %{_datadir}/%{name}/%{name}.monitor.model.xml %{_datadir}/%{name}/%{name}.monitor.xml %{_datadir}/%{name}/%{name}.oui.names %{_datadir}/%{name}/%{name}.tables.model.xml %{_datadir}/%{name}/%{name}.time.model.xml %{_datadir}/%{name}/%{name}.time.xml %{_datadir}/bash-completion/completions/* %{_udevrulesdir}/80-tsduck.rules %{_sysconfdir}/security/console.perms.d/80-tsduck.perms %files python %{_datadir}/%{name}/python/ts.py %{_datadir}/%{name}/python/tsduck.py %files devel %{_bindir}/tsconfig %{_libdir}/libtsduck.a %{_includedir}/tsduck %{_libdir}/pkgconfig/%{name}.pc %license LICENSE.txt %files doc %doc doc/*.pdf %changelog * Tue Nov 08 2022 Moritz Barsnick 3.32-0.2983.2sunshine - add BR libatomic, as libatomic.so is included with gcc, but refers to libatomic.so.x.y - add BR python3, required for build-dektec-names.py, which is called even if NODEKTEC is set - add a patch to use call python3 if binary named python is not available - remove workarounds for content issues with tsduck.pc (fixed in 3.30) * Tue Nov 08 2022 Moritz Barsnick 3.32-0.2983.1sunshine - update to 3.32 - update %%files for tsvatek and allow disabling it - replace tsduck.names with tsduck.dtv.names * Thu Jun 30 2022 Moritz Barsnick 3.31-0.2761.1sunshine - update to 3.31 - make python subpackage noarch * Tue Dec 07 2021 Moritz Barsnick 3.29-0.2651.2sunshine - add support for building with srt and librist - rearrange build options, allow disabling each option separately (dektec still disabled by default) - fix build and content issues with tsduck.pc * Mon Dec 06 2021 Moritz Barsnick 3.29-0.2651.1sunshine - update to 3.29 - drop obsolete Group: tag - add BR: libedit-devel - update %%files for new plugins and tools and dropped plugins - drop more dektec artifacts * Sun Jun 27 2021 Moritz Barsnick 3.27-0.2438.1sunshine - update to 3.27 * Wed Apr 21 2021 Moritz Barsnick 3.26-0.2349.1sunshine - update to 3.26 - update %%files for new and removed plugins, new XML files, and restructured python files * Thu Feb 18 2021 Moritz Barsnick 3.25-0.2237.1sunshine - update to 3.25 - update %%files for new plugin, with new xml file, and new python files * Fri Jan 8 2021 Moritz Barsnick 3.24-0.2109.1sunshine - update to 3.24 - add python subpackage - update %%files for new binaries and plugins * Fri Sep 25 2020 Moritz Barsnick 3.23-0.1965.1sunshine - update to 3.23 - drop the libdir patch, a different solution is upstream - drop the no_dektec patch, use NODTAPI instead - adapt to new file locations and names - don't package the fork plugin, it isn't built for some reason * Tue Jun 2 2020 Moritz Barsnick 3.21-0.1819.1sunshine - update to 3.21 - rebase patches - align %%description with upstream (commit b745548) - use %%_udevrulesdir (and BR: systemd-rpm-macros) - update %%files for dropped obsoleted plugins, and with new xml files tsduck.lnbs.model.xml and tsduck.lnbs.xml * Mon Apr 6 2020 Moritz Barsnick 3.20-0.1689.2sunshine - fix error in %%files * Sun Mar 15 2020 Moritz Barsnick 3.20-0.1689.1sunshine - update to 3.20 * Wed Dec 4 2019 Moritz Barsnick 3.19-0.1520.1sunshine - explicitly override USRLIBDIR (and others), to overcome the restriction that only linux-x86_64 triggers mapping to /usr/lib64, which leads to failures on aarch64 (and would on ppc64, if it were supported) * Tue Dec 3 2019 Moritz Barsnick 3.19-0.1520.1sunshine - update to 3.19 - update %%files with new plugin "timeshift", and with new xml file tsduck.keytable.model.xml - replace tsduck.dvb.names with tsduck.names * Sun Aug 4 2019 Moritz Barsnick 3.18-0.1361.1sunshine - update to 3.18 - update %%files with new plugins * Fri Apr 26 2019 Moritz Barsnick 3.17-0.1189.1sunshine - update to 3.17 - rebase the libdir patch - drop gcc 9 incompatibility patch, it's upstream - update %%files with new xml files * Tue Jan 29 2019 Moritz Barsnick 3.16-1.1110.4sunshine - fix duplicate entry in %%files * Tue Jan 29 2019 Moritz Barsnick 3.16-1.1110.3sunshine - replace the previous patch for the gcc 9 incompatibility with a proper fix from upstream * Mon Jan 28 2019 Moritz Barsnick 3.16-1.1110.2sunshine - add a patch working around an incompatibility with F30's gcc 9 * Mon Jan 28 2019 Moritz Barsnick 3.16-1.1110.1sunshine - update to 3.16 - package new plugins hls and pcradjust * Fri Nov 23 2018 Moritz Barsnick 3.15-1.1008.2sunshine - name all binaries and libraries explicitly (helps to track additions) - add more files to %%doc * Mon Nov 5 2018 Moritz Barsnick 3.15-1.1008.1sunshine - update to 3.15 * Thu Sep 27 2018 Moritz Barsnick 3.14-1.894.2sunshine - move shared library and plugins to libdir * Thu Sep 27 2018 Moritz Barsnick 3.14-1.894.1sunshine - add URL * Tue Sep 25 2018 Moritz Barsnick 3.14-1.894.0sunshine - adapt for Fedora from upstream SPEC file (build/tsduck.spec) - add patch to skip download of Dektec SDK - package docs (but separately)