%global version 3.39 %global commit 3956 %bcond_without curl # Adds a flag to allow removing HTTP support, removing dependency on libcurl # a Dektec SDK tarball is included in the source, but not sure about license implications %bcond_with dektec # Adds to flag to add Dektec support, adding dependency on DTAPI %bcond_without editline # Adds a flag to allow removing interactive line editing, removing dependency on libedit %bcond_without pcsc # Adds a flag to allow removing smartcard support, removing dependency to pcsc-lite # RHEL 6/7 have no librist or srt %if (0%{?rhel} && 0%{?rhel} < 8) %bcond_with rist # Adds to flag to add RIST support (Reliable Internet Stream Transport), adding dependency on librist %bcond_with srt # Adds to flag to add SRT support (Secure Reliable Transport), adding dependency on srt %else %bcond_without rist # Adds a flag to allow removing RIST support (Reliable Internet Stream Transport), removing dependency on librist %bcond_without srt # Adds a flag to allow removing SRT support (Secure Reliable Transport), removing dependency on libsrt %endif # downloads sources at build time %bcond_with vatek # (No) Vatek support Name: tsduck Version: %{version} Release: 0.%{commit}%{?dist}.1sunshine 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: 0001-Add-support-for-32bit-S390.patch BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libatomic BuildRequires: openssl-devel BuildRequires: rubygem-asciidoctor rubygem-asciidoctor-pdf rubygem-rouge # for build-dektec-names.py BuildRequires: python3 # for packaging python bindings BuildRequires: python3-rpm-macros %{?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 -n python3-%{name} Summary: Python bindings for %{name} Requires: %{name} = %{version}-%{release} Requires: %{_libdir}/libtsduck.so BuildArch: noarch %description -n python3-%{name} The python3-%{name} 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 SYSPREFIX=%{_prefix} ETCDIR=%{_sysconfdir} USRLIBDIR=%{_libdir} UDEVDIR=%{_udevrulesdir} %{!?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} %prep %setup -q -n %{name}-%{version}-%{commit} %patch -P 0 -p1 -b .s390 %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 # debug F39+ python3_sitearch mv %{buildroot}%{_datadir}/pkgconfig %{buildroot}%{_libdir} mkdir -p %{buildroot}%{python3_sitearch} mv %{buildroot}%{_datadir}/%{name}/python/* %{buildroot}%{python3_sitearch}/ %global tsduckplugindir %{_libdir}/%{name} %files # a Dektec SDK tarball is included in the source, but not 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}/tscrc32 %{_bindir}/tsdate %{?with_dektec:%{_bindir}/tsdektec} %{_bindir}/tsdump %{_bindir}/tsecmg %{_bindir}/tseit %{_bindir}/tsfclean %{_bindir}/tsfuzz %{_bindir}/tsemmg %{_bindir}/tsfixcc %{_bindir}/tsftrunc %{_bindir}/tsgenecm %{_bindir}/tshides %{_bindir}/tslatencymonitor %{_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 %{_bindir}/tstestecmg %{?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_dump.so %{tsduckplugindir}/tsplugin_duplicate.so %{tsduckplugindir}/tsplugin_dvb.so %{tsduckplugindir}/tsplugin_eit.so %{tsduckplugindir}/tsplugin_eitinject.so %{tsduckplugindir}/tsplugin_encap.so %{tsduckplugindir}/tsplugin_feed.so %{tsduckplugindir}/tsplugin_filter.so %{tsduckplugindir}/tsplugin_fuzz.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 -n python3-%{name} %{python3_sitearch}/ts.py %{python3_sitearch}/tsduck.py %{python3_sitearch}/__pycache__/ts.*.pyc %{python3_sitearch}/__pycache__/tsduck.*.pyc %files devel %{_bindir}/tsconfig %{_libdir}/libtsduck.a %{_includedir}/tsduck %{_libdir}/pkgconfig/%{name}.pc %license LICENSE.txt %files doc %doc bin/doc/%{name}.pdf %changelog * Sat Nov 16 2024 Moritz Barsnick 3.39-0.3956.1sunshine - update to 3.39 * Sun Aug 25 2024 Moritz Barsnick 3.38-0.3822.1sunshine - update to 3.38 - drop the OpenSSL patches - add BR: rubygem-asciidoctor rubygem-asciidoctor-pdf rubygem-rouge for building docs - install PDF from new doc location * Sat Mar 30 2024 Moritz Barsnick 3.37-0.3670.1sunshine - update to 3.37 - reduce the S390 patch to 32 bit only, upstream has gained support for S390X. - remove patch for g++-8.5.0, it's upstream - remove patch for librist deprecations, it's upstream - add two upstream patches to support OpenSSL < 3 and to fix OpenSSL >= 3, rebased to 3.37 * Fri Nov 10 2023 Moritz Barsnick 3.35-0.3258.6sunshine - add an upstream patch for deprecations in newer librist * Fri Nov 10 2023 Moritz Barsnick 3.35-0.3258.5sunshine - rebuild for new dependencies - fix %%dist tag * Thu Aug 17 2023 Moritz Barsnick 3.35-0.3258.4sunshine - add a patch from upstream for fixing failure to build with g++-8.5.0 * Wed Aug 16 2023 Moritz Barsnick 3.35-0.3258.3sunshine - add BR: python3-rpm-macros for %%python3_sitearch * Wed Aug 16 2023 Moritz Barsnick 3.35-0.3258.2sunshine - srt is now provided for CentOS, but not for RHEL 6/7 * Thu Aug 10 2023 Moritz Barsnick 3.35-0.3258.1sunshine - update to 3.35 - use %%patch -P syntax * Tue May 02 2023 Moritz Barsnick 3.34-0.3197.1sunshine - update to 3.34 - update %%files for new binary * Mon Jan 23 2023 Moritz Barsnick 3.33-0.3139.3sunshine - librist is now provided for CentOS, but still not for RHEL * Mon Jan 23 2023 Moritz Barsnick 3.33-0.3139.2sunshine - add a patch for detecting S390/S390X, without MemoryBarrier support * Mon Jan 23 2023 Moritz Barsnick 3.33-0.3139.1sunshine - update to 3.33 - drop the python3 patch, it's upstream - fix incorrect RHEL version detection for librist * Wed Nov 09 2022 Moritz Barsnick 3.32-0.2983.4sunshine - provide the %%python3_sitearch macro, usually in the python3-rpm-macros package, but not sure whether all distributions have this package * Wed Nov 09 2022 Moritz Barsnick 3.32-0.2983.3sunshine - the python subpackage is now explicitly python3, and has changed naming scheme to Fedora standard - move files in python subpackage to proper location - add an explicit Requires: on libtsduck.so for the python package * 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)