commit:     c79a0e06a7be1a76ec0368168cafdcf708b977b7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 14 22:45:05 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 14 22:46:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c79a0e06

net-print/cups-filters: fix build w/ C++17

Closes: https://bugs.gentoo.org/898076
Closes: https://bugs.gentoo.org/901243
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../cups-filters/cups-filters-1.28.17-r1.ebuild    |  4 +++
 .../files/cups-filters-1.28.17-c++17.patch         | 31 ++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/net-print/cups-filters/cups-filters-1.28.17-r1.ebuild 
b/net-print/cups-filters/cups-filters-1.28.17-r1.ebuild
index 2e2bbd3cef13..13b7dac3fc7b 100644
--- a/net-print/cups-filters/cups-filters-1.28.17-r1.ebuild
+++ b/net-print/cups-filters/cups-filters-1.28.17-r1.ebuild
@@ -51,6 +51,10 @@ BDEPEND="
        test? ( media-fonts/dejavu )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.28.17-c++17.patch
+)
+
 src_configure() {
        # Bug #898156
        append-cxxflags -std=c++17

diff --git a/net-print/cups-filters/files/cups-filters-1.28.17-c++17.patch 
b/net-print/cups-filters/files/cups-filters-1.28.17-c++17.patch
new file mode 100644
index 000000000000..f8f63ccd4724
--- /dev/null
+++ b/net-print/cups-filters/files/cups-filters-1.28.17-c++17.patch
@@ -0,0 +1,31 @@
+https://bugs.gentoo.org/901243
+(and https://bugs.gentoo.org/898076)
+https://github.com/OpenPrinting/cups-filters/pull/505
+
+From 104fba23b1c0c67c92777b3165c6dca99558a656 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.k...@gmail.com>
+Date: Mon, 6 Feb 2023 18:13:52 -0800
+Subject: [PATCH] use noexcept(false) instead of throw() from c++17 onwards
+
+C++17 removed dynamic exception specifications [1]
+they had been deprecated since C++11, replace
+throw(whatever) with noexcept(false).
+
+[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html
+
+Signed-off-by: Khem Raj <raj.k...@gmail.com>
+--- a/filter/pdftoraster.cxx
++++ b/filter/pdftoraster.cxx
+@@ -2148,7 +2148,11 @@ int main(int argc, char *argv[]) {
+ /* For compatibility with g++ >= 4.7 compilers _GLIBCXX_THROW
+  *  should be used as a guard, otherwise use traditional definition */
+ #ifndef _GLIBCXX_THROW
++#if __cplusplus < 201703L
+ #define _GLIBCXX_THROW throw
++#else
++#define _GLIBCXX_THROW(x) noexcept(false)
++#endif
+ #endif
+ 
+ void * operator new(size_t size) _GLIBCXX_THROW (std::bad_alloc)
+

Reply via email to