# Generated by go2rpm 1.6.0
%bcond_without check

# https://github.com/facebook/time
%global goipath         github.com/facebook/time
%global commit          8413c323c787e90068357951bd03baa471c5ad4c

Version:        0
%gometa

%global common_description %{expand:
Meta's Time libraries.}

%global golicenses      LICENSE
%global godocs          CODE_OF_CONDUCT.md CONTRIBUTING.md README.md

Name:           %{goname}
Release:        0.11%{?dist}
Summary:        Meta's Time libraries

# Upstream license specification: Apache-2.0
License:        ASL 2.0
URL:            %{gourl}
Source0:        %{gosource}

%description
%{common_description}

%package -n calnex
Summary:        CLI for a Calnex Sentinel device

%description -n calnex
- calnex CLI supports several basic commands such as:
- Firmware upgrade
- Configuration of the device
- Measurement data export
- Device reboot
- Device clear
- Device problem report export

%package -n ntpcheck
Summary:        CLI to perform various NTP-related tasks

%description -n ntpcheck
ntpcheck is a CLI to perform various NTP-related tasks:
- replacement for ntptime and ntpdate commands
- human-readable diagnostics for typical problems with NTP based on data
  from chrony/ntpd
- server stats and peer stats taken from chrony/ntpd with output in JSON
 
%package -n ntpresponder
Summary: Simple NTP server implementation with kernel timestamps support
Provides: responder = %{version}-%{release}
Obsoletes: responder < 0-0.6

%description -n ntpresponder
ntpresponder is a simple NTP server implementation with kernel timestamps
support, designed for scale and security.

%package -n     pshark
Summary:        Simple tool to print PTP packets from pcap/pcapng captures

%description -n pshark
pshark is a simple tool to read pcap/pcapng captures and parse and print PTP
packets from there. Allows to test our protocol parser implementation against
arbitrary tcpdump capture. Also the code shows integration with GoPacket
library.

%package -n     ptpcheck
Summary:        CLI to perform various PTP-related tasks

%description -n ptpcheck
CLI and library to perform various PTP-related tasks, including:
- reporting stats taken from local PTP instance in JSON format
- running basic unicast client to showcase or debug PTP protocol internals
- running human-readable diagnostics for basic problems with PTP based on data
  from local PTP client (ptp4l)
- comparing system time with PHC time
- mapping PHC devices to network cards and vice versa

%package -n     ptp4u
Summary:        Scalable unicast PTP server

%description -n ptp4u
ptp4u is a scalable unicast PTP server.

%package -n     ziffy
Summary:        CLI tool to triangulate switches that are not operating correctly as PTP Transparent Clocks.

%description -n ziffy
CLI tool to triangulate datacenter switches that are not operating correctly as PTP Transparent Clocks.
Ziffy sends PTP SYNC/DELAY_REQ packets between two hosts to get data about the topology.
It supports sending packets from a range of source ports to encourage hashing of
traffic over multiple paths. In case the hashing is done using only destination IP and source IP, Ziffy can
target multiple IPs in the same /64 prefix as the destination.

%gopkg

%prep
%goprep

%generate_buildrequires
%go_generate_buildrequires

%build
for cmd in calnex c4u ntpcheck ntpresponder pshark ptpcheck ptp4u ziffy; do
  %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/cmd/$cmd
done

%install
%gopkginstall
install -m 0755 -vd                     %{buildroot}%{_bindir}
install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/

%if %{with check}
%check
# Disable test that requires network access
rm ntp/responder/server/server_test.go
# https://github.com/facebook/time/issues/100
%ifarch s390x
rm timestamp/timestamp_linux_test.go
%endif
%gocheck
%endif

%files -n calnex
%license LICENSE
%doc calnex/README.md
%{_bindir}/calnex

%files -n ntpcheck
%license LICENSE
%doc README.md
%{_bindir}/ntpcheck
 
%files -n ntpresponder
%license LICENSE
%doc README.md
%{_bindir}/ntpresponder

%files -n pshark
%license LICENSE
%doc README.md
%{_bindir}/pshark

%files -n ptpcheck
%license LICENSE
%doc README.md
%{_bindir}/ptpcheck

%files -n ptp4u
%license LICENSE
%doc ptp/ptp4u/README.md
%{_bindir}/ptp4u
%{_bindir}/c4u

%files -n ziffy
%license LICENSE
%doc cmd/ziffy/README.md
%{_bindir}/ziffy

%gopkgfiles

%changelog
* Wed Aug 10 2022 Maxwell G <gotmax@e.email> - 0-0.11
- Rebuild to fix FTBFS

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0-0.10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Tue Jul 19 2022 Maxwell G <gotmax@e.email> - 0-0.9
- Rebuild for CVE-2022-{1705,32148,30631,30633,28131,30635,30632,30630,1962} in
  golang

* Wed Jun 15 2022 Alexander Bulimov <abulimov@fedoraproject.org> - 0-0.8.20220615git8413c32
- Update shanpshot to 8413c32
- Added c4u binary to ptp4u package


* Fri Mar 04 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 0-0.7.20220304git3c26ea4
- Ensure version is set before gometa

* Fri Mar 04 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 0-0.6.20220304git3c26ea4
- Update snapshot to 3c26ea4
- Re-run go2rpm
- Disable broken tests

* Fri Jan 14 2022 Alexander Bulimov <abulimov@fedoraproject.org> - 0-0.5.20220113git83c4193
- Initial package