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*) ;;
