diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d43c1cb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/frozen-1.1.1.tar.gz diff --git a/079f73cc5c6413127d47f325cbb34a607e2cb030.patch b/079f73cc5c6413127d47f325cbb34a607e2cb030.patch new file mode 100644 index 0000000..1ce542e --- /dev/null +++ b/079f73cc5c6413127d47f325cbb34a607e2cb030.patch @@ -0,0 +1,37 @@ +From 079f73cc5c6413127d47f325cbb34a607e2cb030 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Fri, 16 Dec 2022 22:58:51 +0100 +Subject: [PATCH] Workaround gcc 11 limitation + +For some reason, gcc sees a constexpr violation here. Trust clang and msvc on this. +--- + include/frozen/unordered_set.h | 2 +- + tests/test_unordered_set.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/frozen/unordered_set.h b/include/frozen/unordered_set.h +index 4d16df9..196ea50 100644 +--- a/include/frozen/unordered_set.h ++++ b/include/frozen/unordered_set.h +@@ -105,7 +105,7 @@ class unordered_set { + /* lookup */ + template + constexpr std::size_t count(KeyType const &key, Hasher const &hash, Equal const &equal) const { +- auto const k = lookup(key, hash); ++ auto const & k = lookup(key, hash); + return equal(k, key); + } + template +diff --git a/tests/test_unordered_set.cpp b/tests/test_unordered_set.cpp +index e90a0d4..042c1a8 100644 +--- a/tests/test_unordered_set.cpp ++++ b/tests/test_unordered_set.cpp +@@ -65,7 +65,7 @@ TEST_CASE("tripleton str frozen unordered set", "[unordered set]") { + constexpr auto max_size = ze_set.max_size(); + REQUIRE(max_size == 3); + +- constexpr auto nocount = ze_set.count(4); ++ const auto nocount = ze_set.count(4); + REQUIRE(nocount == 0); + + constexpr auto count = ze_set.count(1); diff --git a/frozen.spec b/frozen.spec new file mode 100644 index 0000000..5cd5fdc --- /dev/null +++ b/frozen.spec @@ -0,0 +1,65 @@ +# Header-only package +%global debug_package %{nil} + +Name: frozen +Version: 1.1.1 +Release: 3%{?dist} +Summary: A header-only, constexpr alternative to gperf for C++14 users + +License: Apache-2.0 +URL: https://github.com/serge-sans-paille/frozen +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +# Fixes FTBFS, already present in upstream main branch. +Patch0: includes.patch +Patch1: 079f73cc5c6413127d47f325cbb34a607e2cb030.patch + +BuildRequires: gcc-c++ +BuildRequires: cmake + +%description +Header-only library that provides 0 cost initialization +for immutable containers, fixed-size containers, and +various algorithms. + +%package devel +Summary: Development files for %{name} +BuildArch: noarch +Requires: pkgconfig +Provides: %{name}-static = %{version}-%{release} + +%description devel +Development files for %{name}. + + +%prep +%setup -q + +%patch -P 0 -p0 +%patch -P 1 -p1 + +%build +%cmake -DCMAKE_BUILD_TYPE=Release +%cmake_build + +%check +%ctest + +%install +%cmake_install + + +%files devel +%license LICENSE +%doc examples/ AUTHORS README.rst +%{_includedir}/frozen/ +%{_datadir}/cmake/%{name}/ + +%changelog +* Wed Jul 19 2023 Gwyn Ciesla - 1.1.1-3 +- Drop main package. + +* Tue Jul 18 2023 Gwyn Ciesla - 1.1.1-2 +- review fixes. + +* Mon Jul 17 2023 Gwyn Ciesla - 1.1.1-1 +- Initial package. diff --git a/includes.patch b/includes.patch new file mode 100644 index 0000000..039138b --- /dev/null +++ b/includes.patch @@ -0,0 +1,11 @@ +--- include/frozen/bits/pmh.h~ 2022-03-31 00:56:25.000000000 -0500 ++++ include/frozen/bits/pmh.h 2023-07-17 13:42:52.903675376 -0500 +@@ -30,6 +30,8 @@ + #include + #include + ++#include ++ + namespace frozen { + + namespace bits { diff --git a/sources b/sources new file mode 100644 index 0000000..3408145 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (frozen-1.1.1.tar.gz) = e22561a4e634e388e11f95b3005bc711e543013d314f6aaeda34befb2c673aea2d71a717d8822bc8fa85bdc8409945ba2ad91a1bac4f8cb5303080de01a5f60e