# Generated by go2rpm
%ifnarch s390x
%bcond_without check
%endif

# https://github.com/Shopify/toxiproxy
%global goipath         github.com/Shopify/toxiproxy
Version:                2.1.4

%gometa

# Remove in F33:
%global godevelheader %{expand:
Obsoletes:      golang-github-Shopify-toxiproxy-devel < 2.1.3-3
}

%global common_description %{expand:
Toxiproxy is a framework for simulating network conditions. It's made
specifically to work in testing, CI and development environments, supporting
deterministic tampering with connections, but with support for randomized
chaos and customization. Toxiproxy is the tool you need to prove with tests
that your application doesn't have single points of failure.

Toxiproxy usage consists of two parts. A TCP proxy written in Go (what this
repository contains) and a client communicating with the proxy over HTTP. You
configure your application to make all test connections go through Toxiproxy
and can then manipulate their health via HTTP. See Usage below on how to set
up your project.}

%global golicenses      LICENSE
%global godocs          CHANGELOG.md CREATING_TOXICS.md README.md README-client.md

Name:           %{goname}
Release:        12%{?dist}
Summary:        TCP proxy to simulate network and system conditions for resiliency testing

License:        MIT
URL:            %{gourl}
Source0:        %{gosource}
# Stolen from Debian:
Source1:        toxiproxy-server.1
Source2:        toxiproxy-cli.1
Source3:        toxiproxy.default
Source4:        toxiproxy.service
Source5:        toxiproxy.logrotate

%{?systemd_requires}
BuildRequires:  systemd-rpm-macros
BuildRequires:  golang(github.com/gorilla/mux)
BuildRequires:  golang(github.com/sirupsen/logrus)
BuildRequires:  golang(github.com/urfave/cli)
BuildRequires:  golang(golang.org/x/crypto/ssh/terminal)
BuildRequires:  golang(gopkg.in/tomb.v1)
Requires(pre):  shadow-utils

%description
%{common_description}

%package -n toxiproxy
Summary:       %{summary}

%description -n toxiproxy
%{common_description}

%gopkg

%prep
%goprep
mv client/README.md README-client.md

%build
%gobuild -o %{gobuilddir}/bin/toxiproxy-cli     %{goipath}/cli
%gobuild -o %{gobuilddir}/bin/toxiproxy-server  %{goipath}/cmd

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

install -d -m 0755 %{buildroot}%{_mandir}/man1
install -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/toxiproxy-server.1
install -p -m 0644 %{SOURCE2} %{buildroot}%{_mandir}/man1/toxiproxy-cli.1

install -d -m 0755 %{buildroot}%{_sysconfdir}/default
install -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/default/toxiproxy

install -d -m 0755 %{buildroot}%{_unitdir}
install -p -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/toxiproxy.service

install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d
install -p -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/toxiproxy

install -d -m 0755 %{buildroot}%{_sharedstatedir}/toxiproxy
install -d -m 0755 %{buildroot}%{_localstatedir}/log/toxiproxy

%if %{with check}
%check
%gocheck
%endif

%pre  -n toxiproxy
getent group toxiproxy >/dev/null || groupadd -r toxiproxy
getent passwd toxiproxy >/dev/null || \
    useradd -r -g toxiproxy -d %{_sharedstatedir}/toxiproxy -s /sbin/nologin \
    -c "Toxiproxy-server account" toxiproxy
exit 0

%post  -n toxiproxy
%systemd_post toxiproxy.service

%preun  -n toxiproxy
%systemd_preun toxiproxy.service

%postun  -n toxiproxy
%systemd_postun_with_restart toxiproxy.service

%files  -n toxiproxy
%license %{golicenses}
%doc %{godocs}
%{_bindir}/toxiproxy-cli
%{_bindir}/toxiproxy-server
%config(noreplace) %{_sysconfdir}/default/toxiproxy
%config(noreplace) %{_sysconfdir}/logrotate.d/toxiproxy
%{_unitdir}/toxiproxy.service
%{_mandir}/man1/toxiproxy-server.1.*
%{_mandir}/man1/toxiproxy-cli.1.*
%attr(0775,root,toxiproxy) %dir %{_localstatedir}/log/toxiproxy
%attr(0750,toxiproxy,toxiproxy) %dir %{_sharedstatedir}/toxiproxy

%gopkgfiles

%changelog
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

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

* Sat Jul 09 2022 Maxwell G <gotmax@e.email> - 2.1.4-10
- Rebuild for CVE-2022-{24675,28327,29526 in golang}

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.1.4-7
- Rebuilt for updated systemd-rpm-macros
  See https://pagure.io/fesco/issue/2583.

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Fri Jul 05 2019 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 2.1.4-2
- Add Obsoletes for old name

* Tue Apr 23 23:07:45 CEST 2019 Robert-André Mauchin <zebob.m@gmail.com> - 2.1.4-1
- Release 2.1.4

* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Mon Oct 29 2018 Robert-André Mauchin <zebob.m@gmail.com> - 2.1.3-1
- Release 2.1.3

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.7.rc2.gitfc5a9c0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.6.rc2.gitfc5a9c0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.5.rc2.gitfc5a9c0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.4.rc2.gitfc5a9c0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-0.3.rc2.gitfc5a9c0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Jul 21 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0-0.2.rc2.gitfc5a9c0
- https://fedoraproject.org/wiki/Changes/golang1.7

* Fri Apr 15 2016 jchaloup <jchaloup@redhat.com> - 2.0.0-0.1.rc2.gitfc5a9c0
- First package for Fedora
  resolves: #1327753