## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%bcond_with toolchain_clang

%if %{with toolchain_clang}
%global toolchain clang
%endif

%if 0%{?el8}
%ifarch ppc64le
# tests often stall after this
# 64/66 Test #60: SlidingBloomReplayCacheTest 
%bcond_with check
%else
# tests don't currently compile with el8's gmock
# error: use of deleted function
%bcond_with check
%endif
%else
%bcond_without check
%endif

Name:           fizz
Version:        2024.08.19.00
Release:        %autorelease
Summary:        A C++14 implementation of the TLS-1.3 standard

License:        BSD-3-Clause
URL:            https://github.com/facebookincubator/fizz
Source:         %{url}/archive/v%{version}/fizz-%{version}.tar.gz
# the fallback expansion of FOLLY_SDT seems to not work with GCC
# since folly commit b85c08e5e5f2729f2f50dc89b5d464b9f5e58c69 (20240521)
Patch:          fizz-gate-use-of-folly_sdt.diff

ExclusiveArch:  x86_64 aarch64 ppc64le riscv64

BuildRequires:  cmake
%if %{with toolchain_clang}
BuildRequires:  clang
%else
BuildRequires:  gcc-c++
%endif
BuildRequires:  folly-devel = %{version}
%if %{with check}
BuildRequires:  gmock-devel
BuildRequires:  gtest-devel
%endif

%global _description %{expand:
Fizz is a TLS 1.3 implementation.

Fizz currently supports TLS 1.3 drafts 28, 26 (both wire-compatible with the
final specification), and 23. All major handshake modes are supported, including
PSK resumption, early data, client authentication, and HelloRetryRequest.}

%description %{_description}


%package        devel
Summary:        Development files for %{name}
Requires:       %{name}%{?_isa} = %{version}-%{release}
Obsoletes:      %{name}-static < 2022.02.28.00-1

%description    devel %{_description}

The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.


%prep
%autosetup -p1


%build
cd fizz
%cmake \
%if %{without tests}
  -DBUILD_TESTS=OFF \
%endif
  -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \
  -DFOLLY_ROOT=%{_libdir}/cmake/folly \
  -DPACKAGE_VERSION=%{version} \
  -DSO_VERSION=%{version}
%cmake_build
cd -


%install
cd fizz
%cmake_install
cd -


%if %{with check}
%check
cd fizz
%ctest
cd -
%endif


%files
%license LICENSE
%{_bindir}/fizz
%{_bindir}/fizz-bogoshim
%{_libdir}/*.so.%{version}

%files devel
%doc CODE_OF_CONDUCT.md CONTRIBUTING.md README.md
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/cmake/%{name}


%changelog
## START: Generated by rpmautospec
* Wed Aug 21 2024 Michel Lind <salimma@fedoraproject.org> - 2024.08.19.00-1
- Update to version 2024.08.19.00; Fixes: RHBZ#2300390

* Thu Jul 25 2024 Michel Lind <salimma@fedoraproject.org> - 2024.07.22.00-3
- Fix fmt::formatter for fmt 11, discovered compiling mvfst

* Thu Jul 25 2024 Michel Lind <salimma@fedoraproject.org> - 2024.07.22.00-2
- Fix build on platforms without FOLLY_HAVE_SDT

* Wed Jul 24 2024 Michel Lind <salimma@fedoraproject.org> - 2024.07.22.00-1
- Update to 2024.07.22.00 (rhbz#2266164)

* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2024.02.19.00-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Mon Apr 08 2024 JasenChao <JasenChao@gmail.com> - 2024.02.19.00-2
- Add riscv64 support.

* Fri Feb 23 2024 Michel Lind <salimma@fedoraproject.org> - 2024.02.19.00-1
- Update to 2024.02.19.00

* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2024.01.22.00-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Michel Lind <salimma@fedoraproject.org> - 2024.01.22.00-1
- Update to 2024.01.22.00

* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2023.10.16.00-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Tue Oct 17 2023 Michel Lind <salimma@fedoraproject.org> - 2023.10.16.00-1
- Update to 2023.10.16.00

* Mon Oct 16 2023 Michel Lind <salimma@fedoraproject.org> - 2023.10.09.00-1
- Update to 2023.10.09.00

* Thu Oct 05 2023 Remi Collet <remi@fedoraproject.org> - 2023.09.11.00-2
- rebuild for new libsodium

* Mon Sep 11 2023 Michel Lind <salimma@fedoraproject.org> - 2023.09.11.00-1
- Update to 2023.09.11.00
- Fix duplicate description

* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2023.07.03.00-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Thu Jul 06 2023 Michel Alexandre Salim <salimma@fedoraproject.org> - 2023.07.03.00-1
- Update to 2023.07.03.00
- Use SPDX license identifier

* Wed Jun 28 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 2023.04.24.00-2
- Rebuilt due to fmt 10 update.

* Mon Apr 24 2023 Michel Alexandre Salim <salimma@fedoraproject.org> - 2023.04.24.00-1
- Update to 2023.04.24.00

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2022.07.11.00-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

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

* Tue Jul 19 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.07.11.00-1
- Update to 2022.07.11.00

* Tue Jul 19 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2022.03.14.00-3
- Fix FTBFS, build with gcc

* Sun Jul 17 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2022.03.14.00-2
- Rebuild for fmt-9

* Mon Mar 14 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.03.14.00-1
- Update to 2022.03.14.00

* Tue Mar 08 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.03.07.00-1
- Update to 2022.03.07.00 (resolves: rhbz#2059336)

* Sat Mar 05 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.02.28.00-3
- Properly switch toolchain to clang

* Sat Mar 05 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.02.28.00-2
- Use clang on releases with GCC 12; fix build with cmake 3.23.0

* Wed Mar 02 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.02.28.00-1
- Update to 2022.02.28.00; drop static build

* Thu Feb 24 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.02.21.00-1
- Update to 2022.02.21.00 (resolves: rhbz#2035845)

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

* Wed Jan 19 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 2022.01.17.00-1
- Update to 2022.01.17.00

* Thu Dec 23 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.12.20.00-1
- Update to 2021.12.20.00

* Wed Dec 22 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.11.29.00-5
- Properly disable tests on EPEL 8 ppc64le

* Wed Dec 22 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.11.29.00-4
- Disable tests on EPEL 8 ppc64le due to stalls

* Tue Dec 21 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.11.29.00-3
- Don't override compiler options, BR test deps when enabled

* Fri Dec 17 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.11.29.00-2
- Disable AsyncFizzBaseTest on 32-bit arches until it is fixed

* Fri Dec 17 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.11.29.00-1
- Update to 2021.11.29.00; switch back to OpenSSL 3.0

* Thu Nov 18 2021 Michel Alexandre Salim <salimma@fedoraproject.org> -
2-21.11.15.00-2
- Rebuilt with OpenSSL 1.1.1 (Wangle is still incompatible with OpenSSL 3.0.0)
- Opt in to rpmautospec

* Thu Nov 18 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.11.15.00-1
- Update to 2021.11.15.00

* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 2021.08.02.00-2
- Rebuilt with OpenSSL 3.0.0

* Thu Aug  5 2021 Filipe Brandenburger <filbranden@gmail.com> - 2021.08.02.00-1
- Update to 2021.08.02.00

* Thu Jul 29 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.07.22.00-3
- Use C++20 standard, in order to enable C++ coroutines

* Tue Jul 27 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.07.22.00-2
- Rebuilt for folly 2021.07.22.00

* Sat Jul 24 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.07.22.00-1
- Update to 2021.07.22.00

* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2021.06.28.00-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Mon Jul 12 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.06.28.00-1
- Update to 2021.06.28.00

* Wed Jun 09 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.06.07.00-1
- Update to 2021.06.07.00

* Mon May 10 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.05.10.00-1
- Update to 2021.05.10.00

* Mon Apr 26 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.04.26.00-1
- Update to 2021.04.26.00

* Fri Apr 16 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.04.12.00-1
- Update to 2021.04.12.00

* Mon Mar 29 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.03.29.00-1
- Update to 2021.03.29.00

* Wed Mar 24 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.03.22.00-1
- Update to 2021.03.22.00

* Mon Mar 15 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.03.15.00-1
- Update to 2021.03.15.00

* Wed Feb 03 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.02.01.00-1
- Update to 2021.02.01.00

* Tue Jan 26 17:49:18 PST 2021 Michel Alexandre Salim <salimma@fedoraproject.org> - 2021.01.25.00-1
- Update to 2021.01.25.00

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

* Tue Dec 29 12:14:58 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.12.28.00-1
- Update to 2020.12.28.00

* Tue Dec 22 16:56:06 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.12.21.00-1
- Update to 2020.12.21.00

* Mon Nov 30 10:42:44 PST 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.11.30.00-1
- Update to 2020.11.30.00

* Mon Nov 23 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.11.23.00-1
- Update to 2020.11.23.00

* Mon Nov 16 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.11.16.00-2
- Fix tests on 32-bit architectures

* Mon Nov 16 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.11.16.00-1
- Update to 2020.11.16.00

* Mon Nov  9 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.11.09.00-1
- Update to 2020.11.09.00

* Mon Nov  2 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.11.02.00-1
- Update to 2020.11.02.00

* Fri Oct 30 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.10.26.00-3
- Only enable static subpackage on x86/x86_64 architectures for now (bz #1893332)

* Thu Oct 29 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.10.26.00-2
- Add static subpackage

* Mon Oct 26 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.10.26.00-1
- Update to 2020.10.26.00

* Thu Oct 22 2020 Michel Alexandre Salim <salimma@fedoraproject.org> - 2020.10.19.00-1
- Initial package

## END: Generated by rpmautospec