Petr Šabata db49b8
%global _hardened_build 1
7a40ed
%global gitfullver 6bac465e9528ec5d427869f97ca26c28db297518
63b4e9
%global gitver %(c=%{gitfullver}; echo ${c:0:6})
7a40ed
%global gitdate 20221207
63b4e9
%global testsuite_ver f13b96
63b4e9
%global clknetsim_ver fc45d7
Petr Šabata db49b8
Petr Šabata db49b8
Name:		linuxptp
63b4e9
Version:	3.1.1^%{gitdate}git%{gitver}
a1dcd3
Release:	1.2%{?dist}
Petr Šabata db49b8
Summary:	PTP implementation for Linux
Petr Šabata db49b8
Petr Šabata db49b8
License:	GPLv2+
Petr Šabata db49b8
URL:		http://linuxptp.sourceforge.net/
Petr Šabata db49b8
63b4e9
Source0:	https://github.com/richardcochran/%{name}/archive/%{gitfullver}/%{name}-%{gitfullver}.tar.gz
Petr Šabata db49b8
Source1:	phc2sys.service
Petr Šabata db49b8
Source2:	ptp4l.service
Petr Šabata db49b8
Source3:	timemaster.service
Petr Šabata db49b8
Source4:	timemaster.conf
DistroBaker 81d7dc
Source5:	ptp4l.conf
Petr Šabata db49b8
# external test suite
Petr Šabata db49b8
Source10:	https://github.com/mlichvar/linuxptp-testsuite/archive/%{testsuite_ver}/linuxptp-testsuite-%{testsuite_ver}.tar.gz
Petr Šabata db49b8
# simulator for test suite
Petr Šabata db49b8
Source11:	https://github.com/mlichvar/clknetsim/archive/%{clknetsim_ver}/clknetsim-%{clknetsim_ver}.tar.gz
Petr Šabata db49b8
Miroslav Lichvar 967c8f
# limit unicast message rate per address and grant duration
Miroslav Lichvar 967c8f
Patch4:		linuxptp-ucastrate.patch
63b4e9
63b4e9
# Hyperscale patches
63b4e9
%if 0%{?rhel} >= 9
63b4e9
# Add testptp
63b4e9
# Gated out of el8 as it fails to build there for now
63b4e9
Patch200:       linuxptp_testptp.patch
63b4e9
%endif
63b4e9
# Add logging of huge offsets
63b4e9
Patch201:       huge_offset_logging.patch
63b4e9
# unicast: local priority for PTPv2 unicast GM
63b4e9
# https://sourceforge.net/p/linuxptp/mailman/linuxptp-devel/thread/20221111155346.3069292-1-vadfed%40meta.com/
63b4e9
Patch202:       06-local-priority.patch
63b4e9
# Add spikes filter
63b4e9
Patch203:       07-filter-spikes.patch
63b4e9
# Filter out updated timers
63b4e9
Patch204:       08-filter-timers.patch
7a40ed
# unicast client: do not fail on absence of TX timestamp
7a40ed
Patch206:       tx-timestamp-fail.patch
7a40ed
# filter: treat negative path_delay as a spike
7a40ed
Patch207:       path-delay-spike.patch
a1dcd3
# unicast_client: further improve CANCEL logic
a1dcd3
Patch208:       unicast-cancel.patch
a1dcd3
# port: start sync rx timer on grant
a1dcd3
Patch209:       set-sync-rx-timer.patch
DistroBaker 81d7dc
DistroBaker 81d7dc
BuildRequires:	gcc gcc-c++ make systemd
Petr Šabata db49b8
Petr Šabata db49b8
%{?systemd_requires}
Petr Šabata db49b8
Petr Šabata db49b8
%description
Petr Šabata db49b8
This software is an implementation of the Precision Time Protocol (PTP)
Petr Šabata db49b8
according to IEEE standard 1588 for Linux. The dual design goals are to provide
Petr Šabata db49b8
a robust implementation of the standard and to use the most relevant and modern
Petr Šabata db49b8
Application Programming Interfaces (API) offered by the Linux kernel.
Petr Šabata db49b8
Supporting legacy APIs and other platforms is not a goal.
Petr Šabata db49b8
Petr Šabata db49b8
%prep
Petr Šabata db49b8
%setup -q -a 10 -a 11 -n %{name}-%{!?gitfullver:%{version}}%{?gitfullver}
Petr Šabata db49b8
mv linuxptp-testsuite-%{testsuite_ver}* testsuite
Petr Šabata db49b8
mv clknetsim-%{clknetsim_ver}* testsuite/clknetsim
63b4e9
%autopatch -p1
Petr Šabata db49b8
Petr Šabata db49b8
%build
DistroBaker e3bd48
%{make_build} \
Petr Šabata db49b8
	EXTRA_CFLAGS="$RPM_OPT_FLAGS" \
Petr Šabata db49b8
	EXTRA_LDFLAGS="$RPM_LD_FLAGS"
Petr Šabata db49b8
Petr Šabata db49b8
%install
Petr Šabata db49b8
%makeinstall
Petr Šabata db49b8
Petr Šabata db49b8
mkdir -p $RPM_BUILD_ROOT{%{_sysconfdir}/sysconfig,%{_unitdir},%{_mandir}/man5}
Petr Šabata db49b8
install -m 644 -p %{SOURCE1} %{SOURCE2} %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}
DistroBaker 81d7dc
install -m 644 -p %{SOURCE4} %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}
Petr Šabata db49b8
DistroBaker 81d7dc
echo 'OPTIONS="-f /etc/ptp4l.conf"' > \
Petr Šabata db49b8
	$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ptp4l
Petr Šabata db49b8
echo 'OPTIONS="-a -r"' > $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/phc2sys
Petr Šabata db49b8
Petr Šabata db49b8
echo '.so man8/ptp4l.8' > $RPM_BUILD_ROOT%{_mandir}/man5/ptp4l.conf.5
Petr Šabata db49b8
echo '.so man8/timemaster.8' > $RPM_BUILD_ROOT%{_mandir}/man5/timemaster.conf.5
Petr Šabata db49b8
Miroslav Lichvar 0c71bd
# Remove patch backup files and non-linuxptp configuration
Miroslav Lichvar 0c71bd
find configs -type f ! -name '*.cfg' -delete
Miroslav Lichvar a4f692
Petr Šabata db49b8
%check
Petr Šabata db49b8
cd testsuite
63b4e9
# rm failing tests that require PHC device
63b4e9
rm -f 12-phc2sys 17-piservo 21-linregservo
63b4e9
# not sure why these are failing, but disable them for now
63b4e9
rm -f 16-largewander 19-externalstep 31-leapsecond
63b4e9
%ifarch aarch64
63b4e9
rm -f 10-largeslew
63b4e9
%endif
Petr Šabata db49b8
# set random seed to get deterministic results
Petr Šabata db49b8
export CLKNETSIM_RANDOM_SEED=26743
DistroBaker e3bd48
%{make_build} -C clknetsim
7a40ed
# Ignore test failures for the time being as they're far too flaky
7a40ed
PATH=..:$PATH ./run || true
Petr Šabata db49b8
Petr Šabata db49b8
%post
Petr Šabata db49b8
%systemd_post phc2sys.service ptp4l.service timemaster.service
Petr Šabata db49b8
Petr Šabata db49b8
%preun
Petr Šabata db49b8
%systemd_preun phc2sys.service ptp4l.service timemaster.service
Petr Šabata db49b8
Petr Šabata db49b8
%postun
Petr Šabata db49b8
%systemd_postun_with_restart phc2sys.service ptp4l.service timemaster.service
Petr Šabata db49b8
Petr Šabata db49b8
%files
Petr Šabata db49b8
%doc COPYING README.org configs
Petr Šabata db49b8
%config(noreplace) %{_sysconfdir}/ptp4l.conf
Petr Šabata db49b8
%config(noreplace) %{_sysconfdir}/sysconfig/phc2sys
Petr Šabata db49b8
%config(noreplace) %{_sysconfdir}/sysconfig/ptp4l
Petr Šabata db49b8
%config(noreplace) %{_sysconfdir}/timemaster.conf
Petr Šabata db49b8
%{_unitdir}/phc2sys.service
Petr Šabata db49b8
%{_unitdir}/ptp4l.service
Petr Šabata db49b8
%{_unitdir}/timemaster.service
Petr Šabata db49b8
%{_sbindir}/hwstamp_ctl
Petr Šabata db49b8
%{_sbindir}/nsm
Petr Šabata db49b8
%{_sbindir}/phc2sys
Petr Šabata db49b8
%{_sbindir}/phc_ctl
Petr Šabata db49b8
%{_sbindir}/pmc
Petr Šabata db49b8
%{_sbindir}/ptp4l
Petr Šabata db49b8
%{_sbindir}/timemaster
Petr Šabata db49b8
%{_sbindir}/ts2phc
63b4e9
%if 0%{?rhel} >= 9
63b4e9
%{_sbindir}/testptp
63b4e9
%endif
Petr Šabata db49b8
%{_mandir}/man5/*.5*
Petr Šabata db49b8
%{_mandir}/man8/*.8*
Petr Šabata db49b8
Petr Šabata db49b8
%changelog
a1dcd3
* Fri Jan 13 2023 Davide Cavalca <dcavalca@centosproject.org> - 3.1.1^20221207git6bac46-1.2
a1dcd3
- Backport two more bugfix patches
a1dcd3
7a40ed
* Thu Jan 12 2023 Davide Cavalca <dcavalca@centosproject.org> - 3.1.1^20221207git6bac46-1.1
7a40ed
- Update to the latest git snapshot and drop merged patches
7a40ed
- Backport two more bugfix patches
7a40ed
- Temporarily ignore test failures
7a40ed
63b4e9
* Wed Nov 16 2022 Davide Cavalca <dcavalca@centosproject.org> - 3.1.1^20220726git6c42e5-1.1
63b4e9
- Hyperscale build
63b4e9
- Update to git snapshot and drop merged patches
63b4e9
- Backport FB patches pending upstreaming
63b4e9
- Disable broken tests
63b4e9
Miroslav Lichvar d4d229
* Thu Jul 28 2022 Miroslav Lichvar <mlichvar@redhat.com> 3.1.1-5
Miroslav Lichvar d4d229
- disable PHC switch with vclocks (#2066452)
Miroslav Lichvar d4d229
Miroslav Lichvar 30b597
* Thu Jun 30 2022 Miroslav Lichvar <mlichvar@redhat.com> 3.1.1-4
Miroslav Lichvar 30b597
- handle PHC read failing with EBUSY in phc2sys (#2102568)
Miroslav Lichvar 30b597
Miroslav Lichvar 6d626b
* Thu Jun 09 2022 Miroslav Lichvar <mlichvar@redhat.com> 3.1.1-3
Miroslav Lichvar 6d626b
- add support for virtual clocks (#2067310)
Miroslav Lichvar 6d626b
- make sanity clock check more reliable (#2079893)
Miroslav Lichvar 6d626b
Mohan Boddu e680ae
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.1.1-2
Mohan Boddu e680ae
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Mohan Boddu e680ae
  Related: rhbz#1991688
Mohan Boddu e680ae
Miroslav Lichvar 1831d7
* Mon Aug 02 2021 Miroslav Lichvar <mlichvar@redhat.com> 3.1.1-1
Miroslav Lichvar 1831d7
- update to 3.1.1 (#1979954 CVE-2021-3570 CVE-2021-3571)
Miroslav Lichvar 1831d7
- add read-only UDS port
Miroslav Lichvar 1831d7
- add option to set clockClass threshold
Miroslav Lichvar 1831d7
- don't repeat some log messages in multi-port configuration
Miroslav Lichvar 1831d7
- increase default TX timestamp timeout to 10 ms
Miroslav Lichvar 1831d7
- limit unicast message rate per address and grant duration
Miroslav Lichvar 1831d7
Mohan Boddu c0e6e7
* Tue Jun 22 2021 Mohan Boddu <mboddu@redhat.com> - 3.1-5
Mohan Boddu c0e6e7
- Rebuilt for RHEL 9 BETA for openssl 3.0
Mohan Boddu c0e6e7
  Related: rhbz#1971065
Mohan Boddu c0e6e7
Mohan Boddu db8dd9
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.1-4
Mohan Boddu db8dd9
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
Mohan Boddu db8dd9
DistroBaker 81d7dc
* Thu Feb 25 2021 Miroslav Lichvar <mlichvar@redhat.com> 3.1-3
DistroBaker 81d7dc
- fix handling of zero-length messages
DistroBaker 81d7dc
- minimize default configuration
DistroBaker 81d7dc
- remove obsolete build requirement
DistroBaker 81d7dc
DistroBaker e3bd48
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.1-2
DistroBaker e3bd48
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
DistroBaker e3bd48
Petr Šabata db49b8
* Tue Sep 29 2020 Miroslav Lichvar <mlichvar@redhat.com> 3.1-1
Petr Šabata db49b8
- update to 3.1
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Jul 27 2020 Miroslav Lichvar <mlichvar@redhat.com> 3.0-1
Petr Šabata db49b8
- update to 3.0
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Feb 03 2020 Miroslav Lichvar <mlichvar@redhat.com> 2.0-7.20191225gite05809
Petr Šabata db49b8
- update to 20191225gite05809
Petr Šabata db49b8
- fix testing with new glibc
Petr Šabata db49b8
Petr Šabata db49b8
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-6.20190912git48e605
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Wed Sep 25 2019 Miroslav Lichvar <mlichvar@redhat.com> 2.0-5.20190912git48e605
Petr Šabata db49b8
- update to 20190912git48e605
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-4
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-3
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Tue Nov 13 2018 Miroslav Lichvar <mlichvar@redhat.com> 2.0-2
Petr Šabata db49b8
- start ptp4l, timemaster and phc2sys after network-online target
Petr Šabata db49b8
- fix building with new kernel headers
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Aug 13 2018 Miroslav Lichvar <mlichvar@redhat.com> 2.0-1
Petr Šabata db49b8
- update to 2.0
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Aug 09 2018 Miroslav Lichvar <mlichvar@redhat.com> 2.0-0.1.20180805gita27407
Petr Šabata db49b8
- update to 20180805gita27407
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Jul 16 2018 Miroslav Lichvar <mlichvar@redhat.com> 1.9.2-3
Petr Šabata db49b8
- add gcc and gcc-c++ to build requirements
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.2-2
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Apr 09 2018 Miroslav Lichvar <mlichvar@redhat.com> 1.9.2-1
Petr Šabata db49b8
- update to 1.9.2
Petr Šabata db49b8
Petr Šabata db49b8
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-7.20180101git303b08
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Tue Jan 30 2018 Miroslav Lichvar <mlichvar@redhat.com> 1.8-6.20180101git303b08
Petr Šabata db49b8
- use macro for systemd scriptlet dependencies
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Jan 11 2018 Miroslav Lichvar <mlichvar@redhat.com> 1.8-5.20180101git303b08
Petr Šabata db49b8
- update to 20180101git303b08
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-4
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-3
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8-2
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Nov 07 2016 Miroslav Lichvar <mlichvar@redhat.com> 1.8-1
Petr Šabata db49b8
- update to 1.8
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Jul 22 2016 Miroslav Lichvar <mlichvar@redhat.com> 1.7-1
Petr Šabata db49b8
- update to 1.7
Petr Šabata db49b8
- add delay option to default timemaster.conf
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-2
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Tue Sep 22 2015 Miroslav Lichvar <mlichvar@redhat.com> 1.6-1
Petr Šabata db49b8
- update to 1.6
Petr Šabata db49b8
- set random seed in testing to get deterministic results
Petr Šabata db49b8
- remove trailing whitespace in default timemaster.conf
Petr Šabata db49b8
Petr Šabata db49b8
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5-2
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Jan 05 2015 Miroslav Lichvar <mlichvar@redhat.com> 1.5-1
Petr Šabata db49b8
- update to 1.5
Petr Šabata db49b8
Petr Šabata db49b8
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4-3
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4-2
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Feb 21 2014 Miroslav Lichvar <mlichvar@redhat.com> 1.4-1
Petr Šabata db49b8
- update to 1.4
Petr Šabata db49b8
- replace hardening build flags with _hardened_build
Petr Šabata db49b8
- include test suite
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Aug 02 2013 Miroslav Lichvar <mlichvar@redhat.com> 1.3-1
Petr Šabata db49b8
- update to 1.3
Petr Šabata db49b8
Petr Šabata db49b8
* Tue Jul 30 2013 Miroslav Lichvar <mlichvar@redhat.com> 1.2-3.20130730git7789f0
Petr Šabata db49b8
- update to 20130730git7789f0
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Jul 19 2013 Miroslav Lichvar <mlichvar@redhat.com> 1.2-2.20130719git46db40
Petr Šabata db49b8
- update to 20130719git46db40
Petr Šabata db49b8
- drop old systemd scriptlets
Petr Šabata db49b8
- add man page link for ptp4l.conf
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Apr 22 2013 Miroslav Lichvar <mlichvar@redhat.com> 1.2-1
Petr Šabata db49b8
- update to 1.2
Petr Šabata db49b8
Petr Šabata db49b8
* Mon Feb 18 2013 Miroslav Lichvar <mlichvar@redhat.com> 1.1-1
Petr Šabata db49b8
- update to 1.1
Petr Šabata db49b8
- log phc2sys output
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-2
Petr Šabata db49b8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Dec 13 2012 Miroslav Lichvar <mlichvar@redhat.com> 1.0-1
Petr Šabata db49b8
- update to 1.0
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Nov 09 2012 Miroslav Lichvar <mlichvar@redhat.com> 0-0.3.20121109git4e8107
Petr Šabata db49b8
- update to 20121109git4e8107
Petr Šabata db49b8
- install unchanged default.cfg as ptp4l.conf
Petr Šabata db49b8
- drop conflicts from phc2sys service
Petr Šabata db49b8
Petr Šabata db49b8
* Fri Sep 21 2012 Miroslav Lichvar <mlichvar@redhat.com> 0-0.2.20120920git6ce135
Petr Šabata db49b8
- fix issues found in package review (#859193)
Petr Šabata db49b8
Petr Šabata db49b8
* Thu Sep 20 2012 Miroslav Lichvar <mlichvar@redhat.com> 0-0.1.20120920git6ce135
Petr Šabata db49b8
- initial release