diff --git a/cpprest.changes b/cpprest.changes index 1a13f1c..4af9cdb 100644 --- a/cpprest.changes +++ b/cpprest.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Jun 17 11:09:02 UTC 2018 - astieger@suse.com + +- fix build with gcc8 (add cpprestsdk-2.10.2-fix-gcc8.patch) + ------------------------------------------------------------------- Thu Mar 22 13:48:16 UTC 2018 - astieger@suse.com diff --git a/cpprest.spec b/cpprest.spec index afd8a73..93bf546 100644 --- a/cpprest.spec +++ b/cpprest.spec @@ -30,8 +30,9 @@ Summary: C++ REST library # utf8_validation.hpp: MIT (ThirdPartyNotices.txt) License: MIT AND BSD-3-Clause AND Zlib Group: Development/Libraries/C and C++ -Url: https://github.com/Microsoft/cpprestsdk +URL: https://github.com/Microsoft/cpprestsdk Source: https://github.com/Microsoft/cpprestsdk/archive/v%{version}.tar.gz#/cpprestsdk-%{version}.tar.gz +Patch0: cpprestsdk-2.10.2-fix-gcc8.patch BuildRequires: cmake >= 3.0 BuildRequires: gcc-c++ BuildRequires: openssl-devel >= 1.0 @@ -76,6 +77,7 @@ Development files. %prep %setup -q -n cpprestsdk-%{version} +%patch0 -p1 %build %cmake \ @@ -114,11 +116,14 @@ EOF %postun -n libcpprest%{major}_%{minor} -p /sbin/ldconfig %files -n libcpprest%{major}_%{minor} -%doc CONTRIBUTORS.txt license.txt ThirdPartyNotices.txt +%license license.txt ThirdPartyNotices.txt +%license license.txt +%doc CONTRIBUTORS.txt ThirdPartyNotices.txt %{_libdir}/libcpprest.so.%{major}.%{minor} %files devel -%doc CONTRIBUTORS.txt license.txt +%license license.txt ThirdPartyNotices.txt +%doc CONTRIBUTORS.txt %{_includedir}/%{name} %{_includedir}/pplx %{_libdir}/libcpprest.so diff --git a/cpprestsdk-2.10.2-fix-gcc8.patch b/cpprestsdk-2.10.2-fix-gcc8.patch new file mode 100644 index 0000000..79afe1f --- /dev/null +++ b/cpprestsdk-2.10.2-fix-gcc8.patch @@ -0,0 +1,35 @@ +From 212536f9d66400bef4400c55efd05dd01303c035 Mon Sep 17 00:00:00 2001 +From: Andreas Stieger +Date: Sun, 17 Jun 2018 13:00:05 +0200 +Subject: [PATCH] Fix gcc8 error/warning -Werror=format-truncation= + +utilities::datetime::to_string(): datetime_str and buf were oversized +for fitting into output without possible trunctation +--- + Release/src/utilities/asyncrt_utils.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/Release/src/utilities/asyncrt_utils.cpp b/Release/src/utilities/asyncrt_utils.cpp +index 0e62bdee..be38907c 100644 +--- a/Release/src/utilities/asyncrt_utils.cpp ++++ b/Release/src/utilities/asyncrt_utils.cpp +@@ -691,12 +691,13 @@ utility::string_t datetime::to_string(date_format format) const + { + // Append fractional second, which is a 7-digit value with no trailing zeros + // This way, '1200' becomes '00012' +- char buf[9] = { 0 }; ++ const int max_frac_length = 8; ++ char buf[max_frac_length+1] = { 0 }; + snprintf(buf, sizeof(buf), ".%07ld", (long int)frac_sec); + // trim trailing zeros +- for (int i = 7; buf[i] == '0'; i--) buf[i] = '\0'; ++ for (int i = max_frac_length-1; buf[i] == '0'; i--) buf[i] = '\0'; + // format the datetime into a separate buffer +- char datetime_str[max_dt_length+1] = {0}; ++ char datetime_str[max_dt_length-max_frac_length-1+1] = {0}; + strftime(datetime_str, sizeof(datetime_str), "%Y-%m-%dT%H:%M:%S", &datetime); + // now print this buffer into the output buffer + snprintf(output, sizeof(output), "%s%sZ", datetime_str, buf); +-- +2.16.4 +