Accepting request 993445 from windows:mingw:win64

OBS-URL: https://build.opensuse.org/request/show/993445
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mingw64-filesystem?expand=0&rev=18
This commit is contained in:
Dominique Leuenberger 2022-08-06 20:08:19 +00:00 committed by Git OBS Bridge
commit 62d8864fce
5 changed files with 72 additions and 19 deletions

29
mingw-objdump-srcfiles Normal file
View File

@ -0,0 +1,29 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2022 Jan Engelhardt <jengelh@inai.de>
# SPDX-FileCopyrightText: 2022 Ralf Habacker <ralf.habacker@freenet.de>
# SPDX-License-Identifier: GPL-2.0-or-later
# get source filenames from dwarf debug sections
gawk '
BEGIN { state = 0 }
state == 1 && $2 ~ /DW_AT_name/ {
atname = $NF
}
state == 1 && $2 ~ /DW_AT_comp_dir/ {
atdir = $NF
if (atdir != "" && atname != "") {
print atdir "/" atname
state = 0
}
}
state == 0 && $0 ~ /DW_TAG_compile_unit/ {
state = 1
atdir = ""
atname = ""
}
'

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Thu Jul 28 15:22:52 UTC 2022 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to 20220805
- Fix for generating the source file list for the debug package (boo#1201107).
* Added the script 'mingw-objdump-srcfiles' to determine the
source files used by the package in question.
* The gawk script is based on a perl script from jengelh, which was
not adopted due to an additional runtime dependency.
* With this change, *.sym files are no longer included in generated
debug packages.
* The now obsolete runtime dependency to mingw64-cross-breakpad-tools
has been removed
- Exclude 'mlang.dll' from automatic runtime library detection required
for win_iconv package
- Fix spelling in *.changes
-------------------------------------------------------------------
Thu Jul 28 09:03:20 UTC 2022 - Ralf Habacker <ralf.habacker@freenet.de>
@ -17,7 +34,7 @@ Wed Jul 20 07:11:15 UTC 2022 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to 20220801
- Fetch real used shared library name from import libraries to avoid
file name generation errors, for example with mingw32-glib2
file name generation errors, for example with mingw64-glib2
- Scan all archives for shared library names as packages may not use
the default import library extension

View File

@ -31,7 +31,7 @@
%define _rpmmacrodir %{_sysconfdir}/rpm
%endif
Name: mingw64-filesystem
Version: 20220801
Version: 20220805
Release: 0
Summary: MinGW base filesystem and environment
License: GPL-2.0-or-later
@ -53,6 +53,9 @@ Source12: mingw64-cmake.prov
Source13: mingw64-cmake.attr
Source14: macros.mingw64-cmake
Source15: mingw64-filesystem-rpmlintrc
Source16: mingw-objdump-srcfiles
# add excluded system libraries to mingw64-find-requires.sh
# TODO: The following provides could be removed after all packages has been rebuild
Provides: mingw64(bcrypt.dll)
Provides: mingw64(dbghelp.dll)
Provides: mingw64(mpr.dll)
@ -200,6 +203,8 @@ while read LANG ; do
done
done < %{SOURCE11}
install -m 0755 %{SOURCE16} %{buildroot}%{_bindir}/x86_64-w64-mingw32-objdump-srcfiles
%files
%defattr(-,root,root,-)
%doc COPYING
@ -218,6 +223,7 @@ done < %{SOURCE11}
%{_rpmconfigdir}/mingw64-cmake.prov
%{_fileattrsdir}/mingw64-cmake.attr
%{_bindir}/mingw64-*
%{_bindir}/x86_64-w64-mingw32-*
%{_libexecdir}/mingw64-scripts
%{_prefix}/x86_64-w64-mingw32/
%{_rpmconfigdir}/mingw64-*

View File

@ -23,7 +23,6 @@ SOURCEFILE="$BUILDDIR/$target-debugsources.list"
srcdir=`realpath $PWD`
ROOT_DIR="/usr/$host/sys-root/mingw"
SYMBOL_DIR="${ROOT_DIR}/symbols"
SOURCE_DIR="${ROOT_DIR}/src"
DEBUGSOURCE_DIR="${SOURCE_DIR}/debug"
@ -41,14 +40,8 @@ do
echo extracting debug info from $f
# breakpad symbols
symfile=`"$host-gen_sym_files" "$f" "$RPM_BUILD_ROOT$SYMBOL_DIR"`
echo $symfile
# grep all listed source files belonging to this package into temporary source file list
cat $symfile | grep "FILE" | cut -d' ' -f3 | grep $srcdir >> $SOURCEFILE.tmp
# remap file path in symbol file to src debug location
# we remap all files to make finding src files from other packages possible
sed -i "s,$BUILDDIR,$DEBUGSOURCE_DIR,g" $symfile
# grep all listed source files belonging to this package into temporary source file list.
"$host-objdump" -Wi "$f" | "$host-objdump-srcfiles" | grep $srcdir >>"$SOURCEFILE.tmp"
"$host-objcopy" --only-keep-debug "$f" "$f.debug" || :
pushd `dirname $f`
@ -67,10 +60,6 @@ find $RPM_BUILD_ROOT -type f \
| sort \
| sed -n -e "s#^$RPM_BUILD_ROOT##p" >"$BUILDDIR/$target-debugfiles.list"
if [ -e "$RPM_BUILD_ROOT/$SYMBOL_DIR" ]; then
echo "$SYMBOL_DIR" >>"$BUILDDIR/$target-debugfiles.list"
fi
echo creating debugsource file structure
destdir=${RPM_BUILD_ROOT}${DEBUGSOURCE_DIR}
@ -91,9 +80,6 @@ do
fi
echo copying $f to $o
install -m 644 $f $o
# create debugsource.list
# we do not add each single file, see below
# echo $o | sed "s,${RPM_BUILD_ROOT},,g" >> $SOURCEFILE
done
rm $SOURCEFILE.tmp

View File

@ -31,16 +31,24 @@ filelist=`sed "s/['\"]/\\\&/g"`
libs_to_exclude+="
advapi32
bcrypt
cfgmgr32
comctl32
comdlg32
crypt32
d2d1
d3d11
d3d12
d3d8
d3d9
dbghelp
dcomp
ddraw
dnsapi
dsound
dwmapi
dwrite
dxgi
dxva2
evr
gdi32
@ -53,6 +61,8 @@ libs_to_exclude+="
ksuser
mf
mfplat
mlang
mpr
mpr
mscms
mscoree
@ -62,8 +72,10 @@ libs_to_exclude+="
msvcr90
msvcrt
mswsock
ncrypt
netapi32
odbc32
odbccp32
ole32
oleacc
oleaut32
@ -75,14 +87,17 @@ libs_to_exclude+="
shell32
shlwapi
user32
userenv
usp10
uxtheme
version
winhttp
wininet
winmm
wldap32
ws2_32
wsock32
winhttp
wtsapi32
"
exclude_pattern=""