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-04-28 11:59:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/include-what-you-use (Old)
and /work/SRC/openSUSE:Factory/.include-what-you-use.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "include-what-you-use"
Tue Apr 28 11:59:02 2026 rev:25 rq:1349675 version:0.26
Changes:
--------
---
/work/SRC/openSUSE:Factory/include-what-you-use/include-what-you-use.changes
2025-09-29 16:34:28.472073420 +0200
+++
/work/SRC/openSUSE:Factory/.include-what-you-use.new.11940/include-what-you-use.changes
2026-04-28 12:02:50.765643518 +0200
@@ -1,0 +2,15 @@
+Sun Apr 26 21:00:08 UTC 2026 - Aaron Puchert <[email protected]>
+
+- Update to version 0.26, update LLVM/Clang to version 22.
+ * Many improvements around the understanding of types,
+ particularly templates.
+ * Improve handling of builtin type traits.
+ * Add support for distinguishing function overloads and template
+ specializations in mappings.
+ * Add mapping generator for Windows.h.
+ * Add mapping generator for portable C++ standard library
+ symbols.
+ * Improve libc, libc++ and POSIX mappings.
+- Rebase iwyu_include_picker.patch.
+
+-------------------------------------------------------------------
Old:
----
include-what-you-use-0.25.src.tar.gz
New:
----
include-what-you-use-0.26.src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ include-what-you-use.spec ++++++
--- /var/tmp/diff_new_pack.lt0oX6/_old 2026-04-28 12:02:51.341667380 +0200
+++ /var/tmp/diff_new_pack.lt0oX6/_new 2026-04-28 12:02:51.341667380 +0200
@@ -1,8 +1,7 @@
#
# spec file for package include-what-you-use
#
-# Copyright (c) 2025 SUSE LLC and contributors
-# Copyright (c) 2025 Aaron Puchert.
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +16,10 @@
#
-%define _llvm_version 21
+%define _llvm_version 22
Name: include-what-you-use
-Version: 0.25
+Version: 0.26
Release: 0
Summary: A tool to analyze #includes in C and C++ source files
License: NCSA
@@ -66,10 +65,14 @@
%prep
%autosetup -p1 -n %{name}
-sed -i s#lib/#lib\${LLVM_LIBDIR_SUFFIX}/#g CMakeLists.txt
%build
-%cmake -DIWYU_LLVM_ROOT_PATH=%{_libdir} \
+# We build static libraries because they're internal to the build and not
+# installed. (They're used for testing only.)
+%cmake \
+ -DBUILD_SHARED_LIBS:BOOL=OFF \
+ -DBUILD_STATIC_LIBS:BOOL=ON \
+ -DIWYU_LLVM_ROOT_PATH=%{_libdir} \
-DCMAKE_SKIP_RPATH:BOOL=ON \
%if %{suse_version} <= 1500
-DPython3_EXECUTABLE=%{_bindir}/python3.11 \
@@ -87,6 +90,12 @@
%global exclude_tests %exclude_tests|cxx.test_badinc
%endif
+# On 32-bit architectures, some tests fail because "operator new" takes
+# unsigned int instead of unsigned long.
+%ifarch %arm i586
+%global exclude_tests %exclude_tests|cxx.test_(fn_def_args|placement_new)
+%endif
+
# Fails with older versions of libstdc++ (at least <= 7, maybe more) with error
# "type 'const std::hash<IndirectClass>' does not provide a call operator".
# Fails with newer versions of libstc++ with error "static assertion failed due
@@ -96,7 +105,11 @@
%global exclude_tests %exclude_tests|cxx.test_precomputed_tpl_args(|_cpp14)
%endif
+# On Leap 15 some tests sporadically fail with "Cannot open mapping file
+# '[...]': Cannot allocate memory." Reason is unclear.
+%if %{suse_version} >= 1600
%{ctest '-E' '^(%exclude_tests)$'}
+%endif
%files
%license LICENSE.TXT
++++++ include-what-you-use-0.25.src.tar.gz ->
include-what-you-use-0.26.src.tar.gz ++++++
++++ 45002 lines of diff (skipped)
++++++ iwyu_include_picker.patch ++++++
--- /var/tmp/diff_new_pack.lt0oX6/_old 2026-04-28 12:02:52.389710796 +0200
+++ /var/tmp/diff_new_pack.lt0oX6/_new 2026-04-28 12:02:52.421712123 +0200
@@ -1,8 +1,8 @@
diff --git a/iwyu_include_picker.cc b/iwyu_include_picker.cc
-index fdb7364..1aa49f5 100644
+index 72cb6cb..5bb8ddc 100644
--- a/iwyu_include_picker.cc
+++ b/iwyu_include_picker.cc
-@@ -82,14 +82,14 @@ struct IncludeMapEntry { // A POD so we can make the
input static
+@@ -86,14 +86,14 @@ struct IncludeMapEntry { // A POD so we can make the
input static
namespace {
// Listed below are all IWYU's native symbol and include mappings,
@@ -19,10 +19,10 @@
// 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>,
-@@ -339,6 +339,23 @@ const IncludeMapEntry stdlib_cxx_symbol_map[] = {
- { "std::size_t", kPrivate, "<ctime>", kPublic },
- { "std::size_t", kPrivate, "<cuchar>", kPublic },
- { "std::size_t", kPrivate, "<cwchar>", kPublic },
+@@ -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 },
+
+ { "std::pair", kPrivate, "<map>", kPublic },
+ { "std::pair", kPrivate, "<multimap>", kPublic },
@@ -42,9 +42,6 @@
+ { "std::wfstream", kPrivate, "<fstream>", kPublic },
};
- // Symbol -> include mappings for GNU libstdc++
-@@ -349,51 +366,63 @@ const IncludeMapEntry libstdcpp_symbol_map[] = {
-
const IncludeMapEntry libc_include_map[] = {
// Private -> public include mappings for GNU libc
- // ( cd /usr/include && grep '^ *# *include' {sys/,net/,}* | perl -nle
'm/^([^:]+).*<([^>]+)>/ && print qq@ { "<$2>", kPrivate, "<$1>", kPublic
},@' | grep bits/ | sort )
@@ -120,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 },
-@@ -402,8 +431,15 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -456,8 +485,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 },
@@ -136,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 },
-@@ -414,42 +450,44 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -468,42 +504,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 },
@@ -189,12 +186,11 @@
{ "<bits/syslog-ldbl.h>", kPrivate, "<sys/syslog.h>", kPrivate },
{ "<bits/syslog-path.h>", kPrivate, "<sys/syslog.h>", kPrivate },
{ "<bits/syslog.h>", kPrivate, "<sys/syslog.h>", kPrivate },
-+ { "<bits/syslog.h>", kPrivate, "<sys/syslog.h>", kPrivate },
+ { "<bits/sysmacros.h>", kPrivate, "<sys/sysmacros.h>", kPublic },
+ { "<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 },
- { "<bits/termios-c_iflag.h>", kPrivate, "<termios.h>", kPublic },
-@@ -459,16 +497,52 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -515,18 +552,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 },
@@ -222,7 +218,6 @@
+ { "<bits/types/sigevent_t.h>", kPrivate, "<signal.h>", kPublic },
{ "<bits/types/siginfo_t.h>", kPrivate, "<signal.h>", kPublic },
- { "<bits/types/siginfo_t.h>", kPrivate, "<sys/wait.h>", kPublic },
-- { "<bits/uio.h>", kPrivate, "<sys/uio.h>", kPublic },
+ { "<bits/types/sigset_t.h>", kPrivate, "<signal.h>", kPublic },
+ { "<bits/types/sigval_t.h>", kPrivate, "<signal.h>", kPublic },
+ { "<bits/types/stack_t.h>", kPrivate, "<signal.h>", kPublic },
@@ -232,7 +227,9 @@
+ { "<bits/types/struct_iovec.h>", kPrivate, "<sys/uio.h>", kPublic },
+ { "<bits/types/struct_itimerspec.h>", kPrivate, "<sys/timerfd.h>", kPublic
},
+ { "<bits/types/struct_osockaddr.h>", kPrivate, "<sys/socket.h>", kPublic },
-+ { "<bits/types/struct_rusage.h>", kPrivate, "<sys/wait.h>", kPublic },
+ { "<bits/types/struct_rusage.h>", kPrivate, "<sys/resource.h>", kPublic },
+ { "<bits/types/struct_sched_param.h>", kPrivate, "<sched.h>", kPublic },
+- { "<bits/uio.h>", kPrivate, "<sys/uio.h>", kPublic },
+ { "<bits/types/struct_sigstack.h>", kPrivate, "<signal.h>", kPublic },
+ { "<bits/types/struct_timeb.h>", kPrivate, "<sys/timeb.h>", kPublic },
+ { "<bits/types/struct_timespec.h>", kPrivate, "<time.h>", kPublic },
@@ -251,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 },
-@@ -477,61 +551,155 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -535,61 +607,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 },
@@ -423,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).
-@@ -557,8 +725,9 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -615,8 +781,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 },
@@ -434,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 },
-@@ -594,7 +763,7 @@ const IncludeMapEntry stdlib_c_include_map[] = {
+@@ -652,7 +819,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:
@@ -443,7 +440,7 @@
//
// These headers are defined in [headers.cpp.c].
// https://github.com/cplusplus/draft/blob/c+%2B20/source/lib-intro.tex
-@@ -728,25 +897,29 @@ const IncludeMapEntry stdlib_cpp_include_map[] = {
+@@ -786,25 +953,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.
@@ -476,7 +473,7 @@
//
// Do not edit!
const IncludeMapEntry libstdcpp_include_map[] = {
-@@ -799,9 +972,8 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -857,9 +1028,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 },