Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package which for openSUSE:Factory checked 
in at 2026-05-27 16:13:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/which (Old)
 and      /work/SRC/openSUSE:Factory/.which.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "which"

Wed May 27 16:13:31 2026 rev:10 rq:1355150 version:2.25

Changes:
--------
--- /work/SRC/openSUSE:Factory/which/which.changes      2025-02-07 
22:46:34.400066798 +0100
+++ /work/SRC/openSUSE:Factory/.which.new.1937/which.changes    2026-05-27 
16:13:57.905535288 +0200
@@ -1,0 +2,6 @@
+Fri May 22 12:08:32 UTC 2026 - Andreas Stieger <[email protected]>
+
+- Update to 2.25:
+  * Fix an out of bounds stack read
+
+-------------------------------------------------------------------

Old:
----
  which-2.23.tar.gz
  which-2.23.tar.gz.sig

New:
----
  which-2.25.tar.gz
  which-2.25.tar.gz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ which.spec ++++++
--- /var/tmp/diff_new_pack.YjRPqu/_old  2026-05-27 16:13:58.645565776 +0200
+++ /var/tmp/diff_new_pack.YjRPqu/_new  2026-05-27 16:13:58.649565941 +0200
@@ -2,7 +2,7 @@
 # spec file for package which
 #
 # Copyright (c) 2022 SUSE LLC
-# Copyright (c) 2025 Andreas Stieger <[email protected]>
+# Copyright (c) 2026 Andreas Stieger <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 
 Name:           which
-Version:        2.23
+Version:        2.25
 Release:        0
 Summary:        Displays where a particular program in your path is located
 License:        GPL-3.0-or-later
@@ -34,7 +34,7 @@
 specified program is in your PATH.
 
 %prep
-%autosetup
+%autosetup -p1
 
 %build
 %configure

++++++ which-2.23.tar.gz -> which-2.25.tar.gz ++++++
++++ 6700 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/EXAMPLES new/which-2.25/EXAMPLES
--- old/which-2.23/EXAMPLES     2025-02-01 19:56:07.000000000 +0100
+++ new/which-2.25/EXAMPLES     2026-05-21 18:08:55.000000000 +0200
@@ -35,7 +35,7 @@
 Report bugs to <[email protected]>.
 
 >/home/carlo/projects/savannah.which/which/build/which --version
-GNU which v2.23, Copyright (C) 1999 - 2025 Carlo Wood.
+GNU which v2.25, Copyright (C) 1999 - 2026 Carlo Wood.
 GNU which comes with ABSOLUTELY NO WARRANTY;
 This program is free software; your freedom to use, change
 and distribute this program is protected by the GPL.
@@ -152,9 +152,9 @@
 /home/carlo/projects/savannah.which/which/build/which: no xxx in (.)
 
 >id
-uid=1000(carlo) gid=1000(carlo) 
groups=1000(carlo),0(root),150(wireshark),960(docker),972(deluge),973(realtime),995(audio),998(wheel)
+uid=1000(carlo) gid=1000(carlo) 
groups=1000(carlo),0(root),150(wireshark),943(brlapi),946(libvirt),960(docker),972(deluge),973(realtime),995(audio),998(wheel),1001(remountd)
 >ls -l xxx
--rwx------ 1 root carlo 0 Feb  1 19:56 xxx
+-rwx------ 1 root carlo 0 May 21 18:08 xxx
 >su
 >chmod 750 xxx
 >chgrp carlo xxx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/INSTALL new/which-2.25/INSTALL
--- old/which-2.23/INSTALL      2025-01-11 01:26:11.000000000 +0100
+++ new/which-2.25/INSTALL      2026-05-21 16:11:34.000000000 +0200
@@ -1,3 +1,9 @@
+Git Clones
+===========
+
+   If you are using the bare git source you must follow the maintainer
+instructions in the README.md the first time you checkout the source.
+
 Basic Installation
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/NEWS new/which-2.25/NEWS
--- old/which-2.23/NEWS 2025-02-01 19:53:30.000000000 +0100
+++ new/which-2.25/NEWS 2026-05-21 17:55:44.000000000 +0200
@@ -1,3 +1,12 @@
+Version 2.24 --> 2.25
+
+* The changes of 2.22 and 2.23 were not in 2.24 because accidently used an old 
repository.
+
+Version 2.23 --> 2.24
+
+* Bug fix for an out of bounds stack read (by Daniel Anderson)
+  Not exploitable as far as I can tell- so low priority.
+
 Version 2.22 --> 2.23
 
 * Bug fix; cleaning up a path like "/path/a/../b/foo" before printing was 
broken in 2.22.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/README new/which-2.25/README
--- old/which-2.23/README       2025-02-01 19:54:08.000000000 +0100
+++ new/which-2.25/README       2026-05-21 18:05:58.000000000 +0200
@@ -23,112 +23,112 @@
 Manual page
 ===========
 
-       which - shows the full path of (shell) commands.
+     which - shows the full path of (shell) commands.
 
 SYNOPSIS
-       which [options] [--] programname [...]
+     which [options] [--] programname [...]
 
 DESCRIPTION
-       Which takes one or more arguments. For each of its arguments 
it prints
-       to stdout the full path of the executables that would have been exe-
-       cuted when this argument had been entered at the shell prompt. It does
-       this by searching for an executable or script in the directories listed
-       in the environment variable PATH using the same algorithm as 
bash(1).
+     Which  takes  one or more arguments. For each of its arguments 
it prints to
+     stdout the full path of the executables that would have been executed  
when
+     this argument had been entered at the shell prompt. It does this by 
search-
+     ing  for  an executable or script in the directories listed in the 
environ-
+     ment variable PATH using the same algorithm as bash(1).
 
-       This man page is generated from the file which.texinfo.
+     This man page is generated from the file which.texinfo.
 
 OPTIONS
-       --all, -a
-           Print all matching executables in PATH, not just the first.
+     --all, -a
+         Print all matching executables in PATH, not just the first.
 
-       --read-alias, -i
-           Read aliases from stdin, reporting matching ones on stdout. This is
-           useful in combination with using an alias for which itself. For ex-
-           ample
-           alias which='alias | which -i'.
-
-       --skip-alias
-           Ignore  option  `--read-alias', if any. This is useful to explicity
-           search for normal binaries, while using the  `--read-alias'  option
-           in an alias or function for which.
-
-       --read-functions
-           Read shell function definitions from stdin, reporting matching ones
-           on  stdout.  This is useful in combination with using a shell func-
-           tion for which itself.  For example:
-           which() { declare -f | which --read-functions $@ }
-           export -f which
-
-       --skip-functions
-           Ignore option `--read-functions', if any. This is useful to explic-
-           ity search for normal binaries, while using the  `--read-functions'
-           option in an alias or function for which.
-
-       --skip-dot
-           Skip directories in PATH that start with a dot.
-
-       --skip-tilde
-           Skip  directories  in  PATH that start with a tilde and 
executables
-           which reside in the HOME directory.
-
-       --show-dot
-           If a directory in PATH starts with a dot and a matching  
executable
-           was found for that path, then print "./programname" rather than the
-           full path.
-
-       --show-tilde
-           Output  a  tilde  when a directory matches the HOME 
directory. This
-           option is ignored when which is invoked as root.
-
-       --tty-only
-           Stop processing options on the right if not on tty.
-
-       --version,-v,-V
-           Print version information on standard  output  then  exit  success-
-           fully.
+     --read-alias, -i
+         Read aliases from stdin, reporting matching ones  on  stdout.  This  
is
+         useful in combination with using an alias for which itself. For 
example
+         alias which='alias | which -i'.
+
+     --skip-alias
+         Ignore  option  `--read-alias',  if  any.  This  is useful to 
explicity
+         search for normal binaries, while using the `--read-alias' option in 
an
+         alias or function for which.
+
+     --read-functions
+         Read shell function definitions from stdin, reporting matching ones  
on
+         stdout.  This  is useful in combination with using a shell function 
for
+         which itself.  For example:
+         which() { declare -f | which --read-functions "$@" }
+         export -f which
+
+     --skip-functions
+         Ignore option `--read-functions', if any. This is useful  to  
explicity
+         search  for  normal binaries, while using the `--read-functions' 
option
+         in an alias or function for which.
+
+     --skip-dot
+         Skip directories in PATH that start with a dot.
+
+     --skip-tilde
+         Skip directories in PATH that start with a tilde and 
executables  which
+         reside in the HOME directory.
+
+     --show-dot
+         If  a directory in PATH starts with a dot and a matching 
executable was
+         found for that path, then print "./programname" rather  than  the  
full
+         path.
+
+     --show-tilde
+         Output a tilde when a directory matches the HOME directory. 
This option
+         is ignored when which is invoked as root.
+
+     --tty-only
+         Stop processing options on the right if not on tty.
+     --tty-only
+         Stop processing options on the right if not on tty.
 
-       --help
-           Print usage information on standard output then exit successfully.
+     --version,-v,-V
+         Print version information on standard output then exit successfully.
+
+     --help
+         Print usage information on standard output then exit successfully.
 
 RETURN VALUE
-       Which  returns  the number of failed arguments, or -1 when no 
`program-
-       name' was given.
+     Which  returns  the number of failed arguments, or -1 when no 
`programname'
+     was given.
 
 EXAMPLE
-       The recommended way to use this utility is by adding an alias (C shell)
-       or shell function (Bourne shell) for which like the following:
+     The recommended way to use this utility is by adding an alias (C shell)  
or
+     shell function (Bourne shell) for which like the following:
 
-       [ba]sh:
+     [ba]sh:
 
-            which ()
-            {
-              (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot $@
-            }
-            export -f which
+          which ()
+          {
+            (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot "$@"
+          }
+          export -f which
 
-       [t]csh:
+     [t]csh:
 
-            alias which 'alias | /usr/bin/which --tty-only --read-alias 
--show-dot --show-tilde'
+          alias which 'alias | /usr/bin/which --tty-only --read-alias 
--show-dot --show-tilde'
 
-       This will print the readable ~/ and ./ when starting  which  from  your
-       prompt, while still printing the full path when used from a script:
+     This  will  print  the  readable  ~/  and  ./ when starting which from 
your
+     prompt, while still printing the full path when used from a script:
 
-            > which q2
-            ~/bin/q2
-            > echo $(which q2)
-            /home/carlo/bin/q2
+          > which q2
+          ~/bin/q2
+          > echo $(which q2)
+          /home/carlo/bin/q2
 
 
 BUGS
-       The  HOME  directory  is determined by looking for the 
HOME environment
-       variable, which aborts when this variable doesn't  exist.   Which  
will
-       consider  two  equivalent  directories to be different when one of them
-       contains a path with a symbolic link.
+     The HOME directory is determined by looking for the HOME 
environment  vari-
+     able,  which  aborts when this variable doesn't exist.  Which 
will consider
+     two equivalent directories to be different when one of them contains a 
path
+     with a symbolic link.
 
 AUTHOR
-       Carlo Wood <[email protected]>
+     Carlo Wood <[email protected]>
 
 SEE ALSO
-       bash(1)
+     bash(1)
 
-                                                                      
WHICH(1)
+                                                                        
WHICH(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/README.alias new/which-2.25/README.alias
--- old/which-2.23/README.alias 2025-02-01 19:17:56.000000000 +0100
+++ new/which-2.25/README.alias 2025-04-15 15:14:21.000000000 +0200
@@ -3,7 +3,7 @@
 
   function which ()
   {
-      (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-dot --show-tilde $@
+      (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-dot --show-tilde "$@"
   }
   export -f which
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/compile new/which-2.25/compile
--- old/which-2.23/compile      2024-07-20 11:26:35.000000000 +0200
+++ new/which-2.25/compile      2025-07-12 14:12:09.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2024-06-19.01; # UTC
+scriptversion=2025-06-18.21; # UTC
 
-# Copyright (C) 1999-2024 Free Software Foundation, Inc.
+# Copyright (C) 1999-2025 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -37,11 +37,11 @@
 
 file_conv=
 
-# func_file_conv build_file lazy
+# func_file_conv build_file unneeded_conversions
 # Convert a $build file to $host form and store it in $file
 # Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
+# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no
+# conversion will take place.
 func_file_conv ()
 {
   file=$1
@@ -51,9 +51,20 @@
        # lazily determine how to convert abs files
        case `uname -s` in
          MINGW*)
-           file_conv=mingw
+           if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then
+             # MSYS2 environment.
+             file_conv=cygwin
+           else
+             # Original MinGW environment.
+             file_conv=mingw
+           fi
            ;;
-         CYGWIN* | MSYS*)
+         MSYS*)
+           # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell.
+           file_conv=cygwin
+           ;;
+         CYGWIN*)
+           # Cygwin environment.
            file_conv=cygwin
            ;;
          *)
@@ -63,12 +74,14 @@
       fi
       case $file_conv/,$2, in
        *,$file_conv,*)
+         # This is the optimization mentioned above:
+         # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert.
          ;;
        mingw/*)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin/* | msys/*)
-         file=`cygpath -m "$file" || echo "$file"`
+       cygwin/*)
+         file=`cygpath -w "$file" || echo "$file"`
          ;;
        wine/*)
          file=`winepath -w "$file" || echo "$file"`
@@ -343,9 +356,9 @@
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp nil t)
 # time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-format: "%Y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/configure.ac new/which-2.25/configure.ac
--- old/which-2.23/configure.ac 2025-02-01 19:51:38.000000000 +0100
+++ new/which-2.25/configure.ac 2026-05-21 17:54:34.000000000 +0200
@@ -1,6 +1,6 @@
 # Process this file with autoconf to produce a configure script.
 define(CW_VERSION_MAJOR, 2)
-define(CW_VERSION_MINOR, 23)
+define(CW_VERSION_MINOR, 25)
 
 # Because we use cwm4.
 define(CW_PACKAGE_NAME, [which])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/cmake/AICxxProject new/which-2.25/cwm4/cmake/AICxxProject
--- old/which-2.23/cwm4/cmake/AICxxProject      2025-01-11 22:04:45.000000000 
+0100
+++ new/which-2.25/cwm4/cmake/AICxxProject      2026-01-13 21:50:04.000000000 
+0100
@@ -65,7 +65,7 @@
   add_custom_target(maintainer-clean
     # The current directory is CMAKE_CURRENT_BINARY_DIR.
     # No longer passing $(MAKE) because then ninja won't work.
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cwm4/scripts/cmake_maintainer_clean.sh 
${generator} \"${GITACHE_PACKAGES}\"
+    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cwm4/scripts/cmake_maintainer_clean.sh 
${generator} \"${PROJECT_NAME}\" \"${GITACHE_PACKAGES}\"
   )
 
   
#==============================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/cmake/AICxxSubmodules.cmake 
new/which-2.25/cwm4/cmake/AICxxSubmodules.cmake
--- old/which-2.23/cwm4/cmake/AICxxSubmodules.cmake     2025-01-11 
22:04:45.000000000 +0100
+++ new/which-2.25/cwm4/cmake/AICxxSubmodules.cmake     2026-01-13 
21:50:04.000000000 +0100
@@ -3,7 +3,7 @@
 
 # This is a list of all aicxx submodules that exist.
 # If a submodule X depends on Y it must be on the right, i.e.: Y X.
-set(AICxxSubmodules cwds utils xml events threadsafe threadpool evio 
statefultask fastprimes math cairowindow)
+set(AICxxSubmodules cwds utils memory xml events threadsafe threadpool evio 
statefultask fastprimes math cairowindow)
 
 foreach (subdir ${AICxxSubmodules})
   get_filename_component(_fullpath "${subdir}" REALPATH)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/cmake/CW_CHECK_BMI2_SUPPORT.cmake 
new/which-2.25/cwm4/cmake/CW_CHECK_BMI2_SUPPORT.cmake
--- old/which-2.23/cwm4/cmake/CW_CHECK_BMI2_SUPPORT.cmake       2025-01-11 
22:04:45.000000000 +0100
+++ new/which-2.25/cwm4/cmake/CW_CHECK_BMI2_SUPPORT.cmake       2026-01-13 
21:50:04.000000000 +0100
@@ -58,4 +58,3 @@
     endif ()
   endif ()
 endfunction()
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/cmake/CW_OPTIONS.cmake 
new/which-2.25/cwm4/cmake/CW_OPTIONS.cmake
--- old/which-2.23/cwm4/cmake/CW_OPTIONS.cmake  2025-01-11 22:04:45.000000000 
+0100
+++ new/which-2.25/cwm4/cmake/CW_OPTIONS.cmake  2026-02-25 21:43:43.000000000 
+0100
@@ -44,6 +44,7 @@
 # CW_BUILD_TYPE_IS_RELWITHDEBUG         - true iff CMAKE_BUILD_TYPE = 
RelWithDebug
 # CW_BUILD_TYPE_IS_PERF                 - true iff CMAKE_BUILD_TYPE = Perf
 # CW_BUILD_TYPE_IS_TRACY                - true iff CMAKE_BUILD_TYPE = Tracy
+# CW_BUILD_TYPE_IS_NONE                 - true iff CMAKE_BUILD_TYPE = None
 #
 # Usage example,
 #
@@ -73,6 +74,7 @@
 set(CW_BUILD_TYPE_IS_RELWITHDEBUG OFF CACHE INTERNAL "")
 set(CW_BUILD_TYPE_IS_PERF OFF CACHE INTERNAL "")
 set(CW_BUILD_TYPE_IS_TRACY OFF CACHE INTERNAL "")
+set(CW_BUILD_TYPE_IS_NONE OFF CACHE INTERNAL "")
 unset(OptionEnableDebug)
 unset(OptionEnableLibcwd)
 
@@ -170,6 +172,8 @@
   set(CMAKE_BUILD_TYPE "Perf" CACHE STRING "Build Type" FORCE)
 elseif ("${BUILD_TYPE_UPPER}" STREQUAL "TRACY")
   set(CMAKE_BUILD_TYPE "Tracy" CACHE STRING "Build Type" FORCE)
+elseif ("${BUILD_TYPE_UPPER}" STREQUAL "NONE")
+  set(CMAKE_BUILD_TYPE "None" CACHE STRING "Build Type" FORCE)
 else ()
   message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE \"${CMAKE_BUILD_TYPE}\".")
 endif ()
@@ -199,6 +203,9 @@
 if (CMAKE_BUILD_TYPE STREQUAL "Tracy")
   set(CW_BUILD_TYPE_IS_TRACY ON CACHE INTERNAL "")
 endif ()
+if (CMAKE_BUILD_TYPE STREQUAL "None")
+  set(CW_BUILD_TYPE_IS_NONE ON CACHE INTERNAL "")
+endif ()
 message(STATUS "${Option} ${OptionColor}CMAKE_BUILD_TYPE${ColourReset} 
=\n\t${OptionColorBuildType}${CMAKE_BUILD_TYPE}${ColourReset}")
 #message(STATUS "${Option} ${OptionColor}CMAKE_BUILD_TYPE${ColourReset} = 
${OptionColorBuildType}${CMAKE_BUILD_TYPE}${ColourReset}")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/cmake/CW_SYS_CACHELINE_SIZE.c 
new/which-2.25/cwm4/cmake/CW_SYS_CACHELINE_SIZE.c
--- old/which-2.23/cwm4/cmake/CW_SYS_CACHELINE_SIZE.c   2025-01-11 
22:04:45.000000000 +0100
+++ new/which-2.25/cwm4/cmake/CW_SYS_CACHELINE_SIZE.c   2026-01-13 
21:50:04.000000000 +0100
@@ -61,5 +61,11 @@
 int main()
 {
   // No new line!
+  size_t size = cache_line_size();
+  if (!(size > 0 && ((size - 1) & size) == 0))
+  {
+    fprintf(stderr, "CW_SYS_CACHELINE_SIZE: Failed to determine 
cacheline_size!");
+    return 1;
+  }
   printf("%lu", cache_line_size());
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/cmake/StableGitache new/which-2.25/cwm4/cmake/StableGitache
--- old/which-2.23/cwm4/cmake/StableGitache     2025-01-11 22:04:45.000000000 
+0100
+++ new/which-2.25/cwm4/cmake/StableGitache     2026-01-13 21:50:04.000000000 
+0100
@@ -1,10 +1,10 @@
 # FetchContent was added to 3.14.
-cmake_minimum_required(VERSION 3.14...3.27)
+cmake_minimum_required(VERSION 3.14...3.31)
 
 include(FetchContent)
 
-# If a local gitache submodule is present then use that rather than 
downloading one.
-if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/gitache/.git)
+# If a local gitache directory is present then use that rather than 
downloading one.
+if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/gitache/gateway.cmake)
   # This will disable the use of the GIT_REPOSITORY/GIT_TAG below, and disable 
the
   # FetchContent- download and update step. Instead, use the gitache submodule 
as-is.
   set(FETCHCONTENT_SOURCE_DIR_GITACHE "${CMAKE_CURRENT_LIST_DIR}/gitache" 
CACHE INTERNAL "" FORCE)
@@ -13,7 +13,7 @@
 FetchContent_Declare(
   gitache
   GIT_REPOSITORY "https://github.com/CarloWood/gitache.git";
-  GIT_TAG        "e5ef040c28810ca7a1a5e200268af683440fbd27"  # Latest SHA1 of 
branch "stable".
+  GIT_TAG        "stable"       # Latest SHA1 of branch "stable".
 )
 
 # To enable DEBUG messages, pass -DCMAKE_MESSAGE_LOG_LEVEL=DEBUG to cmake on 
the command line.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/cwm4/configure_ac_top.m4 new/which-2.25/cwm4/configure_ac_top.m4
--- old/which-2.23/cwm4/configure_ac_top.m4     2025-01-11 22:04:45.000000000 
+0100
+++ new/which-2.25/cwm4/configure_ac_top.m4     2026-02-25 21:45:41.000000000 
+0100
@@ -61,9 +61,9 @@
 
 dnl Check if we are the real maintainer.
 cw_real_maintainer=0
-if test -z "$MAINTAINER_MODE_TRUE" -a -n "$REPOBASE"; then
+if test -z "$MAINTAINER_MODE_TRUE" -a -n "$REPOROOT"; then
   if test "$(echo "$GIT_COMMITTER_EMAIL" | md5sum | cut -d \  -f 1)" = dnl
-      "$(sed -n -e 's/.*MAINTAINER_HASH=//p' "$REPOBASE/autogen.sh")"; then
+      "$(sed -n -e 's/.*MAINTAINER_HASH=//p' "$REPOROOT/autogen.sh")"; then
     cw_real_maintainer=1
   fi
 fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/maintMakefile.in new/which-2.25/maintMakefile.in
--- old/which-2.23/maintMakefile.in     2025-02-01 19:49:59.000000000 +0100
+++ new/which-2.25/maintMakefile.in     2026-05-21 16:11:34.000000000 +0200
@@ -52,7 +52,6 @@
 AUTHOR=Carlo Wood <[email protected]>
 TAG:=${shell echo "V@VERSION@" | sed -e 's/\./_/g'}
 PREVTAG:=${shell test -f $(srcdir)/.prevtag && cat $(srcdir)/.prevtag}
-CVSREADACCESS:=${shell if test -f $(srcdir)/CVS/Entries; then echo "yes"; else 
echo "no"; fi}
 WHICHTEST:=$(shell realpath "$(srcdir)/test/whichtest")
 info_TEXINFOS = which.texi
 
@@ -92,6 +91,7 @@
        gpg --clearsign @PACKAGE@-@[email protected]
        (cd $(srcdir) && git tag --force $(TAG))
        @echo "*** To upload run:"
+       @echo "$$ cd $$BUILDDIR"
        @echo "$$ ncftpput ftp-upload.gnu.org /incoming/ftp 
@PACKAGE@-@[email protected] @PACKAGE@-@[email protected] 
@PACKAGE@-@[email protected]"
        @echo "$$ echo \"$(TAG)\" > $(srcdir)/.prevtag"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/missing new/which-2.25/missing
--- old/which-2.23/missing      2024-07-20 11:26:35.000000000 +0200
+++ new/which-2.25/missing      2025-07-12 14:12:09.000000000 +0200
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU and other programs.
 
-scriptversion=2024-06-07.14; # UTC
+scriptversion=2025-06-18.21; # UTC
 
 # shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells
 
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -228,9 +228,9 @@
 exit $st
 
 # Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp nil t)
 # time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-format: "%Y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/stamp-vti new/which-2.25/stamp-vti
--- old/which-2.23/stamp-vti    2025-02-01 19:54:02.000000000 +0100
+++ new/which-2.25/stamp-vti    2026-05-21 18:01:23.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 1 February 2025
-@set UPDATED-MONTH February 2025
-@set EDITION 2.23
-@set VERSION 2.23
+@set UPDATED 15 April 2025
+@set UPDATED-MONTH April 2025
+@set EDITION 2.25
+@set VERSION 2.25
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/tilde.c new/which-2.25/tilde.c
--- old/which-2.23/tilde.c      2025-02-01 19:17:56.000000000 +0100
+++ new/which-2.25/tilde.c      2026-05-21 16:11:34.000000000 +0200
@@ -189,10 +189,8 @@
   int result_size, result_index;
 
   result_index = result_size = 0;
-  if (result = strchr(string, '~'))
-    result = (char *) xmalloc(result_size = (strlen(string) + 16));
-  else
-    result = (char *) xmalloc(result_size = (strlen(string) + 1));
+  int offset = strchr(string, '~') ? 16 : 1;
+  result = (char *) xmalloc(result_size = (strlen(string) + offset));
 
   /* Scan through STRING expanding tildes as we come to them. */
   while (1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/version.texi new/which-2.25/version.texi
--- old/which-2.23/version.texi 2025-02-01 19:54:02.000000000 +0100
+++ new/which-2.25/version.texi 2026-05-21 18:01:23.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 1 February 2025
-@set UPDATED-MONTH February 2025
-@set EDITION 2.23
-@set VERSION 2.23
+@set UPDATED 15 April 2025
+@set UPDATED-MONTH April 2025
+@set EDITION 2.25
+@set VERSION 2.25
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/which.1 new/which-2.25/which.1
--- old/which-2.23/which.1      2025-02-01 19:54:02.000000000 +0100
+++ new/which-2.25/which.1      2026-05-21 18:01:23.000000000 +0200
@@ -60,7 +60,7 @@
 function for which itself.  For example:
 .br
 .B 
-which() { declare -f | which --read-functions $@ }
+which() { declare -f | which --read-functions "$@" }
 .br
 export -f which\fR
 .TP
@@ -110,7 +110,7 @@
 .na
 which ()
 {
-  (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot $@
+  (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot "$@"
 }
 export -f which
 .in -5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/which.c new/which-2.25/which.c
--- old/which-2.23/which.c      2025-02-01 19:49:59.000000000 +0100
+++ new/which-2.25/which.c      2026-05-21 16:11:34.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * which v2.x -- print full path of executables
- * Copyright (C) 1999, 2003, 2007, 2008  Carlo Wood <[email protected]>
+ * Copyright (C) 1999, 2003, 2007, 2008, 2024, 2026  Carlo Wood <[email protected]>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -65,7 +65,7 @@
 
 static void print_version(void)
 {
-  fprintf(stdout, "GNU which v" VERSION ", Copyright (C) 1999 - 2025 Carlo 
Wood.\n");
+  fprintf(stdout, "GNU which v" VERSION ", Copyright (C) 1999 - 2026 Carlo 
Wood.\n");
   fprintf(stdout, "GNU which comes with ABSOLUTELY NO WARRANTY;\n");
   fprintf(stdout, "This program is free software; your freedom to use, 
change\n");
   fprintf(stdout, "and distribute this program is protected by the GPL.\n");
@@ -219,11 +219,13 @@
   if (cwdlen)
     return;
 
-  if (!getcwd(cwd, sizeof(cwd)))
+  if (!getcwd(cwd, sizeof(cwd) - 1))
   {
     const char *pwd = getenv("PWD");
-    if (pwd && strlen(pwd) < sizeof(cwd))
+    if (pwd && strlen(pwd) < sizeof(cwd) - 1)
       strcpy(cwd, pwd);
+    else
+      cwd[0] = '\0';
   }
 
   if (!IS_ABSOLUTE(cwd))
@@ -243,7 +245,7 @@
 
 static char *path_clean_up(const char *path)
 {
-  static char result[PATH_MAX];
+  static char result[PATH_MAX + 1];
 
   const char *p1 = path;
   char *p2 = result;
@@ -265,7 +267,14 @@
      * See 
http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11
      */
     if (!saw_slash || !IS_DIRSEP(*p1) || (p1 == path + 1 && !IS_DIRSEP(p1[1])))
+    {
+      if (p2 >= result + sizeof(result) - 1)
+      {
+        fprintf(stderr, "Can't create full path\n");
+        exit(-1);
+      }
       *p2++ = *p1;
+    }
     if (saw_slash_dot && (IS_DIRSEP(*p1)))
       p2 -= 2;
     if (saw_slash_dot_dot && (IS_DIRSEP(*p1)))
@@ -572,7 +581,7 @@
     strncpy(home, h, sizeof(home));
     home[sizeof(home) - 1] = 0;
     homelen = strlen(home);
-    if (!IS_DIRSEP(home[homelen - 1]) && homelen < sizeof(home) - 1)
+    if (homelen == 0 || !IS_DIRSEP(home[homelen - 1]) && homelen < 
sizeof(home) - 1)
     {
       home[homelen] = DIR_SEPARATOR;
       home[homelen + 1] = '\0';
@@ -625,6 +634,10 @@
         // {
         //   body
         // }
+        // Defensive: a line whose first byte is '\0' (or that is empty) makes
+        // `buf + strlen(buf) - 1` underflow below the start of `buf`. Skip it.
+        if (buf[0] == '\0')
+          continue;
         char *p = buf + strlen(buf) - 1;
         while (isspace(*p) && p > buf + 2)
           --p;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/which.info new/which-2.25/which.info
--- old/which-2.23/which.info   2025-02-01 19:56:07.000000000 +0100
+++ new/which-2.25/which.info   2026-05-21 18:01:23.000000000 +0200
@@ -1,4 +1,4 @@
-This is which.info, produced by makeinfo version 7.1.1 from which.texi.
+This is which.info, produced by makeinfo version 7.3 from which.texi.
 
 INFO-DIR-SECTION System administration
 START-INFO-DIR-ENTRY
@@ -26,7 +26,7 @@
 
 The ‘which’ program shows the full path of (shell) commands.
 
-This file documents ‘which’ version 2.23, updated 1 February 2025.
+This file documents ‘which’ version 2.25, updated 15 April 2025.
 
 * Menu:
 
@@ -92,7 +92,7 @@
      Read shell function definitions from stdin, reporting matching ones
      on stdout.  This is useful in combination with using a shell
      function for which itself.  For example:
-     ‘which() { declare -f | which --read-functions $@ }
+     ‘which() { declare -f | which --read-functions "$@" }
      export -f which’
 
 ‘--skip-functions’
@@ -148,7 +148,7 @@
 
      which ()
      {
-       (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot $@
+       (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot "$@"
      }
      export -f which
 
@@ -219,15 +219,14 @@
 * Return value of which:                 Return Value.         (line  6)
 * Synopsis:                              Invoking Which.       (line  6)
 
-
 
 Tag Table:
-Node: Top630
-Node: Which Program1305
-Node: Invoking Which1813
-Node: Option Summary2089
-Node: Return Value4090
-Node: Example4307
+Node: Top628
+Node: Which Program1301
+Node: Invoking Which1809
+Node: Option Summary2085
+Node: Return Value4088
+Node: Example4305
 Node: Bugs5044
 Node: See Also5399
 Node: Index5511
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/which-2.23/which.texi new/which-2.25/which.texi
--- old/which-2.23/which.texi   2025-02-01 19:17:56.000000000 +0100
+++ new/which-2.25/which.texi   2025-04-15 15:15:30.000000000 +0200
@@ -157,7 +157,7 @@
 Read shell function definitions from stdin, reporting matching
 ones on stdout. This is useful in combination with using a shell
 function for which itself.  For example:@*
-@code{which() @{ declare -f | which --read-functions $@@ @}@*export -f which}
+@code{which() @{ declare -f | which --read-functions "$@@" @}@*export -f which}
 
 @cindex @option{--skip-functions}
 @item --skip-functions
@@ -229,7 +229,7 @@
 @group
 which ()
 @{
-  (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot $@@
+  (alias; declare -f) | /usr/bin/which --tty-only --read-alias 
--read-functions --show-tilde --show-dot "$@@"
 @}
 export -f which
 @end group

Reply via email to