Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package include-what-you-use for
openSUSE:Factory checked in at 2026-10-11 15:20:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/include-what-you-use (Old)
and /work/SRC/openSUSE:Factory/.include-what-you-use.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "include-what-you-use"
Sun Oct 11 15:20:33 2026 rev:26 rq:1384007 version:0.27
Changes:
--------
---
/work/SRC/openSUSE:Factory/include-what-you-use/include-what-you-use.changes
2026-04-28 12:02:50.765643518 +0200
+++
/work/SRC/openSUSE:Factory/.include-what-you-use.new.3698736/include-what-you-use.changes
2026-10-11 15:25:43.741901438 +0200
@@ -1,0 +2,19 @@
+Sat Oct 10 14:39:58 UTC 2026 - Aaron Puchert <[email protected]>
+
+- Update to version 0.27, update LLVM/Clang to version 23.
+ * Improve printing of forward-declarations.
+ * Fix several crashes on valid inputs.
+ * Improve analysis of template types.
+ * Always keep includes embedded in language constructs.
+ * Add IWYU_USE_SYSTEM_GTEST option to use system googletest
+ instead of bundled.
+ * Add mapping generators for Clang builtin and intrinsics headers.
+ * Allow forward-decl-specific symbol mappings (e.g. for mapping
+ fwd-decl uses of std::basic_ios to <iosfwd>).
+ * Prefer <c*> headers for C library symbols in C++ mode.
+ * Add --always_first_include option to force particular headers
+ to the top.
+- Rebase iwyu_include_picker.patch.
+- Use system googletest.
+
+-------------------------------------------------------------------
Old:
----
include-what-you-use-0.26.src.tar.gz
New:
----
include-what-you-use-0.27.src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ include-what-you-use.spec ++++++
--- /var/tmp/diff_new_pack.CDpn92/_old 2026-10-11 15:25:44.679941230 +0200
+++ /var/tmp/diff_new_pack.CDpn92/_new 2026-10-11 15:25:44.682941357 +0200
@@ -16,10 +16,10 @@
#
-%define _llvm_version 22
+%define _llvm_version 23
Name: include-what-you-use
-Version: 0.26
+Version: 0.27
Release: 0
Summary: A tool to analyze #includes in C and C++ source files
License: NCSA
@@ -33,6 +33,7 @@
BuildRequires: cmake
BuildRequires: libstdc++-devel
BuildRequires: llvm%{_llvm_version}-devel
+BuildRequires: cmake(GTest)
%if %{suse_version} > 1500
BuildRequires: python3-base
%else
@@ -66,6 +67,9 @@
%prep
%autosetup -p1 -n %{name}
+# We use the system package instead.
+rm -r vendor/googletest
+
%build
# We build static libraries because they're internal to the build and not
# installed. (They're used for testing only.)
@@ -74,6 +78,7 @@
-DBUILD_STATIC_LIBS:BOOL=ON \
-DIWYU_LLVM_ROOT_PATH=%{_libdir} \
-DCMAKE_SKIP_RPATH:BOOL=ON \
+ -DIWYU_USE_SYSTEM_GTEST:BOOL=ON \
%if %{suse_version} <= 1500
-DPython3_EXECUTABLE=%{_bindir}/python3.11 \
%endif
++++++ include-what-you-use-0.26.src.tar.gz ->
include-what-you-use-0.27.src.tar.gz ++++++
++++ 22608 lines of diff (skipped)
++++++ iwyu_include_picker.patch ++++++
--- /var/tmp/diff_new_pack.CDpn92/_old 2026-10-11 15:25:45.162961720 +0200
+++ /var/tmp/diff_new_pack.CDpn92/_new 2026-10-11 15:25:45.164961805 +0200
@@ -1,8 +1,8 @@
diff --git a/iwyu_include_picker.cc b/iwyu_include_picker.cc
-index 72cb6cb..5bb8ddc 100644
+index 8ea9cda..683ddc8 100644
--- a/iwyu_include_picker.cc
+++ b/iwyu_include_picker.cc
-@@ -86,14 +86,14 @@ struct IncludeMapEntry { // A POD so we can make the
input static
+@@ -95,14 +95,14 @@ struct SymbolMapEntry {
namespace {
// Listed below are all IWYU's native symbol and include mappings,
@@ -10,36 +10,36 @@
+// loosely based on GCC 14's libc and libstdc++.
// Symbol -> include mappings for GNU libc
- const IncludeMapEntry libc_symbol_map[] = {
+ const SymbolMapEntry libc_symbol_map[] = {
// For library symbols that can be defined in more than one header
// file, maps from symbol-name to legitimate header files.
// This list was generated via
- // grep -R '__.*_defined' /usr/include | perl -nle
'm,/usr/include/([^:]*):#\s*\S+ __(.*)_defined, and print qq@ { "$2",
kPublic, "<$1>", kPublic },@' | sort -u
-+ // grep -R '__.*_defined' /usr/include | perl -nle
'm,/usr/include/([^:]*):#\s*\S+ __(.*)_defined, and print qq@ { "$2",
kPrivate, "<$1>", kPublic },@' | sort -u
++ // grep -R '__.*_defined' /usr/include | perl -nle
'm,/usr/include/([^:]*):#\s*\S+ __(.*)_defined, and print qq@ { "$2",
UseKind::Full, "<$1>", kPublic },@' | sort -u
// I ignored all entries that only appeared once on the list (eg uint32_t).
// I then added in NULL, which according to [diff.null] C.2.2.3, can
// be defined in <clocale>, <cstddef>, <cstdio>, <cstdlib>,
-@@ -399,55 +399,84 @@ const IncludeMapEntry stdlib_cxx_symbol_map[] = {
- { "std::char_traits<char16_t>", kPrivate, "<istream>", kPublic },
- { "std::char_traits<char32_t>", kPrivate, "<istream>", kPublic },
- { "std::char_traits<wchar_t>", kPrivate, "<istream>", kPublic },
+@@ -404,55 +404,84 @@ const SymbolMapEntry stdlib_cxx_symbol_map[] = {
+ { "std::char_traits<char16_t>", UseKind::Full, "<istream>", kPublic },
+ { "std::char_traits<char32_t>", UseKind::Full, "<istream>", kPublic },
+ { "std::char_traits<wchar_t>", UseKind::Full, "<istream>", kPublic },
+
-+ { "std::pair", kPrivate, "<map>", kPublic },
-+ { "std::pair", kPrivate, "<multimap>", kPublic },
-+ { "std::pair", kPrivate, "<utility>", kPublic },
++ { "std::pair", UseKind::Full, "<map>", kPublic },
++ { "std::pair", UseKind::Full, "<multimap>", kPublic },
++ { "std::pair", UseKind::Full, "<utility>", kPublic },
+
-+ { "std::istringstream", kPrivate, "<sstream>", kPublic },
-+ { "std::ostringstream", kPrivate, "<sstream>", kPublic },
-+ { "std::stringstream", kPrivate, "<sstream>", kPublic },
-+ { "std::wistringstream", kPrivate, "<sstream>", kPublic },
-+ { "std::wostringstream", kPrivate, "<sstream>", kPublic },
-+ { "std::wstringstream", kPrivate, "<sstream>", kPublic },
-+ { "std::ifstream", kPrivate, "<fstream>", kPublic },
-+ { "std::ofstream", kPrivate, "<fstream>", kPublic },
-+ { "std::fstream", kPrivate, "<fstream>", kPublic },
-+ { "std::wifstream", kPrivate, "<fstream>", kPublic },
-+ { "std::wofstream", kPrivate, "<fstream>", kPublic },
-+ { "std::wfstream", kPrivate, "<fstream>", kPublic },
++ { "std::istringstream", UseKind::Full, "<sstream>", kPublic },
++ { "std::ostringstream", UseKind::Full, "<sstream>", kPublic },
++ { "std::stringstream", UseKind::Full, "<sstream>", kPublic },
++ { "std::wistringstream", UseKind::Full, "<sstream>", kPublic },
++ { "std::wostringstream", UseKind::Full, "<sstream>", kPublic },
++ { "std::wstringstream", UseKind::Full, "<sstream>", kPublic },
++ { "std::ifstream", UseKind::Full, "<fstream>", kPublic },
++ { "std::ofstream", UseKind::Full, "<fstream>", kPublic },
++ { "std::fstream", UseKind::Full, "<fstream>", kPublic },
++ { "std::wifstream", UseKind::Full, "<fstream>", kPublic },
++ { "std::wofstream", UseKind::Full, "<fstream>", kPublic },
++ { "std::wfstream", UseKind::Full, "<fstream>", kPublic },
};
const IncludeMapEntry libc_include_map[] = {
@@ -117,7 +117,7 @@
{ "<bits/netdb.h>", kPrivate, "<netdb.h>", kPublic },
{ "<bits/param.h>", kPrivate, "<sys/param.h>", kPublic },
{ "<bits/poll.h>", kPrivate, "<sys/poll.h>", kPrivate },
-@@ -456,8 +485,15 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -461,8 +490,15 @@ const IncludeMapEntry libc_include_map[] = {
{ "<bits/posix2_lim.h>", kPrivate, "<limits.h>", kPublic },
{ "<bits/posix_opt.h>", kPrivate, "<unistd.h>", kPublic },
{ "<bits/printf-ldbl.h>", kPrivate, "<printf.h>", kPublic },
@@ -133,7 +133,7 @@
{ "<bits/sched.h>", kPrivate, "<sched.h>", kPublic },
{ "<bits/select.h>", kPrivate, "<sys/select.h>", kPublic },
{ "<bits/select2.h>", kPrivate, "<sys/select.h>", kPublic },
-@@ -468,42 +504,43 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -473,42 +509,43 @@ const IncludeMapEntry libc_include_map[] = {
{ "<bits/shm.h>", kPrivate, "<sys/shm.h>", kPublic },
{ "<bits/sigaction.h>", kPrivate, "<signal.h>", kPublic },
{ "<bits/sigcontext.h>", kPrivate, "<signal.h>", kPublic },
@@ -190,7 +190,7 @@
{ "<bits/termios-baud.h>", kPrivate, "<termios.h>", kPublic },
{ "<bits/termios-c_cc.h>", kPrivate, "<termios.h>", kPublic },
{ "<bits/termios-c_cflag.h>", kPrivate, "<termios.h>", kPublic },
-@@ -515,18 +552,53 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -520,18 +557,53 @@ const IncludeMapEntry libc_include_map[] = {
{ "<bits/termios-struct.h>", kPrivate, "<termios.h>", kPublic },
{ "<bits/termios-tcflow.h>", kPrivate, "<termios.h>", kPublic },
{ "<bits/termios.h>", kPrivate, "<termios.h>", kPublic },
@@ -248,7 +248,7 @@
{ "<bits/utmp.h>", kPrivate, "<utmp.h>", kPublic },
{ "<bits/utmpx.h>", kPrivate, "<utmpx.h>", kPublic },
{ "<bits/utsname.h>", kPrivate, "<sys/utsname.h>", kPublic },
-@@ -535,61 +607,155 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -540,61 +612,155 @@ const IncludeMapEntry libc_include_map[] = {
{ "<bits/wchar-ldbl.h>", kPrivate, "<wchar.h>", kPublic },
{ "<bits/wchar.h>", kPrivate, "<wchar.h>", kPublic },
{ "<bits/wchar2.h>", kPrivate, "<wchar.h>", kPublic },
@@ -420,7 +420,7 @@
// Top-level #includes that just forward to another file:
// $ for i in /usr/include/*; do [ -f $i ] && [ `wc -l < $i` = 1 ] && echo
$i; done
// (poll.h, syscall.h, syslog.h, ustat.h, wait.h).
-@@ -615,8 +781,9 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -620,8 +786,9 @@ const IncludeMapEntry libc_include_map[] = {
// $ for i in /usr/include/bits/*; do for dir in asm linux; do grep -H -e
$dir/`basename $i` $i; done; done
{ "<linux/errno.h>", kPrivate, "<bits/errno.h>", kPrivate },
{ "<asm/ioctls.h>", kPrivate, "<bits/ioctls.h>", kPrivate },
@@ -431,7 +431,7 @@
// Some asm files have 32- and 64-bit variants:
// $ ls /usr/include/asm/*_{32,64}.h
{ "<asm/posix_types_32.h>", kPrivate, "<asm/posix_types.h>", kPublic },
-@@ -652,7 +819,7 @@ const IncludeMapEntry stdlib_c_include_map[] = {
+@@ -657,7 +824,7 @@ const IncludeMapEntry stdlib_c_include_map[] = {
// <cassert> back to <assert.h>. (If you *did* want to replace
// assert.h with cassert, you'd change it to a public->private
// mapping.) Here is how I identified the files to map:
@@ -440,7 +440,7 @@
//
// These headers are defined in [headers.cpp.c].
// https://github.com/cplusplus/draft/blob/c+%2B20/source/lib-intro.tex
-@@ -786,25 +953,29 @@ const IncludeMapEntry stdlib_cpp_include_map[] = {
+@@ -791,25 +958,29 @@ const IncludeMapEntry stdlib_cpp_include_map[] = {
// #including each other (eg <iostream> #includes <istream>). We
// are pretty forgiving: if a user specifies any public header, we
// generally don't require the others.
@@ -473,7 +473,7 @@
//
// Do not edit!
const IncludeMapEntry libstdcpp_include_map[] = {
-@@ -857,9 +1028,8 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -862,9 +1033,8 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/stdc++.h>", kPrivate, "<bits/extc++.h>", kPrivate },
{ "<bits/stdc++.h>", kPrivate, "<bits/stdtr1c++.h>", kPrivate },
{ "<bits/stdtr1c++.h>", kPrivate, "<bits/extc++.h>", kPrivate },
@@ -484,4 +484,26 @@
{ "<debug/assertions.h>", kPrivate, "<bits/stl_deque.h>", kPrivate },
{ "<debug/assertions.h>", kPrivate, "<bits/stl_iterator_base_funcs.h>",
kPrivate },
{ "<debug/assertions.h>", kPrivate, "<bits/stl_vector.h>", kPrivate },
+diff --git a/tests/cxx/std_symbol_mapping.cc b/tests/cxx/std_symbol_mapping.cc
+index 08168f9..97cc26e 100644
+--- a/tests/cxx/std_symbol_mapping.cc
++++ b/tests/cxx/std_symbol_mapping.cc
+@@ -122,7 +122,6 @@ tests/cxx/std_symbol_mapping.cc should add these lines:
+ #include <cstdint>
+ #include <cwchar>
+ #include <functional>
+-#include <iosfwd>
+ #include <spanstream>
+ #include <tuple>
+ #include <utility>
+@@ -139,8 +138,7 @@ The full include-list for tests/cxx/std_symbol_mapping.cc:
+ #include <cstdint> // for int8_t
+ #include <cwchar> // for tm (ptr only), wprintf
+ #include <functional> // for function, swap
+-#include <iosfwd> // for basic_ostream (ptr only), char_traits (ptr only)
+-#include <spanstream> // for basic_spanstream
++#include <spanstream> // for basic_ostream (ptr only), basic_spanstream,
char_traits (ptr only)
+ #include <tuple> // for tuple
+ #include <utility> // for get, move, operator==, pair, swap
+ #include <valarray> // for pow, valarray