Accepting request 978864 from home:rhabacker:branches:windows:mingw:win64:devruntimedeps

- Update to 20220524
- On finding provides and requirements do not generate temporary 
  files in the global temporary directory (boo#1182356)
- Add optional support to add runtime dependencies for import
  libraries, see macros.mingw64 for details (boo#1194430)
- Fix warning 'file format not recognized' in mingw64-find-requires.sh
  when parsing xxx-config files

OBS-URL: https://build.opensuse.org/request/show/978864
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-filesystem?expand=0&rev=133
This commit is contained in:
Jan Engelhardt 2022-05-24 08:26:51 +00:00 committed by Git OBS Bridge
parent b1e91bcab0
commit 67e63d9c18
5 changed files with 51 additions and 19 deletions

View File

@ -61,8 +61,18 @@
%_mingw64_cache mingw64-config.cache
# setup rpmbuild hooks
#
# To provide project wide import library scanning add this to project config
# Macros:
# %_mingw64_find_requires_scan_implibs 1
# :Macros
# for a single package add
# %global _mingw64_find_requires_scan_implibs 1
# to the related spec file
#
%_mingw64_findprovides /usr/lib/rpm/mingw64-find-provides.sh
%_mingw64_findrequires /usr/lib/rpm/mingw64-find-requires.sh
%_mingw64_findrequires /usr/lib/rpm/mingw64-find-requires.sh %{?_mingw64_find_requires_scan_implibs:--scan-implibs}
%_mingw64_install_post /usr/lib/rpm/mingw64-install-post.sh
%_mingw64_find_lang /usr/lib/rpm/mingw64-find-lang.sh %{buildroot}

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon May 23 13:58:15 UTC 2022 - Ralf Habacker <ralf.habacker@freenet.de>
- Update to 20220524
- On finding provides and requirements do not generate temporary
files in the global temporary directory (boo#1182356)
- Add optional support to add runtime dependencies for import
libraries, see macros.mingw64 for details (boo#1194430)
- Fix warning 'file format not recognized' in mingw64-find-requires.sh
when parsing xxx-config files
-------------------------------------------------------------------
Thu Dec 2 14:04:48 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -1,7 +1,7 @@
#
# spec file for package mingw64-filesystem
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -31,7 +31,7 @@
%define _rpmmacrodir %{_sysconfdir}/rpm
%endif
Name: mingw64-filesystem
Version: 20210914
Version: 20220524
Release: 0
Summary: MinGW base filesystem and environment
License: GPL-2.0-or-later

View File

@ -11,13 +11,12 @@ fi
[ -z "$OBJDUMP" ] && OBJDUMP="$host-objdump"
filelist="/tmp/$target-find-provides.$$"
sed "s/['\"]/\\\&/g" >"$filelist"
filelist=`sed "s/['\"]/\\\&/g"`
dlls=$(grep '\.dll$' "$filelist")
pcs=$(grep '\.pc$' "$filelist")
libs=$(grep '\.a$' "$filelist")
cmakes=$(grep '[cC]onfig.cmake$' "$filelist")
dlls=$(echo "$filelist" | grep '\.dll$')
pcs=$(echo "$filelist" | grep '\.pc$')
libs=$(echo "$filelist" | grep '\.a$')
cmakes=$(echo "$filelist" | grep '[cC]onfig.cmake$')
for f in $dlls; do
[ ! -f "$f" ] && continue
@ -39,6 +38,4 @@ done
for h in $cmakes; do
[ ! -f "$h" ] && continue
echo $h | /usr/lib/rpm/mingw64-cmake.prov
done
rm "$filelist"
done

View File

@ -5,6 +5,12 @@
target="mingw64"
host="x86_64-w64-mingw32"
scan_implibs=
if [ "$1" = "--scan-implibs" ]; then
scan_implibs=1
shift
fi
if [ -n "$1" ]; then
package_name="$1"
fi
@ -13,8 +19,7 @@ fi
# Get the list of files.
filelist="/tmp/$target-find-requires.$$"
sed "s/['\"]/\\\&/g" >"$filelist"
filelist=`sed "s/['\"]/\\\&/g"`
libs_to_exclude="
advapi32
@ -82,9 +87,9 @@ for i in $libs_to_exclude; do
done
dlls=$(cat "$filelist" | xargs file | grep executable | sed 's,:.*$,,g')
pcs=$(grep '\.pc$' "$filelist")
configs=$(grep 'config$' "$filelist")
dlls=$(echo "$filelist" | grep -v 'config$' | xargs file | grep executable | sed 's,:.*$,,g')
pcs=$(echo "$filelist" | grep '\.pc$')
configs=$(echo "$filelist" | grep 'config$')
for f in $dlls; do
[ ! -f "$f" ] && continue
@ -94,6 +99,17 @@ for f in $dlls; do
sed 's/\(.*\)/'"$target"'(\1)/'
done | sort -u
if [ -n "$scan_implibs" ]; then
implibs=$(echo "$filelist" | grep '\.dll.a$')
for f in $implibs; do
[ ! -f "$f" ] && continue
"$OBJDUMP" -r "$f" | grep '_iname' | sed 's,^.*lib,lib,g;s,_iname,,g;s,_dll,.dll,g;s,_,-,g' |
tr "[:upper:]" "[:lower:]" |
grep -Ev "$exclude_pattern" |
sed 's/\(.*\)/'"$target"'(\1)/'
done | sort -u
fi
(
for g in $pcs; do
dirname="${g%/*}"
@ -113,5 +129,3 @@ for k in $configs; do
done
done
) | sort -u
rm "$filelist"