Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mingw32-filesystem for 
openSUSE:Factory checked in at 2026-09-01 15:52:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mingw32-filesystem (Old)
 and      /work/SRC/openSUSE:Factory/.mingw32-filesystem.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mingw32-filesystem"

Tue Sep  1 15:52:02 2026 rev:41 rq:1375091 version:20260312

Changes:
--------
--- /work/SRC/openSUSE:Factory/mingw32-filesystem/mingw32-filesystem.changes    
2026-08-18 16:38:35.224448166 +0200
+++ 
/work/SRC/openSUSE:Factory/.mingw32-filesystem.new.1265/mingw32-filesystem.changes
  2026-09-01 15:52:41.174819395 +0200
@@ -1,0 +2,19 @@
+Tue Aug 25 10:37:55 UTC 2026 - Bernhard Wiedemann <[email protected]>
+
+- mingw32-find-debuginfo.sh:
+  * Extract debug info from hardlinked binaries only once:
+    objcopy strips them through their shared inode, so the parallel
+    workers for the other names raced against it, producing .debug
+    files with random content or missing ones (boo#1102408)
+
+-------------------------------------------------------------------
+Tue Aug 25 09:53:08 UTC 2026 - Bernhard Wiedemann <[email protected]>
+
+- mingw32-find-debuginfo.sh, mingw32-install-post.sh:
+  * Do not process symlinks to .exe/.dll files: a "find -type f -name
+    *.exe -or -name *.dll" precedence bug let .dll symlinks through,
+    so a symlinked dll was stripped twice in parallel, making the
+    embedded .gnu_debuglink name and PE checksum depend on which
+    objcopy finished last (boo#1102408)
+
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ mingw32-find-debuginfo.sh ++++++
--- /var/tmp/diff_new_pack.KXa8VD/_old  2026-09-01 15:52:42.817876717 +0200
+++ /var/tmp/diff_new_pack.KXa8VD/_new  2026-09-01 15:52:42.823876927 +0200
@@ -97,7 +97,10 @@
 fi
 
 # extract debug info
-find $RPM_BUILD_ROOT -type f -name "*.exe" -or -name "*.dll" | sort | \
+# objcopy modifies hardlinked files through their shared inode, so process
+# only the first name of each hardlink group and link the .debug afterwards
+candidates=$(find $RPM_BUILD_ROOT -type f \( -name "*.exe" -or -name "*.dll" 
\) -printf '%D_%i %p\n' | sort -k2)
+echo "$candidates" | awk '!seen[$1]++' | cut -d' ' -f2- | \
        BUILDDIR=$BUILDDIR \
        OBJDUMP=$OBJDUMP \
        OBJCOPY=$OBJCOPY \
@@ -108,15 +111,25 @@
        srcdir=$srcdir \
        xargs --max-args=1 --max-procs=0 bash -x $0
 
+declare -A firstname
+while read -r inum f; do
+       [ -z "$inum" ] && continue
+       if [ -z "${firstname[$inum]}" ]; then
+               firstname[$inum]=$f
+       elif [ -e "${firstname[$inum]}.debug" ]; then
+               ln -f "${firstname[$inum]}.debug" "$f.debug"
+       fi
+done <<<"$candidates"
+
 cat "$SOURCEFILE".tmp.* >"$SOURCEFILE.tmp" 2>/dev/null || :
 
 # generate debug info file list
-find $RPM_BUILD_ROOT -type f \
+find $RPM_BUILD_ROOT -type f \( \
                -name "*.exe.debug" \
        -or -name "*.dll.debug" \
        -or -name "*.exe.mdb" \
        -or -name "*.dll.mdb" \
-| sort \
+\) | sort \
 | sed -n -e "s#^$RPM_BUILD_ROOT##p" > $BUILDDIR/$target-debugfiles.list
 
 if [ "$SOURCE_PACKAGE" -eq 0 ]; then

++++++ mingw32-install-post.sh ++++++
--- /var/tmp/diff_new_pack.KXa8VD/_old  2026-09-01 15:52:42.893879369 +0200
+++ /var/tmp/diff_new_pack.KXa8VD/_new  2026-09-01 15:52:42.900879613 +0200
@@ -26,7 +26,7 @@
 
 cd "$RPM_BUILD_ROOT"
 
-for f in `find . -type f -name "*.exe" -or -name "*.dll"`; do
+for f in `find . -type f \( -name "*.exe" -or -name "*.dll" \)`; do
        case $("$OBJDUMP" -h "$f" 2>/dev/null | grep -E -o 
'(debug[\.a-z_]*|gnu.version)') in
            *debuglink*) continue ;;
            *debug*) ;;

Reply via email to