logical changes backported from: https://github.com/kovidgoyal/calibre/commit/a3d3d8d33e314ccabb5099e78e4056a79b7c9aa2 https://bugs.gentoo.org/936270 diff -rup a/setup/build.py b/setup/build.py --- a/setup/build.py 2022-06-17 04:35:27.000000000 +0200 +++ b/setup/build.py 2024-07-19 11:51:56.374389213 +0200 @@ -65,6 +65,8 @@ class Extension: self.cflags.insert(0, '-std=c++11') elif kwargs.get('needs_c++14'): self.cflags.insert(0, '-std=c++14') + elif kwargs.get('needs_c++17'): + self.cflags.insert(0, '-std=c++17') else: if kwargs.get('needs_c99'): self.cflags.insert(0, '-std=c99') diff -rup a/setup/extensions.json b/setup/extensions.json --- a/setup/extensions.json 2022-06-17 04:35:27.000000000 +0200 +++ b/setup/extensions.json 2024-07-19 11:52:11.253389395 +0200 @@ -75,7 +75,7 @@ "name": "sqlite_extension", "headers": "calibre/utils/cpp_binding.h", "sources": "calibre/db/sqlite_extension.cpp", - "needs_c++14": true, + "needs_c++17": true, "libraries": "icudata icui18n icuuc icuio stemmer", "windows_libraries": "icudt icuin icuuc icuio libstemmer", "lib_dirs": "!icu_lib_dirs",